From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 9464 invoked from network); 18 Sep 2020 01:58:47 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 18 Sep 2020 01:58:47 -0000 Content-Type: multipart/mixed; boundary="===============4857251706471208453==" 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 03:58:46 +0200 List-Id: Message-ID: <20200918015846.96qX5LNM2eWju1yTWnbj8o65cK4kgGvDdtH4KcoTSlo@z> GitHub notification mails are now in MIME to allow UTF8. --===============4857251706471208453== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBnbm9tZTMzOApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL3B1bGwvMjQyNjAKCmdub21lIDMuMzgKVGhpcyBzaG91bGQgbm93IGJlIG1vcmUgb3Ig bGVzcyByZWFkeS4gVGVzdGVkIG9uIGBhYXJjaDY0YCBhbmQgb24gYHBwYzY0bGUtbXVzbGAuIFNl dmVyYWwgInVuc3RhYmxlIiB2ZXJzaW9ucyB3ZXJlIHVzZWQsIHNpbmNlIDMuMzggc2hpcHBlZCB3 aXRoIHRoZW0gKGUuZy4gYGdub21lLW9ubGluZS1hY2NvdW50c2AsIGBnbm9tZS1jb250YWN0c2Ag YW5kIHRoZSBgZ25vbWUtZmxhc2hiYWNrYCBjb21wb25lbnRzKSwgc2hvdWxkbid0IGJlIGEgcHJh Y3RpY2FsIHByb2JsZW0gYW5kIHdlIGNhbiB1cGRhdGUgdGhlbSBsYXRlciBvbmNlIHRhZ2dlZC4N Cg0KIyBUT0RPDQoNCi0gW3hdIGNsZWFuIGl0IHVwDQotIFt4XSBiZXR0ZXIgdGVzdGluZywgbWFr ZSBzdXJlIHRlc3RzdWl0ZSBwYXNzZXMNCi0gW3hdIGltcG9ydCB0aGUgdXNlZnVsIGJpdHMgZnJv bSAjMjEzODIsIG9yIHJlYmFzZSBpZiBpdCBnZXRzIG1lcmdlZA0KLSBbIF0gbWFrZSBzdXJlIGNy b3NzYnVpbGRzIHdvcmsNCi0gW3hdIHRlc3Qgb24gbW9yZSBwbGF0Zm9ybXMNCi0gW3hdIGZpeCB0 aGUgbWV0YXBhY2thZ2VzICh0aGV5IGhhdmVuJ3QgYmVlbiB0b3VjaGVkLCBwb3NzaWJseSBpbiBo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjI5MzYpDQot IH5+ZHJvcCB0aGUgYHZhbGFgIG9wdGlvbiBpbiB0aGUgcmVzdCBvZiB0aGUgcGFja2FnZXN+fiBw cm9iYWJseSBnb25uYSBkbyB0aGF0IG9uY2UgdGhpcyBQUiBpcyBtZXJnZWQNCg0KIyBTdGFibGUg dXBkYXRlcw0KDQotIFt4XSB5ZWxwLXhzbCAtPiAzLjM4LjANCi0gW3hdIHllbHAtdG9vbHMgLT4g My4zOC4wDQotIFt4XSB5ZWxwIC0+IDMuMzguMA0KLSBbeF0gdmFsYSAtPiAwLjUwLjANCi0gW3hd IHZhbGFkb2MgLT4gMC41MC4wIA0KLSBbeF0gdmFsYWJpbmQgLT4gKHJldmJ1bXApIA0KLSBbeF0g ZGV2aGVscCAtPiAzLjM4LjANCi0gW3hdIGdkbCAtPiAzLjM0LjANCi0gW3hdIGxpYnNvdXAgLT4g Mi43Mi4wDQotIFt4XSBncmlsbyAtPiAwLjMuMTMNCi0gW3hdIGdyaWxvLXBsdWdpbnMgLT4gMC4z LjEyDQotIFt4XSBndGtzb3VyY2V2aWV3NCAtPiA0LjguMA0KLSBbeF0gdGVwbCAtPiA1LjAuMA0K LSBbeF0gZ2xhZGUzIC0+IDMuMzguMA0KLSBbeF0gbGliaGFuZHkgLT4gKHJldmJ1bXApDQotIFt4 XSBsaWJoYW5keTEgLT4gMS4wLjANCi0gW3hdIGxpYnhmY2U0dWkgLT4gKHJldmJ1bXApDQotIFt4 XSBsaWJkYXp6bGUgLT4gMy4zOC4wDQotIFt4XSBhbmp1dGEgLT4gKHJldmJ1bXApDQotIFt4XSBz eXNwcm9mIC0+IDMuMzguMA0KLSBbeF0gdHJhY2tlciAtPiAyLjMuNg0KLSBbeF0gdHJhY2tlci1t aW5lcnMgLT4gMi4zLjUNCi0gW3hdIHRyYWNrZXIzIC0+IDMuMC4wICoqKG5ldykqKg0KLSBbeF0g dHJhY2tlcjMtbWluZXJzIC0+IDMuMC4wICoqKG5ldykqKg0KLSBbeF0gYmlqaWJlbiAtPiAzLjM2 LjMNCi0gW3hdIGdyYXBoZW5lIC0+IDEuMTAuMg0KLSBbeF0gYW10ayAtPiA1LjIuMA0KLSBbeF0g aW8uZWxlbWVudGFyeS5jb2RlIC0+IChyZXZidW1wKQ0KLSBbeF0gcGhvZGF2IC0+IDIuNQ0KLSBb eF0gZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyAtPiAzLjM4LjANCi0gW3hdIGdsaWItbmV0d29y a2luZyAtPiAyLjY2LjANCi0gW3hdIGF0LXNwaTItY29yZSAtPiAyLjM4LjANCi0gW3hdIGF0LXNw aTItYXRrIC0+IDIuMzguMA0KLSBbeF0gbGliZ3dlYXRoZXIgLT4gMy4zNi4xDQotIFt4XSBnbm9t ZS1tZW51cyAtPiAzLjM2LjANCi0gW3hdIGdub21lLWRlc2t0b3AgLT4gMy4zOC4wDQotIFt4XSBn bm9tZS1zZXR0aW5ncy1kYWVtb24gLT4gMy4zOC4wDQotIFt4XSBtdXR0ZXIgLT4gMy4zOC4wDQot IFt4XSBjaGVlc2UgLT4gMy4zOC4wDQotIFt4XSBldm9sdXRpb24tZGF0YS1zZXJ2ZXIgLT4gMy4z OC4wDQotIFt4XSBmb2xrcyAtPiAwLjE0LjANCi0gW3hdIGdub21lLW9ubGluZS1hY2NvdW50cyAt PiAzLjM3LjkwDQotIFt4XSBndmZzIC0+IDEuNDYuMA0KLSBbeF0gZ25vbWUtY29udHJvbC1jZW50 ZXIgLT4gMy4zOC4wDQotIFt4XSBkY29uZi1lZGl0b3IgLT4gMy4zOC4wDQotIFt4XSBnanMgLT4g MS42Ni4wDQotIFt4XSBnbm9tZS1zaGVsbCAtPiAzLjM4LjANCi0gW3hdIGdub21lLXNoZWxsLWV4 dGVuc2lvbnMgLT4gMy4zOC4wDQotIFt4XSBnZG0gLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1zZXNz aW9uIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtaW5pdGlhbC1zZXR1cCAtPiAzLjM4LjANCi0gW3hd IHhkZy1kZXNrdG9wLXBvcnRhbC1ndGsgLT4gMS44LjANCi0gW3hdIG5hdXRpbHVzIC0+IDMuMzgu MA0KLSBbeF0gZ25vbWUtbWFwcyAtPiAzLjM4LjANCi0gW3hdIGV2b2x1dGlvbiAtPiAzLjM4LjAN Ci0gW3hdIGV2b2x1dGlvbi1ld3MgLT4gMy4zOC4wDQotIFt4XSBweXRob24zLWF0c3BpIC0+IDIu MzguMA0KLSBbeF0gcHl0aG9uLWF0c3BpIC0+IDIuMzguMA0KLSBbeF0gb3JjYSAtPiAzLjM4LjAN Ci0gW3hdIGdub21lLXdlYXRoZXIgLT4gKHJldmJ1bXApDQotIFt4XSB2dGUzIC0+IDAuNjIuMA0K LSBbeF0gZ25vbWUtdGVybWluYWwgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1nZXR0aW5nLXN0YXJ0 ZWQtZG9jcyAtPiAzLjM2LjINCi0gW3hdIGdub21lLXVzZXItZG9jcyAtPiAzLjM4LjANCi0gW3hd IGdub21lLWVwdWItdGh1bWJuYWlsZXIgLT4gMS42DQotIFt4XSBnbm9tZS1ib29rcyAtPiAocmV2 YnVtcCkNCi0gW3hdIGdub21lLWNoYXJhY3RlcnMgLT4gKHJldmJ1bXApDQotIFt4XSBnbm9tZS1k b2N1bWVudHMgLT4gKHJldmJ1bXApDQotIFt4XSBnbm9tZS1mb250LXZpZXdlciAtPiAocmV2YnVt cCkNCi0gW3hdIHRvdGVtIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtc2NyZWVuc2F2ZXIgLT4gKHJl dmJ1bXAgKyBidWlsZCBmaXgpDQotIFt4XSBnbm9tZS1jbG9ja3MgLT4gMy4zOC4wDQotIFt4XSBl cGlwaGFueSAtPiAzLjM4LjANCi0gW3hdIGdub21lLWNvbnRhY3RzIC0+IDMuMzcuMg0KLSBbeF0g Z25vbWUtcGhvdG9zIC0+IDMuMzcuOTEuMQ0KLSBbeF0gZW9nIC0+IDMuMzguMA0KLSBbeF0gZXZp bmNlIC0+IDMuMzguMA0KLSBbeF0gZmlsZS1yb2xsZXIgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1j YWxlbmRhciAtPiAzLjM4LjANCi0gW3hdIGdub21lLW11c2ljIC0+IDMuMzguMA0KLSBbeF0gZ2Vk aXQgLT4gMy4zOC4wDQotIFt4XSBnZWRpdC1wbHVnaW5zIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUt bGF0ZXggLT4gMy4zOC4wDQotIFt4XSBiYW9iYWIgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1ib3hl cyAtPiAzLjM4LjANCi0gW3hdIGdub21lLWNhbGN1bGF0b3IgLT4gMy4zOC4wDQotIFt4XSBnbm9t ZS1kaXNrLXV0aWxpdHkgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1zY3JlZW5zaG90IC0+IDMuMzgu MA0KLSBbeF0gZ25vbWUtc3lzdGVtLW1vbml0b3IgLT4gMy4zOC4wDQotIFt4XSBhZHdhaXRhLWlj b24tdGhlbWUgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1iYWNrZ3JvdW5kcyAtPiAzLjM4LjANCi0g W3hdIHNpbXBsZS1zY2FuIC0+IDMuMzguMA0KLSBbeF0gcnlnZWwgLT4gMC40MC4wDQotIFt4XSBn bm9tZS1idWlsZGVyIC0+IDMuMzguMA0KLSBbeF0gcmV0cm8tZ3RrIC0+IDEuMC4wDQotIFt4XSBn bm9tZS1nYW1lcyAtPiAzLjM4LjANCi0gW3hdIGdub21lLXBhbmVsIC0+IDMuMzcuMQ0KLSBbeF0g bWV0YWNpdHkgLT4gMy4zNy4xDQotIFt4XSBnbm9tZS1mbGFzaGJhY2sgLT4gMy4zNy4zDQotIFt4 XSBidWRnaWUtZGVza3RvcCAtPiAocmVidWlsZCkNCg0KIyMgTWVyZ2VkDQoNCi0gW3hdIGxpYnNp Z2MrKzMgLT4gMy4wLjMgKG5ldykNCi0gW3hdIG1tLWNvbW1vbiAtPiAxLjAuMQ0KLSBbeF0gZ2xp Ym1tIC0+IDIuNjQuMg0KLSBbeF0gcGFuZ29tbSAtPiAyLjQyLjENCi0gW3hdIGxpYm5vdGlmeSAt PiAwLjcuOQ0KLSBbeF0gYXRrIC0+IDIuMzYuMA0KLSBbeF0gZ3RrKzMgLT4gMy4yNC4yMg0KLSBb eF0gbGlicG9ydGFsIC0+IDAuMyAobmV3KQ0KLSBbeF0gY29nbCAtPiAxLjIyLjI4DQotIFt4XSBn ZW9jb2RlLWdsaWIgLT4gMy4yNi4yDQotIFt4XSBnZmJncmFwaCAtPiAwLjIuNA0KLSBbeF0gbGli Z3NmIC0+IDEuMTQuNDcNCi0gW3hdIGxpYnNlY3JldCAtPiAwLjIwLjMNCi0gW3hdIGxpYmNoYW1w bGFpbiAtPiAwLjEyLjIwDQotIFt4XSBnb20gLT4gMC40DQotIFt4XSBnc3NkcCAtPiAxLjIuMw0K LSBbeF0gZ3RrLXZuYyAtPiAxLjAuMCAoZHJvcHMgdW51c2VkIGd0azIgc3VwcG9ydCkNCi0gW3hd IGd1cG5wIC0+IDEuMi40DQotIFt4XSBnbm9tZS12aWRlby1lZmZlY3RzIC0+IDAuNS4wDQotIFt4 XSBnbGliIC0+IDIuNjYuMA0KLSBbeF0gd2Via2l0Mmd0ayAtPiAyLjMwLjANCi0gW3hdIG1vempz NzggLT4gNzguMi4wIChuZXcpDQoNCiMjIE5vIHVwZGF0ZXMNCg0KLSBwb2xhcmkgKG5vIG5ld2Vy IHN0YWJsZSB2ZXJzaW9uKQ0KLSBndGs0IChubyBzdGFibGUgdmVyc2lvbiB5ZXQpCgpBIHBhdGNo IGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1 bGwvMjQyNjAucGF0Y2ggaXMgYXR0YWNoZWQ= --===============4857251706471208453== 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 LzEwMl0geWVscC14c2w6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXhzbC90 ZW1wbGF0ZSB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZSBiL3NyY3Br Z3MveWVscC14c2wvdGVtcGxhdGUKaW5kZXggZjc0YTdmYmE2N2MuLjI2MDc5MmI1YmY1IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3llbHAteHNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVscC14c2wv dGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5ZWxwLXhzbCcK IHBrZ25hbWU9eWVscC14c2wKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNp b249MQotYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRl cGVuZHM9InBrZy1jb25maWcgaW50bHRvb2wgaXRzdG9vbCBsaWJ4c2x0IgogbWFrZWRlcGVuZHM9 ImxpYnhzbHQtZGV2ZWwiCkBAIC0xMSw0ICsxMCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9ZZWxwL1hzbCIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTRmZTUxYzAyMzNiNzlhNGMyMDRjNjg0OThkNDVmMDliMzQy YzMwZWQwMmM0ZTQxODUwNmMwZTM1ZjA5MDRlYzMKK2NoZWNrc3VtPTEzYmNjMjAxMWM0YzU1Mzg0 MTc0ZDE4YzdiMmYwMDE1YTk2YjA0ZWZkMjRmM2Y2NDZhZjJlNzE2N2U3YWIwZDcKCkZyb20gMmQx NjU4N2NjOTRlMDNjODI2NDUxZDQ5NmRjMzA4NTRhODc5M2M0NSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTcgU2VwIDIwMjAgMDE6NTU6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAwMi8xMDJdIHll bHAtdG9vbHM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBs YXRlIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dz L3llbHAtdG9vbHMvdGVtcGxhdGUKaW5kZXggOWU4YTY3MGU2YjAuLjM1MDYxMGUzMzk3IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy95ZWxwLXRv b2xzL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAneWVscC10 b29scycKIHBrZ25hbWU9eWVscC10b29scwotdmVyc2lvbj0zLjMyLjIKK3ZlcnNpb249My4zOC4w CiByZXZpc2lvbj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpdHN0b29sIGxpYnhzbHQiCiBtYWtlZGVwZW5kcz0i eWVscC14c2wiCkBAIC0xMiw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHA6Ly93d3cuZ25vbWUub3JnIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MTgzODU2YjVlZDBiMGJiMmMwNWRkMTIwNGFmMDIzOTQ2ZWQ0MzY5NDNlMzVlNzg5YWZiMDI5NWU1 ZTcxZThmOQorY2hlY2tzdW09NjA3Y2U0YjNlZTg1MTdjNDJkYjkyNGEwMWE3ODY2MGEwMzMxNzU5 NWM3NTgyNTczMWVhODZhOTIwZTJiMDRiMAoKRnJvbSA1OTI0ZTEwYWUyZWJlYzYzNDBiNTQzNTg0 ODZjYWI2MTQ2YWU4MmNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMTo1Mzow NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAzLzEwMl0geWVscDogdXBkYXRlIHRvIDMuMzguMAoK LS0tCiBzcmNwa2dzL3llbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwL3Rl bXBsYXRlIGIvc3JjcGtncy95ZWxwL3RlbXBsYXRlCmluZGV4IDYzY2E3YzIyNWM4Li5kMTQxZDgw ZDQzNiAxMDA2NDQKLS0tIGEvc3JjcGtncy95ZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVs cC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3llbHAnCiBw a2duYW1lPXllbHAKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zY2hl bWFzLWNvbXBpbGUgLS1kaXNhYmxlLXN0YXRpYyIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1llbHAiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mZDRiM2UyM2QzMWFkMmJlYmU0MmFjOGY4 MDI0MmIyZDliZWY1MTQxOGJmNjJiNTlhY2RmMjQ0MGJkOTRlZDI0CitjaGVja3N1bT1kN2NkY2Uw ZTZkYmE1MTNiNGRmMTA5YzFmYTdlZmZjYmYwOGJiM2Y0ZDAwZDllNzkyYzdlZGYzNDU0NGY5NjU4 CiAKIHllbHAtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJ5ZWxwLSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCgpGcm9tIGU3NWZlZDlkNjc3MmQ2OTFjZTE4MjI1ZWQzNWNhMTIxYzgyZWEyMTkg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjI5OjIxICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwMDQvMTAyXSB2YWxhOiB1cGRhdGUgdG8gMC41MC4wCgotLS0KIGNvbW1vbi9zaGxp 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 IDIwOjMwOjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMDUvMTAyXSB2YWxhZG9jOiB1cGRhdGUg 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 U3ViamVjdDogW1BBVENIIDAwNi8xMDJdIHZhbGFiaW5kOiByZWJ1aWxkIGZvciB2YWxhLTAuNTAK Ci0tLQogc3JjcGtncy92YWxhYmluZC9wYXRjaGVzL3ZhbGEtMDUwLnBhdGNoIHwgMjUgKysrKysr KysrKysrKysrKysrKysrKysrKwogc3JjcGtncy92YWxhYmluZC90ZW1wbGF0ZSAgICAgICAgICAg ICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1 MC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5w YXRjaCBiL3NyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmQ3YzZhNzQzNDUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3ZhbGFiaW5kL3BhdGNoZXMvdmFsYS0wNTAucGF0Y2gKQEAgLTAsMCArMSwy NSBAQAorRnJvbSBmOTQyMzE1NDAyZTNmYzM4ZGVmMTRhOTc0ZGQ1YjIxMGU1ZDJjMzhkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjM5OjI5ICswMjAwCitTdWJqZWN0OiBb UEFUQ0hdIGZpeCB3aXRoIHZhbGEtMC41MAorCistLS0KKyB2YWxhYmluZHdyaXRlci52YWxhIHwg MiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitk aWZmIC0tZ2l0IHZhbGFiaW5kd3JpdGVyLnZhbGEgdmFsYWJpbmR3cml0ZXIudmFsYQoraW5kZXgg MTY1Y2RmNS4uYzc5M2M5ZiAxMDA2NDQKKy0tLSB2YWxhYmluZHdyaXRlci52YWxhCisrKysgdmFs YWJpbmR3cml0ZXIudmFsYQorQEAgLTMzLDcgKzMzLDcgQEAgcHVibGljIGNsYXNzIFZhbGFiaW5k V3JpdGVyIDogQ29kZVZpc2l0b3IgeworIAkJaWYgKGdsaWJtb2RlKQorIAkJCWNvbnRleHQuYWRk X2RlZmluZSAoIkdPQkpFQ1QiKTsKKyAJCS8vIHJlcXVpcmVkIHRvIGF2b2lkIHVnbHkgcnVudGlt ZSBlcnJvcnMKKy0JCWNvbnRleHQucHJvZmlsZSA9IFByb2ZpbGUuR09CSkVDVDsKKysJCWNvbnRl eHQuc2V0X3RhcmdldF9wcm9maWxlKFByb2ZpbGUuR09CSkVDVCk7CisgCX0KKyAKKyAJcHVibGlj IHZvaWQgcGFyc2UgKCkgeworLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy92YWxh YmluZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmFsYWJpbmQvdGVtcGxhdGUKaW5kZXggZjZmOTMxYzMw MzMuLjJiZjBkZjMzNmUzIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZhbGFiaW5kL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvdmFsYWJpbmQvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICd2YWxhYmluZCcKIHBrZ25hbWU9dmFsYWJpbmQKIHZlcnNpb249MS43LjEKLXJl dmlzaW9uPTUKK3JldmlzaW9uPTYKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgdmFsYS1kZXZlbCBnaXQiCiBtYWtlZGVwZW5kcz0idmFsYS1kZXZlbCBnbGli LWRldmVsIgoKRnJvbSBmMDE5NmM5NTBjNWU4MzEwMjg2YTYwZmViOGQxMzgzNzk1NzcwN2YzIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDA3LzEwMl0gZGV2aGVscDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2Rl dmhlbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlIGIv c3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCmluZGV4IGExYzJkY2JiNzYyLi44NmIzNzc2YWRmZCAx MDA2NDQKLS0tIGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZGV2aGVs cC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2RldmhlbHAn CiBwa2duYW1lPWRldmhlbHAKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNp b249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtMTEsNyArMTEs NyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvRGV2aGVscCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjZjhlYzkz MDJiYzRhNzllMDFhYzUzYmQ5YzhiOTVhNTk2ZjcxZjM1MzUxZjQ4YjYzMjYzMjI3ZjA5YThhM2QK K2NoZWNrc3VtPTkxOGVmYjE3MzEyMmIyNmQ0NWZhNTFjMTk0YTBiNjU5ZTYzZmVlNzcwNWY2NzIy ZGIyNTM0ZmFiYzM0NTIzNjkKIAogZGV2aGVscC1kZXZlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rl c2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKCkZyb20gMDQ3MWU0MzhhYzJkMTAwM2NhMjJjYzk0 MjA0MzAyZDgzZDM3ZjViZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x Pz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgU2VwIDIwMjAgMjA6MjI6NDMgKzA3MDAK U3ViamVjdDogW1BBVENIIDAwOC8xMDJdIGdkbDogdXBkYXRlIHRvIDMuMzQuMC4KCi0tLQogc3Jj cGtncy9nZGwvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dkbC90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ2RsL3RlbXBsYXRlCmluZGV4IGQ1YjE4MGJkNDNiLi4zNWJlZTgwM2Y5NiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nZGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZGwvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZGwnCiBwa2duYW1lPWdkbAot dmVyc2lvbj0zLjI4LjAKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zNC4wCityZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9h cmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSIKQEAgLTEyLDcgKzEyLDcgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkxHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L2RldmVsb3Blci5nbm9tZS5vcmcvZ2RsLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTUyY2M5OGVjYzEwNTE0ODQ2N2IzYjJiNGUwZDI3YWU0ODRiMWI2NzEwZDUzNDEzZjc3MWVk MDdlZjFiNzM3YjYKK2NoZWNrc3VtPTg1OGIzMGYwY2RjZTRjNGNiM2U4MzY1YTdkNTRjZTU3YzM4 OGJlZmYzOGVhNTgzYmU1NDQ5YmM3OGRkYThkMDIKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMK IGJ1aWxkX29wdGlvbnM9ImdpciIKCkZyb20gYjAxNWMzMTRiN2NlNzdhYWRhYmY2MjU1ZmI5Nzcx ZmM0MzY3NTZmOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MTY6NDUgKzAy MDAKU3ViamVjdDogW1BBVENIIDAwOS8xMDJdIGxpYnNvdXA6IHVwZGF0ZSB0byAyLjcyLjAKCi0t LQogc3JjcGtncy9saWJzb3VwL3RlbXBsYXRlIHwgMjUgKysrKysrKysrKysrKystLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGlic291cC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlic291cC90ZW1w bGF0ZQppbmRleCBmN2E5ODM3M2FjOC4uMWJhOGY4YTU4MjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv bGlic291cC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUKQEAgLTEsMTYg KzEsMTYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYnNvdXAnCiBwa2duYW1lPWxpYnNvdXAK LXZlcnNpb249Mi43MC4wCit2ZXJzaW9uPTIuNzIuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2Fi bGVkIC1EbnRsbT1kaXNhYmxlZAotIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIGVuYWJs ZWQgZGlzYWJsZWQpCi0gLUR2YXBpPSQodm9wdF9pZiB2YWxhIGVuYWJsZWQgZGlzYWJsZWQpIC1E dGxzX2NoZWNrPWZhbHNlIgorY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2FibGVkIC1EbnRs bT1kaXNhYmxlZCAtRHN5c3Byb2Y9ZGlzYWJsZWQKKyAtRHRsc19jaGVjaz1mYWxzZSAtRGludHJv c3BlY3Rpb249JCh2b3B0X2lmIGdpciBlbmFibGVkIGRpc2FibGVkKQorIC1EdmFwaT0kKHZvcHRf aWYgZ2lyIGVuYWJsZWQgZGlzYWJsZWQpIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0LWRldmVs IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyBnZXR0ZXh0Ci0gJCh2b3B0X2lmIHZhbGEgJ3ZhbGEnKSIK KyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGlieG1s Mi1kZXZlbCBzcWxpdGUtZGV2ZWwgbGlicHNsLWRldmVsCi0gYnJvdGxpLWRldmVsICQodm9wdF9p ZiB2YWxhICd2YWxhLWRldmVsJykiCisgYnJvdGxpLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1k ZXZlbCkiCiBkZXBlbmRzPSJnbGliLW5ldHdvcmtpbmciCiBzaG9ydF9kZXNjPSJIVFRQIGxpYnJh cnkgaW1wbGVtZW50YXRpb24gaW4gQyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCkBAIC0xOCwxMSArMTgsMTYgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9saWJzb3Vw IgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvbGli c291cC9nbm9tZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01 NGIwMjBmNzRhZWZhNDM4OTE4ZDhlNTNjZmY2MmUyYjFlNTllZmUyZGU1M2UwNmIxOWE0YjA3YjFm NGQ1MzQyCitjaGVja3N1bT0xNzBjM2Y4NDQ2YjBmNjVmOGU0YjkzNjAzMzQ5MTcyYjEwODVmYjg5 MTdjMTgxZDEwOTYyZjAyYmI4NWY1Mzg3CiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWls ZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCiti dWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKKworIyBnaW8g dGVzdHMgY2FuJ3QgcnVuIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQogCiBsaWJzb3Vw LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gbGlic291cD49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKQEAgLTMxLDggKzM2LDYgQEAgbGlic291cC1kZXZlbF9wYWNr YWdlKCkgewogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZy9saWJzb3VwLTIuNC5wYwogCQlpZiBb ICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAv U291cC0yLjQuZ2lyCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgog CQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAkJdm1vdmUgdXNyL2luY2x1ZGUvbGlic291 cC0yLjQKCkZyb20gMDE5MmY5MjI0ZjRjNDI0OTgxOWRmNzM3YjIxMzcxOWZlNzU1Y2U1MSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDE6MTA6MjIgKzAyMDAKU3ViamVjdDogW1BB VENIIDAxMC8xMDJdIGdyaWxvOiB1cGRhdGUgdG8gMC4zLjEzLCBkcm9wIHZhbGEgb3B0aW9uCgot LS0KIHNyY3BrZ3MvZ3JpbG8vdGVtcGxhdGUgfCAxNiArKysrKysrLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ3JpbG8vdGVtcGxhdGUgYi9zcmNwa2dzL2dyaWxvL3RlbXBsYXRlCmluZGV4IDRhNmFi NGNhYmUzLi42NGJhZTliZDRlMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ncmlsby90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dyaWxvL3RlbXBsYXRlCkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdncmlsbycKIHBrZ25hbWU9Z3JpbG8KLXZlcnNpb249MC4zLjEyCit2ZXJzaW9u PTAuMy4xMwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2ly IgotY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlLWludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0 cnVlIGZhbHNlKQotIC1EZW5hYmxlLXZhbGE9JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSAtRGVu YWJsZS1ndGstZG9jPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcg Z2xpYi1kZXZlbCAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRf Ym9vbCBnaXIgZW5hYmxlLWludHJvc3BlY3Rpb24pICQodm9wdF9ib29sIGdpciB2YWxhKQorIC1E ZW5hYmxlLWd0ay1kb2M9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZp ZyBnbGliLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2 ZWwgbGlieG1sMi1kZXZlbCBsaWJzb3VwLWRldmVsIGxpYm9hdXRoLWRldmVsCiAgdG90ZW0tcGwt cGFyc2VyLWRldmVsIgogc2hvcnRfZGVzYz0iRnJhbWV3b3JrIGZvY3VzZWQgb24gbWFraW5nIG1l ZGlhIGRpc2NvdmVyeSBhbmQgYnJvd3NpbmcgZWFzeSIKQEAgLTE0LDExICsxNCwxMSBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL2xpdmUuZ25vbWUub3JnL0dyaWxvIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZGJmYmQ2MDgyMTAzMjg4NTkyYWY5NzU2 ODE4MGI5Y2M4MWEzMzZhMjc0ZWQ1MTYwNDEyZjg3Njc1ZWMxMWE3MQorY2hlY2tzdW09ZDE0ODM3 ZjIyMzQxOTQzZWQ4YTE4OWQ5ZjA4MjdhMTcwMTZiODAyZDE4ZDBlZDA4MGUxNDEzZGUwZmRjOTI3 YgogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1i dWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVp bGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGdyaWxvLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVw ZW5kcz0iJHttYWtlZGVwZW5kc30gZ3JpbG8+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0y Nyw4ICsyNyw2IEBAIGdyaWxvLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRl CiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUv Z2lyLTEuMAotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZt b3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCgpGcm9t IGUwNzZkMzllMzJlNzU5YzU2YWU1MWM4YWNmOGE3YTg2NmQwNjMwNzMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDE3IFNlcCAyMDIwIDAxOjE1OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMTEvMTAy 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 dDogW1BBVENIIDAxMi8xMDJdIGd0a3NvdXJjZXZpZXc0OiB1cGRhdGUgdG8gNC44LjAKCi0tLQog c3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZSB8IDMxICsrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlIGIvc3Jj cGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQppbmRleCA2ODQ4NzE2NzczYy4uNDRlMmVlODY5 ZjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Rrc291cmNldmlldzQvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQpAQCAtMSwzMiArMSwzNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ3Rrc291cmNldmlldzQnCiBwa2duYW1lPWd0a3NvdXJjZXZpZXc0Ci12ZXJz aW9uPTQuMi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTQuOC4wCityZXZpc2lvbj0xCiB3cmtzcmM9 Imd0a3NvdXJjZXZpZXctJHt2ZXJzaW9ufSIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2J1 aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItLWVu YWJsZS1nbGFkZS1jYXRhbG9nICQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCi0gJCh2 b3B0X2VuYWJsZSB2YWxhKSAkKHZvcHRfZW5hYmxlIGd0a19kb2MgZ3RrLWRvYykiCitjb25maWd1 cmVfYXJncz0iLURnbGFkZV9jYXRhbG9nPXRydWUgJCh2b3B0X2Jvb2wgZ2lyIGdpcikKKyAkKHZv cHRfYm9vbCBnaXIgdmFwaSkgJCh2b3B0X2Jvb2wgZ3RrX2RvYyBndGtfZG9jKSIKIGhvc3RtYWtl ZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIGxpYnhzbHQgcGtnLWNvbmZp ZwotICQodm9wdF9pZiB2YWxhIHZhbGEpICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgorICQo dm9wdF9pZiBnaXIgdmFsYSkgJCh2b3B0X2lmIGd0a19kb2MgZ3RrLWRvYykiCiBtYWtlZGVwZW5k cz0iZ2xhZGUzLWRldmVsIGd0ayszLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlieG1sMi1kZXZlbAot ICQodm9wdF9pZiB2YWxhIHZhbGEpIgorICQodm9wdF9pZiBnaXIgdmFsYSkiCiBzaG9ydF9kZXNj PSJUZXh0IHdpZGdldCB0aGF0IGV4dGVuZHMgR1RLKyBHdGtUZXh0VmlldyB3aWRnZXQiCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3Rz L0d0a1NvdXJjZVZpZXciCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ3Rrc291cmNldmlldy8k e3ZlcnNpb24lLip9L2d0a3NvdXJjZXZpZXctJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1j NDMxZWIyMzRkYzgzYzc4MTllNThmNzdkZDJhZjk3MzI1MmM3NzUwZGExYzlkMTI1ZGRjOTQyNjhm OTRmNjc1CitjaGVja3N1bT0wMGExOTEyMTUwMGNlZGYxYmFlOTdmMzVhZjg2NWQ4Mzk4NDFmZDc4 NWQ5ZmFjZjE4ODQ5OGUxMzk3NWI0ZTFhCiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWls ZF9vcHRpb25zPSJnaXIgdmFsYSBndGtfZG9jIgorYnVpbGRfb3B0aW9ucz0iZ2lyIGd0a19kb2Mi CiBkZXNjX29wdGlvbl9ndGtfZG9jPSJCdWlsZCBBUEkgZG9jcyB2aWEgZ3RrLWRvYyIKLWJ1aWxk X29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIK IAogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJYnVpbGRfb3B0aW9uc19kZWZhdWx0 Kz0iIGd0a19kb2MiCiBmaQogCisjIE5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30KKwogZ3Rr c291cmNldmlldzQtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJn bGliLWRldmVsIGxpYnhtbDItZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNp b259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKQEAgLTM1LDEyICs0MCwx MiBAQCBndGtzb3VyY2V2aWV3NC1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvbGliL3Br Z2NvbmZpZwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSB1c3Ivc2hhcmUvZ2xhZGUK LQkJdm1vdmUgdXNyL3NoYXJlL2d0ay1kb2MKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBd OyB0aGVuCi0JCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQorCQlpZiBbICIkYnVpbGRfb3B0aW9uX2d0 a19kb2MiIF07IHRoZW4KKwkJCXZtb3ZlIHVzci9zaGFyZS9ndGstZG9jCiAJCWZpCiAJCWlmIFsg IiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAor CQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CiB9CgpGcm9tIDI5OTAxNmVlZmY4ODA1 ODIyNDkzZjUyZTM3MmM0NzdhODU4ZGQwNTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1ZyAy MDIwIDAwOjEyOjE2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMTMvMTAyXSB0ZXBsOiB1cGRhdGUg 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 MjAyMCAyMDoyNzoyMiArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDE0LzEwMl0gZ2xhZGUzOiB1cGRh 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 UEFUQ0ggMDE1LzEwMl0gbGliaGFuZHk6IHJlYnVpbGQgZm9yIGdsYWRlMy0zLjM4LjAsIG1vdmVk IHRvIEdOT01FCgotLS0KIHNyY3BrZ3MvbGliaGFuZHkvdGVtcGxhdGUgfCAxNCArKysrKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saWJoYW5keS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGliaGFuZHkv dGVtcGxhdGUKaW5kZXggMzg2NzJmMWZiNmUuLmMxOWMzODk3ZWZhIDEwMDY0NAotLS0gYS9zcmNw a2dzL2xpYmhhbmR5L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliaGFuZHkvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJoYW5keScKIHBrZ25hbWU9bGli aGFuZHkKIHZlcnNpb249MC4wLjEzCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9Imxp YmhhbmR5LXYke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2ly IgpAQCAtMTQsMTQgKzE0LDIwIEBAIG1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJnbGliLWRl dmVsICQodm9wdF9pZiBnbGFkZSBnbGFkZTMtZGV2ZWwpIgogc2hvcnRfZGVzYz0iTGlicmFyeSBm dWxsIG9mIEdUSysgd2lkZ2V0cyBmb3IgbW9iaWxlIHBob25lcyIKIG1haW50YWluZXI9Ik9ycGhh bmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIK LWhvbWVwYWdlPSJodHRwczovL3NvdXJjZS5wdXJpLnNtL0xpYnJlbTUvbGliaGFuZHkiCi1kaXN0 ZmlsZXM9Imh0dHBzOi8vc291cmNlLnB1cmkuc20vTGlicmVtNS9saWJoYW5keS8tL2FyY2hpdmUv diR7dmVyc2lvbn0vbGliaGFuZHktdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09MTM4YmVj OTRlNjZkMTVhN2ExOTM1MGI2NTg0NWQ0NTI5YmNkOTY5ZWE5MTNhYjNlYjQzOGY1NmZlNDdkNWQz NworaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJoYW5keSIKK2Rp c3RmaWxlcz0iJGhvbWVwYWdlLy0vYXJjaGl2ZS92JHt2ZXJzaW9ufS9saWJoYW5keS12JHt2ZXJz aW9ufS50YXIuZ3oiCitjaGVja3N1bT02NDUzNTVhMDA5ZjIzZjI1NGVhZWM3NzUyYjk0ODljM2My ZjU4MzIzOTdmY2VjNzU0MzNhN2UwMGVmYmZlNTJmCiAKIGJ1aWxkX29wdGlvbnM9ImdpciB2YWxh IGdsYWRlIgogZGVzY19vcHRpb25fZ2xhZGU9IkdlbmVyYXRlIGdsYWRlIG1vZHVsZXMgYW5kIGNh dGFsb2cgZmlsZXMiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIGdsYWRlIgogCisj IGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJoYW5keS8tL21lcmdlX3JlcXVlc3Rz LzU1OQorQ0ZMQUdTPSItREdQQ19PQkpFQ1RfREVMSU1JVEVSPUdMQURFX1BST1BFUlRZX0RFRl9P QkpFQ1RfREVMSU1JVEVSIgorQ0ZMQUdTKz0iIC1EZ2xhZGVfd2lkZ2V0X2FjdGlvbl9nZXRfY2xh c3M9Z2xhZGVfd2lkZ2V0X2FjdGlvbl9nZXRfZGVmIgorIyBodHRwczovL2dpdGxhYi5nbm9tZS5v cmcvR05PTUUvZ2xhZGUvLS9jb21taXQvYmI2MjZkZAorQ0ZMQUdTKz0iIC1ER1dBX0dFVF9DTEFT Uz1HTEFERV9XSURHRVRfQURBUFRPUl9HRVRfQURBUFRPUl9DTEFTUyIKKwogbGliaGFuZHktZGV2 ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0gZ3RrKzMtZGV2ZWwiCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgoK RnJvbSA3YzRiNzNkNTNkYzRhYWNhODE1NTYxOThkZWRlZmY3M2ZmNGZmMjU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCAxNCBTZXAgMjAyMCAyMDozNDo0NiArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDE2LzEwMl0gbGli aGFuZHkxOiB1cGRhdGUgdG8gMS4wLjAKCi0tLQogc3JjcGtncy9saWJoYW5keTEvdGVtcGxhdGUg fCA3ICsrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJoYW5keTEvdGVtcGxhdGUgYi9zcmNwa2dzL2xp YmhhbmR5MS90ZW1wbGF0ZQppbmRleCAxOTFlNjk4YjBkNi4uNTQ3YWZjY2FhMTEgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvbGliaGFuZHkxL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliaGFuZHkxL3Rl bXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliaGFuZHkxJwog cGtnbmFtZT1saWJoYW5keTEKLXZlcnNpb249MC45MC4wCit2ZXJzaW9uPTEuMC4wCiByZXZpc2lv bj0xCiB3cmtzcmM9ImxpYmhhbmR5LSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAt MTYsMTIgKzE2LDE1IEBAIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3NvdXJj ZS5wdXJpLnNtL0xpYnJlbTUvbGliaGFuZHkiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vbGli aGFuZHkvJHt2ZXJzaW9uJS4qfS9saWJoYW5keS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTZhYjA4NjlhM2FhNDgzMjk4ZWEyMGVjODlkNGMxNGMzOGJhNGRlNDE2YjMzMTgxZDIxZTE1YTYw MzlkZjU5ODUKK2NoZWNrc3VtPWE5Mzk4NTgyZjQ3YjdkNzI5MjA1ZDZlYWMwYzA2OGZlZjM1YWFm MjQ5ZmRkNTdlZWEzNzI0Zjg1MThkMjY2OTkKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIGdsYWRlIgog ZGVzY19vcHRpb25fZ2xhZGU9IkdlbmVyYXRlIGdsYWRlIG1vZHVsZXMgYW5kIGNhdGFsb2cgZmls ZXMiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciBnbGFkZSIKIAorIyBodHRwczovL2dpdGxh Yi5nbm9tZS5vcmcvR05PTUUvZ2xhZGUvLS9jb21taXQvYmI2MjZkZAorQ0ZMQUdTPSItREdXQV9H RVRfQ0xBU1M9R0xBREVfV0lER0VUX0FEQVBUT1JfR0VUX0FEQVBUT1JfQ0xBU1MiCisKIGxpYmhh bmR5MS1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSBndGsrMy1kZXZlbCIKIAljb25mbGljdHM9ImxpYmhhbmR5LWRldmVsPj0w IgoKRnJvbSAxYWE5ODczOTc2NzEyMjZmYzI0NWQwM2FhZGZmNjA0MjY1YjRhYjdjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1C QT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTog VHVlLCAxNSBTZXAgMjAyMCAwNTo0MTowMSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDE3LzEwMl0g bGlieGZjZTR1aTogcmVidWlsZCBmb3IgZ2xhZGUzLTMuMzguMAoKLS0tCiBzcmNwa2dzL2xpYnhm Y2U0dWkvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUgYi9z cmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUKaW5kZXggMjVhNWM0Nzk5NTUuLjBhNjJhZDE4MmI0 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9s aWJ4ZmNlNHVpL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn bGlieGZjZTR1aScKIHBrZ25hbWU9bGlieGZjZTR1aQogdmVyc2lvbj00LjE0LjEKLXJldmlzaW9u PTQKK3JldmlzaW9uPTUKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0i Z2lyIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMiCgpGcm9tIGYyY2ZmMjk1OTNh NDQ2ZDU1MTIxMjc3YTJiNDY1ZTA4ZmJhOGM4ZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMTgvMTAyXSBsaWJkYXp6bGU6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUgfCAyNCAr KysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCsp LCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmRhenpsZS90ZW1wbGF0 ZSBiL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlCmluZGV4IDVhYzA5ZmVlZmM5Li45YjgwN2Jl OTQ3NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9saWJkYXp6bGUvdGVtcGxhdGUKQEAgLTEsMjMgKzEsMjkgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2xpYmRhenpsZScKIHBrZ25hbWU9bGliZGF6emxlCi12ZXJzaW9uPTMuMzYuMAordmVyc2lv bj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9Imdp ciIKLWNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZV9ndGtfZG9jPWZhbHNlIC1Ed2l0aF92YXBpPSQo dm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0gLUR3aXRoX2ludHJvc3BlY3Rpb249JCh2b3B0X2lm IGdpciB0cnVlIGZhbHNlKSIKLWhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBwa2ctY29uZmln ICQodm9wdF9pZiB2YWxhICd2YWxhJykiCitjb25maWd1cmVfYXJncz0iLURlbmFibGVfZ3RrX2Rv Yz1mYWxzZQorICQodm9wdF9ib29sIGdpciB3aXRoX3ZhcGkpCisgJCh2b3B0X2Jvb2wgZ2lyIHdp dGhfaW50cm9zcGVjdGlvbikiCitob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZp ZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imd0ayszLWRldmVsIGxpYmdsaWIt ZGV2ZWwiCiBzaG9ydF9kZXNjPSJMaWJyYXJ5IHRvIGRlbGlnaHQgeW91ciB1c2VycyB3aXRoIGZh bmN5IGZlYXR1cmVzIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRs YWIuZ25vbWUub3JnL0dOT01FL2xpYmRhenpsZSIKLWNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0 aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2xpYmRhenpsZS9saWJkYXp6bGUtMy0zMi9ORVdTIgor Y2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGliZGF6emxlLy0vcmF3 LyR7dmVyc2lvbn0vTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9saWJkYXp6bGUvJHt2 ZXJzaW9uJS4qfS9saWJkYXp6bGUtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04MmIzMWJi ZjU1MGZjNjI5NzBjNzhiZjdmOWQ1NWU1ZmFlNWI4ZWExM2IyNGZlMmQxM2M4YzYwMzk0MDlkOTU4 CitjaGVja3N1bT1lMThhZjI4MjE3OTQzYmNlYzEwNjU4NTI5OGE5MWVjM2RhNDhhYTNhZDYyZmQw OTkyZjIzZjBjNzBjZDE2NzhmCiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0 aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlv bnNfZGVmYXVsdD0iZ2lyIgorCisjIG5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30KIAogbGli ZGF6emxlLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9LSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0gZ3RrKzMtZGV2ZWwiCkBAIC0yOCw4ICszNCw2IEBAIGxpYmRhenpsZS1k ZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQlpZiBbICIkYnVpbGRf b3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKLQkJZmkKLQkJ aWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFs YQogCQlmaQogCX0KCkZyb20gY2ZiNzQxN2IxYjE0OGZlZWI0M2U3ZWViM2M2OTMzNDUxNjg1ZWJj NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBu PTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5j b20+CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMjAgMDU6NDM6MTMgKzA3MDAKU3ViamVjdDogW1BBVENI IDAxOS8xMDJdIGFuanV0YTogcmVidWlsZCBmb3IgZ2xhZGUzLTMuMzguMCwgdmFsYS0wLjUwCgot LS0KIHNyY3BrZ3MvYW5qdXRhL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hbmp1dGEvdGVt cGxhdGUgYi9zcmNwa2dzL2FuanV0YS90ZW1wbGF0ZQppbmRleCBjMjFjOTI3Y2QxMi4uYjQ2ZDU4 YWVhZmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYW5qdXRhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv YW5qdXRhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYW5q dXRhJwogcGtnbmFtZT1hbmp1dGEKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0zCityZXZpc2lv bj00CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciBxZW11Igog Y29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1jb21waWxlLXdhcm5pbmdzIC0tZGlzYWJsZS1zY2hl bWFzLWNvbXBpbGUKCkZyb20gMzIxMzQzMzgzMjEzYzlhMzU5MjI0MDAwMDIzMTczMTg1MWViMTZj ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDU6Mjg6MTQgKzAyMDAKU3ViamVj dDogW1BBVENIIDAyMC8xMDJdIHN5c3Byb2Y6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9u 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 UEFUQ0ggMDIxLzEwMl0gdHJhY2tlcjogdXBkYXRlIHRvIDIuMy42CgotLS0KIC4uLi90cmFja2Vy L3BhdGNoZXMvZmFpbGluZy10ZXN0LW11c2wucGF0Y2ggICB8IDI0ICsrKysrKysrKysrKysrKysr KysKIHNyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICA5ICsr Ky0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RyYWNrZXIvcGF0Y2hlcy9mYWlsaW5nLXRlc3Qt bXVzbC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlci9wYXRjaGVzL2ZhaWxpbmct dGVzdC1tdXNsLnBhdGNoIGIvc3JjcGtncy90cmFja2VyL3BhdGNoZXMvZmFpbGluZy10ZXN0LW11 c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZmMThmMDZk ZTliCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90cmFja2VyL3BhdGNoZXMvZmFpbGluZy10 ZXN0LW11c2wucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorRnJvbSA1ZWU3ZDU4ZjE5NTQyZDFkYWM4 NzJiYWRkNzI2NjllZTI4OGJkMzE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIw IDIyOjExOjUwICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGRyb3AgdGVzdCB0aGF0IGZhaWxzIG9u IG11c2wKKworLS0tCisgdGVzdHMvbGlidHJhY2tlci1jb21tb24vbWVzb24uYnVpbGQgfCAxIC0K KyAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IHRlc3RzL2xpYnRy YWNrZXItY29tbW9uL21lc29uLmJ1aWxkIHRlc3RzL2xpYnRyYWNrZXItY29tbW9uL21lc29uLmJ1 aWxkCitpbmRleCA1NWI3YWRhLi42OTY4OGUwIDEwMDY0NAorLS0tIHRlc3RzL2xpYnRyYWNrZXIt Y29tbW9uL21lc29uLmJ1aWxkCisrKysgdGVzdHMvbGlidHJhY2tlci1jb21tb24vbWVzb24uYnVp bGQKK0BAIC0yLDcgKzIsNiBAQCBsaWJ0cmFja2VyX2NvbW1vbl90ZXN0cyA9IFsKKyAgICAgJ2Rh dGUtdGltZScsCisgICAgICdkYnVzJywKKyAgICAgJ2ZpbGUtdXRpbHMnLAorLSAgICAnc2NoZWQn LAorICAgICAndHlwZS11dGlscycsCisgICAgICd1dGlscycsCisgXQorLS0gCisyLjI4LjAKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyL3RlbXBsYXRlIGIvc3JjcGtncy90cmFja2VyL3Rl bXBsYXRlCmluZGV4IDM3MDc0Y2IzNDhkLi44MTA2NzU2NzdmZSAxMDA2NDQKLS0tIGEvc3JjcGtn cy90cmFja2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZQpAQCAtMSwy MiArMSwyMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndHJhY2tlcicKIHBrZ25hbWU9dHJhY2tl cgotdmVyc2lvbj0yLjMuMQotcmV2aXNpb249MgordmVyc2lvbj0yLjMuNgorcmV2aXNpb249MQog YnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1E ZG9jcz1mYWxzZSAtRGZ0cz10cnVlIC1EZnVuY3Rpb25hbF90ZXN0cz1mYWxzZQogIC1Eam91cm5h bD10cnVlIC1EbWFuPXRydWUgLURuZXR3b3JrX21hbmFnZXI9ZW5hYmxlZCAtRHN0ZW1tZXI9ZGlz YWJsZWQKICAtRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyIKLWhvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNv bmZpZyBnbGliLWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0iZGJ1cy1kZXZlbCBsaWJnbGliLWRl dmVsIGljdS1kZXZlbCBqc29uLWdsaWItZGV2ZWwKICBsaWJzb3VwLWRldmVsIGxpYnhtbDItZGV2 ZWwgc3FsaXRlLWRldmVsIE5ldHdvcmtNYW5hZ2VyLWRldmVsCiAgYmFzaC1jb21wbGV0aW9uIgor Y2hlY2tkZXBlbmRzPSJ0YXIiCiBzaG9ydF9kZXNjPSJQZXJzb25hbCBzZWFyY2ggdG9vbCBhbmQg c3RvcmFnZSBzeXN0ZW0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2xpdmUu Z25vbWUub3JnL1RyYWNrZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdHJhY2tlci8ke3Zl cnNpb24lLip9L3RyYWNrZXItJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iNjc0ODcyNmU0 NjVhZDJmNGQ5OTE1NjA2MzRiMWZkMGRmODg0MWYzZDk4MWIzYjgzN2M0MTYyYWJlZGYwOGExCitj aGVja3N1bT1iZDFlYjQxMjIxMzUyOTZmYTdiNTdiMWMzZmEwZWQ2MDJjZjdkMDZjMGI4ZTUzNGQw YmQxN2ZmNWY5N2ZlZWYyCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWhvc3RtYWtl ZGVwZW5kcys9IiBkYnVzIgoKRnJvbSA0ZDJiNTliZGZlZmM4ODlmMmVjMWQyYWM0MWEyNzUxYzZl MDEwNDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMDoyMjoxMSArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDIyLzEwMl0gdHJhY2tlci1taW5lcnM6IHVwZGF0ZSB0byAyLjMuNQoK LS0tCiBzcmNwa2dzL3RyYWNrZXItbWluZXJzL3RlbXBsYXRlIHwgMTcgKysrKysrKysrLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHJhY2tl ci1taW5lcnMvdGVtcGxhdGUKaW5kZXggMDIwYzEyNGYzMjIuLjYwMGQxNDQyMThjIDEwMDY0NAot LS0gYS9zcmNwa2dzL3RyYWNrZXItbWluZXJzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdHJhY2tl ci1taW5lcnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0 cmFja2VyLW1pbmVycycKIHBrZ25hbWU9dHJhY2tlci1taW5lcnMKLXZlcnNpb249Mi4zLjEKLXJl dmlzaW9uPTMKK3ZlcnNpb249Mi4zLjUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBj b25maWd1cmVfYXJncz0iLUR0cmFja2VyX2NvcmU9c3lzdGVtIC1EZG9jcz1mYWxzZSAtRGV4dHJh Y3Q9dHJ1ZQogIC1EZnVuY3Rpb25hbF90ZXN0cz1mYWxzZSAtRGN1ZT1lbmFibGVkIC1EZXhpZj1l bmFibGVkIC1EZmxhYz1lbmFibGVkCkBAIC0xMCwyMSArMTAsMjIgQEAgY29uZmlndXJlX2FyZ3M9 Ii1EdHJhY2tlcl9jb3JlPXN5c3RlbSAtRGRvY3M9ZmFsc2UgLURleHRyYWN0PXRydWUKICAtRHRp ZmY9ZW5hYmxlZCAtRHZvcmJpcz1lbmFibGVkIC1EeG1sPWVuYWJsZWQgLUR4bXA9ZW5hYmxlZCAt RHhwcz1lbmFibGVkCiAgLURiYXR0ZXJ5X2RldGVjdGlvbj11cG93ZXIgLURjaGFyc2V0X2RldGVj dGlvbj1pY3UKICAtRGdlbmVyaWNfbWVkaWFfZXh0cmFjdG9yPWdzdHJlYW1lciAtRGdzdHJlYW1l cl9iYWNrZW5kPWRpc2NvdmVyZXIKLSAtRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyIKKyAtRHN5 c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyAtRG1pbmVyX3Jzcz1mYWxzZSIKIGhvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyBnbGliLWRldmVsIGludGx0b29sIgogbWFrZWRlcGVuZHM9InRyYWNrZXIt ZGV2ZWwgZmZtcGVnLWRldmVsIGRidXMtZGV2ZWwgZXhlbXBpLWRldmVsIGxpYmZsYWMtZGV2ZWwK ICBsaWJnbGliLWRldmVsIGxpYmdleGl2Mi1kZXZlbCBnc3RyZWFtZXIxLWRldmVsIGljdS1kZXZl bCBsaWJjdWUtZGV2ZWwKICBsaWJleGlmLWRldmVsIGxpYmdzZi1kZXZlbCBsaWJneHBzLWRldmVs IGxpYmlwdGNkYXRhLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwKICBsaWJvc2luZm8tZGV2ZWwg bGlicG5nLWRldmVsIGxpYnNlY2NvbXAtZGV2ZWwgdGlmZi1kZXZlbCBsaWJ4bWwyLWRldmVsCiAg bGlidm9yYmlzLWRldmVsIHBvcHBsZXItZ2xpYi1kZXZlbCB0YWdsaWItZGV2ZWwgdG90ZW0tcGwt cGFyc2VyLWRldmVsCi0gdXBvd2VyLWRldmVsIHpsaWItZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEt ZGV2ZWwgZ2lmbGliLWRldmVsIgorIHVwb3dlci1kZXZlbCB6bGliLWRldmVsIGdzdC1wbHVnaW5z LWJhc2UxLWRldmVsIGdpZmxpYi1kZXZlbCBsaWJoYXJmYnV6eiIKIHNob3J0X2Rlc2M9IkRhdGEg bWluZXJzIGZvciB0cmFja2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9kZXZlbG9wZXIuZ25vbWUub3JnL2xpYnRyYWNrZXItbWluZXIvc3RhYmxlIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9L3RyYWNrZXItbWluZXJzLyR7dmVyc2lvbiUuKn0vdHJhY2tlci1taW5l cnMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03YjFkZTA2YTdhNzllYTFjNzgxM2M4YTIx ZjhjZDFjNTVmMmI5NWY3OTljZjlmNDdmMDIwNGYzYmU4YTU5MGUwCitjaGVja3N1bT05NTA5ZDM3 ZmIyOWFjZDIzMzA1OGY0ZGY1YmQxMjM0YjY5MmFjNmY5NDZiYzJlNWY3YjhkYmY1MWRmZTViOWZh CiAKLSMgTWlzc2luZyBsaWJncnNzCi1jb25maWd1cmVfYXJncys9IiAtRG1pbmVyX3Jzcz1mYWxz ZSIKLW1ha2VkZXBlbmRzKz0iIGxpYmhhcmZidXp6IgorIyByZWxpZXMgb24gdW5zdXBwb3J0ZWQg b3BzIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQoKRnJvbSAzNTlmYzU3ZWZmYjkzMjE3 NDk4YTgxODgwNTYxYWQ4NWMyNzgxNzM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAy MCAwMDoxNTo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIzLzEwMl0gTmV3IHBhY2thZ2U6IHRy 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 MCAwMDoxNjowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDI0LzEwMl0gTmV3IHBhY2thZ2U6IHRy YWNrZXIzLW1pbmVycy0zLjAuMAoKLS0tCiBzcmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVz L2J1aWxkLnBhdGNoICAgfCAgMjUgKysrKysKIC4uLi9wYXRjaGVzL2RvbnQtdXNlLW1hbGxvYy10 cmltLnBhdGNoICAgICAgICB8IDEwNCArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvdHJhY2tl cjMtbWluZXJzL3RlbXBsYXRlICAgICAgICAgICAgICB8ICAzNCArKysrKysKIDMgZmlsZXMgY2hh bmdlZCwgMTYzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RyYWNr ZXIzLW1pbmVycy9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9kb250LXVzZS1tYWxsb2MtdHJpbS5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3RlbXBsYXRlCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9idWlsZC5wYXRjaCBiL3NyY3Br Z3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1OGEwZDhjMGY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDI1IEBA CitGcm9tIDhkNzA5YzNiNTVkYzkyNjIxZDU4NzFmYjQyOWEwMmM3OGNjNGIyZDggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjM6NTc6MzIgKzAyMDAKK1N1YmplY3Q6IFtQQVRD SF0gZml4IGJ1aWxkCisKKy0tLQorIHNyYy9saWJ0cmFja2VyLW1pbmVyL21lc29uLmJ1aWxkIHwg MiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitk aWZmIC0tZ2l0IHNyYy9saWJ0cmFja2VyLW1pbmVyL21lc29uLmJ1aWxkIHNyYy9saWJ0cmFja2Vy LW1pbmVyL21lc29uLmJ1aWxkCitpbmRleCBhMjI2NjIzLi45ZWFjZWUzIDEwMDY0NAorLS0tIHNy Yy9saWJ0cmFja2VyLW1pbmVyL21lc29uLmJ1aWxkCisrKysgc3JjL2xpYnRyYWNrZXItbWluZXIv bWVzb24uYnVpbGQKK0BAIC00MCw3ICs0MCw3IEBAIGVuZGlmCisgCisgbGlidHJhY2tlcl9taW5l ciA9IGxpYnJhcnkoCisgICAgICd0cmFja2VyLW1pbmVyLScgKyB0cmFja2VyX2FwaV92ZXJzaW9u LAorLSAgICBtaW5lcl9lbnVtc1swXSwgbWluZXJfZW51bXNbMV0sIG1pbmVyX3NvdXJjZXMsCisr ICAgIG1pbmVyX2VudW1zWzBdLCBtaW5lcl9lbnVtc1sxXSwgdHJhY2tlcl9taW5lcnNfY29tbW9u X2VudW1faGVhZGVyLCBtaW5lcl9zb3VyY2VzLAorICAgICBjX2FyZ3M6IHRyYWNrZXJfY19hcmdz LAorICAgICBpbnN0YWxsOiB0cnVlLAorICAgICBpbnN0YWxsX2RpcjogdHJhY2tlcl9pbnRlcm5h bF9saWJzX2RpciwKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlcjMt bWluZXJzL3BhdGNoZXMvZG9udC11c2UtbWFsbG9jLXRyaW0ucGF0Y2ggYi9zcmNwa2dzL3RyYWNr ZXIzLW1pbmVycy9wYXRjaGVzL2RvbnQtdXNlLW1hbGxvYy10cmltLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZjQyYTkxMjA5NwotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvZG9udC11c2UtbWFsbG9jLXRyaW0u cGF0Y2gKQEAgLTAsMCArMSwxMDQgQEAKK1JlYXNvbjogVGhpcyByZXZlcnRzIDE5MWNjNTIxOGI1 M2ZiYTg1YmFlYzFjOGMxN2JiMjQ2YTc0MDQ0YzAgYW5kCitjY2IwYjRlYmJmZjRkZmFjZjE3ZWE2 N2NlNTZiYjI3YzM5NzQxODExLiBtYWxsb2NfdHJpbSBpcyBnbGliYyBzcGVjaWZpYworQVBJLCBz byB0aGlzIGNhdXNlcyB0aGUgYnVpbGQgdG8gZmFpbCBvbiBtdXNsLgorVXBzdHJlYW06IGh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS90cmFja2VyLW1pbmVycy8tL2lzc3Vlcy8xMzUKK2Rp ZmYgLS1naXQgYS9zcmMvbWluZXJzL2ZzL3RyYWNrZXItbWFpbi5jIGIvc3JjL21pbmVycy9mcy90 cmFja2VyLW1haW4uYworaW5kZXggYzYwMDcwZC4uMjIwOTE2ZCAxMDA2NDQKKy0tLSBzcmMvbWlu ZXJzL2ZzL3RyYWNrZXItbWFpbi5jCisrKysgc3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYwor QEAgLTU3LDcgKzU3LDYgQEAKKyBzdGF0aWMgR01haW5Mb29wICptYWluX2xvb3A7Cisgc3RhdGlj IEdEQnVzUHJveHkgKmluZGV4X3Byb3h5OworIHN0YXRpYyBHUHRyQXJyYXkgKnByb3h5X2ZvbGRl cnM7Cistc3RhdGljIGd1aW50IGNsZWFudXBfaWQ7CisgCisgc3RhdGljIGdpbnQgaW5pdGlhbF9z bGVlcCA9IC0xOworIHN0YXRpYyBnYm9vbGVhbiBub19kYWVtb247CitAQCAtNDMzLDM3ICs0MzIs NiBAQCBtaW5lcl9zdGFydCAoVHJhY2tlck1pbmVyICAqbWluZXIsCisgCSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5lcik7CisgfQorIAorLXN0YXRpYyBnYm9v bGVhbgorLWNsZWFudXBfY2IgKGdwb2ludGVyIHVzZXJfZGF0YSkKKy17CistCS8qIFJlY2xhaW0g YXMgbXVjaCBtZW1vcnkgYXMgcG9zc2libGUgKi8KKy0JbWFsbG9jX3RyaW0gKDApOworLQorLQlj bGVhbnVwX2lkID0gMDsKKy0KKy0JcmV0dXJuIEdfU09VUkNFX1JFTU9WRTsKKy19CistCistI2lm IEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwgNjQsIDApCistc3RhdGljIHZvaWQKKy1vbl9sb3dfbWVt b3J5IChHTWVtb3J5TW9uaXRvciAgICAgICAgICAgICptb25pdG9yLAorLSAgICAgICAgICAgICAg IEdNZW1vcnlNb25pdG9yV2FybmluZ0xldmVsIGxldmVsLAorLSAgICAgICAgICAgICAgIGdwb2lu dGVyICAgICAgICAgICAgICAgICAgIHVzZXJfZGF0YSkKKy17CistCWlmIChsZXZlbCA+IEdfTUVN T1JZX01PTklUT1JfV0FSTklOR19MRVZFTF9MT1cpCistCQltYWxsb2NfdHJpbSAoMCk7CistfQor LSNlbmRpZgorLQorLXN0YXRpYyB2b2lkCistbWluZXJfc3RhcnRlZF9jYiAoVHJhY2tlck1pbmVy RlMgKmZzKQorLXsKKy0JaWYgKGNsZWFudXBfaWQpIHsKKy0JCWdfc291cmNlX3JlbW92ZSAoY2xl YW51cF9pZCk7CistCQljbGVhbnVwX2lkID0gMDsKKy0JfQorLX0KKy0KKyBzdGF0aWMgdm9pZAor IG1pbmVyX2ZpbmlzaGVkX2NiIChUcmFja2VyTWluZXJGUyAqZnMsCisgICAgICAgICAgICAgICAg ICAgIGdkb3VibGUgICAgICAgICBzZWNvbmRzX2VsYXBzZWQsCitAQCAtNDgzLDggKzQ1MSw2IEBA IG1pbmVyX2ZpbmlzaGVkX2NiIChUcmFja2VyTWluZXJGUyAqZnMsCisgCQkJCQkJCSBUUlVFKTsK KyAJfQorIAorLQljbGVhbnVwX2lkID0gZ190aW1lb3V0X2FkZF9zZWNvbmRzICgzMCwgY2xlYW51 cF9jYiwgTlVMTCk7CistCisgCS8qIFdlJ3JlIG5vdCBzdGlja2luZyBhcm91bmQgZm9yIGZpbGUg dXBkYXRlcywgc28gc3RvcAorIAkgKiB0aGUgbWFpbmxvb3AgYW5kIGV4aXQuCisgCSAqLworQEAg LTk0MSw5ICs5MDcsNiBAQCBtYWluIChnaW50IGFyZ2MsIGdjaGFyICphcmd2W10pCisgCVRyYWNr ZXJFbmRwb2ludERCdXMgKmVuZHBvaW50OworIAlUcmFja2VyRG9tYWluT250b2xvZ3kgKmRvbWFp bl9vbnRvbG9neTsKKyAJR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZTsKKy0jaWYgR0xJQl9DSEVD S19WRVJTSU9OICgyLCA2NCwgMCkKKy0JR01lbW9yeU1vbml0b3IgKm1lbW9yeV9tb25pdG9yOwor LSNlbmRpZgorIAlnY2hhciAqZG9tYWluX25hbWUsICpkYnVzX25hbWU7CisgCisgCW1haW5fbG9v cCA9IE5VTEw7CitAQCAtMTEyOSwxOCArMTA5MiwxMCBAQCBtYWluIChnaW50IGFyZ2MsIGdjaGFy ICphcmd2W10pCisgCQl0cmFja2VyX21pbmVyX2ZpbGVzX3NldF9tdGltZV9jaGVja2luZyAoVFJB Q0tFUl9NSU5FUl9GSUxFUyAobWluZXJfZmlsZXMpLCBkb19tdGltZV9jaGVja2luZyk7CisgCX0K KyAKKy0JZ19zaWduYWxfY29ubmVjdCAobWluZXJfZmlsZXMsICJzdGFydGVkIiwKKy0JCQkgIEdf Q0FMTEJBQ0sgKG1pbmVyX3N0YXJ0ZWRfY2IpLAorLQkJCSAgTlVMTCk7CisgCWdfc2lnbmFsX2Nv bm5lY3QgKG1pbmVyX2ZpbGVzLCAiZmluaXNoZWQiLAorIAkJCSAgR19DQUxMQkFDSyAobWluZXJf ZmluaXNoZWRfY2IpLAorIAkJCSAgTlVMTCk7CisgCistI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiAo MiwgNjQsIDApCistCW1lbW9yeV9tb25pdG9yID0gZ19tZW1vcnlfbW9uaXRvcl9kdXBfZGVmYXVs dCAoKTsKKy0JZ19zaWduYWxfY29ubmVjdCAobWVtb3J5X21vbml0b3IsICJsb3ctbWVtb3J5LXdh cm5pbmciLCBvbl9sb3dfbWVtb3J5LCBOVUxMKTsKKy0jZW5kaWYKKy0KKyAJLyogUHJlZW1wdCBj cmVhdGlvbiBvZiBncmFwaHMgKi8KKyAJdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl91cGRhdGVf YXN5bmMgKHRyYWNrZXJfbWluZXJfZ2V0X2Nvbm5lY3Rpb24gKG1pbmVyX2ZpbGVzKSwKKyAJICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDUkVBVEUgU0lMRU5UIEdSQVBI IHRyYWNrZXI6RmlsZVN5c3RlbTsgIgorQEAgLTExODMsMTEgKzExMzgsNiBAQCBtYWluIChnaW50 IGFyZ2MsIGdjaGFyICphcmd2W10pCisgCXRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fY2xvc2Ug KHNwYXJxbF9jb25uKTsKKyAJZ19vYmplY3RfdW5yZWYgKHNwYXJxbF9jb25uKTsKKyAKKy0jaWYg R0xJQl9DSEVDS19WRVJTSU9OICgyLCA2NCwgMCkKKy0JZ19zaWduYWxfaGFuZGxlcnNfZGlzY29u bmVjdF9ieV9mdW5jIChtZW1vcnlfbW9uaXRvciwgb25fbG93X21lbW9yeSwgTlVMTCk7CistCWdf b2JqZWN0X3VucmVmIChtZW1vcnlfbW9uaXRvcik7CistI2VuZGlmCistCisgCWdfcHJpbnQgKCJc bk9LXG5cbiIpOworIAorIAlyZXR1cm4gRVhJVF9TVUNDRVNTOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy90cmFja2VyMy1taW5lcnMvdGVtcGxhdGUgYi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy90ZW1w bGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGJmMTRiNDg0NzkK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy90ZW1wbGF0ZQpAQCAt MCwwICsxLDM0IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICd0cmFja2VyMy1taW5lcnMnCitwa2du YW1lPXRyYWNrZXIzLW1pbmVycwordmVyc2lvbj0zLjAuMAorcmV2aXNpb249MQord3Jrc3JjPXRy YWNrZXItbWluZXJzLSR7dmVyc2lvbn0KK2J1aWxkX3N0eWxlPW1lc29uCisjIG1pc3NpbmcgbGli Z3JzcyBmb3IgbWluZXJfcnNzCitjb25maWd1cmVfYXJncz0iLUR0cmFja2VyX2NvcmU9c3lzdGVt IC1EZG9jcz1mYWxzZSAtRGV4dHJhY3Q9dHJ1ZQorIC1EZnVuY3Rpb25hbF90ZXN0cz1mYWxzZSAt RGN1ZT1lbmFibGVkIC1EZXhpZj1lbmFibGVkIC1EZmxhYz1lbmFibGVkCisgLURnaWY9ZW5hYmxl ZCAtRGdzZj1lbmFibGVkIC1EaXB0Yz1lbmFibGVkIC1EaXNvPWVuYWJsZWQgLURqcGVnPWVuYWJs ZWQKKyAtRHBkZj1lbmFibGVkIC1EcGxheWxpc3Q9ZW5hYmxlZCAtRHBuZz1lbmFibGVkIC1EcmF3 PWVuYWJsZWQgLUR0YWdsaWI9ZW5hYmxlZAorIC1EdGlmZj1lbmFibGVkIC1Edm9yYmlzPWVuYWJs ZWQgLUR4bWw9ZW5hYmxlZCAtRHhtcD1lbmFibGVkIC1EeHBzPWVuYWJsZWQKKyAtRG1pbmVyX3Jz cz1mYWxzZSAtRGJhdHRlcnlfZGV0ZWN0aW9uPXVwb3dlciAtRGNoYXJzZXRfZGV0ZWN0aW9uPWlj dQorIC1EZ2VuZXJpY19tZWRpYV9leHRyYWN0b3I9Z3N0cmVhbWVyIC1EZ3N0cmVhbWVyX2JhY2tl bmQ9ZGlzY292ZXJlcgorIC1Ec3lzdGVtZF91c2VyX3NlcnZpY2VzPWZhbHNlIC1EbmV0d29ya19t YW5hZ2VyPWVuYWJsZWQiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCBp bnRsdG9vbCBhc2NpaWRvYyIKK21ha2VkZXBlbmRzPSJ0cmFja2VyMy1kZXZlbCBmZm1wZWctZGV2 ZWwgZGJ1cy1kZXZlbCBleGVtcGktZGV2ZWwgbGliZmxhYy1kZXZlbAorIGxpYmdsaWItZGV2ZWwg bGliZ2V4aXYyLWRldmVsIGdzdHJlYW1lcjEtZGV2ZWwgaWN1LWRldmVsIGxpYmN1ZS1kZXZlbAor IGxpYmV4aWYtZGV2ZWwgbGliZ3NmLWRldmVsIGxpYmd4cHMtZGV2ZWwgbGliaXB0Y2RhdGEtZGV2 ZWwgbGlianBlZy10dXJiby1kZXZlbAorIGxpYm9zaW5mby1kZXZlbCBsaWJwbmctZGV2ZWwgbGli c2VjY29tcC1kZXZlbCB0aWZmLWRldmVsIGxpYnhtbDItZGV2ZWwKKyBsaWJ2b3JiaXMtZGV2ZWwg cG9wcGxlci1nbGliLWRldmVsIHRhZ2xpYi1kZXZlbCB0b3RlbS1wbC1wYXJzZXItZGV2ZWwKKyB1 cG93ZXItZGV2ZWwgemxpYi1kZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1kZXZlbCBnaWZsaWItZGV2 ZWwKKyBOZXR3b3JrTWFuYWdlci1kZXZlbCBsaWJoYXJmYnV6eiIKK3Nob3J0X2Rlc2M9IkRhdGEg bWluZXJzIGZvciB0cmFja2VyMyIKK21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL2RldmVs b3Blci5nbm9tZS5vcmcvbGlidHJhY2tlci1taW5lci9zdGFibGUiCitkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vdHJhY2tlci1taW5lcnMvJHt2ZXJzaW9uJS4qfS90cmFja2VyLW1pbmVycy0ke3Zl cnNpb259LnRhci54eiIKK2NoZWNrc3VtPWJiNDgxYTdjMjNjNWRlZjRmMjE1NjI3YTA2MzBmYmU5 ZDFjNjRmMzMxOTgyNTg1OWQ3YTczNjQ1NzM4ZjQwNDIKKworIyByZWxpZXMgb24gdW5zdXBwb3J0 ZWQgb3BzIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQoKRnJvbSBmNDA2ZTdhM2JlZDg3 Zjc4ZWUxMzMwNDQ3YzE3OTllNjI5YzM0ZDM2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBE YW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxNSBTZXAgMjAyMCAwNjo0 Nzo1NiArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDI1LzEwMl0gYmlqaWJlbjogdXBkYXRlIHRvIDMu MzYuMy4KCi0tLQogc3JjcGtncy9iaWppYmVuL3RlbXBsYXRlIHwgOSArKysrKysrLS0KIDEgZmls ZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9iaWppYmVuL3RlbXBsYXRlIGIvc3JjcGtncy9iaWppYmVuL3RlbXBsYXRlCmluZGV4 IDczMDA1M2I1ZDFjLi4wYmZhNmYyNzVhYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9iaWppYmVuL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvYmlqaWJlbi90ZW1wbGF0ZQpAQCAtMSw5ICsxLDEwIEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdiaWppYmVuJwogcGtnbmFtZT1iaWppYmVuCi12ZXJzaW9uPTMu MzYuMQordmVyc2lvbj0zLjM2LjMKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVp bGRfc3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSItRHplaXRnZWlzdD10cnVlIgogaG9zdG1h a2VkZXBlbmRzPSJpdHN0b29sIHBrZy1jb25maWcgZ2V0dGV4dCIKIG1ha2VkZXBlbmRzPSJjbHV0 dGVyLWd0ay1kZXZlbCBldm9sdXRpb24tZGV2ZWwgdHJhY2tlci1kZXZlbCB3ZWJraXQyZ3RrLWRl dmVsCiAgemVpdGdlaXN0LWRldmVsIGxpYmhhbmR5LWRldmVsIgpAQCAtMTQsNSArMTUsOSBAQCBs aWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvQXBwcy9Ob3RlcyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQu Y29tL0dOT01FL2JpamliZW4vZ25vbWUtJHt2ZXJzaW9uJS4qfS9ORVdTIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09MjEyZjY2YTNkMmM3MTdkZmIzZDM3MjIwNDI2MTc4MDg5Mzk1 ZGEyM2VmOWYzZDA1MTcxM2FhZjY1OTdhNDExMAorY2hlY2tzdW09NzBlOWI2MjFlMTFiZjdhZjZj NjI0OGY4Yzk5ODMwZjZmZmJmZjYwNWZiNDNhODQ4ZDI2ODgwZTdlMWI1MmRkNgogbm9jcm9zcz0i ZXZvbHV0aW9uLWRhdGEtc2VydmVyIGNyb3NzIgorCitwcmVfYnVpbGQoKSB7CisJbmluamEgLUMg YnVpbGQgc3JjL2xpYmJpamkvYmlqaS1tYXJzaGFsZXJzLmgKK30KCkZyb20gYmZjOWMzYmQxZWE2 MDliZDJiYzg4NGU0MDg2N2ZkOWM3NDY4MzMwOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2Vw IDIwMjAgMjA6MjA6NTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyNi8xMDJdIGdyYXBoZW5lOiB1 cGRhdGUgdG8gMS4xMC4yCgotLS0KIHNyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxhdGUgfCA0ICsrLS0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9ncmFwaGVuZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxh dGUKaW5kZXggZjVjYzk5YjQxMjguLmU4NjgyMzliZmEwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dy YXBoZW5lL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxhdGUKQEAgLTEsNiAr MSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdncmFwaGVuZScKIHBrZ25hbWU9Z3JhcGhlbmUK LXZlcnNpb249MS4xMC4wCit2ZXJzaW9uPTEuMTAuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTUlUIgogaG9tZXBh Z2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9lYmFzc2kvZ3JhcGhlbmUiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vZ3JhcGhlbmUvJHt2ZXJzaW9uJS4qfS9ncmFwaGVuZS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTQwNmQ5N2Y1MWRkNGNhNjFlOTFmODQ2NjZhMDBjM2U5NzZkM2U2NjdjZDI0 OGI3NmQ5MmZkYjM1Y2U4NzY0OTkKK2NoZWNrc3VtPWU5N2RlODIwOGYxYWFjNGY5MTNkNGZhNzFh YjczYTcwMzRlODA3MTg2ZmViMmFiZTU1ODc2ZTUxYzQyNWE3ZjYKIAogY2FzZSAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiIGluCiAJYXJtKikgY29uZmlndXJlX2FyZ3MrPSIgLURhcm1fbmVvbj1mYWxz ZSIgOzsKCkZyb20gZTMxMjY0YWNjMDUxMTk5ZWRmNjRjZmZjN2VlZmUyMzFhMjUwMjk2NSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6MjI6NDAgKzAyMDAKU3ViamVjdDogW1BB VENIIDAyNy8xMDJdIGFtdGs6IHVwZGF0ZSB0byA1LjIuMAoKLS0tCiBzcmNwa2dzL2FtdGsvdGVt cGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hbXRrL3RlbXBsYXRlIGIvc3JjcGtncy9hbXRr L3RlbXBsYXRlCmluZGV4IDQ0OWM1N2UwN2U2Li40MzNiZTJiOWM1NCAxMDA2NDQKLS0tIGEvc3Jj cGtncy9hbXRrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYW10ay90ZW1wbGF0ZQpAQCAtMSw2ICsx LDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2FtdGsnCiBwa2duYW1lPWFtdGsKLXZlcnNpb249 NS4xLjEKK3ZlcnNpb249NS4yLjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKIGJ1aWxkX2hlbHBlcj0iZ2lyIgpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJPcnBo YW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9BbXRrIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9L2FtdGsvJHt2ZXJzaW9uJS4qfS9hbXRrLSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09Zjk2NTZiZGQ0Mjc4YWFiZmI4NTU0ZjAyOTA0OWI5ZmZhZjUxYjUzZmFh NDYzNDgzYTg0MDM2NTQ2MzM1NWRmMQorY2hlY2tzdW09ODIwNTQ1YmI0Y2Y4N2VjZWJjMmMzNjM4 ZDZiNmU1OGI4ZGJkNjBhNDE5YTliNDNjZjAyMDEyNGU1ZGFkNzA3OAogCiBidWlsZF9vcHRpb25z PSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gN2RiY2VlYjNkMDUzOTE2 OWY5YjMxNzllMmNiMzYwNzA1MTBkMGY0ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIw MjAgMjA6NDQ6NTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyOC8xMDJdIGlvLmVsZW1lbnRhcnku Y29kZTogcmVidWlsZCBmb3IgdmFsYS0wLjUwCgotLS0KIC4uLi9pby5lbGVtZW50YXJ5LmNvZGUv cGF0Y2hlcy92YWxhMDUwLnBhdGNoICB8IDI1ICsrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mv aW8uZWxlbWVudGFyeS5jb2RlL3RlbXBsYXRlICAgICAgICAgICB8ICAyICstCiAyIGZpbGVzIGNo YW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29kZS9wYXRjaGVzL3ZhbGEwNTAucGF0Y2gKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29kZS9wYXRjaGVzL3ZhbGEwNTAucGF0Y2gg Yi9zcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29kZS9wYXRjaGVzL3ZhbGEwNTAucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjllZWVlMWZiNjY0Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNo CkBAIC0wLDAgKzEsMjUgQEAKK0Zyb20gYTE4NWRlMGU3NzE2YWEyZGUyYmYyMWRlOTZlNmM5YWYx ZGNhODFhYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogV2VkLCAxNiBTZXAgMjAyMCAyMDo0MzowNyArMDIw MAorU3ViamVjdDogW1BBVENIXSBmaXggd2l0aCB2YWxhLTAuNTAKKworLS0tCisgcGx1Z2lucy9v dXRsaW5lL1ZhbGEvVmFsYVN5bWJvbE91dGxpbmUudmFsYSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBwbHVnaW5zL291 dGxpbmUvVmFsYS9WYWxhU3ltYm9sT3V0bGluZS52YWxhIHBsdWdpbnMvb3V0bGluZS9WYWxhL1Zh bGFTeW1ib2xPdXRsaW5lLnZhbGEKK2luZGV4IGM4ZGIzMzkuLjMxMzg2YTYgMTAwNjQ0CistLS0g cGx1Z2lucy9vdXRsaW5lL1ZhbGEvVmFsYVN5bWJvbE91dGxpbmUudmFsYQorKysrIHBsdWdpbnMv b3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZhbGEKK0BAIC02MSw3ICs2MSw3IEBAIHB1 YmxpYyBjbGFzcyBDb2RlLlBsdWdpbnMuVmFsYVN5bWJvbE91dGxpbmUgOiBPYmplY3QsIENvZGUu UGx1Z2lucy5TeW1ib2xPdXRsaW5lCisgCisgICAgIHB1YmxpYyB2b2lkIHBhcnNlX3N5bWJvbHMg KCkgeworICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgVmFsYS5Db2RlQ29udGV4dCAoKTsKKy0g ICAgICAgIGNvbnRleHQucHJvZmlsZSA9IFZhbGEuUHJvZmlsZS5HT0JKRUNUOworKyAgICAgICAg Y29udGV4dC5zZXRfdGFyZ2V0X3Byb2ZpbGUoVmFsYS5Qcm9maWxlLkdPQkpFQ1QpOworICAgICAg ICAgY29udGV4dC5hZGRfc291cmNlX2ZpbGVuYW1lIChkb2MuZmlsZS5nZXRfcGF0aCAoKSk7Cisg ICAgICAgICBjb250ZXh0LnJlcG9ydCA9IG5ldyBSZXBvcnQgKCk7CisgICAgICAgICBpZiAoY2Fu Y2VsbGFibGUgIT0gbnVsbCkKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaW8u ZWxlbWVudGFyeS5jb2RlL3RlbXBsYXRlIGIvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvdGVt cGxhdGUKaW5kZXggNDQ3ZTdlNWY2MGEuLjhkNDNhZDQxMzBkIDEwMDY0NAotLS0gYS9zcmNwa2dz L2lvLmVsZW1lbnRhcnkuY29kZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2lvLmVsZW1lbnRhcnku Y29kZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2lvLmVs ZW1lbnRhcnkuY29kZScKIHBrZ25hbWU9aW8uZWxlbWVudGFyeS5jb2RlCiB2ZXJzaW9uPTMuNC4x Ci1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiB3cmtzcmM9ImNvZGUtJHt2ZXJzaW9ufSIKIGJ1aWxk X3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgdmFsYSBpbnRsdG9vbCBn bGliLWRldmVsIgoKRnJvbSBmZWMzZTkwNDdjMzhiYTA5YzgwZWU4NmZjMTM2OTQyMjJkN2ZmZjI2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogV2VkLCAxNiBTZXAgMjAyMCAyMDo1MjoyNiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDI5LzEwMl0gcGhvZGF2OiB1cGRhdGUgdG8gMi41CgotLS0KIHNyY3BrZ3MvcGhv ZGF2L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcGhvZGF2L3RlbXBsYXRlIGIvc3Jj cGtncy9waG9kYXYvdGVtcGxhdGUKaW5kZXggMWE5MGExYTBlNTguLjEzMDkyODk2ODk5IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3Bob2Rhdi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Bob2Rhdi90ZW1w bGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Bob2RhdicKIHBrZ25h bWU9cGhvZGF2Ci12ZXJzaW9uPTIuNAordmVyc2lvbj0yLjUKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kPWRpc2FibGVkIC1EYXZhaGk9ZW5h YmxlZCAtRGd0a19kb2M9ZGlzYWJsZWQKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvcGhvZGF2IgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09N2RkZGMyYjc1ZTA0ZDA4NjZiYjljOWE4MzAyOGE1OTdlYmQ3 M2VmNGMzN2JkNmViZTEwMzJhODcwYjQzYjhjMworY2hlY2tzdW09NzFmMGE5Y2Q3MGFmZDRkZDE0 MTJhMDI5ODMzMWRiYjhhYzcxYzAzNzdmNTIxMTdhZmMxNWViODhkYzZmYjkxMAogCiBwaG9kYXYt ZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJsaWJnbGliLWRldmVsIGxpYnNvdXAtZGV2ZWwg bGlieG1sMi1kZXZlbAoKRnJvbSBiYThhYzIyYThmZWZlYjIwYzg0YzVlMDY3MzU0MTMyNDNmM2Ni YWY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDMwLzEwMl0gZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hczogdXBkYXRlIHRv IDMuMzguMAoKLS0tCiAuLi4vcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoICAgICAgICAgICAg ICAgICAgICAgfCAxMyAtLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNj aGVtYXMvdGVtcGxhdGUgICAgICAgICAgfCAgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4 LWNyb3NzLWdpci5wYXRjaCBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy9wYXRj aGVzL2ZpeC1jcm9zcy1naXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIy OTlkNWM5Y2QwLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNj aGVtYXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMg KzAsMCBAQAotZGlmZiAtLWdpdCBhL2hlYWRlcnMvbWVzb24uYnVpbGQgYi9oZWFkZXJzL21lc29u LmJ1aWxkCi1pbmRleCAzY2U4YjYxLi4xMTMyNjk1IDEwMDY0NAotLS0tIGhlYWRlcnMvbWVzb24u YnVpbGQKLSsrKyBoZWFkZXJzL21lc29uLmJ1aWxkCi1AQCAtMTksNyArMTksNyBAQCBlbnVtc194 bWwgPSBjdXN0b21fdGFyZ2V0KAotICAgaW5zdGFsbDogdHJ1ZSwKLSAgIGluc3RhbGxfZGlyOiBz Y2hlbWFzZGlyKQotIAotLWlmIG5vdCBtZXNvbi5pc19jcm9zc19idWlsZCgpIGFuZCBnZXRfb3B0 aW9uKCdpbnRyb3NwZWN0aW9uJykKLStpZiBnZXRfb3B0aW9uKCdpbnRyb3NwZWN0aW9uJykKLSAg IG5vaW5zdF9saWIgPSBzaGFyZWRfbGlicmFyeSgnbm9pbnN0JywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBoZWFkZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu c3RhbGw6IGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzL3RlbXBsYXRlIGIvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRl CmluZGV4IDQ5YzY0Y2NhNzM4Li43NmM0YjBlMDgxMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMnCiBwa2duYW1lPWdzZXR0aW5ncy1kZXNrdG9w LXNjaGVtYXMKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2 aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJl X2FyZ3M9Ii1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgpAQCAtMTIs NyArMTIsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT03NjRhYjY4MzI4NjUzNjMyNDUzM2E1OGQ0ZTk1ZmM1N2Y4MWFk YWJhN2Q4ODBkZDBlYmJiY2VkNjNlOTYwZWE2CitjaGVja3N1bT01NzA0YzgyNjYwMDRiMjk2MDM2 NjcxZjIyM2M3MDVkYzA0NmFhNjk0YTFiMWFiYjg3YzY3ZTdkMjc0N2E4YzY3CiAKICMgUGFja2Fn ZSBidWlsZCBvcHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIiCgpGcm9tIDExYTM3ZmEwZThmMmFl MzRjZDU1N2VlZDc2NWVkNzFjN2Y2NDk1ZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAy MDIwIDA1OjIwOjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzEvMTAyXSBnbGliLW5ldHdvcmtp bmc6IHVwZGF0ZSB0byAyLjY2LjAKCi0tLQogc3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxh dGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCmluZGV4IDVlYWZmYTgyZTY0Li45NmYzMTJj ZmY0ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnbGliLW5ldHdvcmtpbmcnCiBwa2duYW1lPWdsaWItbmV0d29ya2luZwot dmVyc2lvbj0yLjY0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249Mi42Ni4wCityZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EaW5zdGFsbGVkX3Rlc3RzPWZhbHNl IC1EZ251dGxzPWVuYWJsZWQgLURsaWJwcm94eT1lbmFibGVkCiAgLURnbm9tZV9wcm94eT1lbmFi bGVkIgpAQCAtMTQsNyArMTQsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dsaWItbmV0d29ya2luZy8iCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1hNGMzNDZkZWY3ZDgxNzQ2N2Q3OWE5NWMyM2IzY2NmMjJl NGRmMTU0ODg3MDcyNmI2MzM5NjQwMDg1MmRhZjcyCitjaGVja3N1bT1jNWQ3YmUyNDM3ZmRkMTk2 ZWViZmI3MGM0NTE3Yjk2ZDNiYTdlYzEzYmQ0OTYzMThiOGYwMmRlYTM4M2UwMDk5CiBsaWIzMmRp c2FibGVkPXllcwogCiBwb3N0X2luc3RhbGwoKSB7CgpGcm9tIDRmMWI5NGVjOGYzY2ExNmVhOTFh NWVmZGQ5ZWEzNWRkZGY5OGZiNGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzIvMTAyXSBhdC1zcGkyLWNvcmU6IHVwZGF0 ZSB0byAyLjM4LjAKCi0tLQogc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUgfCAxNCArKysr KysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F0LXNwaTItY29yZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mv YXQtc3BpMi1jb3JlL3RlbXBsYXRlCmluZGV4IGIzODNmZTk5YmVkLi43NGU2MDcwMTIwMSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hdC1z cGkyLWNvcmUvdGVtcGxhdGUKQEAgLTEsMjMgKzEsMjcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2F0LXNwaTItY29yZScKIHBrZ25hbWU9YXQtc3BpMi1jb3JlCi12ZXJzaW9uPTIuMzQuMAordmVy c2lvbj0yLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9 ImdpciIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBkYnVzIGdsaWItZGV2ZWwiCi1tYWtl ZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCBsaWJYZXh0LWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3Qt ZGV2ZWwKLSBsaWJYZXZpZS1kZXZlbCBkYnVzLWRldmVsIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGRidXMgZ2xpYi1kZXZlbCBnZXR0ZXh0IgorbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2 ZWwgbGliWGV4dC1kZXZlbCBsaWJTTS1kZXZlbCBsaWJYdHN0LWRldmVsIGRidXMtZGV2ZWwiCiBz aG9ydF9kZXNjPSJBc3Npc3RpdmUgVGVjaG5vbG9neSBTZXJ2aWNlIFByb3ZpZGVyIEludGVyZmFj ZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9y Zy9HTk9NRS9hdC1zcGkyLWNvcmUiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1k NjI5Y2RiZDY3NGU1MzlmODkxMjAyODUxMmFmNTgzOTkwOTM4YzdiNDllMjUxODRjMTI2YjAwMTIx ZWYxMWM2CitjaGVja3N1bT04NGUzNmMzZmU2Njg2MjEzM2Y1ZmUyMjk3NzJiNzZhYTI1MjZlMTBk ZTUwMTRhMzc3OGYyZmE0NmNlNTUwZGE1CiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCiBidWls ZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAorIyBub24tdHJp dmlhbCBkYnVzIHNldHVwCitkb19jaGVjaygpIHsKKwk6Cit9CisKIHBvc3RfaW5zdGFsbCgpIHsK IAlybSAtcmYgJHtERVNURElSfS91c3IvbGliL3N5c3RlbWQKIH0KCkZyb20gZjIwNTA5Yzc3ZjU0 Mzc5NThlOTljZWIzNWVjOWI2NTI3NDUyNTllMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzMy8xMDJdIGF0LXNwaTItYXRr OiB1cGRhdGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUgfCA5 ICsrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlIGIvc3JjcGtncy9h dC1zcGkyLWF0ay90ZW1wbGF0ZQppbmRleCA0MzUxYjc5OTZmMy4uY2Y5NDVkZmZiMjYgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hdC1zcGky LWF0ay90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2F0LXNw aTItYXRrJwogcGtnbmFtZT1hdC1zcGkyLWF0awotdmVyc2lvbj0yLjM0LjEKK3ZlcnNpb249Mi4z OC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJsaWJ0 b29sIHBrZy1jb25maWcgaW50bHRvb2wgZ2xpYi1kZXZlbCIKQEAgLTEwLDcgKzEwLDEyIEBAIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJM R1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwOi8vd3d3Lmdub21lLm9yZyIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTc3NmRmOTMwNzQ4ZmRlNzFjMTI4YmU2YzM2NmE5 ODdiOThiNmVlNjZkNTA4ZWQ5YzhkYjIzNTViZjRiOWNjMTYKK2NoZWNrc3VtPWNmYTAwOGE1YWY4 MjJiMzZhZTYyODdmMTgxODJjNDBjOTFkZDY5OWM1NWZhYTM4NjA1ODgxZWQxNzVjYTQ2NGYKKwor IyBub24tdHJpdmlhbCBkYnVzIHNldHVwCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIGF0LXNwaTIt YXRrLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gJHtzb3VyY2Vw a2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgoKRnJvbSBhNDBhZjFjYmE5ODUzZjNiOWUzNzll NDg2OTE5MDA3NGVmNDE3NTM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0 ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM0LzEwMl0gbGliZ3dlYXRoZXI6IHVwZGF0ZSB0 byAzLjM2LjEKCi0tLQogc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZSB8IDE1ICsrKysrKy0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRlIGIvc3JjcGtncy9saWJn d2VhdGhlci90ZW1wbGF0ZQppbmRleCAzNGM2NGQ2ZTNhMS4uZmNkYjU4Nzk1MDEgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJnd2VhdGhl ci90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZ3dl YXRoZXInCiBwa2duYW1lPWxpYmd3ZWF0aGVyCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM2 LjEKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNv bmZpZ3VyZV9hcmdzPSItRGVuYWJsZV92YWxhPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0g LURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkKK2NvbmZpZ3VyZV9hcmdz PSIkKHZvcHRfYm9vbCBnaXIgZW5hYmxlX3ZhbGEpICQodm9wdF9ib29sIGdpciBpbnRyb3NwZWN0 aW9uKQogIC1Eem9uZWluZm9fZGlyPS91c3Ivc2hhcmUvem9uZWluZm8iCi1ob3N0bWFrZWRlcGVu ZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyAkKHZvcHRfaWYgdmFsYSB2YWxhKSIK K2hvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnICQodm9wdF9p ZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ2VvY29kZS1nbGliLWRldmVsIGd0ayszLWRldmVs IGxpYnNvdXAtZ25vbWUtZGV2ZWwiCiBjaGVja2RlcGVuZHM9InR6ZGF0YSIKIHNob3J0X2Rlc2M9 IkdOT01FIFdlYXRoZXIgaW5mb3JtYXRpb24gYWNjZXNzIGxpYnJhcnkiCkBAIC0xNSwxMCArMTQs MTAgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvUHJvamVjdHMvTGliR1dlYXRoZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT1kMmZmZWVjMDE3ODhkMDNkMWJiZjM1MTEzZmMyZjA1NGM2YzM2MDA3MjEwODhmODI3YmNjMzFl NWM2MDNhMzJkCitjaGVja3N1bT1kZTI3MDlmMGVlMjMzYjIwMTE2ZDVmYTk4NjFkNDA2MDcxNzk4 YzRhYTM3ODMwY2EyNWY1ZWYyYzAwODNlNDUwCiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgot YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1 aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBwb3N0X3BhdGNoKCkgewogCSMgVGhpcyB0ZXN0 IHJlcXVpcmVzIExDX0lERU5USUZJQ0FUSU9OLCB3aGljaCBpcyBhIEdMSUJDJ3MgZXh0ZW5zaW9u CkBAIC0zNSw4ICszNCw2IEBAIGxpYmd3ZWF0aGVyLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3Zl ICJ1c3IvbGliLyouc28iCiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2 bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEi IF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQoKRnJvbSBhZDc2YjYy MmQ0NjdjZmIyNjk4YmMxNzQxNGM2NTYyMjIzYzYxZTIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAx MyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM1LzEwMl0gZ25vbWUt bWVudXM6IHVwZGF0ZSB0byAzLjM2LjAKCi0tLQogc3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0 ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUgYi9zcmNwa2dz L2dub21lLW1lbnVzL3RlbXBsYXRlCmluZGV4IDI5MTAyMTI5YzM4Li5lNzg3ZmI4ZGU2YiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21l LW1lbnVzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25v bWUtbWVudXMnCiBwa2duYW1lPWdub21lLW1lbnVzCi12ZXJzaW9uPTMuMzIuMAotcmV2aXNpb249 MgordmVyc2lvbj0zLjM2LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUK IGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMiCkBA IC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtbWVudXMiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jODUwYzY0YjIwNzQyNjVmZTU5ZTA5OWEzNDBi ODY4OWNmM2RkNDY1OGRjOWZlZGRkMmFiNWU5NWYxYTc0Yjc0CitjaGVja3N1bT1kOTM0OGYzOGJk ZTk1NmZjMzI3NTNiMjhjMWNkZTE5YzE3NWJmZGJmMWY0ZDViMDYwMDNiM2FhMDkxNTNiYjFmCiAK IGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSBm NDk1MTAzN2U1YTJiMTk1OGE5ZWY2Yjk1OTM4NGIyZDdjNmZkY2NhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM2LzEwMl0g Z25vbWUtZGVza3RvcDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0 Y2hlcy9idWlsZC5wYXRjaCB8IDE4ICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1k ZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAgfCAxMSArKysrKysrKy0tLQogMyBmaWxlcyBjaGFu Z2VkLCAyNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBhdGNoCgpkaWZmIC0tZ2l0IGEv Y29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZTA0ZjdiYzFmZjcuLjk2ZDFhNmJk MTgzIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTEx NzYsNyArMTE3Niw3IEBAIGxpYmdzdGJhc2VjYW1lcmFiaW5zcmMtMS4wLnNvLjAgZ3N0LXBsdWdp bnMtYmFkMS0xLjAuMF8xCiBsaWJnc3Rjb2RlY3BhcnNlcnMtMS4wLnNvLjAgZ3N0LXBsdWdpbnMt YmFkMS0xLjAuMF8xCiBsaWJnc3RwbGF5ZXItMS4wLnNvLjAgZ3N0LXBsdWdpbnMtYmFkMS0xLjAu MF8xCiBsaWJnc3RnbC0xLjAuc28uMCBnc3QtcGx1Z2lucy1iYXNlMS0xLjE0LjBfMQotbGliZ25v bWUtZGVza3RvcC0zLnNvLjE4IGdub21lLWRlc2t0b3AtMy4zNC4wXzEKK2xpYmdub21lLWRlc2t0 b3AtMy5zby4xOSBnbm9tZS1kZXNrdG9wLTMuMzcuOTAuMV8xCiBsaWJzZWNyZXQtMS5zby4wIGxp YnNlY3JldC0wLjEwXzEKIGxpYmd3ZWF0aGVyLTMuc28uMTYgbGliZ3dlYXRoZXItMy4zNC4wXzEK IGxpYmdub21la2JkLnNvLjggbGliZ25vbWVrYmQtMy42LjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL2dub21lLWRlc2t0 b3AvcGF0Y2hlcy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uZWZlZDAwYTI1ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLWRlc2t0 b3AvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDE4IEBACitjb21taXQgNGY1NWZmMDc4 NDExOTkzYjc4MmU3NGVhMThjNWM2YWIzNWFkZjY4NQorQXV0aG9yOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6ICAgV2VkIEF1ZyAxMiAwNToyNjowMCAyMDIwICsw MjAwCisKKyAgICBibGEKKworZGlmZiAtLWdpdCBsaWJnbm9tZS1kZXNrdG9wL2dub21lLXJyLmgg bGliZ25vbWUtZGVza3RvcC9nbm9tZS1yci5oCitpbmRleCAxMTFiYWIzLi43Njk4NjcyIDEwMDY0 NAorLS0tIGxpYmdub21lLWRlc2t0b3AvZ25vbWUtcnIuaAorKysrIGxpYmdub21lLWRlc2t0b3Av Z25vbWUtcnIuaAorQEAgLTI4LDYgKzI4LDcgQEAKKyAjZXJyb3IgICAgR25vbWVSUiBpcyB1bnN0 YWJsZSBBUEkuIFlvdSBtdXN0IGRlZmluZSBHTk9NRV9ERVNLVE9QX1VTRV9VTlNUQUJMRV9BUEkg YmVmb3JlIGluY2x1ZGluZyBnbm9tZXJyLmgKKyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8c3RkaW50 Lmg+CisgI2luY2x1ZGUgPGdsaWIuaD4KKyAjaW5jbHVkZSA8Z2RrL2dkay5oPgorIApkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1kZXNr dG9wL3RlbXBsYXRlCmluZGV4IDk5MmNiMWZmMTZhLi5iZDBiMmY1YzFkOSAxMDA2NDQKLS0tIGEv c3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZGVza3Rv cC90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUt ZGVza3RvcCcKIHBrZ25hbWU9Z25vbWUtZGVza3RvcAotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249 My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIi Ci1jb25maWd1cmVfYXJncz0iLURnbm9tZS1kaXN0cmlidXRvcj1Wb2lkTGludXggLUR1ZGV2PWVu YWJsZWQKK2NvbmZpZ3VyZV9hcmdzPSItRGdub21lX2Rpc3RyaWJ1dG9yPVZvaWRMaW51eCAtRHVk ZXY9ZW5hYmxlZCAtRHN5c3RlbWQ9ZGlzYWJsZWQKICAtRGludHJvc3BlY3Rpb249JCh2b3B0X2lm IGdpciB0cnVlIGZhbHNlKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBpdHN0b29sIHBrZy1j b25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJldWRldi1saWJ1ZGV2LWRldmVsIGdzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwgZ3RrKzMtZGV2ZWwKQEAgLTE2LDExICsxNiwxNiBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWRlc2t0b3AiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1jMWRiZWI1NjY2ZGFkMjcxNjZjNzY5ZTQ4ZTJhYjQxZGQ1ZWQ3NDcx OGVhMzVlYjU3Yzg0ODg3OTA2NjJkYzVhCitjaGVja3N1bT0wODlkYmJlM2M2NmZlNTU3NTY1OWE0 YTM4NWQ1ZDRiYmQ5OWNmNjM3MDM0ZGYzMTdmMjFjZjU4NmI1ZGQ2YjkwCiAKIGJ1aWxkX29wdGlv bnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCisjIG5lZWRzIFgKK2RvX2No ZWNrKCkgeworCToKK30KKwogZ25vbWUtZGVza3RvcC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVu ZHM9Imd0ayszLWRldmVsIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWw+PTMuMTIKIAkg Z2RrLXBpeGJ1Zi1kZXZlbCBpc28tY29kZXMgbGliWDExLWRldmVsIGxpYmdsaWItZGV2ZWwgbGli c2VjY29tcC1kZXZlbAoKRnJvbSAzY2JmNDgxMTM4NjFkMjRkYzFiOWU4MmQ5Zjc0Y2ZjMjE5N2Jj OWVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDM3LzEwMl0gZ25vbWUtc2V0dGluZ3MtZGFlbW9uOiB1cGRhdGUgdG8gMy4z OC4wCgotLS0KIC4uLi9wYXRjaGVzL2xvZ2luZC1iYWNrbGlnaHQucGF0Y2ggICAgICAgICAgICB8 IDEzNiArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3Rl bXBsYXRlICAgICAgICB8ICAxMSArLQogMiBmaWxlcyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygr KSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLXNldHRp bmdzLWRhZW1vbi9wYXRjaGVzL2xvZ2luZC1iYWNrbGlnaHQucGF0Y2gKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi9wYXRjaGVzL2xvZ2luZC1iYWNrbGlnaHQucGF0 Y2ggYi9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi9wYXRjaGVzL2xvZ2luZC1iYWNrbGln aHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU1Y2E2YmQ0 M2RkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0 Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCkBAIC0wLDAgKzEsMTM2IEBACitGcm9tIDM4NDVi M2E3YjU4ZjI2ZWM2OGRiYzFjNDU3ZWFkMDZmNDg4MTE4MGIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IEZy aSwgMTQgQXVnIDIwMjAgMTc6NDg6MjEgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gVGhlIG5ldyBs b2dpbmQgYnJpZ2h0bmVzcyBjb2RlIGRvZXNuJ3Qgd29yayB3aXRoIGVsb2dpbmQuCisKK2h0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zZXR0aW5ncy1kYWVtb24vLS9jb21taXQv Y2QwNTFlNmM3Y2NmYjdlN2IwZWM0NDA0MDljNTU5YjJlNTEyODRlOAorLS0tCisgcGx1Z2lucy9w b3dlci9nc2QtYmFja2xpZ2h0LmMgfCA3NyArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQor CitkaWZmIC0tZ2l0IHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jIHBsdWdpbnMvcG93ZXIv Z3NkLWJhY2tsaWdodC5jCitpbmRleCBjYTVmMjcyLi40YWNjMmU1IDEwMDY0NAorLS0tIHBsdWdp bnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jCisrKysgcGx1Z2lucy9wb3dlci9nc2QtYmFja2xpZ2h0 LmMKK0BAIC00MCw4ICs0MCw2IEBAIHN0cnVjdCBfR3NkQmFja2xpZ2h0CisgICAgICAgICBnaW50 IGJyaWdodG5lc3Nfc3RlcDsKKyAKKyAjaWZkZWYgX19saW51eF9fCistICAgICAgICBHREJ1c1By b3h5ICpsb2dpbmRfcHJveHk7CistCisgICAgICAgICBHVWRldkNsaWVudCAqdWRldjsKKyAgICAg ICAgIEdVZGV2RGV2aWNlICp1ZGV2X2RldmljZTsKKyAKK0BAIC02MSwxMCArNTksNiBAQCBlbnVt IHsKKyAgICAgICAgIFBST1BfTEFTVCwKKyB9OworIAorLSNkZWZpbmUgU1lTVEVNRF9EQlVTX05B TUUgICAgICAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AubG9naW4xIgorLSNkZWZp bmUgU1lTVEVNRF9EQlVTX1BBVEggICAgICAgICAgICAgICAgICAgICAgICIvb3JnL2ZyZWVkZXNr dG9wL2xvZ2luMS9zZXNzaW9uL2F1dG8iCistI2RlZmluZSBTWVNURU1EX0RCVVNfSU5URVJGQUNF ICAgICAgICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5sb2dpbjEuU2Vzc2lvbiIKKy0KKyBz dGF0aWMgR1BhcmFtU3BlYyAqcHJvcHNbUFJPUF9MQVNUXTsKKyAKKyBzdGF0aWMgdm9pZCAgICAg Z3NkX2JhY2tsaWdodF9pbml0YWJsZV9pZmFjZV9pbml0IChHSW5pdGFibGVJZmFjZSAgKmlmYWNl KTsKK0BAIC00ODIsMzAgKzQ3NiwxMyBAQCBnc2RfYmFja2xpZ2h0X3NldF9icmlnaHRuZXNzX3Zh bF9hc3luYyAoR3NkQmFja2xpZ2h0ICpiYWNrbGlnaHQsCisgICAgICAgICBpZiAoYmFja2xpZ2h0 LT51ZGV2X2RldmljZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgIEJhY2tsaWdodEhlbHBl ckRhdGEgKnRhc2tfZGF0YTsKKyAKKy0gICAgICAgICAgICAgICAgaWYgKGJhY2tsaWdodC0+bG9n aW5kX3Byb3h5KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgZ19kYnVzX3Byb3h5X2NhbGwg KGJhY2tsaWdodC0+bG9naW5kX3Byb3h5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiU2V0QnJpZ2h0bmVzcyIsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIoc3N1KSIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiYWNrbGlnaHQi LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnX3VkZXZfZGV2aWNlX2dldF9uYW1lIChiYWNrbGlnaHQtPnVkZXZfZGV2aWNlKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmFja2xpZ2h0LT5icmlnaHRuZXNzX3RhcmdldCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCBOVUxMLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBwZXJjZW50ID0gQUJTX1RPX1BFUkNFTlRBR0UgKGJhY2tsaWdodC0+YnJp Z2h0bmVzc19taW4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBiYWNrbGlnaHQtPmJyaWdodG5lc3NfbWF4LAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNz X3RhcmdldCk7CistICAgICAgICAgICAgICAgICAgICAgICAgZ190YXNrX3JldHVybl9pbnQgKHRh c2ssIHBlcmNlbnQpOworLSAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAg ICAgICAgICAgIHRhc2tfZGF0YSA9IGdfbmV3MCAoQmFja2xpZ2h0SGVscGVyRGF0YSwgMSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgdGFza19kYXRhLT52YWx1ZSA9IGJhY2tsaWdodC0+YnJp Z2h0bmVzc190YXJnZXQ7CistICAgICAgICAgICAgICAgICAgICAgICAgZ190YXNrX3NldF90YXNr X2RhdGEgKHRhc2ssIHRhc2tfZGF0YSwgYmFja2xpZ2h0X3Rhc2tfZGF0YV9kZXN0cm95KTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICAvKiBUYXNrIGlzIHNldCB1cCBub3cuIFF1ZXVlIGl0 IGFuZCBlbnN1cmUgd2UgYXJlIHdvcmtpbmcgc29tZXRoaW5nLiAqLworLSAgICAgICAgICAgICAg ICAgICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmYmFja2xpZ2h0LT50YXNrcywgdGFzayk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgZ3NkX2JhY2tsaWdodF9wcm9jZXNzX3Rhc2txdWV1ZSAo YmFja2xpZ2h0KTsKKy0gICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICB0YXNrX2Rh dGEgPSBnX25ldzAgKEJhY2tsaWdodEhlbHBlckRhdGEsIDEpOworKyAgICAgICAgICAgICAgICB0 YXNrX2RhdGEtPnZhbHVlID0gYmFja2xpZ2h0LT5icmlnaHRuZXNzX3RhcmdldDsKKysgICAgICAg ICAgICAgICAgZ190YXNrX3NldF90YXNrX2RhdGEgKHRhc2ssIHRhc2tfZGF0YSwgYmFja2xpZ2h0 X3Rhc2tfZGF0YV9kZXN0cm95KTsKKysKKysgICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQg dXAgbm93LiBRdWV1ZSBpdCBhbmQgZW5zdXJlIHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8K KysgICAgICAgICAgICAgICAgZ19xdWV1ZV9wdXNoX3RhaWwgKCZiYWNrbGlnaHQtPnRhc2tzLCB0 YXNrKTsKKysgICAgICAgICAgICAgICAgZ3NkX2JhY2tsaWdodF9wcm9jZXNzX3Rhc2txdWV1ZSAo YmFja2xpZ2h0KTsKKyAKKyAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorQEAg LTgyMyw3ICs4MDAsNiBAQCBnc2RfYmFja2xpZ2h0X2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAg ICAgICAqaW5pdGFibGUsCisgeworICAgICAgICAgR3NkQmFja2xpZ2h0ICpiYWNrbGlnaHQgPSBH U0RfQkFDS0xJR0hUIChpbml0YWJsZSk7CisgICAgICAgICBHbm9tZVJST3V0cHV0KiBvdXRwdXQg PSBOVUxMOworLSAgICAgICAgR0Vycm9yICpsb2dpbmRfZXJyb3IgPSBOVUxMOworIAorICAgICAg ICAgaWYgKGNhbmNlbGxhYmxlICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgZ19zZXRfZXJy b3JfbGl0ZXJhbCAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfTk9UX1NVUFBPUlRFRCwK K0BAIC04MzIsNDQgKzgwOCw2IEBAIGdzZF9iYWNrbGlnaHRfaW5pdGFibGVfaW5pdCAoR0luaXRh YmxlICAgICAgICppbml0YWJsZSwKKyAgICAgICAgIH0KKyAKKyAjaWZkZWYgX19saW51eF9fCist ICAgICAgICBiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSA9CistICAgICAgICAgICAgICAgIGdfZGJ1 c19wcm94eV9uZXdfZm9yX2J1c19zeW5jIChHX0JVU19UWVBFX1NZU1RFTSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lTVEVNRF9EQlVTX05BTUUsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTWVNURU1EX0RCVVNfUEFU SCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZU1RF TURfREJVU19JTlRFUkZBQ0UsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLCAmbG9naW5kX2Vycm9yKTsKKy0gICAgICAgIGlmIChiYWNrbGlnaHQt PmxvZ2luZF9wcm94eSkgeworLSAgICAgICAgICAgICAgICAvKiBDaGVjayB0aGF0IHRoZSBTZXRC cmlnaHRuZXNzIG1ldGhvZCBkb2VzIGV4aXN0ICovCistICAgICAgICAgICAgICAgIGdfZGJ1c19w cm94eV9jYWxsX3N5bmMgKGJhY2tsaWdodC0+bG9naW5kX3Byb3h5LAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0QnJpZ2h0bmVzcyIsIE5VTEwsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUs IC0xLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAmbG9n aW5kX2Vycm9yKTsKKy0KKy0gICAgICAgICAgICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyAobG9n aW5kX2Vycm9yLCBHX0RCVVNfRVJST1IsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdfREJVU19FUlJPUl9JTlZBTElEX0FSR1MpKSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgLyogV2UgYXJlIGNhbGxpbmcgdGhlIG1ldGhvZCB3aXRoIG5vIGFyZ3VtZW50cywgc28K Ky0gICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGlzIGlzIGV4cGVjdGVkLgorLSAgICAgICAg ICAgICAgICAgICAgICAgICAqLworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfY2xlYXJfZXJy b3IgKCZsb2dpbmRfZXJyb3IpOworLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGdfZXJyb3Jf bWF0Y2hlcyAobG9naW5kX2Vycm9yLCBHX0RCVVNfRVJST1IsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfRVJST1JfVU5LTk9XTl9NRVRIT0QpKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgLyogc3lzdGVtZCB2ZXJzaW9uIGlzIHRvbyBvbGQs IHNvIGlnbm9yZS4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy0gICAgICAgICAgICAg ICAgICAgICAgICBnX2NsZWFyX2Vycm9yICgmbG9naW5kX2Vycm9yKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+bG9naW5kX3Byb3h5KTsKKy0g ICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvKiBGYWls IG9uIGFueXRoaW5nIGVsc2UgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX29i amVjdCAoJmJhY2tsaWdodC0+bG9naW5kX3Byb3h5KTsKKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLQorLSAgICAgICAgaWYgKGxvZ2luZF9lcnJvcikgeworLSAgICAgICAgICAgICAg ICBnX3dhcm5pbmcgKCJObyBsb2dpbmQgZm91bmQ6ICVzIiwgbG9naW5kX2Vycm9yLT5tZXNzYWdl KTsKKy0gICAgICAgICAgICAgICAgZ19lcnJvcl9mcmVlIChsb2dpbmRfZXJyb3IpOworLSAgICAg ICAgfQorLQorICAgICAgICAgLyogVHJ5IGZpbmRpbmcgYSB1ZGV2IGRldmljZS4gKi8KKyAgICAg ICAgIGlmIChnc2RfYmFja2xpZ2h0X3VkZXZfaW5pdCAoYmFja2xpZ2h0KSkKKyAgICAgICAgICAg ICAgICAgZ290byBmb3VuZDsKK0BAIC05MTEsNyArODQ5LDYgQEAgZ3NkX2JhY2tsaWdodF9maW5h bGl6ZSAoR09iamVjdCAqb2JqZWN0KQorICNpZmRlZiBfX2xpbnV4X18KKyAgICAgICAgIGdfYXNz ZXJ0IChiYWNrbGlnaHQtPmFjdGl2ZV90YXNrID09IE5VTEwpOworICAgICAgICAgZ19hc3NlcnQg KGdfcXVldWVfaXNfZW1wdHkgKCZiYWNrbGlnaHQtPnRhc2tzKSk7CistICAgICAgICBnX2NsZWFy X29iamVjdCAoJmJhY2tsaWdodC0+bG9naW5kX3Byb3h5KTsKKyAgICAgICAgIGdfY2xlYXJfb2Jq ZWN0ICgmYmFja2xpZ2h0LT51ZGV2KTsKKyAgICAgICAgIGdfY2xlYXJfb2JqZWN0ICgmYmFja2xp Z2h0LT51ZGV2X2RldmljZSk7CisgICAgICAgICBpZiAoYmFja2xpZ2h0LT5pZGxlX3VwZGF0ZSkg eworLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVt b24vdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQppbmRl eCBhNzBlMjhiZTVmYS4uYjZkYTI4ZTI1NTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2V0 dGluZ3MtZGFlbW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9u L3RlbXBsYXRlCkBAIC0xLDEwICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1z ZXR0aW5ncy1kYWVtb24nCiBwa2duYW1lPWdub21lLXNldHRpbmdzLWRhZW1vbgotdmVyc2lvbj0z LjM0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogY29uZmlndXJlX2FyZ3MrPSItRHN5c3RlbWQ9ZmFsc2UiCi1ob3N0bWFrZWRlcGVu ZHM9ImNtYWtlIGRvY2Jvb2steHNsIGdsaWItZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJ4c2x0IHBl cmwgcGtnLWNvbmZpZyIKK2hvc3RtYWtlZGVwZW5kcz0iY21ha2UgZG9jYm9vay14c2wgZ2V0dGV4 dCBnbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlieHNsdAorIHBlcmwgcGtnLWNvbmZpZyIKIG1h a2VkZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1kZXZlbCBhbHNhLWxpYi1kZXZlbCBjb2xvcmQtZGV2 ZWwgY3Vwcy1kZXZlbCBnY3ItZGV2ZWwKICBnZW9jbHVlMi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRl dmVsIGlidXMtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGliZ25vbWVrYmQtZGV2ZWwKICBsaWJn d2VhdGhlci1kZXZlbCBsaWJub3RpZnktZGV2ZWwgbGlicnN2Zy1kZXZlbCBsaWJ3YWNvbS1kZXZl bCBuc3MtZGV2ZWwKQEAgLTEyLDEzICsxMywxMyBAQCBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFn ZXItZGV2ZWwgYWxzYS1saWItZGV2ZWwgY29sb3JkLWRldmVsIGN1cHMtZGV2ZWwgZ2NyLWRldgog IHhmODYtaW5wdXQtd2Fjb20tZGV2ZWwiCiBkZXBlbmRzPSJoaWNvbG9yLWljb24tdGhlbWUgcHVs c2VhdWRpbyIKIGNoZWNrZGVwZW5kcz0iZWxvZ2luZCBsaWJub3RpZnkgcHl0aG9uMy1kYnVzbW9j ayBweXRob24zLWdvYmplY3QKLSBweXRob24zLXB5Y29kZXN0eWxlIgorIHB5dGhvbjMtcHljb2Rl c3R5bGUgd2hpY2ggaHdpZHMgZXVkZXYiCiBzaG9ydF9kZXNjPSJHTk9NRSBzZXR0aW5ncyBkYWVt b24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5v cmcvR05PTUUvZ25vbWUtc2V0dGluZ3MtZGFlbW9uIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09OTk4MWEyMGJhYmY4ZGE3NzQ0YjdmYmUxNzViOWUzNjA3OGJmMDhmM2JmNjVmZTVh ZWRlYjgyY2ZlMjdhYzExZgorY2hlY2tzdW09YjdlZDViNWZhYjlhYWQxOTJjZWVkNmE5NWJlMjgw NTEyNGUzYzYzYzQ2ODkxYmJhZTA3NmY3ZWMzZmQ2NzkyZQogCiBpZiBbICIkQ1JPU1NfQlVJTEQi IF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgcG9sa2l0IgoKRnJvbSBkZDk5YTc2MDY4YmNj MmU0MGI1MTUxN2QzNWExMWJhYzliNWU1ODllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcg MjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM4LzEwMl0gbXV0dGVyOiB1cGRh dGUgdG8gMy4zOC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAxOCArLQogLi4uL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNo ICAgICAgIHwgIDExIC0KIHNyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNo ICAgICB8IDUyMSAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICB8ICAzNCArLQogNCBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRp b25zKCspLCA1NTUgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXR0 ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaAoKZGlmZiAtLWdpdCBh L2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDk2ZDFhNmJkMTgzLi5kMWYwMTAx NjZhYiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0z MDAyLDE1ICszMDAyLDE1IEBAIGxpYmRlY29yYXRpb24uc28uMCBjb21waXotY29yZS0wLjguMTRf MQogbGliY29tcGl6Y29uZmlnLnNvLjAgbGliY29tcGl6Y29uZmlnLTAuOC4xNF8xCiBsaWJlbWVy YWxkZW5naW5lLnNvLjAgZW1lcmFsZC0wLjguMTRfMQogbGliaGFuZ3VsLnNvLjEgbGliaGFuZ3Vs LTAuMS4wXzEKLWxpYm11dHRlci01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY2x1 dHRlci01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNsdXR0ZXItNS5zby4wIG11dHRl ci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGF0aC01LnNvIG11dHRlci0zLjM0LjFfMQotbGli bXV0dGVyLWNvZ2wtcGF0aC01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY29nbC01 LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtNS5zby4wIG11dHRlci0zLjM0LjFf MQotbGlibXV0dGVyLWNvZ2wtcGFuZ28tNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1j b2dsLXBhbmdvLTUuc28uMCBtdXR0ZXItMy4zNC4xXzEKK2xpYm11dHRlci03LnNvLjAgbXV0dGVy LTMuMzcuOTBfMQorbGlibXV0dGVyLWNsdXR0ZXItNy5zbyBtdXR0ZXItMy4zNy45MF8xCitsaWJt dXR0ZXItY2x1dHRlci03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGF0 aC03LnNvIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhdGgtNy5zby4wIG11dHRl ci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0 dGVyLWNvZ2wtNy5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhbmdvLTcu c28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zby4wIG11dHRlci0z LjM3LjkwXzEKIGxpYmdlb2NsdWUtMi5zby4wIGdlb2NsdWUyLTIuNC40XzEKIGxpYmdlcHViLnNv LjAgbGliZ2VwdWItMC40XzEKIGxpYnNsb3B5LnNvLjcuNSBzbG9wLTcuNV8xCmRpZmYgLS1naXQg YS9zcmNwa2dzL211dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRlcy5wYXRjaCBiL3Ny Y3BrZ3MvbXV0dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTA5ODg4ODdjMy4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gY29nbC9jb2dsL21lc29uLmJ1aWxkCTIwMTktMTAt MDggMTk6MTU6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgY29nbC9jb2dsL21lc29uLmJ1aWxkCTIw MTktMTItMTYgMTU6NDU6NDQuMDM3NjQwNTQ4ICswMTAwCi1AQCAtNDgsNyArNDgsNyBAQAotIGJ1 aWx0X2hlYWRlcnMgKz0gW2NvZ2xfZ2xfaGVhZGVyX2hdCi0gCi0gaWYgaGF2ZV9lZ2wKLS0gIGNv Z2xfZWdsX2luY2x1ZGVzX3N0cmluZyA9ICcjaW5jbHVkZSA8RUdML2VnbC5oPlxuI2luY2x1ZGUg PEVHTC9lZ2xleHQuaD4nCi0rICBjb2dsX2VnbF9pbmNsdWRlc19zdHJpbmcgPSAnI2luY2x1ZGUg PEVHTC9lZ2wuaD5cbiNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+XG4jaW5jbHVkZSA8RUdML2VnbG1l c2FleHQuaD4nCi0gZWxzZQotICAgY29nbF9lZ2xfaW5jbHVkZXNfc3RyaW5nID0gJycKLSBlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2gg Yi9zcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggZWJmZjY1ZmJhODUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv bXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIx ICswLDAgQEAKLUJ1aWxkIG11dHRlciBhZ2FpbnN0IHBpcGV3aXJlLTAuMywgYmFzZWQgb24gYSBw YXRjaCBhdDoKLWh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tdXR0ZXIvLS9tZXJnZV9y ZXF1ZXN0cy8xMDYyCi0tLS0gbWVzb24uYnVpbGQKLSsrKyBtZXNvbi5idWlsZAotQEAgLTUwLDcg KzUwLDcgQEAgbGliaW5wdXRfcmVxID0gJz49IDEuNycKLSBnYm1fcmVxID0gJz49IDEwLjMnCi0K LSAjIHNjcmVlbiBjYXN0IHZlcnNpb24gcmVxdWlyZW1lbnRzCi0tbGlicGlwZXdpcmVfcmVxID0g Jz49IDAuMi41JwotK2xpYnBpcGV3aXJlX3JlcSA9ICc+PSAwLjMuMCcKLQotIGdub21lID0gaW1w b3J0KCdnbm9tZScpCi0gcGtnID0gaW1wb3J0KCdwa2djb25maWcnKQotQEAgLTI0MSw3ICsyNDEs NyBAQCBlbmRpZgotCi0gaGF2ZV9yZW1vdGVfZGVza3RvcCA9IGdldF9vcHRpb24oJ3JlbW90ZV9k ZXNrdG9wJykKLSBpZiBoYXZlX3JlbW90ZV9kZXNrdG9wCi0tICBsaWJwaXBld2lyZV9kZXAgPSBk ZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0wLjInLCB2ZXJzaW9uOiBsaWJwaXBld2lyZV9yZXEpCi0r ICBsaWJwaXBld2lyZV9kZXAgPSBkZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0wLjMnLCB2ZXJzaW9u OiBsaWJwaXBld2lyZV9yZXEpCi0gZW5kaWYKLQotIGhhdmVfaW50cm9zcGVjdGlvbiA9IGdldF9v cHRpb24oJ2ludHJvc3BlY3Rpb24nKQotZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kcy9tZXRhLXNj cmVlbi1jYXN0LXN0cmVhbS1zcmMuYyBiL3NyYy9iYWNrZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0 cmVhbS1zcmMuYwotaW5kZXggODJjNWNiYTQzNi4uYmExY2U5NGE3ZSAxMDA2NDQKLS0tLSBzcmMv YmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLSsrKyBzcmMvYmFja2VuZHMv bWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLUBAIC0yOSw2ICsyOSw3IEBACi0gI2luY2x1 ZGUgPHNwYS9wYXJhbS9wcm9wcy5oPgotICNpbmNsdWRlIDxzcGEvcGFyYW0vZm9ybWF0LXV0aWxz Lmg+Ci0gI2luY2x1ZGUgPHNwYS9wYXJhbS92aWRlby9mb3JtYXQtdXRpbHMuaD4KLSsjaW5jbHVk ZSA8c3BhL3V0aWxzL3Jlc3VsdC5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAjaW5jbHVkZSA8 c3lzL21tYW4uaD4KLQotQEAgLTYyLDE1ICs2Myw2IEBAIGVudW0KLQotIHN0YXRpYyBndWludCBz aWduYWxzW05fU0lHTkFMU107Ci0KLS10eXBlZGVmIHN0cnVjdCBfTWV0YVNwYVR5cGUKLS17Ci0t ICBzdHJ1Y3Qgc3BhX3R5cGVfbWVkaWFfdHlwZSBtZWRpYV90eXBlOwotLSAgc3RydWN0IHNwYV90 eXBlX21lZGlhX3N1YnR5cGUgbWVkaWFfc3VidHlwZTsKLS0gIHN0cnVjdCBzcGFfdHlwZV9mb3Jt YXRfdmlkZW8gZm9ybWF0X3ZpZGVvOwotLSAgc3RydWN0IHNwYV90eXBlX3ZpZGVvX2Zvcm1hdCB2 aWRlb19mb3JtYXQ7Ci0tICB1aW50MzJfdCBtZXRhX2N1cnNvcjsKLS19IE1ldGFTcGFUeXBlOwot LQotIHR5cGVkZWYgc3RydWN0IF9NZXRhUGlwZVdpcmVTb3VyY2UKLSB7Ci0gICBHU291cmNlIGJh c2U7Ci1AQCAtODIsMTkgKzc0LDE5IEBAIHR5cGVkZWYgc3RydWN0IF9NZXRhU2NyZWVuQ2FzdFN0 cmVhbVNyY1ByaXZhdGUKLSB7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbSAqc3RyZWFtOwotCi0r ICBzdHJ1Y3QgcHdfY29udGV4dCAqcGlwZXdpcmVfY29udGV4dDsKLSAgIHN0cnVjdCBwd19jb3Jl ICpwaXBld2lyZV9jb3JlOwotLSAgc3RydWN0IHB3X3JlbW90ZSAqcGlwZXdpcmVfcmVtb3RlOwot LSAgc3RydWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5cGU7Ci0gICBNZXRhUGlwZVdpcmVTb3VyY2Ug KnBpcGV3aXJlX3NvdXJjZTsKLS0gIHN0cnVjdCBzcGFfaG9vayBwaXBld2lyZV9yZW1vdGVfbGlz dGVuZXI7Ci0rICBzdHJ1Y3Qgc3BhX2hvb2sgcGlwZXdpcmVfY29yZV9saXN0ZW5lcjsKLQotICAg Z2Jvb2xlYW4gaXNfZW5hYmxlZDsKLQotICAgc3RydWN0IHB3X3N0cmVhbSAqcGlwZXdpcmVfc3Ry ZWFtOwotICAgc3RydWN0IHNwYV9ob29rIHBpcGV3aXJlX3N0cmVhbV9saXN0ZW5lcjsKLSsgIHVp bnQzMl90IG5vZGVfaWQ7Ci0KLS0gIE1ldGFTcGFUeXBlIHNwYV90eXBlOwotICAgc3RydWN0IHNw YV92aWRlb19pbmZvX3JhdyB2aWRlb19mb3JtYXQ7Ci0rICBpbnQgdmlkZW9fc3RyaWRlOwotCi0g ICB1aW50NjRfdCBsYXN0X2ZyYW1lX3RpbWVzdGFtcF91czsKLQotQEAgLTExMiw4ICsxMDQsNiBA QCBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YV9zY3JlZW5f Y2FzdF9zdHJlYW1fc3JjX2luaXRfaW5pdGFibGVfaWZhY2UpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgIEdfQUREX1BSSVZBVEUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjKSkKLQotLSNkZWZp bmUgUFJPUF9SQU5HRShtaW4sIG1heCkgMiwgKG1pbiksIChtYXgpCi0tCi0gc3RhdGljIHZvaWQK LSBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X3NwZWNzIChNZXRhU2NyZWVuQ2FzdFN0 cmVhbVNyYyAqc3JjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAgICAgICAgICAgICAgICAgICAgICp3aWR0aCwKLUBAIC0yODYsOSArMjc2LDYgQEAgbWV0YV9z Y3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChN ZXRhU2NyZWVuQ2FzdFN0cmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICB4LAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHkpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJl YW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dl dF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnBy aXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCAqc3BhX21ldGFfYml0bWFw OwotCi0gICBzcGFfbWV0YV9jdXJzb3ItPmlkID0gMTsKLUBAIC0zMDAsNyArMjg3LDcgQEAgbWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRlX21ldGFkYXRh IChNZXRhU2NyZWVuQ2FzdFN0cmUKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQQV9NRU1CRVIgKHNw YV9tZXRhX2N1cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYV9tZXRh X2N1cnNvci0+Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBzcGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQgPSBz cGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1hdCA9 IFNQQV9WSURFT19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+b2Zmc2V0ID0gc2l6 ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgc3BhX21ldGFfY3Vyc29yLT5ob3Rz cG90LnggPSAwOwotQEAgLTMxNyw5ICszMDQsNiBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9z cmNfc2V0X2N1cnNvcl9zcHJpdGVfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgICAgICAgICAgICAgICAgICAgICAgeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0ICAgICAgICAgICAgICAgICAgICBzY2Fs ZSkKLSB7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotLSAgICBt ZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0t ICBNZXRhU3BhVHlwZSAqc3BhX3R5cGUgPSAmcHJpdi0+c3BhX3R5cGU7Ci0gICBDb2dsVGV4dHVy ZSAqY3Vyc29yX3RleHR1cmU7Ci0gICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwICpzcGFfbWV0YV9i aXRtYXA7Ci0gICBpbnQgaG90c3BvdF94LCBob3RzcG90X3k7Ci1AQCAtMzQ2LDcgKzMzMCw3IEBA IG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfY3Vyc29yX3Nwcml0ZV9tZXRhZGF0YSAo TWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQQV9NRU1CRVIg KHNwYV9tZXRhX2N1cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYV9t ZXRhX2N1cnNvci0+Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQg PSBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1h dCA9IFNQQV9WSURFT19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+b2Zmc2V0ID0g c2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgbWV0YV9jdXJzb3Jfc3ByaXRl X2dldF9ob3RzcG90IChjdXJzb3Jfc3ByaXRlLCAmaG90c3BvdF94LCAmaG90c3BvdF95KTsKLUBA IC0zODIsMTIgKzM2NiwxMCBAQCBzdGF0aWMgdm9pZAotIGFkZF9jdXJzb3JfbWV0YWRhdGEgKE1l dGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMsCi0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHNwYV9idWZmZXIgICAgICAgKnNwYV9idWZmZXIpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJl YW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dl dF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnBy aXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNwYV9tZXRhX2N1cnNvciAqc3BhX21ldGFfY3Vyc29y OwotCi0tICBzcGFfbWV0YV9jdXJzb3IgPSBzcGFfYnVmZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZl ciwgc3BhX3R5cGUtPm1ldGFfY3Vyc29yKTsKLSsgIHNwYV9tZXRhX2N1cnNvciA9IHNwYV9idWZm ZXJfZmluZF9tZXRhX2RhdGEgKHNwYV9idWZmZXIsIFNQQV9NRVRBX0N1cnNvciwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoKnNwYV9tZXRh X2N1cnNvcikpOwotICAgaWYgKHNwYV9tZXRhX2N1cnNvcikKLSAgICAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX3NldF9jdXJzb3JfbWV0YWRhdGEgKHNyYywgc3BhX21ldGFfY3Vyc29yKTsK LSB9Ci1AQCAtNDQ3LDE0ICs0MjksMTQgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX21h eWJlX3JlY29yZF9mcmFtZSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYykKLSAgICAgewot ICAgICAgIGRhdGEgPSBzcGFfYnVmZmVyLT5kYXRhc1swXS5kYXRhOwotICAgICB9Ci0tICBlbHNl IGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50eXBlID09IHByaXYtPnBpcGV3aXJlX3R5cGUtPmRh dGEuTWVtRmQpCi0rICBlbHNlIGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50eXBlID09IFNQQV9E QVRBX01lbUZkKQotICAgICB7Ci0gICAgICAgbWFwID0gbW1hcCAoTlVMTCwgc3BhX2J1ZmZlci0+ ZGF0YXNbMF0ubWF4c2l6ZSArIHNwYV9idWZmZXItPmRhdGFzWzBdLm1hcG9mZnNldCwKLSAgICAg ICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELAotICAgICAg ICAgICAgICAgICAgIHNwYV9idWZmZXItPmRhdGFzWzBdLmZkLCAwKTsKLSAgICAgICBpZiAobWFw ID09IE1BUF9GQUlMRUQpCi0gICAgICAgICB7Ci0tICAgICAgICAgIGdfd2FybmluZyAoIkZhaWxl ZCB0byBtbWFwIHBpcGV3aXJlIHN0cmVhbSBidWZmZXI6ICVzXG4iLAotKyAgICAgICAgICBnX3dh cm5pbmcgKCJGYWlsZWQgdG8gbW1hcCBwaXBld2lyZSBzdHJlYW0gYnVmZmVyOiAlcyIsCi0gICAg ICAgICAgICAgICAgICAgICAgc3RyZXJyb3IgKGVycm5vKSk7Ci0gICAgICAgICAgIHJldHVybjsK LSAgICAgICAgIH0KLUBAIC00NjksMjggKzQ1MSwzMCBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVh bV9zcmNfbWF5YmVfcmVjb3JkX2ZyYW1lIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjKQot Ci0gICBpZiAobWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3JlY29yZF9mcmFtZSAoc3JjLCBk YXRhKSkKLSAgICAgewotLSAgICAgIHN0cnVjdCBzcGFfbWV0YV92aWRlb19jcm9wICpzcGFfbWV0 YV92aWRlb19jcm9wOwotKyAgICAgIHN0cnVjdCBzcGFfbWV0YV9yZWdpb24gKnNwYV9tZXRhX3Zp ZGVvX2Nyb3A7Ci0KLSAgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5jaHVuay0+c2l6ZSA9IHNw YV9idWZmZXItPmRhdGFzWzBdLm1heHNpemU7Ci0rICAgICAgc3BhX2J1ZmZlci0+ZGF0YXNbMF0u Y2h1bmstPnN0cmlkZSA9IHByaXYtPnZpZGVvX3N0cmlkZTsKLQotICAgICAgIC8qIFVwZGF0ZSBW aWRlb0Nyb3AgaWYgbmVlZGVkICovCi0gICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcCA9Ci0tICAg ICAgICBzcGFfYnVmZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZlciwgcHJpdi0+cGlwZXdpcmVfdHlw ZS0+bWV0YS5WaWRlb0Nyb3ApOwotKyAgICAgICAgc3BhX2J1ZmZlcl9maW5kX21ldGFfZGF0YSAo c3BhX2J1ZmZlciwgU1BBX01FVEFfVmlkZW9Dcm9wLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZW9mICgqc3BhX21ldGFfdmlkZW9fY3JvcCkpOwotICAgICAgIGlmIChz cGFfbWV0YV92aWRlb19jcm9wKQotICAgICAgICAgewotICAgICAgICAgICBpZiAobWV0YV9zY3Jl ZW5fY2FzdF9zdHJlYW1fc3JjX2dldF92aWRlb2Nyb3AgKHNyYywgJmNyb3BfcmVjdCkpCi0gICAg ICAgICAgICAgewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eCA9IGNyb3Bf cmVjdC54OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eSA9IGNyb3BfcmVj dC55OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+d2lkdGggPSBjcm9wX3Jl Y3Qud2lkdGg7Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5oZWlnaHQgPSBj cm9wX3JlY3QuaGVpZ2h0OwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVn aW9uLnBvc2l0aW9uLnggPSBjcm9wX3JlY3QueDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3Zp ZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi55ID0gY3JvcF9yZWN0Lnk7Ci0rICAgICAgICAgICAg ICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24uc2l6ZS53aWR0aCA9IGNyb3BfcmVjdC53aWR0 aDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdo dCA9IGNyb3BfcmVjdC5oZWlnaHQ7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eCA9IDA7 Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT55ID0gMDsKLS0gICAgICAgICAg ICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPndpZHRoID0gcHJpdi0+c3RyZWFtX3dpZHRoOwotLSAg ICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+aGVpZ2h0ID0gcHJpdi0+c3RyZWFtX2hl aWdodDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlv bi54ID0gMDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3Np dGlvbi55ID0gMDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5z aXplLndpZHRoID0gcHJpdi0+c3RyZWFtX3dpZHRoOwotKyAgICAgICAgICAgICAgc3BhX21ldGFf dmlkZW9fY3JvcC0+cmVnaW9uLnNpemUuaGVpZ2h0ID0gcHJpdi0+c3RyZWFtX2hlaWdodDsKLSAg ICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0KLUBAIC01NTUsNyArNTM5LDYgQEAgb25f c3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgTWV0 YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVh bVNyY1ByaXZhdGUgKnByaXYgPQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0 X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICB1aW50MzJfdCBub2RlX2lkOwotCi0gICBzd2l0 Y2ggKHN0YXRlKQotICAgICB7Ci1AQCAtNTYzLDE0ICs1NDYsMTIgQEAgb25fc3RyZWFtX3N0YXRl X2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICAgIGdfd2FybmluZyAo InBpcGV3aXJlIHN0cmVhbSBlcnJvcjogJXMiLCBlcnJvcl9tZXNzYWdlKTsKLSAgICAgICBtZXRh X3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLSAgICAgICBicmVh azsKLS0gICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09ORklHVVJFOgotLSAgICAgIG5vZGVfaWQg PSBwd19zdHJlYW1fZ2V0X25vZGVfaWQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSk7Ci0tICAgICAg Z19zaWduYWxfZW1pdCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVkIGludCkgbm9k ZV9pZCk7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX1VOQ09OTkVD VEVEOgotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9DT05ORUNUSU5HOgotLSAgICBjYXNlIFBX X1NUUkVBTV9TVEFURV9SRUFEWToKLSAgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfUEFVU0VEOgot KyAgICAgIGlmIChwcml2LT5ub2RlX2lkID09IFNQQV9JRF9JTlZBTElEICYmIHByaXYtPnBpcGV3 aXJlX3N0cmVhbSkKLSsgICAgICAgIHsKLSsgICAgICAgICAgcHJpdi0+bm9kZV9pZCA9IHB3X3N0 cmVhbV9nZXRfbm9kZV9pZCAocHJpdi0+cGlwZXdpcmVfc3RyZWFtKTsKLSsgICAgICAgICAgZ19z aWduYWxfZW1pdCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVkIGludCkgcHJpdi0+ bm9kZV9pZCk7Ci0rICAgICAgICB9Ci0gICAgICAgaWYgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFt X3NyY19pc19lbmFibGVkIChzcmMpKQotICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1f c3JjX2Rpc2FibGUgKHNyYyk7Ci0gICAgICAgYnJlYWs7Ci1AQCAtNTc4LDY4ICs1NTksNjkgQEAg b25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAg ICAgIGlmICghbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2lzX2VuYWJsZWQgKHNyYykpCi0g ICAgICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZW5hYmxlIChzcmMpOwotICAgICAg IGJyZWFrOwotKyAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9VTkNPTk5FQ1RFRDoKLSsgICAgY2Fz ZSBQV19TVFJFQU1fU1RBVEVfQ09OTkVDVElORzoKLSsgICAgICBicmVhazsKLSAgICAgfQotIH0K LQotIHN0YXRpYyB2b2lkCi0tb25fc3RyZWFtX2Zvcm1hdF9jaGFuZ2VkICh2b2lkICAgICAgICAg ICAgICAgICAqZGF0YSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBz cGFfcG9kICpmb3JtYXQpCi0rb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQgKHZvaWQgICAgICAgICAg ICAgICAgICpkYXRhLAotKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAg ICAgICAgaWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzcGFfcG9k ICpmb3JtYXQpCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0g ICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotICAgICBtZXRhX3NjcmVl bl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBzdHJ1Y3Qg cHdfdHlwZSAqcGlwZXdpcmVfdHlwZSA9IHByaXYtPnBpcGV3aXJlX3R5cGU7Ci0gICB1aW50OF90 IHBhcmFtc19idWZmZXJbMTAyNF07Ci0gICBpbnQzMl90IHdpZHRoLCBoZWlnaHQsIHN0cmlkZSwg c2l6ZTsKLSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXI7Ci0gICBjb25zdCBz dHJ1Y3Qgc3BhX3BvZCAqcGFyYW1zWzNdOwotICAgY29uc3QgaW50IGJwcCA9IDQ7Ci0KLS0gIGlm ICghZm9ybWF0KQotLSAgICB7Ci0tICAgICAgcHdfc3RyZWFtX2ZpbmlzaF9mb3JtYXQgKHByaXYt PnBpcGV3aXJlX3N0cmVhbSwgMCwgTlVMTCwgMCk7Ci0tICAgICAgcmV0dXJuOwotLSAgICB9Ci0r ICBpZiAoIWZvcm1hdCB8fCBpZCAhPSBTUEFfUEFSQU1fRm9ybWF0KQotKyAgICByZXR1cm47Ci0K LSAgIHNwYV9mb3JtYXRfdmlkZW9fcmF3X3BhcnNlIChmb3JtYXQsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnByaXYtPnZpZGVvX2Zvcm1hdCwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmcHJpdi0+c3BhX3R5cGUuZm9ybWF0X3ZpZGVvKTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmcHJpdi0+dmlkZW9fZm9ybWF0KTsKLQotICAgd2lkdGggPSBwcml2 LT52aWRlb19mb3JtYXQuc2l6ZS53aWR0aDsKLSAgIGhlaWdodCA9IHByaXYtPnZpZGVvX2Zvcm1h dC5zaXplLmhlaWdodDsKLSAgIHN0cmlkZSA9IFNQQV9ST1VORF9VUF9OICh3aWR0aCAqIGJwcCwg NCk7Ci0gICBzaXplID0gaGVpZ2h0ICogc3RyaWRlOwotCi0rICBwcml2LT52aWRlb19zdHJpZGUg PSBzdHJpZGU7Ci0rCi0gICBwb2RfYnVpbGRlciA9IFNQQV9QT0RfQlVJTERFUl9JTklUIChwYXJh bXNfYnVmZmVyLCBzaXplb2YgKHBhcmFtc19idWZmZXIpKTsKLQotLSAgcGFyYW1zWzBdID0gc3Bh X3BvZF9idWlsZGVyX29iamVjdCAoCi0rICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfYWRk X29iamVjdCAoCi0gICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0u aWRCdWZmZXJzLCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLkJ1ZmZlcnMsCi0tICAgICI6 IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5zaXplLCAiaSIsIHNpemUsCi0tICAgICI6 IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5zdHJpZGUsICJpIiwgc3RyaWRlLAotLSAg ICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuYnVmZmVycywgImlydSIsIDE2LCBQ Uk9QX1JBTkdFICgyLCAxNiksCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVy cy5hbGlnbiwgImkiLCAxNik7Ci0tCi0tICBwYXJhbXNbMV0gPSBzcGFfcG9kX2J1aWxkZXJfb2Jq ZWN0ICgKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtQnVmZmVycywgU1BBX1BBUkFNX0J1ZmZl cnMsCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX2J1ZmZlcnMsIFNQQV9QT0RfQ0hPSUNFX1JBTkdF X0ludCAoMTYsIDIsIDE2KSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYmxvY2tzLCBTUEFfUE9E X0ludCAoMSksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX3NpemUsIFNQQV9QT0RfSW50IChzaXpl KSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfc3RyaWRlLCBTUEFfUE9EX0ludCAoc3RyaWRlKSwK LSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYWxpZ24sIFNQQV9QT0RfSW50ICgxNikpOwotKwotKyAg cGFyYW1zWzFdID0gc3BhX3BvZF9idWlsZGVyX2FkZF9vYmplY3QgKAotICAgICAmcG9kX2J1aWxk ZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBhcmFtLmlkTWV0YSwgcGlwZXdpcmVfdHlwZS0+cGFy YW1fbWV0YS5NZXRhLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEudHlwZSwg IkkiLCBwaXBld2lyZV90eXBlLT5tZXRhLlZpZGVvQ3JvcCwKLS0gICAgIjoiLCBwaXBld2lyZV90 eXBlLT5wYXJhbV9tZXRhLnNpemUsICJpIiwgc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfdmlkZW9f Y3JvcCkpOwotKyAgICBTUEFfVFlQRV9PQkpFQ1RfUGFyYW1NZXRhLCBTUEFfUEFSQU1fTWV0YSwK LSsgICAgU1BBX1BBUkFNX01FVEFfdHlwZSwgU1BBX1BPRF9JZCAoU1BBX01FVEFfVmlkZW9Dcm9w KSwKLSsgICAgU1BBX1BBUkFNX01FVEFfc2l6ZSwgU1BBX1BPRF9JbnQgKHNpemVvZiAoc3RydWN0 IHNwYV9tZXRhX3JlZ2lvbikpKTsKLQotLSAgcGFyYW1zWzJdID0gc3BhX3BvZF9idWlsZGVyX29i amVjdCAoCi0rICBwYXJhbXNbMl0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCAoCi0gICAg ICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRNZXRhLCBwaXBld2ly ZV90eXBlLT5wYXJhbV9tZXRhLk1ldGEsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1f bWV0YS50eXBlLCAiSSIsIHByaXYtPnNwYV90eXBlLm1ldGFfY3Vyc29yLAotLSAgICAiOiIsIHBp cGV3aXJlX3R5cGUtPnBhcmFtX21ldGEuc2l6ZSwgImkiLCBDVVJTT1JfTUVUQV9TSVpFICg2NCwg NjQpKTsKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BBUkFNX01ldGEsCi0r ICAgIFNQQV9QQVJBTV9NRVRBX3R5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRVRBX0N1cnNvciksCi0r ICAgIFNQQV9QQVJBTV9NRVRBX3NpemUsIFNQQV9QT0RfSW50IChDVVJTT1JfTUVUQV9TSVpFICg2 NCwgNjQpKSk7Ci0KLS0gIHB3X3N0cmVhbV9maW5pc2hfZm9ybWF0IChwcml2LT5waXBld2lyZV9z dHJlYW0sIDAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCBHX05fRUxFTUVO VFMgKHBhcmFtcykpOwotKyAgcHdfc3RyZWFtX3VwZGF0ZV9wYXJhbXMgKHByaXYtPnBpcGV3aXJl X3N0cmVhbSwgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotIH0KLQotIHN0YXRpYyBj b25zdCBzdHJ1Y3QgcHdfc3RyZWFtX2V2ZW50cyBzdHJlYW1fZXZlbnRzID0gewotICAgUFdfVkVS U0lPTl9TVFJFQU1fRVZFTlRTLAotICAgLnN0YXRlX2NoYW5nZWQgPSBvbl9zdHJlYW1fc3RhdGVf Y2hhbmdlZCwKLS0gIC5mb3JtYXRfY2hhbmdlZCA9IG9uX3N0cmVhbV9mb3JtYXRfY2hhbmdlZCwK LSsgIC5wYXJhbV9jaGFuZ2VkID0gb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQsCi0gfTsKLQotIHN0 YXRpYyBzdHJ1Y3QgcHdfc3RyZWFtICoKLUBAIC02NTIsOCArNjM0LDYgQEAgY3JlYXRlX3BpcGV3 aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gICB1aW50OF90IGJ1 ZmZlclsxMDI0XTsKLSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXIgPQotICAg ICBTUEFfUE9EX0JVSUxERVJfSU5JVCAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZlcikpOwotLSAgTWV0 YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotLSAgc3RydWN0IHB3X3R5cGUg KnBpcGV3aXJlX3R5cGUgPSBwcml2LT5waXBld2lyZV90eXBlOwotICAgZmxvYXQgZnJhbWVfcmF0 ZTsKLSAgIE1ldGFGcmFjdGlvbiBmcmFtZV9yYXRlX2ZyYWN0aW9uOwotICAgc3RydWN0IHNwYV9m cmFjdGlvbiBtYXhfZnJhbWVyYXRlOwotQEAgLTY2MSw3ICs2NDEsOSBAQCBjcmVhdGVfcGlwZXdp cmVfc3RyZWFtIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAgKnNyYywKLSAgIGNvbnN0IHN0cnVj dCBzcGFfcG9kICpwYXJhbXNbMV07Ci0gICBpbnQgcmVzdWx0OwotCi0tICBwaXBld2lyZV9zdHJl YW0gPSBwd19zdHJlYW1fbmV3IChwcml2LT5waXBld2lyZV9yZW1vdGUsCi0rICBwcml2LT5ub2Rl X2lkID0gU1BBX0lEX0lOVkFMSUQ7Ci0rCi0rICBwaXBld2lyZV9zdHJlYW0gPSBwd19zdHJlYW1f bmV3IChwcml2LT5waXBld2lyZV9jb3JlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIm1ldGEtc2NyZWVuLWNhc3Qtc3JjIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5VTEwpOwotICAgaWYgKCFwaXBld2lyZV9zdHJlYW0pCi1AQCAtNjgyLDE3ICs2 NjQsMTcgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMg ICpzcmMsCi0gICBtYXhfZnJhbWVyYXRlID0gU1BBX0ZSQUNUSU9OIChmcmFtZV9yYXRlX2ZyYWN0 aW9uLm51bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3JhdGVfZnJh Y3Rpb24uZGVub20pOwotCi0tICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfb2JqZWN0ICgK LSsgIHBhcmFtc1swXSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgKLSAgICAgJnBvZF9i dWlsZGVyLAotLSAgICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZEVudW1Gb3JtYXQsIHBpcGV3aXJl X3R5cGUtPnNwYV9mb3JtYXQsCi0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlhX3R5cGUudmlkZW8s Ci0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlhX3N1YnR5cGUucmF3LAotLSAgICAiOiIsIHNwYV90 eXBlLT5mb3JtYXRfdmlkZW8uZm9ybWF0LCAiSSIsIHNwYV90eXBlLT52aWRlb19mb3JtYXQuQkdS eCwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLnNpemUsICJSIiwgJlNQQV9SRUNU QU5HTEUgKHByaXYtPnN0cmVhbV93aWR0aCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPnN0cmVhbV9oZWlnaHQpLAotLSAg ICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8uZnJhbWVyYXRlLCAiRiIsICZTUEFfRlJBQ1RJ T04gKDAsIDEpLAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8ubWF4X2ZyYW1lcmF0 ZSwgIkZydSIsICZtYXhfZnJhbWVyYXRlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfUkFOR0UgKCZtaW5fZnJhbWVyYXRlLAotKyAg ICBTUEFfVFlQRV9PQkpFQ1RfRm9ybWF0LCBTUEFfUEFSQU1fRW51bUZvcm1hdCwKLSsgICAgU1BB X0ZPUk1BVF9tZWRpYVR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9UWVBFX3ZpZGVvKSwKLSsg ICAgU1BBX0ZPUk1BVF9tZWRpYVN1YnR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9TVUJUWVBF X3JhdyksCi0rICAgIFNQQV9GT1JNQVRfVklERU9fZm9ybWF0LCBTUEFfUE9EX0lkIChTUEFfVklE RU9fRk9STUFUX0JHUngpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX3NpemUsIFNQQV9QT0RfUmVj dGFuZ2xlICgmU1BBX1JFQ1RBTkdMRSAocHJpdi0+c3RyZWFtX3dpZHRoLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+ c3RyZWFtX2hlaWdodCkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX2ZyYW1lcmF0ZSwgU1BBX1BP RF9GcmFjdGlvbiAoJlNQQV9GUkFDVElPTiAoMCwgMSkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVP X21heEZyYW1lcmF0ZSwgU1BBX1BPRF9DSE9JQ0VfUkFOR0VfRnJhY3Rpb24gKCZtYXhfZnJhbWVy YXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZtaW5fZnJhbWVyYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYXhfZnJhbWVyYXRl KSk7Ci0KLSAgIHB3X3N0cmVhbV9hZGRfbGlzdGVuZXIgKHBpcGV3aXJlX3N0cmVhbSwKLUBAIC03 MDIsNyArNjg0LDcgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJl YW1TcmMgICpzcmMsCi0KLSAgIHJlc3VsdCA9IHB3X3N0cmVhbV9jb25uZWN0IChwaXBld2lyZV9z dHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFdfRElSRUNUSU9OX09VVFBV VCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNQQV9JRF9JTlZBTElELAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChQV19TVFJFQU1fRkxBR19EUklWRVIgfAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQV19TVFJFQU1fRkxBR19NQVBfQlVGRkVSUyksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotQEAgLTcxNyw0MCAr Njk5LDE4IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3Jj ICAqc3JjLAotIH0KLQotIHN0YXRpYyB2b2lkCi0tb25fc3RhdGVfY2hhbmdlZCAodm9pZCAgICAg ICAgICAgICAgICAgKmRhdGEsCi0tICAgICAgICAgICAgICAgICAgZW51bSBwd19yZW1vdGVfc3Rh dGUgIG9sZCwKLS0gICAgICAgICAgICAgICAgICBlbnVtIHB3X3JlbW90ZV9zdGF0ZSAgc3RhdGUs Ci0tICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgKmVycm9yX21lc3NhZ2Up Ci0rb25fY29yZV9lcnJvciAodm9pZCAgICAgICAqZGF0YSwKLSsgICAgICAgICAgICAgICB1aW50 MzJfdCAgICBpZCwKLSsJICAgICAgIGludCAgICAgICAgIHNlcSwKLSsJICAgICAgIGludCAgICAg ICAgIHJlcywKLSsJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCi0gewotICAgTWV0YVNjcmVl bkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1By aXZhdGUgKnByaXYgPQotLSAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3Rh bmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBzdHJ1Y3QgcHdfc3RyZWFtICpwaXBld2lyZV9zdHJlYW07 Ci0tICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLQotLSAgc3dpdGNoIChzdGF0ZSkKLS0gICAgewot LSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9FUlJPUjoKLS0gICAgICBnX3dhcm5pbmcgKCJwaXBl d2lyZSByZW1vdGUgZXJyb3I6ICVzXG4iLCBlcnJvcl9tZXNzYWdlKTsKLS0gICAgICBtZXRhX3Nj cmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLS0gICAgICBicmVhazsK LS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfQ09OTkVDVEVEOgotLSAgICAgIHBpcGV3aXJlX3N0 cmVhbSA9IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgJmVycm9yKTsKLS0gICAgICBpZiAo IXBpcGV3aXJlX3N0cmVhbSkKLS0gICAgICAgIHsKLS0gICAgICAgICAgZ193YXJuaW5nICgiQ291 bGQgbm90IGNyZWF0ZSBwaXBld2lyZSBzdHJlYW06ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwotLSAg ICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKLS0gICAgICAgICAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0tICAgICAgICB9Ci0tICAgICAgZWxz ZQotLSAgICAgICAgewotLSAgICAgICAgICBwcml2LT5waXBld2lyZV9zdHJlYW0gPSBwaXBld2ly ZV9zdHJlYW07Ci0tICAgICAgICB9Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfUkVNT1RF X1NUQVRFX1VOQ09OTkVDVEVEOgotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9DT05ORUNUSU5H OgotLSAgICAgIGJyZWFrOwotLSAgICB9Ci0rICBnX3dhcm5pbmcgKCJwaXBld2lyZSByZW1vdGUg ZXJyb3I6IGlkOiV1ICVzIiwgaWQsIG1lc3NhZ2UpOwotKwotKyAgaWYgKGlkID09IFBXX0lEX0NP UkUgJiYgcmVzID09IC1FUElQRSkKLSsgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25v dGlmeV9jbG9zZWQgKHNyYyk7Ci0gfQotCi0gc3RhdGljIGdib29sZWFuCi1AQCAtNzkzLDE3ICs3 NTMsNiBAQCBzdGF0aWMgR1NvdXJjZUZ1bmNzIHBpcGV3aXJlX3NvdXJjZV9mdW5jcyA9Ci0gICBw aXBld2lyZV9sb29wX3NvdXJjZV9maW5hbGl6ZQotIH07Ci0KLS1zdGF0aWMgdm9pZAotLWluaXRf c3BhX3R5cGUgKE1ldGFTcGFUeXBlICAgICAgICAgKnR5cGUsCi0tICAgICAgICAgICAgICAgc3Ry dWN0IHNwYV90eXBlX21hcCAqbWFwKQotLXsKLS0gIHNwYV90eXBlX21lZGlhX3R5cGVfbWFwICht YXAsICZ0eXBlLT5tZWRpYV90eXBlKTsKLS0gIHNwYV90eXBlX21lZGlhX3N1YnR5cGVfbWFwICht YXAsICZ0eXBlLT5tZWRpYV9zdWJ0eXBlKTsKLS0gIHNwYV90eXBlX2Zvcm1hdF92aWRlb19tYXAg KG1hcCwgJnR5cGUtPmZvcm1hdF92aWRlbyk7Ci0tICBzcGFfdHlwZV92aWRlb19mb3JtYXRfbWFw IChtYXAsICZ0eXBlLT52aWRlb19mb3JtYXQpOwotLSAgdHlwZS0+bWV0YV9jdXJzb3IgPSBzcGFf dHlwZV9tYXBfZ2V0X2lkKG1hcCwgU1BBX1RZUEVfTUVUQV9fQ3Vyc29yKTsKLS19Ci0tCi0gc3Rh dGljIE1ldGFQaXBlV2lyZVNvdXJjZSAqCi0gY3JlYXRlX3BpcGV3aXJlX3NvdXJjZSAodm9pZCkK LSB7Ci1AQCAtODI5LDkgKzc3OCw5IEBAIGNyZWF0ZV9waXBld2lyZV9zb3VyY2UgKHZvaWQpCi0g ICByZXR1cm4gcGlwZXdpcmVfc291cmNlOwotIH0KLQotLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcHdf cmVtb3RlX2V2ZW50cyByZW1vdGVfZXZlbnRzID0gewotLSAgUFdfVkVSU0lPTl9SRU1PVEVfRVZF TlRTLAotLSAgLnN0YXRlX2NoYW5nZWQgPSBvbl9zdGF0ZV9jaGFuZ2VkLAotK3N0YXRpYyBjb25z dCBzdHJ1Y3QgcHdfY29yZV9ldmVudHMgY29yZV9ldmVudHMgPSB7Ci0rICBQV19WRVJTSU9OX0NP UkVfRVZFTlRTLAotKyAgLmVycm9yID0gb25fY29yZV9lcnJvciwKLSB9OwotCi0gc3RhdGljIGdi b29sZWFuCi1AQCAtODUxLDM3ICs4MDAsMzEgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3Jj X2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAgICAgKmluaXRhYmxlLAotICAgICAgIHJldHVybiBG QUxTRTsKLSAgICAgfQotCi0tICBwcml2LT5waXBld2lyZV9jb3JlID0gcHdfY29yZV9uZXcgKHBy aXYtPnBpcGV3aXJlX3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0tICBpZiAoIXByaXYtPnBpcGV3aXJlX2NvcmUpCi0r ICBwcml2LT5waXBld2lyZV9jb250ZXh0ID0gcHdfY29udGV4dF9uZXcgKHByaXYtPnBpcGV3aXJl X3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwgMCk7Ci0rICBpZiAoIXByaXYtPnBpcGV3aXJlX2NvbnRleHQpCi0g ICAgIHsKLSAgICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1Jf RkFJTEVELAotLSAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSBwaXBld2lyZSBj b3JlIik7Ci0rICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gY3JlYXRlIHBpcGV3aXJlIGNv bnRleHQiKTsKLSAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgIH0KLQotLSAgcHJpdi0+cGlwZXdp cmVfcmVtb3RlID0gcHdfcmVtb3RlX25ldyAocHJpdi0+cGlwZXdpcmVfY29yZSwgTlVMTCwgMCk7 Ci0tICBpZiAoIXByaXYtPnBpcGV3aXJlX3JlbW90ZSkKLSsgIHByaXYtPnBpcGV3aXJlX2NvcmUg PSBwd19jb250ZXh0X2Nvbm5lY3QgKHByaXYtPnBpcGV3aXJlX2NvbnRleHQsIE5VTEwsIDApOwot KyAgaWYgKCFwcml2LT5waXBld2lyZV9jb3JlKQotICAgICB7Ci0gICAgICAgZ19zZXRfZXJyb3Ig KGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAg ICAgIkNvdWxkbid0IGNyZWF0IHBpcGV3aXJlIHJlbW90ZSIpOwotKyAgICAgICAgICAgICAgICAg ICAiQ291bGRuJ3QgY29ubmVjdCBwaXBld2lyZSBjb250ZXh0Iik7Ci0gICAgICAgcmV0dXJuIEZB TFNFOwotICAgICB9Ci0KLS0gIHB3X3JlbW90ZV9hZGRfbGlzdGVuZXIgKHByaXYtPnBpcGV3aXJl X3JlbW90ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT5waXBld2lyZV9yZW1v dGVfbGlzdGVuZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVtb3RlX2V2ZW50cywK LS0gICAgICAgICAgICAgICAgICAgICAgICAgIHNyYyk7Ci0rICBwd19jb3JlX2FkZF9saXN0ZW5l ciAocHJpdi0+cGlwZXdpcmVfY29yZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+ cGlwZXdpcmVfY29yZV9saXN0ZW5lciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAmY29yZV9l dmVudHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgc3JjKTsKLQotLSAgcHJpdi0+cGlwZXdp cmVfdHlwZSA9IHB3X2NvcmVfZ2V0X3R5cGUgKHByaXYtPnBpcGV3aXJlX2NvcmUpOwotLSAgaW5p dF9zcGFfdHlwZSAoJnByaXYtPnNwYV90eXBlLCBwcml2LT5waXBld2lyZV90eXBlLT5tYXApOwot LQotLSAgaWYgKHB3X3JlbW90ZV9jb25uZWN0IChwcml2LT5waXBld2lyZV9yZW1vdGUpICE9IDAp Ci0tICAgIHsKLS0gICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJS T1JfRkFJTEVELAotLSAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgY29ubmVjdCBwaXBld2ly ZSByZW1vdGUiKTsKLS0gICAgICByZXR1cm4gRkFMU0U7Ci0tICAgIH0KLSsgIHByaXYtPnBpcGV3 aXJlX3N0cmVhbSA9IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgZXJyb3IpOwotKyAgaWYg KCFwcml2LT5waXBld2lyZV9zdHJlYW0pCi0rICAgIHJldHVybiBGQUxTRTsKLQotICAgcmV0dXJu IFRSVUU7Ci0gfQotQEAgLTkxMiw4ICs4NTUsOCBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9z cmNfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKLSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJl YW1fc3JjX2Rpc2FibGUgKHNyYyk7Ci0KLSAgIGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3 aXJlX3N0cmVhbSwgcHdfc3RyZWFtX2Rlc3Ryb3kpOwotLSAgZ19jbGVhcl9wb2ludGVyICgmcHJp di0+cGlwZXdpcmVfcmVtb3RlLCBwd19yZW1vdGVfZGVzdHJveSk7Ci0tICBnX2NsZWFyX3BvaW50 ZXIgKCZwcml2LT5waXBld2lyZV9jb3JlLCBwd19jb3JlX2Rlc3Ryb3kpOwotKyAgZ19jbGVhcl9w b2ludGVyICgmcHJpdi0+cGlwZXdpcmVfY29yZSwgcHdfY29yZV9kaXNjb25uZWN0KTsKLSsgIGdf Y2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX2NvbnRleHQsIHB3X2NvbnRleHRfZGVzdHJv eSk7Ci0gICBnX3NvdXJjZV9kZXN0cm95ICgmcHJpdi0+cGlwZXdpcmVfc291cmNlLT5iYXNlKTsK LQotICAgR19PQkpFQ1RfQ0xBU1MgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19wYXJlbnRf Y2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXV0dGVyL3Rl bXBsYXRlIGIvc3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUKaW5kZXggODA2YTNiZWY5ZjAuLjQ3OTI4 NDAzNGVhIDEwMDY0NAotLS0gYS9zcmNwa2dzL211dHRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L211dHRlci90ZW1wbGF0ZQpAQCAtMSwzNCArMSw0MCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn bXV0dGVyJwogcGtnbmFtZT1tdXR0ZXIKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0zCit2ZXJz aW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1t ZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZWdsX2RldmljZT10cnVlIC1EdWRldj10cnVlIC1EbmF0 aXZlX2JhY2tlbmQ9dHJ1ZQotIC1EcHJvZmlsZXI9ZmFsc2UgLURpbnRyb3NwZWN0aW9uPXRydWUg LUR4d2F5bGFuZF9wYXRoPS91c3IvYmluL1h3YXlsYW5kIgorIC1EcHJvZmlsZXI9ZmFsc2UgLURp bnRyb3NwZWN0aW9uPXRydWUgLUR4d2F5bGFuZF9wYXRoPS91c3IvYmluL1h3YXlsYW5kCisgLUR4 d2F5bGFuZF9pbml0ZmQ9ZGlzYWJsZWQiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1k ZXZlbCBwa2ctY29uZmlnIHplbml0eSB3YXlsYW5kLWRldmVsIHhvcmctc2VydmVyIgotbWFrZWRl cGVuZHM9ImVsb2dpbmQtZGV2ZWwgZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGpzb24t Z2xpYi1kZXZlbAotIGxpYmdsaWItZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJj YW5iZXJyYS1kZXZlbCBsaWJpbnB1dC1kZXZlbAotIE1lc2FMaWItZGV2ZWwgcGlwZXdpcmUtZGV2 ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwgd2F5bGFuZC1wcm90b2NvbHMKLSBnbm9tZS1z ZXR0aW5ncy1kYWVtb24tZGV2ZWwiCi1kZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgemVuaXR5 IgorbWFrZWRlcGVuZHM9ImVsb2dpbmQtZGV2ZWwgZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRl dmVsIGdyYXBoZW5lLWRldmVsCisganNvbi1nbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGliU00t ZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbAorIGxpYmlucHV0LWRldmVsIE1l c2FMaWItZGV2ZWwgcGlwZXdpcmUtZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwKKyB3 YXlsYW5kLXByb3RvY29scyBnbm9tZS1zZXR0aW5ncy1kYWVtb24tZGV2ZWwiCitkZXBlbmRzPSJn c2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGRlc2t0b3AtZmlsZS11dGlscyB6ZW5pdHkiCiBzaG9y dF9kZXNjPSJMaWdodHdlaWdodCBHVEsrMyB3aW5kb3cgbWFuYWdlciIKIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvTXV0dGVyLyIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWJhMTgyNmNmODhiZGI4MWU2Mzk0M2Nh YzAxNGE4ZThiY2YzNWVjMTc4YzUzMjY0NDAxZjljNzJmZGVhYjc1OGUKLXNobGliX3Byb3ZpZGVz PSJsaWJtdXR0ZXItY2x1dHRlci01LnNvIGxpYm11dHRlci1jb2dsLTUuc28KLSBsaWJtdXR0ZXIt Y29nbC1wYW5nby01LnNvIGxpYm11dHRlci1jb2dsLXBhdGgtNS5zbyIKK2NoZWNrc3VtPTA1OGVk MTNkMTAyMDg1ZDNlOWI2ZmE1NTY0YzY2MDUwYTQ3OGMzNjRhMGNjNTViYzg0NGZlYTNkZGNkOTBl YWIKK3NobGliX3Byb3ZpZGVzPSJsaWJtdXR0ZXItY2x1dHRlci03LnNvIGxpYm11dHRlci1jb2ds LTcuc28KKyBsaWJtdXR0ZXItY29nbC1wYW5nby03LnNvIGxpYm11dHRlci1jb2dsLXBhdGgtNy5z byIKKworIyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIG11dHRlci1kZXZlbF9wYWNr YWdlKCkgewotCWRlcGVuZHM9ImdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgZ3RrKzMtZGV2ZWwg Y2x1dHRlci1kZXZlbCBsaWJYMTEtZGV2ZWwKLQkgbGliWHRzdC1kZXZlbCBtdXR0ZXItJHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKKwlkZXBlbmRzPSJndGsrMy1kZXZlbCBncmFwaGVuZS1kZXZlbCBj bHV0dGVyLWRldmVsCisJIGxpYlgxMS1kZXZlbCBsaWJYdHN0LWRldmVsIG11dHRlci0ke3ZlcnNp b259XyR7cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlw a2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2dj b25maWcKLQkJdm1vdmUgInVzci9saWIvbXV0dGVyLTUvKi5naXIiCisJCXZtb3ZlICJ1c3IvbGli L211dHRlci03LyouZ2lyIgogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCX0KIH0KCkZyb20gY2Yy NGExMzE2MDZmZDRlZDUyZTFlYjQ3MmM4MThhN2ZhNGVlMjlhNyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzOS8xMDJdIGNo ZWVzZTogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZSB8IDE0 ICsrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hlZXNlL3RlbXBsYXRlIGIvc3JjcGtncy9j aGVlc2UvdGVtcGxhdGUKaW5kZXggN2E1NmJhMDM5ZmIuLmZhYTMyOWVlMGU0IDEwMDY0NAotLS0g YS9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZQpA QCAtMSwxMSArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2hlZXNlJwogcGtnbmFtZT1j aGVlc2UKLXZlcnNpb249My4zNC4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ3RrX2Rv Yz0kKHZvcHRfaWYgZ3RrX2RvYyAndHJ1ZScgJ2ZhbHNlJykKLSAtRG1hbj0kKHZvcHRfaWYgZ3Rr X2RvYyAndHJ1ZScgJ2ZhbHNlJykiCitjb25maWd1cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ3RrX2Rv YyBndGtfZG9jKSAkKHZvcHRfYm9vbCBndGtfZG9jIG1hbikiCiBob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQgZ2RrLXBpeGJ1ZiBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIGxpYnJz dmcKICAkKHZvcHRfaWYgZ3RrX2RvYyAnZ3RrLWRvYycpICQodm9wdF9pZiBnaXIgJ2dvYmplY3Qt aW50cm9zcGVjdGlvbicpIgogbWFrZWRlcGVuZHM9ImNsdXR0ZXItZ3N0My1kZXZlbCBjbHV0dGVy LWd0ay1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsCkBAIC0xNyw3ICsxNiw3IEBAIG1haW50YWlu ZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9DaGVlc2Ui CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kMTg2NTYwMGFjODgwMTJlMTM2YjFl YzNkYjcyYTQ2MzRmNTdiYzIwMzU4OTUyNzdiZTc5MmJiMDc4NjI3ZTczCitjaGVja3N1bT04OGQy NzMyYjQyMWI5MDMxMTBhMjYyOGRiMjVjMGQ2MWUyMTljNDJiZGZiNTk3MTE1MTAzM2ZiYTk1YThk MTZmCiAKIGJ1aWxkX29wdGlvbnM9ImdpciBndGtfZG9jIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJnaXIiCkBAIC0zNywxMSArMzYsOCBAQCBsaWJjaGVlc2VfcGFja2FnZSgpIHsKIH0KIAogY2hl ZXNlLWRldmVsX3BhY2thZ2UoKSB7Ci0JZGVwZW5kcz0iZ3N0LXBsdWdpbnMtYmFkMS1kZXZlbAot CQkgY2x1dHRlci1nc3QzLWRldmVsCi0JCSBjbHV0dGVyLWd0ay1kZXZlbAotCQkgbGliY2FuYmVy cmEtZGV2ZWwKLQkJIGxpYmNoZWVzZT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlkZXBlbmRz PSJnc3QtcGx1Z2lucy1iYWQxLWRldmVsIGNsdXR0ZXItZ3N0My1kZXZlbCBjbHV0dGVyLWd0ay1k ZXZlbAorCSBsaWJjYW5iZXJyYS1kZXZlbCBsaWJjaGVlc2U+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkg ewogCQl2bW92ZSB1c3IvaW5jbHVkZQoKRnJvbSAwMDJhMWFkNDk5MTE1MjczMThiYmQ2OWFlNTM2 ZDEzZjk1ODM1NzYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQwLzEwMl0gZXZvbHV0aW9uLWRhdGEtc2VydmVyOiB1cGRh dGUgdG8gMy4zOC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIHNyY3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlIHwgMjUgKysr KysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCsp LCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3No bGlicwppbmRleCBkMWYwMTAxNjZhYi4uYWUzZDNhZWY3M2IgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9z aGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtNjI2LDcgKzYyNiw3IEBAIGxpYmljYWxzc19j eHguc28uMyBsaWJpY2FsLTMuMC40XzEKIGxpYmljYWx2Y2FsLnNvLjMgbGliaWNhbC0zLjAuNF8x CiBsaWJpY2FsLWdsaWIuc28uMyBsaWJpY2FsLTMuMC40XzEKIGxpYmNhbWVsLTEuMi5zby42MiBl dm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zMC4wXzEKLWxpYmVkYXRhc2VydmVyLTEuMi5zby4yNCBl dm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zMi4wXzEKK2xpYmVkYXRhc2VydmVyLTEuMi5zby4yNSBl dm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zNy45MF8xCiBsaWJlYmFja2VuZC0xLjIuc28uMTAgZXZv bHV0aW9uLWRhdGEtc2VydmVyLTMuMTcuOTBfMQogbGliZWRhdGFzZXJ2ZXJ1aS0xLjIuc28uMiBl dm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yOC4wXzEKIGxpYmVib29rLWNvbnRhY3RzLTEuMi5zby4z IGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjM0LjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9s dXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZl ci90ZW1wbGF0ZQppbmRleCBlNTAyOTJhNDNlYS4uOGNjZjljYjZlYjAgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0 aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlCkBAIC0xLDI5ICsxLDM0IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdldm9sdXRpb24tZGF0YS1zZXJ2ZXInCiBwa2duYW1lPWV2b2x1dGlvbi1kYXRhLXNl cnZlcgotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zOC4wCityZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1jbWFrZQotYnVpbGRfaGVscGVyPWdpcgorYnVpbGRfaGVscGVyPSJn aXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItREVOQUJMRV9VT0E9T0ZGCi0gJCh2b3B0X2lmIGdp ciAnLURFTkFCTEVfSU5UUk9TUEVDVElPTj1PTiAtREVOQUJMRV9WQUxBX0JJTkRJTkdTPU9OJyAn LURFTkFCTEVfV0VBVEhFUj1PRkYnKSIKLWhvc3RtYWtlZGVwZW5kcz0iZmxleCBnbGliLWRldmVs IGdwZXJmIGludGx0b29sIHBrZy1jb25maWcgbGliZ2xpYi1kZXZlbAotICQodm9wdF9pZiBnaXIg J2dvYmplY3QtaW50cm9zcGVjdGlvbicpIgotbWFrZWRlcGVuZHM9ImJvb3N0LWRldmVsIGxpYmNh bmJlcnJhLWRldmVsIGxpYmdkYXRhLWRldmVsICQodm9wdF9pZiBnaXIgbGliZ3dlYXRoZXItZGV2 ZWwpCi0gbGliaWNhbC1kZXZlbCBsaWJzZWNyZXQtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgJCh2b3B0 X2lmIGdpciAndmFsYS1kZXZlbCcpIHdlYmtpdDJndGstZGV2ZWwiCi1kZXBlbmRzPSIkKHZvcHRf aWYgZ2lyIGxpYmd3ZWF0aGVyKSBsaWJzb3VwLWdub21lIgorICQodm9wdF9pZiBnaXIgJy1ERU5B QkxFX0lOVFJPU1BFQ1RJT049T04gLURFTkFCTEVfVkFMQV9CSU5ESU5HUz1PTicpIgoraG9zdG1h a2VkZXBlbmRzPSJmbGV4IGdsaWItZGV2ZWwgZ3BlcmYgaW50bHRvb2wgcGtnLWNvbmZpZyBsaWJn bGliLWRldmVsIgorbWFrZWRlcGVuZHM9ImJvb3N0LWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxp YmdkYXRhLWRldmVsIGxpYmljYWwtZGV2ZWwKKyBsaWJzZWNyZXQtZGV2ZWwgbWl0LWtyYjUtZGV2 ZWwgd2Via2l0Mmd0ay1kZXZlbCBsaWJnd2VhdGhlci1kZXZlbAorICQodm9wdF9pZiBnaXIgdmFs YS1kZXZlbCkiCitkZXBlbmRzPSJsaWJnd2VhdGhlciBsaWJzb3VwLWdub21lIgogc2hvcnRfZGVz Yz0iQ2VudHJhbGl6ZWQgYWNjZXNzIHRvIGFwcG9pbnRtZW50cyBhbmQgY29udGFjdHMiCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQ TC0yLjEtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0 aW9uIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUv ZXZvbHV0aW9uLWRhdGEtc2VydmVyL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTEzMTIyYjJlZGRkYjk4MzA2MjA3ZDJhMzVkNWNjYWUyNWE5MDcwMjc2 OWNhMGEwYjUxNjUzYjU5ODQ5ODY3OTYKK2NoZWNrc3VtPTEzNjg5YTdiNTU3NjU4MDZjNGQ1ZjNi MDVlZjZjMjRiMGJmOTk1N2I5ZWQ5MjQwYzJkZDA5YTJjZGIxM2IwYWYKIAogYnVpbGRfb3B0aW9u cz0iZ2lyIgogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJYnVpbGRfb3B0aW9uc19k ZWZhdWx0PSJnaXIiCiBmaQogCisjIHByb2JsZW1hdGljCitkb19jaGVjaygpIHsKKwk6Cit9CisK ICMgY21ha2UgcGVyZm9tcm1zIDIgY2hlY2tzIHVzaW5nIGJpbmFyeSBydW50aW1lLCBhYm91dCBp Y29udiBhbmQgc2ZydGltZS4KICMgbXVzbCAoMS4xLjE2KSBkb2VzIG5vdCBzdXBwb3J0ICJJU08t MjAyMi1KUCIgZW5jb2RpbmcgKHNlZSBpdHMgcm9hZG1hcCksCiAjIGFsdGhvdWdoIGV2b2x1dGlv bi1kYXRhLXNlcnZlciBpcyBmaW5lIHdpdGggbXVzbC4KCkZyb20gY2U5MTBhYmIyNzNlZTE3MTU2 YTBmMjA0MWY5OTJmOGYxNmQzMDkxMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0MS8xMDJdIGZvbGtzOiB1cGRhdGUgdG8g MC4xNC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgfCAgNyArKysrLS0tCiBzcmNwa2dz L2ZvbGtzL3RlbXBsYXRlIHwgMjggKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBhZTNkM2FlZjczYi4uMWUzZGMz NmYzZTggMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAt ODMxLDkgKzgzMSwxMCBAQCBsaWJkbXIuc28uMC4xIGRlZXBpbi1tb3ZpZS1yZWJvcm4tMy4yLjVf MQogbGliZ2pzLnNvLjAgZ2pzLTEuNjUuMl8xCiBsaWJ0ZWxlcGF0aHktZ2xpYi5zby4wIHRlbGVw YXRoeS1nbGliLTAuMTUuNV8xCiBsaWJhY2NvdW50c3NlcnZpY2Uuc28uMCBhY2NvdW50c3NlcnZp Y2UtMC42LjRfMQotbGliZm9sa3Muc28uMjUgZm9sa3MtMC45LjVfMQotbGliZm9sa3MtdGVsZXBh dGh5LnNvLjI1IGZvbGtzLTAuOS41XzEKLWxpYmZvbGtzLWVkcy5zby4yNSBmb2xrcy0wLjkuNV8x CitsaWJmb2xrcy5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGliZm9sa3MtZHVtbXkuc28uMjUgZm9s a3MtMC4xNC4wXzEKK2xpYmZvbGtzLXRlbGVwYXRoeS5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGli Zm9sa3MtZWRzLnNvLjI1IGZvbGtzLTAuMTQuMF8xCiBsaWJuaWNlLnNvLjEwIGxpYm5pY2UtMC4x LjBfMQogbGliZ3VwbnAtaWdkLTEuMC5zby40IGd1cG5wLWlnZC0wLjIuMF8xCiBsaWJ0ZWxlcGF0 aHktbG9nZ2VyLnNvLjMgdGVsZXBhdGh5LWxvZ2dlci0wLjYuMF8xCmRpZmYgLS1naXQgYS9zcmNw a2dzL2ZvbGtzL3RlbXBsYXRlIGIvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQppbmRleCAzMzEwYzU0 ZmFkZC4uYjA3NmI5NGJlYTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQpAQCAtMSwyMSArMSwyNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZm9sa3MnCiBwa2duYW1lPWZvbGtzCi12ZXJzaW9uPTAuMTMuMQotcmV2aXNpb249 MgordmVyc2lvbj0wLjE0LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1idWlsZF9o ZWxwZXI9Z2lyCi1jb25maWd1cmVfYXJncz0iLURiX2x0bz1mYWxzZSAtRGxpYnNvY2lhbHdlYi1i YWNrZW5kPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWIt ZGV2ZWwgdmFsYSBweXRob24gZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0gZXZvbHV0aW9uLWRhdGEt c2VydmVyLWRldmVsIgorYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKK2NvbmZpZ3VyZV9hcmdzPSIt RGJfbHRvPWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWIt ZGV2ZWwgcHl0aG9uMyBweXRob24zLWRidXNtb2NrCisgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRl dmVsICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0icmVhZGxpbmUtZGV2ZWwgdGVs ZXBhdGh5LWdsaWItZGV2ZWwgemVpdGdlaXN0LWRldmVsCi0gbGliZ2VlMDgtZGV2ZWwgZXZvbHV0 aW9uLWRhdGEtc2VydmVyLWRldmVsIHRyYWNrZXItZGV2ZWwiCisgbGliZ2VlMDgtZGV2ZWwgZXZv bHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIHRyYWNrZXItZGV2ZWwKKyAkKHZvcHRfaWYgZ2lyIHZh bGEtZGV2ZWwpIgogZGVwZW5kcz0iemVpdGdlaXN0Igogc2hvcnRfZGVzYz0iR09iamVjdCBMaWJy YXJ5IHRvIGFnZ3JlZ2F0ZSBwZW9wbGUgaW50byBtZXRhY29udGFjdHMiCiBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Gb2xrcyIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTNkZjFjNjYzYjgyZmUyMTFhZWFkMmIz MWNhZTFmYzQxZDEyNGU4NTQzNjM3NTc2MmY2NzQ1YzQ1YmE0NmFhNWQKK2NoZWNrc3VtPWQ2ZTc3 OGRhNjM3ZDNiMzNmZDlhNmI0NTExNWU4MTU3ZDg4NjgyMTFkYzA4Yjk0M2QxMDc1YjVlYjcyODJi YjkKKworYnVpbGRfb3B0aW9ucz0iZ2lyIgoraWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVu CisJYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCitmaQogCiBmb2xrcy1kZXZlbF9wYWNrYWdl KCkgewogCWRlcGVuZHM9IiR7bWFrZWRlcGVuZHN9ICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKQEAgLTI0LDcgKzMwLDkgQEAgZm9sa3MtZGV2ZWxfcGFja2FnZSgpIHsKIAkJ dm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgInVz ci9saWIvKi5zbyIKLQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKLQkJdm1vdmUgdXNyL3NoYXJlL2dp ci0xLjAKKwkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KKwkJCXZtb3ZlIHVzci9z aGFyZS9naXItMS4wCisJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQorCQlmaQogCX0KIH0KCkZyb20g Y2YxNzAxYjU3OTFkOTY1ZTdiOTMzOWQ5YTk3ZmFmZjE5YjUwMDI2MyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0Mi8xMDJd IGdub21lLW9ubGluZS1hY2NvdW50czogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9n bm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUgfCAxNCArKysrKystLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLW9ubGluZS1hY2NvdW50cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtb25s aW5lLWFjY291bnRzL3RlbXBsYXRlCmluZGV4IDE5M2E3ZjliNDNmLi4yOTk4MGQ0MzQyNCAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdnbm9tZS1vbmxpbmUtYWNjb3VudHMnCiBwa2duYW1lPWdub21lLW9u bGluZS1hY2NvdW50cwotdmVyc2lvbj0zLjM2LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy45 MAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogYnVpbGRfaGVscGVyPSJn aXIiCiBjb25maWd1cmVfYXJncz0iJCh2b3B0X2VuYWJsZSBnaXIgaW50cm9zcGVjdGlvbikKQEAg LTExLDcgKzExLDcgQEAgY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3Bl Y3Rpb24pCiAgLS1lbmFibGUtb3duY2xvdWQgLS1lbmFibGUtd2luZG93cy1saXZlIC0tZW5hYmxl LXBvY2tldAogIC0tZW5hYmxlLWxhc3RmbSAtLWVuYWJsZS1tZWRpYS1zZXJ2ZXIiCiBob3N0bWFr ZWRlcGVuZHM9ImRvY2Jvb2steHNsIGdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBnbm9tZS1jb21t b24KLSBsaWJ4c2x0IHBrZy1jb25maWcgJCh2b3B0X2lmIHZhbGEgdmFsYSkiCisgbGlieHNsdCBw a2ctY29uZmlnICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ2NyLWRldmVsIGd0 ayszLWRldmVsIGpzb24tZ2xpYi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgbGlic2VjcmV0LWRldmVs CiAgbGlic291cC1kZXZlbCBtaXQta3JiNS1kZXZlbCByZXN0LWRldmVsIHRlbGVwYXRoeS1nbGli LWRldmVsIHdlYmtpdDJndGstZGV2ZWwiCiBkZXBlbmRzPSJoaWNvbG9yLWljb24tdGhlbWUiCkBA IC0yMCwxMCArMjAsMTAgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVPbmxpbmVBY2NvdW50cyIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTFjOGY2Mjk5MDgzM2NhNDExODhkYmI4MGM1ZTk5ZDk5YjU3 YTYyNjA4Y2E2NzViYmNkMzdiYzIyNDQ3NDJmMmUKK2NoZWNrc3VtPTlmNjk4MmM4OTZlNjIzNWEy ZTg1YjhhNDk3YzdiZjYzYTRhMjg4YjU2NzhkYjQwZGMzNzM1MTVlZmJlZGIxYmIKIAotYnVpbGRf b3B0aW9ucz0iZ2lyIHZhbGEiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVp bGRfb3B0aW9ucz0iZ2lyIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGdub21lLW9u bGluZS1hY2NvdW50cy1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9Imd0ayszLWRldmVsICR7 c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKQEAgLTM1LDggKzM1LDYgQEAgZ25v bWUtb25saW5lLWFjY291bnRzLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvZ29h LTEuMAogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3No YXJlL2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJ CQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gNGY1NzAwM2FmODJhNzY2MTVi MzYwNTFlZDZmODg2OTRlOTA2NWJjYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAg MjE6MTA6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA0My8xMDJdIGd2ZnM6IHVwZGF0ZSB0byAx LjQ2LjAKCi0tLQogc3JjcGtncy9ndmZzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z3Zmcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZQppbmRleCAxMjdhMDU3NzkwMS4u NjEwNzAyM2MyMWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2d2ZnMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn dmZzJwogcGtnbmFtZT1ndmZzCi12ZXJzaW9uPTEuNDQuMQordmVyc2lvbj0xLjQ2LjAKIHJldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kdXNlcnVu aXRkaXI9bm8gLUR0bXBmaWxlc2Rpcj1ubyAtRGxvZ2luZD1mYWxzZQpAQCAtMjAsNyArMjAsNyBA QCBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25v bWUub3JnL1Byb2plY3RzL2d2ZnMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9y Zy9HTk9NRS9ndmZzL3Jhdy9nbm9tZS0zLTM0L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT01MGVmMzI0NWQxYjAzNjY2YTQwNDU1MTA5MTY5YTJhMWJkNTE0MTlmZDJkNTFm OWZhNmNmZDRmODlmMDRmYjQ2CitjaGVja3N1bT03OGJhNzNhNmRhMDlhMjFjZTNhY2M3NzZiNDZj MjZkZDViZWEyMTY0NjNhNjVkNjViNDA1MmE1N2Y1ZDk3MGU5CiAKICMgTWFudWFsbHkgZGVjbGFy ZSBzaGxpYnMgdXNlZCBieSB0aGUgc3VicGtncy4KIHNobGliX3Byb3ZpZGVzPSJsaWJndmZzY29t bW9uLnNvIGxpYmd2ZnNkYWVtb24uc28iCgpGcm9tIGU3MmI0Y2VhNDFlOGU1ZmFkMzkzOWUxOTZk MzRhNTcwODdjYmIzMWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDQvMTAyXSBnbm9tZS1jb250cm9sLWNlbnRlcjogdXBk YXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL05ldHdvcmtNYW5hZ2VyL3RlbXBsYXRlICAgICAg ICAgICAgICAgfCAgMiArCiAuLi4vZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5w YXRjaCAgfCAzOCArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLWNvbnRyb2wtY2Vu dGVyL3RlbXBsYXRlICAgICAgICAgfCAyNCArKysrKysrLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwg NTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9nbm9tZS1jb250cm9sLWNlbnRlci9wYXRjaGVzL25tMTIyLnBhdGNoCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9OZXR3b3JrTWFuYWdlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvTmV0d29ya01hbmFn ZXIvdGVtcGxhdGUKaW5kZXggZWRlYjgyNzg1NzkuLmU0ODJiYmE5OGRlIDEwMDY0NAotLS0gYS9z cmNwa2dzL05ldHdvcmtNYW5hZ2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvTmV0d29ya01hbmFn ZXIvdGVtcGxhdGUKQEAgLTEsNCArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdOZXR3b3Jr TWFuYWdlcicKKyMgd2hlbiB1cGRhdGluZyB0byAxLjI0IG9yIG5ld2VyLCBkcm9wIHRoZSBjb21w YXQKKyMgcGF0Y2ggaW4gZ25vbWUtY29udHJvbC1jZW50ZXIgYW5kIHJlYnVpbGQgaXQKIHBrZ25h bWU9TmV0d29ya01hbmFnZXIKIHZlcnNpb249MS4yMi4xMAogcmV2aXNpb249MgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci9wYXRjaGVzL25tMTIyLnBhdGNoIGIvc3Jj cGtncy9nbm9tZS1jb250cm9sLWNlbnRlci9wYXRjaGVzL25tMTIyLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MzNmZWQzOTY4ZQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaApAQCAt MCwwICsxLDM4IEBACitGcm9tIDQxNTlmOTg0YmQzNTFjYWY2ZjBlMWFkYmQ5MGZlZWI4NWFiMjUy ZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjI6MDI6MDQgKzAyMDAKK1N1 YmplY3Q6IFtQQVRDSF0gcmVzdG9yZSBjb21wYXRpYmlsaXR5IHdpdGggbmV0d29ya21hbmFnZXIg MS4yMgorCitkcm9wIHRoaXMgcGF0Y2ggYW5kIHJlYnVpbGQgZ25vbWUtY29udHJvbC1jZW50ZXIg d2hlbiB1cGRhdGluZyBubQorLS0tCisgcGFuZWxzL25ldHdvcmsvbmV0LWRldmljZS13aWZpLmMg fCA3IC0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBwYW5lbHMvbmV0d29yay9uZXQtZGV2aWNlLXdpZmkuYyBwYW5lbHMvbmV0d29yay9uZXQtZGV2 aWNlLXdpZmkuYworaW5kZXggY2I4NmU1Yi4uZDYzYzU3YyAxMDA2NDQKKy0tLSBwYW5lbHMvbmV0 d29yay9uZXQtZGV2aWNlLXdpZmkuYworKysrIHBhbmVscy9uZXR3b3JrL25ldC1kZXZpY2Utd2lm aS5jCitAQCAtMTE4MCwxMSArMTE4MCw2IEBAIG5tX2NsaWVudF9vbl9wZXJtaXNzaW9uX2NoYW5n ZSAoTmV0RGV2aWNlV2lmaSAqc2VsZikgeworICAgICAgICAgTk1DbGllbnRQZXJtaXNzaW9uUmVz dWx0IHBlcm07CisgICAgICAgICBOTURldmljZVdpZmlDYXBhYmlsaXRpZXMgY2FwczsKKyAKKy0g ICAgICAgIGlmIChubV9jbGllbnRfZ2V0X3Blcm1pc3Npb25zX3N0YXRlIChzZWxmLT5jbGllbnQp ICE9IE5NX1RFUk5BUllfVFJVRSkgeworLSAgICAgICAgICAgICAgICAvKiBwZXJtaXNzaW9ucyBh cmVuJ3QgcmVhZHkgeWV0ICovCistICAgICAgICAgICAgICAgIHJldHVybjsKKy0gICAgICAgIH0K Ky0KKyAgICAgICAgIC8qIG9ubHkgZW5hYmxlIHRoZSBidXR0b24gaWYgdGhlIHVzZXIgY2FuIGNy ZWF0ZSBhIGhvdHNwb3QgKi8KKyAgICAgICAgIHBlcm0gPSBubV9jbGllbnRfZ2V0X3Blcm1pc3Np b25fcmVzdWx0IChzZWxmLT5jbGllbnQsIE5NX0NMSUVOVF9QRVJNSVNTSU9OX1dJRklfU0hBUkVf T1BFTik7CisgICAgICAgICBjYXBzID0gbm1fZGV2aWNlX3dpZmlfZ2V0X2NhcGFiaWxpdGllcyAo Tk1fREVWSUNFX1dJRkkgKHNlbGYtPmRldmljZSkpOworQEAgLTEyMjcsOCArMTIyMiw2IEBAIG5l dF9kZXZpY2Vfd2lmaV9uZXcgKENjUGFuZWwgKnBhbmVsLCBOTUNsaWVudCAqY2xpZW50LCBOTURl dmljZSAqZGV2aWNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJB Q0sgKGFwX2FjdGl2YXRlZCksIHNlbGYsIEdfQ09OTkVDVF9TV0FQUEVEKTsKKyAgICAgICAgIGdf c2lnbmFsX2Nvbm5lY3Rfb2JqZWN0IChsaXN0LCAiY29uZmlndXJlIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChzaG93X2RldGFpbHNfZm9yX3JvdyksIHNl bGYsIEdfQ09OTkVDVF9TV0FQUEVEKTsKKy0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0 IChjbGllbnQsICJub3RpZnkiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf Q0FMTEJBQ0sobm1fY2xpZW50X29uX3Blcm1pc3Npb25fY2hhbmdlKSwgc2VsZiwgR19DT05ORUNU X1NXQVBQRUQpOworIAorICAgICAgICAgbm1fY2xpZW50X29uX3Blcm1pc3Npb25fY2hhbmdlKHNl bGYpOworIAorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jb250cm9s LWNlbnRlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvdGVtcGxhdGUK aW5kZXggOWZkYjg1M2FmYmYuLjE5MTEwMWFmYWFkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21l LWNvbnRyb2wtY2VudGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50 ZXIvdGVtcGxhdGUKQEAgLTEsMjIgKzEsMjIgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21l LWNvbnRyb2wtY2VudGVyJwogcGtnbmFtZT1nbm9tZS1jb250cm9sLWNlbnRlcgotdmVyc2lvbj0z LjM0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iLURjaGVlc2U9JCh2 b3B0X2lmIGNoZWVzZSB0cnVlIGZhbHNlKSIKLWhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBn c2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgcG9sa2l0 Ci0gcHl0aG9uMyIKK2hvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnc2V0dGluZ3MtZGVza3Rv cC1zY2hlbWFzLWRldmVsIGludGx0b29sIHBrZy1jb25maWcKKyBwb2xraXQgcHl0aG9uMyIKIG1h a2VkZXBlbmRzPSJNb2RlbU1hbmFnZXItZGV2ZWwgYWNjb3VudHNzZXJ2aWNlLWRldmVsIGFsc2Et cGx1Z2lucwogIGNvbG9yZC1ndGstZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVsIGdub21lLWRl c2t0b3AtZGV2ZWwgZ25vbWUtbWVudXMtZGV2ZWwKICBnbm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2 ZWwgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIGdyaWxvLWRldmVsIGlidXMtZGV2ZWwKLSBs aWJTTS1kZXZlbCBsaWJYeGY4Nm1pc2MtZGV2ZWwgbGliZ25vbWVrYmQtZGV2ZWwgbGliZ3RvcC1k ZXZlbAorIGxpYlNNLWRldmVsIGxpYlh4Zjg2bWlzYy1kZXZlbCBsaWJnbm9tZWtiZC1kZXZlbCBs aWJndG9wLWRldmVsIGxpYmhhbmR5MS1kZXZlbAogIGxpYnB3cXVhbGl0eS1kZXZlbCBtaXQta3Ji NS1kZXZlbCBuZXR3b3JrLW1hbmFnZXItYXBwbGV0LWRldmVsIHBvbGtpdC1kZXZlbAogIHB1bHNl YXVkaW8tZGV2ZWwgc2FtYmEtZGV2ZWwgdHpkYXRhIHVwb3dlci1kZXZlbCB2YWxhLWRldmVsIGNs dXR0ZXItZ3RrLWRldmVsCiAgbGlieG1sMi1kZXZlbCBsaWJYMTEtZGV2ZWwgZ3RrKzMtZGV2ZWwg Y3Vwcy1kZXZlbCBsaWJndWRldi1kZXZlbCBsaWJ3YWNvbS1kZXZlbAogIGNsdXR0ZXItZGV2ZWwg bGlic2VjcmV0LWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIHVkaXNrczItZGV2ZWwgZ3NvdW5kLWRl dmVsCiAgJCh2b3B0X2lmIGNoZWVzZSBjaGVlc2UtZGV2ZWwpIgotZGVwZW5kcz0iYWxzYS1wbHVn aW5zLXB1bHNlYXVkaW8gZGVza3RvcC1maWxlLXV0aWxzCitkZXBlbmRzPSJhbHNhLXBsdWdpbnMt cHVsc2VhdWRpbyBkZXNrdG9wLWZpbGUtdXRpbHMgdXBvd2VyIGNvbG9yZCBjdXBzLXBrLWhlbHBl cgogIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgaGljb2xvci1pY29uLXRoZW1lIGlzby1jb2Rl cyBzb3VuZC10aGVtZS1mcmVlZGVza3RvcAogIGNyYWNrbGliIgogc2hvcnRfZGVzYz0iR05PTUUg Y29udHJvbCBjZW50ZXIiCkBAIC0yNCwxMyArMjQsMTcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWNvbnRyb2wtY2Vu dGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NWY4MmVjZDU1NTQxMzZjNDYy MjQ4ZWM1MzYzYjgyZDk1MzU4YjM5ZGZkNjc4NzAwNmQ4MzA3YjQ1MDRlNTE1ZQorY2hlY2tzdW09 ZjZiNmI1YjhlZjljMzhkODk1YmE1YWY4N2YzMWFkYWUwMjE5NGFkODZjOWFhNmNmZjJkMmI5NzU1 YzJkYjFkYQogCiBidWlsZF9vcHRpb25zPSJjaGVlc2UiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImNoZWVzZSIKKwogZGVzY19vcHRpb25fY2hlZXNlPSJBZGQgc3VwcG9ydCBmb3IgYWRkaW5nIHVz ZXIgYWNjb3VudCBpbWFnZXMgd2l0aCB5b3VyIHdlYmNhbSIKLWlmIFsgLXogIiRDUk9TU19CVUlM RCIgXTsgdGhlbgotCWJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBjaGVlc2UiCi1maQorCisjIG5l ZWRzIFgxMSBhbmQgcmVxdWlyZXMgYWx0ZXJlZCBmaWxlc3lzdGVtCitkb19jaGVjaygpIHsKKwk6 Cit9CiAKIENGTEFHUz0iLWZjb21tb24iCiAKCkZyb20gODI0Y2YzYjRkYjcxODY0YzQ4MzIzNTQ1 YjJmZGZiNmU5NDU3NTZmNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0NS8xMDJdIGRjb25mLWVkaXRvcjogdXBkYXRlIHRv IDMuMzguMAoKLS0tCiBzcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZSB8IDYgKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZGNvbmYtZWRpdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9kY29uZi1lZGl0b3Iv dGVtcGxhdGUKaW5kZXggZGUyNTBiYmM4YTkuLjIzMjUyYjlmNzRlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1w bGF0ZQpAQCAtMSwxMyArMSwxMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZGNvbmYtZWRpdG9y JwogcGtnbmFtZT1kY29uZi1lZGl0b3IKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAog cmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14 c2wgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSIKK2hvc3RtYWtlZGVwZW5kcz0i ZG9jYm9vay14c2wgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSBnZXR0ZXh0Igog bWFrZWRlcGVuZHM9ImRjb25mLWRldmVsIGd0ayszLWRldmVsIgogc2hvcnRfZGVzYz0iTG93LWxl dmVsIGNvbmZpZ3VyYXRpb24gc3lzdGVtIC0gR1RLKyBlZGl0b3IiCiBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL2Rjb25mIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzJlZWQwNTY3MDkxN2Y4ZTQzMjAwZTQwY2Nj NmJlNjAyMTFmMGE4N2IwMTc1MzRlYWMxZmQ2YzcxNzNhMDY5MworY2hlY2tzdW09NmQ4OTI0OWEz NzkwODJkZTZhOGU5NWEyYTIwMmQwY2E1ZmUxYzk3NzZiYzBkNWQzZWYwNjU1NjdkODE4M2ViNAoK RnJvbSA5MGU2OTFmMTlkOWRmNjFjMGQwZjBhZWNkMjFjMjRhY2IxN2FjMGQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNjo0MjowMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ2 LzEwMl0gZ2pzOiB1cGRhdGUgdG8gMS42Ni4wCgotLS0KIHNyY3BrZ3MvZ2pzL3RlbXBsYXRlIHwg OCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dqcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2pzL3RlbXBs YXRlCmluZGV4IGVjNDhiYWRkZjExLi44YTEzM2RkODA0OCAxMDA2NDQKLS0tIGEvc3JjcGtncy9n anMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nanMvdGVtcGxhdGUKQEAgLTEsMjcgKzEsMjcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dqcycKIHBrZ25hbWU9Z2pzCi12ZXJzaW9uPTEuNjUuMgor dmVyc2lvbj0xLjY2LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxw ZXI9ImdpciBxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1Ec2tpcF9kYnVzX3Rlc3RzPXRydWUgLURz a2lwX2d0a190ZXN0cz10cnVlCiAgLURwcm9maWxlcj1kaXNhYmxlZCAtRGluc3RhbGxlZF90ZXN0 cz1mYWxzZSIgIyBEaXNhYmxlIHRlc3RzIGJlY2F1c2UgdGhleSBuZWVkIGRidXMsIFggYW5kIEdU Sy4KIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBwa2ctY29uZmlnIgotbWFrZWRlcGVuZHM9 ImRidXMtZ2xpYi1kZXZlbCBtb3pqczY4LWRldmVsIHJlYWRsaW5lLWRldmVsIHN5c3Byb2YtZGV2 ZWwiCittYWtlZGVwZW5kcz0iZGJ1cy1nbGliLWRldmVsIG1vempzNzgtZGV2ZWwgcmVhZGxpbmUt ZGV2ZWwgc3lzcHJvZi1kZXZlbCIKIHNob3J0X2Rlc2M9Ik1vemlsbGEtYmFzZWQgamF2YXNjcmlw dCBiaW5kaW5ncyBmb3IgdGhlIEdOT01FIHBsYXRmb3JtIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCwgTEdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9hY3Rpb24vc2hvdy9Qcm9qZWN0 cy9HanMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nanMvYmxv Yi9nbm9tZS0zLTMwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hNjZl ZGFkOGE1ZjEwMDI3ZjliMTgyZDg4YWY4NGI4MWYxM2U1YWQ1ODQwMzE5Y2ZhNzQ3ZDY2ZTc3ZTAy MTRmCitjaGVja3N1bT1mMzBjZjkwZTAxNmRiNmM4ZmRkMDA1OTc0OTU1OTYxMTc2MGYwNzIxZjM3 NWIyYjYxZTBiNzIzOWI0M2FiNWY4CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBDT1BZ SU5HCiB9CiAKIGdqcy1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImxpYmdpcmVwb3NpdG9y eS1kZXZlbCBtb3pqczY4LWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKKwlkZXBlbmRzPSJsaWJnaXJlcG9zaXRvcnktZGV2ZWwgbW96anM3OC1kZXZlbCAke3NvdXJj ZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3Bt ZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQoKRnJvbSBi ZGJmOWIyMjA3OGM3NWFlODBlMWFmYjhjOGZlODI2NmNkMmQzOGFjIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ3LzEwMl0g Z25vbWUtc2hlbGw6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1zaGVsbC90 ZW1wbGF0ZSB8IDExICsrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRlCmluZGV4IDk2YzViODBhMTk0Li5mMjc3 OTU1NzJlZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRlCkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1zaGVsbCcKIHBrZ25hbWU9Z25vbWUtc2hlbGwKLXZlcnNpb249My4z NC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxk X2hlbHBlcj1naXIKIGNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWQ9ZmFsc2UiCiBob3N0bWFrZWRl cGVuZHM9ImdvYmplY3QtaW50cm9zcGVjdGlvbiBndGstZG9jIGxpYnhzbHQgcGtnLWNvbmZpZyBw eXRob24zIHNhc3NjCi0gYXNjaWlkb2MgcGVybCBnbGliLWRldmVsIG11dHRlci1kZXZlbCIKKyBh c2NpaWRvYyBwZXJsIGdsaWItZGV2ZWwgbXV0dGVyLWRldmVsIGdldHRleHQgZ2pzLWRldmVsIgog bWFrZWRlcGVuZHM9ImF0LXNwaTItYXRrIGNhcmlib3UtZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2Vy dmVyLWRldmVsIGZvbGtzLWRldmVsCiAgZ2NyLWRldmVsIGdqcy1kZXZlbCBnbm9tZS1ibHVldG9v dGgtZGV2ZWwgZ25vbWUtY29udHJvbC1jZW50ZXItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbAog IGdub21lLW1lbnVzLWRldmVsIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwgZ3N0cmVh bWVyMS1kZXZlbCBndGsrMy1kZXZlbApAQCAtMjEsNCArMjEsOSBAQCBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25v bWVTaGVsbCIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dO T01FL2dub21lLXNoZWxsL2dub21lLTMtMzAvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRF fS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPWNjZDg2NTU5YjljODk3YzIxOWQyZDJlYmZkYjg0MTNlZmE0YzFiZWU4NDY0Mjdj NzUwY2I4YTMwMWIzZjZkMWUKK2NoZWNrc3VtPWM2MjY0MDNiYzA4NzVlZTZkYThjN2E2MmFjMGNl ZTMxMmJhZGI1MjNhZjA3M2NiMTY2MTI1MDE1YTc1YTBhOTcKKworIyBuZWVkcyBYCitkb19jaGVj aygpIHsKKwk6Cit9CgpGcm9tIGE3MDQ2M2M5NTNhNGFkYzZlMjdhNDk5MWMyOTVkYTI3MmMzMDdh YmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwNDgvMTAyXSBnbm9tZS1zaGVsbC1leHRlbnNpb25zOiB1cGRhdGUgdG8gMy4z OC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZSB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZQppbmRleCA5NzE2OGI0MGY2Ni4uZTQ5 MzAzODRmZDQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUKQEAgLTEs MTUgKzEsMTUgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNoZWxsLWV4dGVuc2lvbnMn CiBwa2duYW1lPWdub21lLXNoZWxsLWV4dGVuc2lvbnMKLXZlcnNpb249My4zNC4xCit2ZXJzaW9u PTMuMzguMAogcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1EZXh0ZW5zaW9uX3NldD1hbGwiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWciCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2V0dGV4dCIKIGRlcGVuZHM9Imdu b21lLXNoZWxsPj0ke3ZlcnNpb259IG5hdXRpbHVzIHVuemlwIgogc2hvcnRfZGVzYz0iRXh0ZW5z aW9ucyBmb3IgR05PTUUgc2hlbGwsIGluY2x1ZGluZyBjbGFzc2ljIG1vZGUiCiBtYWludGFpbmVy PSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21l U2hlbGwvRXh0ZW5zaW9ucyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWIwYWQ1 MTE0M2IxYmY0MGRlZjRhMTBmOGZkMGFiMGZmYjQ3MjE4MzA0ODAwNzk0ZTYyY2FkZDI5ZDBhY2M3 NWIKK2NoZWNrc3VtPWY3MjZmODViYjM5OGIwODJhZDA5YTdkZWQzMDZmMjJiZDI1ZDI1ODk4Yzdm MThiZDc3NWRmNjY0MDBkMzkxOWYKCkZyb20gYTA3NmQzYzNkZjA4YjI1MGJhOGU1ZDFjZmIyNGU3 N2RkNzVlZDQ3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAy MDAKU3ViamVjdDogW1BBVENIIDA0OS8xMDJdIGdkbTogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBz cmNwa2dzL2dkbS9wYXRjaGVzL3Rha2Utb3V0LXRoZS10cmFzaC5wYXRjaCB8IDIzICsrKysrKysr KysrKysrKysrCiBzcmNwa2dzL2dkbS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8 IDI2ICsrKysrKysrKysrLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMo KyksIDEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2RtL3BhdGNo ZXMvdGFrZS1vdXQtdGhlLXRyYXNoLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nZG0vcGF0 Y2hlcy90YWtlLW91dC10aGUtdHJhc2gucGF0Y2ggYi9zcmNwa2dzL2dkbS9wYXRjaGVzL3Rha2Ut b3V0LXRoZS10cmFzaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uNjkyN2M3Mjc3YjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dkbS9wYXRjaGVzL3Rh a2Utb3V0LXRoZS10cmFzaC5wYXRjaApAQCAtMCwwICsxLDIzIEBACistLS0gbWVzb24uYnVpbGQK KysrKyBtZXNvbi5idWlsZAorQEAgLTk0LDE5ICs5NCw4IEBAIGlmIHhkbWNwX2RlcC5mb3VuZCgp IGFuZCBnZXRfb3B0aW9uKCd0Y3Atd3JhcHBlcnMnKQorICAgbGlid3JhcF9kZXAgPSBjYy5maW5k X2xpYnJhcnkoJ2xpYndyYXAnKQorIGVuZGlmCisgIyBzeXN0ZW1kCistc3lzdGVtZF9kZXAgPSBk ZXBlbmRlbmN5KCdzeXN0ZW1kJykKKyBsaWJzeXN0ZW1kX2RlcCA9IGRlcGVuZGVuY3koJ2xpYnN5 c3RlbWQnKQorLWlmIG1lc29uLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49IDAuNTMnKQor LSAgc3lzdGVtZF9tdWx0aXNlYXRfeCA9IGZpbmRfcHJvZ3JhbSgnc3lzdGVtZC1tdWx0aS1zZWF0 LXgnLAorLSAgICByZXF1aXJlZDogZmFsc2UsCistICAgIGRpcnM6IFsKKy0gICAgICBzeXN0ZW1k X2RlcC5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCdzeXN0ZW1kdXRpbGRpcicpLAorLSAgICAgICcv bGliL3N5c3RlbWQnLAorLSAgICAgICcvdXNyL2xpYi9zeXN0ZW1kJywKKy0gICAgXSkKKy1lbHNl CistICBzeXN0ZW1kX211bHRpc2VhdF94ID0gZmluZF9wcm9ncmFtKCdzeXN0ZW1kLW11bHRpLXNl YXQteCcsIHJlcXVpcmVkOiBmYWxzZSkKKy1lbmRpZgorK3N5c3RlbWRfbXVsdGlzZWF0X3ggPSBm aW5kX3Byb2dyYW0oJ3N5c3RlbWQtbXVsdGktc2VhdC14JywgcmVxdWlyZWQ6IGZhbHNlKQorIHN5 c3RlbWRfeF9zZXJ2ZXIgPSBzeXN0ZW1kX211bHRpc2VhdF94LmZvdW5kKCk/IHN5c3RlbWRfbXVs dGlzZWF0X3gucGF0aCgpIDogJy9saWIvc3lzdGVtZC9zeXN0ZW1kLW11bHRpLXNlYXQteCcKKyAj IFBseW1vdXRoCisgcGx5bW91dGhfZGVwID0gZGVwZW5kZW5jeSgncGx5LWJvb3QtY2xpZW50Jywg cmVxdWlyZWQ6IGdldF9vcHRpb24oJ3BseW1vdXRoJykpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dk bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2RtL3RlbXBsYXRlCmluZGV4IGJiNWI0ODY5MmQ0Li4xMTg4 ODFlNGM0YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nZG0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n ZG0vdGVtcGxhdGUKQEAgLTEsMjcgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dkbScK IHBrZ25hbWU9Z2RtCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEK IGJ1aWxkX2hlbHBlcj0iZ2lyIgotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJl X2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCi0gLS1kaXNhYmxlLXNjaGVt YXMtY29tcGlsZSAtLWRpc2FibGUtc3RhdGljIC0td2l0aC1kZWZhdWx0LXBhbS1jb25maWc9YXJj aAotIC0td2l0aC1hdC1zcGktcmVnaXN0cnlkLWRpcmVjdG9yeT0vdXNyL2xpYmV4ZWMgLS13aXRo b3V0LXRjcC13cmFwcGVycwotIC0td2l0aC1zY3JlZW5zaG90LWRpcj0vdmFyL2xpYi9nZG0vZ3Jl ZXRlciAtLXNiaW5kaXI9L3Vzci9iaW4gLS13aXRob3V0LXBseW1vdXRoCi0gLS13aXRoLXhhdXRo LWRpcj0vcnVuL2dkbSAtLXdpdGgtcGlkLWZpbGU9L3J1bi9nZG0vZ2RtLnBpZAotIC0tZGlzYWJs ZS1zeXN0ZW1kLWpvdXJuYWwgLS13aXRoLWluaXRpYWwtdnQ9NyAtLWVuYWJsZS13YXlsYW5kLXN1 cHBvcnQiCitidWlsZF9zdHlsZT1tZXNvbgorY29uZmlndXJlX2FyZ3M9IgorIC1EZGVmYXVsdC1w YW0tY29uZmlnPWFyY2ggLURhdC1zcGktcmVnaXN0cnlkLWRpcj0vdXNyL2xpYmV4ZWMKKyAtRHRj cC13cmFwcGVycz1mYWxzZSAtRHNjcmVlbnNob3QtZGlyPS92YXIvbGliL2dkbS9ncmVldGVyCisg LURwbHltb3V0aD1kaXNhYmxlZCAtRHhhdXRoLWRpcj0vcnVuL2dkbSAtRHBpZC1maWxlPS9ydW4v Z2RtL2dkbS5waWQKKyAtRHN5c3RlbWQtam91cm5hbD1mYWxzZSAtRGluaXRpYWwtdnQ9NyAtRHdh eWxhbmQtc3VwcG9ydD10cnVlCisgLURzZWxpbnV4PWRpc2FibGVkIC1EbGliYXVkaXQ9ZGlzYWJs ZWQKKyAtRHN5c3RlbWRzeXN0ZW11bml0ZGlyPS90bXAgLURzeXN0ZW1kdXNlcnVuaXRkaXI9L3Rt cCIKIGhvc3RtYWtlZGVwZW5kcz0iZGNvbmYgZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWciCiBt YWtlZGVwZW5kcz0iYWNjb3VudHNzZXJ2aWNlLWRldmVsIGVsb2dpbmQtZGV2ZWwgZ2V0dGV4dC1k ZXZlbCBnbGliLWRldmVsCiAgaXNvLWNvZGVzIGxpYlNNLWRldmVsIGxpYmNhbmJlcnJhLWRldmVs IG5zcy1kZXZlbCBwYW0tZGV2ZWwgdXBvd2VyLWRldmVsIgotZGVwZW5kcz0iZ25vbWUtc2V0dGlu Z3MtZGFlbW9uIGdub21lLXNoZWxsIHhvcmctc2VydmVyIHhvcmctc2VydmVyLXh3YXlsYW5kCi0g eHJkYiIKK2RlcGVuZHM9Imdub21lLXNldHRpbmdzLWRhZW1vbiBnbm9tZS1zaGVsbCBnbm9tZS1z ZXNzaW9uIGdub21lLXRoZW1lcy1leHRyYQorIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgeG9y Zy1zZXJ2ZXIgeG9yZy1zZXJ2ZXIteHdheWxhbmQgeHJkYiIKIGNoZWNrZGVwZW5kcz0iY2hlY2st ZGV2ZWwiCiBzaG9ydF9kZXNjPSJHTk9NRSBEaXNwbGF5IE1hbmFnZXIiCiBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dETSIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU4NWRmNjU3YWE4ZDkzNjFhZjRmYjEyMjAx NGQ4ZjEyM2E5M2JmZTQ1YTc2NjJmYmEyYjM3M2Q4MzlkYmQ4ZDMKK2NoZWNrc3VtPTQ2ZDQ0MTVj MzljOTRjY2VlODFmYmFjMjExMDJlMmViY2QyODRkMzk4NThjODkzZTc1OTkwMGIxZTg4NDM1YmEK IAogY29uZl9maWxlcz0iCiAJL2V0Yy9nZG0vY3VzdG9tLmNvbmYKQEAgLTQ3LDYgKzQ4LDcgQEAg cG9zdF9pbnN0YWxsKCkgewogCXZpbnN0YWxsICRGSUxFU0RJUi9Yc2Vzc2lvbiA3NTUgZXRjL2dk bQogCiAJdnNlZCAtaSAicy9wYW1fc3lzdGVtZFwuc28vcGFtX2Vsb2dpbmQuc28vIiAkREVTVERJ Ui9ldGMvcGFtLmQvKgorCXJtIC1yZiAke0RFU1RESVJ9L3RtcAogCiAJIyBydW5pdCBzZXJ2aWNl CiAJdnN2IGdkbQpAQCAtNjAsNyArNjIsNyBAQCBsaWJnZG1fcGFja2FnZSgpIHsKIH0KIAogZ2Rt LWRldmVsX3BhY2thZ2UoKSB7Ci0JZGVwZW5kcz0ibGliZ2RtPj0ke3ZlcnNpb259XyR7cmV2aXNp b259IgorCWRlcGVuZHM9ImxpYmdkbT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBlbG9naW5kLWRl dmVsIgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgp IHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKCkZyb20gNmQ1NWY1OTI4NjM4YTk1MTFmZDBlNWRiNmY4 MTcyM2IyNTJiYTRhMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDA1MC8xMDJdIGdub21lLXNlc3Npb246IHVwZGF0ZSB0byAz LjM4LjAKCi0tLQogLi4uLWFwcC1TdHJpcC1ibGFja2xpc3RlZC12YXJpYWJsZXMtZnJvLnBhdGNo IHwgNjcgKysrKysrKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0 Y2ggICAgICAgICAgICAgIHwgMTQgKysrKwogc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRl ICAgICAgICAgICAgICAgIHwgMTAgKystCiAzIGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXNz aW9uL3BhdGNoZXMvMDAwMS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xpc3RlZC12 YXJpYWJsZXMtZnJvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXNz aW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLXNlc3Npb24vcGF0Y2hlcy8wMDAxLXJldmVydC1hdXRvc3RhcnQtYXBwLVN0cmlwLWJsYWNr bGlzdGVkLXZhcmlhYmxlcy1mcm8ucGF0Y2ggYi9zcmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hl cy8wMDAxLXJldmVydC1hdXRvc3RhcnQtYXBwLVN0cmlwLWJsYWNrbGlzdGVkLXZhcmlhYmxlcy1m cm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNmZDlmNGJh NmNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvMDAw MS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xpc3RlZC12YXJpYWJsZXMtZnJvLnBh dGNoCkBAIC0wLDAgKzEsNjcgQEAKK0Zyb20gMWRlMzU3NWExZWE5Y2RiMzU3OWFkNTM4MTA4YzUx ODE4ODQ3Nzk3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJhc211cyBUaG9tc2Vu IDxvc3NAY29naXRyaS5kZXY+CitEYXRlOiBGcmksIDYgRGVjIDIwMTkgMTE6NDg6MDIgKzAxMDAK K1N1YmplY3Q6IFtQQVRDSF0gcmV2ZXJ0OiBhdXRvc3RhcnQtYXBwOiBTdHJpcCBibGFja2xpc3Rl ZCB2YXJpYWJsZXMgZnJvbQorIGF1dG9zdGFydCBlbnZpcm9ubWVudAorCitUaGlzIGJyZWFrcyBn bm9tZS1zZXNzaW9uIG9uIG5vbi1zeXN0ZW1kIHN5c3RlbXMuCisKK2h0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9nbm9tZS1zZXNzaW9uL2lzc3Vlcy80NAorLS0tCisgZ25vbWUtc2Vzc2lv bi9nc20tYXV0b3N0YXJ0LWFwcC5jIHwgNSAtLS0tLQorIGdub21lLXNlc3Npb24vZ3NtLXV0aWwu YyAgICAgICAgICB8IDYgLS0tLS0tCisgZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5oICAgICAgICAg IHwgMSAtCisgMyBmaWxlcyBjaGFuZ2VkLCAxMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L2dub21lLXNlc3Npb24vZ3NtLWF1dG9zdGFydC1hcHAuYyBiL2dub21lLXNlc3Npb24vZ3NtLWF1 dG9zdGFydC1hcHAuYworaW5kZXggNmZkNTkxNS4uMDFiYTVmOSAxMDA2NDQKKy0tLSBnbm9tZS1z ZXNzaW9uL2dzbS1hdXRvc3RhcnQtYXBwLmMKKysrKyBnbm9tZS1zZXNzaW9uL2dzbS1hdXRvc3Rh cnQtYXBwLmMKK0BAIC05OTcsNyArOTk3LDYgQEAgYXV0b3N0YXJ0X2FwcF9zdGFydF9zcGF3biAo R3NtQXV0b3N0YXJ0QXBwICphcHAsCisgICAgICAgICBnYm9vbGVhbiAgICAgICAgIHN1Y2Nlc3M7 CisgICAgICAgICBHRXJyb3IgICAgICAgICAgKmxvY2FsX2Vycm9yOworICAgICAgICAgY29uc3Qg Y2hhciAgICAgICpzdGFydHVwX2lkOworLSAgICAgICAgY29uc3QgY2hhciAqIGNvbnN0ICp2YXJp YWJsZV9ibGFja2xpc3Q7CisgICAgICAgICBjb25zdCBjaGFyICogY29uc3QgKmNoaWxkX2Vudmly b25tZW50OworICAgICAgICAgaW50IGk7CisgICAgICAgICBHQXBwTGF1bmNoQ29udGV4dCAqY3R4 OworQEAgLTEwMTQsMTAgKzEwMTMsNiBAQCBhdXRvc3RhcnRfYXBwX3N0YXJ0X3NwYXduIChHc21B dXRvc3RhcnRBcHAgKmFwcCwKKyAgICAgICAgIGxvY2FsX2Vycm9yID0gTlVMTDsKKyAgICAgICAg IGN0eCA9IGdfYXBwX2xhdW5jaF9jb250ZXh0X25ldyAoKTsKKyAKKy0gICAgICAgIHZhcmlhYmxl X2JsYWNrbGlzdCA9IGdzbV91dGlsX2dldF92YXJpYWJsZV9ibGFja2xpc3QgKCk7CistICAgICAg ICBmb3IgKGkgPSAwOyB2YXJpYWJsZV9ibGFja2xpc3RbaV0gIT0gTlVMTDsgaSsrKQorLSAgICAg ICAgICAgICAgICBnX2FwcF9sYXVuY2hfY29udGV4dF91bnNldGVudiAoY3R4LCB2YXJpYWJsZV9i bGFja2xpc3RbaV0pOworLQorICAgICAgICAgY2hpbGRfZW52aXJvbm1lbnQgPSBnc21fdXRpbF9s aXN0ZW52ICgpOworICAgICAgICAgZm9yIChpID0gMDsgY2hpbGRfZW52aXJvbm1lbnRbaV0gIT0g TlVMTDsgaSsrKSB7CisgICAgICAgICAgICAgICAgIGNoYXIgKiplbnZpcm9ubWVudF90dXBsZTsK K2RpZmYgLS1naXQgYS9nbm9tZS1zZXNzaW9uL2dzbS11dGlsLmMgYi9nbm9tZS1zZXNzaW9uL2dz bS11dGlsLmMKK2luZGV4IDAyYmM0YTUuLmFkYTEyMjUgMTAwNjQ0CistLS0gZ25vbWUtc2Vzc2lv bi9nc20tdXRpbC5jCisrKysgZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5jCitAQCAtODA4LDkgKzgw OCwzIEBAIGdzbV91dGlsX2xpc3RlbnYgKHZvaWQpCisgICAgICAgICByZXR1cm4gKGNvbnN0IGNo YXIgKiBjb25zdCAqKSBjaGlsZF9lbnZpcm9ubWVudDsKKyAKKyB9CistCistY29uc3QgY2hhciAq IGNvbnN0ICoKKy1nc21fdXRpbF9nZXRfdmFyaWFibGVfYmxhY2tsaXN0ICh2b2lkKQorLXsKKy0g ICAgICAgIHJldHVybiB2YXJpYWJsZV9ibGFja2xpc3Q7CistfQorZGlmZiAtLWdpdCBhL2dub21l LXNlc3Npb24vZ3NtLXV0aWwuaCBiL2dub21lLXNlc3Npb24vZ3NtLXV0aWwuaAoraW5kZXggYmQ3 YjY5OC4uOGJjYTVmNCAxMDA2NDQKKy0tLSBnbm9tZS1zZXNzaW9uL2dzbS11dGlsLmgKKysrKyBn bm9tZS1zZXNzaW9uL2dzbS11dGlsLmgKK0BAIC01MCw3ICs1MCw2IEBAIGNoYXIgKiAgICAgIGdz bV91dGlsX2dlbmVyYXRlX3N0YXJ0dXBfaWQgICAgICAgICAgICAodm9pZCk7Cisgdm9pZCAgICAg ICAgZ3NtX3V0aWxfc2V0ZW52ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICp2 YXJpYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKnZhbHVlKTsKKyBjb25zdCBjaGFyICogY29uc3QgKiBnc21fdXRp bF9saXN0ZW52ICAgICAgICAgICAgICAgKHZvaWQpOworLWNvbnN0IGNoYXIgKiBjb25zdCAqIGdz bV91dGlsX2dldF92YXJpYWJsZV9ibGFja2xpc3Qodm9pZCk7CisgCisgZ2Jvb2xlYW4gICAgZ3Nt X3V0aWxfZXhwb3J0X2FjdGl2YXRpb25fZW52aXJvbm1lbnQgIChHRXJyb3IgICAgICoqZXJyb3Ip OworICNpZmRlZiBIQVZFX1NZU1RFTUQKKy0tIAorMi4yNC4wCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoIGIvc3JjcGtncy9n bm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhlNTVhMGY3OTg3Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2gKQEAgLTAs MCArMSwxNCBAQAorLS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BAIC0xMzAsMTAg KzEzMCw3IEBAIGlmIGVuYWJsZV9zeXN0ZW1kIG9yIGVuYWJsZV9jb25zb2xla2l0CisgCisgICAj IENoZWNrIGZvciBzeXN0ZW1kCisgICBpZiBlbmFibGVfc3lzdGVtZAorLSAgICBzeXN0ZW1kX2Rl cCA9IGRlcGVuZGVuY3koJ3N5c3RlbWQnLCB2ZXJzaW9uOiAnPj0gMjQyJywgcmVxdWlyZWQ6IHRy dWUpCistICAgIHN5c3RlbWRfdXNlcnVuaXRkaXIgPSBzeXN0ZW1kX2RlcC5nZXRfcGtnY29uZmln X3ZhcmlhYmxlKCdzeXN0ZW1kdXNlcnVuaXRkaXInLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVfdmFyaWFibGU6IFsn cHJlZml4JywgcHJlZml4XSkKKy0KKysgICAgc3lzdGVtZF91c2VydW5pdGRpciA9ICcvdG1wJwor ICAgICBsaWJzeXN0ZW1kX2RlcCA9IGRlcGVuZGVuY3koJ2xpYnN5c3RlbWQnLCB2ZXJzaW9uOiAn Pj0gMjA5JywgcmVxdWlyZWQ6IGZhbHNlKQorICAgICBzZXNzaW9uX2Jpbl9kZXBzICs9IGxpYnN5 c3RlbWRfZGVwCisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVtcGxhdGUKaW5kZXggNDQ0NGYxNjJiZjEuLmM5YmM0 OTMwYzM5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCkBAIC0xLDkgKzEsOSBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtc2Vzc2lvbicKIHBrZ25hbWU9Z25vbWUtc2Vzc2lvbgotdmVyc2lv bj0zLjM0LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgot Y29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZF9qb3VybmFsPWZhbHNlIgorY29uZmlndXJlX2FyZ3M9 Ii1Ec3lzdGVtZF9qb3VybmFsPWZhbHNlIC1Ec3lzdGVtZF9zZXNzaW9uPWRpc2FibGUiCiBob3N0 bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyB4bWx0byIKIG1ha2Vk ZXBlbmRzPSJlbG9naW5kLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgZ3RrKzMtZGV2ZWwganNv bi1nbGliLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJJQ0UtZGV2ZWwgbGliU00tZGV2ZWwgbGli WHRzdC1kZXZlbCBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbApAQCAtMTUsNCArMTUsOCBAQCBt YWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9n aXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNlc3Npb24iCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT1kNzgwMWZlMmQ1YTc1MWIxOWNiNTgwODE3NzEzMTZhNzZhYWJkNWM1NTBj ZDU4ZDRlNGM2YTVhNGVkMzU2NjYwCitjaGVja3N1bT03YmNjMGViMmNkYmE0YjNmNmQxYjQ1OWIz YTMwODczYjdiYjY1YjM4M2MxZjZhNWY2M2MzZTNiNWM3OTQzZDY3CisKK3Bvc3RfaW5zdGFsbCgp IHsKKwlybSAtcmYgJHtERVNURElSfS90bXAKK30KCkZyb20gNzAxN2E3MWQ3MWFhYjkzY2JiYWFj NWI4ZTcxNGUwZDlkMDNhYzE1YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1MS8xMDJdIGdub21lLWluaXRpYWwtc2V0dXA6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBs YXRlIHwgMTEgKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlCmluZGV4IDU1ZGYy ZjUzYzFkLi42M2FiZDNjNWM4MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1pbml0aWFsLXNl dHVwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1cC90ZW1wbGF0ZQpA QCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtaW5pdGlhbC1zZXR1 cCcKIHBrZ25hbWU9Z25vbWUtaW5pdGlhbC1zZXR1cAotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9u PTMKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotY29uZmln dXJlX2FyZ3M9Ii1Ec29mdHdhcmUtc291cmNlcz1kaXNhYmxlZCAtRHN5c3RlbWQ9ZmFsc2UiCi1o b3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCIKK2NvbmZpZ3VyZV9hcmdzPSIt RHNvZnR3YXJlLXNvdXJjZXM9ZGlzYWJsZWQgLURwYXJlbnRhbF9jb250cm9scz1kaXNhYmxlZAor IC1Ec3lzdGVtZD1mYWxzZSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnbGliLWRldmVs IGdldHRleHQiCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWNjb3VudHNzZXJ2 aWNlLWRldmVsIGxpYmdsaWItZGV2ZWwKICBnbm9tZS1kZXNrdG9wLWRldmVsIGNoZWVzZS1kZXZl bCBsaWJnd2VhdGhlci1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCiAgZ25vbWUtb25saW5lLWFjY291 bnRzLWRldmVsIGdkbS1kZXZlbCBsaWJwd3F1YWxpdHktZGV2ZWwKQEAgLTE3LDQgKzE4LDQgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9EZXNp Z24vT1MvSW5pdGlhbFNldHVwIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTcx ZjEwZWY2YjYzMWNkOTJmZmRlNzc0ZTQxMzBiMzJiMjQ5NGI0ZGY1ZWYyODgzNzVkOGIxOTU3ZWVh YmZhMQorY2hlY2tzdW09M2E4NTdhZWY1ZWZiNjg5ZjQwODYzMmRiODQ2OWFkMjc2MjBmNzYyZDk3 NzA3MGEzNjAzNWM1MjJjNmY4Mjc1OQoKRnJvbSAxZWY1ODY3ZjczOTczNTk1MTRkM2ZlNDMwZDYw MzhhMmIwYTk4ODZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUyLzEwMl0geGRnLWRlc2t0b3AtcG9ydGFsLWd0azogdXBk YXRlIHRvIDEuOC4wCgotLS0KIHNyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0 ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUg Yi9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUKaW5kZXggZGVlMGU0NjMz ODYuLjc1MTdkMWIzMmQ4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1n dGsvdGVtcGxhdGUKKysrIGIvc3JjcGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRl CkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAneGRnLWRlc2t0b3AtcG9ydGFs LWd0aycKIHBrZ25hbWU9eGRnLWRlc2t0b3AtcG9ydGFsLWd0awotdmVyc2lvbj0xLjYuMAordmVy c2lvbj0xLjguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1h a2VkZXBlbmRzPSJwa2ctY29uZmlnIGxpYnhzbHQgZ2xpYi1kZXZlbCB4ZGctZGVza3RvcC1wb3J0 YWwgZ2V0dGV4dCIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iRHVuY2FlbiA8ZHVuY2Fl bkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0cGFrL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsiCiBkaXN0 ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0cGFrLyR7cGtnbmFtZX0vcmVsZWFzZXMvZG93 bmxvYWQvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 OTU2ZmQxNjYwODI0N2U3MTE5ZDRjNmQ5NWE2ZGM2NTc4ZGNlMjU3ZDJmMjcyZDAzYjM0OTg1NzIy NTdlMmY3NgorY2hlY2tzdW09YTUyNTI5ZWQzMjFlMDQ0Y2E5YWRjYTVlOTcxOGQ5YmE1N2M0MTRh MjYzNGRkNDEwOWRmMzQ0YzViOWVlZDc3ZgogCiBwb3N0X2luc3RhbGwoKSB7CiAJcm0gLXJmICIk e0RFU1RESVJ9L3Vzci9saWIvc3lzdGVtZCIKCkZyb20gMTQxYTEzYmI4YTZhYTYyNTZlZmVmYTdj NTc5ODcxY2U4M2VlNmFiNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1My8xMDJdIG5hdXRpbHVzOiB1cGRhdGUgdG8gMy4z OC4wCgotLS0KIHNyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUgfCAxMiArKysrKystLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUK aW5kZXggNTM3YTg1MTk3M2YuLmU0NTIyOGZhMDUxIDEwMDY0NAotLS0gYS9zcmNwa2dzL25hdXRp bHVzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUKQEAgLTEsMjMgKzEs MjMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ25hdXRpbHVzJwogcGtnbmFtZT1uYXV0aWx1cwot dmVyc2lvbj0zLjM2LjEuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItRHRlc3RzPWhlYWRs ZXNzIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgotaG9zdG1ha2Vk ZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIgoraG9zdG1ha2Vk ZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHRyYWNrZXIzIgog bWFrZWRlcGVuZHM9ImV4ZW1waS1kZXZlbCBnbm9tZS1hdXRvYXItZGV2ZWwgZ25vbWUtZGVza3Rv cC1kZXZlbCBndGsrMy1kZXZlbAogIGxpYmV4aWYtZGV2ZWwgbGliZ2V4aXYyLWRldmVsIGxpYmds aWItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnNlY2NvbXAtZGV2ZWwKLSBsaWJYMTEtZGV2ZWwg bGlieG1sMi1kZXZlbCB0cmFja2VyLWRldmVsIGdzdC1wbHVnaW5zLWJhc2UxLWRldmVsIgorIGxp YlgxMS1kZXZlbCBsaWJ4bWwyLWRldmVsIHRyYWNrZXIzLWRldmVsIGdzdC1wbHVnaW5zLWJhc2Ux LWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIGdzZXR0aW5ncy1kZXNrdG9wLXNj aGVtYXMgaGljb2xvci1pY29uLXRoZW1lCi0gdHJhY2tlci1taW5lcnMgdHJhY2tlciIKLWNoZWNr ZGVwZW5kcz0idHJhY2tlciIKKyB0cmFja2VyMy1taW5lcnMgdHJhY2tlcjMiCitjaGVja2RlcGVu ZHM9InRyYWNrZXIzIHRyYWNrZXIzLW1pbmVycyBweXRob24zLWdvYmplY3QgZGJ1cyIKIHNob3J0 X2Rlc2M9IkdOT01FIGZpbGUgbWFuYWdlciIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMS1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL05hdXRpbHVzIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uOjo0fS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZjkyNTJmNTA4MjExZDlmMzY4YTQ5ZGI2OTc4 OTBmODk1ZDA4MGYwOTU5MGFlY2FmMzM4MDNhNTE5ZGVmN2JkZQorY2hlY2tzdW09YzZmMzMwZjlm M2Y3ZGJmMzVhZmI2ZWMyMDk0Yjc0NmVlNzVkNWU5MjhjOGY2NzgwZGFiMjY2NzIwODZjY2FjMAog CiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20g YjUwOTllYzM1N2YwNzAyNTI4ZTc5OGFhMzc0YmRhNzdjMzIwNGRiYyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1NC8xMDJd IGdub21lLW1hcHM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1tYXBzL3Rl bXBsYXRlIHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUKaW5kZXggMDMwMGJlNjA1OTkuLmVjYzU3YWI4 YmI0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS1tYXBzL3RlbXBsYXRlCkBAIC0xLDE2ICsxLDE2IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdnbm9tZS1tYXBzJwogcGtnbmFtZT1nbm9tZS1tYXBzCi12ZXJzaW9uPTMuMzYuMQordmVy c2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1ob3N0bWFrZWRlcGVu ZHM9ImdsaWItZGV2ZWwgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGludGx0b29sIHBrZy1jb25maWcg QXBwU3RyZWFtIgorYnVpbGRfaGVscGVyPSJnaXIiCitob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2 ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyBBcHBTdHJlYW0gZ2pzIgogbWFrZWRlcGVuZHM9ImZvbGtz LWRldmVsIGdlb2NsdWUyLWRldmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnanMtZGV2ZWwKLSBnbm9t ZS1kZXNrdG9wLWRldmVsIGxpYmNoYW1wbGFpbi1kZXZlbCByZXN0LWRldmVsIgorIGdub21lLWRl c2t0b3AtZGV2ZWwgbGliY2hhbXBsYWluLWRldmVsIHJlc3QtZGV2ZWwgbGliaGFuZHkxLWRldmVs IgogZGVwZW5kcz0iZ2VvY2x1ZTIgZ2ZiZ3JhcGggZ2pzIgogc2hvcnRfZGVzYz0iR05PTUUgbWFw cyBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvQXBwcy9NYXBzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MWEzMmVmZDk2YWQ4OThmNzdhNjM2ZDJkMDQ2M2Q3NTcwMDliNGI4MTIyNTljODlmZmRjYjkxZDZh ZmMwNTJmOQotbm9jcm9zcz0iZXZvbHV0aW9uLWRhdGFzZXJ2ZXIgY3Jvc3MgZ2lyIGRvZXNuJ3Qg d29yayIKK2NoZWNrc3VtPTU1NzU4MzQwZWJkMDg0NjEwMjgzYmYxZjZmZWM2YzA0MjU1OWExODZl Yjg2OTljMDU2YTIyZGZlZjFkOTdmOTkKCkZyb20gYTQ0MWViZjkxZmQyYjZkYTFhNTZmZDI4NGRl OWU2ZDJjNGYxZjdiYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDA1NS8xMDJdIGV2b2x1dGlvbjogdXBkYXRlIHRvIDMuMzgu MAoKLS0tCiAuLi4vZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UgfCA0 NSAtLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRl Y3QuaCAgICAgICAgfCAgNSAtLS0KIHNyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlICAgICAgICAg ICAgICAgICAgICB8IDM1ICsrKy0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2Vy dGlvbnMoKyksIDc4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZXZv bHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaAoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UgYi9zcmNwa2dz L2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA4YmU1NWI0MjA3MC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9l dm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZQorKysgL2Rldi9udWxsCkBA IC0xLDQ1ICswLDAgQEAKLSMgVGhpcyBmaWxlIHdhcyBnZW5lcmF0ZWQgYnkgQ01ha2UgYmVjYXVz ZSBpdCBkZXRlY3RlZCBUUllfUlVOKCkgY29tbWFuZHMKLSMgaW4gY3Jvc3Njb21waWxpbmcgbW9k ZS4gSXQgd2lsbCBiZSBvdmVyd3JpdHRlbiBieSB0aGUgbmV4dCBDTWFrZSBydW4uCi0jIENvcHkg aXQgdG8gYSBzYWZlIGxvY2F0aW9uLCBzZXQgdGhlIHZhcmlhYmxlcyB0byBhcHByb3ByaWF0ZSB2 YWx1ZXMKLSMgYW5kIHVzZSBpdCB0aGVuIHRvIHByZXNldCB0aGUgQ01ha2UgY2FjaGUgKHVzaW5n IC1DKS4KLQotCi0jIF9jb3JyZWN0X2ljb252X0VYSVRDT0RFCi0jICAgIGluZGljYXRlcyB3aGV0 aGVyIHRoZSBleGVjdXRhYmxlIHdvdWxkIGhhdmUgYmVlbiBhYmxlIHRvIHJ1biBvbiBpdHMKLSMg ICAgdGFyZ2V0IHBsYXRmb3JtLiBJZiBzbywgc2V0IF9jb3JyZWN0X2ljb252X0VYSVRDT0RFIHRv Ci0jICAgIHRoZSBleGl0IGNvZGUgKGluIG1hbnkgY2FzZXMgMCBmb3Igc3VjY2VzcyksIG90aGVy d2lzZSBlbnRlciAiRkFJTEVEX1RPX1JVTiIuCi0jIFRoZSBfY29ycmVjdF9pY29udl9DT01QSUxF RCB2YXJpYWJsZSBob2xkcyB0aGUgYnVpbGQgcmVzdWx0IGZvciB0aGlzIFRSWV9SVU4oKS4KLSMg Ci0jIFNvdXJjZSBmaWxlICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYu MC9idWlsZC9DTWFrZUZpbGVzL0NNYWtlVG1wL3NyYy5jCi0jIEV4ZWN1dGFibGUgICAgOiAvYnVp bGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL2NtVENf MzE1ZWUtX2NvcnJlY3RfaWNvbnZfRVhJVENPREUKLSMgUnVuIGFyZ3VtZW50cyA6IAotIyAgICBD YWxsZWQgZnJvbTogWzJdCS91c3Ivc2hhcmUvY21ha2UtMy45L01vZHVsZXMvQ2hlY2tDU291cmNl UnVucy5jbWFrZQotIyAgICAgICAgICAgICAgICAgWzFdCS9idWlsZGRpci9ldm9sdXRpb24tZGF0 YS1zZXJ2ZXItMy4yNi4wL0NNYWtlTGlzdHMudHh0Ci0KLXNldCggX2NvcnJlY3RfaWNvbnZfRVhJ VENPREUgCi0gICAgIDAKLSAgICAgQ0FDSEUgSU5URVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4i IEZPUkNFKQotc2V0KF9jb3JyZWN0X2ljb252X0VYSVRDT0RFX19UUllSVU5fT1VUUFVUCi0gICAg IDAKLSAgICAgQ0FDSEUgSU5URVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotCi0K LSMgSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFCi0jICAgIGluZGljYXRlcyB3aGV0aGVyIHRoZSBl eGVjdXRhYmxlIHdvdWxkIGhhdmUgYmVlbiBhYmxlIHRvIHJ1biBvbiBpdHMKLSMgICAgdGFyZ2V0 IHBsYXRmb3JtLiBJZiBzbywgc2V0IEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERSB0bwotIyAgICB0 aGUgZXhpdCBjb2RlIChpbiBtYW55IGNhc2VzIDAgZm9yIHN1Y2Nlc3MpLCBvdGhlcndpc2UgZW50 ZXIgIkZBSUxFRF9UT19SVU4iLgotIyBUaGUgSEFWRV9MS1NUUkZUSU1FX0NPTVBJTEVEIHZhcmlh YmxlIGhvbGRzIHRoZSBidWlsZCByZXN1bHQgZm9yIHRoaXMgVFJZX1JVTigpLgotIyAKLSMgU291 cmNlIGZpbGUgICA6IC9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL2J1aWxk L0NNYWtlRmlsZXMvQ01ha2VUbXAvc3JjLmMKLSMgRXhlY3V0YWJsZSAgICA6IC9idWlsZGRpci9l dm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL2J1aWxkL0NNYWtlRmlsZXMvY21UQ19kMjg5Ny1I QVZFX0xLU1RSRlRJTUVfRVhJVENPREUKLSMgUnVuIGFyZ3VtZW50cyA6IAotIyAgICBDYWxsZWQg ZnJvbTogWzJdCS91c3Ivc2hhcmUvY21ha2UtMy45L01vZHVsZXMvQ2hlY2tDU291cmNlUnVucy5j bWFrZQotIyAgICAgICAgICAgICAgICAgWzFdCS9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2 ZXItMy4yNi4wL0NNYWtlTGlzdHMudHh0Ci0KLXNldCggSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RF IAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JD RSkKLXNldCggSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFX19UUllSVU5fT1VUUFVUCi0gICAgIDAK LSAgICAgQ0FDSEUgSU5URVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotCmRpZmYg LS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaCBiL3NyY3BrZ3Mv ZXZvbHV0aW9uL2ZpbGVzL2ljb252LWRldGVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA0NmY0NzZkNWJjOS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24vZmls ZXMvaWNvbnYtZGV0ZWN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS8qIFRoaXMg aXMgYW4gYXV0by1nZW5lcmF0ZWQgaGVhZGVyLCBETyBOT1QgRURJVCEgKi8KLQotI2RlZmluZSBJ Q09OVl9JU09fRF9GT1JNQVQgImlzby0lZC0lZCIKLSNkZWZpbmUgSUNPTlZfSVNPX1NfRk9STUFU ICJpc28tJWQtJXMiCi0jZGVmaW5lIElDT05WXzEwNjQ2ICJpc28tMTA2NDYiCmRpZmYgLS1naXQg YS9zcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRl CmluZGV4IDU2MGVkOTNkYTAyLi5hYTNmYTM0YmM0YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9ldm9s dXRpb24vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUKQEAgLTEsNTQg KzEsMzMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2b2x1dGlvbicKIHBrZ25hbWU9ZXZvbHV0 aW9uCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPWNtYWtlCitidWlsZF9oZWxwZXI9ImdpciBxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1ERU5B QkxFX0FVVE9BUj1PRkYgLURFTkFCTEVfTElCQ1JZUFRVST1PRkYgLURFTkFCTEVfR1RLU1BFTEw9 T0ZGCi0gLURFTkFCTEVfVEVYVF9ISUdITElHSFQ9T0ZGIC1ERU5BQkxFX1BTVF9JTVBPUlQ9T0ZG Ci0gLURFTkFCTEVfV0VBVEhFUj0kKHZvcHRfaWYgZ2lyIE9OIE9GRikiCisgLURFTkFCTEVfVEVY VF9ISUdITElHSFQ9T0ZGIC1ERU5BQkxFX1BTVF9JTVBPUlQ9T0ZGIC1ERU5BQkxFX1dFQVRIRVI9 T04iCiBob3N0bWFrZWRlcGVuZHM9Imdub21lLWRvYy11dGlscyBnb2JqZWN0LWludHJvc3BlY3Rp b24gaW50bHRvb2wgaXRzdG9vbAotIHBrZy1jb25maWciCisgcGtnLWNvbmZpZyBnbGliLWRldmVs IgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsIGVu Y2hhbnQyLWRldmVsCiAgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIGdzcGVsbC1kZXZlbCBn dGtodG1sLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsCi0gJCh2b3B0X2lmIGdpciBsaWJnd2VhdGhl ci1kZXZlbCkgbGlibm90aWZ5LWRldmVsIHdlYmtpdDJndGstZGV2ZWwgeXRuZWYtZGV2ZWwKKyBs aWJnd2VhdGhlci1kZXZlbCBsaWJub3RpZnktZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB5dG5lZi1k ZXZlbAogIGdub21lLWRlc2t0b3AtZGV2ZWwiCiBkZXBlbmRzPSJnbm9tZS1rZXlyaW5nIgogc2hv cnRfZGVzYz0iSW50ZWdyYXRlZCBtYWlsLCBhZGRyZXNzYm9vayBhbmQgY2FsZW5kYXJpbmcgZm9y IEdOT01FIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTMuMC1vci1sYXRlciwgR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0aW9u IgotY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZXZv bHV0aW9uL2dub21lLTMtMzYvTkVXUyIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNl cmNvbnRlbnQuY29tL0dOT01FL2V2b2x1dGlvbi9nbm9tZS0zLTM4L05FV1MiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT04NzNhY2YxZGJlYzM4ZTY3ZTE2OTA2NDY0NWFjM2E5Yjlh OTQ0YmQyYjYzMzE2MWRmNmU1ZjA1NzAwZTM2Y2I4CitjaGVja3N1bT1mODFjYzQwZjU0YWEyZDA1 OWRhNGYzYTk0ZWIwOTM2MmU4MTUxMzMwNmM5NzRhNDFjYTc4OTViOWM4OTU3YzVkCiBzaGxpYl9w cm92aWRlcz0ibGliZXZvbHV0aW9uLWNhbGVuZGFyLnNvIGxpYmV2b2x1dGlvbi11dGlsLnNvIGxp YmVtYWlsLWVuZ2luZS5zbwogIGxpYmV2b2x1dGlvbi1tYWlsLnNvIGxpYmV2b2x1dGlvbi1zaGVs bC5zbyIKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0 aGVuCiAJYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCi1lbHNlCi0JaG9zdG1ha2VkZXBlbmRz Kz0iIGdsaWItZGV2ZWwiCiBmaQogCi0jIGNtYWtlIHBlcmZvbXJtcyAyIGNoZWNrcyB1c2luZyBi aW5hcnkgcnVudGltZSwgYWJvdXQgaWNvbnYgYW5kIHNmcnRpbWUuCi0jIG11c2wgKDEuMS4xNikg ZG9lcyBub3Qgc3VwcG9ydCAiSVNPLTIwMjItSlAiIGVuY29kaW5nIChzZWUgaXRzIHJvYWRtYXAp LAotIyBhbHRob3VnaCBldm9sdXRpb24tZGF0YS1zZXJ2ZXIgaXMgZmluZSB3aXRoIG11c2wuCi0j IElmIGNyb3NzYnVpbGQsIGNtYWtlIGxldCBkaXNhYmxpbmcgcnVudGltZSBjaGVja3MgdmlhIHNw ZWNpZmljIGRpcmVjdGl2ZXMuCi0jIHRlc3QgaWNvbnYtZGV0ZWN0LmMgYWxzbyBnZW5lcmF0ZXMg aWNvbnYtZGV0ZWN0LmggdGhhdCBpcyByZXF1aXJlZCBmb3IgYnVpbGQuCi0jIFNvIGNvbXBsZXRs eSBkaXNhYmxlIHRlc3QgZnJvbSBpY29udi1kZXRlY3QuYyAoY21ha2UucGF0Y2ggZmlsZSkgYW5k Ci0jIHVzZSBhIGNtYWtlIGNhY2hlIGZpbGUgb24gY3Jvc3NidWlsZCB0byBkaXNhYmxlIHNmcnRp bWUgcnVubmluZyB0ZXN0LgotaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0JY29uZmlndXJl X2FyZ3MrPSIgLUMgZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSIKLWZpCi0KLXByZV9jb25maWd1 cmUoKSB7Ci0JbWtkaXIgLXAgYnVpbGQKLQljcCAke0ZJTEVTRElSfS9pY29udi1kZXRlY3QuaCAk e3dya3NyY30vYnVpbGQvLgotCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCQljcCAke0ZJ TEVTRElSfS9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlICR7d3Jrc3JjfS9idWlsZC8uCi0JZmkK LX0KLQogZXZvbHV0aW9uLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0id2Via2l0Mmd0ay1k ZXZlbCBndGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZl bAogCSBndGtodG1sLWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK CkZyb20gYzY4ZTJkZWE5MTM5MDYzYjQ4YWM1ZTc4NzY2MWY3OTFiZTg3Y2M5ZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1 Ni8xMDJdIGV2b2x1dGlvbi1ld3M6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9ldm9s dXRpb24tZXdzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24tZXdz L3RlbXBsYXRlIGIvc3JjcGtncy9ldm9sdXRpb24tZXdzL3RlbXBsYXRlCmluZGV4IDRmZjgxMTY0 NjZjLi45OGVlM2E3N2ZlNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24tZXdzL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2b2x1dGlvbi1ld3MnCiBwa2duYW1lPWV2b2x1dGlvbi1l d3MKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRExJQkVYRUNfSU5TVEFMTF9ESVI9L3Vzci9saWIv ZXZvbHV0aW9uIgpAQCAtMTAsNiArMTAsNiBAQCBzaG9ydF9kZXNjPSJNUyBFeGNoYW5nZSBpbnRl Z3JhdGlvbiB0aHJvdWdoIEV4Y2hhbmdlIFdlYiBTZXJ2aWNlcyIKIG1haW50YWluZXI9IlBldGVy IEt1Y2hhciA8bWFzYWpAZ214LmNvbT4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0aW9uIgotY2hhbmdlbG9n PSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZXZvbHV0aW9uLWV3cy9n bm9tZS0zLTM2L05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50 LmNvbS9HTk9NRS9ldm9sdXRpb24tZXdzL2dub21lLTMtMzgvTkVXUyIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWQwODgzYzdkMjI3ODI3Y2M1YzQ0NjhiN2UzMWEzZWUzNzBiY2Q3 ZDQxYTRkYmI5NTBhYjVkYjM2Yzk1NTFhYzEKK2NoZWNrc3VtPTU5YmY1OWNhYmI5ZDE5M2Q5MTA3 Njk3MmRkOGE2ZTcxZWJmMzRjN2JmYWQwMWNkNjk1NDI5NzM0N2EzMDc3YjMKCkZyb20gMjVmNTcy NGQ4OGFkM2QxZGI2ZGMwMGJhZGY4Y2QxNTQ3ZGM0MzRhNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1Ny8xMDJdIHB5dGhv bjMtYXRzcGk6IHVwZGF0ZSB0byAyLjM4LjAKCi0tLQogc3JjcGtncy9weXRob24zLWF0c3BpL3Rl bXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlIGIv c3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlCmluZGV4IGEzM2EzNzRmZTE4Li4yM2ZhOTg5 MzRlNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3B5dGhvbjMtYXRzcGknCiBwa2duYW1lPXB5dGhvbjMtYXRzcGkKLXZlcnNpb249 Mi4zMi4xCi1yZXZpc2lvbj00Cit2ZXJzaW9uPTIuMzguMAorcmV2aXNpb249MQogYXJjaHM9bm9h cmNoCiB3cmtzcmM9InB5YXRzcGktJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKQEAgLTEzLDQgKzEzLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9L3B5YXRzcGkvJHt2ZXJzaW9uJS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09ODQ5NTRhNWJiZWFjYzgzNjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIzOWIyNDYzN2I0 YzRkZDFmODYyMDM4OQorY2hlY2tzdW09ZmY4MDkzMTJmZDBjMmY2MWUxOTFjMTgxYTFhNjM4YTMw YjU3OWI5MWI2ODJjZmI1YTA1NTM1YTU1MjY1YjQzZAoKRnJvbSAwYjJkN2IzZGRmYWM3OGUyZGVk YjMyNWU0NTE0NzIxODBmNDRiNGI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDU4LzEwMl0gcHl0aG9uLWF0c3BpOiB1cGRh dGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlIHwgNiArKyst LS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9weXRob24tYXRzcGkvdGVtcGxhdGUgYi9zcmNwa2dzL3B5dGhvbi1h dHNwaS90ZW1wbGF0ZQppbmRleCAwMTQxZDk3Zjg1ZC4uNzUwNWMzMmFkNjAgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uLWF0c3Bp L3RlbXBsYXRlCkBAIC0xLDggKzEsOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uLWF0 c3BpJwogIyBLZWVwIHB5dGhvbjMtYXRzcGkgaW4gc3luYwogcGtnbmFtZT1weXRob24tYXRzcGkK LXZlcnNpb249Mi4zMi4xCi1yZXZpc2lvbj00Cit2ZXJzaW9uPTIuMzguMAorcmV2aXNpb249MQog YXJjaHM9bm9hcmNoCiB3cmtzcmM9InB5YXRzcGktJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKQEAgLTE0LDQgKzE0LDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9L3B5YXRzcGkvJHt2ZXJzaW9uJS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09ODQ5NTRhNWJiZWFjYzgzNjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIz OWIyNDYzN2I0YzRkZDFmODYyMDM4OQorY2hlY2tzdW09ZmY4MDkzMTJmZDBjMmY2MWUxOTFjMTgx YTFhNjM4YTMwYjU3OWI5MWI2ODJjZmI1YTA1NTM1YTU1MjY1YjQzZAoKRnJvbSA3MTRlNjY0Y2Y5 NDlmZjEwNDQ2MzAxNjViYjVhNTY1MjU3YzkzOWViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDU5LzEwMl0gb3JjYTogdXBk YXRlIHRvIDMuMzguMCwgZHJvcCBub2FyY2gKCi0tLQogc3JjcGtncy9vcmNhL3RlbXBsYXRlIHwg NSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL29yY2EvdGVtcGxhdGUgYi9zcmNwa2dzL29yY2EvdGVtcGxh dGUKaW5kZXggZjcwMjAyZTZkNzYuLjM4ZTkyMzQ2Yjg2IDEwMDY0NAotLS0gYS9zcmNwa2dzL29y Y2EvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcmNhL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnb3JjYScKIHBrZ25hbWU9b3JjYQotdmVyc2lvbj0zLjM2LjEK K3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0iaW50bHRvb2wgaXRzdG9vbCBwa2ctY29uZmln IgogbWFrZWRlcGVuZHM9ImF0LXNwaTItYXRrLWRldmVsIGxpYmxvdWlzLWRldmVsIHB5dGhvbjMt Z29iamVjdC1kZXZlbCIKQEAgLTEzLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9PcmNhIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09YzFhYzY0OGI2YmUzMTQ4OGMyNmZmOTU5MTE0Mjg3ODY5ZGY5 Y2UzY2EyMTk5OWU0MGRlZDg3NzQxYzk4ODMxZgorY2hlY2tzdW09MWMzMjc5ZDc5ODk4ZGIxMGEx MDViY2I3MDViNWE0MDQyYjFiNTFhOWMwNTdhNmJkMGZmZDY1ZGFjMjM1NmZlZQogCiBpZiBbICIk Q1JPU1NfQlVJTEQiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgcHl0aG9uMy1nb2JqZWN0 LWRldmVsIgoKRnJvbSAyMGI0NjhmNGIxOTQ5OWI4NjE1OTU5ODU1ODBjNzk1YWM3Mjg2MjJmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDYwLzEwMl0gZ25vbWUtd2VhdGhlcjogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLXdl YXRoZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUKaW5kZXggZDMwYmU5YmYxOTIuLmMwMjhl NDZiYTY1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtd2VhdGhlcicKIHBrZ25hbWU9Z25vbWUtd2VhdGhlcgogdmVyc2lv bj0zLjM2LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVp bGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGl0c3Rv b2wgZ2xpYi1kZXZlbCBnanMiCgpGcm9tIDQxYWEzZmFmMjE3NDNkOGM3ZjY0NzE1N2E3N2Q3NDY4 OGM4NzAyZGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwNjEvMTAyXSB2dGUzOiB1cGRhdGUgdG8gMC42Mi4wCgotLS0KIHNy Y3BrZ3MvdnRlMy90ZW1wbGF0ZSB8IDE5ICsrKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvdnRlMy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdnRlMy90ZW1wbGF0ZQppbmRleCA2MTE2YjNjYzYy MS4uNDFmOWY0ZTdlOWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdnRlMy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3Z0ZTMvdGVtcGxhdGUKQEAgLTEsMjkgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ3Z0ZTMnCiBwa2duYW1lPXZ0ZTMKLXZlcnNpb249MC42MC4zCit2ZXJzaW9uPTAuNjIuMAog cmV2aXNpb249MQogd3Jrc3JjPSJ2dGUtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPW1lc29uCiBi dWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGJfbmRlYnVnPWZhbHNlIC1EZ2ly PSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkKLSAtRHZhcGk9JCh2b3B0X2lmIHZhbGEgdHJ1ZSBm YWxzZSkgLURiX2x0bz1mYWxzZSAtRF9zeXN0ZW1kPWZhbHNlIgorY29uZmlndXJlX2FyZ3M9Ii1E Yl9uZGVidWc9ZmFsc2UgLURiX2x0bz1mYWxzZSAtRF9zeXN0ZW1kPWZhbHNlCisgJCh2b3B0X2Jv b2wgZ2lyIGdpcikgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkpIgogaG9zdG1ha2VkZXBlbmRzPSJnbGli LWRldmVsIGdub21lLWRvYy11dGlscyBncGVyZiBpbnRsdG9vbCBwa2ctY29uZmlnCi0gJCh2b3B0 X2lmIHZhbGEgdmFsYSkiCi1tYWtlZGVwZW5kcz0iZ251dGxzLWRldmVsIGd0ayszLWRldmVsIHBj cmUyLWRldmVsICQodm9wdF9pZiB2YWxhIHZhbGEtZGV2ZWwpIgotZGVwZW5kcz0idnRlIgorICQo dm9wdF9pZiBnaXIgdmFsYSkiCittYWtlZGVwZW5kcz0iZ251dGxzLWRldmVsIGd0ayszLWRldmVs IHBjcmUyLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCiBzaG9ydF9kZXNjPSJUZXJt aW5hbCB3aWRnZXQgd2l0aCBpbXByb3ZlZCBhY2Nlc3NpYmlsaXR5IGFuZCBJMThOIHN1cHBvcnQi CiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIsIExHUEwtMy4wLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9UZXJtaW5hbC9WVEUiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdnRlLyR7dmVyc2lvbiUuKn0vdnRlLSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09ZmViNzZlMTE4MWEzNTdkODYxMTJkNDQ3YTA4ZDEyN2UyMDgxNDM4 ZGY3NmVjZTgzMjQzYjE4NjA5ZGQ5ODIyYQorY2hlY2tzdW09NGQyZDI0NmVkNDdmMDhjYzczZjY0 NzFhYThlOWYzNzg5OThiN2QwZjdkY2IwYzQzM2YyOWRhNTgzOWRiYjAxNgogCiAjIFN1cHByZXNz IHdhcm5pbmdzIGFzIGVycm9ycyBmb3IgTlVMTCBmb3JtYXQgc3RyaW5ncyAobXVzbCBsaWJjKQog Q1hYRkxBR1M9Ii1Xbm8tZXJyb3I9Zm9ybWF0PSIKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMK LWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFs YSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBw cmVfYnVpbGQoKSB7CiAJZXhwb3J0IEdJUl9FWFRSQV9MSUJTX1BBVEg9IiR7d3Jrc3JjfS9zcmMv LmxpYnMiCkBAIC0zOCw4ICszNyw2IEBAIHZ0ZTMtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUg InVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZt b3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIg XTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDE5NDFhZjgx NjQzOTc5ZmQ4MDhiNmE1NGIxMWUwMDVlMzRiYmY1YjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEz IEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjIvMTAyXSBnbm9tZS10 ZXJtaW5hbDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLXRlcm1pbmFsL3Rl bXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXRlcm1pbmFsL3RlbXBsYXRl IGIvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZQppbmRleCBiZjNkNWJjZGQ0Mi4uYTQx YzhlMTJkMzYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtdGVybWluYWwnCiBwa2duYW1lPWdub21lLXRlcm1pbmFs Ci12ZXJzaW9uPTMuMzYuMS4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMgLS13aXRo LW5hdXRpbHVzLWV4dGVuc2lvbiIKIGhvc3RtYWtlZGVwZW5kcz0iYXBwZGF0YS10b29scyBnbGli LWRldmVsIGludGx0b29sIGl0c3Rvb2wKLSBwa2ctY29uZmlnIgorIHBrZy1jb25maWcgZG9jYm9v ay14c2wgbGlieHNsdCIKIG1ha2VkZXBlbmRzPSJkY29uZi1kZXZlbCBnbm9tZS1zaGVsbCBnc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsCiAgbmF1dGlsdXMtZGV2ZWwgdnRlMy1kZXZlbCIK IGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyIKQEAgLTEzLDggKzEzLDggQEAgc2hvcnRfZGVz Yz0iR05PTUUgdGVybWluYWwgZW11bGF0b3IgYXBwbGljYXRpb24iCiBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciwgR0ZETC0xLjMtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMv VGVybWluYWwiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb246 MDo0fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZjNkNzA4YTFlNzZk NzdjMWM4NWIxMjZmNmUwMDMyMjBhMTVkNGE0NmE1MGZkODA3MGUxYTNhYWJlNjc4YTM3NgorZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09MGEwZmM3YThiMzgzYzZmZmQ2MTQ2OWJlMWRl YTViYTYzY2ZmYWQ4MTI5MjE3ODBlN2ZhZDQwYzJlMmFlNTRmNQogbGliMzJkaXNhYmxlZD15ZXMK IAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCgpGcm9tIDQ1MmIzMDJkYTEyNGYwNmEwNzBm NTYyMGQzNzNmOTc0MTFjNGExY2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjMvMTAyXSBnbm9tZS1nZXR0aW5nLXN0YXJ0 ZWQtZG9jczogdXBkYXRlIHRvIDMuMzYuMgoKLS0tCiBzcmNwa2dzL2dub21lLWdldHRpbmctc3Rh cnRlZC1kb2NzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZ2V0dGluZy1z dGFydGVkLWRvY3MvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWdldHRpbmctc3RhcnRlZC1kb2Nz L3RlbXBsYXRlCmluZGV4IDViZWM5MzQ5MGJhLi5iZWQ5YjY5NjE2MiAxMDA2NDQKLS0tIGEvc3Jj cGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLWdldHRpbmctc3RhcnRlZC1kb2NzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MnCiBwa2duYW1lPWdub21l LWdldHRpbmctc3RhcnRlZC1kb2NzCi12ZXJzaW9uPTMuMzQuMAordmVyc2lvbj0zLjM2LjIKIHJl dmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTEs NCArMTEsNCBAQCBsaWNlbnNlPSJDQy1CWS1TQS0zLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRs YWIuZ25vbWUub3JnL0dOT01FL2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzIgogI2NoYW5nZWxv Zz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWdldHRpbmctc3RhcnRlZC1k b2NzL3Jhdy9tYXN0ZXIvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWY3 MGNlMmNhMjNhZDc4NjIxNWYzYzkyZWM4NTc4M2UzYWFiZWQwN2U0Zjc4NzAwZmEyN2Y5YjJjZjc2 ZTAzZGIKK2NoZWNrc3VtPTA0OTRiODkxM2E5NDZiNjQ1MDUzNmUxMjBjMTU0YWJkMjkyMzhlYmJh MmY1MjczNDU5MmIxZjY0NWU1MjFkYzYKCkZyb20gYjA4MTUwM2NiZmI0MzAzMDIwZmZkMDdlZGY1 ZGNiYjdmYWRhMTdhNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDA2NC8xMDJdIGdub21lLXVzZXItZG9jczogdXBkYXRlIHRv IDMuMzguMCwgZHJvcCBub2FyY2gKCi0tLQogc3JjcGtncy9nbm9tZS11c2VyLWRvY3MvdGVtcGxh dGUgfCA1ICsrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUKaW5kZXggNGNiNTUzOTZlMzcuLmY5OTQyZTI0 ODQzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZQpAQCAtMSw4ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2dub21lLXVzZXItZG9jcycKIHBrZ25hbWU9Z25vbWUtdXNlci1kb2NzCi12 ZXJzaW9uPTMuMzQuMAordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKLWFyY2hzPW5vYXJjaAog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1j b25maWcgaXRzdG9vbCBnbm9tZS1kb2MtdXRpbHMiCiBtYWtlZGVwZW5kcz0ieWVscCIKQEAgLTEz LDQgKzEyLDQgQEAgbGljZW5zZT0iQ0MtQlktMy4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHVi LmNvbS9HTk9NRS9nbm9tZS11c2VyLWRvY3MiCiAjY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRo dWJ1c2VyY29udGVudC5jb20vR05PTUUvZ25vbWUtdXNlci1kb2NzL21hc3Rlci9ORVdTIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09OGY5OTA3ZmYxNWZmZjk3ZGE3NWVjZTY0NWNj ODY3NjY3MDNhYzU0ZDcxNmQyNTU2M2JhNjdmZmVkMWFmMjRlZAorY2hlY2tzdW09MzhkM2RiNWI1 ZGM1OTEyODEyYTJjNmNiMjk3NjViZmIzOTI0MmNlZGNkN2VlMzQ3ZGY5OGZjYTc3N2RjZWU4YQoK RnJvbSA3ODM5YzVjMGVkZjkwOTZmMjkwYWNmMTYwYzdmYmFmOGNkY2M3ZDkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDY1 LzEwMl0gZ25vbWUtZXB1Yi10aHVtYm5haWxlcjogdXBkYXRlIHRvIDEuNgoKLS0tCiBzcmNwa2dz L2dub21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9n bm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1lcHViLXRodW1i bmFpbGVyL3RlbXBsYXRlCmluZGV4IGIxNmU3MDU0NzVmLi5jNmUxYzAyYjlkMyAxMDA2NDQKLS0t IGEvc3JjcGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2dub21lLWVwdWItdGh1bWJuYWlsZXInCiBwa2duYW1lPWdub21lLWVwdWIt dGh1bWJuYWlsZXIKLXZlcnNpb249MS41Cit2ZXJzaW9uPTEuNgogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgpAQCAtMTAs NCArMTAsNCBAQCBtYWludGFpbmVyPSJBbGlmIFJhY2htYXdhZGkgPGFyY2hAc3Vib3NpdG8uY29t PiIKIGxpY2Vuc2U9IkdQTC0zIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93 c2UvZ25vbWUtZXB1Yi10aHVtYm5haWxlciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTMwODIxMGY1ODAwMjE5ZjY0Y2FlNDgyOGU1OWJiOGU2ZTRjNTNiODg4MDQ4Y2Y0ODcyMjFhZWI0 MzM3ZDc5MWEKK2NoZWNrc3VtPWI1MDI0MjBkOWIwMmVhMGIwZmM3OTg2ZWY1YTA5MWExMmIyMjg2 YmUxNGZlZDllNDc1OTRmZTlmYTBjNTg5OGUKCkZyb20gNDhhOTUxMzkzZmI0ODMyZjM1M2U3ZTZl N2FmYzM5MjM1MTRhNjlkNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA2Ni8xMDJdIGdub21lLWJvb2tzOiBidW1wCgotLS0K IHNyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJv b2tzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZQppbmRleCAxMTRiOWUw MzRjMi4uMWQ0OTc0ZmUxODMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJvb2tzJwogcGtnbmFtZT1nbm9tZS1ib29rcwogdmVy c2lvbj0zLjM0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hlbHBlcj0iZ2lyIgog YnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyB2YWxhIGdsaWIt ZGV2ZWwgbGlicnN2ZyBkb2Nib29rLXhzbCBsaWJ4c2x0CgpGcm9tIDBlNDgwMGQwMDU1YjcwZGQ2 MDA3ZGY1YzlmYmEyNGUyMjYzMmM5YzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjcvMTAyXSBnbm9tZS1jaGFyYWN0ZXJz OiBidW1wCgotLS0KIHNyY3BrZ3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZSB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY2hhcmFj dGVycy90ZW1wbGF0ZQppbmRleCA4OTg2OGY0YmMwNC4uYWMyNjRlNTFhNmEgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNo YXJhY3RlcnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn bm9tZS1jaGFyYWN0ZXJzJwogcGtnbmFtZT1nbm9tZS1jaGFyYWN0ZXJzCiB2ZXJzaW9uPTMuMzQu MAotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBl cj0iZ2lyIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdqcyBnbGliLWRldmVsIGl0c3Rvb2wg cGtnLWNvbmZpZyIKCkZyb20gZDYwYTRlZmJlMWZjZjkxZGNmOTFkZmZiOTNkZDcyMTQ4YzM1MDli MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVj dDogW1BBVENIIDA2OC8xMDJdIGdub21lLWRvY3VtZW50czogYnVtcAoKLS0tCiBzcmNwa2dzL2du b21lLWRvY3VtZW50cy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRz L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxhdGUKaW5kZXggOTdiNTNk NjM1ZDcuLjdlNDViODI1ZTcxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWRvY3VtZW50cy90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWRvY3VtZW50cycKIHBrZ25hbWU9Z25v bWUtZG9jdW1lbnRzCiB2ZXJzaW9uPTMuMzQuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVp bGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJkb2Ni b29rLXhzbCBnZXR0ZXh0IGl0c3Rvb2wgcGtnLWNvbmZpZyBnbGliLWRldmVsIGxpYnhzbHQgZ2Rr LXBpeGJ1ZgoKRnJvbSBlNGE2ZjQ0OTU0ZDkwOWEwYmY1NmQ0YWNiNzdkYWUwNmNkY2UxOWYyIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDY5LzEwMl0gZ25vbWUtZm9udC12aWV3ZXI6IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9t ZS1mb250LXZpZXdlci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3 ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWZvbnQtdmlld2VyL3RlbXBsYXRlCmluZGV4IDZk MDM1MzY2ZDQ0Li5mNzRmY2JjYjAwMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1mb250LXZp ZXdlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWZvbnQtdmlld2VyL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtZm9udC12aWV3ZXInCiBw a2duYW1lPWdub21lLWZvbnQtdmlld2VyCiB2ZXJzaW9uPTMuMzQuMAotcmV2aXNpb249MQorcmV2 aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBn bGliLWRldmVsIgogbWFrZWRlcGVuZHM9ImZvbnRjb25maWctZGV2ZWwgZnJlZXR5cGUtZGV2ZWwg Z2xpYi1kZXZlbCBndGsrMy1kZXZlbAoKRnJvbSA0MGVhOTk5Y2QxOTgyM2FmOTI1NGE0ZDBkNjgx YWI4YTE0YWQ5ZTMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcwLzEwMl0gdG90ZW06IHVwZGF0ZSB0byAzLjM4LjAKCi0t LQogc3JjcGtncy90b3RlbS90ZW1wbGF0ZSB8IDE2ICsrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy90b3RlbS90ZW1wbGF0ZSBiL3NyY3BrZ3MvdG90ZW0vdGVtcGxhdGUKaW5kZXggODE1MjJi MzE0ODguLjU2ZmIxNTI3MGZiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3RvdGVtL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvdG90ZW0vdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTQgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3RvdGVtJwogcGtnbmFtZT10b3RlbQotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249 My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIi CiBjb25maWd1cmVfYXJncz0iLURlbmFibGUtcHl0aG9uPW5vIC1EZW5hYmxlLW5hdXRpbHVzPXll cwogIC1EZW5hYmxlLWludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB5ZXMgbm8pCi0gLURlbmFi bGUtdmFsYT0kKHZvcHRfaWYgdmFsYSB5ZXMgbm8pIgorIC1EZW5hYmxlLXZhbGE9JCh2b3B0X2lm IGdpciB5ZXMgbm8pIgogaG9zdG1ha2VkZXBlbmRzPSJnbm9tZS1kb2MtdXRpbHMgaW50bHRvb2wg aXRzdG9vbCBwa2ctY29uZmlnCi0gJCh2b3B0X2lmIHZhbGEgdmFsYSkgZ3N0cmVhbWVyMSBnc3Qt cGx1Z2lucy1iYXNlMSBnc3QtcGx1Z2lucy1nb29kMQorICQodm9wdF9pZiBnaXIgdmFsYSkgZ3N0 cmVhbWVyMSBnc3QtcGx1Z2lucy1iYXNlMSBnc3QtcGx1Z2lucy1nb29kMQogIGdsaWItZGV2ZWwi CiAjIFhYWCBtaXNzaW5nIGxpcmMgcGx1Z2luLgogbWFrZWRlcGVuZHM9ImNsdXR0ZXItZ3N0My1k ZXZlbCBjbHV0dGVyLWd0ay1kZXZlbCBkYnVzLWdsaWItZGV2ZWwKQEAgLTIxLDE2ICsyMSwxOCBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iTEdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly93aWtpLmdub21lLm9yZy9BcHBzL1ZpZGVvcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTZiZjg5YWIwOTZkZmM1NjRmMjYwOTc2ZTQ4NDE2NWYwOWJkODg2NDM0ZDE4NDQxMGQy Zjk0NGJmYmE2MTFhMDkKK2NoZWNrc3VtPWE4MjlmMmI1YWEwNDM1YWE0MzE4MTYxNTMxOTNkNTU0 N2ZhZGU5ZWI4ZDQ4OWY1NmJlMjJhZmJlNjUxYzQzMmYKIAogIyBYWFggeHVscnVubmVyIHBsdWdp bi4KICMgWFhYIHJlZW5hYmxlIHB5dGhvbiBwbHVnaW4gaWYgcHlsaW50IHBrZyBleGlzdHMuCiAj cHljb21waWxlX2RpcnM9InVzci9saWIvdG90ZW0vcGx1Z2lucyIKIAotZGlzYWJsZV9wYXJhbGxl bF9idWlsZD15ZXMKK2RvX2NoZWNrKCkgeworCToKK30KIAotYnVpbGRfb3B0aW9ucz0iZ2lyIHZh bGEiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2ly IgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGxpYnRvdGVtX3BhY2thZ2UoKSB7CiAJ c2hvcnRfZGVzYys9IiAtIHJ1bnRpbWUgbGlicmFyeSIKCkZyb20gOWRiNzdhNTdhYzIyZDBjNDdk MDc3ZDM4YTY5NzA5MzNhMmFiYTExMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3MS8xMDJdIGdub21lLXNjcmVlbnNhdmVy OiBidW1wICsgZml4IGJ1aWxkCgotLS0KIHNyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hl cy9idWlsZC5wYXRjaCB8IDEyICsrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZl ci90ZW1wbGF0ZSAgICAgICAgICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUt c2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25v bWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtc2NyZWVu c2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uNmRjZGJlN2RkN2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLXNj cmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorLS0tIHNyYy9n cy1tYW5hZ2VyLmMKKysrKyBzcmMvZ3MtbWFuYWdlci5jCitAQCAtODIwLDggKzgyMCw3IEBAIGFw cGx5X2JhY2tncm91bmRfdG9fd2luZG93IChHU01hbmFnZXIgKm1hbmFnZXIsCisgICAgICAgICBz dXJmYWNlID0gZ25vbWVfYmdfY3JlYXRlX3N1cmZhY2UgKG1hbmFnZXItPnByaXYtPmJnLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGtfd2luZG93LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSk7CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCk7CisgICAgICAgICBnc193aW5kb3df c2V0X2JhY2tncm91bmRfc3VyZmFjZSAod2luZG93LCBzdXJmYWNlKTsKKyAgICAgICAgIGNhaXJv X3N1cmZhY2VfZGVzdHJveSAoc3VyZmFjZSk7CisgfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1zY3JlZW5zYXZlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxh dGUKaW5kZXggMzYzZmNmMTJlMTAuLmMzYTcwY2ZlZjdjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2du b21lLXNjcmVlbnNhdmVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zY3Jl ZW5zYXZlcicKIHBrZ25hbWU9Z25vbWUtc2NyZWVuc2F2ZXIKIHZlcnNpb249My42LjEKLXJldmlz aW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9h cmdzPSItLWVuYWJsZS1jb21waWxlLXdhcm5pbmdzPW1pbmltdW0iCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgYXV0b21ha2UgaW50bHRvb2wgZ2xpYi1kZXZlbCIKCkZyb20gYzcxYzdmZTJh YTVmM2QwMTJkMTdjNjQ2NWE5YmMxNGNmNjFkYjI0ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMg QXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3Mi8xMDJdIGdub21lLWNs b2NrczogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0 ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlIGIvc3JjcGtn cy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUKaW5kZXggM2UwNDliNDJmYjEuLjcyZjcxZjkyNjhjIDEw MDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLWNsb2Nrcy90ZW1wbGF0ZQpAQCAtMSwxMiArMSwxMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnZ25vbWUtY2xvY2tzJwogcGtnbmFtZT1nbm9tZS1jbG9ja3MKLXZlcnNpb249My4zNi4wCit2 ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHls ZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGl0c3Rvb2wgZ2xp Yi1kZXZlbCB2YWxhIgogbWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgdmFsYS1kZXZlbCBnbm9tZS1k ZXNrdG9wLWRldmVsCi0gbGliZ3dlYXRoZXItZGV2ZWwgbGliaGFuZHktZGV2ZWwgbGlibm90aWZ5 LWRldmVsIGdzb3VuZC1kZXZlbAorIGxpYmd3ZWF0aGVyLWRldmVsIGxpYmhhbmR5MS1kZXZlbCBs aWJub3RpZnktZGV2ZWwgZ3NvdW5kLWRldmVsCiAgZ2VvY29kZS1nbGliLWRldmVsIGRlc2t0b3At ZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUKICBnZW9jbHVlMi1kZXZlbCIKIGRlcGVuZHM9 ImRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUiCkBAIC0xNSw0ICsxNSw0IEBA IG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNl PSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBw cy9DbG9ja3MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00Yzk3OGIwYzdmN2I5 ZGFlYmQyNzJkMDE3NWY4YTU0NDE1ZTIwNzhmMTM0ZjQ4YWRkNWNmMjQzNjJlZWY0OWM2CitjaGVj a3N1bT1kOTU2Y2IwNTBmMWNhNDZiNDQzNTE5ZTRmNTlhYjIwNDI5MGQ2MjcwZGVjOTFjNzRiNTM4 OTVhZWNjNzk0NDM4CgpGcm9tIGQ4ZDBiYjE3MWYxOGJiNzI3N2VlYzEwMTU2ZGIzZjczNThhMTRk MjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwNzMvMTAyXSBlcGlwaGFueTogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNw a2dzL2VwaXBoYW55L3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VwaXBoYW55 L3RlbXBsYXRlIGIvc3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZQppbmRleCA1ZDZhYzZhNjM3ZC4u ZjIzYjIzYzZmYmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZQpAQCAtMSwxOSArMSwxOSBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZXBpcGhhbnknCiBwa2duYW1lPWVwaXBoYW55Ci12ZXJzaW9uPTMuMzYuMgordmVy c2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9 bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGRpc3RyaWJ1dG9yX25hbWU9Vm9pZExpbnV4IC1EdW5p dF90ZXN0cz1kaXNhYmxlZCIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0 c3Rvb2wgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1kZXZlbCBhdmFo aS1nbGliLWxpYnMtZGV2ZWwgZ2NyLWRldmVsCi0gZ25vbWUtZGVza3RvcC1kZXZlbCBqc29uLWds aWItZGV2ZWwgbGliZGF6emxlLWRldmVsIGxpYmhhbmR5LWRldmVsCisgZ25vbWUtZGVza3RvcC1k ZXZlbCBqc29uLWdsaWItZGV2ZWwgbGliZGF6emxlLWRldmVsIGxpYmhhbmR5MS1kZXZlbAogIGxp Ym5vdGlmeS1kZXZlbCBsaWJzZWNyZXQtZGV2ZWwgbGlic291cC1nbm9tZS1kZXZlbCBsaWJ3bmNr LWRldmVsIGxpYnhzbHQtZGV2ZWwKLSBuZXR0bGUtZGV2ZWwgbnNzLWRldmVsIHdlYmtpdDJndGst ZGV2ZWwiCisgbmV0dGxlLWRldmVsIG5zcy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIGxpYnBvcnRh bC1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUg aXNvLWNvZGVzIHdlYmtpdDJndGsiCiBzaG9ydF9kZXNjPSJJbnR1aXRpdmUgR05PTUUgd2ViIGJy b3dzZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL0FwcHMvV2ViIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzJlNjc2YWEw ZmUyMTE4MDlhNWU3ZThhN2U0NjFkMTgyODkwZjI1M2M1M2Y0NjEwZjI2MTAwOTRiNmZiZmI1ZQor Y2hlY2tzdW09MjI4ZTgyMGQ3YzdmODU0MWU0ZGI1ZWNjNmM4MWI1YTg4YmRlOWIxZWExN2NhZTRh NWYzODQ0NmY3OTg5YzU1MgoKRnJvbSBjZjJhNTliYjU2OTE0ZDc5ZjY0MjdiNDI0NDhkYjIyZGIy NWI0ODFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDc0LzEwMl0gZ25vbWUtY29udGFjdHM6IHVwZGF0ZSB0byAzLjM3LjIK Ci0tLQogc3JjcGtncy9nbm9tZS1jb250YWN0cy90ZW1wbGF0ZSB8IDEzICsrKysrKy0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1jb250YWN0cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY29u dGFjdHMvdGVtcGxhdGUKaW5kZXggMmE4MjEzYTcyNDAuLmFhNGVmOTQwMTM2IDEwMDY0NAotLS0g YS9zcmNwa2dzL2dub21lLWNvbnRhY3RzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY29u dGFjdHMvdGVtcGxhdGUKQEAgLTEsMTYgKzEsMTUgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2du b21lLWNvbnRhY3RzJwogcGtnbmFtZT1nbm9tZS1jb250YWN0cwotdmVyc2lvbj0zLjM0LjAKLXJl dmlzaW9uPTIKLXdya3NyYz0iZ25vbWUtY29udGFjdHMtJHt2ZXJzaW9uJS4qfSIKK3ZlcnNpb249 My4zNy4yCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotaG9zdG1ha2VkZXBlbmRzPSJk b2Nib29rLXhzbCBnZXR0ZXh0IGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEiCito b3N0bWFrZWRlcGVuZHM9ImRvY2Jvb2steHNsIGZvbGtzLWRldmVsIGdldHRleHQgZ2xpYi1kZXZl bCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSIKIG1ha2VkZXBlbmRzPSJjaGVlc2UtZGV2ZWwgZm9s a3MtZGV2ZWwgZ2VvY29kZS1nbGliLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwKLSBsaWJjaGFt cGxhaW4tZGV2ZWwgbGlibm90aWZ5LWRldmVsIHZhbGEtZGV2ZWwgbGliaGFuZHktZGV2ZWwiCisg bGliY2hhbXBsYWluLWRldmVsIGxpYm5vdGlmeS1kZXZlbCB2YWxhLWRldmVsIGxpYmhhbmR5MS1k ZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyIKIHNob3J0X2Rlc2M9IkdOT01FIGNv bnRhY3RzIG1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL0FwcHMvQ29udGFjdHMiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtw a2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9uJS4qfS50YXIueHoiCi1j aGVja3N1bT05OTYwMmVjOGQ2NjBjMWYzYzkyY2FlNjM1NmY2NGY3MmZiNmRiNThlNTViY2UyN2E1 OTkzMzBiZjdiNjIyZjEyCitkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT0xZDM0Njlk NWU5MGYyM2QxMjlkMTI3NmIyZjliODg1NDU5ZjNkN2I0MzA1NGNkMDk3NTliODVhYzc2YzkxOGI0 CgpGcm9tIGVhMjVjOTA4M2RkYTliN2Y0YTQ0NWUwMzRiY2JlMDUyMTczZjJhMDggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw NzUvMTAyXSBnbm9tZS1waG90b3M6IHVwZGF0ZSB0byAzLjM3LjkxLjEsIHVzZSB0cmFja2VyMwoK LS0tCiBzcmNwa2dzL2dub21lLXBob3Rvcy9wYXRjaGVzL3RyYWNrZXIzLnBhdGNoIHwgNDI1NCAr KysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZSAgICAgICAg ICAgICAgIHwgICAxMSArLQogMiBmaWxlcyBjaGFuZ2VkLCA0MjYwIGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1waG90b3MvcGF0 Y2hlcy90cmFja2VyMy5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3Bh dGNoZXMvdHJhY2tlcjMucGF0Y2ggYi9zcmNwa2dzL2dub21lLXBob3Rvcy9wYXRjaGVzL3RyYWNr ZXIzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40MDZkY2Ez MGZkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNoZXMvdHJh Y2tlcjMucGF0Y2gKQEAgLTAsMCArMSw0MjU0IEBACitGcm9tIGI0YThkZTFlZjc5Yzk0YzFjMTFi NzMwNzg3MTA4ZjMwNWM5NjJlMzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTYW0g VGh1cnNmaWVsZCA8c2FtQGFmdWVyYS5tZS51az4KK0RhdGU6IFdlZCwgMjYgQXVnIDIwMjAgMDE6 NTc6NDYgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzRdIHBob3Rvcy10cmFja2VyLWNvbnRyb2xs ZXI6IExhYmVsIHVuaXQgb2YgdGltaW5nCisgbWVhc3VyZW1lbnRzCisKK090aGVyd2lzZSwgaXQn cyBub3QgY2xlYXIgaWYgdGhlc2UgYXJlIHRpbWluZ3Mgb3Igc29tZSBraW5kIG9mIElECitudW1i ZXIuCistLS0KKyBzcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jIHwgNCArKy0tCisgMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBhL3NyYy9waG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMgYi9zcmMvcGhvdG9zLXRyYWNrZXIt Y29udHJvbGxlci5jCitpbmRleCBhMDJkYjA3Ny4uM2E2MmNmMmQgMTAwNjQ0CistLS0gYS9zcmMv cGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jCisrKysgYi9zcmMvcGhvdG9zLXRyYWNrZXItY29u dHJvbGxlci5jCitAQCAtMjM3LDcgKzIzNyw3IEBAIHBob3Rvc190cmFja2VyX2NvbnRyb2xsZXJf Y3Vyc29yX25leHQgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzCisg ICAgIH0KKyAKKyAgIG5vdyA9IGdfZ2V0X21vbm90b25pY190aW1lICgpOworLSAgcGhvdG9zX2Rl YnVnIChQSE9UT1NfREVCVUdfVFJBQ0tFUiwgIlF1ZXJ5IEN1cnNvcjogJSIgR19HSU5UNjRfRk9S TUFULCAobm93IC0gcHJpdi0+bGFzdF9xdWVyeV90aW1lKSAvIDEwMDAwMDApOworKyAgcGhvdG9z X2RlYnVnIChQSE9UT1NfREVCVUdfVFJBQ0tFUiwgIlF1ZXJ5IEN1cnNvcjogJSIgR19HSU5UNjRf Rk9STUFUICIgc2Vjb25kcyIsIChub3cgLSBwcml2LT5sYXN0X3F1ZXJ5X3RpbWUpIC8gMTAwMDAw MCk7CisgCisgICBwaG90b3NfaXRlbV9tYW5hZ2VyX2FkZF9pdGVtX2Zvcl9tb2RlIChQSE9UT1Nf SVRFTV9NQU5BR0VSIChwcml2LT5pdGVtX21uZ3IpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUEhPVE9TX1RSQUNLRVJfQ09OVFJPTExFUl9HRVRfQ0xBU1MgKHNl bGYpLT5iYXNlX2l0ZW1fdHlwZSwKK0BAIC0zNDYsNyArMzQ2LDcgQEAgcGhvdG9zX3RyYWNrZXJf Y29udHJvbGxlcl9zZXRfcXVlcnlfc3RhdHVzIChQaG90b3NUcmFja2VyQ29udHJvbGxlciAqc2Vs ZiwgZ2Jvb2wKKyAgIGVsc2UKKyAgICAgeworICAgICAgIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RF QlVHX1RSQUNLRVIsCistICAgICAgICAgICAgICAgICAgICAiUXVlcnkgRWxhcHNlZDogJSIgR19H SU5UNjRfRk9STUFULAorKyAgICAgICAgICAgICAgICAgICAgIlF1ZXJ5IEVsYXBzZWQ6ICUiIEdf R0lOVDY0X0ZPUk1BVCAiIHNlY29uZHMiLAorICAgICAgICAgICAgICAgICAgICAgKG5vdyAtIHBy aXYtPmxhc3RfcXVlcnlfdGltZSkgLyAxMDAwMDAwKTsKKyAgICAgICBwcml2LT5sYXN0X3F1ZXJ5 X3RpbWUgPSAwOworICAgICB9CistLSAKK0dpdExhYgorCisKK0Zyb20gN2M5OGE4ODRiYTZhMjY3 OTVlYTI1YTg3ODAwMDJhYzEwMTAzNjg4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IFNhbSBUaHVyc2ZpZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgorRGF0ZTogV2VkLCAyNyBNYXkgMjAy MCAxMzowNzo1OCArMDIwMAorU3ViamVjdDogW1BBVENIIDIvNF0gRml4IGJ1aWxkIGZhaWx1cmUg ZHVlIHRvIHVuZGVmaW5lZCBNX1BJIGNvbnN0YW50CisKK1RoZSA8bWF0aC5oPiBoZWFkZXIgbmVl ZHMgdG8gYmUgaW5jbHVkZWQuCisKK1ByZXZpb3VzbHkgSSBzdXBwb3NlIGxpYnRyYWNrZXItc3Bh cnFsLmggcHVsbGVkIHRoaXMgaW4uCistLS0KKyBzcmMvcGhvdG9zLXV0aWxzLmMgfCAxICsKKyAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mt dXRpbHMuYyBiL3NyYy9waG90b3MtdXRpbHMuYworaW5kZXggNDAxZjUyYmEuLmM2MzgyOTdiIDEw MDY0NAorLS0tIGEvc3JjL3Bob3Rvcy11dGlscy5jCisrKysgYi9zcmMvcGhvdG9zLXV0aWxzLmMK K0BAIC0zMCw2ICszMCw3IEBACisgI2luY2x1ZGUgPGdsaWIuaD4KKyAjaW5jbHVkZSA8dHJhY2tl ci1zcGFycWwuaD4KKyAjaW5jbHVkZSA8bGliZ2QvZ2QuaD4KKysjaW5jbHVkZSA8bWF0aC5oPgor IAorICNpbmNsdWRlICJwaG90b3MtYXBwbGljYXRpb24uaCIKKyAjaW5jbHVkZSAicGhvdG9zLWRl dmljZS1pdGVtLmgiCistLSAKK0dpdExhYgorCisKK0Zyb20gMGU0YmQ3YmJjODA1Njc0M2E4ZWEw N2FiMzcxM2FkNTQzYzAwZDQ3OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNhbSBU aHVyc2ZpZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgorRGF0ZTogU3VuLCA3IEp1biAyMDIwIDIxOjUz OjIwICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMy80XSBHZW5lcmF0ZSBxdWVyaWVzIHVzaW5nIFNQ QVJRTCB0ZW1wbGF0ZXMKKworVGhlIGNvZGUgdG8gZ2VuZXJhdGUgU1BBUlFMIHF1ZXJpZXMgd2Fz IHNwbGl0IGFjcm9zcyBtYW55IGRpZmZlcmVudAorc291cmNlIGZpbGVzLCBtYWtpbmcgaXQgZGlm ZmljdWx0IHRvIG1ha2UgYmlnIGNoYW5nZXMuIE5vdyB0aGUKK3F1ZXJpZXMgYXJlIHdyaXR0ZW4g b3V0IGFzIHRlbXBsYXRlcyBhbmQgd2UgdXNlIHRlbXBsYXRlIHN1YnN0aXR1dGlvbgordG8gYnVp bGQgdGhlIFNQQVJRTCB0aGF0IHdlIHNlbmQgdG8gVHJhY2tlci4KKy0tLQorIHNyYy9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKworIHNyYy9waG90b3MtYmFz ZS1tYW5hZ2VyLmMgICAgICAgICAgICAgICAgICAgfCAgMTUgKysKKyBzcmMvcGhvdG9zLWJhc2Ut bWFuYWdlci5oICAgICAgICAgICAgICAgICAgIHwgICA0ICsKKyBzcmMvcGhvdG9zLWZpbHRlcmFi bGUuYyAgICAgICAgICAgICAgICAgICAgIHwgICA4IC0KKyBzcmMvcGhvdG9zLWZpbHRlcmFibGUu aCAgICAgICAgICAgICAgICAgICAgIHwgICAzIC0KKyBzcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIu YyAgICAgICAgICAgICAgICAgIHwgMjA3ICsrKysrKysrKy0tLS0tLS0tLS0tCisgc3JjL3Bob3Rv cy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmMgICAgICAgICAgICB8ICA1OSArLS0tLS0KKyBzcmMvcGhv dG9zLXNlYXJjaC10eXBlLmMgICAgICAgICAgICAgICAgICAgIHwgIDY3ICsrKy0tLS0KKyBzcmMv cGhvdG9zLXNlYXJjaC10eXBlLmggICAgICAgICAgICAgICAgICAgIHwgICA2ICstCisgc3JjL3Bo b3Rvcy1zcGFycWwtdGVtcGxhdGUuYyAgICAgICAgICAgICAgICB8IDE4NyArKysrKysrKysrKysr KysrKysKKyBzcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oICAgICAgICAgICAgICAgIHwgIDM4 ICsrKysKKyBzcmMvcGhvdG9zLmdyZXNvdXJjZS54bWwgICAgICAgICAgICAgICAgICAgIHwgICA0 ICsKKyBzcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlICAgICAgICAgICAgIHwgIDMxICsr KworIHNyYy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZSAgICAgfCAgMTQgKysK KyBzcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlIHwgIDEyICsrCisg c3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSAgICAgICAgICB8ICAxMSArKworIDE2 IGZpbGVzIGNoYW5nZWQsIDQ0NiBpbnNlcnRpb25zKCspLCAyMjUgZGVsZXRpb25zKC0pCisgY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmMKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuaAorIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZQorIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy9xdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUKKworZGlmZiAtLWdp dCBhL3NyYy9tZXNvbi5idWlsZCBiL3NyYy9tZXNvbi5idWlsZAoraW5kZXggOTkxOWYwY2YuLmI1 YjI3NTljIDEwMDY0NAorLS0tIGEvc3JjL21lc29uLmJ1aWxkCisrKysgYi9zcmMvbWVzb24uYnVp bGQKK0BAIC0xOTUsNiArMTk1LDcgQEAgc291cmNlcyA9IGNvbW1vbl9zb3VyY2VzICsgZmlsZXMo CisgICAncGhvdG9zLXNvdXJjZS5jJywKKyAgICdwaG90b3Mtc291cmNlLW1hbmFnZXIuYycsCisg ICAncGhvdG9zLXNvdXJjZS1ub3RpZmljYXRpb24uYycsCisrICAncGhvdG9zLXNwYXJxbC10ZW1w bGF0ZS5jJywKKyAgICdwaG90b3Mtc3Bpbm5lci1ib3guYycsCisgICAncGhvdG9zLXRodW1ibmFp bC1mYWN0b3J5LmMnLAorICAgJ3Bob3Rvcy10b29sLmMnLAorQEAgLTI5MCw2ICsyOTEsMTAgQEAg cmVzb3VyY2VfZGF0YSA9IGZpbGVzKAorICAgJ3Bob3Rvcy1zZWxlY3Rpb24tdG9vbGJhci51aScs CisgICAncGhvdG9zLXNoYXJlLWRpYWxvZy51aScsCisgICAncGhvdG9zLXpvb20tY29udHJvbHMu dWknLAorKyAgJ3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZScsCisrICAncXVlcmllcy9jb2xs ZWN0aW9ucy5zcGFycWwudGVtcGxhdGUnLAorKyAgJ3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNw YXJxbC50ZW1wbGF0ZScsCisrICAncXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlJywKKyAp CisgCisgc291cmNlcyArPSBnbm9tZS5jb21waWxlX3Jlc291cmNlcygKK2RpZmYgLS1naXQgYS9z cmMvcGhvdG9zLWJhc2UtbWFuYWdlci5jIGIvc3JjL3Bob3Rvcy1iYXNlLW1hbmFnZXIuYworaW5k ZXggZDQ5ZDE5YTUuLjA1MjYzOGQ1IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1iYXNlLW1hbmFn ZXIuYworKysrIGIvc3JjL3Bob3Rvcy1iYXNlLW1hbmFnZXIuYworQEAgLTI1MCw2ICsyNTAsMTIg QEAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZhdWx0X2dldF93aGVyZSAoUGhvdG9zQmFzZU1hbmFn ZXIgKnNlbGYsIGdpbnQgZmxhZ3MpCisgfQorIAorIAorK3N0YXRpYyBQaG90b3NTcGFycWxUZW1w bGF0ZSAqCisrcGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZhdWx0X2dldF9zcGFycWxfdGVtcGxhdGUg KFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50IGZsYWdzKQorK3sKKysgIHJldHVybiBOVUxM OworK30KKysKKyBzdGF0aWMgdm9pZAorIHBob3Rvc19iYXNlX21hbmFnZXJfZGVmYXVsdF9yZW1v dmVfb2JqZWN0X2J5X2lkIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgY29uc3QgZ2NoYXIgKmlk KQorIHsKK0BAIC00MzgsNiArNDQ0LDcgQEAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9jbGFzc19pbml0 IChQaG90b3NCYXNlTWFuYWdlckNsYXNzICpjbGFzcykKKyAgIGNsYXNzLT5nZXRfb2JqZWN0X2J5 X2lkID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZhdWx0X2dldF9vYmplY3RfYnlfaWQ7CisgICBj bGFzcy0+Z2V0X3ByZXZpb3VzX29iamVjdCA9IHBob3Rvc19iYXNlX21hbmFnZXJfZGVmYXVsdF9n ZXRfcHJldmlvdXNfb2JqZWN0OworICAgY2xhc3MtPmdldF93aGVyZSA9IHBob3Rvc19iYXNlX21h bmFnZXJfZGVmYXVsdF9nZXRfd2hlcmU7CisrICBjbGFzcy0+Z2V0X3NwYXJxbF90ZW1wbGF0ZSA9 IHBob3Rvc19iYXNlX21hbmFnZXJfZGVmYXVsdF9nZXRfc3BhcnFsX3RlbXBsYXRlOworICAgY2xh c3MtPnJlbW92ZV9vYmplY3RfYnlfaWQgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfcmVt b3ZlX29iamVjdF9ieV9pZDsKKyAgIGNsYXNzLT5zZXRfYWN0aXZlX29iamVjdCA9IHBob3Rvc19i YXNlX21hbmFnZXJfZGVmYXVsdF9zZXRfYWN0aXZlX29iamVjdDsKKyAKK0BAIC03MTQsNiArNzIx LDE0IEBAIHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3doZXJlIChQaG90b3NCYXNlTWFuYWdlciAq c2VsZiwgZ2ludCBmbGFncykKKyB9CisgCisgCisrUGhvdG9zU3BhcnFsVGVtcGxhdGUgKgorK3Bo b3Rvc19iYXNlX21hbmFnZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoUGhvdG9zQmFzZU1hbmFnZXIg KnNlbGYsIGdpbnQgZmxhZ3MpCisreworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKFBIT1RPU19J U19CQVNFX01BTkFHRVIgKHNlbGYpLCBOVUxMKTsKKysgIHJldHVybiBQSE9UT1NfQkFTRV9NQU5B R0VSX0dFVF9DTEFTUyAoc2VsZiktPmdldF9zcGFycWxfdGVtcGxhdGUgKHNlbGYsIGZsYWdzKTsK Kyt9CisrCisrCisgdm9pZAorIHBob3Rvc19iYXNlX21hbmFnZXJfcHJvY2Vzc19uZXdfb2JqZWN0 cyAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIEdIYXNoVGFibGUgKm5ld19vYmplY3RzKQorIHsK K2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLWJhc2UtbWFuYWdlci5oIGIvc3JjL3Bob3Rvcy1iYXNl LW1hbmFnZXIuaAoraW5kZXggOTlkMjAzZTkuLjA0Y2ZhN2RiIDEwMDY0NAorLS0tIGEvc3JjL3Bo b3Rvcy1iYXNlLW1hbmFnZXIuaAorKysrIGIvc3JjL3Bob3Rvcy1iYXNlLW1hbmFnZXIuaAorQEAg LTI0LDYgKzI0LDcgQEAKKyAjZGVmaW5lIFBIT1RPU19CQVNFX01BTkFHRVJfSAorIAorICNpbmNs dWRlIDxnbGliLW9iamVjdC5oPgorKyNpbmNsdWRlICJwaG90b3Mtc3BhcnFsLXRlbXBsYXRlLmgi CisgCisgR19CRUdJTl9ERUNMUworIAorQEAgLTQ2LDYgKzQ3LDcgQEAgc3RydWN0IF9QaG90b3NC YXNlTWFuYWdlckNsYXNzCisgICBnY2hhciAgICAgICAgICooKmdldF93aGVyZSkgICAgICAgICAg ICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgZ2ludCBmbGFncyk7CisgICB2b2lkICAgICAg ICAgICAoKnJlbW92ZV9vYmplY3RfYnlfaWQpICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwg Y29uc3QgZ2NoYXIgKmlkKTsKKyAgIGdib29sZWFuICAgICAgICgqc2V0X2FjdGl2ZV9vYmplY3Qp ICAgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBHT2JqZWN0ICpvYmplY3QpOworKyAgUGhv dG9zU3BhcnFsVGVtcGxhdGUgKigqZ2V0X3NwYXJxbF90ZW1wbGF0ZSkgKFBob3Rvc0Jhc2VNYW5h Z2VyICpzZWxmLCBnaW50IGZsYWdzKTsKKyAKKyAgIC8qIHNpZ25hbHMgKi8KKyAgIHZvaWQgICAg ICAgICAgICgqYWN0aXZlX2NoYW5nZWQpICAgICAgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxm LCBHT2JqZWN0ICpvYmplY3QpOworQEAgLTgwLDYgKzgyLDggQEAgY29uc3QgZ2NoYXIgICAgICAg ICpwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF90aXRsZSAgICAgICAgICAgICAgICAoUGhvdG9zQmFz ZU1hbmEKKyAKKyBnY2hhciAgICAgICAgICAgICAgKnBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3do ZXJlICAgICAgICAgICAgICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgZ2ludCBmbGFncyk7 CisgCisrUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3NwYXJx bF90ZW1wbGF0ZSAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxhZ3MpOworKwor IHZvaWQgICAgICAgICAgICAgICAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9wcm9jZXNzX25ld19vYmpl Y3RzICAgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBHSGFzaFRhYmxlICpuZXdfb2JqZWN0 cyk7CisgCisgdm9pZCAgICAgICAgICAgICAgICBwaG90b3NfYmFzZV9tYW5hZ2VyX3JlbW92ZV9v YmplY3QgICAgICAgICAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIEdPYmplY3QgKm9iamVj dCk7CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmMgYi9zcmMvcGhvdG9zLWZp bHRlcmFibGUuYworaW5kZXggMzYxYjFjMjkuLmFhYTQxMDljIDEwMDY0NAorLS0tIGEvc3JjL3Bo b3Rvcy1maWx0ZXJhYmxlLmMKKysrKyBiL3NyYy9waG90b3MtZmlsdGVyYWJsZS5jCitAQCAtNjks MTQgKzY5LDYgQEAgcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X2lkIChQaG90b3NGaWx0ZXJhYmxlICpz ZWxmKQorIH0KKyAKKyAKKy1nY2hhciAqCistcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X3doZXJlIChQ aG90b3NGaWx0ZXJhYmxlICpzZWxmKQorLXsKKy0gIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChQSE9U T1NfSVNfRklMVEVSQUJMRSAoc2VsZiksIE5VTEwpOworLSAgcmV0dXJuIFBIT1RPU19GSUxURVJB QkxFX0dFVF9JRkFDRSAoc2VsZiktPmdldF93aGVyZSAoc2VsZik7CistfQorLQorLQorIGdib29s ZWFuCisgcGhvdG9zX2ZpbHRlcmFibGVfaXNfc2VhcmNoX2NyaXRlcmlvbiAoUGhvdG9zRmlsdGVy YWJsZSAqc2VsZikKKyB7CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmggYi9z cmMvcGhvdG9zLWZpbHRlcmFibGUuaAoraW5kZXggZTc2OGJjYTAuLjhhMzQxNWZjIDEwMDY0NAor LS0tIGEvc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmgKKysrKyBiL3NyYy9waG90b3MtZmlsdGVyYWJs ZS5oCitAQCAtMzcsNyArMzcsNiBAQCBzdHJ1Y3QgX1Bob3Rvc0ZpbHRlcmFibGVJbnRlcmZhY2UK KyAgIGdib29sZWFuICgqZ2V0X2J1aWx0aW4pIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKKyAg IGdjaGFyICooKmdldF9maWx0ZXIpIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKKyAgIGNvbnN0 IGdjaGFyICooKmdldF9pZCkgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpOworLSAgZ2NoYXIgKigq Z2V0X3doZXJlKSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CisgICBnYm9vbGVhbiAoKmlzX3Nl YXJjaF9jcml0ZXJpb24pIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKKyB9OworIAorQEAgLTQ3 LDggKzQ2LDYgQEAgZ2NoYXIgICAgICAgICAgICAgICpwaG90b3NfZmlsdGVyYWJsZV9nZXRfZmls dGVyICAgICAgICAgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYKKyAKKyBjb25zdCBnY2hhciAgICAg ICAgKnBob3Rvc19maWx0ZXJhYmxlX2dldF9pZCAgICAgICAgICAgICAoUGhvdG9zRmlsdGVyYWJs ZSAqc2VsZik7CisgCistZ2NoYXIgICAgICAgICAgICAgICpwaG90b3NfZmlsdGVyYWJsZV9nZXRf d2hlcmUgICAgICAgICAgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpOworLQorIGdib29sZWFuICAg ICAgICAgICAgcGhvdG9zX2ZpbHRlcmFibGVfaXNfc2VhcmNoX2NyaXRlcmlvbiAgKFBob3Rvc0Zp bHRlcmFibGUgKnNlbGYpOworIAorIEdfRU5EX0RFQ0xTCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rv cy1xdWVyeS1idWlsZGVyLmMgYi9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYworaW5kZXggNmI5 OTY4MTEuLmUwNzM1YmRlIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMK KysrKyBiL3NyYy9waG90b3MtcXVlcnktYnVpbGRlci5jCitAQCAtMjYsMTEyICsyNiw3NiBAQAor ICNpbmNsdWRlIDxzdHJpbmcuaD4KKyAKKyAjaW5jbHVkZSAicGhvdG9zLWJhc2UtbWFuYWdlci5o IgorKyNpbmNsdWRlICJwaG90b3MtcXVlcnkuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXF1ZXJ5LWJ1 aWxkZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC10eXBlLmgiCisgI2luY2x1ZGUgInBo b3Rvcy1zb3VyY2UtbWFuYWdlci5oIgorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLW1hdGNoLW1h bmFnZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuaCIKKyAKKysj ZGVmaW5lIFBIT1RPU19RVUVSWV9DT0xMRUNUSU9OU19JREVOVElGSUVSICJwaG90b3M6Y29sbGVj dGlvbjoiCisrI2RlZmluZSBQSE9UT1NfUVVFUllfTE9DQUxfQ09MTEVDVElPTlNfSURFTlRJRklF UiAicGhvdG9zOmNvbGxlY3Rpb246bG9jYWw6IgorIAorLXN0YXRpYyBnY2hhciAqCistcGhvdG9z X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyIChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBn aW50IGZsYWdzKQorLXsKKy0gIGdjaGFyICpzcGFycWw7CistICBnX2F1dG9mcmVlIGdjaGFyICpz cmNfbW5ncl9maWx0ZXIgPSBOVUxMOworLSAgZ19hdXRvZnJlZSBnY2hhciAqc3JjaF9tdGNoX21u Z3JfZmlsdGVyID0gTlVMTDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKnNyY2hfdHlwX21uZ3JfZmls dGVyID0gTlVMTDsKKytjb25zdCBnY2hhciAqY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXIgPSBc CisrICAiKGZuOnN0YXJ0cy13aXRoIChuYW86aWRlbnRpZmllciAoP3VybiksICciIFBIT1RPU19R VUVSWV9DT0xMRUNUSU9OU19JREVOVElGSUVSICInKSIKKysgICIgICB8fCAoP3VybiA9IG5mbzpp bWFnZS1jYXRlZ29yeS1zY3JlZW5zaG90KSkiOworIAorLSAgc3JjX21uZ3JfZmlsdGVyID0gcGhv dG9zX2Jhc2VfbWFuYWdlcl9nZXRfZmlsdGVyIChzdGF0ZS0+c3JjX21uZ3IsIGZsYWdzKTsKKy0g IHNyY2hfbXRjaF9tbmdyX2ZpbHRlciA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X2ZpbHRlciAo c3RhdGUtPnNyY2hfbXRjaF9tbmdyLCBmbGFncyk7CistICBzcmNoX3R5cF9tbmdyX2ZpbHRlciA9 IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X2ZpbHRlciAoc3RhdGUtPnNyY2hfdHlwX21uZ3IsIGZs YWdzKTsKKyAKKy0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIkZJTFRFUiAoJXMgJiYgJXMg JiYgJXMpIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX21uZ3JfZmlsdGVyLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNoX210Y2hfbW5ncl9maWx0ZXIsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNyY2hfdHlwX21uZ3JfZmlsdGVyKTsKKy0KKy0gIHJl dHVybiBzcGFycWw7CistfQorKy8qIFRoaXMgaW5jbHVkZXMgbWltZXR5cGUgYmxvY2tsaXN0ICov CisrY29uc3QgZ2NoYXIgKnBob3Rvc19kZWZhdWx0X2ZpbHRlciA9IFwKKysgICIobmllOm1pbWVU eXBlKD91cm4pICE9ICdpbWFnZS9naWYnICYmIG5pZTptaW1lVHlwZSg/dXJuKSAhPSAnaW1hZ2Uv eC1lcHMnKSI7CisgCisgCisgc3RhdGljIGdjaGFyICoKKy1waG90b3NfcXVlcnlfYnVpbGRlcl9v cHRpb25hbCAodm9pZCkKKy17CistICByZXR1cm4gZ19zdHJkdXAgKCJPUFRJT05BTCB7ID91cm4g bmNvOmNyZWF0b3IgP2NyZWF0b3IgLiB9ICIKKy0gICAgICAgICAgICAgICAgICAgIk9QVElPTkFM IHsgP3VybiBuY286cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9Iik7CistfQorLQorLQorLXN0YXRp YyBnY2hhciAqCistcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfaW5uZXJfd2hlcmUgKFBob3Rvc1NlYXJj aENvbnRleHRTdGF0ZSAqc3RhdGUsIGdib29sZWFuIGdsb2JhbCwgZ2ludCBmbGFncykKKytwaG90 b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gZ2xvYmFsLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnaW50IGZsYWdzLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQaG90b3NPZmZzZXRDb250cm9sbGVyICpvZmZzZXRfY250cmxyKQorIHsKKy0gIGdfYXV0 b2ZyZWUgZ2NoYXIgKml0ZW1fbW5ncl93aGVyZSA9IE5VTEw7CisrICBQaG90b3NTcGFycWxUZW1w bGF0ZSAqdGVtcGxhdGU7CisrICBjb25zdCBnY2hhciAqcHJvamVjdGlvbiA9IE5VTEw7CisrICBn X2F1dG9mcmVlIGdjaGFyICppdGVtX3BhdHRlcm4gPSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hh ciAqc2VhcmNoX2ZpbHRlciA9IE5VTEw7CisrICBnX2F1dG9mcmVlIGdjaGFyICpzb3VyY2VfZmls dGVyID0gTlVMTDsKKysgIGNvbnN0IGdjaGFyICpvcmRlciA9IE5VTEw7CisrICBnX2F1dG9mcmVl IGdjaGFyICpvZmZzZXRfbGltaXQgPSBOVUxMOworICAgZ2NoYXIgKnNwYXJxbDsKKy0gIGdfYXV0 b2ZyZWUgZ2NoYXIgKnNyY2hfdHlwX21uZ3Jfd2hlcmUgPSBOVUxMOworIAorLSAgc3JjaF90eXBf bW5ncl93aGVyZSA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3doZXJlIChzdGF0ZS0+c3JjaF90 eXBfbW5nciwgZmxhZ3MpOworKyAgdGVtcGxhdGUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9z cGFycWxfdGVtcGxhdGUgKHN0YXRlLT5zcmNoX3R5cF9tbmdyLCBmbGFncyk7CisrCisrICBwcm9q ZWN0aW9uID0gIj91cm4gIgorKyAgICAgICAgICAgICAgICJuaWU6dXJsICg/dXJuKSAiCisrICAg ICAgICAgICAgICAgIm5mbzpmaWxlTmFtZSAoP3VybikgIgorKyAgICAgICAgICAgICAgICJuaWU6 bWltZVR5cGUgKD91cm4pICIKKysgICAgICAgICAgICAgICAibmllOnRpdGxlICg/dXJuKSAiCisr ICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5jbzpmdWxsbmFtZSAoP2NyZWF0b3Ip LCBuY286ZnVsbG5hbWUgKD9wdWJsaXNoZXIpLCAnJykgIgorKyAgICAgICAgICAgICAgICJ0cmFj a2VyOmNvYWxlc2NlIChuZm86ZmlsZUxhc3RNb2RpZmllZCAoP3VybiksIG5pZTpjb250ZW50TGFz dE1vZGlmaWVkICg/dXJuKSkgQVMgP210aW1lICIKKysgICAgICAgICAgICAgICAibmFvOmlkZW50 aWZpZXIgKD91cm4pICIKKysgICAgICAgICAgICAgICAicmRmOnR5cGUgKD91cm4pICIKKysgICAg ICAgICAgICAgICAibmllOmRhdGFTb3VyY2UoP3VybikgIgorKyAgICAgICAgICAgICAgICIoIEVY SVNUUyB7ID91cm4gbmFvOmhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWctZmF2b3JpdGUgfSApICIK KysgICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/dXJuIG5jbzpjb250cmlidXRvciA/Y29udHJp YnV0b3IgRklMVEVSICggP2NvbnRyaWJ1dG9yICE9ID9jcmVhdG9yICkgfSApICIKKysgICAgICAg ICAgICAgICAidHJhY2tlcjpjb2FsZXNjZShuZm86ZmlsZUNyZWF0ZWQgKD91cm4pLCBuaWU6Y29u dGVudENyZWF0ZWQgKD91cm4pKSAiCisrICAgICAgICAgICAgICAgIm5mbzp3aWR0aCAoP3Vybikg IgorKyAgICAgICAgICAgICAgICJuZm86aGVpZ2h0ICg/dXJuKSAiCisrICAgICAgICAgICAgICAg Im5mbzplcXVpcG1lbnQgKD91cm4pICIKKysgICAgICAgICAgICAgICAibmZvOm9yaWVudGF0aW9u ICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5tbTpleHBvc3VyZVRpbWUgKD91cm4pICIKKysg ICAgICAgICAgICAgICAibm1tOmZudW1iZXIgKD91cm4pICIKKysgICAgICAgICAgICAgICAibm1t OmZvY2FsTGVuZ3RoICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5tbTppc29TcGVlZCAoP3Vy bikgIgorKyAgICAgICAgICAgICAgICJubW06Zmxhc2ggKD91cm4pICIKKysgICAgICAgICAgICAg ICAic2xvOmxvY2F0aW9uICg/dXJuKSAiOworKworKyAgaXRlbV9wYXR0ZXJuID0gcGhvdG9zX2Jh c2VfbWFuYWdlcl9nZXRfd2hlcmUgKHN0YXRlLT5pdGVtX21uZ3IsIGZsYWdzKTsKKyAKKyAgIGlm ICghKGZsYWdzICYgUEhPVE9TX1FVRVJZX0ZMQUdTX1VORklMVEVSRUQpKQorICAgICB7CistICAg ICAgaWYgKGdsb2JhbCkKKy0gICAgICAgIHsKKy0gICAgICAgICAgLyogVE9ETzogU2VhcmNoQ2F0 ZWdvcnlNYW5hZ2VyICovCistCistICAgICAgICAgIGl0ZW1fbW5ncl93aGVyZSA9IHBob3Rvc19i YXNlX21hbmFnZXJfZ2V0X3doZXJlIChzdGF0ZS0+aXRlbV9tbmdyLCBmbGFncyk7CistICAgICAg ICB9CisrICAgICAgc291cmNlX2ZpbHRlciA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X2ZpbHRl ciAoc3RhdGUtPnNyY19tbmdyLCBmbGFncyk7CisrICAgICAgc2VhcmNoX2ZpbHRlciA9IHBob3Rv c19iYXNlX21hbmFnZXJfZ2V0X2ZpbHRlciAoc3RhdGUtPnNyY2hfbXRjaF9tbmdyLCBmbGFncyk7 CisgICAgIH0KKyAKKy0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIldIRVJFIHsgJXMgJXMg fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY2hfdHlwX21uZ3Jfd2hlcmUsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtX21uZ3Jfd2hlcmUgIT0gTlVMTCkgPyBp dGVtX21uZ3Jfd2hlcmUgOiAiIik7CistCistICByZXR1cm4gc3BhcnFsOworLX0KKy0KKy0KKy1z dGF0aWMgZ2NoYXIgKgorLXBob3Rvc19xdWVyeV9idWlsZGVyX3doZXJlIChQaG90b3NTZWFyY2hD b250ZXh0U3RhdGUgKnN0YXRlLCBnYm9vbGVhbiBnbG9iYWwsIGdpbnQgZmxhZ3MpCisteworLSAg Y29uc3QgZ2NoYXIgKmNvdW50X2l0ZW1zID0gIkNPVU5UICg/aXRlbSkgQVMgP2NvdW50IjsKKy0g IGdib29sZWFuIGl0ZW1fZGVmaW5lZDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKmZpbHRlciA9IE5V TEw7CistICBnX2F1dG9mcmVlIGdjaGFyICpvcHRpb25hbCA9IE5VTEw7CistICBnY2hhciAqc3Bh cnFsOworLSAgZ19hdXRvZnJlZSBnY2hhciAqd2hlcmVfc3BhcnFsID0gTlVMTDsKKy0KKy0gIHdo ZXJlX3NwYXJxbCA9IHBob3Rvc19xdWVyeV9idWlsZGVyX2lubmVyX3doZXJlIChzdGF0ZSwgZ2xv YmFsLCBmbGFncyk7CistICBpdGVtX2RlZmluZWQgPSBzdHJzdHIgKHdoZXJlX3NwYXJxbCwgIj9p dGVtIikgIT0gTlVMTDsKKy0KKy0gIG9wdGlvbmFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfb3B0 aW9uYWwgKCk7CistCistICBpZiAoIShmbGFncyAmIFBIT1RPU19RVUVSWV9GTEFHU19VTkZJTFRF UkVEKSkKKy0gICAgZmlsdGVyID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfZmlsdGVyIChzdGF0ZSwg ZmxhZ3MpOworLQorLSAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiV0hFUkUge3siCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgU0VMRUNUID91cm4gcmRmOnR5cGUgKD91cm4p IEFTID90eXBlICVzICVzIEdST1VQIEJZICg/dXJuKSIKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIiAgfSIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgJXMgJXMiCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJ9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgaXRlbV9kZWZpbmVkID8gY291bnRfaXRlbXMgOiAiIiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgd2hlcmVfc3BhcnFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRp b25hbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbHRlciAhPSBOVUxMKSA/IGZp bHRlciA6ICIiKTsKKy0KKy0gIHJldHVybiBzcGFycWw7CistfQorLQorLQorLXN0YXRpYyBnY2hh ciAqCistcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0 ZSAqc3RhdGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGdsb2JhbCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBmbGFncywKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgUGhvdG9zT2Zmc2V0Q29udHJvbGxlciAqb2Zmc2V0X2NudHJscikKKy17 CistICBnY2hhciAqc3BhcnFsOworLSAgZ19hdXRvZnJlZSBnY2hhciAqdGFpbF9zcGFycWwgPSBO VUxMOworLSAgZ19hdXRvZnJlZSBnY2hhciAqd2hlcmVfc3BhcnFsID0gTlVMTDsKKy0KKy0gIHdo ZXJlX3NwYXJxbCA9IHBob3Rvc19xdWVyeV9idWlsZGVyX3doZXJlIChzdGF0ZSwgZ2xvYmFsLCBm bGFncyk7CisrICBvcmRlciA9ICJPUkRFUiBCWSBERVNDICg/bXRpbWUpIjsKKyAKKyAgIGlmIChn bG9iYWwgJiYgKGZsYWdzICYgUEhPVE9TX1FVRVJZX0ZMQUdTX1VOTElNSVRFRCkgPT0gMCkKKyAg ICAgeworQEAgLTE0NCwzNSArMTA4LDE5IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQ aG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAorICAgICAgICAgICBzdGVwID0gcGhvdG9z X29mZnNldF9jb250cm9sbGVyX2dldF9zdGVwIChvZmZzZXRfY250cmxyKTsKKyAgICAgICAgIH0K KyAKKy0gICAgICB0YWlsX3NwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIk9SREVSIEJZIERFU0Mg KD9tdGltZSkgTElNSVQgJWQgT0ZGU0VUICVkIiwgc3RlcCwgb2Zmc2V0KTsKKysgICAgICBvZmZz ZXRfbGltaXQgPSBnX3N0cmR1cF9wcmludGYgKCJMSU1JVCAlZCBPRkZTRVQgJWQiLCBzdGVwLCBv ZmZzZXQpOworICAgICB9CisgCistICBzcGFycWwgPSBnX3N0cmNvbmNhdCAoIlNFTEVDVCA/dXJu ICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibmllOnVybCAoP3VybikgIgorLSAgICAgICAg ICAgICAgICAgICAgICAgICJuZm86ZmlsZU5hbWUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAg ICAgICAgICAibmllOm1pbWVUeXBlICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAg Im5pZTp0aXRsZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFja2VyOmNv YWxlc2NlIChuY286ZnVsbG5hbWUgKD9jcmVhdG9yKSwgbmNvOmZ1bGxuYW1lICg/cHVibGlzaGVy KSwgJycpICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAobmZv OmZpbGVMYXN0TW9kaWZpZWQgKD91cm4pLCBuaWU6Y29udGVudExhc3RNb2RpZmllZCAoP3Vybikp IEFTID9tdGltZSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIm5hbzppZGVudGlmaWVyICg/ dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgInJkZjp0eXBlICg/dXJuKSAiCistICAg ICAgICAgICAgICAgICAgICAgICAgIm5pZTpkYXRhU291cmNlKD91cm4pICIKKy0gICAgICAgICAg ICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/dXJuIG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQt dGFnLWZhdm9yaXRlIH0gKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIiggRVhJU1RTIHsg P3VybiBuY286Y29udHJpYnV0b3IgP2NvbnRyaWJ1dG9yIEZJTFRFUiAoID9jb250cmlidXRvciAh PSA/Y3JlYXRvciApIH0gKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgInRyYWNrZXI6Y29h bGVzY2UobmZvOmZpbGVDcmVhdGVkICg/dXJuKSwgbmllOmNvbnRlbnRDcmVhdGVkICg/dXJuKSkg IgorLSAgICAgICAgICAgICAgICAgICAgICAgICJuZm86d2lkdGggKD91cm4pICIKKy0gICAgICAg ICAgICAgICAgICAgICAgICAibmZvOmhlaWdodCAoP3VybikgIgorLSAgICAgICAgICAgICAgICAg ICAgICAgICJuZm86ZXF1aXBtZW50ICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAg Im5mbzpvcmllbnRhdGlvbiAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJubW06 ZXhwb3N1cmVUaW1lICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIm5tbTpmbnVt YmVyICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIm5tbTpmb2NhbExlbmd0aCAo P3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJubW06aXNvU3BlZWQgKD91cm4pICIK Ky0gICAgICAgICAgICAgICAgICAgICAgICAibm1tOmZsYXNoICg/dXJuKSAiCistICAgICAgICAg ICAgICAgICAgICAgICAgInNsbzpsb2NhdGlvbiAoP3VybikgIiwKKy0gICAgICAgICAgICAgICAg ICAgICAgICB3aGVyZV9zcGFycWwsCistICAgICAgICAgICAgICAgICAgICAgICAgdGFpbF9zcGFy cWwsCistICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisrICBzcGFycWwgPSBwaG90b3Nf c3BhcnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKHRlbXBsYXRlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvamVjdGlvbiIsIHByb2plY3Rpb24sCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb2xsZWN0aW9u c19kZWZhdWx0X2ZpbHRlciIsIGNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXRlbV9wYXR0ZXJuIiwgaXRl bV9wYXR0ZXJuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAicGhvdG9zX2RlZmF1bHRfZmlsdGVyIiwgcGhvdG9zX2RlZmF1bHRfZmlsdGVyLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic291cmNlX2ZpbHRlciIs IHNvdXJjZV9maWx0ZXIgPyBzb3VyY2VfZmlsdGVyIDogIiIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWFyY2hfZmlsdGVyIiwgc2VhcmNoX2ZpbHRl ciA/IHNlYXJjaF9maWx0ZXIgOiAiIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIm9yZGVyIiwgb3JkZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJvZmZzZXRfbGltaXQiLCBvZmZzZXRfbGltaXQgPyBvZmZz ZXRfbGltaXQgOiAiIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCk7CisgCisgICByZXR1cm4gc3BhcnFsOworIH0KK0BAIC0yMzEsMTIgKzE3OSwz NyBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9jb2xsZWN0aW9uX2ljb25fcXVlcnkgKFBob3Rvc1Nl YXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGNvbgorIFBob3Rvc1F1ZXJ5ICoKKyBwaG90b3NfcXVl cnlfYnVpbGRlcl9jb3VudF9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwg Z2ludCBmbGFncykKKyB7CistICBQaG90b3NRdWVyeSAqcXVlcnk7CisrICBQaG90b3NTcGFycWxU ZW1wbGF0ZSAqdGVtcGxhdGU7CisrICBjb25zdCBnY2hhciAqcHJvamVjdGlvbiA9IE5VTEw7Cisr ICBnX2F1dG9mcmVlIGdjaGFyICppdGVtX3BhdHRlcm4gPSBOVUxMOworKyAgZ19hdXRvZnJlZSBn Y2hhciAqc2VhcmNoX2ZpbHRlciA9IE5VTEw7CisrICBnX2F1dG9mcmVlIGdjaGFyICpzb3VyY2Vf ZmlsdGVyID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7CistICBn X2F1dG9mcmVlIGdjaGFyICp3aGVyZV9zcGFycWwgPSBOVUxMOworKyAgUGhvdG9zUXVlcnkgKnF1 ZXJ5OworKworKyAgdGVtcGxhdGUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVt cGxhdGUgKHN0YXRlLT5zcmNoX3R5cF9tbmdyLCBmbGFncyk7CisrCisrICBwcm9qZWN0aW9uID0g IkNPVU5UKD91cm4pICI7CisrCisrICBpdGVtX3BhdHRlcm4gPSBwaG90b3NfYmFzZV9tYW5hZ2Vy X2dldF93aGVyZSAoc3RhdGUtPml0ZW1fbW5nciwgZmxhZ3MpOworKworKyAgaWYgKCEgKGZsYWdz ICYgUEhPVE9TX1FVRVJZX0ZMQUdTX1VORklMVEVSRUQpKQorKyAgICB7CisrICAgICAgc291cmNl X2ZpbHRlciA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X2ZpbHRlciAoc3RhdGUtPnNyY19tbmdy LCBmbGFncyk7CisrICAgICAgc2VhcmNoX2ZpbHRlciA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0 X2ZpbHRlciAoc3RhdGUtPnNyY2hfbXRjaF9tbmdyLCBmbGFncyk7CisrICAgIH0KKysKKysgIHNw YXJxbCA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3NwYXJxbCAodGVtcGxhdGUsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9qZWN0aW9uIiwg cHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyIiwgY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0 ZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVt X3BhdHRlcm4iLCBpdGVtX3BhdHRlcm4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJwaG90b3NfZGVmYXVsdF9maWx0ZXIiLCBwaG90b3NfZGVmYXVsdF9m aWx0ZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz b3VyY2VfZmlsdGVyIiwgc291cmNlX2ZpbHRlciA/IHNvdXJjZV9maWx0ZXIgOiAiIiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlYXJjaF9maWx0ZXIi LCBzZWFyY2hfZmlsdGVyID8gc2VhcmNoX2ZpbHRlciA6ICIiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JkZXIiLCAiIiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9mZnNldF9saW1pdCIsICIiLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAKKy0g IHdoZXJlX3NwYXJxbCA9IHBob3Rvc19xdWVyeV9idWlsZGVyX3doZXJlIChzdGF0ZSwgVFJVRSwg ZmxhZ3MpOworLSAgc3BhcnFsID0gZ19zdHJjb25jYXQgKCJTRUxFQ1QgRElTVElOQ1QgQ09VTlQo P3VybikgIiwgd2hlcmVfc3BhcnFsLCBOVUxMKTsKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25l dyAoc3RhdGUsIHNwYXJxbCk7CisgCisgICByZXR1cm4gcXVlcnk7CitkaWZmIC0tZ2l0IGEvc3Jj L3Bob3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmMgYi9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLW1h bmFnZXIuYworaW5kZXggODdmNDQxZWQuLjVjODdkNGE0IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rv cy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmMKKysrKyBiL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUtbWFu YWdlci5jCitAQCAtNDEsMTMgKzQxLDYgQEAgc3RydWN0IF9QaG90b3NTZWFyY2hUeXBlTWFuYWdl cgorIEdfREVGSU5FX1RZUEUgKFBob3Rvc1NlYXJjaFR5cGVNYW5hZ2VyLCBwaG90b3Nfc2VhcmNo X3R5cGVfbWFuYWdlciwgUEhPVE9TX1RZUEVfQkFTRV9NQU5BR0VSKTsKKyAKKyAKKy1zdGF0aWMg Y29uc3QgZ2NoYXIgKkJMQUNLTElTVEVEX01JTUVfVFlQRVNbXSA9CisteworLSAgImltYWdlL2dp ZiIsCistICAiaW1hZ2UveC1lcHMiCistfTsKKy0KKy0KKyBzdGF0aWMgZ2NoYXIgKgorIHBob3Rv c19zZWFyY2hfdHlwZV9tYW5hZ2VyX2dldF9maWx0ZXIgKFBob3Rvc0Jhc2VNYW5hZ2VyICptbmdy LCBnaW50IGZsYWdzKQorIHsKK0BAIC02OSw5ICs2Miw4IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9t YW5hZ2VyX2dldF9maWx0ZXIgKFBob3Rvc0Jhc2VNYW5hZ2VyICptbmdyLCBnaW50IGZsYWdzKQor ICAgcmV0dXJuIGZpbHRlcjsKKyB9CisgCistCistc3RhdGljIGdjaGFyICoKKy1waG90b3Nfc2Vh cmNoX3R5cGVfbWFuYWdlcl9nZXRfd2hlcmUgKFBob3Rvc0Jhc2VNYW5hZ2VyICptbmdyLCBnaW50 IGZsYWdzKQorK3N0YXRpYyBQaG90b3NTcGFycWxUZW1wbGF0ZSAqCisrcGhvdG9zX3NlYXJjaF90 eXBlX21hbmFnZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoUGhvdG9zQmFzZU1hbmFnZXIgKm1uZ3Is IGdpbnQgZmxhZ3MpCisgeworICAgR09iamVjdCAqc2VhcmNoX3R5cGU7CisgCitAQCAtODYsNzQg Kzc4LDM5IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2VyX2dldF93aGVyZSAoUGhvdG9zQmFz ZU1hbmFnZXIgKm1uZ3IsIGdpbnQgZmxhZ3MpCisgICBlbHNlCisgICAgIHNlYXJjaF90eXBlID0g cGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfb2JqZWN0X2J5X2lkIChtbmdyLCBQSE9UT1NfU0VBUkNI X1RZUEVfU1RPQ0tfQUxMKTsKKyAKKy0gIHJldHVybiBwaG90b3NfZmlsdGVyYWJsZV9nZXRfd2hl cmUgKFBIT1RPU19GSUxURVJBQkxFIChzZWFyY2hfdHlwZSkpOworKyAgcmV0dXJuIHBob3Rvc19z ZWFyY2hfdHlwZV9nZXRfc3BhcnFsX3RlbXBsYXRlIChQSE9UT1NfU0VBUkNIX1RZUEUgKHNlYXJj aF90eXBlKSk7CisgfQorIAorLQorIHN0YXRpYyB2b2lkCisgcGhvdG9zX3NlYXJjaF90eXBlX21h bmFnZXJfaW5pdCAoUGhvdG9zU2VhcmNoVHlwZU1hbmFnZXIgKnNlbGYpCisgeworICAgUGhvdG9z U2VhcmNoVHlwZSAqc2VhcmNoX3R5cGU7CistICBnY2hhciAqaXRlbV9maWx0ZXI7CistICBnY2hh ciAqYWxsX2ZpbHRlcjsKKy0gIGdjaGFyICpibGFja2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRlcjsK Ky0gIGdjaGFyICpjb2xfZmlsdGVyOworLSAgZ2NoYXIgKipzdHJ2OworLSAgZ3VpbnQgaTsKKy0g IGd1aW50IG5fZWxlbWVudHM7CistCistICBuX2VsZW1lbnRzID0gR19OX0VMRU1FTlRTIChCTEFD S0xJU1RFRF9NSU1FX1RZUEVTKTsKKy0gIHN0cnYgPSAoZ2NoYXIgKiopIGdfbWFsbG9jMF9uIChu X2VsZW1lbnRzICsgMSwgc2l6ZW9mIChnY2hhciAqKSk7CistICBmb3IgKGkgPSAwOyBpIDwgbl9l bGVtZW50czsgaSsrKQorLSAgICBzdHJ2W2ldID0gZ19zdHJkdXBfcHJpbnRmICgibmllOm1pbWVU eXBlKD91cm4pICE9ICclcyciLCBCTEFDS0xJU1RFRF9NSU1FX1RZUEVTW2ldKTsKKy0KKy0gIGJs YWNrbGlzdGVkX21pbWVfdHlwZXNfZmlsdGVyID0gZ19zdHJqb2ludiAoIiAmJiAiLCBzdHJ2KTsK Ky0KKy0gIGl0ZW1fZmlsdGVyID0gZ19zdHJkdXBfcHJpbnRmICgiKGZuOmNvbnRhaW5zICg/dHlw ZSwgJ25tbSNQaG90bycpICYmICVzKSIsIGJsYWNrbGlzdGVkX21pbWVfdHlwZXNfZmlsdGVyKTsK Ky0gIGNvbF9maWx0ZXIgPSBnX3N0cmR1cF9wcmludGYgKCIoZm46Y29udGFpbnMgKD90eXBlLCAn bmZvI0RhdGFDb250YWluZXInKSIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg JiYgP2NvdW50ID4gMCIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgJiYgKGZu OnN0YXJ0cy13aXRoIChuYW86aWRlbnRpZmllciAoP3VybiksICclcycpIgorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIiAgICAgfHwgKD91cm4gPSBuZm86aW1hZ2UtY2F0ZWdvcnkt c2NyZWVuc2hvdCkpKSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSE9UT1Nf UVVFUllfQ09MTEVDVElPTlNfSURFTlRJRklFUik7CistICBhbGxfZmlsdGVyID0gZ19zdHJkdXBf cHJpbnRmICgiKCVzIHx8ICVzKSIsIGNvbF9maWx0ZXIsIGl0ZW1fZmlsdGVyKTsKKyAKKyAgIHNl YXJjaF90eXBlID0gcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChQSE9UT1NfU0VBUkNIX1RZ UEVfU1RPQ0tfQUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF8oIkFsbCIpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICI/dXJuIGEgcmRmczpSZXNvdXJjZS4gIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJPUFRJT05BTCB7P2l0ZW0gYSBubW06UGhvdG87IG5pZTppc1Bh cnRPZiA/dXJufSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYWxsX2ZpbHRlcik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgInJlc291cmNlOi8vL29yZy9nbm9tZS9QaG90b3MvYWxsLnNwYXJxbC50ZW1wbGF0ZSIp OworICAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9hZGRfb2JqZWN0IChQSE9UT1NfQkFTRV9NQU5BR0VS IChzZWxmKSwgR19PQkpFQ1QgKHNlYXJjaF90eXBlKSk7CisgICBnX29iamVjdF91bnJlZiAoc2Vh cmNoX3R5cGUpOworIAorICAgc2VhcmNoX3R5cGUgPSBwaG90b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1 bGwgKFBIT1RPU19TRUFSQ0hfVFlQRV9TVE9DS19DT0xMRUNUSU9OUywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJBbGJ1bXMiKSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiP3VybiBhIG5mbzpEYXRhQ29udGFp bmVyLiAiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj9p dGVtIGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vybi4iLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF9maWx0ZXIpOworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXNvdXJjZTovLy9vcmcvZ25vbWUvUGhv dG9zL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZSIpOworICAgcGhvdG9zX2Jhc2VfbWFuYWdl cl9hZGRfb2JqZWN0IChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgR19PQkpFQ1QgKHNlYXJj aF90eXBlKSk7CisgICBnX29iamVjdF91bnJlZiAoc2VhcmNoX3R5cGUpOworIAorICAgc2VhcmNo X3R5cGUgPSBwaG90b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1bGwgKFBIT1RPU19TRUFSQ0hfVFlQRV9T VE9DS19GQVZPUklURVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXygiRmF2b3JpdGVzIiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIj91cm4gYSBubW06UGhvdG87IG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQt dGFnLWZhdm9yaXRlLiAiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJsYWNrbGlzdGVkX21pbWVfdHlwZXNfZmlsdGVyKTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2U6Ly8vb3JnL2dub21lL1Bob3Rv cy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlIik7CisgICBwaG90b3NfYmFzZV9tYW5h Z2VyX2FkZF9vYmplY3QgKFBIT1RPU19CQVNFX01BTkFHRVIgKHNlbGYpLCBHX09CSkVDVCAoc2Vh cmNoX3R5cGUpKTsKKyAgIGdfb2JqZWN0X3VucmVmIChzZWFyY2hfdHlwZSk7CisgCisgICBzZWFy Y2hfdHlwZSA9IHBob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAoUEhPVE9TX1NFQVJDSF9UWVBF X1NUT0NLX1BIT1RPUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBfKCJQaG90b3MiKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiP3VybiBhIG5tbTpQaG90byIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYmxhY2tsaXN0ZWRfbWltZV90eXBlc19maWx0ZXIpOworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXNvdXJjZTovLy9vcmcv Z25vbWUvUGhvdG9zL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUiKTsKKyAgIHBob3Rvc19iYXNlX21h bmFnZXJfYWRkX29iamVjdCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiksIEdfT0JKRUNUIChz ZWFyY2hfdHlwZSkpOworICAgZ19vYmplY3RfdW5yZWYgKHNlYXJjaF90eXBlKTsKKyAKKyAgIHBo b3Rvc19iYXNlX21hbmFnZXJfc2V0X2FjdGl2ZV9vYmplY3RfYnlfaWQgKFBIT1RPU19CQVNFX01B TkFHRVIgKHNlbGYpLCBQSE9UT1NfU0VBUkNIX1RZUEVfU1RPQ0tfQUxMKTsKKy0KKy0gIGdfZnJl ZSAoaXRlbV9maWx0ZXIpOworLSAgZ19mcmVlIChhbGxfZmlsdGVyKTsKKy0gIGdfZnJlZSAoYmxh Y2tsaXN0ZWRfbWltZV90eXBlc19maWx0ZXIpOworLSAgZ19mcmVlIChjb2xfZmlsdGVyKTsKKy0g IGdfc3RyZnJlZXYgKHN0cnYpOworIH0KKyAKKyAKK0BAIC0xNjMsNyArMTIwLDcgQEAgcGhvdG9z X3NlYXJjaF90eXBlX21hbmFnZXJfY2xhc3NfaW5pdCAoUGhvdG9zU2VhcmNoVHlwZU1hbmFnZXJD bGFzcyAqY2xhc3MpCisgICBQaG90b3NCYXNlTWFuYWdlckNsYXNzICpiYXNlX21hbmFnZXJfY2xh c3MgPSBQSE9UT1NfQkFTRV9NQU5BR0VSX0NMQVNTIChjbGFzcyk7CisgCisgICBiYXNlX21hbmFn ZXJfY2xhc3MtPmdldF9maWx0ZXIgPSBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9nZXRfZmls dGVyOworLSAgYmFzZV9tYW5hZ2VyX2NsYXNzLT5nZXRfd2hlcmUgPSBwaG90b3Nfc2VhcmNoX3R5 cGVfbWFuYWdlcl9nZXRfd2hlcmU7CisrICBiYXNlX21hbmFnZXJfY2xhc3MtPmdldF9zcGFycWxf dGVtcGxhdGUgPSBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRl OworIH0KKyAKKyAKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLmMgYi9zcmMv cGhvdG9zLXNlYXJjaC10eXBlLmMKK2luZGV4IDQ0ZGM2MGViLi5mM2JiYWUxNSAxMDA2NDQKKy0t LSBhL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuYworKysrIGIvc3JjL3Bob3Rvcy1zZWFyY2gtdHlw ZS5jCitAQCAtMjUsMjQgKzI1LDIzIEBACisgCisgI2luY2x1ZGUgInBob3Rvcy1maWx0ZXJhYmxl LmgiCisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gtdHlwZS5oIgorKyNpbmNsdWRlICJwaG90b3Mt c3BhcnFsLXRlbXBsYXRlLmgiCisgCisgCisgc3RydWN0IF9QaG90b3NTZWFyY2hUeXBlCisgewor ICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CistICBnY2hhciAqZmlsdGVyOworICAgZ2NoYXIg KmlkOworICAgZ2NoYXIgKm5hbWU7CistICBnY2hhciAqd2hlcmU7CisrICBQaG90b3NTcGFycWxU ZW1wbGF0ZSAqc3BhcnFsX3RlbXBsYXRlOworIH07CisgCisgZW51bQorIHsKKyAgIFBST1BfMCwK Ky0gIFBST1BfRklMVEVSLAorICAgUFJPUF9JRCwKKyAgIFBST1BfTkFNRSwKKy0gIFBST1BfV0hF UkUsCisrICBQUk9QX1NQQVJRTF9URU1QTEFURSwKKyB9OworIAorIHN0YXRpYyB2b2lkIHBob3Rv c19zZWFyY2hfdHlwZV9maWx0ZXJhYmxlX2lmYWNlX2luaXQgKFBob3Rvc0ZpbHRlcmFibGVJbnRl cmZhY2UgKmlmYWNlKTsKK0BAIC01MywxNCArNTIsNiBAQCBHX0RFRklORV9UWVBFX1dJVEhfQ09E RSAoUGhvdG9zU2VhcmNoVHlwZSwgcGhvdG9zX3NlYXJjaF90eXBlLCBHX1RZUEVfT0JKRUNULAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc19z ZWFyY2hfdHlwZV9maWx0ZXJhYmxlX2lmYWNlX2luaXQpKTsKKyAKKyAKKy1zdGF0aWMgZ2NoYXIg KgorLXBob3Rvc19zZWFyY2hfdHlwZV9nZXRfZmlsdGVyIChQaG90b3NGaWx0ZXJhYmxlICppZmFj ZSkKKy17CistICBQaG90b3NTZWFyY2hUeXBlICpzZWxmID0gUEhPVE9TX1NFQVJDSF9UWVBFIChp ZmFjZSk7CistICByZXR1cm4gZ19zdHJkdXAgKHNlbGYtPmZpbHRlcik7CistfQorLQorLQorIHN0 YXRpYyBjb25zdCBnY2hhciAqCisgcGhvdG9zX3NlYXJjaF90eXBlX2dldF9pZCAoUGhvdG9zRmls dGVyYWJsZSAqZmlsdGVyYWJsZSkKKyB7CitAQCAtNjksMTQgKzYwLDYgQEAgcGhvdG9zX3NlYXJj aF90eXBlX2dldF9pZCAoUGhvdG9zRmlsdGVyYWJsZSAqZmlsdGVyYWJsZSkKKyB9CisgCisgCist c3RhdGljIGdjaGFyICoKKy1waG90b3Nfc2VhcmNoX3R5cGVfZ2V0X3doZXJlIChQaG90b3NGaWx0 ZXJhYmxlICppZmFjZSkKKy17CistICBQaG90b3NTZWFyY2hUeXBlICpzZWxmID0gUEhPVE9TX1NF QVJDSF9UWVBFIChpZmFjZSk7CistICByZXR1cm4gZ19zdHJkdXAgKHNlbGYtPndoZXJlKTsKKy19 CistCistCisgc3RhdGljIGdib29sZWFuCisgcGhvdG9zX3NlYXJjaF90eXBlX2lzX3NlYXJjaF9j cml0ZXJpb24gKFBob3Rvc0ZpbHRlcmFibGUgKmlmYWNlKQorIHsKK0BAIC04NCwxNSArNjcsMjAg QEAgcGhvdG9zX3NlYXJjaF90eXBlX2lzX3NlYXJjaF9jcml0ZXJpb24gKFBob3Rvc0ZpbHRlcmFi bGUgKmlmYWNlKQorIH0KKyAKKyAKKytQaG90b3NTcGFycWxUZW1wbGF0ZSAqCisrcGhvdG9zX3Nl YXJjaF90eXBlX2dldF9zcGFycWxfdGVtcGxhdGUgKFBob3Rvc1NlYXJjaFR5cGUgKnNlbGYpCisr eworKyAgcmV0dXJuIHNlbGYtPnNwYXJxbF90ZW1wbGF0ZTsKKyt9CisrCisgc3RhdGljIHZvaWQK KyBwaG90b3Nfc2VhcmNoX3R5cGVfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKKyB7CisgICBQ aG90b3NTZWFyY2hUeXBlICpzZWxmID0gUEhPVE9TX1NFQVJDSF9UWVBFIChvYmplY3QpOworIAor LSAgZ19mcmVlIChzZWxmLT5maWx0ZXIpOworICAgZ19mcmVlIChzZWxmLT5pZCk7CisgICBnX2Zy ZWUgKHNlbGYtPm5hbWUpOworLSAgZ19mcmVlIChzZWxmLT53aGVyZSk7CisrICBnX2NsZWFyX29i amVjdCAoJnNlbGYtPnNwYXJxbF90ZW1wbGF0ZSk7CisgCisgICBHX09CSkVDVF9DTEFTUyAocGhv dG9zX3NlYXJjaF90eXBlX3BhcmVudF9jbGFzcyktPmZpbmFsaXplIChvYmplY3QpOworIH0KK0BA IC0xMTMsNiArMTAxLDEwIEBAIHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfcHJvcGVydHkgKEdPYmpl Y3QgKm9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1ZhbHVlICp2YWx1ZSwKKyAgICAgICBnX3ZhbHVl X3NldF9zdHJpbmcgKHZhbHVlLCBzZWxmLT5uYW1lKTsKKyAgICAgICBicmVhazsKKyAKKysgICAg Y2FzZSBQUk9QX1NQQVJRTF9URU1QTEFURToKKysgICAgICBnX3ZhbHVlX3NldF9vYmplY3QgKHZh bHVlLCBzZWxmLT5zcGFycWxfdGVtcGxhdGUpOworKyAgICAgIGJyZWFrOworKworICAgICBkZWZh dWx0OgorICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBw cm9wX2lkLCBwc3BlYyk7CisgICAgICAgYnJlYWs7CitAQCAtMTI3LDEwICsxMTksNiBAQCBwaG90 b3Nfc2VhcmNoX3R5cGVfc2V0X3Byb3BlcnR5IChHT2JqZWN0ICpvYmplY3QsIGd1aW50IHByb3Bf aWQsIGNvbnN0IEdWYWx1ZSAqdgorIAorICAgc3dpdGNoIChwcm9wX2lkKQorICAgICB7CistICAg IGNhc2UgUFJPUF9GSUxURVI6CistICAgICAgc2VsZi0+ZmlsdGVyID0gZ192YWx1ZV9kdXBfc3Ry aW5nICh2YWx1ZSk7CistICAgICAgYnJlYWs7CistCisgICAgIGNhc2UgUFJPUF9JRDoKKyAgICAg ICBzZWxmLT5pZCA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOworICAgICAgIGJyZWFrOwor QEAgLTEzOSw4ICsxMjcsOCBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfc2V0X3Byb3BlcnR5IChHT2Jq ZWN0ICpvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvbnN0IEdWYWx1ZSAqdgorICAgICAgIHNlbGYt Pm5hbWUgPSBnX3ZhbHVlX2R1cF9zdHJpbmcgKHZhbHVlKTsKKyAgICAgICBicmVhazsKKyAKKy0g ICAgY2FzZSBQUk9QX1dIRVJFOgorLSAgICAgIHNlbGYtPndoZXJlID0gZ192YWx1ZV9kdXBfc3Ry aW5nICh2YWx1ZSk7CisrICAgIGNhc2UgUFJPUF9TUEFSUUxfVEVNUExBVEU6CisrICAgICAgc2Vs Zi0+c3BhcnFsX3RlbXBsYXRlID0gZ19vYmplY3RfcmVmIChnX3ZhbHVlX2dldF9vYmplY3QgKHZh bHVlKSk7CisgICAgICAgYnJlYWs7CisgCisgICAgIGRlZmF1bHQ6CitAQCAtMTY1LDE0ICsxNTMs NiBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfY2xhc3NfaW5pdCAoUGhvdG9zU2VhcmNoVHlwZUNsYXNz ICpjbGFzcykKKyAgIG9iamVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gcGhvdG9zX3NlYXJjaF90 eXBlX2dldF9wcm9wZXJ0eTsKKyAgIG9iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gcGhvdG9z X3NlYXJjaF90eXBlX3NldF9wcm9wZXJ0eTsKKyAKKy0gIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxf cHJvcGVydHkgKG9iamVjdF9jbGFzcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBST1BfRklMVEVSLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19w YXJhbV9zcGVjX3N0cmluZyAoImZpbHRlciIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIih0cnVlKSIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFN X0NPTlNUUlVDVF9PTkxZIHwgR19QQVJBTV9XUklUQUJMRSkpOworLQorICAgZ19vYmplY3RfY2xh c3NfaW5zdGFsbF9wcm9wZXJ0eSAob2JqZWN0X2NsYXNzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUFJPUF9JRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdfcGFyYW1fc3BlY19zdHJpbmcgKCJpZCIsCitAQCAtMTkwLDExICsxNzAsMTEgQEAgcGhv dG9zX3NlYXJjaF90eXBlX2NsYXNzX2luaXQgKFBob3Rvc1NlYXJjaFR5cGVDbGFzcyAqY2xhc3Mp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZIHwgR19QQVJBTV9SRUFEV1JJVEUpKTsKKyAKKyAgIGdf b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKG9iamVjdF9jbGFzcywKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfV0hFUkUsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nICgid2hlcmUiLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1NQQVJRTF9URU1QTEFURSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QgKCJz cGFycWwtdGVtcGxhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIT1RPU19UWVBFX1NQQVJRTF9URU1QTEFURSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkgfCBHX1BBUkFNX1dSSVRBQkxFKSk7CisgfQorIAorQEAg LTIwMiw5ICsxODIsNyBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfY2xhc3NfaW5pdCAoUGhvdG9zU2Vh cmNoVHlwZUNsYXNzICpjbGFzcykKKyBzdGF0aWMgdm9pZAorIHBob3Rvc19zZWFyY2hfdHlwZV9m aWx0ZXJhYmxlX2lmYWNlX2luaXQgKFBob3Rvc0ZpbHRlcmFibGVJbnRlcmZhY2UgKmlmYWNlKQor IHsKKy0gIGlmYWNlLT5nZXRfZmlsdGVyID0gcGhvdG9zX3NlYXJjaF90eXBlX2dldF9maWx0ZXI7 CisgICBpZmFjZS0+Z2V0X2lkID0gcGhvdG9zX3NlYXJjaF90eXBlX2dldF9pZDsKKy0gIGlmYWNl LT5nZXRfd2hlcmUgPSBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X3doZXJlOworICAgaWZhY2UtPmlz X3NlYXJjaF9jcml0ZXJpb24gPSBwaG90b3Nfc2VhcmNoX3R5cGVfaXNfc2VhcmNoX2NyaXRlcmlv bjsKKyB9CisgCitAQCAtMjE3LDEyICsxOTUsMTMgQEAgcGhvdG9zX3NlYXJjaF90eXBlX25ldyAo Y29uc3QgZ2NoYXIgKmlkLCBjb25zdCBnY2hhciAqbmFtZSkKKyAKKyAKKyBQaG90b3NTZWFyY2hU eXBlICoKKy1waG90b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1bGwgKGNvbnN0IGdjaGFyICppZCwgY29u c3QgZ2NoYXIgKm5hbWUsIGNvbnN0IGdjaGFyICp3aGVyZSwgY29uc3QgZ2NoYXIgKmZpbHRlcikK KytwaG90b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1bGwgKGNvbnN0IGdjaGFyICppZCwgY29uc3QgZ2No YXIgKm5hbWUsIGNvbnN0IGdjaGFyICp0ZW1wbGF0ZV9wYXRoKQorIHsKKysgIGdfYXV0b3B0ciAo UGhvdG9zU3BhcnFsVGVtcGxhdGUpIHRlbXBsYXRlID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9u ZXcgKHRlbXBsYXRlX3BhdGgpOworKworICAgcmV0dXJuIGdfb2JqZWN0X25ldyAoUEhPVE9TX1RZ UEVfU0VBUkNIX1RZUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAiaWQiLCBpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICJuYW1lIiwgbmFtZSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICJmaWx0ZXIiLCBmaWx0ZXIsCistICAgICAgICAgICAgICAgICAgICAgICAid2hlcmUiLCB3aGVy ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICJzcGFycWwtdGVtcGxhdGUiLCB0ZW1wbGF0ZSwK KyAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworIH0KK2RpZmYgLS1naXQgYS9zcmMvcGhv dG9zLXNlYXJjaC10eXBlLmggYi9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLmgKK2luZGV4IDJmNzEz NWJkLi43ZDY5OWRkNCAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuaAorKysr IGIvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5oCitAQCAtMjQsNiArMjQsNyBAQAorICNkZWZpbmUg UEhPVE9TX1NFQVJDSF9UWVBFX0gKKyAKKyAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKysjaW5j bHVkZSAicGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oIgorIAorIEdfQkVHSU5fREVDTFMKKyAKK0BA IC0zOSw4ICs0MCw5IEBAIFBob3Rvc1NlYXJjaFR5cGUgICAgKnBob3Rvc19zZWFyY2hfdHlwZV9u ZXcgICAgICAgICAgICAgICAgKGNvbnN0IGdjaGFyICppZCwgY29uCisgCisgUGhvdG9zU2VhcmNo VHlwZSAgICAqcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsICAgICAgICAgICAoY29uc3QgZ2No YXIgKmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpuYW1lLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp3aGVyZSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBnY2hhciAqZmlsdGVyKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqdGVtcGxhdGVfcGF0 aCk7CisrCisrUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnBob3Rvc19zZWFyY2hfdHlwZV9nZXRfc3Bh cnFsX3RlbXBsYXRlIChQaG90b3NTZWFyY2hUeXBlICpzZWxmKTsKKyAKKyBHX0VORF9ERUNMUwor IAorZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmMgYi9zcmMvcGhvdG9z LXNwYXJxbC10ZW1wbGF0ZS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAu LmIzMjQzN2MwCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0 ZS5jCitAQCAtMCwwICsxLDE4NyBAQAorKy8qCisrICogUGhvdG9zIC0gYWNjZXNzLCBvcmdhbml6 ZSBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUKKysgKiBDb3B5cmlnaHQgwqkgMjAyMCBT YW0gVGh1cnNmaWVsZCA8c2FtQGFmdWVyYS5tZS51az4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisr ICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKysgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIg dmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAqIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgKiBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyAqCisrICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKysgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysgKi8KKysKKysjaW5jbHVkZSA8Z2lvL2dpby5oPgor KworKyNpbmNsdWRlICJwaG90b3Mtc3BhcnFsLXRlbXBsYXRlLmgiCisrCisrI2RlZmluZSBNQVhf U1BBUlFMX1RFTVBMQVRFX1NJWkUgKDEwMjQgKiAxMCkKKysKKytzdHJ1Y3QgX1Bob3Rvc1NwYXJx bFRlbXBsYXRlIHsKKysgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworKyAgZ2NoYXIgKnRlbXBs YXRlX3BhdGg7CisrICBnY2hhciAqdGVtcGxhdGVfdGV4dDsKKyt9OworKworK0dfREVGSU5FX1RZ UEUgKFBob3Rvc1NwYXJxbFRlbXBsYXRlLCBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlLCBHX1RZUEVf T0JKRUNUKQorKworK2VudW0geworKyAgUFJPUF8wLAorKyAgUFJPUF9URU1QTEFURV9QQVRILAor KyAgTl9QUk9QUworK307CisrCisrUGhvdG9zU3BhcnFsVGVtcGxhdGUgKgorK3Bob3Rvc19zcGFy cWxfdGVtcGxhdGVfbmV3IChjb25zdCBnY2hhciAqdGVtcGxhdGVfcGF0aCkKKyt7CisrICByZXR1 cm4gZ19vYmplY3RfbmV3IChQSE9UT1NfVFlQRV9TUEFSUUxfVEVNUExBVEUsICJ0ZW1wbGF0ZS1w YXRoIiwgdGVtcGxhdGVfcGF0aCwgTlVMTCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhvdG9z X3NwYXJxbF90ZW1wbGF0ZV9jb25zdHJ1Y3RlZCAoR09iamVjdCAqb2JqZWN0KQorK3sKKysgIFBo b3Rvc1NwYXJxbFRlbXBsYXRlICpzZWxmID0gUEhPVE9TX1NQQVJRTF9URU1QTEFURSAob2JqZWN0 KTsKKysgIGdfYXV0b3B0ciAoR0ZpbGUpIGZpbGUgPSBOVUxMOworKyAgZ19hdXRvcHRyIChHRmls ZUlucHV0U3RyZWFtKSBzdHJlYW0gPSBOVUxMOworKyAgZ2NoYXIgYnVmZmVyW01BWF9TUEFSUUxf VEVNUExBVEVfU0laRSArIDFdOworKyAgZ3NpemUgYnl0ZXNfcmVhZDsKKysgIGdfYXV0b3B0ciAo R0Vycm9yKSBlcnJvciA9IE5VTEw7CisrCisrICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3NwYXJx bF90ZW1wbGF0ZV9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3RlZCAob2JqZWN0KTsKKysKKysgIGZp bGUgPSBnX2ZpbGVfbmV3X2Zvcl91cmkgKHNlbGYtPnRlbXBsYXRlX3BhdGgpOworKworKyAgc3Ry ZWFtID0gZ19maWxlX3JlYWQgKGZpbGUsIE5VTEwsICZlcnJvcik7CisrCisrICBpZiAoIXN0cmVh bSkKKysgICAgeworKyAgICAgIGdfY3JpdGljYWwgKCJGYWlsZWQgdG8gb3BlbiB0ZW1wbGF0ZSAl czogJXMiLCBzZWxmLT50ZW1wbGF0ZV9wYXRoLCBlcnJvci0+bWVzc2FnZSk7CisrICAgIH0KKysK KysgIGdfaW5wdXRfc3RyZWFtX3JlYWRfYWxsIChHX0lOUFVUX1NUUkVBTSAoc3RyZWFtKSwgYnVm ZmVyLCBNQVhfU1BBUlFMX1RFTVBMQVRFX1NJWkUsICZieXRlc19yZWFkLCBOVUxMLCAmZXJyb3Ip OworKworKyAgaWYgKGVycm9yKQorKyAgICB7CisrICAgICAgZ19jcml0aWNhbCAoIkZhaWxlZCB0 byByZWFkIHRlbXBsYXRlICVzOiAlcyIsIHNlbGYtPnRlbXBsYXRlX3BhdGgsIGVycm9yLT5tZXNz YWdlKTsKKysgICAgfQorKworKyAgYnVmZmVyW2J5dGVzX3JlYWRdID0gJ1wwJzsKKysKKysgIHNl bGYtPnRlbXBsYXRlX3RleHQgID0gZ19zdHJkdXAgKGJ1ZmZlcik7CisrfQorKworK3N0YXRpYyB2 b2lkCisrcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9maW5hbGl6ZSAoR09iamVjdCAqb2JqZWN0KQor K3sKKysgIEdfT0JKRUNUX0NMQVNTIChwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX3BhcmVudF9jbGFz cyktPmZpbmFsaXplIChvYmplY3QpOworK30KKysKKytzdGF0aWMgdm9pZAorK3Bob3Rvc19zcGFy cWxfdGVtcGxhdGVfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICAgICpvYmplY3QsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgIHByb3BfaWQsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYWx1ZSAgICAgKnZhbHVlLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUGFyYW1TcGVjICpwc3BlYykKKyt7Cisr ICBQaG90b3NTcGFycWxUZW1wbGF0ZSAqc2VsZiA9IFBIT1RPU19TUEFSUUxfVEVNUExBVEUgKG9i amVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQpCisrICAgIHsKKysgICAgY2FzZSBQUk9QX1RF TVBMQVRFX1BBVEg6CisrICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nICh2YWx1ZSwgc2VsZi0+dGVt cGxhdGVfcGF0aCk7CisrICAgICAgYnJlYWs7CisrCisrICAgIGRlZmF1bHQ6CisrICAgICAgR19P QkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsK KysgICAgfQorK30KKysKKytzdGF0aWMgdm9pZAorK3Bob3Rvc19zcGFycWxfdGVtcGxhdGVfc2V0 X3Byb3BlcnR5IChHT2JqZWN0ICAgICAgKm9iamVjdCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICBwcm9wX2lkLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBHVmFsdWUgKnZhbHVlLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHUGFyYW1TcGVjICAgKnBzcGVjKQorK3sKKysgIFBob3Rv c1NwYXJxbFRlbXBsYXRlICpzZWxmID0gUEhPVE9TX1NQQVJRTF9URU1QTEFURSAob2JqZWN0KTsK KysKKysgIHN3aXRjaCAocHJvcF9pZCkKKysgICAgeworKyAgICBjYXNlIFBST1BfVEVNUExBVEVf UEFUSDoKKysgICAgICBzZWxmLT50ZW1wbGF0ZV9wYXRoID0gZ192YWx1ZV9kdXBfc3RyaW5nICh2 YWx1ZSk7CisrICAgICAgYnJlYWs7CisrCisrICAgIGRlZmF1bHQ6CisrICAgICAgR19PQkpFQ1Rf V0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKysgICAg fQorK30KKysKKytzdGF0aWMgdm9pZAorK3Bob3Rvc19zcGFycWxfdGVtcGxhdGVfY2xhc3NfaW5p dCAoUGhvdG9zU3BhcnFsVGVtcGxhdGVDbGFzcyAqa2xhc3MpCisreworKyAgR09iamVjdENsYXNz ICpvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyAoa2xhc3MpOworKworKyAgb2JqZWN0X2Ns YXNzLT5jb25zdHJ1Y3RlZCA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfY29uc3RydWN0ZWQ7Cisr ICBvYmplY3RfY2xhc3MtPmZpbmFsaXplID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9maW5hbGl6 ZTsKKysgIG9iamVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0 ZV9nZXRfcHJvcGVydHk7CisrICBvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHBob3Rvc19z cGFycWxfdGVtcGxhdGVfc2V0X3Byb3BlcnR5OworKworKyAgZ19vYmplY3RfY2xhc3NfaW5zdGFs bF9wcm9wZXJ0eSAob2JqZWN0X2NsYXNzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUFJPUF9URU1QTEFURV9QQVRILAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoInRlbXBsYXRlLXBhdGgiLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlbXBsYXRlIHBh dGgiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIlBhdGggdG8gdGhlIHRlbXBsYXRlIGZpbGUuIiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFNX0NPTlNU UlVDVF9PTkxZIHwgR19QQVJBTV9SRUFEV1JJVEUpKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytw aG90b3Nfc3BhcnFsX3RlbXBsYXRlX2luaXQgKFBob3Rvc1NwYXJxbFRlbXBsYXRlICpzZWxmKQor K3sKKyt9CisrCisrCisrZ2NoYXIgKgorK3Bob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3NwYXJx bCAoUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnNlbGYsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqZmlyc3RfYmluZGluZ19uYW1lLCAuLi4p CisreworKyAgdmFfbGlzdCB2YTsKKysgIGdjaGFyICpzcGFycWw7CisrCisrICBzcGFycWwgPSBz ZWxmLT50ZW1wbGF0ZV90ZXh0OworKworKyAgLyogRklYTUU6IHRoaXMgaXMgYW4gaW5lZmZpY2Vu dCB3YXkgdG8gZG8gdGVtcGxhdGUgc3Vic3RpdHV0aW9ucworKyAgICogYmVjYXVzZSB3ZSBhbGxv Y2F0ZSBhbmQgZnJlZSBhIGNvcHkgb2YgdGhlIHN0cmluZyBmb3IgZWFjaCBiaW5kaW5nLgorKyAg ICogV2Ugc2hvdWxkIGNoZWNrIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS90ZW1wbGF0 ZS1nbGliLworKyAgICovCisrICBpZiAoZmlyc3RfYmluZGluZ19uYW1lKQorKyAgICB7CisrICAg ICAgR1JlZ2V4ICpyZWdleDsKKysgICAgICBnY2hhciAqbmFtZV9yZWdleDsKKysgICAgICBjb25z dCBnY2hhciAqbmFtZTsKKysgICAgICBjb25zdCBnY2hhciAqdmFsdWU7CisrCisrICAgICAgdmFf c3RhcnQgKHZhLCBmaXJzdF9iaW5kaW5nX25hbWUpOworKyAgICAgIG5hbWUgPSBmaXJzdF9iaW5k aW5nX25hbWU7CisrICAgICAgZG8geworKyAgICAgICAgdmFsdWUgPSB2YV9hcmcgKHZhLCBjb25z dCBnY2hhciAqKTsKKysKKysgICAgICAgIGlmICh2YWx1ZSA9PSBOVUxMKQorKyAgICAgICAgICB7 CisrICAgICAgICAgICAgZ19jcml0aWNhbCAoIk1pc3NpbmcgdmFsdWUgZm9yIGFyZ3VtZW50IFwi JXNcIiIsIG5hbWUpOworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICB9CisrCisrICAg ICAgICBuYW1lX3JlZ2V4ID0gZ19zdHJkdXBfcHJpbnRmICgie3tcXHM/JXNcXHM/fX0iLCBuYW1l KTsKKysgICAgICAgIHJlZ2V4ID0gZ19yZWdleF9uZXcgKG5hbWVfcmVnZXgsIDAsIDAsIE5VTEwp OworKyAgICAgICAgc3BhcnFsID0gZ19yZWdleF9yZXBsYWNlX2xpdGVyYWwgKHJlZ2V4LCBzcGFy cWwsIC0xLCAwLCB2YWx1ZSwgMCwgTlVMTCkgOworKyAgICAgIH0gd2hpbGUgKChuYW1lID0gdmFf YXJnICh2YSwgY29uc3QgZ2NoYXIgKikpKTsKKysKKysgICAgICB2YV9lbmQgKHZhKTsKKysgICAg fQorKworKyAgcmV0dXJuIHNwYXJxbDsKKyt9CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zcGFy cWwtdGVtcGxhdGUuaCBiL3NyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmgKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uNjYzNTFiMzgKKy0tLSAvZGV2L251bGwKKysrKyBi L3NyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmgKK0BAIC0wLDAgKzEsMzggQEAKKysvKgorKyAq IFBob3RvcyAtIGFjY2Vzcywgb3JnYW5pemUgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01F CisrICogQ29weXJpZ2h0IMKpIDIwMjAgU2FtIFRodXJzZmllbGQgPHNhbUBhZnVlcmEubWUudWs+ CisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICogdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysg KiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyAqCisrICogVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisr ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisrICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysgKgorKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICogYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrICovCisr CisrI3ByYWdtYSBvbmNlCisrCisrI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisrCisrR19CRUdJ Tl9ERUNMUworKworKyNkZWZpbmUgUEhPVE9TX1RZUEVfU1BBUlFMX1RFTVBMQVRFIChwaG90b3Nf c3BhcnFsX3RlbXBsYXRlX2dldF90eXBlKCkpCisrCisrR19ERUNMQVJFX0ZJTkFMX1RZUEUgKFBo b3Rvc1NwYXJxbFRlbXBsYXRlLCBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlLCBQSE9UT1MsIFNQQVJR TF9URU1QTEFURSwgR09iamVjdCkKKysKKytzdHJ1Y3QgX1Bob3Rvc1NwYXJxbFRlbXBsYXRlQ2xh c3MKKyt7CisrICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworK307CisrCisrUGhvdG9zU3Bh cnFsVGVtcGxhdGUgKnBob3Rvc19zcGFycWxfdGVtcGxhdGVfbmV3IChjb25zdCBnY2hhciAqdGVt cGxhdGVfcGF0aCk7CisrCisrZ2NoYXIgKnBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3NwYXJx bCAoUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnNlbGYsIGNvbnN0IGdjaGFyICpmaXJzdF9iaW5kaW5n X25hbWUsIC4uLikgIEdfR05VQ19OVUxMX1RFUk1JTkFURUQ7CisrCisrR19FTkRfREVDTFMKK2Rp ZmYgLS1naXQgYS9zcmMvcGhvdG9zLmdyZXNvdXJjZS54bWwgYi9zcmMvcGhvdG9zLmdyZXNvdXJj ZS54bWwKK2luZGV4IDEwMTViMTFkLi4zOWU2ZDg0MiAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mu Z3Jlc291cmNlLnhtbAorKysrIGIvc3JjL3Bob3Rvcy5ncmVzb3VyY2UueG1sCitAQCAtMzUsNiAr MzUsMTAgQEAKKyAgICAgPGZpbGUgYWxpYXM9InNlbGVjdGlvbi10b29sYmFyLnVpIiBwcmVwcm9j ZXNzPSJ4bWwtc3RyaXBibGFua3MiIGNvbXByZXNzZWQ9InRydWUiPnBob3Rvcy1zZWxlY3Rpb24t dG9vbGJhci51aTwvZmlsZT4KKyAgICAgPGZpbGUgYWxpYXM9InNoYXJlLWRpYWxvZy51aSIgcHJl cHJvY2Vzcz0ieG1sLXN0cmlwYmxhbmtzIiBjb21wcmVzc2VkPSJ0cnVlIj5waG90b3Mtc2hhcmUt ZGlhbG9nLnVpPC9maWxlPgorICAgICA8ZmlsZSBhbGlhcz0iem9vbS1jb250cm9scy51aSIgcHJl cHJvY2Vzcz0ieG1sLXN0cmlwYmxhbmtzIiBjb21wcmVzc2VkPSJ0cnVlIj5waG90b3Mtem9vbS1j b250cm9scy51aTwvZmlsZT4KKysgICAgPGZpbGUgYWxpYXM9ImFsbC5zcGFycWwudGVtcGxhdGUi PnF1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZTwvZmlsZT4KKysgICAgPGZpbGUgYWxpYXM9ImNv bGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZSI+cXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVt cGxhdGU8L2ZpbGU+CisrICAgIDxmaWxlIGFsaWFzPSJmYXZvcml0ZS1waG90b3Muc3BhcnFsLnRl bXBsYXRlIj5xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGU8L2ZpbGU+Cisr ICAgIDxmaWxlIGFsaWFzPSJwaG90b3Muc3BhcnFsLnRlbXBsYXRlIj5xdWVyaWVzL3Bob3Rvcy5z cGFycWwudGVtcGxhdGU8L2ZpbGU+CisgICA8L2dyZXNvdXJjZT4KKyAKKyAgIDxncmVzb3VyY2Ug cHJlZml4PSIvb3JnL2dub21lL1Bob3Rvcy9ndGsiPgorZGlmZiAtLWdpdCBhL3NyYy9xdWVyaWVz L2FsbC5zcGFycWwudGVtcGxhdGUgYi9zcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjFjZWY5OGU4CistLS0gL2Rldi9u dWxsCisrKysgYi9zcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlCitAQCAtMCwwICsxLDMx IEBACisrU0VMRUNUIHt7cHJvamVjdGlvbn19CisreworKyAgICB7CisrICAgICAgICBTRUxFQ1Qg e3twcm9qZWN0aW9ufX0KKysgICAgICAgIHsKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAg ICAgIFNFTEVDVCA/dXJuIENPVU5UKD9pdGVtKSBBUyA/Y291bnQKKysgICAgICAgICAgICAgICAg eworKyAgICAgICAgICAgICAgICAgICAgP3VybiBhIG5mbzpEYXRhQ29udGFpbmVyLgorKyAgICAg ICAgICAgICAgICAgICAgP2l0ZW0gYSBubW06UGhvdG87IG5pZTppc1BhcnRPZiA/dXJuLgorKyAg ICAgICAgICAgICAgICB9IEdST1VQIEJZID91cm4KKysgICAgICAgICAgICB9CisrICAgICAgICAg ICAgRklMVEVSICg/Y291bnQgPiAwICYmIHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9fSAm JiB7e3NlYXJjaF9maWx0ZXJ9fSkKKysgICAgICAgIH0KKysgICAgICAgIEdST1VQIEJZID91cm4K KysgICAgfQorKyAgICBVTklPTgorKyAgICB7CisrICAgICAgICBTRUxFQ1Qge3twcm9qZWN0aW9u fX0KKysgICAgICAgIHsKKysgICAgICAgICAgICA/dXJuIGEgbm1tOlBob3RvIC4KKysgICAgICAg ICAgICBPUFRJT05BTCB7ID91cm4gbmNvOmNyZWF0b3IgP2NyZWF0b3IgLiB9CisrICAgICAgICAg ICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJsaXNoZXIgP3B1Ymxpc2hlciAuIH0KKysgICAgICAg ICAgICB7e2l0ZW1fcGF0dGVybn19CisrICAgICAgICAgICAgRklMVEVSICh7e3Bob3Rvc19kZWZh dWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQor KyAgICAgICAgfQorKyAgICAgICAgR1JPVVAgQlkgP3VybgorKyAgICB9CisrfQorK3t7b3JkZXJ9 fQorK3t7b2Zmc2V0X2xpbWl0fX0KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9jb2xsZWN0aW9u cy5zcGFycWwudGVtcGxhdGUgYi9zcmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxh dGUKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uMjBiMzVjZDYKKy0tLSAv ZGV2L251bGwKKysrKyBiL3NyYy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZQor QEAgLTAsMCArMSwxNCBAQAorK1NFTEVDVCB7e3Byb2plY3Rpb259fQorK3sKKysgICAgeworKyAg ICAgICAgU0VMRUNUID91cm4gQ09VTlQoP2l0ZW0pIEFTID9jb3VudAorKyAgICAgICAgeworKyAg ICAgICAgICAgID91cm4gYSBuZm86RGF0YUNvbnRhaW5lci4KKysgICAgICAgICAgICA/aXRlbSBh IG5tbTpQaG90bzsgbmllOmlzUGFydE9mID91cm4uCisrICAgICAgICB9IEdST1VQIEJZID91cm4K KysgICAgfQorKyAgICBGSUxURVIgKD9jb3VudCA+IDAgJiYge3tjb2xsZWN0aW9uc19kZWZhdWx0 X2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorK30KKytHUk9VUCBCWSA/dXJuCisre3tv cmRlcn19Cisre3tvZmZzZXRfbGltaXR9fQorZGlmZiAtLWdpdCBhL3NyYy9xdWVyaWVzL2Zhdm9y aXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUgYi9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Mu c3BhcnFsLnRlbXBsYXRlCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjA4 ODVhMDhhCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Mu c3BhcnFsLnRlbXBsYXRlCitAQCAtMCwwICsxLDEyIEBACisrU0VMRUNUIHt7cHJvamVjdGlvbn19 CisreworKyAgICA/dXJuIGEgbm1tOlBob3RvIC4KKysgICAgP3VybiBhIG5tbTpQaG90bzsgbmFv Omhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWctZmF2b3JpdGUgLgorKyAgICBPUFRJT05BTCB7ID91 cm4gbmNvOmNyZWF0b3IgP2NyZWF0b3IgLiB9CisrICAgIE9QVElPTkFMIHsgP3VybiBuY286cHVi bGlzaGVyID9wdWJsaXNoZXIgLiB9CisrICAgIHt7aXRlbV9wYXR0ZXJufX0KKysgICAgRklMVEVS ICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRlcn19ICYmIHt7c2Vh cmNoX2ZpbHRlcn19KQorK30KKytHUk9VUCBCWSA/dXJuCisre3tvcmRlcn19Cisre3tvZmZzZXRf bGltaXR9fQorZGlmZiAtLWdpdCBhL3NyYy9xdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUg Yi9zcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAuLjRlYjEwYjc0CistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvcXVl cmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlCitAQCAtMCwwICsxLDExIEBACisrU0VMRUNUIHt7 cHJvamVjdGlvbn19CisreworKyAgICA/dXJuIGEgbm1tOlBob3RvIC4KKysgICAgT1BUSU9OQUwg eyA/dXJuIG5jbzpjcmVhdG9yID9jcmVhdG9yIC4gfQorKyAgICBPUFRJT05BTCB7ID91cm4gbmNv OnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQorKyAgICB7e2l0ZW1fcGF0dGVybn19CisrICAgIEZJ TFRFUiAoe3twaG90b3NfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7 e3NlYXJjaF9maWx0ZXJ9fSkKKyt9CisrR1JPVVAgQlkgP3VybgorK3t7b3JkZXJ9fQorK3t7b2Zm c2V0X2xpbWl0fX0KKy0tIAorR2l0TGFiCisKKworRnJvbSBkNjFkNDQwZWZlMzQwYmRhNGUxOTVk NjQwMDY2ZmIyOTIyMGQwY2I1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2FtIFRo dXJzZmllbGQgPHNhbUBhZnVlcmEubWUudWs+CitEYXRlOiBTYXQsIDIzIE1heSAyMDIwIDEzOjM2 OjI1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNC80XSBQb3J0IHRvIFRyYWNrZXIgMworCitOb3Rh YmxlIGNoYW5nZXM6CisKKyAgKiBVc2VyIGRhdGEgKGZhdm91cml0ZXMsIGFsYnVtcykgaXMgbm93 IHN0b3JlZCBpbiBhIHByaXZhdGUgZGF0YWJhc2UgaW4KKyAgICB+Ly5sb2NhbC9zaGFyZS9nbm9t ZS1waG90b3MuIFRoaXMgaXMgY29tYmluZWQgd2l0aCB0aGUgVHJhY2tlciBNaW5lcgorICAgIEZT IGluZGV4IG9mIHBob3RvcyBhdCBxdWVyeSB0aW1lLgorICAqIEluc2lkZSBGbGF0cGFrLCB0aGUg YXBwIGNvbm5lY3RzIHRvIFRyYWNrZXIgdmlhIHRoZSBuZXcKKyAgICB4ZGctdHJhY2tlci1wb3J0 YWwgaW5zdGVhZCBvZiB0YWxraW5nIGRpcmVjdGx5IG92ZXIgRC1CdXMuIEFjY2VzcyBpcworICAg IGxpbWl0ZWQgYnkgdGhlIHBvcnRhbCBzbyB0aGUgYXBwIGNhbiBvbmx5IHNlZSB0aGUgUGljdHVy ZXMgZ3JhcGguCisgICogVGhlIEZsYXRwYWsgYnVpbGQgY2FuIHVzZSBhIGJ1bmRsZWQgdmVyc2lv biBvZiBUcmFja2VyIE1pbmVycywgaWYgYQorICAgIHN1aXRhYmxlIHZlcnNpb24gaXMgbm90IGF2 YWlsYWJsZSBvbiB0aGUgaG9zdC4KKyAgKiBDaGFuZ2UgZGV0ZWN0aW9uIGlzIGRvbmUgdXNpbmcg VHJhY2tlck5vdGlmaWVyIGluc3RlYWQgb2Ygd2F0Y2hpbmcKKyAgICB0aGUgR3JhcGhVcGRhdGVk IEQtQnVzIHNpZ25hbCBkaXJlY3RseS4KKworQ2xvc2VzIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9y Zy9HTk9NRS9nbm9tZS1waG90b3MvLS9pc3N1ZXMvNTkKK0Nsb3NlcyBodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvZ25vbWUtcGhvdG9zLy0vaXNzdWVzLzE1MgorLS0tCisgZGF0YS9tZXNv bi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKKyBkYXRhL3RyYWNr ZXIvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgfCAgMzMgKysKKyAuLi5lLlBob3Rv cy5UcmFja2VyMy5NaW5lci5FeHRyYWN0LnNlcnZpY2UuaW4gfCAgIDcgKworIC4uLm9tZS5QaG90 b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMuc2VydmljZS5pbiB8ICAgNyArCisgZGF0YS90cmFja2Vy L29yZy5nbm9tZS5QaG90b3MuZG9tYWluLnJ1bGUuaW4gIHwgIDIwICsKKyBmbGF0cGFrL29yZy5n bm9tZS5QaG90b3MuanNvbiAgICAgICAgICAgICAgICAgfCAgNTUgKy0KKyBtZXNvbi5idWlsZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KKyBzcmMvbWVzb24uYnVp bGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKy0KKyAuLi5mcmVlZGVza3Rv cC5UcmFja2VyMy5NaW5lci5GaWxlcy5JbmRleC54bWwgfCAgMTEgKworIHNyYy9vcmcuZnJlZWRl c2t0b3AuVHJhY2tlcjMuTWluZXIueG1sICAgICAgICB8ICA1NiArKysKKyBzcmMvcGhvdG9zLWFw cGxpY2F0aW9uLmMgICAgICAgICAgICAgICAgICAgICAgfCAxODQgKysrLS0tLQorIHNyYy9waG90 b3MtYmFzZS1pdGVtLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQorIHNyYy9waG90 b3MtaW5kZXhpbmctbm90aWZpY2F0aW9uLmMgICAgICAgICAgICB8ICA1MyArLQorIHNyYy9waG90 b3MtaXRlbS1tYW5hZ2VyLmMgICAgICAgICAgICAgICAgICAgICB8ICA2OSArLS0KKyBzcmMvcGhv dG9zLXF1YXJrcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjAgKy0KKyBzcmMvcGhv dG9zLXF1ZXJ5LWJ1aWxkZXIuYyAgICAgICAgICAgICAgICAgICAgfCAxNDggKysrKy0tCisgc3Jj L3Bob3Rvcy1zZWFyY2gtY29udGV4dC5jICAgICAgICAgICAgICAgICAgIHwgICAzICsKKyBzcmMv cGhvdG9zLXNlYXJjaC1jb250ZXh0LmggICAgICAgICAgICAgICAgICAgfCAgIDEgKworIHNyYy9w aG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuYyAgICAgICAgICAgICB8ICAgMiArLQorIHNyYy9w aG90b3Mtc291cmNlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNCArLQorIHNyYy9w aG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuYyAgICAgICAgICAgICB8IDEzNiAtLS0tLQorIHNy Yy9waG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuaCAgICAgICAgICAgICB8ICA2NCAtLS0KKyBz cmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuYyAgICAgICAgICAgfCA0NjggLS0tLS0t LS0tLS0tLS0tLS0tCisgc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmggICAgICAg ICAgIHwgIDQyIC0tCisgc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYyAgICAgICAgICAg ICAgIHwgIDEyICstCisgc3JjL3Bob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHkueG1sICAg ICAgIHwgICAyICstCisgc3JjL3Bob3Rvcy10cmFja2VyLWltcG9ydC1jb250cm9sbGVyLmMgICAg ICAgIHwgIDg1ICsrLS0KKyBzcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuYyAgICAgICAgICAgICAg ICAgICAgfCAyMDYgKysrKysrKy0KKyBzcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuaCAgICAgICAg ICAgICAgICAgICAgfCAgIDcgKworIHNyYy9waG90b3MtdHJhY2tlci1yZXNvdXJjZXMueG1sICAg ICAgICAgICAgICB8ICAzMSAtLQorIHNyYy9waG90b3MtdXRpbHMuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAyNCArLQorIHNyYy9waG90b3MtdXRpbHMuaCAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQorIHNyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUgICAg ICAgICAgICAgICB8ICAzNCArLQorIHNyYy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1w bGF0ZSAgICAgICB8ICAyMCArLQorIHNyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwu dGVtcGxhdGUgICB8ICAyMCArLQorIHNyYy9xdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUg ICAgICAgICAgICB8ICAyMiArLQorIDM2IGZpbGVzIGNoYW5nZWQsIDc1NCBpbnNlcnRpb25zKCsp LCAxMTQ2IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkYXRhL3RyYWNrZXIvbWVz b24uYnVpbGQKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90 b3MuVHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlLmluCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZp Y2UuaW4KKyBjcmVhdGUgbW9kZSAxMDA2NDQgZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3Mu ZG9tYWluLnJ1bGUuaW4KKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL29yZy5mcmVlZGVza3RvcC5U cmFja2VyMy5NaW5lci5GaWxlcy5JbmRleC54bWwKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL29y Zy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci54bWwKKyBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj L3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9w aG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuaAorIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvcGhv dG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuYworIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvcGhv dG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuaAorIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvcGhv dG9zLXRyYWNrZXItcmVzb3VyY2VzLnhtbAorCitkaWZmIC0tZ2l0IGEvZGF0YS9tZXNvbi5idWls ZCBiL2RhdGEvbWVzb24uYnVpbGQKK2luZGV4IDc4OThiMGNjLi5mMGQ4NWQ0YiAxMDA2NDQKKy0t LSBhL2RhdGEvbWVzb24uYnVpbGQKKysrKyBiL2RhdGEvbWVzb24uYnVpbGQKK0BAIC01NCwzICs1 NCw1IEBAIGluc3RhbGxfZGF0YSgKKyAgIHBob3Rvc19uYW1lc3BhY2UudG9fbG93ZXIoKSArICcu Z3NjaGVtYS54bWwnLAorICAgaW5zdGFsbF9kaXI6IGpvaW5fcGF0aHMocGhvdG9zX2RhdGFkaXIs ICdnbGliLTIuMCcsICdzY2hlbWFzJyksCisgKQorKworK3N1YmRpcigndHJhY2tlcicpCitkaWZm IC0tZ2l0IGEvZGF0YS90cmFja2VyL21lc29uLmJ1aWxkIGIvZGF0YS90cmFja2VyL21lc29uLmJ1 aWxkCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLmFjY2M5OWMyCistLS0g L2Rldi9udWxsCisrKysgYi9kYXRhL3RyYWNrZXIvbWVzb24uYnVpbGQKK0BAIC0wLDAgKzEsMzMg QEAKKysjIEZpbGVzIG5lZWRlZCBmb3IgcnVubmluZyBUcmFja2VyIGluc2lkZSB0aGUgRmxhdHBh ayBzYW5kYm94LCBmb3Igc3lzdGVtcworKyMgd2hpY2ggZG9uJ3QgaGF2ZSBhIHN1aXRhYmxlIHZl cnNpb24gb2YgVHJhY2tlciBpbiB0aGUgaG9zdCBPUy4KKysjCisrIyBXZSBtdXN0IGV4cG9ydCB0 aGUgLnNlcnZpY2UgZmlsZXMgZnJvbSB0aGUgc2FuZGJveCBzbyB0aGV5IHdvcmsgb24gdGhlCisr IyBzZXNzaW9uIGJ1cy4gVGhpcyBtZWFucyB0aGUgVHJhY2tlciBkb21haW4gbmFtZSBtdXN0IGNv cnJlc3BvbmQgd2l0aCB0aGUKKysjIGFwcGxpY2F0aW9uIElELgorKworKworK2RvbWFpbl9vbnRv bG9naWVzX2RpciA9IGdldF9vcHRpb24oJ2RhdGFkaXInKSAvICd0cmFja2VyMycgLyAnZG9tYWlu LW9udG9sb2dpZXMnCisrZGJ1c19zZXJ2aWNlc19kaXIgPSBnZXRfb3B0aW9uKCdkYXRhZGlyJykg LyAnZGJ1cy0xJyAvICdzZXJ2aWNlcycKKysKKyt0cmFja2VyX2RvbWFpbl9jb25maWcgPSBjb25m aWd1cmF0aW9uX2RhdGEoKQorK3RyYWNrZXJfZG9tYWluX2NvbmZpZy5zZXQoJ2FwcGxpY2F0aW9u X2lkJywgcGhvdG9zX25hbWVzcGFjZSkKKyt0cmFja2VyX2RvbWFpbl9jb25maWcuc2V0KCdkb21h aW5fcnVsZScsIGdldF9vcHRpb24oJ3ByZWZpeCcpIC8gZG9tYWluX29udG9sb2dpZXNfZGlyIC8g cGhvdG9zX25hbWVzcGFjZSArICcuZG9tYWluLnJ1bGUnKQorKworK2NvbmZpZ3VyZV9maWxlKAor KyAgaW5wdXQ6ICdvcmcuZ25vbWUuUGhvdG9zLmRvbWFpbi5ydWxlLmluJywKKysgIG91dHB1dDog cGhvdG9zX25hbWVzcGFjZSArICcuZG9tYWluLnJ1bGUnLAorKyAgY29uZmlndXJhdGlvbjogdHJh Y2tlcl9kb21haW5fY29uZmlnLAorKyAgaW5zdGFsbF9kaXI6IGRvbWFpbl9vbnRvbG9naWVzX2Rp cikKKysKKytjb25maWd1cmVfZmlsZSgKKysgIGlucHV0OiAnb3JnLmdub21lLlBob3Rvcy5UcmFj a2VyMy5NaW5lci5FeHRyYWN0LnNlcnZpY2UuaW4nLAorKyAgb3V0cHV0OiBwaG90b3NfbmFtZXNw YWNlICsgJy5UcmFja2VyMy5NaW5lci5FeHRyYWN0LnNlcnZpY2UnLAorKyAgY29uZmlndXJhdGlv bjogdHJhY2tlcl9kb21haW5fY29uZmlnLAorKyAgaW5zdGFsbF9kaXI6IGRidXNfc2VydmljZXNf ZGlyKQorKworK2NvbmZpZ3VyZV9maWxlKAorKyAgaW5wdXQ6ICdvcmcuZ25vbWUuUGhvdG9zLlRy YWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UuaW4nLAorKyAgb3V0cHV0OiBwaG90b3NfbmFtZXNw YWNlICsgJy5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNlJywKKysgIGNvbmZpZ3VyYXRpb246 IHRyYWNrZXJfZG9tYWluX2NvbmZpZywKKysgIGluc3RhbGxfZGlyOiBkYnVzX3NlcnZpY2VzX2Rp cikKKysKK2RpZmYgLS1naXQgYS9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2Vy My5NaW5lci5FeHRyYWN0LnNlcnZpY2UuaW4gYi9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rv cy5UcmFja2VyMy5NaW5lci5FeHRyYWN0LnNlcnZpY2UuaW4KK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMC4uZWI3YTg3YWEKKy0tLSAvZGV2L251bGwKKysrKyBiL2RhdGEvdHJh Y2tlci9vcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbgor QEAgLTAsMCArMSw3IEBACisrW0QtQlVTIFNlcnZpY2VdCisrTmFtZT1AYXBwbGljYXRpb25faWRA LlRyYWNrZXIzLk1pbmVyLkV4dHJhY3QKKytFeGVjPS9hcHAvbGliZXhlYy90cmFja2VyLWV4dHJh Y3QtMyAtLWRvbWFpbi1vbnRvbG9neSBAZG9tYWluX3J1bGVACisrCisrIyBNaW5lciBkZXRhaWxz IG5lZWRlZCBmb3IgdHJhY2tlci1jb250cm9sCisrUGF0aD0vb3JnL2ZyZWVkZXNrdG9wL1RyYWNr ZXIzL01pbmVyL0V4dHJhY3QKKytOYW1lU3VmZml4PU1pbmVyLkZpbGVzCitkaWZmIC0tZ2l0IGEv ZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMuc2Vydmlj ZS5pbiBiL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZpbGVz LnNlcnZpY2UuaW4KK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uNGZhNzM3 MWQKKy0tLSAvZGV2L251bGwKKysrKyBiL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLlRy YWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UuaW4KK0BAIC0wLDAgKzEsNyBAQAorK1tELUJVUyBT ZXJ2aWNlXQorK05hbWU9QGFwcGxpY2F0aW9uX2lkQC5UcmFja2VyMy5NaW5lci5GaWxlcworK0V4 ZWM9L2FwcC9saWJleGVjL3RyYWNrZXItbWluZXItZnMtMyAtLWRvbWFpbi1vbnRvbG9neSBAZG9t YWluX3J1bGVAIC0taW5pdGlhbC1zbGVlcCAwCisrCisrIyBNaW5lciBkZXRhaWxzIG5lZWRlZCBm b3IgdHJhY2tlci1jb250cm9sCisrUGF0aD0vb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIzL01pbmVy L0ZpbGVzCisrTmFtZVN1ZmZpeD1NaW5lci5GaWxlcworZGlmZiAtLWdpdCBhL2RhdGEvdHJhY2tl ci9vcmcuZ25vbWUuUGhvdG9zLmRvbWFpbi5ydWxlLmluIGIvZGF0YS90cmFja2VyL29yZy5nbm9t ZS5QaG90b3MuZG9tYWluLnJ1bGUuaW4KK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwMC4uOGY1ZmM0YTEKKy0tLSAvZGV2L251bGwKKysrKyBiL2RhdGEvdHJhY2tlci9vcmcuZ25v bWUuUGhvdG9zLmRvbWFpbi5ydWxlLmluCitAQCAtMCwwICsxLDIwIEBACisrIyBUaGlzIGRlZmlu ZXMgYSBwcml2YXRlIFRyYWNrZXIgZG9tYWluIGZvciBHTk9NRSBQaG90b3MuCisrIworKyMgSXQn cyB1c2VkIHRvIHJ1biB0aGUgVHJhY2tlciBpbmRleGVyIGluc2lkZSBhIEZsYXRwYWsgc2FuZGJv eCwgd2hlbiBQaG90b3MgaXMKKysjIHJ1bm5pbmcgb24gYSBob3N0IHRoYXQgZG9lc24ndCBoYXZl IGEgc3VpdGFibGUgdmVyc2lvbiBvZiBUcmFja2VyIGluc3RhbGxlZC4KKysKKytbRG9tYWluT250 b2xvZ3ldCisrIyBMb2NhdGlvbiBmb3IgdGhlIFRyYWNrZXIgZGF0YWJhc2UKKytDYWNoZUxvY2F0 aW9uPSRYREdfQ0FDSEVfSE9NRS9nbm9tZS1waG90b3MvbWluZXIvZmlsZXMKKysKKysjIE5hbWUg b2YgdGhlIG9udG9sb2d5IHRvIHVzZSwgbXVzdCBiZSBvbmUgbG9jYXRlZCBpbgorKyMgJChzaGFy ZWRpcikvdHJhY2tlci9vbnRvbG9naWVzCisrT250b2xvZ3lOYW1lPW5lcG9tdWsKKysKKysjIERC dXMgbmFtZSBmb3IgdGhlIG93bmVyIChub3Qgb3B0aW9uYWwpLiBUcmFja2VyIHdpbGwgdXNlCisr IyB0aGUgZG9tYWluIGFzIHRoZSBwcmVmaXggb2YgdGhlIERCdXMgbmFtZSBmb3IgYWxsIHRoZQor KyMgc2VydmljZXMgcmVsYXRlZCB0byB0aGlzIGRvbWFpbiBvbnRvbG9neS4KKytEb21haW49QGFw cGxpY2F0aW9uX2lkQAorKworKyMgTGlzdCBvZiBtaW5lcnMgd2UgZXhwZWN0IHRvIHJ1biBpbiB0 aGlzIGRvbWFpbi4KKytNaW5lcnM9TWluZXIuRmlsZXM7TWluZXIuRXh0cmFjdAorZGlmZiAtLWdp dCBhL2ZsYXRwYWsvb3JnLmdub21lLlBob3Rvcy5qc29uIGIvZmxhdHBhay9vcmcuZ25vbWUuUGhv dG9zLmpzb24KK2luZGV4IDVkMTY2ODljLi5hZGZkYWYzNCAxMDA2NDQKKy0tLSBhL2ZsYXRwYWsv b3JnLmdub21lLlBob3Rvcy5qc29uCisrKysgYi9mbGF0cGFrL29yZy5nbm9tZS5QaG90b3MuanNv bgorQEAgLTcsNyArNyw3IEBACisgICAgICJ0YWdzIjogWyAibmlnaHRseSIgXSwKKyAgICAgImRl c2t0b3AtZmlsZS1uYW1lLXByZWZpeCI6ICIoTmlnaHRseSkgIiwKKyAgICAgImZpbmlzaC1hcmdz IjogWworLSAgICAgICAgIi0tZW52PVRSQUNLRVJfU1BBUlFMX0JBQ0tFTkQ9YnVzIiwKKysgICAg ICAgICItLWFkZC1wb2xpY3k9VHJhY2tlcjMuZGJ1czpvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMu TWluZXIuRmlsZXM9dHJhY2tlcjpQaWN0dXJlcyIsCisgICAgICAgICAiLS1maWxlc3lzdGVtPXhk Zy1kb3dubG9hZCIsCisgICAgICAgICAiLS1maWxlc3lzdGVtPXhkZy1waWN0dXJlcyIsCisgICAg ICAgICAiLS1tZXRhZGF0YT1YLURDb25mPW1pZ3JhdGUtcGF0aD0vb3JnL2dub21lL3Bob3Rvcy8i LAorQEAgLTE3LDggKzE3LDggQEAKKyAgICAgICAgICItLXNvY2tldD13YXlsYW5kIiwKKyAgICAg ICAgICItLXNvY2tldD14MTEiLAorICAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5mcmVlZGVza3Rv cC5GaWxlTWFuYWdlcjEiLAorLSAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5mcmVlZGVza3RvcC5U cmFja2VyMSIsCistICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIx Lk1pbmVyLkV4dHJhY3QiLAorKyAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5mcmVlZGVza3RvcC5U cmFja2VyMy5NaW5lci5GaWxlcyIsCisrICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmZyZWVkZXNr dG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4IiwKKyAgICAgICAgICItLXRhbGstbmFtZT1j b20uaW50ZWwuZGxleW5hLXJlbmRlcmVyIiwKKyAgICAgICAgICItLXRhbGstbmFtZT1vcmcuZ25v bWUuQ29udHJvbENlbnRlciIsCisgICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmdub21lLlNldHRp bmdzRGFlbW9uIiwKK0BAIC0yNDgsNTYgKzI0OCwyMiBAQAorICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgXQorICAgICAgICAgfSwKKy0gICAgICAgIHsKKy0gICAgICAgICAgICAibmFt ZSI6ICJ0cmFja2VyIiwKKy0gICAgICAgICAgICAiYnVpbGRzeXN0ZW0iOiAibWVzb24iLAorLSAg ICAgICAgICAgICJjbGVhbnVwIjogWyAiL2JpbiIsICIvZXRjIiwgIi9saWIvZ2lyZXBvc2l0b3J5 LTEuMCIsICIvbGliZXhlYyIsICIvc2hhcmUvZGJ1cy0xIiwgIi9zaGFyZS9naXItMS4wIiBdLAor LSAgICAgICAgICAgICJjb25maWctb3B0cyI6IFsgIi1EYmFzaF9jb21wbGV0aW9uPW5vIiwgIi1E ZG9jcz1mYWxzZSIsICItRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyIgXSwKKy0gICAgICAgICAg ICAic291cmNlcyI6IFsKKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAg InR5cGUiOiAiZ2l0IiwKKy0gICAgICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRs YWIuZ25vbWUub3JnL0dOT01FL3RyYWNrZXIuZ2l0IiwKKy0gICAgICAgICAgICAgICAgICAgICJi cmFuY2giOiAidHJhY2tlci0yLjMiCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBd CistICAgICAgICB9LAorLSAgICAgICAgeworLSAgICAgICAgICAgICJuYW1lIjogImludGx0b29s IiwKKy0gICAgICAgICAgICAiY2xlYW51cCI6IFsgIioiIF0sCistICAgICAgICAgICAgInNvdXJj ZXMiOiBbCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICJ0eXBlIjog ImFyY2hpdmUiLAorLSAgICAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2xhdW5jaHBh ZC5uZXQvaW50bHRvb2wvdHJ1bmsvMC41MS4wLytkb3dubG9hZC9pbnRsdG9vbC0wLjUxLjAudGFy Lmd6IiwKKy0gICAgICAgICAgICAgICAgICAgICJzaGEyNTYiOiAiNjdjNzRkOTQxOTZiMTUzYjc3 NGFiOWY4OWIyZmE2YzZiYTc5MzUyNDA3MDM3YzhjMTRkNWFlYjMzNGU5NTljZCIKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIF0KKy0gICAgICAgIH0sCisgICAgICAgICB7CisgICAg ICAgICAgICAgIm5hbWUiOiAidHJhY2tlci1taW5lcnMiLAorICAgICAgICAgICAgICJidWlsZHN5 c3RlbSI6ICJtZXNvbiIsCistICAgICAgICAgICAgImNsZWFudXAiOiBbICIvZXRjIiwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgIi9saWIiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAi L2xpYmV4ZWMiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAiL3NoYXJlL2RidXMtMS9zZXJ2 aWNlcy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuTWluZXIuRXh0cmFjdC5zZXJ2aWNlIiwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS9kYnVzLTEvc2VydmljZXMvb3JnLmZyZWVk ZXNrdG9wLlRyYWNrZXIxLldyaXRlYmFjay5zZXJ2aWNlIiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgIi9zaGFyZS90cmFja2VyL21pbmVycy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuTWlu ZXIuQXBwbGljYXRpb25zLnNlcnZpY2UiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAiL3No YXJlL3RyYWNrZXIvbWluZXJzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5NaW5lci5FeHRyYWN0 LnNlcnZpY2UiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAiL3NoYXJlL3RyYWNrZXIvbWlu ZXJzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5NaW5lci5SU1Muc2VydmljZSIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICIvc2hhcmUvdHJhY2tlci1taW5lcnMiLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAiL3NoYXJlL2dsaWItMi4wL3NjaGVtYXMvb3JnLmZyZWVkZXNrdG9wLlRy YWNrZXIuRXh0cmFjdC5nc2NoZW1hLnhtbCIsCistICAgICAgICAgICAgICAgICAgICAgICAgICIv c2hhcmUvZ2xpYi0yLjAvc2NoZW1hcy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlci5Xcml0ZWJhY2su Z3NjaGVtYS54bWwiIF0sCistICAgICAgICAgICAgImNvbmZpZy1vcHRzIjogWyAiLURleHRyYWN0 PWZhbHNlIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRGdlbmVyaWNfbWVkaWFf ZXh0cmFjdG9yPW5vbmUiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1EbWluZXJf YXBwcz1mYWxzZSIsCisrICAgICAgICAgICAgImNsZWFudXAiOiBbICIvc2hhcmUvZGJ1cy0xL3Nl cnZpY2VzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5FeHRyYWN0LnNlcnZpY2UiLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAiL3NoYXJlL2RidXMtMS9zZXJ2aWNlcy9vcmcuZnJl ZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuc2VydmljZSIsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICIvc2hhcmUvZGJ1cy0xL3NlcnZpY2VzL29yZy5mcmVlZGVza3RvcC5UcmFja2Vy My5Xcml0ZWJhY2suc2VydmljZSIgXSwKKysgICAgICAgICAgICAiY29uZmlnLW9wdHMiOiBbICIt RG1hbj1mYWxzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURtaW5lcl9mcz10 cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRG1pbmVyX3Jzcz1mYWxzZSIs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9 bm8iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1Ec3lzdGVtZF91c2VyX3NlcnZp Y2VzPWZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRHdyaXRlYmFjaz1m YWxzZSIgXSwKKyAgICAgICAgICAgICAic291cmNlcyI6IFsKKyAgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAgICAgICAgICAgICAgICAgICAg ICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3RyYWNrZXItbWluZXJzLmdp dCIsCistICAgICAgICAgICAgICAgICAgICAiYnJhbmNoIjogInRyYWNrZXItbWluZXJzLTIuMyIK KysgICAgICAgICAgICAgICAgICAgICJicmFuY2giOiAibWFzdGVyIgorICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgXQorICAgICAgICAgfSwKK0BAIC0zMDksNyArMjc1LDggQEAKKyAg ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKKyAg ICAgICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01F L2dub21lLXBob3Rvcy5naXQiLAorLSAgICAgICAgICAgICAgICAgICAgImRpc2FibGUtc2hhbGxv dy1jbG9uZSI6ICJ0cnVlIgorKyAgICAgICAgICAgICAgICAgICAgImRpc2FibGUtc2hhbGxvdy1j bG9uZSI6ICJ0cnVlIiwKKysgICAgICAgICAgICAgICAgICAgICJicmFuY2giOiAic2FtL3RyYWNr ZXIzIgorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgXQorICAgICAgICAgfQorZGlm ZiAtLWdpdCBhL21lc29uLmJ1aWxkIGIvbWVzb24uYnVpbGQKK2luZGV4IDcwODE2ZDI0Li4xYzZm MjkwNiAxMDA2NDQKKy0tLSBhL21lc29uLmJ1aWxkCisrKysgYi9tZXNvbi5idWlsZAorQEAgLTE3 Miw4ICsxNzIsNyBAQCBsaWJnZGF0YV9kZXAgPSBkZXBlbmRlbmN5KCdsaWJnZGF0YScsIHZlcnNp b246ICc+PSAwLjE3LjEwJykKKyBsaWJnZmdyYXBoX2RlcCA9IGRlcGVuZGVuY3koJ2xpYmdmYmdy YXBoLTAuMicsIHZlcnNpb246ICc+PSAwLjIuMScpCisgbGlianBlZ19kZXAgPSBkZXBlbmRlbmN5 KCdsaWJqcGVnJykKKyBsaWJwbmdfZGVwID0gZGVwZW5kZW5jeSgnbGlicG5nMTYnKQorLXRyYWNr ZXJfY29udHJvbF9kZXAgPSBkZXBlbmRlbmN5KCd0cmFja2VyLWNvbnRyb2wtMi4wJykKKy10cmFj a2VyX3NwYXJxbF9kZXAgPSBkZXBlbmRlbmN5KCd0cmFja2VyLXNwYXJxbC0yLjAnKQorK3RyYWNr ZXJfc3BhcnFsX2RlcCA9IGRlcGVuZGVuY3koJ3RyYWNrZXItc3BhcnFsLTMuMCcpCisgCisgZGJ1 c19kZXAgPSBkZXBlbmRlbmN5KCdkYnVzLTEnKQorIGRidXNfc2VydmljZV9kaXIgPSBkYnVzX2Rl cC5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKAorZGlmZiAtLWdpdCBhL3NyYy9tZXNvbi5idWlsZCBi L3NyYy9tZXNvbi5idWlsZAoraW5kZXggYjViMjc1OWMuLjZiM2I3ZjAxIDEwMDY0NAorLS0tIGEv c3JjL21lc29uLmJ1aWxkCisrKysgYi9zcmMvbWVzb24uYnVpbGQKK0BAIC0yMDUsOCArMjA1LDYg QEAgc291cmNlcyA9IGNvbW1vbl9zb3VyY2VzICsgZmlsZXMoCisgICAncGhvdG9zLXRvb2wtZW5o YW5jZS5jJywKKyAgICdwaG90b3MtdG9vbC1maWx0ZXItYnV0dG9uLmMnLAorICAgJ3Bob3Rvcy10 b29sLWZpbHRlcnMuYycsCistICAncGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmMnLAorLSAg J3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmMnLAorICAgJ3Bob3Rvcy10cmFja2VyLWNv bGxlY3Rpb24tdmlldy1jb250cm9sbGVyLmMnLAorICAgJ3Bob3Rvcy10cmFja2VyLWNvbGxlY3Rp b25zLWNvbnRyb2xsZXIuYycsCisgICAncGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jJywKK0BA IC0zNjcsMjIgKzM2NSwxOCBAQCBzb3VyY2VzICs9IGdub21lLmdkYnVzX2NvZGVnZW4oCisgICBh dXRvY2xlYW51cDogJ2FsbCcsCisgKQorIAorLXRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eSA9ICdw aG90b3MtdHJhY2tlci1leHRyYWN0LXByaW9yaXR5JworLQorIHNvdXJjZXMgKz0gZ25vbWUuZ2Ri dXNfY29kZWdlbigKKy0gIHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eSwKKy0gIHRyYWNrZXJfZXh0 cmFjdF9wcmlvcml0eSArICcueG1sJywKKy0gIGludGVyZmFjZV9wcmVmaXg6ICdvcmcuZnJlZWRl c2t0b3AuVHJhY2tlcjEuJywKKysgICdwaG90b3MtdHJhY2tlci1taW5lcicsCisrICAnb3JnLmZy ZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLnhtbCcsCisrICBpbnRlcmZhY2VfcHJlZml4OiAnb3Jn LmZyZWVkZXNrdG9wLlRyYWNrZXIzLicsCisgICBuYW1lc3BhY2U6ICdUcmFja2VyJywKKyAgIGF1 dG9jbGVhbnVwOiAnYWxsJywKKyApCisgCistdHJhY2tlcl9yZXNvdXJjZXMgPSAncGhvdG9zLXRy YWNrZXItcmVzb3VyY2VzJworLQorIHNvdXJjZXMgKz0gZ25vbWUuZ2RidXNfY29kZWdlbigKKy0g IHRyYWNrZXJfcmVzb3VyY2VzLAorLSAgdHJhY2tlcl9yZXNvdXJjZXMgKyAnLnhtbCcsCistICBp bnRlcmZhY2VfcHJlZml4OiAnb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLicsCisrICAncGhvdG9z LXRyYWNrZXItbWluZXItaW5kZXgnLAorKyAgJ29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5l ci5GaWxlcy5JbmRleC54bWwnLAorKyAgaW50ZXJmYWNlX3ByZWZpeDogJ29yZy5mcmVlZGVza3Rv cC5UcmFja2VyMy4nLAorICAgbmFtZXNwYWNlOiAnVHJhY2tlcicsCisgICBhdXRvY2xlYW51cDog J2FsbCcsCisgKQorQEAgLTQwMSw3ICszOTUsNiBAQCBkZXBzID0gY29tbW9uX2RlcHMgKyBbCisg ICBsaWJnZGF0YV9kZXAsCisgICBsaWJnZmdyYXBoX2RlcCwKKyAgIG1fZGVwLAorLSAgdHJhY2tl cl9jb250cm9sX2RlcCwKKyAgIHRyYWNrZXJfc3BhcnFsX2RlcCwKKyBdCisgCitkaWZmIC0tZ2l0 IGEvc3JjL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcy5JbmRleC54bWwgYi9z cmMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4LnhtbAorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi5lMzY4ZjFlMgorLS0tIC9kZXYvbnVsbAor KysrIGIvc3JjL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcy5JbmRleC54bWwK K0BAIC0wLDAgKzEsMTEgQEAKKys8bm9kZT4KKysgIDxpbnRlcmZhY2UgbmFtZT0nb3JnLmZyZWVk ZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4Jz4KKysgICAgPG1ldGhvZCBuYW1lPSdJ bmRleExvY2F0aW9uJz4KKysgICAgICA8YXJnIHR5cGU9J3MnIG5hbWU9J2ZpbGVfdXJpJyBkaXJl Y3Rpb249J2luJyAvPgorKyAgICAgIDxhcmcgdHlwZT0nYXMnIG5hbWU9J2dyYXBocycgZGlyZWN0 aW9uPSdpbicgLz4KKysgICAgICA8YXJnIHR5cGU9J2FzJyBuYW1lPSdmbGFncycgZGlyZWN0aW9u PSdpbic+IgorKyAgICAgICAgPGRvYzpkb2M+PGRvYzpzdW1tYXJ5PkV4dGVuc2lvbiBmbGFncywg bm8gYWxsb3dlZCB2YWx1ZXMgYXQgdGhlIG1vbWVudDwvZG9jOnN1bW1hcnk+PC9kb2M6ZG9jPgor KyAgICAgIDwvYXJnPgorKyAgICA8L21ldGhvZD4KKysgIDwvaW50ZXJmYWNlPgorKzwvbm9kZT4K K2RpZmYgLS1naXQgYS9zcmMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLnhtbCBiL3Ny Yy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIueG1sCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAuLjZmZTA5Yzg0CistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvb3Jn LmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLnhtbAorQEAgLTAsMCArMSw1NiBAQAorKzw/eG1s IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CisrCisrPG5vZGUgbmFtZT0iLyI+Cisr ICA8aW50ZXJmYWNlIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lciI+CisrICAg IDxhbm5vdGF0aW9uIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQ1N5bWJvbCIgdmFs dWU9Il90cmFja2VyX21pbmVyX2RidXMiLz4KKysgICAgPG1ldGhvZCBuYW1lPSJTdGFydCI+Cisr ICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIg IHZhbHVlPSJ0cnVlIi8+CisrICAgIDwvbWV0aG9kPgorKyAgICA8bWV0aG9kIG5hbWU9IkdldFN0 YXR1cyI+CisrICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xp Yi5Bc3luYyIgdmFsdWU9InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9InMiIG5hbWU9InN0YXR1 cyIgZGlyZWN0aW9uPSJvdXQiIC8+CisrICAgIDwvbWV0aG9kPgorKyAgICA8bWV0aG9kIG5hbWU9 IkdldFByb2dyZXNzIj4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3Au REJ1cy5HTGliLkFzeW5jIiB2YWx1ZT0idHJ1ZSIvPgorKyAgICAgIDxhcmcgdHlwZT0iZCIgbmFt ZT0icHJvZ3Jlc3MiIGRpcmVjdGlvbj0ib3V0IiAvPgorKyAgICA8L21ldGhvZD4KKysgICAgPG1l dGhvZCBuYW1lPSJHZXRSZW1haW5pbmdUaW1lIj4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJv cmcuZnJlZWRlc2t0b3AuREJ1cy5HTGliLkFzeW5jIiB2YWx1ZT0idHJ1ZSIvPgorKyAgICAgIDxh cmcgdHlwZT0iaSIgbmFtZT0icmVtYWluaW5nX3RpbWUiIGRpcmVjdGlvbj0ib3V0IiAvPgorKyAg ICA8L21ldGhvZD4KKysgICAgPG1ldGhvZCBuYW1lPSJHZXRQYXVzZURldGFpbHMiPgorKyAgICAg IDxhbm5vdGF0aW9uIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5bmMiIHZhbHVl PSJ0cnVlIi8+CisrICAgICAgPGFyZyB0eXBlPSJhcyIgbmFtZT0icGF1c2VfYXBwbGljYXRpb25z IiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgICA8YXJnIHR5cGU9ImFzIiBuYW1lPSJwYXVzZV9y ZWFzb25zIiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxtZXRob2Qg bmFtZT0iUGF1c2UiPgorKyAgICAgIDxhbm5vdGF0aW9uIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5E QnVzLkdMaWIuQXN5bmMiICB2YWx1ZT0idHJ1ZSIvPgorKyAgICAgIDxhcmcgdHlwZT0icyIgbmFt ZT0iYXBwbGljYXRpb24iIGRpcmVjdGlvbj0iaW4iIC8+CisrICAgICAgPGFyZyB0eXBlPSJzIiBu YW1lPSJyZWFzb24iIGRpcmVjdGlvbj0iaW4iIC8+CisrICAgICAgPGFyZyB0eXBlPSJpIiBuYW1l PSJjb29raWUiIGRpcmVjdGlvbj0ib3V0IiAvPgorKyAgICA8L21ldGhvZD4KKysgICAgPG1ldGhv ZCBuYW1lPSJQYXVzZUZvclByb2Nlc3MiPgorKyAgICAgIDxhbm5vdGF0aW9uIG5hbWU9Im9yZy5m cmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5bmMiICB2YWx1ZT0idHJ1ZSIvPgorKyAgICAgIDxhcmcg dHlwZT0icyIgbmFtZT0iYXBwbGljYXRpb24iIGRpcmVjdGlvbj0iaW4iIC8+CisrICAgICAgPGFy ZyB0eXBlPSJzIiBuYW1lPSJyZWFzb24iIGRpcmVjdGlvbj0iaW4iIC8+CisrICAgICAgPGFyZyB0 eXBlPSJpIiBuYW1lPSJjb29raWUiIGRpcmVjdGlvbj0ib3V0IiAvPgorKyAgICA8L21ldGhvZD4K KysgICAgPG1ldGhvZCBuYW1lPSJSZXN1bWUiPgorKyAgICAgIDxhbm5vdGF0aW9uIG5hbWU9Im9y Zy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5bmMiIHZhbHVlPSJ0cnVlIi8+CisrICAgICAgPGFy ZyB0eXBlPSJpIiBuYW1lPSJjb29raWUiIGRpcmVjdGlvbj0iaW4iIC8+CisrICAgIDwvbWV0aG9k PgorKworKyAgICA8IS0tIFNpZ25hbHMgLS0+CisrICAgIDxzaWduYWwgbmFtZT0iU3RhcnRlZCIg Lz4KKysgICAgPHNpZ25hbCBuYW1lPSJTdG9wcGVkIj4KKysgICAgICA8YXJnIHR5cGU9ImIiIG5h bWU9ImludGVycnVwdGVkIiAvPgorKyAgICA8L3NpZ25hbD4KKysgICAgPHNpZ25hbCBuYW1lPSJQ YXVzZWQiIC8+CisrICAgIDxzaWduYWwgbmFtZT0iUmVzdW1lZCIgLz4KKysgICAgPHNpZ25hbCBu YW1lPSJQcm9ncmVzcyI+CisrICAgICAgPGFyZyB0eXBlPSJzIiBuYW1lPSJzdGF0dXMiIC8+Cisr ICAgICAgPGFyZyB0eXBlPSJkIiBuYW1lPSJwcm9ncmVzcyIgLz4KKysgICAgICA8YXJnIHR5cGU9 ImkiIG5hbWU9InJlbWFpbmluZ190aW1lIiAvPgorKyAgICA8L3NpZ25hbD4KKysgIDwvaW50ZXJm YWNlPgorKzwvbm9kZT4KK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLWFwcGxpY2F0aW9uLmMgYi9z cmMvcGhvdG9zLWFwcGxpY2F0aW9uLmMKK2luZGV4IGNiMTE0ZmRhLi41ZmJiYmVmMiAxMDA2NDQK Ky0tLSBhL3NyYy9waG90b3MtYXBwbGljYXRpb24uYworKysrIGIvc3JjL3Bob3Rvcy1hcHBsaWNh dGlvbi5jCitAQCAtMzYsNyArMzYsNiBAQAorICNpbmNsdWRlIDxnbGliLmg+CisgI2luY2x1ZGUg PGdsaWIvZ2kxOG4uaD4KKyAjaW5jbHVkZSA8Z3JpbG8uaD4KKy0jaW5jbHVkZSA8bGlidHJhY2tl ci1jb250cm9sL3RyYWNrZXItY29udHJvbC5oPgorIAorICNpbmNsdWRlICJwaG90b3MtYXBwbGlj YXRpb24uaCIKKyAjaW5jbHVkZSAicGhvdG9zLWJhc2UtaXRlbS5oIgorQEAgLTY4LDcgKzY3LDgg QEAKKyAjaW5jbHVkZSAicGhvdG9zLXNoYXJlLW5vdGlmaWNhdGlvbi5oIgorICNpbmNsdWRlICJw aG90b3Mtc2hhcmUtcG9pbnQtbWFuYWdlci5oIgorICNpbmNsdWRlICJwaG90b3MtdGh1bWJuYWls LWZhY3RvcnkuaCIKKy0jaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItZXh0cmFjdC1wcmlvcml0eS5o IgorKyNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1taW5lci1pbmRleC5oIgorKyNpbmNsdWRlICJw aG90b3MtdHJhY2tlci1xdWV1ZS5oIgorICNpbmNsdWRlICJwaG90b3MtdXRpbHMuaCIKKyAKKyAK K0BAIC0xMjcsNyArMTI3LDcgQEAgc3RydWN0IF9QaG90b3NBcHBsaWNhdGlvbgorICAgUGhvdG9z U2VhcmNoUHJvdmlkZXIgKnNlYXJjaF9wcm92aWRlcjsKKyAgIFBob3Rvc1NlbGVjdGlvbkNvbnRy b2xsZXIgKnNlbF9jbnRybHI7CisgICBQaG90b3NUaHVtYm5haWxGYWN0b3J5ICpmYWN0b3J5Owor LSAgVHJhY2tlckV4dHJhY3RQcmlvcml0eSAqZXh0cmFjdF9wcmlvcml0eTsKKysgIFRyYWNrZXJN aW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRyb2xfcHJveHk7CisgICBnYm9vbGVhbiBlbXB0eV9y ZXN1bHRzOworICAgZ2Jvb2xlYW4gbWFpbl93aW5kb3dfZGVsZXRlZDsKKyAgIGd1aW50IGNyZWF0 ZV9taW5lcnNfY291bnQ7CitAQCAtMTQ4LDcgKzE0OCw2IEBAIHN0YXRpYyBndWludCBzaWduYWxz W0xBU1RfU0lHTkFMXSA9IHsgMCB9OworIAorIHN0YXRpYyB2b2lkIHBob3Rvc19hcHBsaWNhdGlv bl9zZWFyY2hfY29udGV4dF9pZmFjZV9pbml0IChQaG90b3NTZWFyY2hDb250ZXh0SW50ZXJmYWNl ICppZmFjZSk7CisgCistCisgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKFBob3Rvc0FwcGxpY2F0 aW9uLCBwaG90b3NfYXBwbGljYXRpb24sIEdUS19UWVBFX0FQUExJQ0FUSU9OLAorICAgICAgICAg ICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UgKFBIT1RPU19UWVBFX1NFQVJD SF9DT05URVhULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBob3Rvc19hcHBsaWNhdGlvbl9zZWFyY2hfY29udGV4dF9pZmFjZV9pbml0KSk7CitAQCAt MTkxLDExICsxOTAsMTEgQEAgc3RydWN0IF9QaG90b3NBcHBsaWNhdGlvbkNyZWF0ZURhdGEKKyBz dHJ1Y3QgX1Bob3Rvc0FwcGxpY2F0aW9uSW1wb3J0RGF0YQorIHsKKyAgIFBob3Rvc0FwcGxpY2F0 aW9uICphcHBsaWNhdGlvbjsKKysgIFRyYWNrZXJNaW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRy b2xfcHJveHk7CisgICBHRmlsZSAqZGVzdGluYXRpb247CisgICBHRmlsZSAqaW1wb3J0X3N1Yl9k aXI7CisgICBHTGlzdCAqZmlsZXM7CisgICBQaG90b3NCYXNlSXRlbSAqY29sbGVjdGlvbjsKKy0g IFRyYWNrZXJNaW5lck1hbmFnZXIgKm1hbmFnZXI7CisgICBnY2hhciAqY29sbGVjdGlvbl91cm47 CisgICBnaW50NjQgY3RpbWVfbGF0ZXN0OworIH07CitAQCAtMjQ4LDcgKzI0Nyw3IEBAIHBob3Rv c19hcHBsaWNhdGlvbl9jcmVhdGVfZGF0YV9mcmVlIChQaG90b3NBcHBsaWNhdGlvbkNyZWF0ZURh dGEgKmRhdGEpCisgCisgc3RhdGljIFBob3Rvc0FwcGxpY2F0aW9uSW1wb3J0RGF0YSAqCisgcGhv dG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9kYXRhX25ldyAoUGhvdG9zQXBwbGljYXRpb24gKmFwcGxp Y2F0aW9uLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYWNrZXJNaW5l ck1hbmFnZXIgKm1hbmFnZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9wcm94eSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHTGlzdCAqZmlsZXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2ludDY0IGN0aW1lX2xhdGVzdCkKKyB7CitAQCAtMjU3LDcg KzI1Niw3IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfZGF0YV9uZXcgKFBob3Rvc0FwcGxp Y2F0aW9uICphcHBsaWNhdGlvbiwKKyAgIGRhdGEgPSBnX3NsaWNlX25ldzAgKFBob3Rvc0FwcGxp Y2F0aW9uSW1wb3J0RGF0YSk7CisgICBnX2FwcGxpY2F0aW9uX2hvbGQgKEdfQVBQTElDQVRJT04g KGFwcGxpY2F0aW9uKSk7CisgICBkYXRhLT5hcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uOworLSAg ZGF0YS0+bWFuYWdlciA9IGdfb2JqZWN0X3JlZiAobWFuYWdlcik7CisrICBkYXRhLT5taW5lcl9j b250cm9sX3Byb3h5ID0gbWluZXJfY29udHJvbF9wcm94eTsKKyAgIGRhdGEtPmZpbGVzID0gZ19s aXN0X2NvcHlfZGVlcCAoZmlsZXMsIChHQ29weUZ1bmMpIGdfb2JqZWN0X3JlZiwgTlVMTCk7Cisg ICBkYXRhLT5jdGltZV9sYXRlc3QgPSBjdGltZV9sYXRlc3Q7CisgICByZXR1cm4gZGF0YTsKK0BA IC0yNzcsOCArMjc2LDggQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9kYXRhX2ZyZWUgKFBo b3Rvc0FwcGxpY2F0aW9uSW1wb3J0RGF0YSAqZGF0YSkKKyAKKyAgIGdfY2xlYXJfb2JqZWN0ICgm ZGF0YS0+ZGVzdGluYXRpb24pOworICAgZ19jbGVhcl9vYmplY3QgKCZkYXRhLT5pbXBvcnRfc3Vi X2Rpcik7CisrICBnX2NsZWFyX29iamVjdCAoJmRhdGEtPm1pbmVyX2NvbnRyb2xfcHJveHkpOwor ICAgZ19saXN0X2ZyZWVfZnVsbCAoZGF0YS0+ZmlsZXMsIGdfb2JqZWN0X3VucmVmKTsKKy0gIGdf Y2xlYXJfb2JqZWN0ICgmZGF0YS0+bWFuYWdlcik7CisgICBnX2ZyZWUgKGRhdGEtPmNvbGxlY3Rp b25fdXJuKTsKKyAgIGdfc2xpY2VfZnJlZSAoUGhvdG9zQXBwbGljYXRpb25JbXBvcnREYXRhLCBk YXRhKTsKKyB9CitAQCAtNTg0LDI3ICs1ODMsNiBAQCBwaG90b3NfYXBwbGljYXRpb25fYWN0aW9u c191cGRhdGUgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorIH0KKyAKKyAKKy1zdGF0aWMgdm9p ZAorLXBob3Rvc19hcHBsaWNhdGlvbl90cmFja2VyX2NsZWFyX3JkZl90eXBlcyAoR09iamVjdCAq c291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMsIGdwb2ludGVyIHVzZXJfZGF0YSkKKy17 CistICBQaG90b3NBcHBsaWNhdGlvbiAqc2VsZiA9IFBIT1RPU19BUFBMSUNBVElPTiAodXNlcl9k YXRhKTsKKy0gIFRyYWNrZXJFeHRyYWN0UHJpb3JpdHkgKmV4dHJhY3RfcHJpb3JpdHkgPSBUUkFD S0VSX0VYVFJBQ1RfUFJJT1JJVFkgKHNvdXJjZV9vYmplY3QpOworLQorLSAgeworLSAgICBnX2F1 dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworLQorLSAgICBpZiAoIXRyYWNrZXJfZXh0cmFj dF9wcmlvcml0eV9jYWxsX2NsZWFyX3JkZl90eXBlc19maW5pc2ggKGV4dHJhY3RfcHJpb3JpdHks IHJlcywgJmVycm9yKSkKKy0gICAgICB7CistICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8g Y2FsbCBDbGVhclJkZlR5cGVzOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKy0gICAgICAgIGdvdG8g b3V0OworLSAgICAgIH0KKy0gIH0KKy0KKy0gb3V0OgorLSAgZ19hcHBsaWNhdGlvbl9yZWxlYXNl IChHX0FQUExJQ0FUSU9OIChzZWxmKSk7CistfQorLQorLQorIHN0YXRpYyBnYm9vbGVhbgorIHBo b3Rvc19hcHBsaWNhdGlvbl9kZWxldGVfZXZlbnQgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQor IHsKK0BAIC02NDEsMTYgKzYxOSw2IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9kZXN0cm95IChQaG90 b3NBcHBsaWNhdGlvbiAqc2VsZikKKyAgIHNlbGYtPmNyZWF0ZV93aW5kb3dfY2FuY2VsbGFibGUg PSBnX2NhbmNlbGxhYmxlX25ldyAoKTsKKyAKKyAgIHBob3Rvc19hcHBsaWNhdGlvbl9zdG9wX21p bmVycyAoc2VsZik7CistCistICBpZiAoc2VsZi0+ZXh0cmFjdF9wcmlvcml0eSAhPSBOVUxMKQor LSAgICB7CistICAgICAgZ19hcHBsaWNhdGlvbl9ob2xkIChHX0FQUExJQ0FUSU9OIChzZWxmKSk7 CistICAgICAgdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5X2NhbGxfY2xlYXJfcmRmX3R5cGVzIChz ZWxmLT5leHRyYWN0X3ByaW9yaXR5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc19hcHBsaWNhdGlvbl90cmFja2VyX2NsZWFy X3JkZl90eXBlcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYpOworLSAgICAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+ZXh0cmFjdF9w cmlvcml0eSk7CistICAgIH0KKyB9CisgCisgCitAQCAtNzQwLDYwICs3MDgsNiBAQCBwaG90b3Nf YXBwbGljYXRpb25fZ2VnbF9pbml0X2Zpc2hlc19pZGxlIChncG9pbnRlciB1c2VyX2RhdGEpCisg fQorIAorIAorLXN0YXRpYyB2b2lkCistcGhvdG9zX2FwcGxpY2F0aW9uX3RyYWNrZXJfc2V0X3Jk Zl90eXBlcyAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMsIGdwb2lu dGVyIHVzZXJfZGF0YSkKKy17CistICBQaG90b3NBcHBsaWNhdGlvbiAqc2VsZiA9IFBIT1RPU19B UFBMSUNBVElPTiAodXNlcl9kYXRhKTsKKy0gIFRyYWNrZXJFeHRyYWN0UHJpb3JpdHkgKmV4dHJh Y3RfcHJpb3JpdHkgPSBUUkFDS0VSX0VYVFJBQ1RfUFJJT1JJVFkgKHNvdXJjZV9vYmplY3QpOwor LQorLSAgeworLSAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworLQorLSAgICBp ZiAoIXRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eV9jYWxsX3NldF9yZGZfdHlwZXNfZmluaXNoIChl eHRyYWN0X3ByaW9yaXR5LCByZXMsICZlcnJvcikpCistICAgICAgeworLSAgICAgICAgaWYgKCFn X2Vycm9yX21hdGNoZXMgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NBTkNFTExFRCkp CistICAgICAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBjYWxsIFNldFJkZlR5cGVzOiAlcyIs IGVycm9yLT5tZXNzYWdlKTsKKy0KKy0gICAgICAgIGdvdG8gb3V0OworLSAgICAgIH0KKy0gIH0K Ky0KKy0gb3V0OgorLSAgZ19hcHBsaWNhdGlvbl9yZWxlYXNlIChHX0FQUExJQ0FUSU9OIChzZWxm KSk7CistfQorLQorLQorLXN0YXRpYyB2b2lkCistcGhvdG9zX2FwcGxpY2F0aW9uX3RyYWNrZXJf ZXh0cmFjdF9wcmlvcml0eSAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpy ZXMsIGdwb2ludGVyIHVzZXJfZGF0YSkKKy17CistICBQaG90b3NBcHBsaWNhdGlvbiAqc2VsZiA9 IFBIT1RPU19BUFBMSUNBVElPTiAodXNlcl9kYXRhKTsKKy0gIGNvbnN0IGdjaGFyICpjb25zdCBy ZGZfdHlwZXNbXSA9IHsibmZvOkltYWdlIiwgTlVMTH07CistCistICB7CistICAgIGdfYXV0b3B0 ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CistCistICAgIHNlbGYtPmV4dHJhY3RfcHJpb3JpdHkg PSB0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHlfcHJveHlfbmV3X2Zvcl9idXNfZmluaXNoIChyZXMs ICZlcnJvcik7CistICAgIGlmIChlcnJvciAhPSBOVUxMKQorLSAgICAgIHsKKy0gICAgICAgIGlm ICghZ19lcnJvcl9tYXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9DQU5DRUxM RUQpKQorLSAgICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY3JlYXRlIFRyYWNrZXJFeHRy YWN0UHJpb3JpdHkgcHJveHk6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworLQorLSAgICAgICAgZ290 byBvdXQ7CistICAgICAgfQorLSAgfQorLQorLSAgZ19hcHBsaWNhdGlvbl9ob2xkIChHX0FQUExJ Q0FUSU9OIChzZWxmKSk7CistICB0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHlfY2FsbF9zZXRfcmRm X3R5cGVzIChzZWxmLT5leHRyYWN0X3ByaW9yaXR5LAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmRmX3R5cGVzLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+Y3JlYXRlX3dpbmRvd19jYW5jZWxsYWJs ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rv c19hcHBsaWNhdGlvbl90cmFja2VyX3NldF9yZGZfdHlwZXMsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmKTsKKy0KKy0gb3V0OgorLSAgZ19hcHBs aWNhdGlvbl9yZWxlYXNlIChHX0FQUExJQ0FUSU9OIChzZWxmKSk7CistfQorLQorLQorIHN0YXRp YyBnYm9vbGVhbgorIHBob3Rvc19hcHBsaWNhdGlvbl9jcmVhdGVfd2luZG93IChQaG90b3NBcHBs aWNhdGlvbiAqc2VsZikKKyB7CitAQCAtODI4LDEzICs3NDIsNiBAQCBwaG90b3NfYXBwbGljYXRp b25fY3JlYXRlX3dpbmRvdyAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCisgICAgIHNlbGYtPmlu aXRfZmlzaGVzX2lkID0gZ19pZGxlX2FkZCAocGhvdG9zX2FwcGxpY2F0aW9uX2dlZ2xfaW5pdF9m aXNoZXNfaWRsZSwgc2VsZik7CisgCisgICBnX2FwcGxpY2F0aW9uX2hvbGQgKEdfQVBQTElDQVRJ T04gKHNlbGYpKTsKKy0gIHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eV9wcm94eV9uZXdfZm9yX2J1 cyAoR19CVVNfVFlQRV9TRVNTSU9OLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfTk9ORSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5N aW5lci5FeHRyYWN0IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIi9vcmcvZnJlZWRlc2t0b3AvVHJhY2tlcjEvRXh0cmFjdC9Qcmlvcml0eSIsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmNyZWF0ZV93 aW5kb3dfY2FuY2VsbGFibGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBob3Rvc19hcHBsaWNhdGlvbl90cmFja2VyX2V4dHJhY3RfcHJpb3JpdHksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOworIAor ICAgcGhvdG9zX2FwcGxpY2F0aW9uX3N0YXJ0X21pbmVycyAoc2VsZik7CisgICByZXR1cm4gVFJV RTsKK0BAIC0xMTEzLDE4ICsxMDIwLDE4IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9nZXRfc3RhdGUg KFBob3Rvc1NlYXJjaENvbnRleHQgKmNvbnRleHQpCisgCisgCisgc3RhdGljIHZvaWQKKy1waG90 b3NfYXBwbGljYXRpb25faW1wb3J0X2luZGV4X2ZpbGUgKEdPYmplY3QgKnNvdXJjZV9vYmplY3Qs IEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisrcGhvdG9zX2FwcGxpY2F0 aW9uX2ltcG9ydF9pbmRleF9sb2NhdGlvbiAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5j UmVzdWx0ICpyZXMsIGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7CisgICBQaG90b3NBcHBsaWNhdGlv biAqc2VsZjsKKyAgIGdfYXV0b3B0ciAoR0ZpbGUpIGZpbGUgPSBHX0ZJTEUgKHVzZXJfZGF0YSk7 CistICBUcmFja2VyTWluZXJNYW5hZ2VyICptYW5hZ2VyID0gVFJBQ0tFUl9NSU5FUl9NQU5BR0VS IChzb3VyY2Vfb2JqZWN0KTsKKysgIFRyYWNrZXJNaW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRy b2xfcHJveHkgPSBUUkFDS0VSX01JTkVSX0ZJTEVTX0lOREVYIChzb3VyY2Vfb2JqZWN0KTsKKyAK KyAgIHNlbGYgPSBQSE9UT1NfQVBQTElDQVRJT04gKGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQg KCkpOworIAorICAgeworICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworIAor LSAgICBpZiAoIXRyYWNrZXJfbWluZXJfbWFuYWdlcl9pbmRleF9maWxlX2Zvcl9wcm9jZXNzX2Zp bmlzaCAobWFuYWdlciwgcmVzLCAmZXJyb3IpKQorKyAgICBpZiAoIXRyYWNrZXJfbWluZXJfZmls ZXNfaW5kZXhfY2FsbF9pbmRleF9sb2NhdGlvbl9maW5pc2ggKG1pbmVyX2NvbnRyb2xfcHJveHks IHJlcywgJmVycm9yKSkKKyAgICAgICB7CisgICAgICAgICBnX2F1dG9mcmVlIGdjaGFyICp1cmkg PSBOVUxMOworIAorQEAgLTEzMjMsNyArMTIzMCw2IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBv cnRfZmlsZV9jb3B5IChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywK KyAgIFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmID0gZGF0YS0+YXBwbGljYXRpb247CisgICBnX2F1 dG9wdHIgKEdGaWxlKSBkZXN0aW5hdGlvbiA9IE5VTEw7CisgICBHRmlsZSAqc291cmNlID0gR19G SUxFIChzb3VyY2Vfb2JqZWN0KTsKKy0gIFRyYWNrZXJNaW5lck1hbmFnZXIgKm1hbmFnZXIgPSBk YXRhLT5tYW5hZ2VyOworIAorICAgeworICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBO VUxMOworQEAgLTEzNDgsNiArMTI1NCw4IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfZmls ZV9jb3B5IChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywKKyAgIGVs c2UKKyAgICAgeworICAgICAgIGdfYXV0b2ZyZWUgZ2NoYXIgKmRlc3RpbmF0aW9uX3VyaSA9IE5V TEw7CisrICAgICAgY29uc3QgZ2NoYXIgKnRyYWNrZXJfcHJpb3JpdHlfZ3JhcGhzW10gPSB7IFRS QUNLRVJfUElDVFVSRVNfR1JBUEggfTsKKysgICAgICBjb25zdCBnY2hhciAqdHJhY2tlcl9pbmRl eF9sb2NhdGlvbl9mbGFnc1tdID0geyAiZm9yLXByb2Nlc3MiIH07CisgCisgICAgICAgZ19hc3Nl cnRfdHJ1ZSAoR19JU19GSUxFIChkZXN0aW5hdGlvbikpOworICAgICAgIGdfc2V0X29iamVjdCAo JmRhdGEtPmRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbik7CitAQCAtMTM2NCwxMSArMTI3MiwxMyBA QCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2ZpbGVfY29weSAoR09iamVjdCAqc291cmNlX29i amVjdCwgR0FzeW5jUmVzdWx0ICpyZXMsCisgCisgICAgICAgZ19hcHBsaWNhdGlvbl9ob2xkIChH X0FQUExJQ0FUSU9OIChzZWxmKSk7CisgICAgICAgZ19hcHBsaWNhdGlvbl9tYXJrX2J1c3kgKEdf QVBQTElDQVRJT04gKHNlbGYpKTsKKy0gICAgICB0cmFja2VyX21pbmVyX21hbmFnZXJfaW5kZXhf ZmlsZV9mb3JfcHJvY2Vzc19hc3luYyAobWFuYWdlciwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24sCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfaW5kZXhfZmlsZSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19vYmplY3RfcmVm IChkZXN0aW5hdGlvbikpOworKyAgICAgIHRyYWNrZXJfbWluZXJfZmlsZXNfaW5kZXhfY2FsbF9p bmRleF9sb2NhdGlvbiAoc2VsZi0+bWluZXJfY29udHJvbF9wcm94eSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uX3VyaSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRy YWNrZXJfcHJpb3JpdHlfZ3JhcGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdHJhY2tlcl9pbmRleF9sb2NhdGlvbl9mbGFncywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90 b3NfYXBwbGljYXRpb25faW1wb3J0X2luZGV4X2xvY2F0aW9uLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19vYmplY3RfcmVmIChkZXN0aW5h dGlvbikpOworICAgICB9CisgCisgIG91dDoKK0BAIC0xNTA5LDYgKzE0MTksMzcgQEAgcGhvdG9z X2FwcGxpY2F0aW9uX2ltcG9ydF9yZXNwb25zZSAoR3RrRGlhbG9nICpkaWFsb2csIGdpbnQgcmVz cG9uc2VfaWQsIGdwb2ludGUKKyB9CisgCisgCisrc3RhdGljIFRyYWNrZXJNaW5lckZpbGVzSW5k ZXggKgorK3Bob3Rvc19hcHBsaWNhdGlvbl9nZXRfbWluZXJfZnNfY29udHJvbF9wcm94eSAoR0Nh bmNlbGxhYmxlICpjYW5jZWxsYWJsZSkKKyt7CisrICBnX2F1dG9wdHIgKFBob3Rvc1RyYWNrZXJR dWV1ZSkgdHJhY2tlcl9xdWV1ZSA9IE5VTEw7CisrICBjb25zdCBnY2hhciAqbWluZXJfZnNfY29u dHJvbF9idXNuYW1lOworKyAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKysgIFRy YWNrZXJNaW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRyb2xfcHJveHk7CisrCisrICB0cmFja2Vy X3F1ZXVlID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRvbiAoY2FuY2VsbGFibGUs ICZlcnJvcik7CisrCisrICBpZiAoIXRyYWNrZXJfcXVldWUpIHsKKysgICAgZ193YXJuaW5nICgi RXJyb3IgZ2V0dGluZyBUcmFja2VyIHF1ZXVlOiAlcy4gSW1wb3J0IHdpbGwgbm90IHdvcmsuIiwg ZXJyb3ItPm1lc3NhZ2UpOworKyAgICByZXR1cm4gTlVMTDsKKysgIH0KKysKKysgIG1pbmVyX2Zz X2NvbnRyb2xfYnVzbmFtZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9taW5lcl9mc19jb250 cm9sX2J1c25hbWUgKHRyYWNrZXJfcXVldWUpOworKyAgbWluZXJfY29udHJvbF9wcm94eSA9IHRy YWNrZXJfbWluZXJfZmlsZXNfaW5kZXhfcHJveHlfbmV3X2Zvcl9idXNfc3luYyAoR19CVVNfVFlQ RV9TRVNTSU9OLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX1BST1hZX0ZMQUdTX05PTkUsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtaW5lcl9mc19jb250cm9sX2J1c25hbWUsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiL29yZy9mcmVlZGVza3RvcC9UcmFja2VyMy9NaW5lci9GaWxlcy9Db250cm9sIiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZXJyb3IpOworKyAgaWYg KCFtaW5lcl9jb250cm9sX3Byb3h5KSB7CisrICAgIGdfd2FybmluZyAoIkVycm9yIGdldHRpbmcg VHJhY2tlciBNaW5lciBGUyBjb250cm9sIHByb3h5OiAlcy4gSW1wb3J0IHdpbGwgbm90IHdvcmsi LCBlcnJvci0+bWVzc2FnZSk7CisrICAgIHJldHVybiBOVUxMOworKyAgfQorKworKyAgcmV0dXJu IG1pbmVyX2NvbnRyb2xfcHJveHk7CisrfQorKworKworIHN0YXRpYyB2b2lkCisgcGhvdG9zX2Fw cGxpY2F0aW9uX2ltcG9ydCAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCisgeworQEAgLTE1MTks OCArMTQ2MCw4IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnQgKFBob3Rvc0FwcGxpY2F0aW9u ICpzZWxmKQorICAgR3RrV2lkZ2V0ICpkaWFsb2c7CisgICBnX2F1dG9wdHIgKFBob3Rvc0FwcGxp Y2F0aW9uSW1wb3J0RGF0YSkgZGF0YSA9IE5VTEw7CisgICBQaG90b3NTb3VyY2UgKnNvdXJjZTsK Ky0gIFRyYWNrZXJNaW5lck1hbmFnZXIgKm1hbmFnZXIgPSBOVUxMOyAvKiBUT0RPOiB1c2UgZ19h dXRvcHRyICovCisgICBnaW50NjQgY3RpbWVfbGF0ZXN0ID0gLTE7CisrICBUcmFja2VyTWluZXJG aWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5OworIAorICAgc291cmNlID0gUEhPVE9TX1NP VVJDRSAocGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfYWN0aXZlX29iamVjdCAoc2VsZi0+c3RhdGUt PnNyY19tbmdyKSk7CisgICBnX3JldHVybl9pZl9mYWlsIChQSE9UT1NfSVNfU09VUkNFIChzb3Vy Y2UpKTsKK0BAIC0xNTMzLDE3ICsxNDc0LDkgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydCAo UGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCisgICBzZWxlY3Rpb24gPSBwaG90b3Nfc2VsZWN0aW9u X2NvbnRyb2xsZXJfZ2V0X3NlbGVjdGlvbiAoc2VsZi0+c2VsX2NudHJscik7CisgICBnX3JldHVy bl9pZl9mYWlsIChzZWxlY3Rpb24gIT0gTlVMTCk7CisgCistICB7CistICAgIGdfYXV0b3B0ciAo R0Vycm9yKSBlcnJvciA9IE5VTEw7CistCistICAgIG1hbmFnZXIgPSB0cmFja2VyX21pbmVyX21h bmFnZXJfbmV3X2Z1bGwgKEZBTFNFLCAmZXJyb3IpOworLSAgICBpZiAoZXJyb3IgIT0gTlVMTCkK Ky0gICAgICB7CistICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY3JlYXRlIGEgVHJhY2tl ck1pbmVyTWFuYWdlciwgaW1wb3J0aW5nIGZyb20gYXR0YWNoZWQgZGV2aWNlcyB3b24ndCB3b3Jr OiAlcyIsCistICAgICAgICAgICAgICAgICAgIGVycm9yLT5tZXNzYWdlKTsKKy0gICAgICAgIGdv dG8gb3V0OworLSAgICAgIH0KKy0gIH0KKysgIG1pbmVyX2NvbnRyb2xfcHJveHkgPSBwaG90b3Nf YXBwbGljYXRpb25fZ2V0X21pbmVyX2ZzX2NvbnRyb2xfcHJveHkgKE5VTEwpOworKyAgaWYgKCFt aW5lcl9jb250cm9sX3Byb3h5KQorKyAgICBnb3RvIG91dDsKKyAKKyAgIGZvciAobCA9IHNlbGVj dGlvbjsgbCAhPSBOVUxMOyBsID0gbC0+bmV4dCkKKyAgICAgeworQEAgLTE1NzIsMTQgKzE1MDUs MTQgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydCAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYp CisgICBkaWFsb2cgPSBwaG90b3NfaW1wb3J0X2RpYWxvZ19uZXcgKEdUS19XSU5ET1cgKHNlbGYt Pm1haW5fd2luZG93KSwgY3RpbWVfbGF0ZXN0KTsKKyAgIGd0a193aWRnZXRfc2hvd19hbGwgKGRp YWxvZyk7CisgCistICBkYXRhID0gcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9kYXRhX25ldyAo c2VsZiwgbWFuYWdlciwgZmlsZXMsIGN0aW1lX2xhdGVzdCk7CisrICBkYXRhID0gcGhvdG9zX2Fw cGxpY2F0aW9uX2ltcG9ydF9kYXRhX25ldyAoc2VsZiwgbWluZXJfY29udHJvbF9wcm94eSwgZmls ZXMsIGN0aW1lX2xhdGVzdCk7CisrCisgICBnX3NpZ25hbF9jb25uZWN0IChkaWFsb2csCisgICAg ICAgICAgICAgICAgICAgICAicmVzcG9uc2UiLAorICAgICAgICAgICAgICAgICAgICAgR19DQUxM QkFDSyAocGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9yZXNwb25zZSksCisgICAgICAgICAgICAg ICAgICAgICBnX3N0ZWFsX3BvaW50ZXIgKCZkYXRhKSk7CisgCisgIG91dDoKKy0gIGdfY2xlYXJf b2JqZWN0ICgmbWFuYWdlcik7CisgICBnX2xpc3RfZnJlZV9mdWxsIChmaWxlcywgZ19vYmplY3Rf dW5yZWYpOworIH0KKyAKK0BAIC0yOTc0LDYgKzI5MDcsNyBAQCBwaG90b3NfYXBwbGljYXRpb25f ZGlzcG9zZSAoR09iamVjdCAqb2JqZWN0KQorICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5pbnN0 YV9hY3Rpb24pOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5sb2FkX25leHRfYWN0aW9uKTsK KyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bG9hZF9wcmV2aW91c19hY3Rpb24pOworKyAgZ19j bGVhcl9vYmplY3QgKCZzZWxmLT5taW5lcl9jb250cm9sX3Byb3h5KTsKKyAgIGdfY2xlYXJfb2Jq ZWN0ICgmc2VsZi0+b3Blbl9hY3Rpb24pOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5wcmV2 aWV3X21lbnVfYWN0aW9uKTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cHJpbWFyeV9tZW51 X2FjdGlvbik7CitAQCAtMzAwMiw3ICsyOTM2LDYgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2Rpc3Bv c2UgKEdPYmplY3QgKm9iamVjdCkKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+Y2FtZXJhX2Nh Y2hlKTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+c2VsX2NudHJscik7CisgICBnX2NsZWFy X29iamVjdCAoJnNlbGYtPmZhY3RvcnkpOworLSAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5leHRy YWN0X3ByaW9yaXR5KTsKKyAKKyAgIGlmIChzZWxmLT5zdGF0ZSAhPSBOVUxMKQorICAgICB7CitA QCAtMzEzMCw4ICszMDYzLDcgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2dldF9taW5lcnNfcnVubmlu ZyAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCisgICByZXR1cm4gc2VsZi0+bWluZXJzX3J1bm5p bmc7CisgfQorIAorLQorLWdpbnQKKytpbnQKKyBwaG90b3NfYXBwbGljYXRpb25fZ2V0X3NjYWxl X2ZhY3RvciAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCisgeworICAgR0xpc3QgKndpbmRvd3M7 CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1iYXNlLWl0ZW0uYyBiL3NyYy9waG90b3MtYmFzZS1p dGVtLmMKK2luZGV4IDE0MzQzMWY5Li5iMzQ3MDZmMiAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mt YmFzZS1pdGVtLmMKKysrKyBiL3NyYy9waG90b3MtYmFzZS1pdGVtLmMKK0BAIC0yNzU2LDYgKzI3 NTYsMTYgQEAgcGhvdG9zX2Jhc2VfaXRlbV91cGRhdGVfaW5mb19mcm9tX3R5cGUgKFBob3Rvc0Jh c2VJdGVtICpzZWxmKQorIH0KKyAKKyAKKytzdGF0aWMgZ2RvdWJsZQorK2dldF9kb3VibGVfd2l0 aF9kZWZhdWx0IChUcmFja2VyU3BhcnFsQ3Vyc29yICpjdXJzb3IsIFBob3Rvc1F1ZXJ5Q29sdW1u cyBjb2x1bW4sIGdkb3VibGUgZGVmYXVsdF92YWx1ZSkKKyt7CisrICBpZiAodHJhY2tlcl9zcGFy cWxfY3Vyc29yX2lzX2JvdW5kIChjdXJzb3IsIGNvbHVtbikpIHsKKysgICAgcmV0dXJuIHRyYWNr ZXJfc3BhcnFsX2N1cnNvcl9nZXRfZG91YmxlIChjdXJzb3IsIGNvbHVtbik7CisrICB9IGVsc2Ug eworKyAgICByZXR1cm4gZGVmYXVsdF92YWx1ZTsKKysgIH0KKyt9CisrCisgc3RhdGljIHZvaWQK KyBwaG90b3NfYmFzZV9pdGVtX3BvcHVsYXRlX2Zyb21fY3Vyc29yIChQaG90b3NCYXNlSXRlbSAq c2VsZiwgVHJhY2tlclNwYXJxbEN1cnNvciAqY3Vyc29yKQorIHsKK0BAIC0yODkxLDEwICsyOTAx LDEwIEBAIHBob3Rvc19iYXNlX2l0ZW1fcG9wdWxhdGVfZnJvbV9jdXJzb3IgKFBob3Rvc0Jhc2VJ dGVtICpzZWxmLCBUcmFja2VyU3BhcnFsQ3Vyc29yCisgICAgICAgcHJpdi0+d2lkdGggPSBoZWln aHQ7CisgICAgIH0KKyAKKy0gIHByaXYtPmV4cG9zdXJlX3RpbWUgPSB0cmFja2VyX3NwYXJxbF9j dXJzb3JfZ2V0X2RvdWJsZSAoY3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19FWFBPU1VSRV9U SU1FKTsKKy0gIHByaXYtPmZudW1iZXIgPSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfZ2V0X2RvdWJs ZSAoY3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19GTlVNQkVSKTsKKy0gIHByaXYtPmZvY2Fs X2xlbmd0aCA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRfZG91YmxlIChjdXJzb3IsIFBIT1RP U19RVUVSWV9DT0xVTU5TX0ZPQ0FMX0xFTkdUSCk7CistICBwcml2LT5pc29fc3BlZWQgPSB0cmFj a2VyX3NwYXJxbF9jdXJzb3JfZ2V0X2RvdWJsZSAoY3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1O U19JU09fU1BFRUQpOworKyAgcHJpdi0+ZXhwb3N1cmVfdGltZSA9IGdldF9kb3VibGVfd2l0aF9k ZWZhdWx0IChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX0VYUE9TVVJFX1RJTUUsIDAuMCk7 CisrICBwcml2LT5mbnVtYmVyID0gZ2V0X2RvdWJsZV93aXRoX2RlZmF1bHQgKGN1cnNvciwgUEhP VE9TX1FVRVJZX0NPTFVNTlNfRk5VTUJFUiwgMC4wKTsKKysgIHByaXYtPmZvY2FsX2xlbmd0aCA9 IGdldF9kb3VibGVfd2l0aF9kZWZhdWx0IChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX0ZP Q0FMX0xFTkdUSCwgMC4wKTsKKysgIHByaXYtPmlzb19zcGVlZCA9IGdldF9kb3VibGVfd2l0aF9k ZWZhdWx0IChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX0lTT19TUEVFRCwgMC4wKTsKKyAK KyAgIGZsYXNoID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9zdHJpbmcgKGN1cnNvciwgUEhP VE9TX1FVRVJZX0NPTFVNTlNfRkxBU0gsIE5VTEwpOworICAgcHJpdi0+Zmxhc2ggPSBnX3F1YXJr X2Zyb21fc3RyaW5nIChmbGFzaCk7CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1pbmRleGluZy1u b3RpZmljYXRpb24uYyBiL3NyYy9waG90b3MtaW5kZXhpbmctbm90aWZpY2F0aW9uLmMKK2luZGV4 IDdiMmVhN2RkLi4xMjJkMGQ5MSAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtaW5kZXhpbmctbm90 aWZpY2F0aW9uLmMKKysrKyBiL3NyYy9waG90b3MtaW5kZXhpbmctbm90aWZpY2F0aW9uLmMKK0BA IC0yNiwxMiArMjYsMTMgQEAKKyAjaW5jbHVkZSA8Z2lvL2dpby5oPgorICNpbmNsdWRlIDxnbGli Lmg+CisgI2luY2x1ZGUgPGdsaWIvZ2kxOG4uaD4KKy0jaW5jbHVkZSA8bGlidHJhY2tlci1jb250 cm9sL3RyYWNrZXItY29udHJvbC5oPgorIAorICNpbmNsdWRlICJwaG90b3MtYXBwbGljYXRpb24u aCIKKyAjaW5jbHVkZSAicGhvdG9zLWdvbS1taW5lci5oIgorICNpbmNsdWRlICJwaG90b3MtaW5k ZXhpbmctbm90aWZpY2F0aW9uLmgiCisgI2luY2x1ZGUgInBob3Rvcy1ub3RpZmljYXRpb24tbWFu YWdlci5oIgorKyNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1xdWV1ZS5oIgorKyNpbmNsdWRlICJw aG90b3MtdHJhY2tlci1taW5lci5oIgorIAorIAorIHN0cnVjdCBfUGhvdG9zSW5kZXhpbmdOb3Rp ZmljYXRpb24KK0BAIC00MSw3ICs0Miw3IEBAIHN0cnVjdCBfUGhvdG9zSW5kZXhpbmdOb3RpZmlj YXRpb24KKyAgIEd0a1dpZGdldCAqcHJpbWFyeV9sYWJlbDsKKyAgIEd0a1dpZGdldCAqc2Vjb25k YXJ5X2xhYmVsOworICAgR3RrV2lkZ2V0ICpzcGlubmVyOworLSAgVHJhY2tlck1pbmVyTWFuYWdl ciAqbWFuYWdlcjsKKysgIFRyYWNrZXJNaW5lciAqbWluZXJfZnNfcHJveHk7CisgICBnYm9vbGVh biBjbG9zZWQ7CisgICBnYm9vbGVhbiBvbl9kaXNwbGF5OworICAgZ3VpbnQgdGltZW91dF9pZDsK K0BAIC01Niw4ICs1Nyw2IEBAIGVudW0KKyAgIFJFTU9URV9NSU5FUl9USU1FT1VUID0gMTAgLyog cyAqLworIH07CisgCistc3RhdGljIGNvbnN0IGdjaGFyICpNSU5FUl9GSUxFUyA9ICJvcmcuZnJl ZWRlc2t0b3AuVHJhY2tlcjEuTWluZXIuRmlsZXMiOworLQorIAorIHN0YXRpYyB2b2lkCisgcGhv dG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9yZW1vdmVfdGltZW91dCAoUGhvdG9zSW5kZXhpbmdO b3RpZmljYXRpb24gKnNlbGYpCitAQCAtMTgwLDE2ICsxNzksMTggQEAgcGhvdG9zX2luZGV4aW5n X25vdGlmaWNhdGlvbl9jaGVja19ub3RpZmljYXRpb24gKFBob3Rvc0luZGV4aW5nTm90aWZpY2F0 aW9uICpzZWwKKyAgIEdTTGlzdCAqcnVubmluZyA9IE5VTEw7CisgICBnYm9vbGVhbiBpc19pbmRl eGluZ19sb2NhbCA9IEZBTFNFOworICAgZ2Jvb2xlYW4gaXNfaW5kZXhpbmdfcmVtb3RlID0gRkFM U0U7CisrICBHRXJyb3IgKmVycm9yID0gTlVMTDsKKysgIGdkb3VibGUgcHJvZ3Jlc3M7CisgCist ICBydW5uaW5nID0gdHJhY2tlcl9taW5lcl9tYW5hZ2VyX2dldF9ydW5uaW5nIChzZWxmLT5tYW5h Z2VyKTsKKy0gIGlmIChnX3NsaXN0X2ZpbmRfY3VzdG9tIChydW5uaW5nLCAoZ2NvbnN0cG9pbnRl cikgTUlORVJfRklMRVMsIChHQ29tcGFyZUZ1bmMpIGdfc3RyY21wMCkgIT0gTlVMTCkKKy0gICAg eworLSAgICAgIGdkb3VibGUgcHJvZ3Jlc3M7CisrICB0cmFja2VyX21pbmVyX2NhbGxfZ2V0X3By b2dyZXNzX3N5bmMgKHNlbGYtPm1pbmVyX2ZzX3Byb3h5LCAmcHJvZ3Jlc3MsIE5VTEwsICZlcnJv cik7CisrICBpZiAoZXJyb3IpIHsKKysgICAgZ193YXJuaW5nICgiQ291bGRuJ3QgZ2V0IGluZGV4 aW5nIHByb2dyZXNzIGZyb20gVHJhY2tlciBNaW5lciBGUzogJXMiLCBlcnJvci0+bWVzc2FnZSk7 CisgCistICAgICAgdHJhY2tlcl9taW5lcl9tYW5hZ2VyX2dldF9zdGF0dXMgKHNlbGYtPm1hbmFn ZXIsIE1JTkVSX0ZJTEVTLCBOVUxMLCAmcHJvZ3Jlc3MsIE5VTEwpOworLSAgICAgIGlmIChwcm9n cmVzcyA8IDEpCistICAgICAgICBpc19pbmRleGluZ19sb2NhbCA9IFRSVUU7CistICAgIH0KKysg ICAgZ19jbGVhcl9lcnJvciAoJmVycm9yKTsKKysgIH0gZWxzZSB7CisrICAgIGlmIChwcm9ncmVz cyA8IDEpCisrICAgICAgaXNfaW5kZXhpbmdfbG9jYWwgPSBUUlVFOworKyAgfQorIAorICAgYXBw ID0gZ19hcHBsaWNhdGlvbl9nZXRfZGVmYXVsdCAoKTsKKyAgIG1pbmVyc19ydW5uaW5nID0gcGhv dG9zX2FwcGxpY2F0aW9uX2dldF9taW5lcnNfcnVubmluZyAoUEhPVE9TX0FQUExJQ0FUSU9OIChh cHApKTsKK0BAIC0yMjIsNyArMjIzLDYgQEAgcGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9k aXNwb3NlIChHT2JqZWN0ICpvYmplY3QpCisgICBwaG90b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9u X3JlbW92ZV90aW1lb3V0IChzZWxmKTsKKyAKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bnRm Y3RuX21uZ3IpOworLSAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5tYW5hZ2VyKTsKKyAKKyAgIEdf T0JKRUNUX0NMQVNTIChwaG90b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX3BhcmVudF9jbGFzcykt PmRpc3Bvc2UgKG9iamVjdCk7CisgfQorQEAgLTI0MCwxMyArMjQwLDI1IEBAIHBob3Rvc19pbmRl eGluZ19ub3RpZmljYXRpb25faW5pdCAoUGhvdG9zSW5kZXhpbmdOb3RpZmljYXRpb24gKnNlbGYp CisgICBhcHAgPSBnX2FwcGxpY2F0aW9uX2dldF9kZWZhdWx0ICgpOworIAorICAgeworKyAgICBn X2F1dG9wdHIgKFBob3Rvc1RyYWNrZXJRdWV1ZSkgdHJhY2tlcl9xdWV1ZTsKKyAgICAgZ19hdXRv cHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKysgICAgY29uc3QgZ2NoYXIgKm1pbmVyX2ZzX2J1 c25hbWU7CisrCisrICAgIHRyYWNrZXJfcXVldWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBf c2luZ2xldG9uIChOVUxMLCAmZXJyb3IpOworKworKyAgICBpZiAodHJhY2tlcl9xdWV1ZSkgewor KyAgICAgIG1pbmVyX2ZzX2J1c25hbWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJf ZnNfYnVzbmFtZSAodHJhY2tlcl9xdWV1ZSk7CisrICAgICAgc2VsZi0+bWluZXJfZnNfcHJveHkg PSB0cmFja2VyX21pbmVyX3Byb3h5X25ld19mb3JfYnVzX3N5bmMgKEdfQlVTX1RZUEVfU0VTU0lP TiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR19EQlVTX1BST1hZX0ZMQUdTX05PTkUsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmVy X2ZzX2J1c25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIvb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIzL01pbmVy L0ZpbGVzIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVycm9yKTsKKysgICAgfQor IAorLSAgICBzZWxmLT5tYW5hZ2VyID0gdHJhY2tlcl9taW5lcl9tYW5hZ2VyX25ld19mdWxsIChG QUxTRSwgJmVycm9yKTsKKyAgICAgaWYgKGVycm9yICE9IE5VTEwpCisgICAgICAgeworLSAgICAg ICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBhIFRyYWNrZXJNaW5lck1hbmFnZXIsIGlu ZGV4aW5nIHByb2dyZXNzIG5vdGlmaWNhdGlvbiB3b24ndCB3b3JrOiAlcyIsCistICAgICAgICAg ICAgICAgICAgIGVycm9yLT5tZXNzYWdlKTsKKysgICAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0 byBjcmVhdGUgcHJveHkgZm9yIFRyYWNrZXIgTWluZXIgRlMsIGluZGV4aW5nIHByb2dyZXNzIG5v dGlmaWNhdGlvbiB3b24ndCB3b3JrIik7CisgICAgICAgICByZXR1cm47CisgICAgICAgfQorICAg fQorQEAgLTI5MywxMCArMzA1LDExIEBAIHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRpb25faW5p dCAoUGhvdG9zSW5kZXhpbmdOb3RpZmljYXRpb24gKnNlbGYpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NPTk5FQ1RfU1dB UFBFRCk7CisgCistICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQgKHNlbGYtPm1hbmFnZXIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaW5lci1wcm9ncmVzcyIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRp b25fY2hlY2tfbm90aWZpY2F0aW9uKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zik7CisrICBnX3NpZ25hbF9jb25uZWN0X29iamVjdCAoc2VsZi0+bWluZXJfZnNfcHJveHksCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2dyZXNzIiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICBHX0NBTExCQUNLIChwaG90b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX2NoZWNr X25vdGlmaWNhdGlvbiksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICBHX0NPTk5FQ1RfU1dBUFBFRCk7CisgfQorIAorIAorZGlm ZiAtLWdpdCBhL3NyYy9waG90b3MtaXRlbS1tYW5hZ2VyLmMgYi9zcmMvcGhvdG9zLWl0ZW0tbWFu YWdlci5jCitpbmRleCBjNDRmYmJmYy4uZTQ1MTFiYjEgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9z LWl0ZW0tbWFuYWdlci5jCisrKysgYi9zcmMvcGhvdG9zLWl0ZW0tbWFuYWdlci5jCitAQCAtNDEs MTIgKzQxLDkgQEAKKyAjaW5jbHVkZSAicGhvdG9zLXF1ZXJ5LmgiCisgI2luY2x1ZGUgInBob3Rv cy1zZWFyY2gtY29udGV4dC5oIgorICNpbmNsdWRlICJwaG90b3Mtc2luZ2xlLWl0ZW0tam9iLmgi CistI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oIgorLSNpbmNsdWRlICJw aG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oIgorICNpbmNsdWRlICJwaG90b3MtdHJhY2tl ci1xdWV1ZS5oIgorICNpbmNsdWRlICJwaG90b3MtdXRpbHMuaCIKKyAKKy0KKyBzdHJ1Y3QgX1Bo b3Rvc0l0ZW1NYW5hZ2VyCisgeworICAgUGhvdG9zQmFzZU1hbmFnZXIgcGFyZW50X2luc3RhbmNl OworQEAgLTYwLDcgKzU3LDcgQEAgc3RydWN0IF9QaG90b3NJdGVtTWFuYWdlcgorICAgUGhvdG9z QmFzZUl0ZW0gKmFjdGl2ZV9jb2xsZWN0aW9uOworICAgUGhvdG9zQmFzZU1hbmFnZXIgKippdGVt X21uZ3JfY2hsZHJuOworICAgUGhvdG9zTG9hZFN0YXRlIGxvYWRfc3RhdGU7CistICBQaG90b3NU cmFja2VyQ2hhbmdlTW9uaXRvciAqbW9uaXRvcjsKKysgIFRyYWNrZXJOb3RpZmllciAqbm90aWZp ZXI7CisgICBQaG90b3NUcmFja2VyUXVldWUgKnF1ZXVlOworICAgUGhvdG9zV2luZG93TW9kZSBt b2RlOworICAgZ2Jvb2xlYW4gZnVsbHNjcmVlbjsKK0BAIC0zMTEsNyArMzA4LDcgQEAgcGhvdG9z X2l0ZW1fbWFuYWdlcl9hZGRfY3Vyc29yX2Zvcl9tb2RlIChQaG90b3NJdGVtTWFuYWdlciAqc2Vs ZiwKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKGJhc2VfaXRlbV90eXBlID09IEdfVFlQRV9OT05FCisg ICAgICAgICAgICAgICAgICAgICB8fCAoYmFzZV9pdGVtX3R5cGUgIT0gUEhPVE9TX1RZUEVfQkFT RV9JVEVNCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgZ190eXBlX2lzX2EgKGJhc2VfaXRl bV90eXBlLCBQSE9UT1NfVFlQRV9CQVNFX0lURU0pKSk7CistICBnX3JldHVybl9pZl9mYWlsIChU UkFDS0VSX1NQQVJRTF9JU19DVVJTT1IgKGN1cnNvcikpOworKyAgZ19yZXR1cm5faWZfZmFpbCAo VFJBQ0tFUl9JU19TUEFSUUxfQ1VSU09SIChjdXJzb3IpKTsKKyAgIGdfcmV0dXJuX2lmX2ZhaWwg KG1vZGUgIT0gUEhPVE9TX1dJTkRPV19NT0RFX05PTkUpOworICAgZ19yZXR1cm5faWZfZmFpbCAo bW9kZSAhPSBQSE9UT1NfV0lORE9XX01PREVfRURJVCk7CisgICBnX3JldHVybl9pZl9mYWlsICht b2RlICE9IFBIT1RPU19XSU5ET1dfTU9ERV9QUkVWSUVXKTsKK0BAIC01MjksMjEgKzUyNiwyMyBA QCBwaG90b3NfaXRlbV9tYW5hZ2VyX2l0ZW1fY3JlYXRlZCAoUGhvdG9zSXRlbU1hbmFnZXIgKnNl bGYsIGNvbnN0IGdjaGFyICp1cm4pCisgCisgCisgc3RhdGljIHZvaWQKKy1waG90b3NfaXRlbV9t YW5hZ2VyX2NoYW5nZXNfcGVuZGluZ19mb3JlYWNoIChncG9pbnRlciBrZXksIGdwb2ludGVyIHZh bHVlLCBncG9pbnRlciB1c2VyX2RhdGEpCisrcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3Bl bmRpbmdfZm9yZWFjaCAoZ3BvaW50ZXIgZGF0YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEpCisgeworICAgUGhvdG9zSXRl bU1hbmFnZXIgKnNlbGYgPSBQSE9UT1NfSVRFTV9NQU5BR0VSICh1c2VyX2RhdGEpOworLSAgUGhv dG9zVHJhY2tlckNoYW5nZUV2ZW50ICpjaGFuZ2VfZXZlbnQgPSAoUGhvdG9zVHJhY2tlckNoYW5n ZUV2ZW50ICopIHZhbHVlOworLSAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50VHlwZSBjaGFuZ2Vf dHlwZTsKKysgIFRyYWNrZXJOb3RpZmllckV2ZW50ICpldmVudCA9IChUcmFja2VyTm90aWZpZXJF dmVudCAqKSBkYXRhOworKyAgVHJhY2tlck5vdGlmaWVyRXZlbnRUeXBlIGNoYW5nZV90eXBlOwor ICAgY29uc3QgZ2NoYXIgKmNoYW5nZV91cm47CisgCistICBjaGFuZ2VfdHlwZSA9IHBob3Rvc190 cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfdHlwZSAoY2hhbmdlX2V2ZW50KTsKKy0gIGNoYW5nZV91 cm4gPSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3VybiAoY2hhbmdlX2V2ZW50KTsK KysgIGNoYW5nZV90eXBlID0gdHJhY2tlcl9ub3RpZmllcl9ldmVudF9nZXRfZXZlbnRfdHlwZSAo ZXZlbnQpOworKyAgY2hhbmdlX3VybiA9IHRyYWNrZXJfbm90aWZpZXJfZXZlbnRfZ2V0X3VybiAo ZXZlbnQpOworIAorLSAgaWYgKGNoYW5nZV90eXBlID09IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9F VkVOVF9DSEFOR0VEKQorKyAgaWYgKGNoYW5nZV90eXBlID09IFRSQUNLRVJfTk9USUZJRVJfRVZF TlRfVVBEQVRFKQorICAgICB7CisgICAgICAgR09iamVjdCAqb2JqZWN0OworIAorICAgICAgIG9i amVjdCA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X29iamVjdF9ieV9pZCAoUEhPVE9TX0JBU0Vf TUFOQUdFUiAoc2VsZiksIGNoYW5nZV91cm4pOworKyAgICAgIGdfbWVzc2FnZSAoIlVQREFURSBl dmVudCBmb3IgJXMsIG9iamVjdCAlcCIsIGNoYW5nZV91cm4sIG9iamVjdCk7CisgICAgICAgaWYg KG9iamVjdCAhPSBOVUxMKQorICAgICAgICAgeworICAgICAgICAgICBwaG90b3NfYmFzZV9pdGVt X3JlZnJlc2ggKFBIT1RPU19CQVNFX0lURU0gKG9iamVjdCkpOworQEAgLTU1NywxNSArNTU2LDE3 IEBAIHBob3Rvc19pdGVtX21hbmFnZXJfY2hhbmdlc19wZW5kaW5nX2ZvcmVhY2ggKGdwb2ludGVy IGtleSwgZ3BvaW50ZXIgdmFsdWUsIGdwb2luCisgICAgICAgICAgICAgfQorICAgICAgICAgfQor ICAgICB9CistICBlbHNlIGlmIChjaGFuZ2VfdHlwZSA9PSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0Vf RVZFTlRfQ1JFQVRFRCkKKysgIGVsc2UgaWYgKGNoYW5nZV90eXBlID09IFRSQUNLRVJfTk9USUZJ RVJfRVZFTlRfQ1JFQVRFKQorICAgICB7CisrICAgICAgZ19tZXNzYWdlICgiQ1JFQVRFIGV2ZW50 IGZvciAlcyIsIGNoYW5nZV91cm4pOworICAgICAgIHBob3Rvc19pdGVtX21hbmFnZXJfaXRlbV9j cmVhdGVkIChzZWxmLCBjaGFuZ2VfdXJuKTsKKyAgICAgfQorLSAgZWxzZSBpZiAoY2hhbmdlX3R5 cGUgPT0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0RFTEVURUQpCisrICBlbHNlIGlmIChj aGFuZ2VfdHlwZSA9PSBUUkFDS0VSX05PVElGSUVSX0VWRU5UX0RFTEVURSkKKyAgICAgeworICAg ICAgIEdPYmplY3QgKm9iamVjdDsKKyAKKyAgICAgICBvYmplY3QgPSBwaG90b3NfYmFzZV9tYW5h Z2VyX2dldF9vYmplY3RfYnlfaWQgKFBIT1RPU19CQVNFX01BTkFHRVIgKHNlbGYpLCBjaGFuZ2Vf dXJuKTsKKysgICAgICBnX21lc3NhZ2UgKCJERUxFVEUgZXZlbnQgZm9yICVzLCBvYmplY3QgJXAi LCBjaGFuZ2VfdXJuLCBvYmplY3QpOworICAgICAgIGlmIChvYmplY3QgIT0gTlVMTCkKKyAgICAg ICAgIHsKKyAgICAgICAgICAgcGhvdG9zX2Jhc2VfaXRlbV9kZXN0cm95IChQSE9UT1NfQkFTRV9J VEVNIChvYmplY3QpKTsKK0BAIC01NzcsOSArNTc4LDE1IEBAIHBob3Rvc19pdGVtX21hbmFnZXJf Y2hhbmdlc19wZW5kaW5nX2ZvcmVhY2ggKGdwb2ludGVyIGtleSwgZ3BvaW50ZXIgdmFsdWUsIGdw b2luCisgCisgCisgc3RhdGljIHZvaWQKKy1waG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVu ZGluZyAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYsIEdIYXNoVGFibGUgKmNoYW5nZXMpCistewor LSAgZ19oYXNoX3RhYmxlX2ZvcmVhY2ggKGNoYW5nZXMsIHBob3Rvc19pdGVtX21hbmFnZXJfY2hh bmdlc19wZW5kaW5nX2ZvcmVhY2gsIHNlbGYpOworK3Bob3Rvc19pdGVtX21hbmFnZXJfY2hhbmdl c19wZW5kaW5nIChQaG90b3NJdGVtTWFuYWdlciAqc2VsZiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgKnNlcnZpY2UsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICpncmFwaCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1B0ckFycmF5ICAgICAgICAgKmV2 ZW50cywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAg ICAgICAgIHVzZXJfZGF0YSkKKyt7CisrICBpZiAoZ19zdHJfZXF1YWwgKGdyYXBoLCBUUkFDS0VS X1BJQ1RVUkVTX0dSQVBIKSkgeworKyAgICBnX3B0cl9hcnJheV9mb3JlYWNoIChldmVudHMsIHBo b3Rvc19pdGVtX21hbmFnZXJfY2hhbmdlc19wZW5kaW5nX2ZvcmVhY2gsIHNlbGYpOworKyAgfQor IH0KKyAKKyAKK0BAIC03MTcsNyArNzI0LDcgQEAgcGhvdG9zX2l0ZW1fbWFuYWdlcl93YWl0X2Zv cl9jaGFuZ2VzX3RpbWVvdXQgKGdwb2ludGVyIHVzZXJfZGF0YSkKKyAgICAgICBnX2F1dG9wdHIg KFBob3Rvc1F1ZXJ5KSBxdWVyeSA9IE5VTEw7CisgICAgICAgZ19hdXRvZnJlZSBnY2hhciAqc3Bh cnFsID0gTlVMTDsKKyAKKy0gICAgICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJTRUxFQ1Qg P3VybiBuaWU6dXJsICg/dXJuKSBXSEVSRSB7ID91cm4gbmllOnVybCAnJXMnIH0iLCB1cmkpOwor KyAgICAgIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIlNFTEVDVCA/dXJuIG5pZTppc1N0b3Jl ZEFzICg/dXJuKSBXSEVSRSB7ID91cm4gbmllOmlzU3RvcmVkQXMgJyVzJyB9IiwgdXJpKTsKKyAg ICAgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKE5VTEwsIHNwYXJxbCk7CisgICAgICAgcGhv dG9zX3RyYWNrZXJfcXVldWVfc2VsZWN0IChzZWxmLT5xdWV1ZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHF1ZXJ5LAorQEAgLTEwMzgsNyArMTA0NSw3IEBAIHBob3Rvc19p dGVtX21hbmFnZXJfZGlzcG9zZSAoR09iamVjdCAqb2JqZWN0KQorICAgZ19jbGVhcl9vYmplY3Qg KCZzZWxmLT5hY3RpdmVfb2JqZWN0KTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bG9hZGVy X2NhbmNlbGxhYmxlKTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+YWN0aXZlX2NvbGxlY3Rp b24pOworLSAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5tb25pdG9yKTsKKysgIGdfY2xlYXJfb2Jq ZWN0ICgmc2VsZi0+bm90aWZpZXIpOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5xdWV1ZSk7 CisgCisgICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX2l0ZW1fbWFuYWdlcl9wYXJlbnRfY2xhc3Mp LT5kaXNwb3NlIChvYmplY3QpOworQEAgLTEwOTMsMjAgKzExMDAsMjQgQEAgcGhvdG9zX2l0ZW1f bWFuYWdlcl9pbml0IChQaG90b3NJdGVtTWFuYWdlciAqc2VsZikKKyAKKyAgIHNlbGYtPm1vZGUg PSBQSE9UT1NfV0lORE9XX01PREVfTk9ORTsKKyAKKy0gIHNlbGYtPm1vbml0b3IgPSBwaG90b3Nf dHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9kdXBfc2luZ2xldG9uIChOVUxMLCBOVUxMKTsKKy0gIGlm IChHX0xJS0VMWSAoc2VsZi0+bW9uaXRvciAhPSBOVUxMKSkKKy0gICAgZ19zaWduYWxfY29ubmVj dF9vYmplY3QgKHNlbGYtPm1vbml0b3IsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi Y2hhbmdlcy1wZW5kaW5nIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJB Q0sgKHBob3Rvc19pdGVtX21hbmFnZXJfY2hhbmdlc19wZW5kaW5nKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NP Tk5FQ1RfU1dBUFBFRCk7CistCisgICB7CisgICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9 IE5VTEw7CisgCisgICAgIHNlbGYtPnF1ZXVlID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3Np bmdsZXRvbiAoTlVMTCwgJmVycm9yKTsKKyAgICAgaWYgKEdfVU5MSUtFTFkgKGVycm9yICE9IE5V TEwpKQorLSAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUgUGhvdG9zVHJhY2tlclF1 ZXVlOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgICB7CisrICAgICAgICBnX3dhcm5pbmcg KCJVbmFibGUgdG8gY3JlYXRlIFBob3Rvc1RyYWNrZXJRdWV1ZTogJXMiLCBlcnJvci0+bWVzc2Fn ZSk7CisrICAgICAgICBzZWxmLT5ub3RpZmllciA9IE5VTEw7CisrICAgICAgfQorKyAgICBlbHNl CisrICAgICAgeworKyAgICAgICAgc2VsZi0+bm90aWZpZXIgPSBwaG90b3NfdHJhY2tlcl9xdWV1 ZV9nZXRfbm90aWZpZXIgKHNlbGYtPnF1ZXVlKTsKKysgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rf b2JqZWN0IChzZWxmLT5ub3RpZmllciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiZXZlbnRzIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNL IChwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZyksCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHX0NPTk5FQ1RfU1dBUFBFRCk7CisrICAgICAgfQorICAgfQorIAorICAgc2VsZi0+ZnVsbHNj cmVlbiA9IEZBTFNFOworQEAgLTEyNDEsNyArMTI1Miw3IEBAIHBob3Rvc19pdGVtX21hbmFnZXJf YWRkX2l0ZW0gKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmLAorICAgZ19yZXR1cm5faWZfZmFpbCAo YmFzZV9pdGVtX3R5cGUgPT0gR19UWVBFX05PTkUKKyAgICAgICAgICAgICAgICAgICAgIHx8IChi YXNlX2l0ZW1fdHlwZSAhPSBQSE9UT1NfVFlQRV9CQVNFX0lURU0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAmJiBnX3R5cGVfaXNfYSAoYmFzZV9pdGVtX3R5cGUsIFBIT1RPU19UWVBFX0JBU0Vf SVRFTSkpKTsKKy0gIGdfcmV0dXJuX2lmX2ZhaWwgKFRSQUNLRVJfU1BBUlFMX0lTX0NVUlNPUiAo Y3Vyc29yKSk7CisrICBnX3JldHVybl9pZl9mYWlsIChUUkFDS0VSX0lTX1NQQVJRTF9DVVJTT1Ig KGN1cnNvcikpOworIAorICAgaWQgPSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfZ2V0X3N0cmluZyAo Y3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19VUk4sIE5VTEwpOworICAgZ19yZXR1cm5faWZf ZmFpbCAoaWQgIT0gTlVMTCAmJiBpZFswXSAhPSAnXDAnKTsKK0BAIC0xMzcwLDcgKzEzODEsNyBA QCBwaG90b3NfaXRlbV9tYW5hZ2VyX2NyZWF0ZV9pdGVtIChQaG90b3NJdGVtTWFuYWdlciAqc2Vs ZiwKKyAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChiYXNlX2l0ZW1fdHlwZSA9PSBHX1RZUEVfTk9O RQorICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChiYXNlX2l0ZW1fdHlwZSAhPSBQSE9UT1Nf VFlQRV9CQVNFX0lURU0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgZ190eXBlX2lz X2EgKGJhc2VfaXRlbV90eXBlLCBQSE9UT1NfVFlQRV9CQVNFX0lURU0pKSwgTlVMTCk7CistICBn X3JldHVybl92YWxfaWZfZmFpbCAoVFJBQ0tFUl9TUEFSUUxfSVNfQ1VSU09SIChjdXJzb3IpLCBO VUxMKTsKKysgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChUUkFDS0VSX0lTX1NQQVJRTF9DVVJTT1Ig KGN1cnNvciksIE5VTEwpOworIAorICAgaWQgPSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfZ2V0X3N0 cmluZyAoY3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19VUk4sIE5VTEwpOworICAgaXRlbSA9 IFBIT1RPU19CQVNFX0lURU0gKHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X29iamVjdF9ieV9pZCAo UEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiksIGlkKSk7CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rv cy1xdWFya3MuYyBiL3NyYy9waG90b3MtcXVhcmtzLmMKK2luZGV4IDA4NzBlZjYyLi41ZWUyNTc0 NSAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtcXVhcmtzLmMKKysrKyBiL3NyYy9waG90b3MtcXVh cmtzLmMKK0BAIC0yNSw2OCArMjUsNjggQEAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX2ZsYXNo X29mZl9xdWFyayAodm9pZCkKKyB7CistICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJp bmcgKCJodHRwOi8vd3d3LnRyYWNrZXItcHJvamVjdC5vcmcvdGVtcC9ubW0jZmxhc2gtb2ZmIik7 CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5h cGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25tbSNmbGFzaC1vZmYiKTsKKyB9CisgCisgCisgR1F1 YXJrCisgcGhvdG9zX3F1YXJrc19mbGFzaF9vbl9xdWFyayAodm9pZCkKKyB7CistICByZXR1cm4g Z19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vd3d3LnRyYWNrZXItcHJvamVjdC5v cmcvdGVtcC9ubW0jZmxhc2gtb24iKTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0 cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbm1tI2ZsYXNo LW9uIik7CisgfQorIAorIAorIEdRdWFyaworIHBob3Rvc19xdWFya3Nfb3JpZW50YXRpb25fYm90 dG9tX3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmlu ZyAoImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIv bmZvI29yaWVudGF0aW9uLWJvdHRvbSIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNf c3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8jb3Jp ZW50YXRpb24tYm90dG9tIik7CisgfQorIAorIAorIEdRdWFyaworIHBob3Rvc19xdWFya3Nfb3Jp ZW50YXRpb25fYm90dG9tX21pcnJvcl9xdWFyayAodm9pZCkKKyB7CistICByZXR1cm4gZ19xdWFy a19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcvb250 b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNvcmllbnRhdGlvbi1ib3R0b20tbWlycm9yIik7CisrICBy ZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25v bWUub3JnL29udG9sb2d5L3YzL25mbyNvcmllbnRhdGlvbi1ib3R0b20tbWlycm9yIik7CisgfQor IAorIAorIEdRdWFyaworIHBob3Rvc19xdWFya3Nfb3JpZW50YXRpb25fbGVmdF9xdWFyayAodm9p ZCkKKyB7CistICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vd3d3 LnNlbWFudGljZGVza3RvcC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNvcmllbnRhdGlv bi1sZWZ0Iik7CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8v dHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25mbyNvcmllbnRhdGlvbi1sZWZ0Iik7 CisgfQorIAorIAorIEdRdWFyaworIHBob3Rvc19xdWFya3Nfb3JpZW50YXRpb25fbGVmdF9taXJy b3JfcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5n ICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9u Zm8jb3JpZW50YXRpb24tbGVmdC1taXJyb3IiKTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3Rh dGljX3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZv I29yaWVudGF0aW9uLWxlZnQtbWlycm9yIik7CisgfQorIAorIAorIEdRdWFyaworIHBob3Rvc19x dWFya3Nfb3JpZW50YXRpb25fcmlnaHRfcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVh cmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29u dG9sb2dpZXMvMjAwNy8wMy8yMi9uZm8jb3JpZW50YXRpb24tcmlnaHQiKTsKKysgIHJldHVybiBn X3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcv b250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLXJpZ2h0Iik7CisgfQorIAorIAorIEdRdWFyawor IHBob3Rvc19xdWFya3Nfb3JpZW50YXRpb25fcmlnaHRfbWlycm9yX3F1YXJrICh2b2lkKQorIHsK Ky0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cuc2VtYW50 aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI29yaWVudGF0aW9uLXJpZ2h0 LW1pcnJvciIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDov L3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8jb3JpZW50YXRpb24tcmlnaHQt bWlycm9yIik7CisgfQorIAorIAorIEdRdWFyaworIHBob3Rvc19xdWFya3Nfb3JpZW50YXRpb25f dG9wX3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmlu ZyAoImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIv bmZvI29yaWVudGF0aW9uLXRvcCIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3Ry aW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8jb3JpZW50 YXRpb24tdG9wIik7CisgfQorIAorIAorIEdRdWFyaworIHBob3Rvc19xdWFya3Nfb3JpZW50YXRp b25fdG9wX21pcnJvcl9xdWFyayAodm9pZCkKKyB7CistICByZXR1cm4gZ19xdWFya19mcm9tX3N0 YXRpY19zdHJpbmcgKCJodHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcvb250b2xvZ2llcy8y MDA3LzAzLzIyL25mbyNvcmllbnRhdGlvbi10b3AtbWlycm9yIik7CisrICByZXR1cm4gZ19xdWFy a19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9s b2d5L3YzL25mbyNvcmllbnRhdGlvbi10b3AtbWlycm9yIik7CisgfQorZGlmZiAtLWdpdCBhL3Ny Yy9waG90b3MtcXVlcnktYnVpbGRlci5jIGIvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMKK2lu ZGV4IGUwNzM1YmRlLi40NmQ2NWU4ZiAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtcXVlcnktYnVp bGRlci5jCisrKysgYi9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYworQEAgLTI1LDYgKzI1LDcg QEAKKyAKKyAjaW5jbHVkZSA8c3RyaW5nLmg+CisgCisrI2luY2x1ZGUgInBob3Rvcy1hcHBsaWNh dGlvbi5oIgorICNpbmNsdWRlICJwaG90b3MtYmFzZS1tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInBo b3Rvcy1xdWVyeS5oIgorICNpbmNsdWRlICJwaG90b3MtcXVlcnktYnVpbGRlci5oIgorQEAgLTMy LDYgKzMzLDcgQEAKKyAjaW5jbHVkZSAicGhvdG9zLXNvdXJjZS1tYW5hZ2VyLmgiCisgI2luY2x1 ZGUgInBob3Rvcy1zZWFyY2gtbWF0Y2gtbWFuYWdlci5oIgorICNpbmNsdWRlICJwaG90b3Mtc2Vh cmNoLXR5cGUtbWFuYWdlci5oIgorKyNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1xdWV1ZS5oIgor IAorICNkZWZpbmUgUEhPVE9TX1FVRVJZX0NPTExFQ1RJT05TX0lERU5USUZJRVIgInBob3Rvczpj b2xsZWN0aW9uOiIKKyAjZGVmaW5lIFBIT1RPU19RVUVSWV9MT0NBTF9DT0xMRUNUSU9OU19JREVO VElGSUVSICJwaG90b3M6Y29sbGVjdGlvbjpsb2NhbDoiCitAQCAtNDgsMTIgKzUwLDE0IEBAIGNv bnN0IGdjaGFyICpwaG90b3NfZGVmYXVsdF9maWx0ZXIgPSBcCisgCisgc3RhdGljIGdjaGFyICoK KyBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpz dGF0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gZ2xvYmFsLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqdmFsdWVzLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnaW50IGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQaG90b3NPZmZzZXRDb250cm9sbGVyICpvZmZzZXRfY250cmxyKQorIHsKKyAgIFBob3Rv c1NwYXJxbFRlbXBsYXRlICp0ZW1wbGF0ZTsKKy0gIGNvbnN0IGdjaGFyICpwcm9qZWN0aW9uID0g TlVMTDsKKysgIGNvbnN0IGdjaGFyICptaW5lcl9mc19idXNuYW1lID0gTlVMTDsKKysgIGNvbnN0 IGdjaGFyICptYWluX3Byb2plY3Rpb24gPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKnNlY29uZF9w cm9qZWN0aW9uID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKml0ZW1fcGF0dGVybiA9IE5V TEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzZWFyY2hfZmlsdGVyID0gTlVMTDsKKyAgIGdfYXV0 b2ZyZWUgZ2NoYXIgKnNvdXJjZV9maWx0ZXIgPSBOVUxMOworQEAgLTYzLDI5ICs2NywzNSBAQCBw aG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0 ZSwKKyAKKyAgIHRlbXBsYXRlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBs YXRlIChzdGF0ZS0+c3JjaF90eXBfbW5nciwgZmxhZ3MpOworIAorLSAgcHJvamVjdGlvbiA9ICI/ dXJuICIKKy0gICAgICAgICAgICAgICAibmllOnVybCAoP3VybikgIgorLSAgICAgICAgICAgICAg ICJuZm86ZmlsZU5hbWUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAibmllOm1pbWVUeXBlICg/ dXJuKSAiCistICAgICAgICAgICAgICAgIm5pZTp0aXRsZSAoP3VybikgIgorLSAgICAgICAgICAg ICAgICJ0cmFja2VyOmNvYWxlc2NlIChuY286ZnVsbG5hbWUgKD9jcmVhdG9yKSwgbmNvOmZ1bGxu YW1lICg/cHVibGlzaGVyKSwgJycpICIKKy0gICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNj ZSAobmZvOmZpbGVMYXN0TW9kaWZpZWQgKD91cm4pLCBuaWU6Y29udGVudExhc3RNb2RpZmllZCAo P3VybikpIEFTID9tdGltZSAiCistICAgICAgICAgICAgICAgIm5hbzppZGVudGlmaWVyICg/dXJu KSAiCistICAgICAgICAgICAgICAgInJkZjp0eXBlICg/dXJuKSAiCistICAgICAgICAgICAgICAg Im5pZTpkYXRhU291cmNlKD91cm4pICIKKy0gICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/dXJu IG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlIH0gKSAiCistICAgICAgICAg ICAgICAgIiggRVhJU1RTIHsgP3VybiBuY286Y29udHJpYnV0b3IgP2NvbnRyaWJ1dG9yIEZJTFRF UiAoID9jb250cmlidXRvciAhPSA/Y3JlYXRvciApIH0gKSAiCistICAgICAgICAgICAgICAgInRy YWNrZXI6Y29hbGVzY2UobmZvOmZpbGVDcmVhdGVkICg/dXJuKSwgbmllOmNvbnRlbnRDcmVhdGVk ICg/dXJuKSkgIgorLSAgICAgICAgICAgICAgICJuZm86d2lkdGggKD91cm4pICIKKy0gICAgICAg ICAgICAgICAibmZvOmhlaWdodCAoP3VybikgIgorLSAgICAgICAgICAgICAgICJuZm86ZXF1aXBt ZW50ICg/dXJuKSAiCistICAgICAgICAgICAgICAgIm5mbzpvcmllbnRhdGlvbiAoP3VybikgIgor LSAgICAgICAgICAgICAgICJubW06ZXhwb3N1cmVUaW1lICg/dXJuKSAiCistICAgICAgICAgICAg ICAgIm5tbTpmbnVtYmVyICg/dXJuKSAiCistICAgICAgICAgICAgICAgIm5tbTpmb2NhbExlbmd0 aCAoP3VybikgIgorLSAgICAgICAgICAgICAgICJubW06aXNvU3BlZWQgKD91cm4pICIKKy0gICAg ICAgICAgICAgICAibm1tOmZsYXNoICg/dXJuKSAiCistICAgICAgICAgICAgICAgInNsbzpsb2Nh dGlvbiAoP3VybikgIjsKKysgIG1pbmVyX2ZzX2J1c25hbWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1 ZV9nZXRfbWluZXJfZnNfYnVzbmFtZSAoc3RhdGUtPnF1ZXVlKTsKKysKKysgIG1haW5fcHJvamVj dGlvbiA9ICI/dXJuICIKKysgICAgICAgICAgICAgICAgICAgICI/ZmlsZSAiCisrICAgICAgICAg ICAgICAgICAgICAibmZvOmZpbGVOYW1lICg/ZmlsZSkgQVMgP2ZpbGVuYW1lICIKKysgICAgICAg ICAgICAgICAgICAgICJuaWU6bWltZVR5cGUgKD91cm4pIEFTID9taW1ldHlwZSAiCisrICAgICAg ICAgICAgICAgICAgICAibmllOnRpdGxlICg/dXJuKSBBUyA/dGl0bGUgIgorKyAgICAgICAgICAg ICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5jbzpmdWxsbmFtZSAoP2NyZWF0b3IpLCBuY286 ZnVsbG5hbWUgKD9wdWJsaXNoZXIpLCAnJykgQVMgP2F1dGhvcl9uYW1lICIKKysgICAgICAgICAg ICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlIChuZm86ZmlsZUxhc3RNb2RpZmllZCAoP2ZpbGUp LCBuaWU6Y29udGVudExhc3RNb2RpZmllZCAoP3VybikpIEFTID9tdGltZSAiCisrICAgICAgICAg ICAgICAgICAgICAibmFvOmlkZW50aWZpZXIgKD91cm4pIEFTID9pZGVudGlmaWVyICIKKysgICAg ICAgICAgICAgICAgICAgICJyZGY6dHlwZSAoP3VybikgQVMgP3R5cGUgIgorKyAgICAgICAgICAg ICAgICAgICAgIm5pZTpkYXRhU291cmNlKD91cm4pIEFTID9kYXRhc291cmNlICIKKysgICAgICAg ICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmNvOmNvbnRyaWJ1dG9yID9jb250cmlidXRv ciBGSUxURVIgKCA/Y29udHJpYnV0b3IgIT0gP2NyZWF0b3IgKSB9ICkgQVMgP2hhc19jb250cmli dXRvciAiCisrICAgICAgICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZShuZm86ZmlsZUNy ZWF0ZWQgKD9maWxlKSwgbmllOmNvbnRlbnRDcmVhdGVkICg/dXJuKSkgQVMgP2N0aW1lICIKKysg ICAgICAgICAgICAgICAgICAgICJuZm86d2lkdGggKD91cm4pIEFTID93aWR0aCAiCisrICAgICAg ICAgICAgICAgICAgICAibmZvOmhlaWdodCAoP3VybikgQVMgP2hlaWdodCAiCisrICAgICAgICAg ICAgICAgICAgICAibmZvOmVxdWlwbWVudCAoP3VybikgQVMgP2VxdWlwbWVudCAiCisrICAgICAg ICAgICAgICAgICAgICAibmZvOm9yaWVudGF0aW9uICg/dXJuKSBBUyA/b3JpZW50YXRpb24gIgor KyAgICAgICAgICAgICAgICAgICAgIm5tbTpleHBvc3VyZVRpbWUgKD91cm4pIEFTID9leHBvc3Vy ZV90aW1lICIKKysgICAgICAgICAgICAgICAgICAgICJubW06Zm51bWJlciAoP3VybikgQVMgP2Zu dW1iZXIgIgorKyAgICAgICAgICAgICAgICAgICAgIm5tbTpmb2NhbExlbmd0aCAoP3VybikgQVMg P2ZvY2FsX2xlbmd0aCAiCisrICAgICAgICAgICAgICAgICAgICAibm1tOmlzb1NwZWVkICg/dXJu KSBBUyA/aXNvc3BlZWQgIgorKyAgICAgICAgICAgICAgICAgICAgIm5tbTpmbGFzaCAoP3Vybikg QVMgP2ZsYXNoICIKKysgICAgICAgICAgICAgICAgICAgICJzbG86bG9jYXRpb24gKD91cm4pIEFT ID9sb2NhdGlvbiAiOworKworKyAgc2Vjb25kX3Byb2plY3Rpb24gPSAiP3VybiA/ZmlsZSA/Zmls ZW5hbWUgP21pbWV0eXBlID90aXRsZSA/YXV0aG9yX25hbWUgP210aW1lID9pZGVudGlmaWVyID90 eXBlID9kYXRhc291cmNlICIKKysgICAgICAgICAgICAgICAgICAgICAgIiggRVhJU1RTIHsgP3Vy biBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSB9ICkgQVMgP2lzX2Zhdm9y aXRlICIKKysgICAgICAgICAgICAgICAgICAgICAgIj9oYXNfY29udHJpYnV0b3IgP2N0aW1lID93 aWR0aCA/aGVpZ2h0ID9lcXVpcG1lbnQgP29yaWVudGF0aW9uID9leHBvc3VyZV90aW1lID9mbnVt YmVyICIKKysgICAgICAgICAgICAgICAgICAgICAgIj9mb2NhbF9sZW5ndGggP2lzb3NwZWVkID9m bGFzaCA/bG9jYXRpb24gIjsKKyAKKyAgIGl0ZW1fcGF0dGVybiA9IHBob3Rvc19iYXNlX21hbmFn ZXJfZ2V0X3doZXJlIChzdGF0ZS0+aXRlbV9tbmdyLCBmbGFncyk7CisgCitAQCAtOTcsNyArMTA3 LDcgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0 ZSAqc3RhdGUsCisgCisgICBvcmRlciA9ICJPUkRFUiBCWSBERVNDICg/bXRpbWUpIjsKKyAKKy0g IGlmIChnbG9iYWwgJiYgKGZsYWdzICYgUEhPVE9TX1FVRVJZX0ZMQUdTX1VOTElNSVRFRCkgPT0g MCkKKysgIGlmICh2YWx1ZXMgPT0gTlVMTCAmJiAoZmxhZ3MgJiBQSE9UT1NfUVVFUllfRkxBR1Nf VU5MSU1JVEVEKSA9PSAwKQorICAgICB7CisgICAgICAgZ2ludCBvZmZzZXQgPSAwOworICAgICAg IGdpbnQgc3RlcCA9IDYwOworQEAgLTExMiwxMiArMTIyLDE2IEBAIHBob3Rvc19xdWVyeV9idWls ZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAorICAgICB9CisgCisg ICBzcGFycWwgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKHRlbXBsYXRlLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvamVjdGlv biIsIHByb2plY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJtaW5lcl9mc19idXNuYW1lIiwgbWluZXJfZnNfYnVzbmFtZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1haW5fcHJvamVjdGlvbiIsIG1h aW5fcHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgInNlY29uZF9wcm9qZWN0aW9uIiwgc2Vjb25kX3Byb2plY3Rpb24sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaW5hbF9wcm9qZWN0aW9uIiwg c2Vjb25kX3Byb2plY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJ2YWx1ZXMiLCB2YWx1ZXMgPyB2YWx1ZXMgOiAiIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbGxlY3Rpb25zX2RlZmF1bHRfZmls dGVyIiwgY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVtX3BhdHRlcm4iLCBpdGVtX3BhdHRlcm4sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwaG90b3NfZGVm YXVsdF9maWx0ZXIiLCBwaG90b3NfZGVmYXVsdF9maWx0ZXIsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb3VyY2VfZmlsdGVyIiwgc291cmNlX2ZpbHRl ciA/IHNvdXJjZV9maWx0ZXIgOiAiIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInNlYXJjaF9maWx0ZXIiLCBzZWFyY2hfZmlsdGVyID8gc2VhcmNoX2Zp bHRlciA6ICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAic291cmNlX2ZpbHRlciIsIHNvdXJjZV9maWx0ZXIgPyBzb3VyY2VfZmlsdGVyIDogIih0cnVl KSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWFy Y2hfZmlsdGVyIiwgc2VhcmNoX2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIgOiAiKHRydWUpIiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yZGVyIiwgb3Jk ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvZmZz ZXRfbGltaXQiLCBvZmZzZXRfbGltaXQgPyBvZmZzZXRfbGltaXQgOiAiIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CitAQCAtMTMzLDYgKzE0 Nyw3IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX2NyZWF0ZV9jb2xsZWN0aW9uX3F1ZXJ5IChQaG90 b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAorIHsKKyAgIGdfYXV0b3B0ciAoR0RhdGVUaW1l KSBub3cgPSBOVUxMOworICAgUGhvdG9zUXVlcnkgKnF1ZXJ5OworKyAgZ19hdXRvcHRyIChUcmFj a2VyUmVzb3VyY2UpIGNvbGxlY3Rpb24gPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqaWRl bnRpZmllciA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOworICAg Z19hdXRvZnJlZSBnY2hhciAqdGltZSA9IE5VTEw7CitAQCAtMTQ0LDEzICsxNTksMTQgQEAgcGhv dG9zX3F1ZXJ5X2J1aWxkZXJfY3JlYXRlX2NvbGxlY3Rpb25fcXVlcnkgKFBob3Rvc1NlYXJjaENv bnRleHRTdGF0ZSAqc3RhdGUsCisgICBub3cgPSBnX2RhdGVfdGltZV9uZXdfbm93X3V0YyAoKTsK KyAgIHRpbWUgPSBnX2RhdGVfdGltZV9mb3JtYXRfaXNvODYwMSAobm93KTsKKyAKKy0gIHNwYXJx bCA9IGdfc3RyZHVwX3ByaW50ZiAoIklOU0VSVCB7IF86cmVzIGEgbmZvOkRhdGFDb250YWluZXIg OyBhIG5pZTpEYXRhT2JqZWN0IDsgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmll OmNvbnRlbnRMYXN0TW9kaWZpZWQgJyVzJyA7ICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIm5pZTp0aXRsZSAnJXMnIDsgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFv OmlkZW50aWZpZXIgJyVzJyB9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWRlbnRpZmllcik7CisrICBjb2xsZWN0aW9uID0gdHJhY2tlcl9yZXNvdXJjZV9u ZXcgKCJfOnJlcyIpOworKyAgdHJhY2tlcl9yZXNvdXJjZV9hZGRfdXJpIChjb2xsZWN0aW9uLCAi cmRmOnR5cGUiLCAibmZvOkRhdGFDb250YWluZXIiKTsKKysgIHRyYWNrZXJfcmVzb3VyY2VfYWRk X3VyaSAoY29sbGVjdGlvbiwgInJkZjp0eXBlIiwgIm5pZTpEYXRhT2JqZWN0Iik7CisrICB0cmFj a2VyX3Jlc291cmNlX3NldF9zdHJpbmcgKGNvbGxlY3Rpb24sICJuaWU6Y29udGVudExhc3RNb2Rp ZmllZCIsIHRpbWUpOworKyAgdHJhY2tlcl9yZXNvdXJjZV9zZXRfc3RyaW5nIChjb2xsZWN0aW9u LCAibmllOnRpdGxlIiwgbmFtZSk7CisrICB0cmFja2VyX3Jlc291cmNlX3NldF9zdHJpbmcgKGNv bGxlY3Rpb24sICJuYW86aWRlbnRpZmllciIsIGlkZW50aWZpZXIpOworKworKyAgc3BhcnFsID0g dHJhY2tlcl9yZXNvdXJjZV9wcmludF9zcGFycWxfdXBkYXRlIChjb2xsZWN0aW9uLCBOVUxMLCAi dHJhY2tlcjpQaWN0dXJlcyIpOworIAorICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChzdGF0 ZSwgc3BhcnFsKTsKKyAKK0BAIC0xODAsNyArMTk2LDkgQEAgUGhvdG9zUXVlcnkgKgorIHBob3Rv c19xdWVyeV9idWlsZGVyX2NvdW50X3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0 YXRlLCBnaW50IGZsYWdzKQorIHsKKyAgIFBob3Rvc1NwYXJxbFRlbXBsYXRlICp0ZW1wbGF0ZTsK Ky0gIGNvbnN0IGdjaGFyICpwcm9qZWN0aW9uID0gTlVMTDsKKysgIGNvbnN0IGdjaGFyICptaW5l cl9mc19idXNuYW1lID0gTlVMTDsKKysgIGNvbnN0IGdjaGFyICpjb3VudF9wcm9qZWN0aW9uID0g TlVMTDsKKysgIGNvbnN0IGdjaGFyICp2YWx1ZV9wcm9qZWN0aW9uID0gTlVMTDsKKyAgIGdfYXV0 b2ZyZWUgZ2NoYXIgKml0ZW1fcGF0dGVybiA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICpz ZWFyY2hfZmlsdGVyID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNvdXJjZV9maWx0ZXIg PSBOVUxMOworQEAgLTE4OSw3ICsyMDcsMTAgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY291bnRf cXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGdpbnQgZmxhZ3MpCisgCisg ICB0ZW1wbGF0ZSA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoc3Rh dGUtPnNyY2hfdHlwX21uZ3IsIGZsYWdzKTsKKyAKKy0gIHByb2plY3Rpb24gPSAiQ09VTlQoP3Vy bikgIjsKKysgIG1pbmVyX2ZzX2J1c25hbWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWlu ZXJfZnNfYnVzbmFtZSAoc3RhdGUtPnF1ZXVlKTsKKysKKysgIHZhbHVlX3Byb2plY3Rpb24gPSAi P3VybiAiOworKyAgY291bnRfcHJvamVjdGlvbiA9ICJDT1VOVCg/dXJuKSAiOworIAorICAgaXRl bV9wYXR0ZXJuID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hlcmUgKHN0YXRlLT5pdGVtX21u Z3IsIGZsYWdzKTsKKyAKK0BAIC0yMDAsMTIgKzIyMSwxNiBAQCBwaG90b3NfcXVlcnlfYnVpbGRl cl9jb3VudF9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2ludCBmbGFn cykKKyAgICAgfQorIAorICAgc3BhcnFsID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9nZXRfc3Bh cnFsICh0ZW1wbGF0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgInByb2plY3Rpb24iLCBwcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAibWluZXJfZnNfYnVzbmFtZSIsIG1pbmVyX2ZzX2J1c25h bWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYWlu X3Byb2plY3Rpb24iLCB2YWx1ZV9wcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAic2Vjb25kX3Byb2plY3Rpb24iLCB2YWx1ZV9wcm9qZWN0 aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlu YWxfcHJvamVjdGlvbiIsIGNvdW50X3Byb2plY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZXMiLCAiIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVy IiwgY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJpdGVtX3BhdHRlcm4iLCBpdGVtX3BhdHRlcm4sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwaG90b3NfZGVmYXVs dF9maWx0ZXIiLCBwaG90b3NfZGVmYXVsdF9maWx0ZXIsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJzb3VyY2VfZmlsdGVyIiwgc291cmNlX2ZpbHRlciA/ IHNvdXJjZV9maWx0ZXIgOiAiIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgInNlYXJjaF9maWx0ZXIiLCBzZWFyY2hfZmlsdGVyID8gc2VhcmNoX2ZpbHRl ciA6ICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi c291cmNlX2ZpbHRlciIsIHNvdXJjZV9maWx0ZXIgPyBzb3VyY2VfZmlsdGVyIDogIih0cnVlKSIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWFyY2hf ZmlsdGVyIiwgc2VhcmNoX2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIgOiAiKHRydWUpIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yZGVyIiwgIiIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvZmZzZXRfbGlt aXQiLCAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCk7CitAQCAtMjY0LDcgKzI4OSw3IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX2ZldGNoX2Nv bGxlY3Rpb25zX2xvY2FsIChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlKQorICAgZ19h dXRvZnJlZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKyAKKyAgIHNwYXJxbCA9IHBob3Rvc19xdWVy eV9idWlsZGVyX3F1ZXJ5IChzdGF0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUUlVFLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhPVE9TX1FVRVJZ X0ZMQUdTX0NPTExFQ1RJT05TCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBQSE9UT1NfUVVFUllfRkxBR1NfTE9DQUwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IFBIT1RPU19RVUVSWV9GTEFHU19VTkxJTUlURUQsCitAQCAtMjg0LDcg KzMwOSw3IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX2dsb2JhbF9xdWVyeSAoUGhvdG9zU2VhcmNo Q29udGV4dFN0YXRlICpzdGF0ZSwKKyAgIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKKyAgIGdfYXV0b2Zy ZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7CisgCistICBzcGFycWwgPSBwaG90b3NfcXVlcnlfYnVp bGRlcl9xdWVyeSAoc3RhdGUsIFRSVUUsIGZsYWdzLCBvZmZzZXRfY250cmxyKTsKKysgIHNwYXJx bCA9IHBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChzdGF0ZSwgTlVMTCwgZmxhZ3MsIG9mZnNl dF9jbnRybHIpOworICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChzdGF0ZSwgc3BhcnFsKTsK KyAKKyAgIHJldHVybiBxdWVyeTsKK0BAIC0zMTMsMTAgKzMzOCwxOSBAQCBwaG90b3NfcXVlcnlf YnVpbGRlcl9zZXRfY29sbGVjdGlvbl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpz dGF0ZSwKKyAgIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJx bCA9IE5VTEw7CisgCistICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCIlcyB7IDwlcz4gbmll OmlzUGFydE9mIDwlcz4gfSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcg PyAiSU5TRVJUIiA6ICJERUxFVEUiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVt X3VybiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbl91cm4pOworKyAg aWYgKHNldHRpbmcpCisrICAgIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIklOU0VSVCBEQVRB IHsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIEdSQVBIIHRyYWNrZXI6UGlj dHVyZXMgeyIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDwlcz4gYSBuaWU6 RGF0YU9iamVjdCAsIG5tbTpQaG90byA7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiICAgICAgbmllOmlzUGFydE9mIDwlcz4gIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIgIH0iCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIn0iLCBpdGVtX3Vybiwg Y29sbGVjdGlvbl91cm4pOworKyAgZWxzZQorKyAgICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYg KCJERUxFVEUgREFUQSB7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBHUkFQ SCB0cmFja2VyOlBpY3R1cmVzIHsiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAg ICA8JXM+IG5pZTppc1BhcnRPZiA8JXM+ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiICB9IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ9IiwgaXRlbV91cm4sIGNv bGxlY3Rpb25fdXJuKTsKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoc3RhdGUsIHNwYXJx bCk7CisgCisgICByZXR1cm4gcXVlcnk7CitAQCAtMzI2LDE3ICszNjAsMTQgQEAgcGhvdG9zX3F1 ZXJ5X2J1aWxkZXJfc2V0X2NvbGxlY3Rpb25fcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0 ZSAqc3RhdGUsCisgUGhvdG9zUXVlcnkgKgorIHBob3Rvc19xdWVyeV9idWlsZGVyX3NpbmdsZV9x dWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2ludCBmbGFncywgY29uc3Qg Z2NoYXIgKnJlc291cmNlKQorIHsKKy0gIGdfYXV0b3B0ciAoR1JlZ2V4KSByZWdleCA9IE5VTEw7 CisgICBQaG90b3NRdWVyeSAqcXVlcnk7CistICBnX2F1dG9mcmVlIGdjaGFyICpyZXBsYWNlbWVu dCA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOworLSAgZ19hdXRv ZnJlZSBnY2hhciAqdG1wID0gTlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKnZhbHVlcyA9IE5V TEw7CisrCisrICB2YWx1ZXMgPSBnX3N0cmR1cF9wcmludGYgKCJWQUxVRVMgP3VybiB7IDwlcz4g fSIsIHJlc291cmNlKTsKKyAKKy0gIHRtcCA9IHBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChz dGF0ZSwgRkFMU0UsIGZsYWdzLCBOVUxMKTsKKysgIHNwYXJxbCA9IHBob3Rvc19xdWVyeV9idWls ZGVyX3F1ZXJ5IChzdGF0ZSwgdmFsdWVzLCBmbGFncywgTlVMTCk7CisgCistICByZWdleCA9IGdf cmVnZXhfbmV3ICgiXFw/dXJuIiwgMCwgMCwgTlVMTCk7CistICByZXBsYWNlbWVudCA9IGdfc3Ry Y29uY2F0ICgiPCIsIHJlc291cmNlLCAiPiIsIE5VTEwpOworLSAgc3BhcnFsID0gZ19yZWdleF9y ZXBsYWNlIChyZWdleCwgdG1wLCAtMSwgMCwgcmVwbGFjZW1lbnQsIDAsIE5VTEwpOworICAgcXVl cnkgPSBwaG90b3NfcXVlcnlfbmV3IChzdGF0ZSwgc3BhcnFsKTsKKyAKKyAgIHJldHVybiBxdWVy eTsKK0BAIC0zNTQsNyArMzg1LDE0IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX3VwZGF0ZV9tdGlt ZV9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgY29uc3QKKyAgIG5vdyA9 IGdfZGF0ZV90aW1lX25ld19ub3dfdXRjICgpOworICAgdGltZSA9IGdfZGF0ZV90aW1lX2Zvcm1h dF9pc284NjAxIChub3cpOworIAorLSAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiSU5TRVJU IE9SIFJFUExBQ0UgeyA8JXM+IG5pZTpjb250ZW50TGFzdE1vZGlmaWVkICclcycgfSIsIHJlc291 cmNlLCB0aW1lKTsKKysgIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIldJVEggdHJhY2tlcjpQ aWN0dXJlcyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICJERUxFVEUgeyA8JXM+IG5p ZTpjb250ZW50TGFzdE1vZGlmaWVkID90aW1lIH0gIgorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiSU5TRVJUIHsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICA8JXM+IGEg bm1tOlBob3RvIDsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIG5pZTpjb250 ZW50TGFzdE1vZGlmaWVkICclcycgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAifSIK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIHsgPCVzPiBuaWU6Y29udGVudExh c3RNb2RpZmllZCA/dGltZSB9IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3Vy Y2UsIHJlc291cmNlLCB0aW1lLCByZXNvdXJjZSk7CisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9u ZXcgKHN0YXRlLCBzcGFycWwpOworIAorICAgcmV0dXJuIHF1ZXJ5OworZGlmZiAtLWdpdCBhL3Ny Yy9waG90b3Mtc2VhcmNoLWNvbnRleHQuYyBiL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuYwor aW5kZXggNGI1MDM3OTguLjZmODY5NGJjIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1zZWFyY2gt Y29udGV4dC5jCisrKysgYi9zcmMvcGhvdG9zLXNlYXJjaC1jb250ZXh0LmMKK0BAIC0zMSw2ICsz MSw3IEBACisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gtbWF0Y2gtbWFuYWdlci5oIgorICNpbmNs dWRlICJwaG90b3Mtc2VhcmNoLXR5cGUtbWFuYWdlci5oIgorICNpbmNsdWRlICJwaG90b3Mtc291 cmNlLW1hbmFnZXIuaCIKKysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUuaCIKKyAKKyAK KyBHX0RFRklORV9JTlRFUkZBQ0UgKFBob3Rvc1NlYXJjaENvbnRleHQsIHBob3Rvc19zZWFyY2hf Y29udGV4dCwgR19UWVBFX09CSkVDVCk7CitAQCAtNTQsNiArNTUsNyBAQCBwaG90b3Nfc2VhcmNo X2NvbnRleHRfc3RhdGVfbmV3IChQaG90b3NTZWFyY2hDb250ZXh0ICpzZWxmKQorICAgc3RhdGUt PnNyY2hfY250cmxyID0gcGhvdG9zX3NlYXJjaF9jb250cm9sbGVyX25ldyAoKTsKKyAgIHN0YXRl LT5zcmNoX210Y2hfbW5nciA9IHBob3Rvc19zZWFyY2hfbWF0Y2hfbWFuYWdlcl9uZXcgKHN0YXRl LT5zcmNoX2NudHJscik7CisgICBzdGF0ZS0+c3JjaF90eXBfbW5nciA9IHBob3Rvc19zZWFyY2hf dHlwZV9tYW5hZ2VyX25ldyAoKTsKKysgIHN0YXRlLT5xdWV1ZSA9IHBob3Rvc190cmFja2VyX3F1 ZXVlX2R1cF9zaW5nbGV0b24gKE5VTEwsIE5VTEwpOworIAorICAgcmV0dXJuIHN0YXRlOworIH0K K0BAIC02OCw2ICs3MCw3IEBAIHBob3Rvc19zZWFyY2hfY29udGV4dF9zdGF0ZV9mcmVlIChQaG90 b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlKQorICAgZ19vYmplY3RfdW5yZWYgKHN0YXRlLT5z cmNoX210Y2hfbW5ncik7CisgICBnX29iamVjdF91bnJlZiAoc3RhdGUtPnNyY2hfdHlwX21uZ3Ip OworICAgZ19vYmplY3RfdW5yZWYgKHN0YXRlLT5zcmNoX2NudHJscik7CisrICBnX2NsZWFyX29i amVjdCAoJnN0YXRlLT5xdWV1ZSk7CisgICBnX3NsaWNlX2ZyZWUgKFBob3Rvc1NlYXJjaENvbnRl eHRTdGF0ZSwgc3RhdGUpOworIH0KKyAKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXNlYXJjaC1j b250ZXh0LmggYi9zcmMvcGhvdG9zLXNlYXJjaC1jb250ZXh0LmgKK2luZGV4IDJhZjZjZjk2Li41 YTE4ZDM4NiAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuaAorKysrIGIv c3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5oCitAQCAtNDEsNiArNDEsNyBAQCBzdHJ1Y3QgX1Bo b3Rvc1NlYXJjaENvbnRleHRTdGF0ZQorICAgZ3BvaW50ZXIgc3JjaF90eXBfbW5ncjsKKyAgIGdw b2ludGVyIG9mZnNldF9jbnRybHI7CisgICBncG9pbnRlciBzcmNoX2NudHJscjsKKysgIGdwb2lu dGVyIHF1ZXVlOworIH07CisgCisgUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICAgICAgKnBob3Rv c19zZWFyY2hfY29udGV4dF9zdGF0ZV9uZXcgICAgICAoUGhvdG9zU2VhcmNoQ29udGV4dCAqc2Vs Zik7CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zZWFyY2gtbWF0Y2gtbWFuYWdlci5jIGIvc3Jj L3Bob3Rvcy1zZWFyY2gtbWF0Y2gtbWFuYWdlci5jCitpbmRleCBlNmRjNDI5YS4uMmJhMWZkMGYg MTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmMKKysrKyBiL3Ny Yy9waG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuYworQEAgLTE0OCw3ICsxNDgsNyBAQCBwaG90 b3Nfc2VhcmNoX21hdGNoX21hbmFnZXJfaW5pdCAoUGhvdG9zU2VhcmNoTWF0Y2hNYW5hZ2VyICpz ZWxmKQorICAgICAgICAgICAgICAgICAgICIgIHRyYWNrZXI6Y2FzZS1mb2xkICh0cmFja2VyOmNv YWxlc2NlIChuY286ZnVsbG5hbWUgKD9jcmVhdG9yKSwgbmNvOmZ1bGxuYW1lKD9wdWJsaXNoZXIp KSksIgorICAgICAgICAgICAgICAgICAgICIgIFwiJXNcIikiOworICAgdGl0bGVfZmlsdGVyID0g ImZuOmNvbnRhaW5zICgiCistICAgICAgICAgICAgICAgICAiICB0cmFja2VyOmNhc2UtZm9sZCAo dHJhY2tlcjpjb2FsZXNjZSAobmllOnRpdGxlICg/dXJuKSwgbmZvOmZpbGVOYW1lKD91cm4pKSks IgorKyAgICAgICAgICAgICAgICAgIiAgdHJhY2tlcjpjYXNlLWZvbGQgKHRyYWNrZXI6Y29hbGVz Y2UgKG5pZTp0aXRsZSAoP3VybiksIG5mbzpmaWxlTmFtZSg/ZmlsZSkpKSwiCisgICAgICAgICAg ICAgICAgICAiICBcIiVzXCIpIjsKKyAKKyAgIHNlYXJjaF9tYXRjaCA9IHBob3Rvc19zZWFyY2hf bWF0Y2hfbmV3IChQSE9UT1NfU0VBUkNIX01BVENIX1NUT0NLX0FMTCwKK2RpZmYgLS1naXQgYS9z cmMvcGhvdG9zLXNvdXJjZS5jIGIvc3JjL3Bob3Rvcy1zb3VyY2UuYworaW5kZXggZGI2ZjJkZTku LjUyMTk2NTJjIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1zb3VyY2UuYworKysrIGIvc3JjL3Bo b3Rvcy1zb3VyY2UuYworQEAgLTYyLDcgKzYyLDcgQEAgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUg KFBob3Rvc1NvdXJjZSwgcGhvdG9zX3NvdXJjZSwgR19UWVBFX09CSkVDVCwKKyBEWkxfREVGSU5F X0NPVU5URVIgKGluc3RhbmNlcywgIlBob3Rvc1NvdXJjZSIsICJJbnN0YW5jZXMiLCAiTnVtYmVy IG9mIFBob3Rvc1NvdXJjZSBpbnN0YW5jZXMiKQorIAorIAorLXN0YXRpYyBjb25zdCBnY2hhciAq VFJBQ0tFUl9TQ0hFTUEgPSAib3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIuTWluZXIuRmlsZXMiOwor K3N0YXRpYyBjb25zdCBnY2hhciAqVFJBQ0tFUl9TQ0hFTUEgPSAib3JnLmZyZWVkZXNrdG9wLlRy YWNrZXIzLk1pbmVyLkZpbGVzIjsKKyBzdGF0aWMgY29uc3QgZ2NoYXIgKlRSQUNLRVJfS0VZX1JF Q1VSU0lWRV9ESVJFQ1RPUklFUyA9ICJpbmRleC1yZWN1cnNpdmUtZGlyZWN0b3JpZXMiOworIAor IAorQEAgLTk0LDcgKzk0LDcgQEAgcGhvdG9zX3NvdXJjZV9idWlsZF9maWx0ZXJfbG9jYWwgKHZv aWQpCisgICAgICAgICBjb250aW51ZTsKKyAKKyAgICAgICB0cmFja2VyX3VyaSA9IHBob3Rvc191 dGlsc19jb252ZXJ0X3BhdGhfdG9fdXJpICh0cmFja2VyX2RpcnNbaV0pOworLSAgICAgIGdfc3Ry aW5nX2FwcGVuZF9wcmludGYgKHRyYWNrZXJfZmlsdGVyLCAiIHx8IGZuOmNvbnRhaW5zIChuaWU6 dXJsICg/dXJuKSwgJyVzJykiLCB0cmFja2VyX3VyaSk7CisrICAgICAgZ19zdHJpbmdfYXBwZW5k X3ByaW50ZiAodHJhY2tlcl9maWx0ZXIsICIgfHwgZm46Y29udGFpbnMgKG5pZTppc1N0b3JlZEFz ICg/dXJuKSwgJyVzJykiLCB0cmFja2VyX3VyaSk7CisgICAgIH0KKyAKKyAgIHBhdGggPSBnX2dl dF91c2VyX3NwZWNpYWxfZGlyIChHX1VTRVJfRElSRUNUT1JZX0RFU0tUT1ApOworQEAgLTEwOSwx MSArMTA5LDExIEBAIHBob3Rvc19zb3VyY2VfYnVpbGRfZmlsdGVyX2xvY2FsICh2b2lkKQorICAg ZXhwb3J0X3BhdGggPSBnX2J1aWxkX2ZpbGVuYW1lIChwYXRoLCBQSE9UT1NfRVhQT1JUX1NVQlBB VEgsIE5VTEwpOworICAgZXhwb3J0X3VyaSA9IHBob3Rvc191dGlsc19jb252ZXJ0X3BhdGhfdG9f dXJpIChleHBvcnRfcGF0aCk7CisgCistICBmaWx0ZXIgPSBnX3N0cmR1cF9wcmludGYgKCIoKChm bjpjb250YWlucyAobmllOnVybCAoP3VybiksICclcycpIgorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiICAgfHwgZm46Y29udGFpbnMgKG5pZTp1cmwgKD91cm4pLCAnJXMnKSIKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiAgIHx8IGZuOmNvbnRhaW5zIChuaWU6dXJsICg/dXJu KSwgJyVzJykiCisrICBmaWx0ZXIgPSBnX3N0cmR1cF9wcmludGYgKCIoKChmbjpjb250YWlucyAo bmllOmlzU3RvcmVkQXMgKD91cm4pLCAnJXMnKSIKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIiAgIHx8IGZuOmNvbnRhaW5zIChuaWU6aXNTdG9yZWRBcyAoP3VybiksICclcycpIgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgfHwgZm46Y29udGFpbnMgKG5pZTppc1N0b3Jl ZEFzICg/dXJuKSwgJyVzJykiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAlcyki CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICYmICFmbjpjb250YWlucyAobmllOnVy bCAoP3VybiksICclcycpKSIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgJiYgIWZu OmNvbnRhaW5zIChuaWU6aXNTdG9yZWRBcyAoP3VybiksICclcycpKSIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiB8fCBmbjpzdGFydHMtd2l0aCAobmFvOmlkZW50aWZpZXIgKD91cm4p LCAnJXMnKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB8fCAoP3VybiA9IG5mbzpp bWFnZS1jYXRlZ29yeS1zY3JlZW5zaG90KSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkZXNrdG9wX3VyaSwKK0BAIC0xNDYsNyArMTQ2LDcgQEAgcGhvdG9zX3NvdXJjZV9idWlsZF9m aWx0ZXJfcmVzb3VyY2UgKFBob3Rvc1NvdXJjZSAqc2VsZikKKyAKKyAgICAgICByb290ID0gZ19t b3VudF9nZXRfcm9vdCAoc2VsZi0+bW91bnQpOworICAgICAgIHVyaSA9IGdfZmlsZV9nZXRfdXJp IChyb290KTsKKy0gICAgICBmaWx0ZXIgPSBnX3N0cmR1cF9wcmludGYgKCIoZm46c3RhcnRzLXdp dGggKG5pZTp1cmwgKD91cm4pLCAnJXMnKSkiLCB1cmkpOworKyAgICAgIGZpbHRlciA9IGdfc3Ry ZHVwX3ByaW50ZiAoIihmbjpzdGFydHMtd2l0aCAobmllOmlzU3RvcmVkQXMgKD91cm4pLCAnJXMn KSkiLCB1cmkpOworICAgICB9CisgICBlbHNlCisgICAgIHsKK2RpZmYgLS1naXQgYS9zcmMvcGhv dG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmMgYi9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2 ZW50LmMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggZDVjNzRlYmMuLjAwMDAwMDAw CistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmMKKysrKyAvZGV2L251bGwK K0BAIC0xLDEzNiArMCwwIEBACistLyoKKy0gKiBQaG90b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFu ZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorLSAqIENvcHlyaWdodCDCqSAyMDEyIOKAkyAy MDE5IFJlZCBIYXQsIEluYy4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CistICogaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK Ky0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCist ICoKKy0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKy0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy0gKiBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLSAqCistICogWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy0gKiBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKy0gKi8KKy0KKy0vKiBCYXNlZCBvbiBjb2RlIGZyb206CistICogICArIERvY3Vt ZW50cworLSAqLworLQorLQorLSNpbmNsdWRlICJjb25maWcuaCIKKy0KKy0jaW5jbHVkZSAicGhv dG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmgiCistCistCistc3RydWN0IF9QaG90b3NUcmFja2Vy Q2hhbmdlRXZlbnQKKy17CistICBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBlIHR5cGU7Cist ICBnY2hhciAqcHJlZGljYXRlOworLSAgZ2NoYXIgKnVybjsKKy0gIGdpbnQzMiBwcmVkaWNhdGVf aWQ7CistICBnaW50MzIgdXJuX2lkOworLX07CistCistCistc3RhdGljIGNvbnN0IGdjaGFyICpS REZfVFlQRSA9ICJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjdHlw ZSI7CistCistCistdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9mcmVlIChQaG90 b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYpCisteworLSAgZ19mcmVlIChzZWxmLT5wcmVkaWNh dGUpOworLSAgZ19mcmVlIChzZWxmLT51cm4pOworLSAgZ19zbGljZV9mcmVlIChQaG90b3NUcmFj a2VyQ2hhbmdlRXZlbnQsIHNlbGYpOworLX0KKy0KKy0KKy1QaG90b3NUcmFja2VyQ2hhbmdlRXZl bnQgKgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9uZXcgKGdpbnQzMiB1cm5faWQsIGdp bnQzMiBwcmVkaWNhdGVfaWQsIGdib29sZWFuIGlzX2RlbGV0ZSkKKy17CistICBQaG90b3NUcmFj a2VyQ2hhbmdlRXZlbnQgKnNlbGY7CistCistICBzZWxmID0gZ19zbGljZV9uZXcwIChQaG90b3NU cmFja2VyQ2hhbmdlRXZlbnQpOworLSAgc2VsZi0+dXJuX2lkID0gdXJuX2lkOworLSAgc2VsZi0+ cHJlZGljYXRlX2lkID0gcHJlZGljYXRlX2lkOworLQorLSAgaWYgKGlzX2RlbGV0ZSkKKy0gICAg c2VsZi0+dHlwZSA9IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9ERUxFVEVEOworLSAgZWxz ZQorLSAgICBzZWxmLT50eXBlID0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NSRUFURUQ7 CistCistICByZXR1cm4gc2VsZjsKKy19CistCistCistUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50 ICoKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfY29weSAoUGhvdG9zVHJhY2tlckNoYW5n ZUV2ZW50ICpldmVudCkKKy17CistICBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGY7Cist CistICBzZWxmID0gZ19zbGljZV9uZXcwIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQpOworLSAg c2VsZi0+dHlwZSA9IGV2ZW50LT50eXBlOworLSAgc2VsZi0+cHJlZGljYXRlID0gZ19zdHJkdXAg KGV2ZW50LT5wcmVkaWNhdGUpOworLSAgc2VsZi0+dXJuID0gZ19zdHJkdXAgKGV2ZW50LT51cm4p OworLSAgc2VsZi0+cHJlZGljYXRlX2lkID0gZXZlbnQtPnByZWRpY2F0ZV9pZDsKKy0gIHNlbGYt PnVybl9pZCA9IGV2ZW50LT51cm5faWQ7CistCistICByZXR1cm4gc2VsZjsKKy19CistCistCist UGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50VHlwZQorLXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVu dF9nZXRfdHlwZSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKQorLXsKKy0gIHJldHVy biBzZWxmLT50eXBlOworLX0KKy0KKy0KKy1naW50MzIKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2Vf ZXZlbnRfZ2V0X3ByZWRpY2F0ZV9pZCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKQor LXsKKy0gIHJldHVybiBzZWxmLT5wcmVkaWNhdGVfaWQ7CistfQorLQorLQorLWNvbnN0IGdjaGFy ICoKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3VybiAoUGhvdG9zVHJhY2tlckNo YW5nZUV2ZW50ICpzZWxmKQorLXsKKy0gIHJldHVybiBzZWxmLT51cm47CistfQorLQorLQorLWdp bnQzMgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfdXJuX2lkIChQaG90b3NUcmFj a2VyQ2hhbmdlRXZlbnQgKnNlbGYpCisteworLSAgcmV0dXJuIHNlbGYtPnVybl9pZDsKKy19Cist CistCistdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9tZXJnZSAoUGhvdG9zVHJh Y2tlckNoYW5nZUV2ZW50ICpzZWxmLCBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmV2ZW50KQor LXsKKy0gIGdfcmV0dXJuX2lmX2ZhaWwgKGdfc3RyY21wMCAoc2VsZi0+dXJuLCBldmVudC0+dXJu KSA9PSAwKTsKKy0KKy0gIGlmIChldmVudC0+dHlwZSA9PSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0Vf RVZFTlRfREVMRVRFRCB8fCBldmVudC0+dHlwZSA9PSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZF TlRfQ1JFQVRFRCkKKy0gICAgc2VsZi0+dHlwZSA9IGV2ZW50LT50eXBlOworLX0KKy0KKy0KKy12 b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X3NldF9yZXNvbHZlZF92YWx1ZXMgKFBo b3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnVybiwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnByZWRpY2F0 ZSkKKy17CistICBnX3JldHVybl9pZl9mYWlsIChzZWxmLT5wcmVkaWNhdGUgPT0gTlVMTCk7Cist ICBnX3JldHVybl9pZl9mYWlsIChzZWxmLT51cm4gPT0gTlVMTCk7CistCistICBzZWxmLT51cm4g PSBnX3N0cmR1cCAodXJuKTsKKy0gIHNlbGYtPnByZWRpY2F0ZSA9IGdfc3RyZHVwIChwcmVkaWNh dGUpOworLQorLSAgaWYgKGdfc3RyY21wMCAocHJlZGljYXRlLCBSREZfVFlQRSkgIT0gMCkKKy0g ICAgc2VsZi0+dHlwZSA9IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9DSEFOR0VEOworLX0K K2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmggYi9zcmMvcGhv dG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmgKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5k ZXggZWVlNGY0MGMuLjAwMDAwMDAwCistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2 ZW50LmgKKysrKyAvZGV2L251bGwKK0BAIC0xLDY0ICswLDAgQEAKKy0vKgorLSAqIFBob3RvcyAt IGFjY2Vzcywgb3JnYW5pemUgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FCistICogQ29w eXJpZ2h0IMKpIDIwMTIg4oCTIDIwMTkgUmVkIEhhdCwgSW5jLgorLSAqCistICogVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKy0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCistICogKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorLSAqIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCistICogTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQor LSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCistICoKKy0g KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorLSAqLworLQorLS8qIEJhc2VkIG9uIGNvZGUg ZnJvbToKKy0gKiAgICsgRG9jdW1lbnRzCistICovCistCistI2lmbmRlZiBQSE9UT1NfVFJBQ0tF Ul9DSEFOR0VfRVZFTlRfSAorLSNkZWZpbmUgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0gK Ky0KKy0jaW5jbHVkZSA8Z2xpYi5oPgorLQorLUdfQkVHSU5fREVDTFMKKy0KKy10eXBlZGVmIGVu dW0KKy17CistICBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfQ0hBTkdFRCwKKy0gIFBIT1RP U19UUkFDS0VSX0NIQU5HRV9FVkVOVF9DUkVBVEVELAorLSAgUEhPVE9TX1RSQUNLRVJfQ0hBTkdF X0VWRU5UX0RFTEVURUQKKy19IFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudFR5cGU7CistCistdHlw ZWRlZiBzdHJ1Y3QgX1Bob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCBQaG90b3NUcmFja2VyQ2hhbmdl RXZlbnQ7CistCistUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICAqcGhvdG9zX3RyYWNrZXJfY2hh bmdlX2V2ZW50X25ldyAgICAgICAgKGdpbnQzMiB1cm5faWQsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQzMiBw cmVkaWNhdGVfaWQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGlzX2RlbGV0ZSk7CistCistUGhvdG9z VHJhY2tlckNoYW5nZUV2ZW50ICAqcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2NvcHkgICAg ICAgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqZXZlbnQpOworLQorLXZvaWQgICAgICAgICAg ICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9mcmVlICAgICAgIChQaG90 b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYpOworLQorLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVu dFR5cGUgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF90eXBlIChQaG90b3NUcmFja2Vy Q2hhbmdlRXZlbnQgKnNlbGYpOworLQorLWdpbnQzMiAgICAgICAgICAgICAgICAgICAgIHBob3Rv c190cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfcHJlZGljYXRlX2lkIChQaG90b3NUcmFja2VyQ2hh bmdlRXZlbnQgKnNlbGYpOworLQorLWNvbnN0IGdjaGFyICAgICAgICAgICAgICAgKnBob3Rvc190 cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfdXJuICAgIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQg KnNlbGYpOworLQorLWdpbnQzMiAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX2No YW5nZV9ldmVudF9nZXRfdXJuX2lkIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYpOwor LQorLXZvaWQgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVu dF9tZXJnZSAgICAgIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqZXZlbnQpOworLQorLXZvaWQgICAgICAgICAgICAg ICAgICAgICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9zZXRfcmVzb2x2ZWRfdmFsdWVz IChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGdjaGFyICp1cm4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpwcmVkaWNh dGUpOworLQorLUdfRU5EX0RFQ0xTCistCistI2VuZGlmIC8qIFBIT1RPU19UUkFDS0VSX0NIQU5H RV9FVkVOVF9IICovCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25p dG9yLmMgYi9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuYworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAyZTk4MTBhYS4uMDAwMDAwMDAKKy0tLSBhL3NyYy9waG90b3Mt dHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jCisrKysgL2Rldi9udWxsCitAQCAtMSw0NjggKzAsMCBA QAorLS8qCistICogUGhvdG9zIC0gYWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hhcmUgeW91ciBwaG90 b3Mgb24gR05PTUUKKy0gKiBDb3B5cmlnaHQgwqkgMjAxMiDigJMgMjAxOSBSZWQgSGF0LCBJbmMu CistICoKKy0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CistICogdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKy0g KiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorLSAqCistICogVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCist ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKy0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCistICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKy0gKgorLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCistICogYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCistICovCist CistLyogQmFzZWQgb24gY29kZSBmcm9tOgorLSAqICAgKyBEb2N1bWVudHMKKy0gKi8KKy0KKy0K Ky0jaW5jbHVkZSAiY29uZmlnLmgiCistCistI2luY2x1ZGUgPGdsaWIuaD4KKy0jaW5jbHVkZSA8 dHJhY2tlci1zcGFycWwuaD4KKy0KKy0jaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2 ZW50LmgiCistI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmgiCistI2lu Y2x1ZGUgInBob3Rvcy10cmFja2VyLXF1ZXVlLmgiCistI2luY2x1ZGUgInBob3Rvcy10cmFja2Vy LXJlc291cmNlcy5oIgorLSNpbmNsdWRlICJwaG90b3MtcXVlcnkuaCIKKy0KKy0KKy1zdHJ1Y3Qg X1Bob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yCisteworLSAgR09iamVjdCBwYXJlbnRfaW5zdGFu Y2U7CistICBHSGFzaFRhYmxlICpwZW5kaW5nX2NoYW5nZXM7CistICBHSGFzaFRhYmxlICp1bnJl c29sdmVkX2lkczsKKy0gIEdRdWV1ZSAqcGVuZGluZ19ldmVudHM7CistICBQaG90b3NUcmFja2Vy UXVldWUgKnF1ZXVlOworLSAgVHJhY2tlclJlc291cmNlcyAqcmVzb3VyY2Vfc2VydmljZTsKKy0g IGd1aW50IG91dHN0YW5kaW5nX29wczsKKy0gIGd1aW50IHBlbmRpbmdfZXZlbnRzX2lkOworLX07 CistCistZW51bQorLXsKKy0gIENIQU5HRVNfUEVORElORywKKy0gIExBU1RfU0lHTkFMCistfTsK Ky0KKy1zdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAgfTsKKy0KKy1zdGF0 aWMgdm9pZCBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9pbml0YWJsZV9pZmFjZV9pbml0 IChHSW5pdGFibGVJZmFjZSAqaWZhY2UpOworLQorLQorLUdfREVGSU5FX1RZUEVfRVhURU5ERUQg KFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yLCBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRv ciwgR19UWVBFX09CSkVDVCwgMCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBHX0lNUExFTUVO VF9JTlRFUkZBQ0UgKEdfVFlQRV9JTklUQUJMRSwgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0 b3JfaW5pdGFibGVfaWZhY2VfaW5pdCkpOworLQorLQorLWVudW0KKy17CistICBDSEFOR0VfTU9O SVRPUl9USU1FT1VUID0gNTAwLCAvKiBtcyAqLworLSAgQ0hBTkdFX01PTklUT1JfTUFYX0lURU1T ID0gNTAwCistfTsKKy0KKy0KKy10eXBlZGVmIHN0cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5nZU1v bml0b3JRdWVyeURhdGEgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGE7CistdHlw ZWRlZiBzdHJ1Y3QgX1RyYWNrZXJSZXNvdXJjZXNFdmVudCBUcmFja2VyUmVzb3VyY2VzRXZlbnQ7 CistCistc3RydWN0IF9QaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YQorLXsKKy0g IFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmOworLSAgR0hhc2hUYWJsZSAqaWRfdGFi bGU7CistICBHUXVldWUgKmV2ZW50czsKKy19OworLQorLXN0cnVjdCBfVHJhY2tlclJlc291cmNl c0V2ZW50CisteworLSAgZ2ludDMyIGdyYXBoOworLSAgZ2ludDMyIHN1YmplY3Q7CistICBnaW50 MzIgcHJlZGljYXRlOworLSAgZ2ludDMyIG9iamVjdDsKKy19OworLQorLQorLXN0YXRpYyB2b2lk CistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlfZGF0YV9mcmVlIChQaG90b3NU cmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSAqZGF0YSkKKy17CistICBnX2NsZWFyX29iamVj dCAoJmRhdGEtPnNlbGYpOworLQorLSAgaWYgKGRhdGEtPmlkX3RhYmxlICE9IE5VTEwpCistICAg IGdfaGFzaF90YWJsZV91bnJlZiAoZGF0YS0+aWRfdGFibGUpOworLQorLSAgaWYgKGRhdGEtPmV2 ZW50cyAhPSBOVUxMKQorLSAgICBnX3F1ZXVlX2ZyZWVfZnVsbCAoZGF0YS0+ZXZlbnRzLCAoR0Rl c3Ryb3lOb3RpZnkpIHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9mcmVlKTsKKy0KKy0gIGdf c2xpY2VfZnJlZSAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEsIGRhdGEpOwor LX0KKy0KKy0KKy1zdGF0aWMgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKgor LXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2RhdGFfbmV3IChQaG90b3NUcmFj a2VyQ2hhbmdlTW9uaXRvciAqc2VsZiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR0hhc2hUYWJsZSAqaWRfdGFibGUsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdRdWV1ZSAqZXZlbnRzKQorLXsKKy0gIFBob3Rv c1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICpkYXRhOworLQorLSAgZGF0YSA9IGdfc2xp Y2VfbmV3MCAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEpOworLSAgZGF0YS0+ c2VsZiA9IGdfb2JqZWN0X3JlZiAoc2VsZik7CistICBkYXRhLT5pZF90YWJsZSA9IGlkX3RhYmxl OworLSAgZGF0YS0+ZXZlbnRzID0gZXZlbnRzOworLQorLSAgcmV0dXJuIGRhdGE7CistfQorLQor LQorLXN0YXRpYyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfYWRkX2V2ZW50 IChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZiwgUGhvdG9zVHJhY2tlckNoYW5nZUV2 ZW50ICpjaGFuZ2VfZXZlbnQpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpvbGRf Y2hhbmdlX2V2ZW50OworLSAgY29uc3QgZ2NoYXIgKnVybjsKKy0KKy0gIHVybiA9IHBob3Rvc190 cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfdXJuIChjaGFuZ2VfZXZlbnQpOworLSAgb2xkX2NoYW5n ZV9ldmVudCA9IChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKikgZ19oYXNoX3RhYmxlX2xvb2t1 cCAoc2VsZi0+cGVuZGluZ19jaGFuZ2VzLCB1cm4pOworLQorLSAgaWYgKG9sZF9jaGFuZ2VfZXZl bnQgIT0gTlVMTCkKKy0gICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X21lcmdlIChvbGRf Y2hhbmdlX2V2ZW50LCBjaGFuZ2VfZXZlbnQpOworLSAgZWxzZQorLSAgICBnX2hhc2hfdGFibGVf aW5zZXJ0IChzZWxmLT5wZW5kaW5nX2NoYW5nZXMsIGdfc3RyZHVwICh1cm4pLCBwaG90b3NfdHJh Y2tlcl9jaGFuZ2VfZXZlbnRfY29weSAoY2hhbmdlX2V2ZW50KSk7CistfQorLQorLQorLXN0YXRp YyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcmVtb3ZlX3RpbWVvdXQgKFBo b3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmKQorLXsKKy0gIGlmIChzZWxmLT5wZW5kaW5n X2V2ZW50c19pZCAhPSAwKQorLSAgICB7CistICAgICAgZ19zb3VyY2VfcmVtb3ZlIChzZWxmLT5w ZW5kaW5nX2V2ZW50c19pZCk7CistICAgICAgc2VsZi0+cGVuZGluZ19ldmVudHNfaWQgPSAwOwor LSAgICB9CistfQorLQorLQorLXN0YXRpYyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21v bml0b3Jfc2VuZF9ldmVudHMgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmLCBHSGFz aFRhYmxlICppZF90YWJsZSwgR1F1ZXVlICpldmVudHMpCisteworLSAgR0xpc3QgKmw7CistCist ICBmb3IgKGwgPSBldmVudHMtPmhlYWQ7IGwgIT0gTlVMTDsgbCA9IGwtPm5leHQpCistICAgIHsK Ky0gICAgICBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmNoYW5nZV9ldmVudCA9IChQaG90b3NU cmFja2VyQ2hhbmdlRXZlbnQgKikgbC0+ZGF0YTsKKy0gICAgICBjb25zdCBnY2hhciAqcHJlZGlj YXRlOworLSAgICAgIGNvbnN0IGdjaGFyICp1cm47CistICAgICAgZ2ludDMyIHByZWRpY2F0ZV9p ZDsKKy0gICAgICBnaW50MzIgdXJuX2lkOworLQorLSAgICAgIHByZWRpY2F0ZV9pZCA9IHBob3Rv c190cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfcHJlZGljYXRlX2lkIChjaGFuZ2VfZXZlbnQpOwor LSAgICAgIHVybl9pZCA9IHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfdXJuX2lkIChj aGFuZ2VfZXZlbnQpOworLQorLSAgICAgIHByZWRpY2F0ZSA9IChnY2hhciAqKSBnX2hhc2hfdGFi bGVfbG9va3VwIChpZF90YWJsZSwgR0lOVF9UT19QT0lOVEVSIChwcmVkaWNhdGVfaWQpKTsKKy0g ICAgICBpZiAoR19VTkxJS0VMWSAocHJlZGljYXRlID09IE5VTEwpKQorLSAgICAgICAgY29udGlu dWU7CistCistICAgICAgdXJuID0gKGdjaGFyICopIGdfaGFzaF90YWJsZV9sb29rdXAgKGlkX3Rh YmxlLCBHSU5UX1RPX1BPSU5URVIgKHVybl9pZCkpOworLSAgICAgIGlmIChHX1VOTElLRUxZICh1 cm4gPT0gTlVMTCkpCistICAgICAgICBjb250aW51ZTsKKy0KKy0gICAgICBwaG90b3NfdHJhY2tl cl9jaGFuZ2VfZXZlbnRfc2V0X3Jlc29sdmVkX3ZhbHVlcyAoY2hhbmdlX2V2ZW50LCB1cm4sIHBy ZWRpY2F0ZSk7CistICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfYWRkX2V2ZW50 IChzZWxmLCBjaGFuZ2VfZXZlbnQpOworLSAgICB9CistCistICBnX3NpZ25hbF9lbWl0IChzZWxm LCBzaWduYWxzW0NIQU5HRVNfUEVORElOR10sIDAsIHNlbGYtPnBlbmRpbmdfY2hhbmdlcyk7Cist ICBnX2hhc2hfdGFibGVfcmVtb3ZlX2FsbCAoc2VsZi0+cGVuZGluZ19jaGFuZ2VzKTsKKy19Cist CistCistc3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9jdXJzb3Jf bmV4dCAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMsIGdwb2ludGVy IHVzZXJfZGF0YSkKKy17CistICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSAq ZGF0YSA9IChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSAqKSB1c2VyX2RhdGE7 CistICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZiA9IGRhdGEtPnNlbGY7CistICBU cmFja2VyU3BhcnFsQ3Vyc29yICpjdXJzb3IgPSBUUkFDS0VSX1NQQVJRTF9DVVJTT1IgKHNvdXJj ZV9vYmplY3QpOworLSAgR0hhc2hUYWJsZUl0ZXIgaXRlcjsKKy0gIGdib29sZWFuIHZhbGlkOwor LQorLSAgeworLSAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworLQorLSAgICB2 YWxpZCA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9uZXh0X2ZpbmlzaCAoY3Vyc29yLCByZXMsICZl cnJvcik7CistICAgIGlmIChlcnJvciAhPSBOVUxMKQorLSAgICAgIGdfd2FybmluZyAoIlVuYWJs ZSB0byByZXNvbHZlIGl0ZW0gVVJOcyBmb3IgZ3JhcGggY2hhbmdlczogJXMiLCBlcnJvci0+bWVz c2FnZSk7CistICB9CistCistICBpZiAodmFsaWQpCistICAgIHsKKy0gICAgICBndWludCBpZHg7 CistCistICAgICAgaWR4ID0gMDsKKy0gICAgICBnX2hhc2hfdGFibGVfaXRlcl9pbml0ICgmaXRl ciwgZGF0YS0+aWRfdGFibGUpOworLSAgICAgIHdoaWxlIChnX2hhc2hfdGFibGVfaXRlcl9uZXh0 ICgmaXRlciwgTlVMTCwgTlVMTCkpCistICAgICAgICB7CistICAgICAgICAgIGNvbnN0IGdjaGFy ICpzdHI7CistCistICAgICAgICAgIHN0ciA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRfc3Ry aW5nIChjdXJzb3IsIGlkeCwgTlVMTCk7CistICAgICAgICAgIGdfaGFzaF90YWJsZV9pdGVyX3Jl cGxhY2UgKCZpdGVyLCBnX3N0cmR1cCAoc3RyKSk7CistICAgICAgICAgIGlkeCsrOworLSAgICAg ICAgfQorLQorLSAgICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3NlbmRfZXZlbnRz IChzZWxmLCBkYXRhLT5pZF90YWJsZSwgZGF0YS0+ZXZlbnRzKTsKKy0gICAgfQorLQorLSAgdHJh Y2tlcl9zcGFycWxfY3Vyc29yX2Nsb3NlIChjdXJzb3IpOworLSAgcGhvdG9zX3RyYWNrZXJfY2hh bmdlX21vbml0b3JfcXVlcnlfZGF0YV9mcmVlIChkYXRhKTsKKy19CistCistCistc3RhdGljIHZv aWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVyeV9leGVjdXRlZCAoR09iamVj dCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMsIGdwb2ludGVyIHVzZXJfZGF0YSkK Ky17CistICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSAqZGF0YSA9IChQaG90 b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSAqKSB1c2VyX2RhdGE7CistICBUcmFja2Vy U3BhcnFsQ29ubmVjdGlvbiAqY29ubmVjdGlvbiA9IFRSQUNLRVJfU1BBUlFMX0NPTk5FQ1RJT04g KHNvdXJjZV9vYmplY3QpOworLSAgVHJhY2tlclNwYXJxbEN1cnNvciAqY3Vyc29yOyAvKiBUT0RP OiBVc2UgZ19hdXRvcHRyICovCistCistICB7CistICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJv ciA9IE5VTEw7CistCistICAgIGN1cnNvciA9IHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fcXVl cnlfZmluaXNoIChjb25uZWN0aW9uLCByZXMsICZlcnJvcik7CistICAgIGlmIChlcnJvciAhPSBO VUxMKQorLSAgICAgIHsKKy0gICAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byByZXNvbHZlIGl0 ZW0gVVJOcyBmb3IgZ3JhcGggY2hhbmdlczogJXMiLCBlcnJvci0+bWVzc2FnZSk7CistICAgICAg ICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVyeV9kYXRhX2ZyZWUgKGRhdGEpOwor LSAgICAgICAgcmV0dXJuOworLSAgICAgIH0KKy0gIH0KKy0KKy0gIHRyYWNrZXJfc3BhcnFsX2N1 cnNvcl9uZXh0X2FzeW5jIChjdXJzb3IsIE5VTEwsIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25p dG9yX2N1cnNvcl9uZXh0LCBkYXRhKTsKKy0gIGdfb2JqZWN0X3VucmVmIChjdXJzb3IpOworLX0K Ky0KKy0KKy1zdGF0aWMgZ2Jvb2xlYW4KKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9w cm9jZXNzX2V2ZW50cyAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYpCisteworLSAg R0hhc2hUYWJsZSAqaWRfdGFibGU7CistICBHSGFzaFRhYmxlSXRlciBpdGVyOworLSAgR1F1ZXVl ICpldmVudHM7CistICBnX2F1dG9wdHIgKEdTdHJpbmcpIHNwYXJxbCA9IE5VTEw7CistICBQaG90 b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSAqZGF0YTsKKy0gIGdfYXV0b3B0ciAoUGhv dG9zUXVlcnkpIHF1ZXJ5ID0gTlVMTDsKKy0gIGdwb2ludGVyIGlkOworLQorLSAgZXZlbnRzID0g c2VsZi0+cGVuZGluZ19ldmVudHM7CistICBzZWxmLT5wZW5kaW5nX2V2ZW50cyA9IGdfcXVldWVf bmV3ICgpOworLQorLSAgaWRfdGFibGUgPSBzZWxmLT51bnJlc29sdmVkX2lkczsKKy0gIHNlbGYt PnVucmVzb2x2ZWRfaWRzID0gZ19oYXNoX3RhYmxlX25ld19mdWxsIChnX2RpcmVjdF9oYXNoLCBn X2RpcmVjdF9lcXVhbCwgTlVMTCwgZ19mcmVlKTsKKy0KKy0gIHNlbGYtPnBlbmRpbmdfZXZlbnRz X2lkID0gMDsKKy0KKy0gIHNwYXJxbCA9IGdfc3RyaW5nX25ldyAoIlNFTEVDVCIpOworLQorLSAg Z19oYXNoX3RhYmxlX2l0ZXJfaW5pdCAoJml0ZXIsIGlkX3RhYmxlKTsKKy0gIHdoaWxlIChnX2hh c2hfdGFibGVfaXRlcl9uZXh0ICgmaXRlciwgJmlkLCBOVUxMKSkKKy0gICAgZ19zdHJpbmdfYXBw ZW5kX3ByaW50ZiAoc3BhcnFsLCAiIHRyYWNrZXI6dXJpKCVkKSIsIEdQT0lOVEVSX1RPX0lOVCAo aWQpKTsKKy0KKy0gIGdfc3RyaW5nX2FwcGVuZCAoc3BhcnFsLCAiIHt9Iik7CistCistICBxdWVy eSA9IHBob3Rvc19xdWVyeV9uZXcgKE5VTEwsIHNwYXJxbC0+c3RyKTsKKy0KKy0gIGRhdGEgPSBw aG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVyeV9kYXRhX25ldyAoc2VsZiwgaWRfdGFi bGUsIGV2ZW50cyk7CistICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zZWxlY3QgKHNlbGYtPnF1ZXVl LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlfZXhlY3V0ZWQsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGEsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwpOworLQorLSAgcmV0dXJuIEdfU09VUkNFX1JFTU9WRTsKKy19CistCistCistc3Rh dGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9hZGRfcGVuZGluZ19ldmVu dCAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRyYWNrZXJSZXNvdXJjZXNFdmVu dCAqZXZlbnQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdib29sZWFuIGlzX2RlbGV0ZSkKKy17CistICBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQg KmNoYW5nZV9ldmVudDsKKy0KKy0gIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3JlbW92 ZV90aW1lb3V0IChzZWxmKTsKKy0KKy0gIGdfaGFzaF90YWJsZV9pbnNlcnQgKHNlbGYtPnVucmVz b2x2ZWRfaWRzLCBHSU5UX1RPX1BPSU5URVIgKGV2ZW50LT5zdWJqZWN0KSwgTlVMTCk7CistICBn X2hhc2hfdGFibGVfaW5zZXJ0IChzZWxmLT51bnJlc29sdmVkX2lkcywgR0lOVF9UT19QT0lOVEVS IChldmVudC0+cHJlZGljYXRlKSwgTlVMTCk7CistCistICBjaGFuZ2VfZXZlbnQgPSBwaG90b3Nf dHJhY2tlcl9jaGFuZ2VfZXZlbnRfbmV3IChldmVudC0+c3ViamVjdCwgZXZlbnQtPnByZWRpY2F0 ZSwgaXNfZGVsZXRlKTsKKy0gIGdfcXVldWVfcHVzaF90YWlsIChzZWxmLT5wZW5kaW5nX2V2ZW50 cywgY2hhbmdlX2V2ZW50KTsKKy0KKy0gIGlmIChzZWxmLT5wZW5kaW5nX2V2ZW50cy0+bGVuZ3Ro ID49IENIQU5HRV9NT05JVE9SX01BWF9JVEVNUykKKy0gICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdl X21vbml0b3JfcHJvY2Vzc19ldmVudHMgKHNlbGYpOworLSAgZWxzZQorLSAgICBzZWxmLT5wZW5k aW5nX2V2ZW50c19pZCA9IGdfdGltZW91dF9hZGQgKENIQU5HRV9NT05JVE9SX1RJTUVPVVQsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdTb3VyY2VGdW5j KSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9wcm9jZXNzX2V2ZW50cywKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmKTsKKy19CistCistCist c3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9ncmFwaF91cGRhdGVk IChUcmFja2VyUmVzb3VyY2VzICpyZXNvdXJjZV9zZXJ2aWNlLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpjbGFzc19uYW1lLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICpkZWxl dGVfZXZlbnRzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdWYXJpYW50ICppbnNlcnRfZXZlbnRzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSkKKy17CistICBQaG90b3NUcmFja2Vy Q2hhbmdlTW9uaXRvciAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9NT05JVE9SICh1c2Vy X2RhdGEpOworLSAgY29uc3QgVHJhY2tlclJlc291cmNlc0V2ZW50ICpldmVudHM7CistICBnc2l6 ZSBpOworLSAgZ3NpemUgbl9lbGVtZW50czsKKy0KKy0gIGV2ZW50cyA9IChjb25zdCBUcmFja2Vy UmVzb3VyY2VzRXZlbnQgKikgZ192YXJpYW50X2dldF9maXhlZF9hcnJheSAoZGVsZXRlX2V2ZW50 cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJm5fZWxlbWVudHMsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoVHJh Y2tlclJlc291cmNlc0V2ZW50KSk7CistICBmb3IgKGkgPSAwOyBpIDwgbl9lbGVtZW50czsgaSsr KQorLSAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9hZGRfcGVuZGluZ19ldmVudCAo c2VsZiwgJmV2ZW50c1tpXSwgVFJVRSk7CistCistICBldmVudHMgPSAoY29uc3QgVHJhY2tlclJl c291cmNlc0V2ZW50ICopIGdfdmFyaWFudF9nZXRfZml4ZWRfYXJyYXkgKGluc2VydF9ldmVudHMs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZuX2VsZW1lbnRzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKFRyYWNr ZXJSZXNvdXJjZXNFdmVudCkpOworLSAgZm9yIChpID0gMDsgaSA8IG5fZWxlbWVudHM7IGkrKykK Ky0gICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfYWRkX3BlbmRpbmdfZXZlbnQgKHNl bGYsICZldmVudHNbaV0sIEZBTFNFKTsKKy19CistCistCistc3RhdGljIEdPYmplY3QgKgorLXBo b3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2NvbnN0cnVjdG9yIChHVHlwZSB0eXBlLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBuX2NvbnN0cnVj dF9wYXJhbXMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdP YmplY3RDb25zdHJ1Y3RQYXJhbSAqY29uc3RydWN0X3BhcmFtcykKKy17CistICBzdGF0aWMgR09i amVjdCAqc2VsZiA9IE5VTEw7CistCistICBpZiAoc2VsZiA9PSBOVUxMKQorLSAgICB7CistICAg ICAgc2VsZiA9IEdfT0JKRUNUX0NMQVNTIChwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9w YXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3RvciAodHlwZSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBuX2NvbnN0cnVjdF9wYXJhbXMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3RydWN0X3BhcmFtcyk7CistICAgICAgZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlciAo c2VsZiwgKGdwb2ludGVyKSAmc2VsZik7CistICAgICAgcmV0dXJuIHNlbGY7CistICAgIH0KKy0K Ky0gIHJldHVybiBnX29iamVjdF9yZWYgKHNlbGYpOworLX0KKy0KKy0KKy1zdGF0aWMgdm9pZAor LXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkK Ky17CistICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZiA9IFBIT1RPU19UUkFDS0VS X0NIQU5HRV9NT05JVE9SIChvYmplY3QpOworLQorLSAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21v bml0b3JfcmVtb3ZlX3RpbWVvdXQgKHNlbGYpOworLQorLSAgZ19jbGVhcl9vYmplY3QgKCZzZWxm LT5xdWV1ZSk7CistICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnJlc291cmNlX3NlcnZpY2UpOwor LQorLSAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3BhcmVu dF9jbGFzcyktPmRpc3Bvc2UgKG9iamVjdCk7CistfQorLQorLQorLXN0YXRpYyB2b2lkCistcGhv dG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKKy17 CistICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX0NI QU5HRV9NT05JVE9SIChvYmplY3QpOworLQorLSAgZ19oYXNoX3RhYmxlX3VucmVmIChzZWxmLT5w ZW5kaW5nX2NoYW5nZXMpOworLSAgZ19oYXNoX3RhYmxlX3VucmVmIChzZWxmLT51bnJlc29sdmVk X2lkcyk7CistCistICBnX3F1ZXVlX2ZyZWVfZnVsbCAoc2VsZi0+cGVuZGluZ19ldmVudHMsIChH RGVzdHJveU5vdGlmeSkgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2ZyZWUpOworLQorLSAg R19PQkpFQ1RfQ0xBU1MgKHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3BhcmVudF9jbGFz cyktPmZpbmFsaXplIChvYmplY3QpOworLX0KKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190 cmFja2VyX2NoYW5nZV9tb25pdG9yX2luaXQgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpz ZWxmKQorLXsKKy0gIHNlbGYtPnBlbmRpbmdfY2hhbmdlcyA9IGdfaGFzaF90YWJsZV9uZXdfZnVs bCAoZ19zdHJfaGFzaCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ19zdHJfZXF1YWwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdfZnJlZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKEdEZXN0cm95Tm90aWZ5KSBwaG90b3NfdHJhY2tlcl9jaGFuZ2Vf ZXZlbnRfZnJlZSk7CistCistICBzZWxmLT51bnJlc29sdmVkX2lkcyA9IGdfaGFzaF90YWJsZV9u ZXdfZnVsbCAoZ19kaXJlY3RfaGFzaCwgZ19kaXJlY3RfZXF1YWwsIE5VTEwsIGdfZnJlZSk7Cist CistICBzZWxmLT5wZW5kaW5nX2V2ZW50cyA9IGdfcXVldWVfbmV3ICgpOworLX0KKy0KKy0KKy1z dGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2NsYXNzX2luaXQgKFBo b3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yQ2xhc3MgKmNsYXNzKQorLXsKKy0gIEdPYmplY3RDbGFz cyAqb2JqZWN0X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1MgKGNsYXNzKTsKKy0KKy0gIG9iamVjdF9j bGFzcy0+Y29uc3RydWN0b3IgPSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9jb25zdHJ1 Y3RvcjsKKy0gIG9iamVjdF9jbGFzcy0+ZGlzcG9zZSA9IHBob3Rvc190cmFja2VyX2NoYW5nZV9t b25pdG9yX2Rpc3Bvc2U7CistICBvYmplY3RfY2xhc3MtPmZpbmFsaXplID0gcGhvdG9zX3RyYWNr ZXJfY2hhbmdlX21vbml0b3JfZmluYWxpemU7CistCistICBzaWduYWxzW0NIQU5HRVNfUEVORElO R10gPSBnX3NpZ25hbF9uZXcgKCJjaGFuZ2VzLXBlbmRpbmciLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyAoY2xhc3MpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1NJR05BTF9SVU5fTEFT VCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLyphY2N1bXVsYXRv ciAqLworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAv KmFjY3VfZGF0YSAqLworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fQk9YRUQsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9OT05FLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAxLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX1RZUEVfSEFTSF9UQUJMRSk7CistfQorLQorLQorLXN0YXRpYyBnYm9v bGVhbgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2luaXRhYmxlX2luaXQgKEdJbml0 YWJsZSAqaW5pdGFibGUsIEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUsIEdFcnJvciAqKmVycm9y KQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmID0gUEhPVE9TX1RSQUNL RVJfQ0hBTkdFX01PTklUT1IgKGluaXRhYmxlKTsKKy0gIGdib29sZWFuIHJldF92YWwgPSBUUlVF OworLQorLSAgaWYgKEdfTElLRUxZIChzZWxmLT5xdWV1ZSAhPSBOVUxMICYmIHNlbGYtPnJlc291 cmNlX3NlcnZpY2UgIT0gTlVMTCkpCistICAgIGdvdG8gb3V0OworLQorLSAgc2VsZi0+cXVldWUg PSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2luZ2xldG9uIChjYW5jZWxsYWJsZSwgZXJyb3Ip OworLSAgaWYgKEdfVU5MSUtFTFkgKHNlbGYtPnF1ZXVlID09IE5VTEwpKQorLSAgICB7CistICAg ICAgcmV0X3ZhbCA9IEZBTFNFOworLSAgICAgIGdvdG8gb3V0OworLSAgICB9CistCistICBzZWxm LT5yZXNvdXJjZV9zZXJ2aWNlID0gdHJhY2tlcl9yZXNvdXJjZXNfcHJveHlfbmV3X2Zvcl9idXNf c3luYyAoR19CVVNfVFlQRV9TRVNTSU9OLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFH U19OT05FLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEiLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIvb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIxL1Jlc291cmNlcyIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2FuY2VsbGFibGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IpOworLSAgaWYgKEdfVU5MSUtFTFkg KHNlbGYtPnJlc291cmNlX3NlcnZpY2UgPT0gTlVMTCkpCistICAgIHsKKy0gICAgICByZXRfdmFs ID0gRkFMU0U7CistICAgICAgZ290byBvdXQ7CistICAgIH0KKy0KKy0gIGdfc2lnbmFsX2Nvbm5l Y3QgKHNlbGYtPnJlc291cmNlX3NlcnZpY2UsCistICAgICAgICAgICAgICAgICAgICAiZ3JhcGgt dXBkYXRlZCIsCistICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChwaG90b3NfdHJhY2tl cl9jaGFuZ2VfbW9uaXRvcl9ncmFwaF91cGRhdGVkKSwKKy0gICAgICAgICAgICAgICAgICAgIHNl bGYpOworLQorLSBvdXQ6CistICByZXR1cm4gcmV0X3ZhbDsKKy19CistCistCistc3RhdGljIHZv aWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9pbml0YWJsZV9pZmFjZV9pbml0IChH SW5pdGFibGVJZmFjZSAqaWZhY2UpCisteworLSAgaWZhY2UtPmluaXQgPSBwaG90b3NfdHJhY2tl cl9jaGFuZ2VfbW9uaXRvcl9pbml0YWJsZV9pbml0OworLX0KKy0KKy0KKy1QaG90b3NUcmFja2Vy Q2hhbmdlTW9uaXRvciAqCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfZHVwX3Npbmds ZXRvbiAoR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSwgR0Vycm9yICoqZXJyb3IpCisteworLSAg cmV0dXJuIGdfaW5pdGFibGVfbmV3IChQSE9UT1NfVFlQRV9UUkFDS0VSX0NIQU5HRV9NT05JVE9S LCBjYW5jZWxsYWJsZSwgZXJyb3IsIE5VTEwpOworLX0KK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9z LXRyYWNrZXItY2hhbmdlLW1vbml0b3IuaCBiL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9u aXRvci5oCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDk3NDBiMDQ2Li4wMDAwMDAw MAorLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmgKKysrKyAvZGV2L251 bGwKK0BAIC0xLDQyICswLDAgQEAKKy0vKgorLSAqIFBob3RvcyAtIGFjY2Vzcywgb3JnYW5pemUg YW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FCistICogQ29weXJpZ2h0IMKpIDIwMTIg4oCT IDIwMTkgUmVkIEhhdCwgSW5jLgorLSAqCistICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy0gKiBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCistICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K Ky0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCistICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorLSAqIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCistICoKKy0gKiBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLSAqIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorLSAqLworLQorLS8qIEJhc2VkIG9uIGNvZGUgZnJvbToKKy0gKiAgICsgRG9j dW1lbnRzCistICovCistCistI2lmbmRlZiBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUl9I CistI2RlZmluZSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUl9ICistCistI2luY2x1ZGUg PGdpby9naW8uaD4KKy0KKy1HX0JFR0lOX0RFQ0xTCistCistI2RlZmluZSBQSE9UT1NfVFlQRV9U UkFDS0VSX0NIQU5HRV9NT05JVE9SIChwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9nZXRf dHlwZSAoKSkKKy1HX0RFQ0xBUkVfRklOQUxfVFlQRSAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0 b3IsCistICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9y LAorLSAgICAgICAgICAgICAgICAgICAgICBQSE9UT1MsCistICAgICAgICAgICAgICAgICAgICAg IFRSQUNLRVJfQ0hBTkdFX01PTklUT1IsCistICAgICAgICAgICAgICAgICAgICAgIEdPYmplY3Qp OworLQorLVBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICAqcGhvdG9zX3RyYWNrZXJfY2hhbmdl X21vbml0b3JfZHVwX3NpbmdsZXRvbiAgICAoR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdFcnJvciAqKmVycm9yKTsKKy0KKy1HX0VORF9ERUNMUworLQor LSNlbmRpZiAvKiBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUl9IICovCitkaWZmIC0tZ2l0 IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYyBiL3NyYy9waG90b3MtdHJhY2tlci1j b250cm9sbGVyLmMKK2luZGV4IDNhNjJjZjJkLi5mMGI4MWUwMiAxMDA2NDQKKy0tLSBhL3NyYy9w aG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMKKysrKyBiL3NyYy9waG90b3MtdHJhY2tlci1jb250 cm9sbGVyLmMKK0BAIC0yOTIsNiArMjkyLDEyIEBAIHBob3Rvc190cmFja2VyX2NvbnRyb2xsZXJf cGVyZm9ybV9jdXJyZW50X3F1ZXJ5IChQaG90b3NUcmFja2VyQ29udHJvbGxlciAqc2VsZikKKyAK KyAgIHByaXYgPSBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX2dldF9pbnN0YW5jZV9wcml2YXRl IChzZWxmKTsKKyAKKysgIGlmIChHX1VOTElLRUxZIChwcml2LT5xdWV1ZSA9PSBOVUxMKSkKKysg ICAgeworKyAgICAgIHBob3Rvc190cmFja2VyX2NvbnRyb2xsZXJfcXVlcnlfZXJyb3IgKHNlbGYs IHByaXYtPnF1ZXVlX2Vycm9yKTsKKysgICAgICBnb3RvIG91dDsKKysgICAgfQorKworICAgZ19j bGVhcl9vYmplY3QgKCZwcml2LT5jdXJyZW50X3F1ZXJ5KTsKKyAgIHByaXYtPmN1cnJlbnRfcXVl cnkgPSBQSE9UT1NfVFJBQ0tFUl9DT05UUk9MTEVSX0dFVF9DTEFTUyAoc2VsZiktPmdldF9xdWVy eSAoc2VsZik7CisgICBnX3JldHVybl9pZl9mYWlsIChwcml2LT5jdXJyZW50X3F1ZXJ5ICE9IE5V TEwpOworQEAgLTMwMywxMiArMzA5LDYgQEAgcGhvdG9zX3RyYWNrZXJfY29udHJvbGxlcl9wZXJm b3JtX2N1cnJlbnRfcXVlcnkgKFBob3Rvc1RyYWNrZXJDb250cm9sbGVyICpzZWxmKQorICAgZ19v YmplY3RfdW5yZWYgKHByaXYtPmNhbmNlbGxhYmxlKTsKKyAgIHByaXYtPmNhbmNlbGxhYmxlID0g Z19jYW5jZWxsYWJsZV9uZXcgKCk7CisgCistICBpZiAoR19VTkxJS0VMWSAocHJpdi0+cXVldWUg PT0gTlVMTCkpCistICAgIHsKKy0gICAgICBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX3F1ZXJ5 X2Vycm9yIChzZWxmLCBwcml2LT5xdWV1ZV9lcnJvcik7CistICAgICAgZ290byBvdXQ7CistICAg IH0KKy0KKyAgIHBob3Rvc190cmFja2VyX3F1ZXVlX3NlbGVjdCAocHJpdi0+cXVldWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPmN1cnJlbnRfcXVlcnksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPmNhbmNlbGxhYmxlLAorZGlmZiAtLWdpdCBh L3NyYy9waG90b3MtdHJhY2tlci1leHRyYWN0LXByaW9yaXR5LnhtbCBiL3NyYy9waG90b3MtdHJh Y2tlci1leHRyYWN0LXByaW9yaXR5LnhtbAoraW5kZXggN2UzYjliMGMuLjJiNTYyMjk5IDEwMDY0 NAorLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHkueG1sCisrKysgYi9z cmMvcGhvdG9zLXRyYWNrZXItZXh0cmFjdC1wcmlvcml0eS54bWwKK0BAIC0yMSw3ICsyMSw3IEBA CisgLS0+CisgCisgPG5vZGUgbmFtZT0iLyIgeG1sbnM6ZG9jPSJodHRwOi8vd3d3LmZyZWVkZXNr dG9wLm9yZy9kYnVzLzEuMC9kb2MuZHRkIj4KKy0gIDxpbnRlcmZhY2UgbmFtZT0ib3JnLmZyZWVk ZXNrdG9wLlRyYWNrZXIxLkV4dHJhY3QuUHJpb3JpdHkiPgorKyAgPGludGVyZmFjZSBuYW1lPSJv cmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuRXh0cmFjdC5Qcmlvcml0eSI+CisgICAgIDxtZXRob2Qg bmFtZT0iQ2xlYXJSZGZUeXBlcyIgLz4KKyAgICAgPG1ldGhvZCBuYW1lPSJTZXRSZGZUeXBlcyI+ CisgICAgICAgPGFyZyBuYW1lPSJyZGZfdHlwZXMiIHR5cGU9ImFzIiBkaXJlY3Rpb249ImluIiAv PgorZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1pbXBvcnQtY29udHJvbGxlci5jIGIv c3JjL3Bob3Rvcy10cmFja2VyLWltcG9ydC1jb250cm9sbGVyLmMKK2luZGV4IDA4NWFjZTNhLi5k N2VkOWIyMCAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtdHJhY2tlci1pbXBvcnQtY29udHJvbGxl ci5jCisrKysgYi9zcmMvcGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuYworQEAgLTI0 LDcgKzI0LDYgQEAKKyAjaW5jbHVkZSAiY29uZmlnLmgiCisgCisgI2luY2x1ZGUgPGdpby9naW8u aD4KKy0jaW5jbHVkZSA8bGlidHJhY2tlci1jb250cm9sL3RyYWNrZXItY29udHJvbC5oPgorIAor ICNpbmNsdWRlICJwaG90b3MtYmFzZS1tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInBob3Rvcy1kZWJ1 Zy5oIgorQEAgLTM0LDYgKzMzLDggQEAKKyAjaW5jbHVkZSAicGhvdG9zLXF1ZXJ5LWJ1aWxkZXIu aCIKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC1jb250ZXh0LmgiCisgI2luY2x1ZGUgInBob3Rv cy10cmFja2VyLWltcG9ydC1jb250cm9sbGVyLmgiCisrI2luY2x1ZGUgInBob3Rvcy10cmFja2Vy LW1pbmVyLWluZGV4LmgiCisrI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLXF1ZXVlLmgiCisgI2lu Y2x1ZGUgInBob3Rvcy11dGlscy5oIgorIAorIAorQEAgLTQ1LDcgKzQ2LDcgQEAgc3RydWN0IF9Q aG90b3NUcmFja2VySW1wb3J0Q29udHJvbGxlcgorICAgUGhvdG9zQmFzZU1hbmFnZXIgKml0ZW1f bW5ncjsKKyAgIFBob3Rvc0Jhc2VNYW5hZ2VyICpzcmNfbW5ncjsKKyAgIFBob3Rvc09mZnNldENv bnRyb2xsZXIgKm9mZnNldF9jbnRybHI7CistICBUcmFja2VyTWluZXJNYW5hZ2VyICptYW5hZ2Vy OworKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9wcm94eTsKKyB9Owor IAorIAorQEAgLTc2LDEyICs3NywxMiBAQCBzdGF0aWMgdm9pZAorIHBob3Rvc190cmFja2VyX2lt cG9ydF9jb250cm9sbGVyX2luZGV4IChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1 bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorIHsKKyAgIGdfYXV0b3B0ciAoR0ZpbGUpIGZp bGUgPSBHX0ZJTEUgKHVzZXJfZGF0YSk7CistICBUcmFja2VyTWluZXJNYW5hZ2VyICptYW5hZ2Vy ID0gVFJBQ0tFUl9NSU5FUl9NQU5BR0VSIChzb3VyY2Vfb2JqZWN0KTsKKysgIFRyYWNrZXJNaW5l ckZpbGVzSW5kZXggKm1pbmVyX2NvbnRyb2xfcHJveHkgPSBUUkFDS0VSX01JTkVSX0ZJTEVTX0lO REVYIChzb3VyY2Vfb2JqZWN0KTsKKyAKKyAgIHsKKyAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVy cm9yID0gTlVMTDsKKyAKKy0gICAgaWYgKCF0cmFja2VyX21pbmVyX21hbmFnZXJfaW5kZXhfZmls ZV9mb3JfcHJvY2Vzc19maW5pc2ggKG1hbmFnZXIsIHJlcywgJmVycm9yKSkKKysgICAgaWYgKCF0 cmFja2VyX21pbmVyX2ZpbGVzX2luZGV4X2NhbGxfaW5kZXhfbG9jYXRpb25fZmluaXNoIChtaW5l cl9jb250cm9sX3Byb3h5LCByZXMsICZlcnJvcikpCisgICAgICAgeworICAgICAgICAgaWYgKCFn X2Vycm9yX21hdGNoZXMgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NBTkNFTExFRCkp CisgICAgICAgICAgIHsKK0BAIC0xMDIsNiArMTAzLDggQEAgcGhvdG9zX3RyYWNrZXJfaW1wb3J0 X2NvbnRyb2xsZXJfbmV4dF9maWxlcyAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVz dWwKKyAgIEdGaWxlRW51bWVyYXRvciAqZW51bWVyYXRvciA9IEdfRklMRV9FTlVNRVJBVE9SIChz b3VyY2Vfb2JqZWN0KTsKKyAgIEdMaXN0ICppbmZvcyA9IE5VTEw7CisgICBHTGlzdCAqbDsKKysg IGNvbnN0IGdjaGFyICp0cmFja2VyX3ByaW9yaXR5X2dyYXBoc1tdID0geyBUUkFDS0VSX1BJQ1RV UkVTX0dSQVBIIH07CisrICBjb25zdCBnY2hhciAqdHJhY2tlcl9pbmRleF9sb2NhdGlvbl9mbGFn c1tdID0geyAiZm9yLXByb2Nlc3MiIH07CisgCisgICB7CisgICAgIGdfYXV0b3B0ciAoR0Vycm9y KSBlcnJvciA9IE5VTEw7CitAQCAtMTg3LDExICsxOTAsMTMgQEAgcGhvdG9zX3RyYWNrZXJfaW1w b3J0X2NvbnRyb2xsZXJfbmV4dF9maWxlcyAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5j UmVzdWwKKyAgICAgICAgICAgICAgICAgICAgIGlmIChnX2NvbnRlbnRfdHlwZV9lcXVhbHMgKG1p bWVfdHlwZSwgSU1QT1JUQUJMRV9NSU1FX1RZUEVTW2ldKQorICAgICAgICAgICAgICAgICAgICAg ICAgIHx8IGdfY29udGVudF90eXBlX2lzX2EgKG1pbWVfdHlwZSwgSU1QT1JUQUJMRV9NSU1FX1RZ UEVTW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIHRyYWNrZXJfbWluZXJfbWFuYWdlcl9pbmRleF9maWxlX2Zvcl9wcm9jZXNzX2FzeW5jIChz ZWxmLT5tYW5hZ2VyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLT5jYW5jZWxsYWJsZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNr ZXJfaW1wb3J0X2NvbnRyb2xsZXJfaW5kZXgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfb2JqZWN0 X3JlZiAoZmlsZSkpOworKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrZXJfbWluZXJfZmls ZXNfaW5kZXhfY2FsbF9pbmRleF9sb2NhdGlvbiAoc2VsZi0+bWluZXJfY29udHJvbF9wcm94eSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVyaSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrZXJfcHJpb3JpdHlfZ3Jh cGhzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdHJhY2tlcl9pbmRleF9sb2NhdGlvbl9mbGFncywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYtPmNhbmNlbGxhYmxlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNr ZXJfaW1wb3J0X2NvbnRyb2xsZXJfaW5kZXgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX29iamVjdF9yZWYg KGZpbGUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGluZyA9IFRSVUU7CisgICAg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICB9CitAQCAtMjkxLDI4ICsy OTYsNiBAQCBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9zb3VyY2VfYWN0aXZlX2No YW5nZWQgKFBob3Rvc1RyYWNrZXJJbXBvcnRDb250cgorICAgICB7CisgICAgICAgZ19yZXR1cm5f aWZfZmFpbCAoZ19xdWV1ZV9pc19lbXB0eSAoc2VsZi0+cGVuZGluZ19kaXJlY3RvcmllcykpOwor IAorLSAgICAgIGlmIChHX0xJS0VMWSAoc2VsZi0+bWFuYWdlciAhPSBOVUxMKSkKKy0gICAgICAg IHsKKy0gICAgICAgICAgZ19hdXRvcHRyIChHRmlsZSkgcm9vdCA9IE5VTEw7CistICAgICAgICAg IGdfYXV0b2ZyZWUgZ2NoYXIgKnVyaSA9IE5VTEw7CistCistICAgICAgICAgIHJvb3QgPSBnX21v dW50X2dldF9yb290IChtb3VudCk7CistICAgICAgICAgIGdfcXVldWVfcHVzaF90YWlsIChzZWxm LT5wZW5kaW5nX2RpcmVjdG9yaWVzLCBnX29iamVjdF9yZWYgKHJvb3QpKTsKKy0KKy0gICAgICAg ICAgdXJpID0gZ19maWxlX2dldF91cmkgKHJvb3QpOworLSAgICAgICAgICBwaG90b3NfZGVidWcg KFBIT1RPU19ERUJVR19JTVBPUlQsICJFbnVtZXJhdGluZyBkZXZpY2UgZGlyZWN0b3J5ICVzIiwg dXJpKTsKKy0KKy0gICAgICAgICAgZ19maWxlX2VudW1lcmF0ZV9jaGlsZHJlbl9hc3luYyAocm9v dCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19GSUxFX0FU VFJJQlVURV9TVEFOREFSRF9DT05URU5UX1RZUEUiLCIKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9OQU1FIiwiCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJV VEVfU1RBTkRBUkRfVFlQRSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR19GSUxFX1FVRVJZX0lORk9fTk9GT0xMT1dfU1lNTElOS1MsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+Y2FuY2VsbGFibGUs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFj a2VyX2ltcG9ydF9jb250cm9sbGVyX2VudW1lcmF0ZV9jaGlsZHJlbiwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZik7CistICAgICAgICB9CistCisgICAg ICAgcGhvdG9zX3RyYWNrZXJfY29udHJvbGxlcl9yZWZyZXNoX2Zvcl9vYmplY3QgKFBIT1RPU19U UkFDS0VSX0NPTlRST0xMRVIgKHNlbGYpKTsKKyAgICAgfQorIH0KK0BAIC0zNzksNyArMzYyLDYg QEAgcGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfZGlzcG9zZSAoR09iamVjdCAqb2Jq ZWN0KQorIAorICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5zcmNfbW5ncik7CisgICBnX2NsZWFy X29iamVjdCAoJnNlbGYtPm9mZnNldF9jbnRybHIpOworLSAgZ19jbGVhcl9vYmplY3QgKCZzZWxm LT5tYW5hZ2VyKTsKKyAKKyAgIEdfT0JKRUNUX0NMQVNTIChwaG90b3NfdHJhY2tlcl9pbXBvcnRf Y29udHJvbGxlcl9wYXJlbnRfY2xhc3MpLT5kaXNwb3NlIChvYmplY3QpOworIH0KK0BAIC0zOTcs NiArMzc5LDM3IEBAIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2ZpbmFsaXplIChH T2JqZWN0ICpvYmplY3QpCisgfQorIAorIAorK3N0YXRpYyBUcmFja2VyTWluZXJGaWxlc0luZGV4 ICoKKytwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9nZXRfbWluZXJfZnNfY29udHJv bF9wcm94eSAoR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSkKKyt7CisrICBnX2F1dG9wdHIgKFBo b3Rvc1RyYWNrZXJRdWV1ZSkgdHJhY2tlcl9xdWV1ZSA9IE5VTEw7CisrICBjb25zdCBnY2hhciAq bWluZXJfZnNfY29udHJvbF9idXNuYW1lOworKyAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0g TlVMTDsKKysgIFRyYWNrZXJNaW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRyb2xfcHJveHk7Cisr CisrICB0cmFja2VyX3F1ZXVlID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRvbiAo Y2FuY2VsbGFibGUsICZlcnJvcik7CisrCisrICBpZiAoIXRyYWNrZXJfcXVldWUpIHsKKysgICAg Z193YXJuaW5nICgiRXJyb3IgZ2V0dGluZyBUcmFja2VyIHF1ZXVlOiAlcy4gSW1wb3J0IHdpbGwg bm90IHdvcmsuIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICByZXR1cm4gTlVMTDsKKysgIH0KKysK KysgIG1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9t aW5lcl9mc19jb250cm9sX2J1c25hbWUgKHRyYWNrZXJfcXVldWUpOworKyAgbWluZXJfY29udHJv bF9wcm94eSA9IHRyYWNrZXJfbWluZXJfZmlsZXNfaW5kZXhfcHJveHlfbmV3X2Zvcl9idXNfc3lu YyAoR19CVVNfVFlQRV9TRVNTSU9OLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX1BST1hZX0ZM QUdTX05PTkUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5lcl9mc19jb250cm9sX2J1c25hbWUsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiL29yZy9mcmVlZGVza3RvcC9UcmFja2VyMy9NaW5lci9GaWxlcy9D b250cm9sIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZXJy b3IpOworKyAgaWYgKCFtaW5lcl9jb250cm9sX3Byb3h5KSB7CisrICAgIGdfd2FybmluZyAoIkVy cm9yIGdldHRpbmcgVHJhY2tlciBNaW5lciBGUyBjb250cm9sIHByb3h5OiAlcy4gSW1wb3J0IHdp bGwgbm90IHdvcmsiLCBlcnJvci0+bWVzc2FnZSk7CisrICAgIHJldHVybiBOVUxMOworKyAgfQor KworKyAgcmV0dXJuIG1pbmVyX2NvbnRyb2xfcHJveHk7CisrfQorKworKworIHN0YXRpYyB2b2lk CisgcGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfaW5pdCAoUGhvdG9zVHJhY2tlcklt cG9ydENvbnRyb2xsZXIgKnNlbGYpCisgeworQEAgLTQyMSwxMyArNDM0LDcgQEAgcGhvdG9zX3Ry YWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfaW5pdCAoUGhvdG9zVHJhY2tlckltcG9ydENvbnRyb2xs ZXIgKnNlbGYpCisgCisgICBzZWxmLT5vZmZzZXRfY250cmxyID0gcGhvdG9zX29mZnNldF9pbXBv cnRfY29udHJvbGxlcl9kdXBfc2luZ2xldG9uICgpOworIAorLSAgeworLSAgICBnX2F1dG9wdHIg KEdFcnJvcikgZXJyb3IgPSBOVUxMOworLQorLSAgICBzZWxmLT5tYW5hZ2VyID0gdHJhY2tlcl9t aW5lcl9tYW5hZ2VyX25ld19mdWxsIChGQUxTRSwgJmVycm9yKTsKKy0gICAgaWYgKGVycm9yICE9 IE5VTEwpCistICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBhIFRyYWNrZXJNaW5l ck1hbmFnZXIsIGluZGV4aW5nIGF0dGFjaGVkIGRldmljZXMgd29uJ3Qgd29yazogJXMiLCBlcnJv ci0+bWVzc2FnZSk7CistICB9CisrICBzZWxmLT5taW5lcl9jb250cm9sX3Byb3h5ID0gcGhvdG9z X3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfZ2V0X21pbmVyX2ZzX2NvbnRyb2xfcHJveHkgKE5V TEwpOworIH0KKyAKKyAKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuYyBi L3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5jCitpbmRleCA2YWM4MjljZC4uYTVmNGM5MWEgMTAw NjQ0CistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuYworKysrIGIvc3JjL3Bob3Rvcy10 cmFja2VyLXF1ZXVlLmMKK0BAIC0zNyw5ICszNywyMCBAQCBzdHJ1Y3QgX1Bob3Rvc1RyYWNrZXJR dWV1ZQorICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CisgICBHRXJyb3IgKmluaXRpYWxpemF0 aW9uX2Vycm9yOworICAgR1F1ZXVlICpxdWV1ZTsKKy0gIFRyYWNrZXJTcGFycWxDb25uZWN0aW9u ICpjb25uZWN0aW9uOworKyAgVHJhY2tlclNwYXJxbENvbm5lY3Rpb24gKmxvY2FsX2Nvbm5lY3Rp b247CisrICBUcmFja2VyU3BhcnFsQ29ubmVjdGlvbiAqbWluZXJfZnNfY29ubmVjdGlvbjsKKyAg IGdib29sZWFuIGlzX2luaXRpYWxpemVkOworICAgZ2Jvb2xlYW4gcnVubmluZzsKKysgIGdib29s ZWFuIG1pbmVyX2ZzX3JlYWR5OworKyAgY29uc3QgZ2NoYXIgKm1pbmVyX2ZzX2J1c25hbWU7Cisr ICBjb25zdCBnY2hhciAqbWluZXJfZnNfY29udHJvbF9idXNuYW1lOworK307CisrCisrZW51bQor K3sKKysgIFBST1BfMCwKKysgIFBST1BfTUlORVJfRlNfUkVBRFksCisrICBQUk9QX01JTkVSX0ZT X0JVU05BTUUKKyB9OworIAorIHN0YXRpYyB2b2lkIHBob3Rvc190cmFja2VyX3F1ZXVlX2luaXRh YmxlX2lmYWNlX2luaXQgKEdJbml0YWJsZUlmYWNlICppZmFjZSk7CitAQCAtOTAsNyArMTAxLDYg QEAgcGhvdG9zX3RyYWNrZXJfcXVldWVfZGF0YV9mcmVlIChQaG90b3NUcmFja2VyUXVldWVEYXRh ICpkYXRhKQorIAorIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChQaG90b3NUcmFja2Vy UXVldWVEYXRhLCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kYXRhX2ZyZWUpOworIAorLQorIHN0YXRp YyBQaG90b3NUcmFja2VyUXVldWVEYXRhICoKKyBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kYXRhX25l dyAoUGhvdG9zUXVlcnkgKnF1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ aG90b3NUcmFja2VyUXVlcnlUeXBlIHF1ZXJ5X3R5cGUsCitAQCAtMTc5LDcgKzE4OSw3IEBAIHBo b3Rvc190cmFja2VyX3F1ZXVlX2NoZWNrIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpCisgICBz d2l0Y2ggKGRhdGEtPnF1ZXJ5X3R5cGUpCisgICAgIHsKKyAgICAgY2FzZSBQSE9UT1NfVFJBQ0tF Ul9RVUVSWV9TRUxFQ1Q6CistICAgICAgdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9xdWVyeV9h c3luYyAoc2VsZi0+Y29ubmVjdGlvbiwKKysgICAgICB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9u X3F1ZXJ5X2FzeW5jIChzZWxmLT5sb2NhbF9jb25uZWN0aW9uLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYXJxbCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5jYW5jZWxsYWJsZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9j b2xsZWN0b3IsCitAQCAtMTg3LDE4ICsxOTcsMTYgQEAgcGhvdG9zX3RyYWNrZXJfcXVldWVfY2hl Y2sgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZikKKyAgICAgICBicmVhazsKKyAKKyAgICAgY2Fz ZSBQSE9UT1NfVFJBQ0tFUl9RVUVSWV9VUERBVEU6CistICAgICAgdHJhY2tlcl9zcGFycWxfY29u bmVjdGlvbl91cGRhdGVfYXN5bmMgKHNlbGYtPmNvbm5lY3Rpb24sCisrICAgICAgdHJhY2tlcl9z cGFycWxfY29ubmVjdGlvbl91cGRhdGVfYXN5bmMgKHNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYXJxbCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QUklPUklUWV9E RUZBVUxULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhLT5jYW5jZWxsYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfY29sbGVjdG9yLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX29iamVjdF9yZWYgKHNlbGYpKTsKKyAg ICAgICBicmVhazsKKyAKKyAgICAgY2FzZSBQSE9UT1NfVFJBQ0tFUl9RVUVSWV9VUERBVEVfQkxB Tks6CistICAgICAgdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl91cGRhdGVfYmxhbmtfYXN5bmMg KHNlbGYtPmNvbm5lY3Rpb24sCisrICAgICAgdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl91cGRh dGVfYmxhbmtfYXN5bmMgKHNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYXJxbCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QUklPUklUWV9ERUZB VUxULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhLT5jYW5jZWxsYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfY29sbGVjdG9yLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX29iamVjdF9y ZWYgKHNlbGYpKTsKK0BAIC0yMTEsNiArMjE5LDUzIEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2No ZWNrIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpCisgfQorIAorIAorK3N0YXRpYyBnYm9vbGVh bgorK3Bob3Rvc190cmFja2VyX3F1ZXVlX3N0YXJ0X3Nlc3Npb25fbWluZXJfZnMgKFBob3Rvc1Ry YWNrZXJRdWV1ZSAqc2VsZiwgR0Vycm9yICoqZXJyb3IpCisreworKyAgY29uc3QgZ2NoYXIgKmJ1 c25hbWUgPSAib3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzIjsKKysgIGNvbnN0 IGdjaGFyICpjb250cm9sX2J1c25hbWUgPSAib3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVy LkZpbGVzLkNvbnRyb2wiOworKworKyAgcGhvdG9zX2RlYnVnIChQSE9UT1NfREVCVUdfVFJBQ0tF UiwgIkNvbm5lY3RpbmcgdG8gJXMiLCBidXNuYW1lKTsKKysgIHNlbGYtPm1pbmVyX2ZzX2Nvbm5l Y3Rpb24gPSB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX2J1c19uZXcgKGJ1c25hbWUsIE5VTEws IE5VTEwsIGVycm9yKTsKKysgIGlmICgqZXJyb3IpCisrICAgIHsKKysgICAgICBnX3dhcm5pbmcg KCJVbmFibGUgdG8gY3JlYXRlIGNvbm5lY3Rpb24gZm9yIHNlc3Npb24td2lkZSBUcmFja2VyIGlu ZGV4ZXIgYXQgJXM6ICVzIiwgYnVzbmFtZSwgKCplcnJvciktPm1lc3NhZ2UpOworKyAgICAgIHJl dHVybiBGQUxTRTsKKysgICAgfQorKworKyAgc2VsZi0+bWluZXJfZnNfYnVzbmFtZSA9IGJ1c25h bWU7CisrICBzZWxmLT5taW5lcl9mc19jb250cm9sX2J1c25hbWUgPSBjb250cm9sX2J1c25hbWU7 CisrCisrICByZXR1cm4gVFJVRTsKKyt9CisrCisrCisrc3RhdGljIGdib29sZWFuCisrcGhvdG9z X3RyYWNrZXJfcXVldWVfc3RhcnRfbG9jYWxfbWluZXJfZnMgKFBob3Rvc1RyYWNrZXJRdWV1ZSAq c2VsZiwgR0Vycm9yICoqZXJyb3IpCisreworKyAgY29uc3QgZ2NoYXIgKmJ1c25hbWUgPSAib3Jn Lmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5GaWxlcyI7CisrICBjb25zdCBnY2hhciAqY29u dHJvbF9idXNuYW1lID0gIm9yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMuQ29u dHJvbCI7CisrCisrICBwaG90b3NfZGVidWcgKFBIT1RPU19ERUJVR19UUkFDS0VSLCAiQ29ubmVj dGluZyB0byAlcyIsIGJ1c25hbWUpOworKyAgc2VsZi0+bWluZXJfZnNfY29ubmVjdGlvbiA9IHRy YWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fYnVzX25ldyAoYnVzbmFtZSwgTlVMTCwgTlVMTCwgZXJy b3IpOworKyAgaWYgKCplcnJvcikKKysgICAgeworKyAgICAgIGdfY3JpdGljYWwgKCJDb3VsZCBu b3Qgc3RhcnQgbG9jYWwgVHJhY2tlciBpbmRleGVyIGF0ICVzOiAlcyIsIGJ1c25hbWUsICgqZXJy b3IpLT5tZXNzYWdlKTsKKysgICAgICByZXR1cm4gRkFMU0U7CisrICAgIH0KKysKKysgIHNlbGYt Pm1pbmVyX2ZzX2J1c25hbWUgPSBidXNuYW1lOworKyAgc2VsZi0+bWluZXJfZnNfY29udHJvbF9i dXNuYW1lID0gY29udHJvbF9idXNuYW1lOworKworKyAgcmV0dXJuIFRSVUU7CisrfQorKworK3N0 YXRpYyBnYm9vbGVhbgorK2luc2lkZV9mbGF0cGFrICh2b2lkKQorK3sKKysgICAgcmV0dXJuIGdf ZmlsZV90ZXN0ICgiLy5mbGF0cGFrLWluZm8iLCBHX0ZJTEVfVEVTVF9FWElTVFMpOworK30KKysK KyBzdGF0aWMgR09iamVjdCAqCisgcGhvdG9zX3RyYWNrZXJfcXVldWVfY29uc3RydWN0b3IgKEdU eXBlIHR5cGUsIGd1aW50IG5fY29uc3RydWN0X3BhcmFtcywgR09iamVjdENvbnN0cnVjdFBhcmFt ICpjb25zdHJ1Y3RfcGFyYW1zKQorIHsKK0BAIC0yMzQsNyArMjg5LDggQEAgcGhvdG9zX3RyYWNr ZXJfcXVldWVfZGlzcG9zZSAoR09iamVjdCAqb2JqZWN0KQorIHsKKyAgIFBob3Rvc1RyYWNrZXJR dWV1ZSAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX1FVRVVFIChvYmplY3QpOworIAorLSAgZ19jbGVh cl9vYmplY3QgKCZzZWxmLT5jb25uZWN0aW9uKTsKKysgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+ bG9jYWxfY29ubmVjdGlvbik7CisrICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm1pbmVyX2ZzX2Nv bm5lY3Rpb24pOworIAorICAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc190cmFja2VyX3F1ZXVlX3Bh cmVudF9jbGFzcyktPmRpc3Bvc2UgKG9iamVjdCk7CisgfQorQEAgLTI1OCw2ICszMTQsMzggQEAg cGhvdG9zX3RyYWNrZXJfcXVldWVfaW5pdCAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKQorICAg c2VsZi0+cXVldWUgPSBnX3F1ZXVlX25ldyAoKTsKKyB9CisgCisrc3RhdGljIHZvaWQKKytwaG90 b3NfdHJhY2tlcl9xdWV1ZV9nZXRfcHJvcGVydHkgKEdPYmplY3QgKm9iamVjdCwgZ3VpbnQgcHJv cF9pZCwgR1ZhbHVlICp2YWx1ZSwgR1BhcmFtU3BlYyAqcHNwZWMpCisreworKyAgUGhvdG9zVHJh Y2tlclF1ZXVlICpzZWxmID0gUEhPVE9TX1RSQUNLRVJfUVVFVUUgKG9iamVjdCk7CisrCisrICBz d2l0Y2ggKHByb3BfaWQpCisrICAgIHsKKysgICAgY2FzZSBQUk9QX01JTkVSX0ZTX1JFQURZOgor KyAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4gKHZhbHVlLCBzZWxmLT5taW5lcl9mc19yZWFkeSk7 CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgUFJPUF9NSU5FUl9GU19CVVNOQU1FOgorKyAg ICAgIGdfdmFsdWVfc2V0X3N0cmluZyAodmFsdWUsIHNlbGYtPm1pbmVyX2ZzX2J1c25hbWUpOwor KyAgICAgIGJyZWFrOworKworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5W QUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAgYnJlYWs7 CisrICAgIH0KKyt9CisrCisrc3RhdGljIHZvaWQKKytwaG90b3NfdHJhY2tlcl9xdWV1ZV9zZXRf cHJvcGVydHkgKEdPYmplY3QgKm9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgY29uc3QgR1ZhbHVlICp2 YWx1ZSwgR1BhcmFtU3BlYyAqcHNwZWMpCisreworKyAgc3dpdGNoIChwcm9wX2lkKQorKyAgICB7 CisrICAgIC8qIEFsbCBwcm9wZXJ0aWVzIGFyZSByZWFkIG9ubHkgKi8KKysgICAgZGVmYXVsdDoK KysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9p ZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrfQorIAorIHN0YXRpYyB2b2lkCisg cGhvdG9zX3RyYWNrZXJfcXVldWVfY2xhc3NfaW5pdCAoUGhvdG9zVHJhY2tlclF1ZXVlQ2xhc3Mg KmNsYXNzKQorQEAgLTI2Nyw2ICszNTUsMjQgQEAgcGhvdG9zX3RyYWNrZXJfcXVldWVfY2xhc3Nf aW5pdCAoUGhvdG9zVHJhY2tlclF1ZXVlQ2xhc3MgKmNsYXNzKQorICAgb2JqZWN0X2NsYXNzLT5j b25zdHJ1Y3RvciA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2NvbnN0cnVjdG9yOworICAgb2JqZWN0 X2NsYXNzLT5kaXNwb3NlID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZGlzcG9zZTsKKyAgIG9iamVj dF9jbGFzcy0+ZmluYWxpemUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9maW5hbGl6ZTsKKysgIG9i amVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X3Byb3Bl cnR5OworKyAgb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBwaG90b3NfdHJhY2tlcl9xdWV1 ZV9zZXRfcHJvcGVydHk7CisrCisrICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChv YmplY3RfY2xhc3MsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX01J TkVSX0ZTX1JFQURZLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJh bV9zcGVjX2Jvb2xlYW4gKCJ0cmFja2VyLW1pbmVyLWZzLXJlYWR5IiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVHJhY2tlciBNaW5l ciBGUyByZWFkeSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIlRSVUUgaWYgaXQgaXMgcG9zc2libGUgdG8gcXVlcnkgVHJhY2tlciBp bmRleGVyIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGQUxTRSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHX1BBUkFNX1JFQURBQkxFKSk7CisrCisrICBnX29iamVjdF9j bGFzc19pbnN0YWxsX3Byb3BlcnR5IChvYmplY3RfY2xhc3MsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQUk9QX01JTkVSX0ZTX0JVU05BTUUsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nICgidHJhY2tlci1taW5lci1m cy1idXNuYW1lIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJUcmFja2VyIE1pbmVyIEZTIGJ1c25hbWUiLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkQtQnVzIG5hbWUgb2Yg dGhlIFRyYWNrZXIgaW5kZXhlciBkYWVtb24iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFNX1JFQURBQkxFKSk7Cisg fQorIAorIAorQEAgLTI3NCwxMyArMzgwLDE2IEBAIHN0YXRpYyBnYm9vbGVhbgorIHBob3Rvc190 cmFja2VyX3F1ZXVlX2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAqaW5pdGFibGUsIEdDYW5jZWxs YWJsZSAqY2FuY2VsbGFibGUsIEdFcnJvciAqKmVycm9yKQorIHsKKyAgIFBob3Rvc1RyYWNrZXJR dWV1ZSAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX1FVRVVFIChpbml0YWJsZSk7CisrICBUcmFja2Vy U3BhcnFsQ29ubmVjdGlvbkZsYWdzIHRyYWNrZXJfZmxhZ3M7CisrICBnX2F1dG9wdHIgKEdGaWxl KSBzdG9yZSA9IE5VTEw7CisgICBnYm9vbGVhbiByZXRfdmFsID0gRkFMU0U7CisrICBnYm9vbGVh biBtaW5lcl9vayA9IEZBTFNFOworIAorICAgR19MT0NLIChpbml0X2xvY2spOworIAorICAgaWYg KHNlbGYtPmlzX2luaXRpYWxpemVkKQorICAgICB7CistICAgICAgaWYgKHNlbGYtPmNvbm5lY3Rp b24gIT0gTlVMTCkKKysgICAgICBpZiAoc2VsZi0+bG9jYWxfY29ubmVjdGlvbiAhPSBOVUxMICYm IHNlbGYtPm1pbmVyX2ZzX2Nvbm5lY3Rpb24gIT0gTlVMTCkKKyAgICAgICAgIHJldF92YWwgPSBU UlVFOworICAgICAgIGVsc2UKKyAgICAgICAgIGdfYXNzZXJ0X25vbm51bGwgKHNlbGYtPmluaXRp YWxpemF0aW9uX2Vycm9yKTsKK0BAIC0yOTAsMTEgKzM5OSw0OSBAQCBwaG90b3NfdHJhY2tlcl9x dWV1ZV9pbml0YWJsZV9pbml0IChHSW5pdGFibGUgKmluaXRhYmxlLCBHQ2FuY2VsbGFibGUgKmNh bmNlbGxhYgorIAorICAgZ19hc3NlcnRfbm9fZXJyb3IgKHNlbGYtPmluaXRpYWxpemF0aW9uX2Vy cm9yKTsKKyAKKy0gIHNlbGYtPmNvbm5lY3Rpb24gPSB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9u X2dldCAoY2FuY2VsbGFibGUsICZzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7CisrICAvKiBD b25uZWN0IHRvIHRoZSBsb2NhbCBkYXRhYmFzZSB3aGljaCBzdG9yZXMgdXNlciBkYXRhLgorKyAg ICoKKysgICAqIFNhbWUgZmxhZ3MgdGhhdCB0cmFja2VyLW1pbmVyLWZzIHVzZXMgYnkgZGVmYXVs dC4gU2VlOgorKyAgICogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3RyYWNrZXItbWlu ZXJzLy0vYmxvYi9tYXN0ZXIvc3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYyNMNzM1IGFuZAor KyAgICogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3RyYWNrZXItbWluZXJzLy0vYmxv Yi9tYXN0ZXIvZGF0YS9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlci5GVFMuZ3NjaGVtYS54bWwgKi8K KysgIHRyYWNrZXJfZmxhZ3MgPSBUUkFDS0VSX1NQQVJRTF9DT05ORUNUSU9OX0ZMQUdTX0ZUU19F TkFCTEVfVU5BQ0NFTlQgfAorKyAgICAgICAgICAgICAgICAgIFRSQUNLRVJfU1BBUlFMX0NPTk5F Q1RJT05fRkxBR1NfRlRTX0VOQUJMRV9TVE9QX1dPUkRTIHwKKysgICAgICAgICAgICAgICAgICBU UkFDS0VSX1NQQVJRTF9DT05ORUNUSU9OX0ZMQUdTX0ZUU19JR05PUkVfTlVNQkVSUzsKKysKKysg IHN0b3JlID0gZ19maWxlX25ld19idWlsZF9maWxlbmFtZSAoZ19nZXRfdXNlcl9kYXRhX2RpciAo KSwgImdub21lLXBob3RvcyIsIE5VTEwpOworKworKyAgcGhvdG9zX2RlYnVnIChQSE9UT1NfREVC VUdfVFJBQ0tFUiwgIk9wZW5pbmcgbG9jYWwgZGF0YWJhc2UgYXQgJXMiLCBnX2ZpbGVfcGVla19w YXRoIChzdG9yZSkpOworKyAgc2VsZi0+bG9jYWxfY29ubmVjdGlvbiA9IHRyYWNrZXJfc3BhcnFs X2Nvbm5lY3Rpb25fbmV3ICh0cmFja2VyX2ZsYWdzLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yZSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tlcl9zcGFy cWxfZ2V0X29udG9sb2d5X25lcG9tdWsgKCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbGxhYmxlLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2VsZi0+aW5p dGlhbGl6YXRpb25fZXJyb3IpOworKworICAgaWYgKEdfVU5MSUtFTFkgKHNlbGYtPmluaXRpYWxp emF0aW9uX2Vycm9yICE9IE5VTEwpKQorICAgICBnb3RvIG91dDsKKyAKKy0gIHJldF92YWwgPSBU UlVFOworKyAgLyogQ29ubmVjdCB0byBmaWxlc3lzdGVtIGluZGV4ZXIuICovCisrICBtaW5lcl9v ayA9IHBob3Rvc190cmFja2VyX3F1ZXVlX3N0YXJ0X3Nlc3Npb25fbWluZXJfZnMgKHNlbGYsICZz ZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7CisrCisrICBpZiAoIW1pbmVyX29rICYmIGluc2lk ZV9mbGF0cGFrICgpKQorKyAgICB7CisrICAgICAgZ19jbGVhcl9lcnJvciAoJnNlbGYtPmluaXRp YWxpemF0aW9uX2Vycm9yKTsKKysgICAgICBtaW5lcl9vayA9IHBob3Rvc190cmFja2VyX3F1ZXVl X3N0YXJ0X2xvY2FsX21pbmVyX2ZzIChzZWxmLCAmc2VsZi0+aW5pdGlhbGl6YXRpb25fZXJyb3Ip OworKyAgICB9CisrCisrICBpZiAobWluZXJfb2spCisrICAgIHsKKysgICAgICBwaG90b3NfZGVi dWcgKFBIT1RPU19ERUJVR19UUkFDS0VSLCAiVXNpbmcgJXMgYXMgdHJhY2tlci1taW5lci1mcyIs IHNlbGYtPm1pbmVyX2ZzX2J1c25hbWUpOworKyAgICAgIHJldF92YWwgPSBUUlVFOworKyAgICB9 CisrICBlbHNlCisrICAgIHsKKysgICAgICBwaG90b3NfZGVidWcgKFBIT1RPU19ERUJVR19UUkFD S0VSLCAiSW5pdGlhbGl6YXRpb24gZmFpbGVkIGR1ZSB0byAlcyIsIHNlbGYtPmluaXRpYWxpemF0 aW9uX2Vycm9yLT5tZXNzYWdlKTsKKysgICAgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm1pbmVy X2ZzX2Nvbm5lY3Rpb24pOworKyAgICAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bG9jYWxfY29u bmVjdGlvbik7CisrICAgICAgcmV0X3ZhbCA9IEZBTFNFOworKyAgICB9CisrCisgCisgIG91dDoK KyAgIHNlbGYtPmlzX2luaXRpYWxpemVkID0gVFJVRTsKK0BAIC0zMTksMTAgKzQ2Niw0NCBAQCBw aG90b3NfdHJhY2tlcl9xdWV1ZV9pbml0YWJsZV9pZmFjZV9pbml0IChHSW5pdGFibGVJZmFjZSAq aWZhY2UpCisgUGhvdG9zVHJhY2tlclF1ZXVlICoKKyBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBf c2luZ2xldG9uIChHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLCBHRXJyb3IgKiplcnJvcikKKyB7 CisrICBHT2JqZWN0ICpzaW5nbGV0b247CisrCisgICBnX3JldHVybl92YWxfaWZfZmFpbCAoY2Fu Y2VsbGFibGUgPT0gTlVMTCB8fCBHX0lTX0NBTkNFTExBQkxFIChjYW5jZWxsYWJsZSksIE5VTEwp OworICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGVycm9yID09IE5VTEwgfHwgKmVycm9yID09IE5V TEwsIE5VTEwpOworIAorLSAgcmV0dXJuIGdfaW5pdGFibGVfbmV3IChQSE9UT1NfVFlQRV9UUkFD S0VSX1FVRVVFLCBjYW5jZWxsYWJsZSwgZXJyb3IsIE5VTEwpOworKyAgc2luZ2xldG9uID0gZ19v YmplY3RfbmV3IChQSE9UT1NfVFlQRV9UUkFDS0VSX1FVRVVFLCBOVUxMKTsKKysKKysgIGlmIChn X2luaXRhYmxlX2luaXQgKEdfSU5JVEFCTEUgKHNpbmdsZXRvbiksIGNhbmNlbGxhYmxlLCBlcnJv cikpCisrICAgICAgcmV0dXJuIFBIT1RPU19UUkFDS0VSX1FVRVVFIChzaW5nbGV0b24pOworKwor KyAgLyogT24gZXJyb3Igd2UgZGVsaWJlcmF0ZWx5IGRvbid0IHVucmVmIHRoZSBvYmplY3Qgc28g dGhhdCB3ZSB3b24ndCB0cnkKKysgICAqIGFuZCByZS1pbml0aWFsaXplIFRyYWNrZXIgd2hlbiBj YWxsZWQgYWdhaW4uCisrICAgKi8KKysgIHJldHVybiBOVUxMOworK30KKysKKysKKytjb25zdCBn Y2hhciAqCisrcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2J1c25hbWUgKFBob3Rv c1RyYWNrZXJRdWV1ZSAqc2VsZikKKyt7CisrICByZXR1cm4gc2VsZi0+bWluZXJfZnNfYnVzbmFt ZTsKKyt9CisrCisrCisrY29uc3QgZ2NoYXIgKgorK3Bob3Rvc190cmFja2VyX3F1ZXVlX2dldF9t aW5lcl9mc19jb250cm9sX2J1c25hbWUgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZikKKyt7Cisr ICByZXR1cm4gc2VsZi0+bWluZXJfZnNfY29udHJvbF9idXNuYW1lOworK30KKysKKysKKytUcmFj a2VyTm90aWZpZXIgKgorK3Bob3Rvc190cmFja2VyX3F1ZXVlX2dldF9ub3RpZmllciAoUGhvdG9z VHJhY2tlclF1ZXVlICpzZWxmKQorK3sKKysgIC8qIFdlIHdhbnQgbm90aWZpY2F0aW9ucyBvbiBm aWxlc3lzdGVtIGNoYW5nZXMsIHdlIGRvbid0IG5lZWQgdGhlbSBmb3IgdGhlCisrICAgKiBsb2Nh bCBkYXRhYmFzZSB3aGljaCB3ZSBtYW5hZ2Ugb3Vyc2VsdmVzLgorKyAgICovCisrICByZXR1cm4g dHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9jcmVhdGVfbm90aWZpZXIgKHNlbGYtPm1pbmVyX2Zz X2Nvbm5lY3Rpb24pOworIH0KKyAKKyAKK0BAIC0zNTEsNiArNTMyLDcgQEAgcGhvdG9zX3RyYWNr ZXJfcXVldWVfc2VsZWN0IChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsCisgfQorIAorIAorKwor IHZvaWQKKyBwaG90b3NfdHJhY2tlcl9xdWV1ZV91cGRhdGUgKFBob3Rvc1RyYWNrZXJRdWV1ZSAq c2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBob3Rvc1F1ZXJ5ICpxdWVyeSwK K2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuaCBiL3NyYy9waG90b3MtdHJh Y2tlci1xdWV1ZS5oCitpbmRleCA5M2Q5NzMwNi4uNmUzMWVjZjYgMTAwNjQ0CistLS0gYS9zcmMv cGhvdG9zLXRyYWNrZXItcXVldWUuaAorKysrIGIvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmgK K0BAIC0yNCwxNiArMjQsMjMgQEAKKyAjZGVmaW5lIFBIT1RPU19UUkFDS0VSX1FVRVVFX0gKKyAK KyAjaW5jbHVkZSA8Z2lvL2dpby5oPgorKyNpbmNsdWRlIDxsaWJ0cmFja2VyLXNwYXJxbC90cmFj a2VyLXNwYXJxbC5oPgorIAorICNpbmNsdWRlICJwaG90b3MtcXVlcnkuaCIKKyAKKyBHX0JFR0lO X0RFQ0xTCisgCisrI2RlZmluZSBUUkFDS0VSX1BJQ1RVUkVTX0dSQVBIICJodHRwOi8vdHJhY2tl ci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL3RyYWNrZXIjUGljdHVyZXMiCisrCisgI2RlZmlu ZSBQSE9UT1NfVFlQRV9UUkFDS0VSX1FVRVVFIChwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfdHlw ZSAoKSkKKyBHX0RFQ0xBUkVfRklOQUxfVFlQRSAoUGhvdG9zVHJhY2tlclF1ZXVlLCBwaG90b3Nf dHJhY2tlcl9xdWV1ZSwgUEhPVE9TLCBUUkFDS0VSX1FVRVVFLCBHT2JqZWN0KTsKKyAKKyBQaG90 b3NUcmFja2VyUXVldWUgICAgKnBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9zaW5nbGV0b24gICAg ICAgICAgKEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUsIEdFcnJvciAqKmVycm9yKTsKKyAKKytj b25zdCBnY2hhciAqICAgICAgICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9taW5lcl9mc19i dXNuYW1lICAgICAgICAgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZik7CisrY29uc3QgZ2NoYXIg KiAgICAgICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfY29udHJvbF9idXNu YW1lIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpOworK1RyYWNrZXJOb3RpZmllciAqICAgICAg cGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X25vdGlmaWVyICAgICAgICAgICAgICAgICAoUGhvdG9z VHJhY2tlclF1ZXVlICpzZWxmKTsKKysKKyB2b2lkICAgICAgICAgICAgICAgICAgIHBob3Rvc190 cmFja2VyX3F1ZXVlX3NlbGVjdCAgICAgICAgICAgICAgICAgKFBob3Rvc1RyYWNrZXJRdWV1ZSAq c2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBob3Rvc1F1ZXJ5ICpxdWVyeSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDYW5j ZWxsYWJsZSAqY2FuY2VsbGFibGUsCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLXJl c291cmNlcy54bWwgYi9zcmMvcGhvdG9zLXRyYWNrZXItcmVzb3VyY2VzLnhtbAorZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CitpbmRleCAxODE3N2FhMC4uMDAwMDAwMDAKKy0tLSBhL3NyYy9waG90 b3MtdHJhY2tlci1yZXNvdXJjZXMueG1sCisrKysgL2Rldi9udWxsCitAQCAtMSwzMSArMCwwIEBA CistPCFET0NUWVBFIG5vZGUgUFVCTElDCistIi0vL2ZyZWVkZXNrdG9wLy9EVEQgRC1CVVMgT2Jq ZWN0IEludHJvc3BlY3Rpb24gMS4wLy9FTiIKKy0iaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcv c3RhbmRhcmRzL2RidXMvMS4wL2ludHJvc3BlY3QuZHRkIj4KKy0KKy08IS0tCistIFBob3RvcyAt IGFjY2Vzcywgb3JnYW5pemUgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FCistIENvcHly aWdodCDCqSAyMDEyIOKAkyAyMDE5IFJlZCBIYXQsIEluYy4KKy0KKy0gVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy0g aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKy0gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKy0gKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKy0KKy0gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCistIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCistIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy0gR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKy0KKy0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy0gYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CistLS0+CistCistPG5vZGUgbmFtZT0iLyIgeG1sbnM6ZG9jPSJodHRwOi8vd3d3LmZyZWVkZXNr dG9wLm9yZy9kYnVzLzEuMC9kb2MuZHRkIj4KKy0gIDxpbnRlcmZhY2UgbmFtZT0ib3JnLmZyZWVk ZXNrdG9wLlRyYWNrZXIxLlJlc291cmNlcyI+CistICAgIDxzaWduYWwgbmFtZT0iR3JhcGhVcGRh dGVkIj4KKy0gICAgICA8YXJnIG5hbWU9ImNsYXNzTmFtZSIgdHlwZT0icyIgLz4KKy0gICAgICA8 YXJnIG5hbWU9ImRlbGV0ZUV2ZW50cyIgdHlwZT0iYShpaWlpKSIgLz4KKy0gICAgICA8YXJnIG5h bWU9Imluc2VydEV2ZW50cyIgdHlwZT0iYShpaWlpKSIgLz4KKy0gICAgPC9zaWduYWw+CistICA8 L2ludGVyZmFjZT4KKy08L25vZGU+CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy11dGlscy5jIGIv c3JjL3Bob3Rvcy11dGlscy5jCitpbmRleCBjNjM4Mjk3Yi4uY2M4NTkzZDggMTAwNjQ0CistLS0g YS9zcmMvcGhvdG9zLXV0aWxzLmMKKysrKyBiL3NyYy9waG90b3MtdXRpbHMuYworQEAgLTEyNjEs NyArMTI2MSwxMyBAQCBwaG90b3NfdXRpbHNfc2V0X2VkaXRlZF9uYW1lIChjb25zdCBnY2hhciAq dXJuLCBjb25zdCBnY2hhciAqdGl0bGUpCisgICBnX2F1dG9wdHIgKFBob3Rvc1RyYWNrZXJRdWV1 ZSkgcXVldWUgPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKyAK Ky0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIklOU0VSVCBPUiBSRVBMQUNFIHsgPCVzPiBu aWU6dGl0bGUgXCIlc1wiIH0iLCB1cm4sIHRpdGxlKTsKKysgIHNwYXJxbCA9IGdfc3RyZHVwX3By aW50ZiAoIldJVEggdHJhY2tlcjpQaWN0dXJlcyAiCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJERUxFVEUgeyA8JXM+IG5pZTp0aXRsZSA/dGl0bGUgfSAiCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJJTlNFUlQgeyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg IDwlcz4gYSBubW06UGhvdG8gOyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAg bmllOnRpdGxlIFwiJXNcIiAuICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIn0iCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXSEVSRSB7IDwlcz4gbmllOnRpdGxlID90aXRs ZSB9IiwgdXJuLCB1cm4sIHRpdGxlLCB1cm4pOworICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3 IChOVUxMLCBzcGFycWwpOworIAorICAgeworQEAgLTEyODksOSArMTI5NSwxOSBAQCBwaG90b3Nf dXRpbHNfc2V0X2Zhdm9yaXRlIChjb25zdCBnY2hhciAqdXJuLCBnYm9vbGVhbiBpc19mYXZvcml0 ZSkKKyAgIGdfYXV0b3B0ciAoUGhvdG9zVHJhY2tlclF1ZXVlKSBxdWV1ZSA9IE5VTEw7CisgICBn X2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOworIAorLSAgc3BhcnFsID0gZ19zdHJkdXBf cHJpbnRmICgiJXMgeyA8JXM+IG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRl IH0iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNfZmF2b3JpdGUpID8gIklOU0VS VCBPUiBSRVBMQUNFIiA6ICJERUxFVEUiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 cm4pOworKyAgaWYgKGlzX2Zhdm9yaXRlKQorKyAgICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYg KCJJTlNFUlQgREFUQSB7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBHUkFQ SCB0cmFja2VyOlBpY3R1cmVzIHsiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAg ICA8JXM+IGEgbm1tOlBob3RvIDsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg ICAgICBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSAiCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIiAgfSAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIn0iLCB1cm4pOworKyAgZWxzZQorKyAgICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJE RUxFVEUgREFUQSB7IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIEdSQVBIIHRy YWNrZXI6UGljdHVyZXMgeyIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDwl cz4gbmFvOmhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWctZmF2b3JpdGUgIgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIgIH0gIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJ9IiwgdXJuKTsKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoTlVMTCwgc3BhcnFsKTsK KyAKKyAgIHsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXV0aWxzLmggYi9zcmMvcGhvdG9zLXV0 aWxzLmgKK2luZGV4IDc4ZWMzNjY4Li5mMTQ1MGY3ZCAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mt dXRpbHMuaAorKysrIGIvc3JjL3Bob3Rvcy11dGlscy5oCitAQCAtNDYsNyArNDYsNyBAQCBHX0JF R0lOX0RFQ0xTCisgI2RlZmluZSBQSE9UT1NfVFJBQ0tFUl9DT05UUk9MTEVSX0VYVEVOU0lPTl9Q T0lOVF9OQU1FICJwaG90b3MtdHJhY2tlci1jb250cm9sbGVyIgorIAorICNkZWZpbmUgUEhPVE9T X0NPTExFQ1RJT05fU0NSRUVOU0hPVCBcCistICAiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Au b3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9uZm8jaW1hZ2UtY2F0ZWdvcnktc2NyZWVuc2hvdCIK KysgICJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25mbyNpbWFnZS1j YXRlZ29yeS1zY3JlZW5zaG90IgorICNkZWZpbmUgUEhPVE9TX0VYUE9SVF9TVUJQQVRIICJFeHBv cnRzIgorIAorIHR5cGVkZWYgZW51bQorZGlmZiAtLWdpdCBhL3NyYy9xdWVyaWVzL2FsbC5zcGFy cWwudGVtcGxhdGUgYi9zcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlCitpbmRleCAxY2Vm OThlOC4uMTRlMDgwMjcgMTAwNjQ0CistLS0gYS9zcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBs YXRlCisrKysgYi9zcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlCitAQCAtMSwzMCArMSw0 MiBAQAorLVNFTEVDVCB7e3Byb2plY3Rpb259fQorK1NFTEVDVCB7e2ZpbmFsX3Byb2plY3Rpb259 fQorK0ZST00gTkFNRUQgdHJhY2tlcjpQaWN0dXJlcworIHsKKyAgICAgeworLSAgICAgICAgU0VM RUNUIHt7cHJvamVjdGlvbn19CisrICAgICAgICBTRUxFQ1Qge3ttYWluX3Byb2plY3Rpb259fQor ICAgICAgICAgeworICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgU0VMRUNUID91cm4g Q09VTlQoP2l0ZW0pIEFTID9jb3VudAorICAgICAgICAgICAgICAgICB7CisrICAgICAgICAgICAg ICAgICAgICB7e3ZhbHVlc319CisrICAgICAgICAgICAgICAgICAgICBWQUxVRVMgKD9maWxlID9m aWxlbmFtZSA/Y3JlYXRvciA/cHVibGlzaGVyKSB7ICgiIiAiIiAiIiAiIikgfQorICAgICAgICAg ICAgICAgICAgICAgP3VybiBhIG5mbzpEYXRhQ29udGFpbmVyLgorLSAgICAgICAgICAgICAgICAg ICAgP2l0ZW0gYSBubW06UGhvdG87IG5pZTppc1BhcnRPZiA/dXJuLgorLSAgICAgICAgICAgICAg ICB9IEdST1VQIEJZID91cm4KKysgICAgICAgICAgICAgICAgICAgID9pdGVtIGEgbm1tOlBob3Rv IDsKKysgICAgICAgICAgICAgICAgICAgICAgIG5pZTppc1BhcnRPZiA/dXJuIC4KKysgICAgICAg ICAgICAgICAgICAgIHt7aXRlbV9wYXR0ZXJufX0KKysgICAgICAgICAgICAgICAgfQorKyAgICAg ICAgICAgICAgICBHUk9VUCBCWSA/dXJuCisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIEZJ TFRFUiAoP2NvdW50ID4gMCAmJiB7e2NvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tz ZWFyY2hfZmlsdGVyfX0pCisgICAgICAgICB9CistICAgICAgICBHUk9VUCBCWSA/dXJuCisgICAg IH0KKyAgICAgVU5JT04KKyAgICAgeworLSAgICAgICAgU0VMRUNUIHt7cHJvamVjdGlvbn19Cisr ICAgICAgICBTRUxFQ1Qge3tzZWNvbmRfcHJvamVjdGlvbn19CisgICAgICAgICB7CistICAgICAg ICAgICAgP3VybiBhIG5tbTpQaG90byAuCistICAgICAgICAgICAgT1BUSU9OQUwgeyA/dXJuIG5j bzpjcmVhdG9yID9jcmVhdG9yIC4gfQorLSAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286 cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9CisgICAgICAgICAgICAge3tpdGVtX3BhdHRlcm59fQor LSAgICAgICAgICAgIEZJTFRFUiAoe3twaG90b3NfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJj ZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKysgICAgICAgICAgICBTRVJWSUNFIDxk YnVzOnt7bWluZXJfZnNfYnVzbmFtZX19PgorKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAg ICAgU0VMRUNUIHt7bWFpbl9wcm9qZWN0aW9ufX0KKysgICAgICAgICAgICAgICAgeworKyAgICAg ICAgICAgICAgICAgICAge3t2YWx1ZXN9fQorKyAgICAgICAgICAgICAgICAgICAgP3VybiBhIG5t bTpQaG90byA7CisrICAgICAgICAgICAgICAgICAgICAgICAgbmllOmlzU3RvcmVkQXMgP2ZpbGUg LgorKyAgICAgICAgICAgICAgICAgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9jcmVh dG9yIC4gfQorKyAgICAgICAgICAgICAgICAgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJsaXNo ZXIgP3B1Ymxpc2hlciAuIH0KKysgICAgICAgICAgICAgICAgICAgIEZJTFRFUiAoe3twaG90b3Nf ZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9 fSkKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKy0gICAg ICAgIEdST1VQIEJZID91cm4KKyAgICAgfQorIH0KKyB7e29yZGVyfX0KK2RpZmYgLS1naXQgYS9z cmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUgYi9zcmMvcXVlcmllcy9jb2xs ZWN0aW9ucy5zcGFycWwudGVtcGxhdGUKK2luZGV4IDIwYjM1Y2Q2Li40ZGZiMzQ1YSAxMDA2NDQK Ky0tLSBhL3NyYy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZQorKysrIGIvc3Jj L3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCitAQCAtMSwxNCArMSwyMCBAQAor LVNFTEVDVCB7e3Byb2plY3Rpb259fQorK1NFTEVDVCB7e2ZpbmFsX3Byb2plY3Rpb259fQorIHsK KysgICAgU0VMRUNUIHt7bWFpbl9wcm9qZWN0aW9ufX0KKyAgICAgeworLSAgICAgICAgU0VMRUNU ID91cm4gQ09VTlQoP2l0ZW0pIEFTID9jb3VudAorICAgICAgICAgeworLSAgICAgICAgICAgID91 cm4gYSBuZm86RGF0YUNvbnRhaW5lci4KKy0gICAgICAgICAgICA/aXRlbSBhIG5tbTpQaG90bzsg bmllOmlzUGFydE9mID91cm4uCistICAgICAgICB9IEdST1VQIEJZID91cm4KKysgICAgICAgICAg ICBTRUxFQ1QgP3VybiBDT1VOVCg/aXRlbSkgQVMgP2NvdW50CisrICAgICAgICAgICAgeworKyAg ICAgICAgICAgICAgICB7e3ZhbHVlc319CisrICAgICAgICAgICAgICAgIFZBTFVFUyAoP2ZpbGUg P2ZpbGVuYW1lID9jcmVhdG9yID9wdWJsaXNoZXIpIHsgKCIiICIiICIiICIiKSB9CisrICAgICAg ICAgICAgICAgID91cm4gYSBuZm86RGF0YUNvbnRhaW5lciAuCisrICAgICAgICAgICAgICAgID9p dGVtIGEgbm1tOlBob3RvIDsKKysgICAgICAgICAgICAgICAgICAgbmllOmlzUGFydE9mID91cm4g LgorKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBHUk9VUCBCWSA/dXJuCisrICAgICAgICB9 CisrICAgICAgICBGSUxURVIgKD9jb3VudCA+IDAgJiYge3tjb2xsZWN0aW9uc19kZWZhdWx0X2Zp bHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorICAgICB9CistICAgIEZJTFRFUiAoP2NvdW50 ID4gMCAmJiB7e2NvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVy fX0pCisgfQorLUdST1VQIEJZID91cm4KKyB7e29yZGVyfX0KKyB7e29mZnNldF9saW1pdH19Citk aWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSBi L3NyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUKK2luZGV4IDA4ODVh MDhhLi45YTBkNzgwNiAxMDA2NDQKKy0tLSBhL3NyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5z cGFycWwudGVtcGxhdGUKKysrKyBiL3NyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwu dGVtcGxhdGUKK0BAIC0xLDEyICsxLDIwIEBACistU0VMRUNUIHt7cHJvamVjdGlvbn19CisrU0VM RUNUIHt7ZmluYWxfcHJvamVjdGlvbn19CisrRlJPTSB0cmFja2VyOlBpY3R1cmVzCisgeworICAg ICA/dXJuIGEgbm1tOlBob3RvIC4KKyAgICAgP3VybiBhIG5tbTpQaG90bzsgbmFvOmhhc1RhZyBu YW86cHJlZGVmaW5lZC10YWctZmF2b3JpdGUgLgorLSAgICBPUFRJT05BTCB7ID91cm4gbmNvOmNy ZWF0b3IgP2NyZWF0b3IgLiB9CistICAgIE9QVElPTkFMIHsgP3VybiBuY286cHVibGlzaGVyID9w dWJsaXNoZXIgLiB9CistICAgIHt7aXRlbV9wYXR0ZXJufX0KKy0gICAgRklMVEVSICh7e3Bob3Rv c19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRl cn19KQorKyAgICBTRVJWSUNFIDxkYnVzOnt7bWluZXJfZnNfYnVzbmFtZX19PgorKyAgICB7Cisr ICAgICAgICBTRUxFQ1Qge3ttYWluX3Byb2plY3Rpb259fQorKyAgICAgICAgeworKyAgICAgICAg ICAgID91cm4gYSBubW06UGhvdG8gOworKyAgICAgICAgICAgICAgICBuaWU6aXNTdG9yZWRBcyA/ ZmlsZSAuCisrICAgICAgICAgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9jcmVhdG9y IC4gfQorKyAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286cHVibGlzaGVyID9wdWJsaXNo ZXIgLiB9CisrICAgICAgICAgICAge3tpdGVtX3BhdHRlcm59fQorKyAgICAgICAgICAgIEZJTFRF UiAoe3twaG90b3NfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3Nl YXJjaF9maWx0ZXJ9fSkKKysgICAgICAgIH0KKysgICAgfQorIH0KKy1HUk9VUCBCWSA/dXJuCisg e3tvcmRlcn19Cisge3tvZmZzZXRfbGltaXR9fQorZGlmZiAtLWdpdCBhL3NyYy9xdWVyaWVzL3Bo b3Rvcy5zcGFycWwudGVtcGxhdGUgYi9zcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRl CitpbmRleCA0ZWIxMGI3NC4uNmFkZTM1ZTIgMTAwNjQ0CistLS0gYS9zcmMvcXVlcmllcy9waG90 b3Muc3BhcnFsLnRlbXBsYXRlCisrKysgYi9zcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBs YXRlCitAQCAtMSwxMSArMSwxOSBAQAorLVNFTEVDVCB7e3Byb2plY3Rpb259fQorK1NFTEVDVCB7 e2ZpbmFsX3Byb2plY3Rpb259fQorK0ZST00gdHJhY2tlcjpQaWN0dXJlcworIHsKKy0gICAgP3Vy biBhIG5tbTpQaG90byAuCistICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRv ciAuIH0KKy0gICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJsaXNoZXIgP3B1Ymxpc2hlciAuIH0K Ky0gICAge3tpdGVtX3BhdHRlcm59fQorLSAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmls dGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisrICAgIFNF UlZJQ0UgPGRidXM6e3ttaW5lcl9mc19idXNuYW1lfX0+CisrICAgIHsKKysgICAgICAgIFNFTEVD VCB7e21haW5fcHJvamVjdGlvbn19CisrICAgICAgICB7CisrICAgICAgICAgICAge3t2YWx1ZXN9 fQorKyAgICAgICAgICAgID91cm4gYSBubW06UGhvdG8gOworKyAgICAgICAgICAgICAgICBuaWU6 aXNTdG9yZWRBcyA/ZmlsZSAuCisrICAgICAgICAgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVh dG9yID9jcmVhdG9yIC4gfQorKyAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286cHVibGlz aGVyID9wdWJsaXNoZXIgLiB9CisrICAgICAgICAgICAge3tpdGVtX3BhdHRlcm59fQorKyAgICAg ICAgICAgIEZJTFRFUiAoe3twaG90b3NfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0 ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKysgICAgICAgIH0KKysgICAgfQorIH0KKy1HUk9V UCBCWSA/dXJuCisge3tvcmRlcn19Cisge3tvZmZzZXRfbGltaXR9fQorLS0gCitHaXRMYWIKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21l LXBob3Rvcy90ZW1wbGF0ZQppbmRleCAxZWQ4Yjk4NjFlYy4uN2M4M2EyZTc1ZDQgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtcGhv dG9zL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIzIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1waG90b3MnCiBwa2duYW1lPWdub21lLXBob3RvcwotdmVyc2lvbj0zLjM0LjIKK3ZlcnNpb249 My4zNy45MS4xCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1l c29uCiBjb25maWd1cmVfYXJncz0iLURkb2d0YWlsPWZhbHNlIgogaG9zdG1ha2VkZXBlbmRzPSJw a2ctY29uZmlnIGdldHRleHQgaXRzdG9vbCBnbGliLWRldmVsIGdkay1waXhidWYgbGlicnN2ZyIK IG1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBiYWJsLWRldmVsIGV4ZW1waS1kZXZlbCBsY21zMi1k ZXZlbAotIGdmYmdyYXBoLWRldmVsIHRyYWNrZXItZGV2ZWwgbGliZXhpZi1kZXZlbCBsaWJyc3Zn LWRldmVsIGdyaWxvLWRldmVsCisgZ2ZiZ3JhcGgtZGV2ZWwgdHJhY2tlcjMtZGV2ZWwgbGliZXhp Zi1kZXZlbCBsaWJyc3ZnLWRldmVsIGdyaWxvLWRldmVsCiAgbGliZ2V4aXYyLWRldmVsIGdub21l LW9ubGluZS1hY2NvdW50cy1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGxpYmdkYXRhLWRldmVs CiAgZ2VvY29kZS1nbGliLWRldmVsIGxpYmRhenpsZS1kZXZlbCBnZWdsLWRldmVsIgotZGVwZW5k cz0iZGVza3RvcC1maWxlLXV0aWxzIHRyYWNrZXIgdHJhY2tlci1taW5lcnMiCitkZXBlbmRzPSJk ZXNrdG9wLWZpbGUtdXRpbHMgdHJhY2tlcjMgdHJhY2tlcjMtbWluZXJzIgogc2hvcnRfZGVzYz0i QWNjZXNzLCBvcmdhbml6ZSwgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1Bob3Rv cyIKLWRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9nbm9tZS1waG90b3MvJHt2ZXJzaW9uJS4qfS9n bm9tZS1waG90b3MtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zYzU5Yzc2ZWYyODYxOGVj MDU1YTE3OTlkMTA0MDI4N2I5MGEwYjAyMWZlYjBhMDJiMWVhYzI4ZTljMmViNDFhCitkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vZ25vbWUtcGhvdG9zLyR7dmVyc2lvbiUuKi4qfS9nbm9tZS1waG90 b3MtJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT0yNzhkYTIzMjM0ZTI3YzU0MzAyMGRhZTk0 M2FkNTIwODZiOWVjYWE1ZWUzYWFkMGIwMzFiODZlZTA0ZDM5NGFhCitwYXRjaF9hcmdzPSItTnAx IgogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZy b20gNTAzYWJlYTdjNDNiMDFmNjFmMWEyN2I1NjVmYTkzNWZiYThkOTE4ZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3Ni8x MDJdIGVvZzogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2VvZy90ZW1wbGF0ZSB8IDYg KysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZW9nL3RlbXBsYXRlIGIvc3JjcGtncy9lb2cvdGVtcGxhdGUK aW5kZXggZTRjYWNiNzA3OWUuLjI3NTkyNzM4NzJlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2VvZy90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2VvZy90ZW1wbGF0ZQpAQCAtMSwyMCArMSwyMCBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZW9nJwogcGtnbmFtZT1lb2cKLXZlcnNpb249My4zNi4xCit2ZXJz aW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1t ZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUg ZmFsc2UpIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ct Y29uZmlnIgogbWFrZWRlcGVuZHM9ImV4ZW1waS1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGxp YmV4aWYtZGV2ZWwgbGlicGVhcy1kZXZlbAotIGxpYnJzdmctZGV2ZWwgbGNtczItZGV2ZWwiCisg bGlicnN2Zy1kZXZlbCBsY21zMi1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNr dG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIHNoYXJlZC1taW1lLWluZm8iCiBzaG9y dF9kZXNjPSJFeWUgb2YgR05PTUUgZ3JhcGhpY3Mgdmlld2VyIHByb2dyYW0iCiBtYWludGFpbmVy PSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXllT2ZHbm9t ZSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9lb2cvJHt2ZXJzaW9uJS4qfS9lb2ctJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1lNDU0YTFhN2FhNWUzYTMzMjFlYWIwMTE2Nzc4MTEwZTVh N2E3YjYzYmNmMjE2NzZlZGExYTdiZTE4N2M5Yzk1CitjaGVja3N1bT1lMWEzYTQ3YzM4Njg4Y2Q1 MzhkZWRhNjI3YzBlZmYxMTNkMDVjMzE2YjFkZGU2MjQzMTUwNDM3MjU5ZDJkOTYzCiBzaGxpYl9w cm92aWRlcz0ibGliZW9nLnNvIgogbGliMzJkaXNhYmxlZD15ZXMKIAoKRnJvbSA4NTM5MWU3Njlj MDIwM2Q5NjgyNWU5ZjQzYWVlYjM2OTc3NWNiMjkwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDc3LzEwMl0gZXZpbmNlOiB1 cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZXZpbmNlL3RlbXBsYXRlIHwgMjQgKysrKysr KysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZSBiL3NyY3Br Z3MvZXZpbmNlL3RlbXBsYXRlCmluZGV4IDQwMzVmMTVjNjkwLi4xMTFjZjcxMzk2YSAxMDA2NDQK LS0tIGEvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ldmluY2UvdGVtcGxh dGUKQEAgLTEsMTMgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2aW5jZScKIHBrZ25h bWU9ZXZpbmNlCi12ZXJzaW9uPTMuMzYuNwordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1 aWxkX2hlbHBlcj0iZ2lyIgotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2Fy Z3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pIC0tZGlzYWJsZS1zY2hlbWFzLWNv bXBpbGUKLSAtLWVuYWJsZS1jb21pY3MgLS1kaXNhYmxlLXN0YXRpYyAtLWVuYWJsZS14cHMgLS1k aXNhYmxlLXQxbGliCi0gLS1kaXNhYmxlLWJyb3dzZXItcGx1Z2luIC0tZW5hYmxlLXBzIgotaG9z dG1ha2VkZXBlbmRzPSJhZHdhaXRhLWljb24tdGhlbWUgZ2V0dGV4dCBnbGliLWRldmVsIGdub21l LWRvYy11dGlscworYnVpbGRfc3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfYm9v bCBnaXIgaW50cm9zcGVjdGlvbikgJCh2b3B0X2Jvb2wgZ3RrX2RvYyBndGtfZG9jKQorIC1EY29t aWNzPWVuYWJsZWQgLURwcz1lbmFibGVkIC1EeHBzPWVuYWJsZWQgLURkdmk9ZGlzYWJsZWQKKyAt RHQxbGliPWRpc2FibGVkIC1EYnJvd3Nlcl9wbHVnaW49ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9 ImFkd2FpdGEtaWNvbi10aGVtZSBnZXR0ZXh0IGd0ay1kb2MgZ2xpYi1kZXZlbCBnbm9tZS1kb2Mt dXRpbHMKICBpdHN0b29sIHBrZy1jb25maWcgcGVybC1YTUwtUGFyc2VyIGFwcHN0cmVhbS1nbGli IgogIyBYWFggbWlzc2luZyBwYWNrYWdlcyBmb3IgRFZJIGJhY2tlbmQuCiBtYWtlZGVwZW5kcz0i YWR3YWl0YS1pY29uLXRoZW1lIGRqdnVsaWJyZS1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGxp YlNNLWRldmVsCkBAIC0xOSwxMSArMTksMTUgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2aW5jZSIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTY1ZDYxYTQyM2UzZmJiZTA3MDAxZjY1ZTg3NDIyZGZiN2QyZTQyYjll ZGYwY2E2YTFkNDI3YWY5YTA0YjhmMzIKK2NoZWNrc3VtPTI2ZGY4OTdhNDE3NTQ1YjQ3NmQyNjA2 YjE0NzMxMTIyZTg0Mjc4YWU5OTRiZDY0ZWE1MzU0NDljM2NmMDE5NDgKIAotYnVpbGRfb3B0aW9u cz0iZ2lyIgorYnVpbGRfb3B0aW9ucz0iZ2lyIGd0a19kb2MiCiBidWlsZF9vcHRpb25zX2RlZmF1 bHQ9ImdpciIKIAoraWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJYnVpbGRfb3B0aW9u c19kZWZhdWx0Kz0iIGd0a19kb2MiCitmaQorCiBsaWJldmluY2VfcGFja2FnZSgpIHsKIAlzaG9y dF9kZXNjKz0iIC0gcnVudGltZSBsaWJyYXJpZXMiCiAJcGtnX2luc3RhbGwoKSB7CkBAIC00MSw3 ICs0NSw5IEBAIGV2aW5jZS1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQog CQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgotCQl2bW92 ZSB1c3Ivc2hhcmUvZ3RrLWRvYworCQlpZiBbICIkYnVpbGRfb3B0aW9uX2d0a19kb2MiIF07IHRo ZW4KKwkJCXZtb3ZlIHVzci9zaGFyZS9ndGstZG9jCisJCWZpCiAJCWlmIFsgIiRidWlsZF9vcHRp b25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAogCQlmaQoKRnJvbSA2 MDZlYjMxYTQwYmVhYWU0MzVmYzU5M2I5NjA3N2Q0NWM0YTQxNGI3IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDc4LzEwMl0g ZmlsZS1yb2xsZXI6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9maWxlLXJvbGxlci90 ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZpbGUtcm9sbGVyL3RlbXBsYXRlIGIvc3Jj cGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZQppbmRleCAwMzYyMmEyMjMxMy4uZjg1NmMzMjQyMjkg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmlsZS1yb2xsZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9m aWxlLXJvbGxlci90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2ZpbGUtcm9sbGVyJwogcGtnbmFtZT1maWxlLXJvbGxlcgotdmVyc2lvbj0zLjM2LjAKK3ZlcnNp b249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRz PSJnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIgpAQCAtMTIsNiArMTIsNiBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0Fw cHMvRmlsZVJvbGxlciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWI5MTQ0ZGU4 ZjUzNmY1ODNlYzI5ZDcwM2MyYzE3MGJmMmQwMGM2YzE2NmNkNWUzZjdlZmFiZGE1NTFmMTA0NzgK K2NoZWNrc3VtPTcyM2QxYzZlNTY3ZDM1ZGFkNWVlZWFlYjg2YjhkMTg3MDU2NThlZTczZTBiM2I5 N2VhMTZhZGM3YTRkYzMzMWEKIAogQ0ZMQUdTPSItZmNvbW1vbiIKCkZyb20gOWE5MDdlNDBhYWVk ZjAwZmUyM2E2OTUyYTM0YTliNDE5YTI5MzIyNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3OS8xMDJdIGdub21lLWNhbGVu ZGFyOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxh dGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUKaW5kZXggOWM5MWM4YjVmNGQuLmQzYzc2Yjk3ZjBk IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS1jYWxlbmRhcicKIHBrZ25hbWU9Z25vbWUtY2FsZW5kYXIKLXZlcnNpb249 My4zNi4yCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhv c3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIHBrZy1jb25maWcgJCh2b3B0X2lmIGdp ciAnZ29iamVjdC1pbnRyb3NwZWN0aW9uJykiCkBAIC0xMyw3ICsxMyw3IEBAIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0Nh bGVuZGFyIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUt Y2FsZW5kYXIvcmF3L21hc3Rlci9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtn bmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tz dW09ZDBiMDUzNDVjMDU1NWEwODVlNmU1NDI2ZWFiNDk0OTRhYmEyODI2Yzg1NmViMDZmZDdmZGI3 NjJlYzBjNGMxZgorY2hlY2tzdW09YzM2ODQyNTJhNzJiYjU5MDg5ZDA3MTUxNDQ1OGE0YWViYTQx N2Y5NTUxZmY1ZDU0OGUxYTU5ODRlNDdiNDczMwogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWls ZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gN2JhNGRlY2VmYWQ5OTBhM2FjNjYyMTkyOTNj ZTBmZWU1NWRjNDMzMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMTY6NTE6NTUg KzAyMDAKU3ViamVjdDogW1BBVENIIDA4MC8xMDJdIGdub21lLW11c2ljOiB1cGRhdGUgdG8gMy4z OC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUgfCA5ICsrKysrLS0tLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1tdXNpYy90ZW1w bGF0ZQppbmRleCAxMjUxMTczNjQwNy4uODVhNzU2MTA1OWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z25vbWUtbXVzaWMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZQpA QCAtMSwxOSArMSwyMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbXVzaWMnCiBwa2du YW1lPWdub21lLW11c2ljCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9u PTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5k cz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJn bm9tZS1kZXNrdG9wLWRldmVsIGdyaWxvLWRldmVsIGxpYm1lZGlhYXJ0LWRldmVsCi0gcHl0aG9u My1nb2JqZWN0LWRldmVsIHB5dGhvbjMtZGJ1cyB0cmFja2VyLWRldmVsIGdub21lLW9ubGluZS1h Y2NvdW50cy1kZXZlbAorIHB5dGhvbjMtZ29iamVjdC1kZXZlbCBweXRob24zLWRidXMgdHJhY2tl cjMtZGV2ZWwgZ25vbWUtb25saW5lLWFjY291bnRzLWRldmVsCiAgbGliZGF6emxlLWRldmVsIGdy aWxvLXBsdWdpbnMgcHl0aG9uMy1jYWlyby1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11 dGlscyBweXRob24zLWRidXMgcHl0aG9uMy1nb2JqZWN0IHB5dGhvbjMtcmVxdWVzdHMKLSB0cmFj a2VyIHRyYWNrZXItbWluZXJzIGdzdC1wbHVnaW5zLWdvb2QxIGdyaWxvLXBsdWdpbnMgbGliZGF6 emxlIgorIHRyYWNrZXIzIHRyYWNrZXIzLW1pbmVycyBnc3QtcGx1Z2lucy1nb29kMSBncmlsby1w bHVnaW5zIGxpYmRhenpsZQorIGxpYm1lZGlhYXJ0Igogc2hvcnRfZGVzYz0iR05PTUUgbXVzaWMg cGxheWluZyBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvQXBwcy9NdXNpYyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTdiODBmNjMwZDE1ODMzNDkzNWE4NzYwMjk2NTUwY2M5MWI1MGQ2MDRmYTY4YjQwMmZl NTE2NWIxNTMxZWMzMzIKK2NoZWNrc3VtPTM3MGFhOTdlZTQ2MTBkMTFiNGI4ZjY5MWU1YzljZTMw ZmE1NTY2NTg3MGJmNmQ1ZjIzMTk2NThiZGZhY2Q3MDUKIGxpYjMyZGlzYWJsZWQ9eWVzCgpGcm9t IDM1ZWM2YmI3NGI2ZWM3NGUzZTlkNGU2ZmIzYmYwZjI5YjlkMzA3ZWEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjE1OjUwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODEvMTAy XSBnZWRpdDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgIHwg IDIgKy0KIHNyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUgfCAyMSArKysrKysrKysrLS0tLS0tLS0tLS0K IDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMWUzZGMzNmYzZTgu Ljg0YjQ3ZTFlOGM3IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxp YnMKQEAgLTM2ODMsNyArMzY4Myw3IEBAIGxpYnFodHRwZW5naW5lLnNvLjEgcWh0dHBlbmdpbmUt MS4wLjFfMQogbGlicW1kbnNlbmdpbmUuc28uMCBxbWRuc2VuZ2luZS0wLjEuMF8xCiBsaWJ5YW5n LnNvLjEgbGlieWFuZy0xLjByNV8xCiBsaWJodHAuc28uMiBsaWJodHAtMC41LjMwXzEKLWxpYmdl ZGl0LTMuMzYuc28gZ2VkaXQtMy4zNi4xXzEKK2xpYmdlZGl0LTMuMzguc28gZ2VkaXQtMy4zNy4z XzEKIGxpYmNoZXdpbmcuc28uMyBsaWJjaGV3aW5nLTAuNS4xXzEKIGxpYmR3YXJ2ZXMuc28uMSBw YWhvbGUtMS4xMl8xCiBsaWJkd2FydmVzX2VtaXQuc28uMSBwYWhvbGUtMS4xMl8xCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2dlZGl0L3RlbXBsYXRlIGIvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZQppbmRl eCA0ZTI3M2FhZjE4Mi4uZGMyZGU4YjRjNDggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2VkaXQvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNCBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ2VkaXQnCiBwa2duYW1lPWdlZGl0Ci12ZXJzaW9uPTMuMzYuMQor dmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5 bGU9bWVzb24KIHB5Y29tcGlsZV9kaXJzPSJ1c3IvbGliL2dlZGl0L3BsdWdpbnMiCi1jb25maWd1 cmVfYXJncz0iLURwbHVnaW5zPXRydWUgLUR2YXBpPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2Up Ci0gLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCitjb25maWd1cmVf YXJncz0iLURwbHVnaW5zPXRydWUKKyAkKHZvcHRfYm9vbCBnaXIgdmFwaSkgJCh2b3B0X2Jvb2wg Z2lyIGludHJvc3BlY3Rpb24pIgogaG9zdG1ha2VkZXBlbmRzPSJpdHN0b29sIHBrZy1jb25maWcg Z2xpYi1kZXZlbCBnZGstcGl4YnVmIHBlcmwgZ2V0dGV4dAotICQodm9wdF9pZiB2YWxhIHZhbGEp IgorICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3At c2NoZW1hcy1kZXZlbCBnc3BlbGwtZGV2ZWwgZ3Rrc291cmNldmlldzQtZGV2ZWwKICBsaWJwZWFz LWRldmVsIGxpYnNvdXAtZGV2ZWwgdGVwbC1kZXZlbCAkKHZvcHRfaWYgZ2lyICdweXRob24zLWdv YmplY3QtZGV2ZWwnKSIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBnc2V0dGluZ3MtZGVz a3RvcC1zY2hlbWFzIGlzby1jb2RlcyIKQEAgLTE3LDIzICsxNywyMiBAQCBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvR2VkaXQiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02ZGMzOGVkYTIyN2QxYzM2OGUwMzllOWJmZjQ4 NWQwYmVlOWE0OWQ1Zjk1NjBjMzg3ZWUwOGY1ODE4YTRlMzg3Ci1zaGxpYl9wcm92aWRlcz0ibGli Z2VkaXQtMy4zNi5zbyIKK2NoZWNrc3VtPTQ2Y2YwNjgwNmRlNThmNmU1ZTk1ZTM0ZmQ5OGFkMGIy YzBjNTBiM2RhZTZkMjNjYTU3ZDE2ZDVjYzQxODU2ZjgKK3NobGliX3Byb3ZpZGVzPSJsaWJnZWRp dC0zLjM4LnNvIgogcHl0aG9uX3ZlcnNpb249MwogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIK LWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCiti dWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogZ2VkaXQtZGV2ZWxfcGFja2FnZSgpIHsKLQlk ZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZ3Rrc291cmNldmll dy1kZXZlbCBsaWJwZWFzLWRldmVsIgorCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSBndGtzb3VyY2V2aWV3NC1kZXZlbAorCSBsaWJwZWFzLWRldmVsIHRlcGwt ZGV2ZWwiCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxs KCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQlp ZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dlZGl0 L2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2 bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gNDU0MmRkZWNmZjc1YjMwNWUwY2Fi NGQzZjhjNmFlYTNmMDYwYWFkMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6 MTg6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4Mi8xMDJdIGdlZGl0LXBsdWdpbnM6IHVwZGF0 ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlIHwgOCArKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dlZGl0LXBsdWdpbnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dlZGl0 LXBsdWdpbnMvdGVtcGxhdGUKaW5kZXggZjJmOTRlNjNmNTkuLmI3ODMzZGIxMmRlIDEwMDY0NAot LS0gYS9zcmNwa2dzL2dlZGl0LXBsdWdpbnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZWRpdC1w bHVnaW5zL3RlbXBsYXRlCkBAIC0xLDExICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn ZWRpdC1wbHVnaW5zJwogcGtnbmFtZT1nZWRpdC1wbHVnaW5zCi12ZXJzaW9uPTMuMzYuMgordmVy c2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBweWNvbXBpbGVfZGly cz0idXNyL2xpYi9nZWRpdC9wbHVnaW5zIgotaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWIt ZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEgYXBwc3RyZWFtLWdsaWIgcHl0aG9uMy1nb2Jq ZWN0Ci0gZ3VjaGFybWFwLWRldmVsIHZ0ZTMtZGV2ZWwiCitob3N0bWFrZWRlcGVuZHM9ImdldHRl eHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSBhcHBzdHJlYW0tZ2xpYgorIHB5 dGhvbjMtZ29iamVjdCBndWNoYXJtYXAtZGV2ZWwgdnRlMy1kZXZlbCIKIG1ha2VkZXBlbmRzPSJn ZWRpdC1kZXZlbCBndGtzb3VyY2V2aWV3NC1kZXZlbCBndGsrMy1kZXZlbCBsaWJnaXQyLWdsaWIt ZGV2ZWwKICBsaWJnbGliLWRldmVsIGxpYnBlYXMtZGV2ZWwgcHl0aG9uLWRidXMtZGV2ZWwgcHl0 aG9uMy1kZXZlbCB6ZWl0Z2Vpc3QtZGV2ZWwiCiBkZXBlbmRzPSJweXRob24zLWdvYmplY3QgZ3Vj aGFybWFwIHZ0ZTMiCkBAIC0xNCw1ICsxNCw1IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvYWN0aW9uL3Nob3cvQXBwcy9HZWRpdC9QbHVnaW5z TGlzdHMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xMTUxYjk1NTM5M2Y3NWI1 ZWU1OWI1MTE1NGZkYTRmMTkyOGY0OThmZTk4NmE1NTg0ZDNjZDQ0MDg3NmE2YWY2CitjaGVja3N1 bT1iZGEyYmQ1YWQ3ZWJkZDUzNWQxY2M2Yzg3MDBjMjk1ZGVjNjRiMjI3YzkxNzNjMGQyYmFlMDA2 NzUxNjI1OWZiCiBweXRob25fdmVyc2lvbj0zCgpGcm9tIGRjZDk3ZTRkMWYyOTQ5OWFjMzk5OGFi YmUyNmMzOTg3MTg1NjJmOTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjMz OjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODMvMTAyXSBnbm9tZS1sYXRleDogdXBkYXRlIHRv IDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlIHwgNiArKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1sYXRleC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVt cGxhdGUKaW5kZXggOTBkNjBiZTg2MGEuLjgzYTE2ZjlkNGEyIDEwMDY0NAotLS0gYS9zcmNwa2dz L2dub21lLWxhdGV4L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1sYXRleCcKIHBrZ25h bWU9Z25vbWUtbGF0ZXgKLXZlcnNpb249My4zMi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzgu MAorcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1nbnUtY29uZmln dXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLWFwcHN0cmVhbS11dGlsIC0tZGlzYWJsZS1k Y29uZi1taWdyYXRpb24KQEAgLTE1LDcgKzE1LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0dOT01FLUxhVGVYIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09MGYwNjljN2I0YzY3NTQyNTVhMWM3ZTNlM2IwNTA5MjVk ODA3NmY1NTQ1ODUyNmEzMGFiNTllMGE3ZDUyYWNjOQorY2hlY2tzdW09YTgyYTlmYzZmMDU2OTI5 ZWExOGQ2ZGZmZDEyMWU3MWIyYzIxNzY4ODA4Yzg2ZWYxZjM0ZGEwZjg2ZTIyMGQ3NwogCiBidWls ZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gMmQyMjk5 YzU0Y2Y1YzcxNTYwZTEwZWJlOGZhODk1NmI2MTJjZWE2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwg MTYgQXVnIDIwMjAgMDQ6MjM6MzMgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4NC8xMDJdIGJhb2Jh YjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZSB8IDQgKyst LQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmFvYmFiL3RlbXBsYXRl CmluZGV4IGEwMjhiZTRjZDViLi44ODIxNTUzNTZhNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9iYW9i YWIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdiYW9iYWInCiBwa2duYW1lPWJhb2JhYgotdmVyc2lvbj0z LjM0LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9z dG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcgaXRzdG9vbCBnbGliLWRldmVsIHZhbGEi CkBAIC0xMSw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHRkRMLTEuMS1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL2FjdGlvbi9zaG93L0FwcHMvRGlza1Vz YWdlQW5hbHl6ZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03Zjk4MWQ0ZjEz NWU0ZjgwZmJhM2Y2NmU4NmIwZWVlZGM5NGEyNDM0NjQ5MjYyZmYwMWE1ZjBjYjAyN2IyMGM1Citj aGVja3N1bT0wNDg0NjgxNDc4NjA4MTZiOTdmMTVkNTBiM2M4NGU5YWNmMDUzOWMxNDQxY2ZlYjYz NzAzZDExMmU4NzI4MzI5CgpGcm9tIGI0MDdiYWY1Y2JmOGY2MjcwMWYxZGQ5Zjk0Y2NiNzQyZWU4 MWMyZTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjMxOjUzICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwODUvMTAyXSBnbm9tZS1ib3hlczogdXBkYXRlIHRvIDMuMzguMAoKLS0t CiBzcmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlIHwgNyArKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z25vbWUtYm94ZXMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlCmluZGV4 IDBmYTJhZTc2YzcyLi5lNTFkMmQxOWE1ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1ib3hl cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlCkBAIC0xLDYgKzEs NiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtYm94ZXMnCiBwa2duYW1lPWdub21lLWJv eGVzCi12ZXJzaW9uPTMuMzYuNQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hl bHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KQEAgLTgsNyArOCw4IEBAIGhvc3RtYWtlZGVw ZW5kcz0iZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSBnbGliLWRldmVsIgogbWFrZWRl cGVuZHM9ImNsdXR0ZXItZ3RrLWRldmVsIGZyZWVyZHAtZGV2ZWwgZ3RrLXZuYy1kZXZlbCBsaWJh cmNoaXZlLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJndWRldi1kZXZlbCBsaWJvc2luZm8tZGV2 ZWwgbGlic2VjcmV0LWRldmVsIGxpYnNvdXAtZGV2ZWwKICBsaWJ1c2ItZGV2ZWwgbGlidmlydC1n bGliLWRldmVsIGxpYnhtbDItZGV2ZWwgc3BpY2UtZ3RrLWRldmVsIHNwaWNlLXByb3RvY29sCi0g dHJhY2tlci1kZXZlbCB2YWxhLWRldmVsIHdlYmtpdDJndGstZGV2ZWwgdnRlMy1kZXZlbCIKKyB0 cmFja2VyLWRldmVsIHZhbGEtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB2dGUzLWRldmVsIGd0a3Nv dXJjZXZpZXc0LWRldmVsCisgbGliaGFuZHktZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUt dXRpbHMgaGljb2xvci1pY29uLXRoZW1lIGxpYm9zaW5mbyBsaWJ2aXJ0LWdsaWIgcWVtdSB0cmFj a2VyIgogc2hvcnRfZGVzYz0iR05PTUUgMyBhcHBsaWNhdGlvbiB0byBhY2Nlc3MgcmVtb3RlIG9y IHZpcnR1YWwgc3lzdGVtcyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCkBAIC0xNiw0ICsxNyw0IEBAIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Cb3hlcyIKIGNoYW5nZWxvZz0i aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2dub21lLWJveGVzL2dub21l LTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv biUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjNTRjYWJlMzU1 ZTg3OGQwNDU3NTE3MzQ2ZTQyNDdhODYwYjY4ODM0MTNkM2JmNzc2ODFkY2QxMWVmNDFiY2UKK2No ZWNrc3VtPTY5NmI1OTlmYzIxYWY5NDE5NzU2NzkyMDVmMmIxMjljZmZhMDM2MzJjNDQ0ODEwZGQ5 NGIxNDA5ZDA0MWEzOGIKCkZyb20gNDEzZjQ3MzJlYWNjYTkyYmVhZTM5ZTA1ZmQ5ZGQ3MTMyNDc4 ZWUxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6MzU6MjQgKzAyMDAKU3Vi amVjdDogW1BBVENIIDA4Ni8xMDJdIGdub21lLWNhbGN1bGF0b3I6IHVwZGF0ZSB0byAzLjM4LjAK Ci0tLQogc3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmls ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1jYWxjdWxh dG9yL3RlbXBsYXRlCmluZGV4IDA2MjE0YjA4ZDliLi5kZTgxZTQ4OTY5ZSAxMDA2NDQKLS0tIGEv c3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY2Fs Y3VsYXRvci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2du b21lLWNhbGN1bGF0b3InCiBwa2duYW1lPWdub21lLWNhbGN1bGF0b3IKLXZlcnNpb249My4zNi4w Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBnZXR0ZXh0IGds aWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEiCkBAIC0xNCw0ICsxNCw0IEBAIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9B cHBzL0NhbGN1bGF0b3IiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50 LmNvbS9HTk9NRS9nbm9tZS1jYWxjdWxhdG9yL2dub21lLTMtMzIvTkVXUyIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPWEyZTgzMGY5Yzk4NTZmYWQ2NWRhZDFkNmMwYWU2YWJhZDBm MGI0OTZjOTk4NGFjMDA1MzE1YzVjYzQyMjBkYjMKK2NoZWNrc3VtPTkwMmUyM2ZmNTUwNjkyYjAy NDU5ZTE0ZDZlYmJhOGI2NzA2NjNhOWY0YWYwZDk4ZWU1MmZhZGVhODk1YjU3ZmUKCkZyb20gMzMy M2VhMDI4ZGEzMDQ2M2EwZWFkNGU0YjllNDI2N2YxNTcwYzAzMCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1 biwgMTYgQXVnIDIwMjAgMDQ6NDQ6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDA4Ny8xMDJdIGdu b21lLWRpc2stdXRpbGl0eTogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLWRp c2stdXRpbGl0eS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGlzay11 dGlsaXR5L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUKaW5k ZXggZGM2N2JiYmE3ODUuLjZlZjdiZTYxMDNlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWRp c2stdXRpbGl0eS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRpc2stdXRpbGl0eS90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWRpc2stdXRp bGl0eScKIHBrZ25hbWU9Z25vbWUtZGlzay11dGlsaXR5Ci12ZXJzaW9uPTMuMzYuMQotcmV2aXNp b249MgordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25m aWd1cmVfYXJncz0iLURsb2dpbmQ9bm9uZSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBn dGstZG9jIGludGx0b29sIHBrZy1jb25maWcgbGlieHNsdCIKQEAgLTEzLDUgKzEzLDUgQEAgbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0Rp c2tzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzkxYjE4ZjIzMWJjYmM2ZDk0 MWFmMzgzN2NhNWJlMTRmMjE1N2U1Y2UzZDMyYmRjNWI5ZWI4OTQ3ZTEyYjQxNAorY2hlY2tzdW09 NzczNGNlNjY4ZDllYzMxMjg2YWJkNzk0NGY5NTE5MDIxMDI4OGZiYzU0NzA0ZjA1YmM1NWNiZDAz NDBiNTIyMwogbGliMzJkaXNhYmxlZD15ZXMKCkZyb20gNjNhZjUzOGFjYjA1YzMxNDZmZjgzMTJh MmNiOWMyYjJiMjFjOWUwMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NDk6 MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4OC8xMDJdIGdub21lLXNjcmVlbnNob3Q6IHVwZGF0 ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlIHwgOCAr KysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUgYi9zcmNwa2dz L2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUKaW5kZXggOTljYWI2MmVlZTEuLmEzOTQ4M2JjNDM3 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnbm9tZS1zY3JlZW5zaG90JwogcGtnbmFtZT1nbm9tZS1zY3JlZW5zaG90 Ci12ZXJzaW9uPTMuMzYuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImFwcGRhdGEtdG9vbHMgZ2V0dGV4 dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJsaWJjYW5iZXJy YS1kZXZlbCIKK21ha2VkZXBlbmRzPSJsaWJjYW5iZXJyYS1kZXZlbCBsaWJoYW5keTEtZGV2ZWwi CiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJTY3JlZW5zaG90IGNh cHR1cmUgdXRpbGl0eSBmb3IgR05PTUUiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2NyZWVuc2hvdCIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPTMzNDk1ZDg5MjcwNzE3OTI1NGI3NDNmOGY3MGM5YTgy Y2RlNWM1ZjJjN2VhM2RiNjM0YTJiYTdlYTczMzEyNjYKK2NoZWNrc3VtPWU1NTZkM2RkMTM0ZDkx MzQ0ZDI4NTdjMDY2NDM0YmZiNjRmN2M4NWJkZWM3YmMzMzczOTM2NmI5YmNkMjlmYzAKCkZyb20g MTBhZDg2Zjg3MTEzMDU4NTVlNDljMWNiZjk1YzUwNDYyYzgxNGU5YSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTE6MDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4OS8xMDJd IGdub21lLXN5c3RlbS1tb25pdG9yOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25v bWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1z eXN0ZW0tbW9uaXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVt cGxhdGUKaW5kZXggZmYxMWIzNTkwYTQuLjUwNjAzNjY4N2M0IDEwMDY0NAotLS0gYS9zcmNwa2dz L2dub21lLXN5c3RlbS1tb25pdG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc3lzdGVt LW1vbml0b3IvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn bm9tZS1zeXN0ZW0tbW9uaXRvcicKIHBrZ25hbWU9Z25vbWUtc3lzdGVtLW1vbml0b3IKLXZlcnNp b249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24K IGNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWQ9ZmFsc2UiCkBAIC0xMSw0ICsxMSw0IEBAIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9TeXN0 ZW1Nb25pdG9yIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9u JS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODY2YjQ3YWIwZjRj NzViMGVjNTdkNjMwMDMzN2E3MzczNDYzYWFhZDVkZjk1ZWRkZmU1MzU0YzIyYmU3YmNhMQorY2hl Y2tzdW09NzNiZjdhYjRkNTUwM2MyNTY3ZDc2ZjgzMWM5YWUzZmUyN2MzMTQ5NTc2MTg4OWFkM2Iz NTFlZjRjMDY4YWZmNAoKRnJvbSA1NTY1ZGJiOWQ4ODJkZTI4NjA3NGQ4Njc3OTZkNjA3YzFjMjMz MjZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAxODoyNDowMiArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDkwLzEwMl0gYWR3YWl0YS1pY29uLXRoZW1lOiB1cGRhdGUgdG8gMy4zOC4w LCBkcm9wIG5vYXJjaAoKLS0tCiBzcmNwa2dzL2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZSB8 IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlCmluZGV4IGZlYmQyOTE1YmU2Li44ZGRj ZGU5Yjc4NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUKQEAgLTEsOCArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhZHdhaXRhLWljb24tdGhlbWUnCiBwa2duYW1lPWFkd2Fp dGEtaWNvbi10aGVtZQotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTIKLWFyY2hzPW5vYXJjaAor dmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKIGRlcGVuZHM9ImxpYnJzdmciCkBAIC0xMSw0ICsx MCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJMR1BMLTMuMC1vci1sYXRlciwgQ0MtQlktU0EtMy4wIgogaG9tZXBhZ2U9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9hZHdhaXRhLWljb24tdGhlbWUiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1lNDk4NTE4NjI3MDQ0ZGZkN2RiN2Q3OWE1YjNkNDM3ODQ4 Y2FmMTk5MWVmNGVmMDM2YTJkM2EyYWMyYzFmMTRkCitjaGVja3N1bT02NjgzYTFhYWYyNDMwY2Nk OWVhNjM4ZGQ0YmZlMTAwMmJjOTJiNDEyMDUwYzNkYmEyMGU0ODBmOTc5ZmFhZjk3CgpGcm9tIDYw OGJkYmUyZmQ5NTBhMDBlOTYwMDlkMzNiYzNmZjY1MDQxYzJjNTAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBT dW4sIDE2IEF1ZyAyMDIwIDE5OjU3OjQzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTEvMTAyXSBn bm9tZS1iYWNrZ3JvdW5kczogdXBkYXRlIHRvIDMuMzguMCwgZHJvcCBub2FyY2gKCi0tLQogc3Jj cGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZSB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dub21lLWJhY2tncm91bmRzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90 ZW1wbGF0ZQppbmRleCAwYjFlZTQyNzM1My4uMGZhYzBiYjNiZWUgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ25vbWUtYmFja2dyb3VuZHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1iYWNrZ3Jv dW5kcy90ZW1wbGF0ZQpAQCAtMSw4ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21l LWJhY2tncm91bmRzJwogcGtnbmFtZT1nbm9tZS1iYWNrZ3JvdW5kcwotdmVyc2lvbj0zLjM2LjAK LXJldmlzaW9uPTIKLWFyY2hzPW5vYXJjaAordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9Z2V0dGV4dAogc2hvcnRfZGVzYz0iU2V0 IG9mIGJhY2tncm91bmQgaW1hZ2VzIGZvciB0aGUgR05PTUUgRGVza3RvcCIKQEAgLTEwLDQgKzks NCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgQ0MtQlktMi4wLCBDQy1CWS1TQS0yLjAsIENDLUJZLVNB LTMuMCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYmFj a2dyb3VuZHMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iOGNiODFlNGNmOWQw ODVmYmIyMzU0MDYzNWI0OTJkNWMxMjRhMWY4NjExYzJhYTlhYzYzODQxMTFkNzdiYjBiCitjaGVj a3N1bT1mNzcxMmE4NzNhODBjOWE5ZmNmMzk1MjYxMWVmZmViMmQ5YWVkMjNhM2U4YWJmY2RhOGFm YjE1YzQyN2QxZWUzCgpGcm9tIDgyOWUzNDMyN2IxOTQ0OTUzMDI3YTgyYzAxNmFlYmYwMTU2Y2E2 NmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjIzOjI0ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwOTIvMTAyXSBzaW1wbGUtc2NhbjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBz cmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlIHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2lt cGxlLXNjYW4vdGVtcGxhdGUgYi9zcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlCmluZGV4IDRh ZTNiODY0M2ZkLi5jNjE3YzlmMTVkMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9zaW1wbGUtc2Nhbi90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlCkBAIC0xLDcgKzEsNiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnc2ltcGxlLXNjYW4nCiBwa2duYW1lPXNpbXBsZS1zY2Fu Ci1fZ25vbWVfdmVyc2lvbj0zLjM2Ci12ZXJzaW9uPTMuMzYuNAordmVyc2lvbj0zLjM4LjAKIHJl dmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xp Yi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSIKQEAgLTExLDUgKzEwLDUgQEAgc2hvcnRf ZGVzYz0iR1RLIFNpbXBsZSBzY2FubmluZyB1dGlsaXR5IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3NpbXBsZS1zY2FuIgotZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHtfZ25vbWVfdmVyc2lvbn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTU2YWYxODI5MWE3NzYzZjc2M2RhNWYw ZWRlZDI0N2QyZjhlYmY5MTEyYzI4NmVmODkwMTMzNzQ5NjlmZWY1MjUKK2Rpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKK2NoZWNrc3VtPTQzNTZhZmZkMDM1ZjAxYTU3YjE4MjE5OWVmZmQ5ODA4NzAwZWZj Y2I0OThiZGM4MzY3YmYwOWJjZTQwNGMzMTEKCkZyb20gYzk3M2UzYTc3NTIzNmY4YjI1Y2VhYjk4 Y2QyNDVjNGJlZTM4YTUzYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MjA6 NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDA5My8xMDJdIHJ5Z2VsOiB1cGRhdGUgdG8gMC40MC4w CgotLS0KIHNyY3BrZ3MvcnlnZWwvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcnlnZWwvdGVtcGxhdGUgYi9zcmNwa2dzL3J5Z2VsL3RlbXBsYXRlCmluZGV4IGQyOGRiYzJj ZTA4Li42NTE0OTc1MWY1YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL3J5Z2VsL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIyIEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdyeWdlbCcKIHBrZ25hbWU9cnlnZWwKLXZlcnNpb249MC4zOC4zCi1yZXZpc2lvbj0y Cit2ZXJzaW9uPTAuNDAuMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hl bHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EZXhhbXBsZXM9ZmFsc2UgLUR0ZXN0cz1mYWxz ZQogIC1Ec3lzdGVtZC11c2VyLXVuaXRzLWRpcj1ub25lIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGdsaWItZGV2ZWwgdmFsYSIKIG1ha2VkZXBlbmRzPSJzcWxpdGUtZGV2ZWwgZ3RrKzMt ZGV2ZWwgbGlic291cC1kZXZlbCBsaWJnZWUwOC1kZXZlbAotIGd1cG5wLWF2LWRldmVsIGd1cG5w LWRsbmEtZGV2ZWwgdHJhY2tlci1kZXZlbCBsaWJtZWRpYWFydC1kZXZlbAotIGdzc2RwLWRldmVs IgorIGd1cG5wLWF2LWRldmVsIGd1cG5wLWRsbmEtZGV2ZWwgdHJhY2tlci1kZXZlbCB0cmFja2Vy My1kZXZlbAorIGxpYm1lZGlhYXJ0LWRldmVsIGdzc2RwLWRldmVsIGdzdDEtZWRpdGluZy1zZXJ2 aWNlcy1kZXZlbCIKIGRlcGVuZHM9ImhpY29sb3ItaWNvbi10aGVtZSBkZXNrdG9wLWZpbGUtdXRp bHMiCiBzaG9ydF9kZXNjPSJHTk9NRSBob21lIG1lZGlhIHNvbHV0aW9uIgogbWFpbnRhaW5lcj0i T3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvUnlnZWwiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wOGMyMWE1NzdmN2JkYWQyNjQ0NmE3NWZm YTMyNzc4YjI2ODQyYzNiMTE4ODE2NWYwYjE5ODE4NTU5NzQ3ZDAwCitjaGVja3N1bT1kNjdlY2M4 MzRlZDA2MDMzN2U4ZmFiOGNiNTVhNGYzZDBjMGNjZTQ0NTdlMGNkMzA3OTAzYTI1MzlmNmUyYjc3 CiAKIGNvbmZfZmlsZXM9Ii9ldGMvcnlnZWwuY29uZiIKIAoKRnJvbSBmYzllZTg1NmZiZmZjODA2 MmE1MGY3Mzg4YWY3MDNlZjlhNDM0ODQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAy MCAwNToyMzozOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDk0LzEwMl0gZ25vbWUtYnVpbGRlcjog dXBkYXRlIHRvIDMuMzguMAoKLS0tCiAuLi4vZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDIt MS4wLjAucGF0Y2ggfCAgMjIgLS0KIHNyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29u MDUyLnBhdGNoICB8IDMzNCAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvZ25vbWUtYnVpbGRl ci90ZW1wbGF0ZSAgICAgICAgICAgICAgICB8ICAxNSArLQogMyBmaWxlcyBjaGFuZ2VkLCAxMCBp bnNlcnRpb25zKCspLCAzNjEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRj aCBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiOWI0YTJiZjFhLi4wMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotY29tbWl0IDQ0MTM2YTJlNWM1MjYyM2IwZTYyYzM4 ODQ2ZjUxMWYzMDc2MTVjZTIKLUF1dGhvcjogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KLURh dGU6ICAgU3VuIE1heSAzIDE5OjUyOjA5IDIwMjAgKzAyMDAKLQotICAgIGZpeCBidWlsZCB3aXRo IGxpYmdpdDItMS4wLjAKLQotZGlmZiAtLWdpdCBhL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBj LWdpdC1yZXBvc2l0b3J5LWltcGwuYyBiL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1y ZXBvc2l0b3J5LWltcGwuYwotaW5kZXggN2YwMTA0Mi4uMmNjYzRkZiAxMDA2NDQKLS0tLSBhL3Ny Yy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYwotKysrIGIvc3Jj L3BsdWdpbnMvZ2l0L2RhZW1vbi9pcGMtZ2l0LXJlcG9zaXRvcnktaW1wbC5jCi1AQCAtMzMsMTEg KzMzLDcgQEAKLSAjaW5jbHVkZSAiaXBjLWdpdC10eXBlcy5oIgotICNpbmNsdWRlICJpcGMtZ2l0 LXV0aWwuaCIKLSAKLS0jaWYgTElCR0lUMl9TT1ZFUlNJT04gPj0gMjgKLSBHX0RFRklORV9BVVRP X0NMRUFOVVBfQ0xFQVJfRlVOQyAoZ2l0X2J1ZiwgZ2l0X2J1Zl9kaXNwb3NlKQotLSNlbHNlCi0t R19ERUZJTkVfQVVUT19DTEVBTlVQX0NMRUFSX0ZVTkMgKGdpdF9idWYsIGdpdF9idWZfZnJlZSkK LS0jZW5kaWYKLSAKLSB0eXBlZGVmIGVudW0KLSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9w YXRjaGVzL21lc29uMDUyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OGMy OGU4MmMxZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMv bWVzb24wNTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMzQgKzAsMCBAQAotRnJvbSBjOGI4 NjJiNDkxY2ZiYmI0Zjc5YjI0ZDdjZDkwZTRmYjFmMzdjYjlmIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogRGllZ28gRXNjYWxhbnRlIFVycmVsbyA8ZGllZ29lQGdub21lLm9yZz4KLURh dGU6IEZyaSwgMjUgT2N0IDIwMTkgMDQ6NDk6MTUgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gV0lQ OiBidWlsZDogRml4IGxpbmtfd2hvbGUgdXNhZ2UgZm9yIG1lc29uIDAuNTIuMAotCi1NZXNvbiAw LjUyLjAgY2hhbmdlZCBob3cgbGlua193aG9sZSBiZWhhdmVzIGFuZCBpbiBkb2luZyBzbyBicm9r ZSBvdXIKLXVzYWdlIG9mIGxpbmtfd2hvbGUgaW50ZXJuYWxseS4KLQotQSBxdWljayBnbGFuY2Ug b3ZlciBtZXNvbmJ1aWxkL2JhY2tlbmQvbmluamFiYWNrZW5kLnB5IHNlZW1zIHRvIGNvbmZpcm0K LUNocmlzdGlhbidzIHN1c3BpY2lvbiB0aGF0IGxpbmtfd2l0aCBpcyB3aGF0IHdlIHdhbnQgZm9y IGludGVybmFsIHVzZSwKLWFuZCBsaW5rX3dob2xlIGZvciB0aGUgZmluYWwgYmluYXJ5LgotCi1Z b3UgY2FuIHNlZSBzb21lIG1vcmUgcmVmZXJlbmNlcyB0byB0aGlzIGFuZCBzaW1pbGFyIGlzc3Vl cyBpbiB0aGUKLWZvbGxvd2luZyBqaGJ1aWxkIGNvbW1pdDoKLWh0dHBzOi8vZ2l0bGFiLmdub21l Lm9yZy9HTk9NRS9qaGJ1aWxkL2NvbW1pdC9kYmU2NzkwNDVmZjU5ODI1NzdmMjJlN2FmOGRjOGZk ZmJkMWM2MzExCi0KLUZpeGVzOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUt YnVpbGRlci9pc3N1ZXMvMTA1NwotLS0tCi0gc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkICAg ICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2NvcmUvbWVzb24uYnVpbGQgICAgICAgfCAgMiArLQot IHNyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQgICB8ICAyICstCi0gc3JjL2xpYmlkZS9l ZGl0b3IvbWVzb24uYnVpbGQgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24u YnVpbGQgICAgfCAgMiArLQotIHNyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZCAgICB8ICAy ICstCi0gc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQgICAgICAgIHwgIDIgKy0KLSBzcmMvbGli aWRlL2lvL21lc29uLmJ1aWxkICAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvbHNwL21lc29u LmJ1aWxkICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9wbHVnaW5zL21lc29uLmJ1aWxkICAg IHwgIDIgKy0KLSBzcmMvbGliaWRlL3Byb2plY3RzL21lc29uLmJ1aWxkICAgfCAgMiArLQotIHNy Yy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9zb3Vy Y2V2aWV3L21lc29uLmJ1aWxkIHwgIDIgKy0KLSBzcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1 aWxkICAgfCAgMiArLQotIHNyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkICAgICB8ICAyICst Ci0gc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQgIHwgIDIgKy0KLSBzcmMvbGliaWRl L3RyZWUvbWVzb24uYnVpbGQgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvdmNzL21lc29uLmJ1 aWxkICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQgICAgIHwg IDIgKy0KLSBzcmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgfCAyNiArKysrKysrKysr KysrKysrKysrKysrKysrLQotIDIwIGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDIw IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxk IGIvc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkCi1pbmRleCBkZGFjZGMxNjIuLjFhNGZjNWQy NiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xp YmlkZS9jb2RlL21lc29uLmJ1aWxkCi1AQCAtMTc1LDcgKzE3NSw3IEBAIGxpYmlkZV9jb2RlID0g c3RhdGljX2xpYnJhcnkoJ2lkZS1jb2RlLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRl X2NvZGVfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczog bGliaWRlX2NvZGVfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2NvZGVfZ2VuZXJhdGVkX2hlYWRl cnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfY29kZV9kZXBzLAotLSAgICAgICAg ICAgbGlua193aG9sZTogbGliaWRlX2NvZGUsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJp ZGVfY29kZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4n KSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkIGIvc3Jj L2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkCi1pbmRleCAxZmE4MmZhZDkuLmJiNzVjYmYyNiAxMDA2 NDQKLS0tLSBhL3NyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9j b3JlL21lc29uLmJ1aWxkCi1AQCAtMTE3LDcgKzExNyw3IEBAIGxpYmlkZV9jb3JlID0gc3RhdGlj X2xpYnJhcnkoJ2lkZS1jb3JlLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9jb3JlX3Nv dXJjCi0gbGliaWRlX2NvcmVfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAg ICAgc291cmNlczogbGliaWRlX2NvcmVfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2NvcmVfZ2Vu ZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfY29yZV9kZXBz LAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2NvcmUsCi0rICAgICAgICAgICAgbGlu a193aXRoOiBsaWJpZGVfY29yZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGly ZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9kZWJ1Z2dlci9t ZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQKLWluZGV4IGRmZmNh MjBjYS4uYjVlNzJkNWMwIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5i dWlsZAotKysrIGIvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZAotQEAgLTg0LDcgKzg0 LDcgQEAgbGliaWRlX2RlYnVnZ2VyID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1kZWJ1Z2dlci0nICsg bGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV9kZWJ1Z2dlcl9kZXAgPSBkZWNsYXJlX2RlcGVu ZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZGVidWdnZXJfcHJpdmF0ZV9o ZWFkZXJzICsgbGliaWRlX2RlYnVnZ2VyX2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRl cGVuZGVuY2llczogbGliaWRlX2RlYnVnZ2VyX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xl OiBsaWJpZGVfZGVidWdnZXIsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZGVidWdn ZXIsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0g KQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkIGIvc3JjL2xp YmlkZS9lZGl0b3IvbWVzb24uYnVpbGQKLWluZGV4IDI4Mzg0MjViNy4uODA4ZWQ3ODRmIDEwMDY0 NAotLS0tIGEvc3JjL2xpYmlkZS9lZGl0b3IvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUv ZWRpdG9yL21lc29uLmJ1aWxkCi1AQCAtMTA3LDcgKzEwNyw3IEBAIGxpYmlkZV9lZGl0b3IgPSBz dGF0aWNfbGlicmFyeSgnaWRlLWVkaXRvci0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVf ZWRpdG9yCi0gCi0gbGliaWRlX2VkaXRvcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAg ICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfZWRpdG9yX2RlcHMsCi0tICAgICAgICAgICBsaW5r X3dob2xlOiBsaWJpZGVfZWRpdG9yLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2Vk aXRvciwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwK LSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9lZGl0b3JfZ2VuZXJhdGVkX2hlYWRlcnMs Ci0gKQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZCBiL3NyYy9s aWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZAotaW5kZXggMjI2Mzk3YzE1Li5kNDg3OGFhMTEgMTAw NjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJp ZGUvZm91bmRyeS9tZXNvbi5idWlsZAotQEAgLTE3OCw3ICsxNzgsNyBAQCBsaWJpZGVfZm91bmRy eSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtZm91bmRyeS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAot IAotIGxpYmlkZV9mb3VuZHJ5X2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBk ZXBlbmRlbmNpZXM6IGxpYmlkZV9mb3VuZHJ5X2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xl OiBsaWJpZGVfZm91bmRyeSwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9mb3VuZHJ5 LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICAg ICAgICAgICAgICAgc291cmNlczogbGliaWRlX2ZvdW5kcnlfZ2VuZXJhdGVkX2hlYWRlcnMsCi0g KQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZCBiL3NyYy9saWJp ZGUvZ3JlZXRlci9tZXNvbi5idWlsZAotaW5kZXggMzk2OGNhNDFlLi4xMjFkNDk4ZDAgMTAwNjQ0 Ci0tLS0gYS9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUv Z3JlZXRlci9tZXNvbi5idWlsZAotQEAgLTgzLDcgKzgzLDcgQEAgbGliaWRlX2dyZWV0ZXIgPSBz dGF0aWNfbGlicmFyeSgnaWRlLWdyZWV0ZXItJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJp ZGVfZ3JlZXRlcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3Vy Y2VzOiBsaWJpZGVfZ3JlZXRlcl9wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfZ3JlZXRlcl9nZW5l cmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9ncmVldGVyX2Rl cHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZ3JlZXRlciwKLSsgICAgICAgICAg ICBsaW5rX3dpdGg6IGxpYmlkZV9ncmVldGVyLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5j bHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2d1 aS9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkCi1pbmRleCA5ZjQ2OWQy ZmEuLjk0MzExMjgyZiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkCi0r KysgYi9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAotQEAgLTIwNCw3ICsyMDQsNyBAQCBsaWJp ZGVfZ3VpID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1ndWktJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwg bGliaWRlX2d1aV9zb3VyY2VzLAotIGxpYmlkZV9ndWlfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5 KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2d1aV9wcml2YXRlX2hlYWRlcnMgKyBs aWJpZGVfZ3VpX2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGli aWRlX2d1aV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2d1aSwKLSsgICAg ICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9ndWksCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBp bmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUv aW8vbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkCi1pbmRleCBiNWI2ZjRj NjguLmY0OGIzYmQ4ZCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQKLSsr KyBiL3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQKLUBAIC02Myw3ICs2Myw3IEBAIGxpYmlkZV9p byA9IHN0YXRpY19saWJyYXJ5KCdpZGUtaW8tJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRl X2lvX3NvdXJjZXMsCi0gCi0gbGliaWRlX2lvX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAg ICAgICAgICBkZXBlbmRlbmNpZXM6IFsgbGliZ2lvX2RlcCwgbGliaWRlX2NvcmVfZGVwLCBsaWJp ZGVfdGhyZWFkaW5nX2RlcCBdLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2lvLAot KyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2lvLAotICAgaW5jbHVkZV9kaXJlY3Rvcmll czogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGli aWRlL2xzcC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxkCi1pbmRleCAy M2FiYTc0ZmEuLmM4MTQwY2EwMyAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvbHNwL21lc29uLmJ1 aWxkCi0rKysgYi9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZAotQEAgLTg0LDcgKzg0LDcgQEAg bGliaWRlX2xzcCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtbHNwLScgKyBsaWJpZGVfYXBpX3ZlcnNp b24sIGxpYmlkZV9sc3Bfc291cmNlcywKLSBsaWJpZGVfbHNwX2RlcCA9IGRlY2xhcmVfZGVwZW5k ZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9sc3BfcHJpdmF0ZV9oZWFkZXJz LAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2xzcF9kZXBzLAotLSAgICAgICAgICAg bGlua193aG9sZTogbGliaWRlX2xzcCwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9s c3AsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0g KQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZCBiL3NyYy9s aWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZAotaW5kZXggYTMzYzUyOGM5Li5mZmY1OTlkYjMgMTAw NjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJp ZGUvcGx1Z2lucy9tZXNvbi5idWlsZAotQEAgLTUxLDcgKzUxLDcgQEAgbGliaWRlX3BsdWdpbnMg PSBzdGF0aWNfbGlicmFyeSgnaWRlLXBsdWdpbnMtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBs aWJpZGVfcGx1Z2luc19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBz b3VyY2VzOiBsaWJpZGVfcGx1Z2luc19wcml2YXRlX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5k ZW5jaWVzOiBsaWJpZGVfcGx1Z2luc19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGli aWRlX3BsdWdpbnMsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfcGx1Z2lucywKLSAg IGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1k aWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUv cHJvamVjdHMvbWVzb24uYnVpbGQKLWluZGV4IDQ2M2ZmMDZiYy4uM2NjOTcyNWM2IDEwMDY0NAot LS0tIGEvc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9w cm9qZWN0cy9tZXNvbi5idWlsZAotQEAgLTc5LDcgKzc5LDcgQEAgbGliaWRlX3Byb2plY3RzID0g c3RhdGljX2xpYnJhcnkoJ2lkZS1wcm9qZWN0cy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJp ZGVfcHIKLSBsaWJpZGVfcHJvamVjdHNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAg ICAgICAgICAgc291cmNlczogbGliaWRlX3Byb2plY3RzX3ByaXZhdGVfaGVhZGVycywKLSAgICAg ICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9wcm9qZWN0c19kZXBzLAotLSAgICAgICAgICAgbGlu a193aG9sZTogbGliaWRlX3Byb2plY3RzLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRl X3Byb2plY3RzLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rvcmllcygn LicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZCBi L3NyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkCi1pbmRleCBlNWIzYjQzYWIuLmNmNzNhYTkx ZCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkCi0rKysgYi9zcmMv bGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZAotQEAgLTUxLDcgKzUxLDcgQEAgbGliaWRlX3NlYXJj aCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtc2VhcmNoLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxp YmlkZV9zZWFyY2gKLSAKLSBsaWJpZGVfc2VhcmNoX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgK LSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9zZWFyY2hfZGVwcywKLS0gICAgICAgICAg IGxpbmtfd2hvbGU6IGxpYmlkZV9zZWFyY2gsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJp ZGVfc2VhcmNoLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rvcmllcygn LicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVp bGQgYi9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQKLWluZGV4IGM0YmExMmQxZi4u OTk2NDEyOThiIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxk Ci0rKysgYi9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQKLUBAIC0xNTgsNyArMTU4 LDcgQEAgbGliaWRlX3NvdXJjZXZpZXcgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXNvdXJjZXZpZXct JyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfc291cmNldmlld19kZXAgPSBkZWNsYXJl X2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfc291cmNldmlld19w cml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfc291cmNldmlld19nZW5lcmF0ZWRfaGVhZGVycywKLSAg ICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9zb3VyY2V2aWV3X2RlcHMsCi0tICAgICAgICAg ICBsaW5rX3dob2xlOiBsaWJpZGVfc291cmNldmlldywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6 IGxpYmlkZV9zb3VyY2V2aWV3LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJl Y3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3Rlcm1pbmFsL21l c29uLmJ1aWxkIGIvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZAotaW5kZXggMWQ3Yzlm NzI3Li42YWZmY2FlMTQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1 aWxkCi0rKysgYi9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkCi1AQCAtOTMsNyArOTMs NyBAQCBsaWJpZGVfdGVybWluYWwgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRlcm1pbmFsLScgKyBs aWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3Rlcm1pbmFsX2RlcCA9IGRlY2xhcmVfZGVwZW5k ZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90ZXJtaW5hbF9nZW5lcmF0ZWRf aGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90ZXJtaW5hbF9kZXBzLAot LSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3Rlcm1pbmFsLAotKyAgICAgICAgICAgIGxp bmtfd2l0aDogbGliaWRlX3Rlcm1pbmFsLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVk ZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3RoZW1l cy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkCi1pbmRleCA5ZDZj OGUyNDcuLmQ4ODNhNGI4NiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1 aWxkCi0rKysgYi9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZAotQEAgLTQ2LDcgKzQ2LDcg QEAgbGliaWRlX3RoZW1lcyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdGhlbWVzLScgKyBsaWJpZGVf YXBpX3ZlcnNpb24sCi0gbGliaWRlX3RoZW1lc19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0g ICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGhlbWVzX3Jlc291cmNlc1sxXSwKLSAgICAg ICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90aGVtZXNfZGVwcywKLS0gICAgICAgICAgIGxpbmtf d2hvbGU6IGxpYmlkZV90aGVtZXMsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfdGhl bWVzLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAot ICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZCBiL3Ny Yy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi1pbmRleCBkMzhkZGZiNjQuLmQ2MjhiZTJm ZiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi0rKysgYi9z cmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAotQEAgLTY2LDcgKzY2LDcgQEAgbGliaWRl X3RocmVhZGluZyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdGhyZWFkaW5nLScgKyBsaWJpZGVfYXBp X3ZlcnNpb24sIGxpYmlkZV8KLSBsaWJpZGVfdGhyZWFkaW5nX2RlcCA9IGRlY2xhcmVfZGVwZW5k ZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90aHJlYWRpbmdfcHJpdmF0ZV9o ZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3RocmVhZGluZ19kZXBzLAot LSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3RocmVhZGluZywKLSsgICAgICAgICAgICBs aW5rX3dpdGg6IGxpYmlkZV90aHJlYWRpbmcsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNs dWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdHJl ZS9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZAotaW5kZXggN2I5OTIy ODI4Li41YTU5MTEwNmMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQK LSsrKyBiL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZAotQEAgLTYxLDcgKzYxLDcgQEAgbGli aWRlX3RyZWUgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRyZWUtJyArIGxpYmlkZV9hcGlfdmVyc2lv biwgbGliaWRlX3RyZWVfc291cmMKLSBsaWJpZGVfdHJlZV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVu Y3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdHJlZV9wcml2YXRlX2hlYWRlcnMs Ci0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdHJlZV9kZXBzLAotLSAgICAgICAgICAg bGlua193aG9sZTogbGliaWRlX3RyZWUsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVf dHJlZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwK LSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQgYi9zcmMvbGli aWRlL3Zjcy9tZXNvbi5idWlsZAotaW5kZXggNmIwZTE1N2M0Li5jNzYyYWZiNjQgMTAwNjQ0Ci0t LS0gYS9zcmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS92Y3MvbWVz b24uYnVpbGQKLUBAIC04NCw3ICs4NCw3IEBAIGxpYmlkZV92Y3MgPSBzdGF0aWNfbGlicmFyeSgn aWRlLXZjcy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIAotIGxpYmlkZV92Y3NfZGVwID0gZGVj bGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3Zjc19kZXBz LAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3ZjcywKLSsgICAgICAgICAgICBsaW5r X3dpdGg6IGxpYmlkZV92Y3MsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVj dG9yaWVzKCcuJyksCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdmNzX2dlbmVyYXRl ZF9oZWFkZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWls ZCBiL3NyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkCi1pbmRleCBlMTc2N2FlNDYuLmZjZTQ3 N2IzNiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkCi0rKysgYi9z cmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZAotQEAgLTM5LDcgKzM5LDcgQEAgbGliaWRlX3dl YmtpdCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtd2Via2l0LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24s IGxpYmlkZV93ZWJraXQKLSAKLSBsaWJpZGVfd2Via2l0X2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5j eSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV93ZWJraXRfZGVwcywKLS0gICAgICAg ICAgIGxpbmtfd2hvbGU6IGxpYmlkZV93ZWJraXQsCi0rICAgICAgICAgICAgbGlua193aXRoOiBs aWJpZGVfd2Via2l0LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rvcmll cygnLicpLAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3dlYmtpdF9nZW5lcmF0ZWRf aGVhZGVycywKLSApCi1kaWZmIC0tZ2l0IGEvc3JjL21lc29uLmJ1aWxkIGIvc3JjL21lc29uLmJ1 aWxkCi1pbmRleCAzZWI5YmE1MzUuLjExM2ExNDJhZCAxMDA2NDQKLS0tLSBhL3NyYy9tZXNvbi5i dWlsZAotKysrIGIvc3JjL21lc29uLmJ1aWxkCi1AQCAtNDgsNiArNDgsMzAgQEAgZ25vbWVfYnVp bGRlcl9kZXBzID0gWwotICAgbGliaWRlX3RyZWVfZGVwLAotIF0KLSAKLStnbm9tZV9idWlsZGVy X3N0YXRpYyA9IFsKLSsgIGxpYmlkZV9jb2RlLAotKyAgbGliaWRlX2NvcmUsCi0rICBsaWJpZGVf ZGVidWdnZXIsCi0rICBsaWJpZGVfZWRpdG9yLAotKyAgbGliaWRlX2ZvdW5kcnksCi0rICBsaWJp ZGVfZ3JlZXRlciwKLSsgIGxpYmlkZV9ndWksCi0rICBsaWJpZGVfaW8sCi0rICBsaWJpZGVfbHNw LAotKyAgbGliaWRlX3BsdWdpbnMsCi0rICBsaWJpZGVfcHJvamVjdHMsCi0rICBsaWJpZGVfc2Vh cmNoLAotKyAgbGliaWRlX3NvdXJjZXZpZXcsCi0rICBsaWJpZGVfdGVybWluYWwsCi0rICBsaWJp ZGVfdGhlbWVzLAotKyAgbGliaWRlX3RocmVhZGluZywKLSsgIGxpYmlkZV90cmVlLAotKyAgbGli aWRlX3ZjcywKLSsgIGxpYmlkZV93ZWJraXQsCi0rCi0rICBwbHVnaW5zLAotK10KLSsKLSBpZiBs aWJzeXNwcm9mX2NhcHR1cmUuZm91bmQoKQotICAgZ25vbWVfYnVpbGRlcl9kZXBzICs9IGxpYnN5 c3Byb2ZfY2FwdHVyZQotIGVuZGlmCi1AQCAtNzcsNyArMTAxLDcgQEAgZ25vbWVfYnVpbGRlciA9 IGV4ZWN1dGFibGUoJ2dub21lLWJ1aWxkZXInLCAnbWFpbi5jJywgJ2J1Zy1idWRkeS5jJywKLSAg ICAgICAgICAgICBjX2FyZ3M6IGxpYmlkZV9hcmdzICsgZXhlX2NfYXJncyArIHJlbGVhc2VfYXJn cywKLSAgICAgICAgICBsaW5rX2FyZ3M6IGV4ZV9saW5rX2FyZ3MsCi0gICAgICAgICAgICAgICAg cGllOiB0cnVlLAotLSAgICAgICAgbGlua193aG9sZTogcGx1Z2lucywKLSsgICAgICAgIGxpbmtf d2hvbGU6IGdub21lX2J1aWxkZXJfc3RhdGljLAotICAgICAgaW5zdGFsbF9ycGF0aDogcGtnbGli ZGlyX2FicywKLSAgICAgICBkZXBlbmRlbmNpZXM6IGdub21lX2J1aWxkZXJfZGVwcywKLSApCi0t LSAKLTIuMjQuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKaW5kZXggOGM4YzAxNWQ4YTMuLmFkMmQ0 YjZkMDNhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtYnVpbGRlcicKIHBrZ25hbWU9Z25vbWUtYnVpbGRlcgotdmVyc2lv bj0zLjM0LjEKLXJldmlzaW9uPTYKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPXFlbXUKIGNvbmZpZ3VyZV9hcmdzPSItRHdpdGhfd2Vi a2l0PXRydWUgLUR3aXRoX3N5c3Byb2Y9dHJ1ZSAtRGhlbHA9dHJ1ZSIKQEAgLTExLDE1ICsxMSwx NSBAQCBtYWtlZGVwZW5kcz0iY2Fpcm8tZGV2ZWwgY2xhbmcgZGV2aGVscC1kZXZlbCBlbmNoYW50 Mi1kZXZlbCBmbGF0cGFrLWRldmVsCiAgZ3NwZWxsLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVs IGd0ayszLWRldmVsIGpzb24tZ2xpYi1kZXZlbCBqc29ucnBjLWdsaWItZGV2ZWwKICBsaWJkYXp6 bGUtZGV2ZWwgbGliZ2l0Mi1nbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlib3N0cmVlLWRldmVs IGxpYnBlYXMtZGV2ZWwKICBsaWJ4bWwyLWRldmVsIHRlbXBsYXRlLWdsaWItZGV2ZWwgdmFsYS1k ZXZlbCB2dGUzLWRldmVsIHdlYmtpdDJndGstZGV2ZWwKLSBweXRob24zLWdvYmplY3QtZGV2ZWwg c3lzcHJvZi1kZXZlbCBnbGFkZTMtZGV2ZWwiCisgcHl0aG9uMy1nb2JqZWN0LWRldmVsIHN5c3By b2YtZGV2ZWwgZ2xhZGUzLWRldmVsIGxpYnBvcnRhbC1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3At ZmlsZS11dGlscyBmbGF0cGFrLWJ1aWxkZXIgcHl0aG9uMy1seG1sIGRldmhlbHAgcHl0aG9uMy1n b2JqZWN0Igogc2hvcnRfZGVzYz0iSURFIGZvciBHTk9NRSIKIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9CdWlsZGVyIgotY2hhbmdlbG9n PSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYnVpbGRlci9yYXcvZ25vbWUt YnVpbGRlci0zLTM0L05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H Tk9NRS9nbm9tZS1idWlsZGVyL3Jhdy9nbm9tZS1idWlsZGVyLTMtMzYvTkVXUyIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPTBiNmU0NjEwNTdlYTgxNTFlODA1MjRjMGVhN2VmMWNi OTQ4ZTkyYWZkYTlkYzZiZDMzYWUzMzkyZjA0NTAxYTQKK2NoZWNrc3VtPWQ2ODk1MzhiYWY4ZWZi MWFjZjdlYTYwNzI2OGIxYWFhMTQxOGQ1NTE3ZDkyZDRmNjk0NmEzZGJmODE0ZWFlNTUKIHBhdGNo X2FyZ3M9Ii1OcDEiCiAKIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgpAQCAtMjgsMyAr MjgsOCBAQCBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAkJTElCUys9IiAtbGV4ZWNp bmZvIgogCQk7OwogZXNhYworCitwcmVfY29uZmlndXJlKCkgeworCSMgdGhpcyB0ZXN0IG5lZWRz IFgKKwl2c2VkIC1pICJzL3Rlc3QoJ3Rlc3QtdGV4dC1pdGVyJy8jJi8iIHNyYy90ZXN0cy9tZXNv bi5idWlsZAorfQoKRnJvbSAxZDM1NDBiYWU2MjJmNDg4MWZhZDlkYjZmNzkyYTQ5YTIxMmFkYTk5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMToyMTo1MyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDk1LzEwMl0gcmV0cm8tZ3RrOiB1cGRhdGUgdG8gMS4wLjAKCi0tLQogY29tbW9u L3NobGlicyAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9yZXRyby1ndGsvdGVtcGxhdGUg fCAxMiArKysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwpp bmRleCA4NGI0N2UxZThjNy4uZTVmNDZjYTQyNzYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMK KysrIGIvY29tbW9uL3NobGlicwpAQCAtMzU3NCw3ICszNTc0LDcgQEAgbGlid2xyb290cy5zby42 IHdscm9vdHMtMC4xMS4wXzEKIGxpYmJhc2VlbmNvZGUuc28uMSBsaWJiYXNlZW5jb2RlLTEuMC45 XzEKIGxpYmNvdHAuc28uMTIgbGliY290cC0xLjIuMV8xCiBsaWJ1bmFyci5zby4xIGxpYnVuYXJy LTEuMC4xXzEKLWxpYnJldHJvLWd0ay0wLjE0LnNvLjAgcmV0cm8tZ3RrLTAuMTYuMF8xCitsaWJy ZXRyby1ndGstMS5zby4wIHJldHJvLWd0ay0xLjAuMF8xCiBsaWJtYW5ldHRlLTAuMi5zby4wIGxp Ym1hbmV0dGUtMC4yLjFfMQogbGliZm10LnNvLjYgZm10LTUuMi4xXzEKIGxpYmVsZW1lbnRhcnkt Y2FsZW5kYXIuc28uMCBsaWJpby5lbGVtZW50YXJ5LmNhbGVuZGFyLTQuMi4zXzEKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcmV0cm8tZ3RrL3RlbXBsYXRlIGIvc3JjcGtncy9yZXRyby1ndGsvdGVtcGxh dGUKaW5kZXggZGEwYWVjY2QyNDMuLjA0YWQ5Y2YwNTFiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3Jl dHJvLWd0ay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3JldHJvLWd0ay90ZW1wbGF0ZQpAQCAtMSwy MiArMSwyOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncmV0cm8tZ3RrJwogcGtnbmFtZT1yZXRy by1ndGsKLXZlcnNpb249MC4xOC4wCit2ZXJzaW9uPTEuMC4wCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iJCh2b3B0X2Jv b2wgZ2lyIGludHJvc3BlY3Rpb24pIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1j b25maWcgdmFsYSIKLW1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJlcG94eS1kZXZlbCBsaWJn bGliLWRldmVsIHB1bHNlYXVkaW8tZGV2ZWwiCittYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGli ZXBveHktZGV2ZWwgbGliZ2xpYi1kZXZlbCBwdWxzZWF1ZGlvLWRldmVsCisgbGlic2FtcGxlcmF0 ZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkdUSysgTGlicmV0cm8gZnJvbnRlbmQgZnJhbWV3b3JrIgog bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dO T01FL3JldHJvLWd0ayIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWNlZGI4ODEx NzRjNDJlODg5NTRlZWNiNWRmYWM3ODk1NGExOTgxYWFlZWJkYzg5MThjODg2MWM2YzA4YTQ1MTIK K2NoZWNrc3VtPTVjNzQzN2E3NjgxMjVhNmY2MjdkMDYzZWQ4OTBlOTMyOGQ0MTA4ZGI1MmE2ZDVh YTEwZTUyZDJmMjViYjg4ZGIKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19k ZWZhdWx0PSJnaXIiCiAKKyMgbmVlZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQorCiByZXRyby1n dGstZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJsaWJnbGliLWRldmVsICR7c291cmNlcGtn fT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQg ZmlsZXMiCgpGcm9tIDhmYzhlNDZhZjFmZDQxNmJmYzhjNTQ1ZDIzYTFjZTMwMTI5MGI4NjIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDE3IFNlcCAyMDIwIDAxOjI2OjAxICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwOTYvMTAyXSBnbm9tZS1nYW1lczogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dz L2dub21lLWdhbWVzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1nYW1l cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZ2FtZXMvdGVtcGxhdGUKaW5kZXggMjczMWRmMGY2 ZDkuLjU4ZjMxMTU2ZDA2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWdhbWVzL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ25vbWUtZ2FtZXMvdGVtcGxhdGUKQEAgLTEsMTUgKzEsMTUgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWdhbWVzJwogcGtnbmFtZT1nbm9tZS1nYW1lcwotdmVy c2lvbj0zLjM0LjAKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNv bgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyB2YWxhLWRl dmVsIgogbWFrZWRlcGVuZHM9ImxpYmFyY2hpdmUtZGV2ZWwgZ3JpbG8tZGV2ZWwgZ3RrKzMtZGV2 ZWwgbGliZ2xpYi1kZXZlbAogIGxpYm1hbmV0dGUtZGV2ZWwgbGlicnN2Zy1kZXZlbCBsaWJzb3Vw LWRldmVsIGxpYnhtbDItZGV2ZWwgcmV0cm8tZ3RrLWRldmVsCi0gc3FsaXRlLWRldmVsIHRyYWNr ZXItZGV2ZWwgbGliaGFuZHktZGV2ZWwiCisgc3FsaXRlLWRldmVsIHRyYWNrZXItZGV2ZWwgbGli aGFuZHkxLWRldmVsIgogc2hvcnRfZGVzYz0iQnJvd3NlIGFuZCBwbGF5IHlvdXIgZ2FtZXMiCiBt YWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i R1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMv R2FtZXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wZmQ3MjQ2ZDYxY2UyMWMw ZmMxMjFjNTQ4ODA1MWE1ODY2YzE5ZGUyYzI4MzVhZDdmZTRiMThjMDY2MjdkY2JhCitjaGVja3N1 bT01Yzg2OGZkNmViMGI4ZDIzYjk5NTAzOTYzMzA0M2U5MGQ4ZDkzODU2ZDMxNTgzMmRlM2EzMTVk N2IxZTU0ZTQ4CgpGcm9tIDFmNjdkODlkNTFlOGMyNDUxZTc0NGI5N2Y4YzRkZTBjNmQzN2RjOTQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDIzOjIyOjM0ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwOTcvMTAyXSBnbm9tZS1wYW5lbDogdXBkYXRlIHRvIDMuMzcuMQoKLS0tCiBjb21t b24vc2hsaWJzICAgICAgICAgICAgICAgIHwgMiArLQogc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1w bGF0ZSB8IDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRl eCBlNWY0NmNhNDI3Ni4uNjAzYWQyZDA5ZmYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysr IGIvY29tbW9uL3NobGlicwpAQCAtNTY0LDcgKzU2NCw3IEBAIGxpYnBhY2thZ2VraXQtZ2xpYjIu c28uMTggUGFja2FnZUtpdC0xLjEuMTJfMQogbGlicHNsLnNvLjUgbGlicHNsLTAuMjAuMl8xCiBs aWJzb3VwLTIuNC5zby4xIGxpYnNvdXAtMi4zNC4wXzEKIGxpYnNvdXAtZ25vbWUtMi40LnNvLjEg bGlic291cC1nbm9tZS0yLjM0LjBfMQotbGlicGFuZWwtYXBwbGV0LnNvLjMgZ25vbWUtcGFuZWwt My4zMC4wXzEKK2xpYmdub21lLXBhbmVsLnNvLjAgZ25vbWUtcGFuZWwtMy4zNy4xXzEKIGxpYnVu aW51bS5zby41IGxpYnVuaW51bS0yLjdfMQogbGlidW5pcXVlLTMuMC5zby4wIGxpYnVuaXF1ZS0y LjkxLjRfMQogbGlid2Via2l0Mmd0ay00LjAuc28uMzcgd2Via2l0Mmd0ay0yLjYuMl8xCmRpZmYg LS1naXQgYS9zcmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1wYW5l bC90ZW1wbGF0ZQppbmRleCA3MGYyM2I4YjU1MS4uMjRkOWQyYjllYjUgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ25vbWUtcGFuZWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXBhbmVsJwog cGtnbmFtZT1nbm9tZS1wYW5lbAotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTMKK3ZlcnNpb249 My4zNy4xCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVf YXJncz0iYXhfY3Zfem9uZWluZm9fdHpkaXI9L3Vzci9zaGFyZS96b25laW5mbyIKIGhvc3RtYWtl ZGVwZW5kcz0iZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB0emRh dGEgZ2V0dGV4dCIKQEAgLTE0LDcgKzE0LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdGREwtMS4x LW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25v bWUub3JnL1Byb2plY3RzL0dub21lUGFuZWwiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtw a2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT1hNmJjMDI1NTI1MmVlYjRiOTY0YmNiZTU1ZmQ3OTA4YjY5ZjkxNGMwNjJjNWVjOGRmZjVh YzAyNjJkMjliOTBkCitjaGVja3N1bT0xZDU5OGZkNjg5MzNlNzYwMThmMmZiMTE2YTc4NzFjYmMw MDMzYzFmMTA5YmZiZmUwOGExZWNiNTYwNjdkMTUyCiBwYXRjaF9hcmdzPSItTnAxIgogCiBnbm9t ZS1wYW5lbC1kZXZlbF9wYWNrYWdlKCkgewoKRnJvbSBlMTQ2YzA4MWE3MThmYWJmMDU0NWRjMWE1 M2I5N2MyM2ZjNDU1MzAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAyMzoyNDo1 MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDk4LzEwMl0gbWV0YWNpdHk6IHVwZGF0ZSB0byAzLjM3 LjEKCi0tLQogc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZSB8IDExICsrKysrLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUgYi9zcmNwa2dzL21ldGFjaXR5L3RlbXBsYXRlCmlu ZGV4IDVhYTIzMTQ5MmU3Li5hNTQ5ZGQ3YTU5NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9tZXRhY2l0 eS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21ldGFjaXR5L3RlbXBsYXRlCkBAIC0xLDE4ICsxLDE3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXRhY2l0eScKIHBrZ25hbWU9bWV0YWNpdHkKLXJl dmVydHM9IjMuMzcuMV8xIgotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTEKK3ZlcnNpb249My4z Ny4xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVu ZHM9ImdldHRleHQgZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB5 ZWxwLXRvb2xzIHplbml0eSIKIG1ha2VkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFz LWRldmVsIGd0ayszLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJn dG9wLWRldmVsIGxpYlNNLWRldmVsIGxpYlhjb21wb3NpdGUtZGV2ZWwgbGliWGRhbWFnZS1kZXZl bAotIGxpYlhmaXhlcy1kZXZlbCBsaWJYaW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVyLWRldmVsIGxp YlgxMS1kZXZlbCBwYW5nby1kZXZlbAotIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsIFZ1bGth bi1IZWFkZXJzIHZ1bGthbi1sb2FkZXIiCisgbGliWGZpeGVzLWRldmVsIGxpYlhpbmVyYW1hLWRl dmVsIGxpYlhyZW5kZXItZGV2ZWwgbGliWDExLWRldmVsIGxpYlhyZXMtZGV2ZWwKKyBwYW5nby1k ZXZlbCBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbCBWdWxrYW4tSGVhZGVycyB2dWxrYW4tbG9h ZGVyIgogZGVwZW5kcz0iemVuaXR5Igogc2hvcnRfZGVzYz0iV2luZG93IE1hbmFnZXIgZm9yIHRo ZSBHTk9NRSBlbnZpcm9ubWVudCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tZXRhY2l0eSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTMxYzdkMTA0NWMzOTBhZmIzYmY0MDU3MzViMGIyNmM0NTkxOTdjYmY0M2Fm MzdjNDY5ZWI4OTE4Y2UzYTQ1M2QKK2NoZWNrc3VtPTgwZDZmM2Q5NWE0MzI4ZmIyNmQwYTY0NzFm NTc1Yjc0MmIzNmI4ZjI3MjFmOGYzYzE4MDcxOTdmYTkwMGExMjYKCkZyb20gOWMzMDkzYzQ1YThj ZDAyNWM3NjIyNDkxNGQ3MTAxYjM0MjQ5M2JlZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVn IDIwMjAgMjM6NDA6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5OS8xMDJdIGdub21lLWZsYXNo YmFjazogdXBkYXRlIHRvIDMuMzcuMwoKLS0tCiAuLi4vZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2du b21lLWZsYXNoYmFjay5wYW0gfCAgNiArKysrCiBzcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1w bGF0ZSAgICAgICAgICAgICAgfCAzNCArKysrKysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDMxIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9nbm9tZS1mbGFzaGJhY2svZmlsZXMvZ25vbWUtZmxhc2hiYWNrLnBhbQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0g Yi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNzc2ZjBiMzYzMgotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5w YW0KQEAgLTAsMCArMSw2IEBACisjJVBBTS0xLjAKK2F1dGggICAgIGluY2x1ZGUgIHN5c3RlbS1h dXRoCithdXRoICAgICBvcHRpb25hbCBwYW1fZ25vbWVfa2V5cmluZy5zbworYWNjb3VudCAgaW5j bHVkZSAgc3lzdGVtLWF1dGgKK3Bhc3N3b3JkIGluY2x1ZGUgIHN5c3RlbS1hdXRoCitzZXNzaW9u ICBpbmNsdWRlICBzeXN0ZW0tYXV0aApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1mbGFzaGJh Y2svdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZQppbmRleCBkMzIx MjBjYWI2Zi4uYTA1M2E3OGFlYjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNr L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3RlbXBsYXRlCkBAIC0xLDIw ICsxLDM2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1mbGFzaGJhY2snCiBwa2duYW1l PWdub21lLWZsYXNoYmFjawotdmVyc2lvbj0zLjM0LjIKK3ZlcnNpb249My4zNy4zCiByZXZpc2lv bj0xCiBidWlsZF9oZWxwZXI9Z2lyCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCi1jb25maWd1 cmVfYXJncz0iLS1lbmFibGUtY29tcGlsZS13YXJuaW5ncz1taW5pbXVtIgotaG9zdG1ha2VkZXBl bmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGdsaWItZGV2ZWwgZ2V0dGV4dCIKLW1ha2VkZXBlbmRz PSJndGsrMy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsCi0gbGliZ2xpYi1k ZXZlbCBnZGstcGl4YnVmLWRldmVsIHVwb3dlci1kZXZlbCBpYnVzLWRldmVsIHBvbGtpdC1kZXZl bAotIHB1bHNlYXVkaW8tZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGlieGNiLWRldmVsIGxpYlgx MS1kZXZlbCBwYW5nby1kZXZlbAotIGxpYnhrYmZpbGUtZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRl dmVsIGdub21lLWRlc2t0b3AtZGV2ZWwiCitjb25maWd1cmVfYXJncz0iLS13aXRoLWNvbXBpei1z ZXNzaW9uIC0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKK2hvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyBnZXR0ZXh0IGdldHRleHQtZGV2ZWwgYXV0b21ha2UgbGlidG9vbCBnbGli LWRldmVsIgorbWFrZWRlcGVuZHM9InBhbS1kZXZlbCBlbG9naW5kLWRldmVsIHVwb3dlci1kZXZl bCBpYnVzLWRldmVsIHBvbGtpdC1kZXZlbAorIHB1bHNlYXVkaW8tZGV2ZWwgbGliY2FuYmVycmEt ZGV2ZWwgbGlieGNiLWRldmVsIGxpYlgxMS1kZXZlbCBsaWJ4a2JmaWxlLWRldmVsCisgbGliY29t cGl6Y29uZmlnLWRldmVsIGxpYmdsaWItZGV2ZWwgcGFuZ28tZGV2ZWwgZ3RrKzMtZGV2ZWwgZ2Rr LXBpeGJ1Zi1kZXZlbAorIGdkbS1kZXZlbCBnbm9tZS1ibHVldG9vdGgtZGV2ZWwgZ25vbWUtZGVz a3RvcC1kZXZlbCBnbm9tZS1wYW5lbC1kZXZlbAorIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMt ZGV2ZWwiCiBkZXBlbmRzPSJnbm9tZS1ibHVldG9vdGggZ25vbWUtc2Vzc2lvbiBnbm9tZS1zZXR0 aW5ncy1kYWVtb24KLSBnbm9tZS1wYW5lbCBnbm9tZS10aGVtZXMtc3RhbmRhcmQgbWV0YWNpdHki CisgZ25vbWUtcGFuZWwgZ25vbWUtdGhlbWVzLWV4dHJhIG1ldGFjaXR5Igogc2hvcnRfZGVzYz0i R05PTUUgMyBzZXNzaW9uIHdpdGggc2ltaWxhciB1c2VyIGV4cGVyaWVuY2UgdG8gdGhlIEdOT01F IDIueCBzZXJpZXMiCiBtYWludGFpbmVyPSJzaGl6b25pYyA8cmVhbHRpYXpAZ21haWwuY29tPiIK IGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9Qcm9qZWN0cy9Hbm9tZUZsYXNoYmFjayIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTNiZTY1Mzg4Y2QyYzhmMzk3NDFiY2MwNWRhODdlZjQwMDM1MTgzYTlhMzk1MDJkNjc2 OTYyNDJjMmFlYjQ2OWMKK2NoZWNrc3VtPTQ2ZDQ4ZDY4NzQ2NDZkMTJlYzVlYmM2MjIxNTg0NTZk YjFjZWVhZjQ5MjRiZDFmYzhiZjU5Y2JhYWZhMWUxYzIKKworcG9zdF9leHRyYWN0KCkgeworCXZz ZWQgLWkgJ3MvbGliY29tcGl6Y29uZmlnID49IDBcLjlcLjE0XC4wL2xpYmNvbXBpemNvbmZpZyA+ PSAwLjguMTYuMC8nIFwKKwkJY29uZmlndXJlLmFjCit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJ YXV0b3JlY29uZiAtaWYKK30KKworcG9zdF9pbnN0YWxsKCkgeworCXZpbnN0YWxsICR7RklMRVNE SVJ9L2dub21lLWZsYXNoYmFjay5wYW0gNjQ0IC9ldGMvcGFtLmQgZ25vbWUtZmxhc2hiYWNrCisJ dnNlZCAtaSAtZSAicy8gLS1zeXN0ZW1kLy9nIiBcCisJCSR7REVTVERJUn0vdXNyL2xpYmV4ZWMv Z25vbWUtZmxhc2hiYWNrLXtjb21waXosbWV0YWNpdHl9Cit9CgpGcm9tIDMxZjkwZWUxZjk4OTdl NTE5NjZlZmY2ZWNiZGFmMmRiZDU2NGNhYjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUdWUsIDE4IEF1ZyAy MDIwIDA1OjM1OjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMDAvMTAyXSBidWRnaWUtZGVza3Rv cDogcmVidWlsZCBmb3IgbXV0dGVyLTcKCltjaSBza2lwXQotLS0KIC4uLi9idWRnaWUtZGVza3Rv cC9wYXRjaGVzL2FwcHN5cy1idWlsZC5wYXRjaCB8ICAgIDExICsKIC4uLi9idWRnaWUtZGVza3Rv cC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaCAgICB8IDEzNDcyICsrKysrKysrKysrKysrKysKIHNy Y3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUgICAgICAgICAgICAgICB8ICAgICAyICstCiAz IGZpbGVzIGNoYW5nZWQsIDEzNDg0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvYXBwc3lzLWJ1aWxk LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVz L2dub21lLTMzOC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0 Y2hlcy9hcHBzeXMtYnVpbGQucGF0Y2ggYi9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMv YXBwc3lzLWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5iNjYyNWYwNDZkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3Av cGF0Y2hlcy9hcHBzeXMtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIHNyYy9hcHBz eXMvQXBwU3lzdGVtLnZhbGEKKysrKyBzcmMvYXBwc3lzL0FwcFN5c3RlbS52YWxhCitAQCAtNzAs NyArNzAsNyBAQCBwdWJsaWMgY2xhc3MgQXBwU3lzdGVtIDogR0xpYi5PYmplY3QKKyAgICAgfQor IAorICAgICBwcml2YXRlIHZvaWQgc2lnbmFsX3JlY2VpdmVkKEdMaWIuREJ1c0Nvbm5lY3Rpb24g Y29ubmVjdGlvbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgc2Vu ZGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZz8gc2VuZGVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBvYmplY3RfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgaW50ZXJmYWNlX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHNpZ25hbF9uYW1lLApkaWZm IC0tZ2l0IGEvc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaCBi L3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkyZmE3NmExN2IwCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaApAQCAt MCwwICsxLDEzNDcyIEBACitGcm9tIDMwYmEwYjVhNDk4NmQ2YmUzNjg3YTFkN2ZiNDgyOTA2MTg1 ZWE4YzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYXZpZCBNb2hhbW1lZCA8Zm9z c2ZyZWVkb21AdXNlcnMubm9yZXBseS5naXRodWIuY29tPgorRGF0ZTogVHVlLCAxOCBGZWIgMjAy MCAwNjo0MDoxMiArMDAwMAorU3ViamVjdDogW1BBVENIXSBnbm9tZSAzLjM4IGNvbXBhdGliaWxp dHkKKworU3F1YXNoZWQgYnkgQHE2NiBmcm9tOgorCitodHRwczovL2dpdGh1Yi5jb20vc29sdXMt cHJvamVjdC9idWRnaWUtZGVza3RvcC9wdWxsLzE5ODcKKworcGx1cyBhbiBhc3NvcnRtZW50IG9m IG9sZGVyIG11dHRlciB1cGRhdGVzIGZyb20gZ2l0IG1hc3RlcgorLS0tCisgbWVzb24uYnVpbGQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArLQorIG1lc29uX29wdGlv bnMudHh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgLQorIHNyYy9hcHBsZXRz L3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYSAgICAgICAgICB8ICAgIDYgLQorIHNyYy9hcHBsZXRz L3N0YXR1cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAgMTMgKy0KKyBzcmMvd20vYmFj a2dyb3VuZC52YWxhICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICstCisgc3JjL3dtL21l c29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMCArLQorIHNyYy93bS9z aGltLnZhbGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKy0KKyBzcmMvd20v d20udmFsYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICstCisgLi4ue0Ns dXR0ZXItNS5tZXRhZGF0YSA9PiBDbHV0dGVyLTYubWV0YWRhdGF9IHwgICAgMAorIC4uLntDbHV0 dGVyLTQubWV0YWRhdGEgPT4gQ2x1dHRlci03Lm1ldGFkYXRhfSB8ICAgNDMgLQorIHZhcGkve0Nv Z2wtNC5tZXRhZGF0YSA9PiBDb2dsLTYubWV0YWRhdGF9ICAgICB8ICAgIDAKKyB2YXBpL3tDb2ds LTUubWV0YWRhdGEgPT4gQ29nbC03Lm1ldGFkYXRhfSAgICAgfCAgICAyIC0KKyB2YXBpL01ldGEt My5tZXRhZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDY2IC0KKyB2YXBpL3tNZXRh LTUubWV0YWRhdGEgPT4gTWV0YS02Lm1ldGFkYXRhfSAgICAgfCAgICAwCisgdmFwaS97TWV0YS00 Lm1ldGFkYXRhID0+IE1ldGEtNy5tZXRhZGF0YX0gICAgIHwgICAyNSArLQorIHZhcGkvZ2VuZXJh dGUtbXV0dGVyLXZhcGkuc2ggICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KKyB2YXBpL2dyYXBo ZW5lLWdvYmplY3QtMS4wLnZhcGkgICAgICAgICAgICAgICAgfCAgNjkxICsrKysrKysKKyB2YXBp L2xpYm11dHRlci0yLmRlcHMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5IC0KKyB2YXBp L2xpYm11dHRlci0yLnZhcGkgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMzI1IC0tLS0tLS0t LS0tLS0tCisgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYSAgICAgICAgICAgICAgICAgIHwg ICAgNiAtCisgdmFwaS9saWJtdXR0ZXItMy5kZXBzICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgOSAtCisgdmFwaS9saWJtdXR0ZXItNC5kZXBzICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgOCAtCisgdmFwaS9saWJtdXR0ZXItNC52YXBpICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTQyNSAtLS0tLS0tLS0tLS0tLS0KKyB2YXBpL3tsaWJtdXR0ZXItNS5kZXBzID0+IGxpYm11dHRl ci02LmRlcHN9ICAgfCAgICAzICstCisgdmFwaS97bGlibXV0dGVyLTUudmFwaSA9PiBsaWJtdXR0 ZXItNi52YXBpfSAgIHwgICA0NSArLQorIHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEgICAg ICAgICAgICAgICAgICB8ICAgIDcgKworIHZhcGkvbGlibXV0dGVyLTcuZGVwcyAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgIDYgKworIHZhcGkve2xpYm11dHRlci0zLnZhcGkgPT4gbGlibXV0 dGVyLTcudmFwaX0gICB8ICAzOTAgKystLQorIHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpICAg ICAgICAgICAgICAgICAgICB8IDEyNzIgLS0tLS0tLS0tLS0tLQorIHZhcGkvbXV0dGVyLWNsdXR0 ZXItNS1jdXN0b20udmFsYSAgICAgICAgICAgICB8ICAxNTggLS0KKyAuLi5zdG9tLnZhbGEgPT4g bXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYX0gfCAgIDExIC0KKyAuLi5yLWNsdXR0ZXItNS5k ZXBzID0+IG11dHRlci1jbHV0dGVyLTYuZGVwc30gfCAgICAyICstCisgLi4uci1jbHV0dGVyLTUu dmFwaSA9PiBtdXR0ZXItY2x1dHRlci02LnZhcGl9IHwgIDgwNiArKy0tLS0tLQorIC4uLnItY2x1 dHRlci00LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNy5kZXBzfSB8ICAgIDMgKy0KKyAuLi5yLWNs dXR0ZXItNC52YXBpID0+IG11dHRlci1jbHV0dGVyLTcudmFwaX0gfCAxNjE1ICsrKystLS0tLS0t LS0tLS0tCisgLi4uLWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTYtY3VzdG9tLnZhbGF9IHwg ICAgMAorIC4uLnttdXR0ZXItY29nbC00LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNi5kZXBzfSB8ICAg IDAKKyAuLi57bXV0dGVyLWNvZ2wtNS52YXBpID0+IG11dHRlci1jb2dsLTYudmFwaX0gfCAgNDIy ICstLS0tCisgLi4uLWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTctY3VzdG9tLnZhbGF9IHwg ICAyMCArLQorIC4uLnttdXR0ZXItY29nbC01LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNy5kZXBzfSB8 ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wtNC52YXBpID0+IG11dHRlci1jb2dsLTcudmFwaX0gfCAg NjcxICsrKy0tLS0KKyB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFwaSAgICAgICAgICAgICAgICAg ICAgfCAgIDMxICstCisgNDIgZmlsZXMgY2hhbmdlZCwgMTkyMCBpbnNlcnRpb25zKCspLCA3MjU0 IGRlbGV0aW9ucygtKQorIHJlbmFtZSB2YXBpL3tDbHV0dGVyLTUubWV0YWRhdGEgPT4gQ2x1dHRl ci02Lm1ldGFkYXRhfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97Q2x1dHRlci00Lm1ldGFkYXRhID0+ IENsdXR0ZXItNy5tZXRhZGF0YX0gKDc4JSkKKyByZW5hbWUgdmFwaS97Q29nbC00Lm1ldGFkYXRh ID0+IENvZ2wtNi5tZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve0NvZ2wtNS5tZXRhZGF0 YSA9PiBDb2dsLTcubWV0YWRhdGF9ICg5MSUpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvTWV0 YS0zLm1ldGFkYXRhCisgcmVuYW1lIHZhcGkve01ldGEtNS5tZXRhZGF0YSA9PiBNZXRhLTYubWV0 YWRhdGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tNZXRhLTQubWV0YWRhdGEgPT4gTWV0YS03Lm1l dGFkYXRhfSAoNzYlKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB2YXBpL2dyYXBoZW5lLWdvYmplY3Qt MS4wLnZhcGkKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItMi5kZXBzCisgZGVs ZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTIudmFwaQorIGRlbGV0ZSBtb2RlIDEwMDY0 NCB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxhCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkv bGlibXV0dGVyLTMuZGVwcworIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci00LmRl cHMKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNC52YXBpCisgcmVuYW1lIHZh cGkve2xpYm11dHRlci01LmRlcHMgPT4gbGlibXV0dGVyLTYuZGVwc30gKDUwJSkKKyByZW5hbWUg dmFwaS97bGlibXV0dGVyLTUudmFwaSA9PiBsaWJtdXR0ZXItNi52YXBpfSAoOTclKQorIGNyZWF0 ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxhCisgY3JlYXRlIG1vZGUg MTAwNjQ0IHZhcGkvbGlibXV0dGVyLTcuZGVwcworIHJlbmFtZSB2YXBpL3tsaWJtdXR0ZXItMy52 YXBpID0+IGxpYm11dHRlci03LnZhcGl9ICg3NSUpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkv bGlibXV0dGVyLWNvZ2wtNC52YXBpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbXV0dGVyLWNs dXR0ZXItNS1jdXN0b20udmFsYQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci00LWN1c3Rv bS52YWxhID0+IG11dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGF9ICg5MiUpCisgcmVuYW1lIHZh cGkve211dHRlci1jbHV0dGVyLTUuZGVwcyA9PiBtdXR0ZXItY2x1dHRlci02LmRlcHN9ICg2MyUp CisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVyLTUudmFwaSA9PiBtdXR0ZXItY2x1dHRlci02 LnZhcGl9ICg5MyUpCisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVyLTQuZGVwcyA9PiBtdXR0 ZXItY2x1dHRlci03LmRlcHN9ICg1NCUpCisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVyLTQu dmFwaSA9PiBtdXR0ZXItY2x1dHRlci03LnZhcGl9ICg4NiUpCisgcmVuYW1lIHZhcGkve211dHRl ci1jb2dsLTUtY3VzdG9tLnZhbGEgPT4gbXV0dGVyLWNvZ2wtNi1jdXN0b20udmFsYX0gKDEwMCUp CisgcmVuYW1lIHZhcGkve211dHRlci1jb2dsLTQuZGVwcyA9PiBtdXR0ZXItY29nbC02LmRlcHN9 ICgxMDAlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC01LnZhcGkgPT4gbXV0dGVyLWNvZ2wt Ni52YXBpfSAoNjglKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC00LWN1c3RvbS52YWxhID0+ IG11dHRlci1jb2dsLTctY3VzdG9tLnZhbGF9ICg4MSUpCisgcmVuYW1lIHZhcGkve211dHRlci1j b2dsLTUuZGVwcyA9PiBtdXR0ZXItY29nbC03LmRlcHN9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tt dXR0ZXItY29nbC00LnZhcGkgPT4gbXV0dGVyLWNvZ2wtNy52YXBpfSAoNTklKQorCitkaWZmIC0t Z2l0IG1lc29uLmJ1aWxkIG1lc29uLmJ1aWxkCitpbmRleCAyYTBlMDMxNi4uM2M0YzZhYzEgMTAw NjQ0CistLS0gbWVzb24uYnVpbGQKKysrKyBtZXNvbi5idWlsZAorQEAgLTMyLDE2ICszMiwxNiBA QCBhbV9jZmxhZ3MgPSBbCisgYWRkX2dsb2JhbF9hcmd1bWVudHMoYW1fY2ZsYWdzLCBsYW5ndWFn ZTogJ2MnKQorIG1lc29uLmFkZF9pbnN0YWxsX3NjcmlwdCgnbWVzb25fcG9zdF9pbnN0YWxsLnNo JykKKyAKKy0jIEJ1ZGdpZSBuZWVkcyBhIG1pbmltdW0gMy4yMiBHTk9NRSBzdGFjaworLWdub21l X21pbmltdW1fdmVyc2lvbiA9ICc+PSAzLjIyLjAnCisrIyBCdWRnaWUgbmVlZHMgYSBtaW5pbXVt IDMuMjQgR05PTUUgc3RhY2sKKytnbm9tZV9taW5pbXVtX3ZlcnNpb24gPSAnPj0gMy4yNC4wJwor IAorIGRlcF9ndGszID0gZGVwZW5kZW5jeSgnZ3RrKy0zLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5p bXVtX3ZlcnNpb24pCistZGVwX2dsaWIgPSBkZXBlbmRlbmN5KCdnbGliLTIuMCcsIHZlcnNpb246 ICc+PSAyLjQ2LjAnKQorLWRlcF9naW91bml4ID0gZGVwZW5kZW5jeSgnZ2lvLXVuaXgtMi4wJywg dmVyc2lvbjogJz49IDIuNDYuMCcpCistZGVwX3BlYXMgPSBkZXBlbmRlbmN5KCdsaWJwZWFzLTEu MCcsIHZlcnNpb246ICc+PSAxLjguMCcpCisrZGVwX2dsaWIgPSBkZXBlbmRlbmN5KCdnbGliLTIu MCcsIHZlcnNpb246ICc+PSAyLjYyLjAnKQorK2RlcF9naW91bml4ID0gZGVwZW5kZW5jeSgnZ2lv LXVuaXgtMi4wJywgdmVyc2lvbjogJz49IDIuNjIuMCcpCisrZGVwX3BlYXMgPSBkZXBlbmRlbmN5 KCdsaWJwZWFzLTEuMCcsIHZlcnNpb246ICc+PSAxLjI0LjAnKQorIGRlcF9nZGt4MTEgPSBkZXBl bmRlbmN5KCdnZGsteDExLTMuMCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbikKKyBk ZXBfbGlidXVpZCA9IGRlcGVuZGVuY3koJ3V1aWQnKQorLWRlcF92YWxhID0gZGVwZW5kZW5jeSgn dmFwaWdlbicsIHZlcnNpb246ICc+PSAwLjQwLjAnKQorK2RlcF92YWxhID0gZGVwZW5kZW5jeSgn dmFwaWdlbicsIHZlcnNpb246ICc+PSAwLjQ2LjAnKQorIAorICMgTmVlZGVkIGZvciBrZXlib2Fy ZHkgYml0cworIGRlcF9pYnVzID0gZGVwZW5kZW5jeSgnaWJ1cy0xLjAnLCB2ZXJzaW9uOiAnPj0g MS41LjEwJykKK0BAIC01MSwxMCArNTEsMTAgQEAgZGVwX2dzZXR0aW5ncyA9IGRlcGVuZGVuY3ko J2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3YKKyBk ZXBfZ3NkID0gZGVwZW5kZW5jeSgnZ25vbWUtc2V0dGluZ3MtZGFlbW9uJywgdmVyc2lvbjogJz49 My4yOC4wJykKKyAKKyAjIHduY2sgdXNlZCBhbGwgb3ZlciB0aGUgcGxhY2UuLgorLWRlcF93bmNr ID0gZGVwZW5kZW5jeSgnbGlid25jay0zLjAnLCB2ZXJzaW9uOiAnPj0gMy4xNC4wJykKKytkZXBf d25jayA9IGRlcGVuZGVuY3koJ2xpYnduY2stMy4wJywgdmVyc2lvbjogJz49IDMuMzIuMCcpCisg CisgIyBhY2NvdW50c3NlcnZpY2UgaW4gbXVsdGlwbGUgYXBwbGV0cworLWRlcF9hY2NvdW50c3Nl cnZpY2UgPSBkZXBlbmRlbmN5KCdhY2NvdW50c3NlcnZpY2UnLCB2ZXJzaW9uOiAnPj0gMC42LjQw JykKKytkZXBfYWNjb3VudHNzZXJ2aWNlID0gZGVwZW5kZW5jeSgnYWNjb3VudHNzZXJ2aWNlJywg dmVyc2lvbjogJz49IDAuNi41NScpCisgCisgIyBDcmVhdGUgY29uZmlnLmgKKyBjZGF0YSA9IGNv bmZpZ3VyYXRpb25fZGF0YSgpCitkaWZmIC0tZ2l0IG1lc29uX29wdGlvbnMudHh0IG1lc29uX29w dGlvbnMudHh0CitpbmRleCBkNzFiMDliNS4uZGNhOTEyOTYgMTAwNjQ0CistLS0gbWVzb25fb3B0 aW9ucy50eHQKKysrKyBtZXNvbl9vcHRpb25zLnR4dAorQEAgLTEsNSArMSw0IEBACisgb3B0aW9u KCd3aXRoLXN0YXRlbGVzcycsIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IGZhbHNlLCBkZXNjcmlw dGlvbjogJ0VuYWJsZSBzdGF0ZWxlc3MgWERHIHBhdGhzJykKKyBvcHRpb24oJ3dpdGgtcG9sa2l0 JywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdFbmFibGUgUG9s S2l0IHN1cHBvcnQnKQorLW9wdGlvbignd2l0aC1ibHVldG9vdGgnLCB0eXBlOiAnYm9vbGVhbics IHZhbHVlOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBnbm9tZS1ibHVldG9vdGggc3VwcG9y dCcpCisgb3B0aW9uKCd3aXRoLWd0ay1kb2MnLCB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiB0cnVl LCBkZXNjcmlwdGlvbjogJ0J1aWxkIGd0ay1kb2MgZG9jdW1lbnRhdGlvbicpCisgb3B0aW9uKCd3 aXRoLWRlc2t0b3AtaWNvbnMnLCB0eXBlOiAnY29tYm8nLCBjaG9pY2VzOiBbJ25hdXRpbHVzJywg J25vbmUnXSwgdmFsdWU6ICduYXV0aWx1cycsIGRlc2NyaXB0aW9uOiAnRGVza3RvcCBpY29uIGhh bmRsaW5nJykKK2RpZmYgLS1naXQgc3JjL2FwcGxldHMvc3RhdHVzL1N0YXR1c0FwcGxldC52YWxh IHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYQoraW5kZXggYjk4MjYzOTQuLjcx ZjI4N2M5IDEwMDY0NAorLS0tIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYQor KysrIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYQorQEAgLTIwLDkgKzIwLDcg QEAgcHVibGljIGNsYXNzIFN0YXR1c0FwcGxldCA6IEJ1ZGdpZS5BcHBsZXQKKyB7CisgCisgICAg IHByb3RlY3RlZCBHdGsuQm94IHdpZGdldDsKKy0jaWYgV0lUSF9CTFVFVE9PVEgKKyAgICAgcHJv dGVjdGVkIEJsdWV0b290aEluZGljYXRvciBibHVlOworLSNlbmRpZgorICAgICBwcm90ZWN0ZWQg U291bmRJbmRpY2F0b3Igc291bmQ7CisgICAgIHByb3RlY3RlZCBQb3dlckluZGljYXRvciBwb3dl cjsKKyAgICAgcHJvdGVjdGVkIEd0ay5FdmVudEJveD8gd3JhcDsKK0BAIC02OCwxMiArNjYsMTAg QEAgcHVibGljIGNsYXNzIFN0YXR1c0FwcGxldCA6IEJ1ZGdpZS5BcHBsZXQKKyAgICAgICAgIHRo aXMuc2V0dXBfcG9wb3Zlcihwb3dlci5lYm94LCBwb3dlci5wb3BvdmVyKTsKKyAgICAgICAgIHRo aXMuc2V0dXBfcG9wb3Zlcihzb3VuZC5lYm94LCBzb3VuZC5wb3BvdmVyKTsKKyAKKy0jaWYgV0lU SF9CTFVFVE9PVEgKKyAgICAgICAgIGJsdWUgPSBuZXcgQmx1ZXRvb3RoSW5kaWNhdG9yKCk7Cisg ICAgICAgICB3aWRnZXQucGFja19zdGFydChibHVlLCBmYWxzZSwgZmFsc2UsIDIpOworICAgICAg ICAgYmx1ZS5zaG93X2FsbCgpOworICAgICAgICAgdGhpcy5zZXR1cF9wb3BvdmVyKGJsdWUuZWJv eCwgYmx1ZS5wb3BvdmVyKTsKKy0jZW5kaWYKKyAgICAgfQorIAorICAgICBwdWJsaWMgb3ZlcnJp ZGUgdm9pZCBwYW5lbF9wb3NpdGlvbl9jaGFuZ2VkKEJ1ZGdpZS5QYW5lbFBvc2l0aW9uIHBvc2l0 aW9uKQorQEAgLTkxLDkgKzg3LDcgQEAgcHVibGljIGNsYXNzIFN0YXR1c0FwcGxldCA6IEJ1ZGdp ZS5BcHBsZXQKKyAgICAgICAgIHRoaXMubWFuYWdlciA9IG1hbmFnZXI7CisgICAgICAgICBtYW5h Z2VyLnJlZ2lzdGVyX3BvcG92ZXIocG93ZXIuZWJveCwgcG93ZXIucG9wb3Zlcik7CisgICAgICAg ICBtYW5hZ2VyLnJlZ2lzdGVyX3BvcG92ZXIoc291bmQuZWJveCwgc291bmQucG9wb3Zlcik7Cist I2lmIFdJVEhfQkxVRVRPT1RICisgICAgICAgICBtYW5hZ2VyLnJlZ2lzdGVyX3BvcG92ZXIoYmx1 ZS5lYm94LCBibHVlLnBvcG92ZXIpOworLSNlbmRpZgorICAgICB9CisgfSAvLyBFbmQgY2xhc3MK KyAKK2RpZmYgLS1naXQgc3JjL2FwcGxldHMvc3RhdHVzL21lc29uLmJ1aWxkIHNyYy9hcHBsZXRz L3N0YXR1cy9tZXNvbi5idWlsZAoraW5kZXggNjk5ZmI4ZjQuLmI0ZDI3MDZjIDEwMDY0NAorLS0t IHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZAorKysrIHNyYy9hcHBsZXRzL3N0YXR1cy9t ZXNvbi5idWlsZAorQEAgLTEwLDYgKzEwLDcgQEAgY3VzdG9tX3RhcmdldCgncGx1Z2luLWZpbGUt c3RhdHVzJywKKyAgICAgaW5zdGFsbF9kaXIgOiBhcHBsZXRfc3RhdHVzX2RpcikKKyAKKyBhcHBs ZXRfc3RhdHVzX3NvdXJjZXMgPSBbCisrICAgICdCbHVldG9vdGhJbmRpY2F0b3IudmFsYScsCisg ICAgICdTdGF0dXNBcHBsZXQudmFsYScsCisgICAgICdQb3dlckluZGljYXRvci52YWxhJywKKyAg ICAgJ1NvdW5kSW5kaWNhdG9yLnZhbGEnLAorQEAgLTIwLDIyICsyMSwxMyBAQCBhcHBsZXRfc3Rh dHVzX2RlcHMgPSBbCisgICAgIGRlcF9ndGszLAorICAgICBkZXBfcGVhcywKKyAgICAgZGVwX2Fj Y291bnRzc2VydmljZSwKKysgICAgZGVwZW5kZW5jeSgnZ25vbWUtYmx1ZXRvb3RoLTEuMCcsIHZl cnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiksCisgICAgIGRlcGVuZGVuY3koJ3Vwb3dlci1n bGliJywgdmVyc2lvbjogJz49IDAuOTkuMCcpLAorICAgICBsaW5rX2xpYnBsdWdpbiwKKyAgICAg Z3ZjLmdldF92YXJpYWJsZSgnbGliZ3ZjX2RlcCcpLAorICAgICBtZXNvbi5nZXRfY29tcGlsZXIo J2MnKS5maW5kX2xpYnJhcnkoJ20nLCByZXF1aXJlZDogZmFsc2UpLAorIF0KKyAKKy0jIEJsdWV0 b290aCBpcyBvcHRpb25hbCB0byBhbGxvdyBzbWFsbGVyIGJ1aWxkcworLXdpdGhfYmx1ZXRvb3Ro ID0gZ2V0X29wdGlvbignd2l0aC1ibHVldG9vdGgnKQorLWFwcGxldF9zdGF0dXNfdmFsYV9hcmdz ID0gW10KKy0KKy1pZiB3aXRoX2JsdWV0b290aCA9PSB0cnVlCistICAgIGFwcGxldF9zdGF0dXNf ZGVwcyArPSBkZXBlbmRlbmN5KCdnbm9tZS1ibHVldG9vdGgtMS4wJywgdmVyc2lvbjogZ25vbWVf bWluaW11bV92ZXJzaW9uKQorLSAgICBhcHBsZXRfc3RhdHVzX3NvdXJjZXMgKz0gJ0JsdWV0b290 aEluZGljYXRvci52YWxhJworLSAgICBhcHBsZXRfc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywg J1dJVEhfQkxVRVRPT1RIJ10KKy1lbmRpZgorLQorIHNoYXJlZF9saWJyYXJ5KAorICAgICAnc3Rh dHVzYXBwbGV0JywKKyAgICAgYXBwbGV0X3N0YXR1c19zb3VyY2VzLAorQEAgLTUwLDcgKzQyLDYg QEAgc2hhcmVkX2xpYnJhcnkoCisgICAgICAgICAnLS1wa2cnLCAnZ3ZjLTEuMCcsCisgICAgICAg ICAnLS1wa2cnLCAnZ2lvLXVuaXgtMi4wJywKKyAgICAgICAgICctLXZhcGlkaXInLCBqb2luX3Bh dGhzKG1lc29uLnNvdXJjZV9yb290KCksICd2YXBpJyksCistICAgICAgICBhcHBsZXRfc3RhdHVz X3ZhbGFfYXJncywKKyAgICAgXSwKKyAgICAgaW5zdGFsbDogdHJ1ZSwKKyAgICAgaW5zdGFsbF9k aXI6IGFwcGxldF9zdGF0dXNfZGlyLAorZGlmZiAtLWdpdCBzcmMvd20vYmFja2dyb3VuZC52YWxh IHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEKK2luZGV4IDA4NGFhOWFiLi5iMzMxZTBjNCAxMDA2NDQK Ky0tLSBzcmMvd20vYmFja2dyb3VuZC52YWxhCisrKysgc3JjL3dtL2JhY2tncm91bmQudmFsYQor QEAgLTIwNCw4ICsyMDQsMTMgQEAgcHVibGljIGNsYXNzIEJ1ZGdpZUJhY2tncm91bmQgOiBDbHV0 dGVyLkFjdG9yCisgCisgICAgICAgICB2YXIgYWN0b3IgPSBuZXcgTWV0YS5CYWNrZ3JvdW5kQWN0 b3IoZGlzcGxheSwgaW5kZXgpOworICAgICAgICAgdmFyIGJhY2tncm91bmQgPSBuZXcgTWV0YS5C YWNrZ3JvdW5kKGRpc3BsYXkpOworKyNpZiBIQVZFX01VVFRFUl82CisgICAgICAgICBhY3Rvci5z ZXRfYmFja2dyb3VuZChiYWNrZ3JvdW5kKTsKKy0KKysjZWxzZQorKyAgICAgICAgdmFyIGNvbnRl bnQgPSBhY3Rvci5nZXRfY29udGVudCgpOworKyAgICAgICAgdW5vd25lZCBNZXRhLkJhY2tncm91 bmRDb250ZW50IGJhY2tncm91bmRfY29udGVudCA9IChNZXRhLkJhY2tncm91bmRDb250ZW50KSBj b250ZW50OworKyAgICAgICAgYmFja2dyb3VuZF9jb250ZW50LnNldF9iYWNrZ3JvdW5kKGJhY2tn cm91bmQpOworKyNlbmRpZgorICAgICAgICAgcmVjdCA9IGRpc3BsYXkuZ2V0X21vbml0b3JfZ2Vv bWV0cnkoaW5kZXgpOworICAgICAgICAgYWN0b3Iuc2V0X3NpemUocmVjdC53aWR0aCwgcmVjdC5o ZWlnaHQpOworICAgICAgICAgYWN0b3Iuc2V0KCJvcGFjaXR5IiwgMCk7CitAQCAtMjIxLDEzICsy MjYsMjEgQEAgcHVibGljIGNsYXNzIEJ1ZGdpZUJhY2tncm91bmQgOiBDbHV0dGVyLkFjdG9yCisg ICAgICAgICBzaGFkaW5nX2RpcmVjdGlvbiA9IChHRGVza3RvcC5CYWNrZ3JvdW5kU2hhZGluZylz ZXR0aW5ncy5nZXRfZW51bShDT0xPUl9TSEFESU5HX1RZUEVfS0VZKTsKKyAgICAgICAgIHZhciBj b2xvcl9zdHIgPSBzZXR0aW5ncy5nZXRfc3RyaW5nKFBSSU1BUllfQ09MT1JfS0VZKTsKKyAgICAg ICAgIGlmIChjb2xvcl9zdHIgIT0gbnVsbCAmJiBjb2xvcl9zdHIgIT0gIiIpIHsKKysjaWYgSEFW RV9NVVRURVJfNgorICAgICAgICAgICAgIHByaW1hcnlfY29sb3IgPSBDbHV0dGVyLkNvbG9yLmZy b21fc3RyaW5nKGNvbG9yX3N0cik7CisrI2Vsc2UKKysgICAgICAgICAgICBDbHV0dGVyLkNvbG9y LmZyb21fc3RyaW5nKG91dCBwcmltYXJ5X2NvbG9yLCBjb2xvcl9zdHIpOworKyNlbmRpZgorICAg ICAgICAgICAgIGNvbG9yX3N0ciA9IG51bGw7CisgICAgICAgICB9CisgCisgICAgICAgICBjb2xv cl9zdHIgPSBzZXR0aW5ncy5nZXRfc3RyaW5nKFNFQ09OREFSWV9DT0xPUl9LRVkpOworICAgICAg ICAgaWYgKGNvbG9yX3N0ciAhPSBudWxsICYmIGNvbG9yX3N0ciAhPSAiIikgeworKyNpZiBIQVZF X01VVFRFUl82CisgICAgICAgICAgICAgc2Vjb25kYXJ5X2NvbG9yID0gQ2x1dHRlci5Db2xvci5m cm9tX3N0cmluZyhjb2xvcl9zdHIpOworKyNlbHNlCisrICAgICAgICAgICAgQ2x1dHRlci5Db2xv ci5mcm9tX3N0cmluZyhvdXQgc2Vjb25kYXJ5X2NvbG9yLCBjb2xvcl9zdHIpOworKyNlbmRpZgor ICAgICAgICAgICAgIGNvbG9yX3N0ciA9IG51bGw7CisgICAgICAgICB9CisgCitkaWZmIC0tZ2l0 IHNyYy93bS9tZXNvbi5idWlsZCBzcmMvd20vbWVzb24uYnVpbGQKK2luZGV4IGUzOWI4Njc4Li41 ODNjZTc5MCAxMDA2NDQKKy0tLSBzcmMvd20vbWVzb24uYnVpbGQKKysrKyBzcmMvd20vbWVzb24u YnVpbGQKK0BAIC0xNywyMCArMTcsMTggQEAgYnVkZ2llX3dtX3NvdXJjZXMgPSBbCisgCisgYnVk Z2llX3dtX3N0YXR1c192YWxhX2FyZ3MgPSBbXQorIAorLXZhcGlfbXV0dGVyID0gJ2xpYm11dHRl ci0zJworLWRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItMycsIHZlcnNpb246IGdu b21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorLWlmIG5vdCBkZXBfbXV0dGVy LmZvdW5kKCkKKy0gICAgZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRlci00JywgdmVy c2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uLCByZXF1aXJlZDogZmFsc2UpCisrZGVwX2dyYXBo ZW5lID0gZGVwZW5kZW5jeSgnZ3JhcGhlbmUtZ29iamVjdC0xLjAnLCB2ZXJzaW9uOiAnPj0gMS4x MCcpCisrZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRlci03JywgdmVyc2lvbjogZ25v bWVfbWluaW11bV92ZXJzaW9uLCByZXF1aXJlZDogZmFsc2UpCisraWYgZGVwX211dHRlci5mb3Vu ZCgpCisrICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAnSEFWRV9NVVRU RVJfNyddCisrICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNyBBQkkgZnJvbSBHTk9N RSAzLjM4JykKKysgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTcnCisrZWxzZQorKyAgICBk ZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTYnLCB2ZXJzaW9uOiBnbm9tZV9taW5p bXVtX3ZlcnNpb24pCisrICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAn SEFWRV9NVVRURVJfNiddCisgICAgIGlmIGRlcF9tdXR0ZXIuZm91bmQoKQorLSAgICAgICAgbWVz c2FnZSgnVXNpbmcgbmV3IGxpYm11dHRlci00IEFCSSBmcm9tIEdOT01FIDMuMzInKQorLSAgICAg ICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTQnCistICAgIGVsc2UKKy0gICAgICAgIGRlcF9t dXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNScsIHZlcnNpb246IGdub21lX21pbmltdW1f dmVyc2lvbikKKy0gICAgICAgIGlmIGRlcF9tdXR0ZXIuZm91bmQoKQorLSAgICAgICAgICAgIG1l c3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNSBBQkkgZnJvbSBHTk9NRSAzLjM0JykKKy0gICAg ICAgICAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0ZXItNScKKy0gICAgICAgICAgICBidWRnaWVf d21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfTVVUVEVSXzUnXQorLSAgICAgICAg ZW5kaWYKKysgICAgICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNiBBQkkgZnJvbSBH Tk9NRSAzLjM2JykKKysgICAgICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci02JworICAgICBl bmRpZgorIGVuZGlmCisgCitAQCAtNDIsOCArNDAsOCBAQCBidWRnaWVfd21fZGVwcyA9IFsKKyAg ICAgZGVwX2lidXMsCisgXQorIAorLWlmIGRlcF9nc2QudmVyc2lvbigpLnZlcnNpb25fY29tcGFy ZSgnPj0zLjMxLjkxJykKKy0gICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcs ICdIQVZFX0dTRF8zMzInXQorK2lmIGRlcF9nc2QudmVyc2lvbigpLnZlcnNpb25fY29tcGFyZSgn Pj0zLjM2LjAnKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hB VkVfR1NEX1NVUFBPUlRFRCddCisgZW5kaWYKKyAKKyBidWRnaWVfd21fdmFsYV9hcmdzID0gIFsK K0BAIC02MCw3ICs1OCw3IEBAIGJ1ZGdpZV93bV92YWxhX2FyZ3MgPSAgWworIAorIHJwYXRoID0g JycKKyAKKy1pZiBkZXBfbXV0dGVyLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49My4yOC4w JykKKytpZiBkZXBfbXV0dGVyLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49My4zNi4wJykK KyAgICAgcnBhdGggPSBkZXBfbXV0dGVyLmdldF9wa2djb25maWdfdmFyaWFibGUoJ3R5cGVsaWJk aXInKQorICAgICBidWRnaWVfd21fdmFsYV9hcmdzICs9IFsnLS1naXJkaXInLCBycGF0aF0KKyBl bmRpZgorZGlmZiAtLWdpdCBzcmMvd20vc2hpbS52YWxhIHNyYy93bS9zaGltLnZhbGEKK2luZGV4 IDRjZGZhMGIwLi5mYzI0YjI4OSAxMDA2NDQKKy0tLSBzcmMvd20vc2hpbS52YWxhCisrKysgc3Jj L3dtL3NoaW0udmFsYQorQEAgLTE0LDcgKzE0LDcgQEAgbmFtZXNwYWNlIEJ1ZGdpZSB7CisgcHVi bGljIHN0cnVjdCBHc2RBY2NlbCB7CisgICAgIHN0cmluZyBhY2NlbGVyYXRvcjsKKyAgICAgdWlu dCBmbGFnczsKKy0jaWYgSEFWRV9HU0RfMzMyCisrI2lmIEhBVkVfR1NEX1NVUFBPUlRFRAorICAg ICBNZXRhLktleUJpbmRpbmdGbGFncyBncmFiX2ZsYWdzOworICNlbmRpZgorIH0KK0BAIC0xOTMs MTEgKzE5Myw3IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0gOiBHTGliLk9iamVjdAorICAgICAg ICAgb3NkX3Byb3h5ID0gbnVsbDsKKyAgICAgfQorIAorLSNpZiBIQVZFX01VVFRFUl81CisgICAg IHByaXZhdGUgdm9pZCBvbl9hY2NlbGVyYXRvcl9hY3RpdmF0ZWQodWludCBhY3Rpb24sIENsdXR0 ZXIuSW5wdXREZXZpY2UgZGV2LCB1aW50IGRldmljZV9pZCkKKy0jZWxzZQorLSAgICBwcml2YXRl IHZvaWQgb25fYWNjZWxlcmF0b3JfYWN0aXZhdGVkKHVpbnQgYWN0aW9uLCB1aW50IGRldmljZV9p ZCkKKy0jZW5kaWYKKyAgICAgeworICAgICAgICAgSGFzaFRhYmxlPHN0cmluZyxWYXJpYW50PiBw YXJhbXMgPSBuZXcgSGFzaFRhYmxlPHN0cmluZyxWYXJpYW50PihzdHJfaGFzaCwgc3RyX2VxdWFs KTsKKyAKK0BAIC0yMzAsNyArMjI2LDcgQEAgcHVibGljIGNsYXNzIFNoZWxsU2hpbSA6IEdMaWIu T2JqZWN0CisgICAgICAgICB9CisgICAgIH0KKyAKKy0jaWYgSEFWRV9HU0RfMzMyCisrI2lmIEhB VkVfR1NEX1NVUFBPUlRFRAorICAgICBwcml2YXRlIHVpbnQgX2dyYWIoc3RyaW5nIHNlbmRlciwg c3RyaW5nIHNlcSwgdWludCBmbGFnLCBNZXRhLktleUJpbmRpbmdGbGFncyBncmFiX2ZsYWdzKQor ICAgICB7CisgICAgICAgICB2YXIgcmV0ID0gZGlzcGxheS5ncmFiX2FjY2VsZXJhdG9yKHNlcSwg Z3JhYl9mbGFncyk7CitAQCAtMjczLDcgKzI2OSw3IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0g OiBHTGliLk9iamVjdAorICAgICAgICAgICAgIG9uX2J1c19hY3F1aXJlZCwgbnVsbCwgbnVsbCk7 CisgICAgIH0KKyAKKy0jaWYgSEFWRV9HU0RfMzMyCisrI2lmIEhBVkVfR1NEX1NVUFBPUlRFRAor ICAgICBwdWJsaWMgdWludCBHcmFiQWNjZWxlcmF0b3IoQnVzTmFtZSBzZW5kZXIsIHN0cmluZyBh Y2NlbGVyYXRvciwgdWludCBmbGFncywgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFncykK KyAgICAgeworICAgICAgICAgcmV0dXJuIF9ncmFiKHNlbmRlciwgYWNjZWxlcmF0b3IsIGZsYWdz LCBncmFiX2ZsYWdzKTsKK2RpZmYgLS1naXQgc3JjL3dtL3dtLnZhbGEgc3JjL3dtL3dtLnZhbGEK K2luZGV4IGZlZTg5NDQzLi5iY2NmM2I5NSAxMDA2NDQKKy0tLSBzcmMvd20vd20udmFsYQorKysr IHNyYy93bS93bS52YWxhCitAQCAtMTM3LDggKzEzNyw4IEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVX TSA6IE1ldGEuUGx1Z2luCisgICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nW10/IG9sZF9hcmdzOwor ICAgICBwdWJsaWMgc3RhdGljIGJvb2wgd2F5bGFuZCA9IGZhbHNlOworIAorLSAgICBzdGF0aWMg Q2x1dHRlci5Qb2ludCBQVl9DRU5URVI7CistICAgIHN0YXRpYyBDbHV0dGVyLlBvaW50IFBWX05P Uk07CisrICAgIHN0YXRpYyBHcmFwaGVuZS5Qb2ludCBQVl9DRU5URVI7CisrICAgIHN0YXRpYyBH cmFwaGVuZS5Qb2ludCBQVl9OT1JNOworIAorICAgICBwcml2YXRlIE1ldGEuQmFja2dyb3VuZEdy b3VwPyBiYWNrZ3JvdW5kX2dyb3VwOworIAorQEAgLTE3MSwxMCArMTcxLDEwIEBAIHB1YmxpYyBj bGFzcyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisgICAgICAgICAgICAgbGljZW5zZSA9ICJHUEwt Mi4wIiwKKyAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJCdWRnaWUgV2luZG93IE1hbmFnZXIi CisgICAgICAgICB9OworLSAgICAgICAgUFZfQ0VOVEVSID0gQ2x1dHRlci5Qb2ludC5hbGxvYygp OworKyAgICAgICAgUFZfQ0VOVEVSID0gR3JhcGhlbmUuUG9pbnQoKTsKKysgICAgICAgIFBWX05P Uk0gPSBHcmFwaGVuZS5Qb2ludCgpOworICAgICAgICAgUFZfQ0VOVEVSLnggPSAwLjVmOworICAg ICAgICAgUFZfQ0VOVEVSLnkgPSAwLjVmOworLSAgICAgICAgUFZfTk9STSA9IENsdXR0ZXIuUG9p bnQuYWxsb2MoKTsKKyAgICAgICAgIFBWX05PUk0ueCA9IDAuMGY7CisgICAgICAgICBQVl9OT1JN LnkgPSAwLjBmOworICAgICB9CitAQCAtMTAwMSw3ICsxMDAxLDcgQEAgcHVibGljIGNsYXNzIEJ1 ZGdpZVdNIDogTWV0YS5QbHVnaW4KKyAgICAgICAgIHRpbGVfcHJldmlldy5zZXQoInNjYWxlLXgi LCBOT1RJRklDQVRJT05fTUFQX1NDQUxFX1gsICJzY2FsZS15IiwgTk9USUZJQ0FUSU9OX01BUF9T Q0FMRV9ZLAorICAgICAgICAgICAgICJwaXZvdC1wb2ludCIsIFBWX0NFTlRFUik7CisgCistICAg ICAgICB0aWxlX3ByZXZpZXcubG93ZXIod2luX2FjdG9yKTsKKysgICAgICAgIC8vdGlsZV9wcmV2 aWV3Lmxvd2VyKHdpbl9hY3Rvcik7CisgICAgICAgICB0aWxlX3ByZXZpZXcudGlsZV9yZWN0ID0g dGlsZV9yZWN0OworIAorICAgICAgICAgdGlsZV9wcmV2aWV3LnNob3coKTsKK2RpZmYgLS1naXQg dmFwaS9DbHV0dGVyLTUubWV0YWRhdGEgdmFwaS9DbHV0dGVyLTYubWV0YWRhdGEKK3NpbWlsYXJp dHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9DbHV0dGVyLTUubWV0YWRhdGEKK3JlbmFt ZSB0byB2YXBpL0NsdXR0ZXItNi5tZXRhZGF0YQorZGlmZiAtLWdpdCB2YXBpL0NsdXR0ZXItNC5t ZXRhZGF0YSB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCA3OCUKK3Jl bmFtZSBmcm9tIHZhcGkvQ2x1dHRlci00Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9DbHV0dGVy LTcubWV0YWRhdGEKK2luZGV4IDVjMjEyZTg1Li4xODU1Mjc0ZCAxMDA2NDQKKy0tLSB2YXBpL0Ns dXR0ZXItNC5tZXRhZGF0YQorKysrIHZhcGkvQ2x1dHRlci03Lm1ldGFkYXRhCitAQCAtMSwxMyAr MSwxMCBAQAorIC8vIE5vbiBtaW5pLW9iamVjdAorIEFjdG9yQm94IHN0cnVjdAorIENvbG9yIHN0 cnVjdAorLUZvZyBzdHJ1Y3QKKy1HZW9tZXRyeSBzdHJ1Y3QKKyBLbm90IHN0cnVjdAorIFBhdGhO b2RlIHN0cnVjdAorIFBlcnNwZWN0aXZlIHN0cnVjdAorIFVuaXRzIHN0cnVjdAorLVZlcnRleCBz dHJ1Y3QKKyAKKyAqLnJlZiB1bm93bmVkCisgCitAQCAtMTcsNyArMTQsNiBAQCBpbml0X3dpdGhf YXJncworIEFjdG9yCisgCS5hcHBseV90cmFuc2Zvcm0ubWF0cml4IHJlZgorIAkuZ2V0X2Fic19h bGxvY2F0aW9uX3ZlcnRpY2VzLnZlcnRzIG91dD1mYWxzZQorLQkuZ2V0X2FsbG9jYXRpb25fdmVy dGljZXMudmVydHMgb3V0PWZhbHNlCisgQ2FudmFzCisgCS5uZXcgc3ltYm9sX3R5cGU9ImNvbnN0 cnVjdG9yIgorIEV2ZW50LnR5cGUjbWV0aG9kIG5hbWU9ImdldF90eXBlIgorQEAgLTI3LDcgKzIz LDYgQEAgSW1hZ2UKKyAvLyA/Pz8KKyBBY3Rvci5oYXNfcG9pbnRlciNtZXRob2QgbmFtZT0iZ2V0 X2hhc19wb2ludGVyIgorIEluaXRFcnJvciBlcnJvcmRvbWFpbj1mYWxzZQorLXJlZHJhdyBza2lw CisgCisgLy8gTm90IGFsbCBiYWNraW5nIHN5bWJvbHMgYXJlIGRlcHJlY2F0ZWQKKyBBY3Rvci5w aWNrIGRlcHJlY2F0ZWQ9ZmFsc2UKK0BAIC01NSw3ICs1MCw2IEBAIENvbnRhaW5lcgorIAkubG93 ZXIgdmlydHVhbAorIAkucmFpc2UgdmlydHVhbAorIAkuKl9jaGlsZF9tZXRhI3ZpcnR1YWxfbWV0 aG9kIHZpcnR1YWwKKy0JLmZvcmVhY2hfd2l0aF9pbnRlcm5hbHMjdmlydHVhbF9tZXRob2Qgdmly dHVhbAorIAorIC8vIERlZmF1bHQgdmFsdWVzCisgQ29udGFpbmVyCitAQCAtNzAsMzIgKzY0LDIx IEBAIFRleHQKKyAvLyBSZXBhcmVudGVkIGZ1bmNzIG1ldGhvZHMgY2FuJ3QgYmUgaW5zdGFuY2Ug bWV0aG9kcworIGZlYXR1cmVfYXZhaWxhYmxlIHNraXAKKyBmZWF0dXJlX2dldF9hbGwgc2tpcAor LUZlYXR1cmVGbGFncy50ZXh0dXJlX25wb3Qgc2tpcAorIAorIC8vIFNraXBwZWQgYnkgZy1pIGZv ciB1bmtub3duIHJlYXNvbnMKKyBMYXlvdXRNYW5hZ2VyCisgCS5jcmVhdGVfY2hpbGRfbWV0YSBz a2lwPWZhbHNlCistTW9kZWwKKy0JLmluc2VydF9yb3cgc2tpcD1mYWxzZQorIAorIC8vIFZhcmlh ZGljIGFyZ3VtZW50cworLUFjdG9yCistCS5hbmltYXRlIHNraXA9ZmFsc2UKKy0JLmFuaW1hdGVf d2l0aF9hbHBoYSBza2lwPWZhbHNlCistCS5hbmltYXRlX3dpdGhfdGltZWxpbmUgc2tpcD1mYWxz ZQorLUFuaW1hdG9yCistCS5zZXQgc2tpcD1mYWxzZQorIEJveAorIAkucGFjayBza2lwPWZhbHNl CisgCS5wYWNrX2FmdGVyIHNraXA9ZmFsc2UKKyAJLnBhY2tfYXQgc2tpcD1mYWxzZQorIAkucGFj a19iZWZvcmUgc2tpcD1mYWxzZQorIENvbnRhaW5lcgorLQkuYWRkX3ZhbGlzdCBza2lwPWZhbHNl CisgCS5jaGlsZF9nZXQgc2tpcD1mYWxzZQorIAkuY2hpbGRfc2V0IHNraXA9ZmFsc2UKKyAJLnJl bW92ZSBza2lwPWZhbHNlCistCS5yZW1vdmVfdmFsaXN0IHNraXA9ZmFsc2UKKyBJbnRlcnZhbAor IAkubmV3IHNraXA9ZmFsc2UKKyAJLmdldF9pbnRlcnZhbCBza2lwPWZhbHNlCitAQCAtMTA1LDE1 ICs4OCw2IEBAIEludGVydmFsCisgTGF5b3V0TWFuYWdlcgorIAkuY2hpbGRfZ2V0IHNraXA9ZmFs c2UKKyAJLmNoaWxkX3NldCBza2lwPWZhbHNlCistTGlzdE1vZGVsCistCS5uZXcgc2tpcD1mYWxz ZQorLU1vZGVsCistCS5hcHBlbmQgc2tpcD1mYWxzZQorLQkuaW5zZXJ0IHNraXA9ZmFsc2UKKy0J LnByZXBlbmQgc2tpcD1mYWxzZQorLU1vZGVsSXRlcgorLQkuZ2V0IHNraXA9ZmFsc2UKKy0JLnNl dCBza2lwPWZhbHNlCisgU2NyaXB0CisgCS5nZXRfb2JqZWN0cyBza2lwPWZhbHNlCisgCitAQCAt MTIyLDE3ICs5NiwxMSBAQCBUZXh0dXJlCisgCS5uZXdfZnJvbV9maWxlIHRocm93cz0iQ2x1dHRl ci5UZXh0dXJlRXJyb3IiCisgCisgLy8gU2tpcHBlZCB1cHN0cmVhbSBmb3IgdW5rbm93biByZWFz b25zCistQWxwaGEucmVnaXN0ZXJfZnVuYyBza2lwPWZhbHNlCistVGltZW91dFBvb2wgc2tpcD1m YWxzZQorIEludGVydmFsLnJlZ2lzdGVyX3Byb2dyZXNzX2Z1bmMgc2tpcD1mYWxzZQorLWZyYW1l X3NvdXJjZV8qIHNraXA9ZmFsc2UKKyBnZXRfb3B0aW9uX2dyb3VwIHNraXA9ZmFsc2UKKyBnZXRf b3B0aW9uX2dyb3VwX3dpdGhvdXRfaW5pdCBza2lwPWZhbHNlCistdGhyZWFkc19hZGRfZnJhbWVf c291cmNlIHNraXA9ZmFsc2UKKy10aHJlYWRzX2FkZF9mcmFtZV9zb3VyY2VfZnVsbCBza2lwPWZh bHNlCisgdGhyZWFkc19hZGRfaWRsZSBza2lwPWZhbHNlCisgdGhyZWFkc19hZGRfaWRsZV9mdWxs IHNraXA9ZmFsc2UKKy10aHJlYWRzX3NldF9sb2NrX2Z1bmN0aW9ucyBza2lwPWZhbHNlCisgdGhy ZWFkc19hZGRfdGltZW91dCBza2lwPWZhbHNlCisgdGhyZWFkc19hZGRfdGltZW91dF9mdWxsIHNr aXA9ZmFsc2UKKyAKK0BAIC0xNDMsMTUgKzExMSwxMiBAQCBBY3RvckJveAorIFVuaXRzLmZyb21f KiBza2lwCisgQ29sb3IKKyAJLm5ldyBza2lwCistVmVydGV4Lm5ldyBza2lwCisgCisgLy8gQ2xh c3MgbWV0aG9kcworIGNvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5IHNraXAKKyBj b250YWluZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIHNraXAKKyAKKyAvLyBNb3ZlIHN5 bWJvbHMKKy1nZXRfYWN0b3JfYnlfZ2lkIHBhcmVudD0iQ2x1dHRlci5BY3RvciIgbmFtZT0iZ2V0 X2J5X2dpZCIKKy1nZXRfaW5wdXRfZGV2aWNlX2Zvcl9pZCBwYXJlbnQ9IkNsdXR0ZXIuSW5wdXRE ZXZpY2UiIG5hbWU9ImdldF9mb3JfaWQiCisgdW5pdHNfZnJvbV8qIHNraXAKKyAKKyAvLyBDbGFz c2VzIG1hcmtlZCBhcyBvdXQgYnV0IG5vdCBkb3VibGUgcHRyCitAQCAtMjAyLDIzICsxNjcsMTUg QEAgUEFUSF9SRUxBVElWRSBza2lwPWZhbHNlCisgUFJJT1JJVFlfUkVEUkFXIHNraXA9ZmFsc2UK KyAKKyAvLyBDbHV0dGVyIGRldnMgZG9uJ3QgbGlrZSB1cyBjcmVhdGluZyBuZXN0ZWQgbmFtZXNw YWNlcworLWZyYW1lX3NvdXJjZV8qIG5hbWU9ImZyYW1lX3NvdXJjZV8oLispIiBwYXJlbnQ9IkNs dXR0ZXIuRnJhbWVTb3VyY2UiCisgdmFsdWVfKiBuYW1lPSJ2YWx1ZV8oLispIiBwYXJlbnQ9IkNs dXR0ZXIuVmFsdWUiCisgdGhyZWFkc18qIG5hbWU9InRocmVhZHNfKC4rKSIgcGFyZW50PSJDbHV0 dGVyLlRocmVhZHMiCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNlIG5hbWU9ImFkZCIgcGFyZW50 PSJDbHV0dGVyLlRocmVhZHMuRnJhbWVTb3VyY2UiCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNl X2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLkZyYW1lU291cmNl IgorIHRocmVhZHNfYWRkX2lkbGUgbmFtZT0iYWRkIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5J ZGxlIgorIHRocmVhZHNfYWRkX2lkbGVfZnVsbCBuYW1lPSJhZGRfZnVsbCIgcGFyZW50PSJDbHV0 dGVyLlRocmVhZHMuSWRsZSIKKyB0aHJlYWRzX2FkZF90aW1lb3V0IG5hbWU9ImFkZCIgcGFyZW50 PSJDbHV0dGVyLlRocmVhZHMuVGltZW91dCIKKyB0aHJlYWRzX2FkZF90aW1lb3V0X2Z1bGwgbmFt ZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLlRpbWVvdXQiCistdXRpbF9uZXh0 X3AyIG5hbWU9Im5leHRfcG93ZXJfb2ZfMiIgcGFyZW50PSJDbHV0dGVyLlV0aWwiCisgCisgLy8g QmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKyBDb2xvci5hbGxvYyBzeW1ib2xfdHlwZT0iZnVuY3Rp b24iCistUG9pbnQuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorLVJlY3QuYWxsb2Mgc3lt Ym9sX3R5cGU9ImZ1bmN0aW9uIgorLVNpemUuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgor LVZlcnRleC5hbGxvYyBzeW1ib2xfdHlwZT0iZnVuY3Rpb24iCisgCisgQmluQWxpZ25tZW50IGRl cHJlY2F0ZWQ9ZmFsc2UgZGVwcmVjYXRlZF9zaW5jZT1udWxsCisgQmluQWxpZ25tZW50LiogZGVw cmVjYXRlZAorZGlmZiAtLWdpdCB2YXBpL0NvZ2wtNC5tZXRhZGF0YSB2YXBpL0NvZ2wtNi5tZXRh ZGF0YQorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL0NvZ2wtNC5tZXRh ZGF0YQorcmVuYW1lIHRvIHZhcGkvQ29nbC02Lm1ldGFkYXRhCitkaWZmIC0tZ2l0IHZhcGkvQ29n bC01Lm1ldGFkYXRhIHZhcGkvQ29nbC03Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDkxJQor cmVuYW1lIGZyb20gdmFwaS9Db2dsLTUubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL0NvZ2wtNy5t ZXRhZGF0YQoraW5kZXggMDkyYjVlMjkuLmU1MmJmYTM1IDEwMDY0NAorLS0tIHZhcGkvQ29nbC01 Lm1ldGFkYXRhCisrKysgdmFwaS9Db2dsLTcubWV0YWRhdGEKK0BAIC05LDEyICs5LDEwIEBAIGNy ZWF0ZV9zaGFkZXIgc2tpcAorIAorIAorIGlzX2JpdG1hcCBza2lwCistaXNfbWF0ZXJpYWwgc2tp cAorIGlzX29mZnNjcmVlbiBza2lwCisgaXNfcHJvZ3JhbSBza2lwCisgaXNfc2hhZGVyIHNraXAK KyBpc190ZXh0dXJlIHNraXAKKy1pc192ZXJ0ZXhfYnVmZmVyIHNraXAKKyAKKyBNYXRyaXggc3Ry dWN0CisgICAuZ2V0X2FycmF5IGFycmF5PXRydWUgYXJyYXlfbGVuZ3RoX2lkeD0tMQorZGlmZiAt LWdpdCB2YXBpL01ldGEtMy5tZXRhZGF0YSB2YXBpL01ldGEtMy5tZXRhZGF0YQorZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CitpbmRleCAzNzBkNDk5Ni4uMDAwMDAwMDAKKy0tLSB2YXBpL01ldGEt My5tZXRhZGF0YQorKysrIC9kZXYvbnVsbAorQEAgLTEsNjYgKzAsMCBAQAorLUJhY2tlbmQgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tlbmQuaCIKKy1CYWNrZ3JvdW5kIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiCistQmFja2dyb3VuZEFjdG9yIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgiCistQmFja2dyb3VuZEdy b3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgiCistQmFj a2dyb3VuZEltYWdlQ2FjaGUgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCIKKy1EaXNwbGF5IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvZGlzcGxheS5oIgorLU1l dGEgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tYWluLmgiCistTW9uaXRvck1hbmFnZXIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIgorLVJlY3RhbmdsZSBzdHJ1 Y3QKKy1QbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorLVBsdWdp bkluZm8gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorLXByZWZzXyogY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIiBwYXJlbnQ9Ik1ldGEuUHJlZnMiCistYWRkX3Zl cmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLWJ1ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGls LmgiCistZGVidWdfc3Bld19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXgxMV9lcnJvcl90cmFwX3BvcCBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisteDExX2Vy cm9yX3RyYXBfcHVzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCisteDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1leHRlcm5hbF9iaW5kaW5nX25hbWVf Zm9yX2FjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGls LmgiCistZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nX3V0Zjhfc3RybmR1cCBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ2V0X2xvY2FsZV9kaXJlY3Rpb24g cGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9v dmVybGF5X3dpbmRvdyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCistZ3Jhdml0eV90b19zdHJpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX2RlYnVnZ2luZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNfc3luY2luZyBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNfdmVyYm9zZSBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNfd2F5bGFuZF9jb21w b3NpdG9yIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky1sYXRlcl9hZGQgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLWxhdGVyX3JlbW92ZSBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCistcG9wX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXB1c2hfbm9fbXNnX3ByZWZpeCBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistcmVjdCBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistcmVtb3ZlX3ZlcmJvc2Vf dG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LXNldF9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy10b3BpY19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy11bnNpZ25lZF9sb25nX2VxdWFsIHBhcmVu dD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy11bnNpZ25lZF9s b25nX2hhc2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorLXZlcmJvc2VfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistd2FybmluZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCistc2hvd19kaWFsb2cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9zdGFnZV9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEu Q29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgor LWdldF93aW5kb3dfYWN0b3JzIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlz cGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIgorLWdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVu dD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiCistZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21w b3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZGlz YWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZW5hYmxlX3VucmVkaXJl Y3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVu dD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9y IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZm9jdXNfc3Rh Z2Vfd2luZG93IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc3RhZ2VfaXNfZm9jdXNlZCBwYXJlbnQ9Ik1ldGEuQ29t cG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWtl eWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciBwYXJlbnQ9Ik1ldGEuS2V5QmluZGluZyIgbmFt ZT0ic2V0X2N1c3RvbV9oYW5kbGVyIgorLUtleUhhbmRsZXJGdW5jLmV2ZW50IHR5cGU9IkNsdXR0 ZXIuS2V5RXZlbnQ/IgorLWdldF9iYWNrZW5kIHBhcmVudD0iTWV0YS5CYWNrZW5kIgorLVdpbmRv dy5mb2N1cyNzaWduYWwgc2tpcD10cnVlCistV2luZG93LmdldF94d2luZG93IHNraXA9ZmFsc2UK Ky1nZXRfb3B0aW9uX2NvbnRleHQgc2tpcD1mYWxzZQorLXNldF9nbm9tZV93bV9rZXliaW5kaW5n cyBza2lwPWZhbHNlCistc2V0X3dtX25hbWUgc2tpcD1mYWxzZQorLWluaXQgc2tpcD1mYWxzZQor LXJ1biBza2lwPWZhbHNlCistc2hvd19kaWFsb2cgc2tpcD1mYWxzZQorLWdldF9iYWNrZW5kIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCitkaWZmIC0tZ2l0IHZhcGkvTWV0 YS01Lm1ldGFkYXRhIHZhcGkvTWV0YS02Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDEwMCUK K3JlbmFtZSBmcm9tIHZhcGkvTWV0YS01Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9NZXRhLTYu bWV0YWRhdGEKK2RpZmYgLS1naXQgdmFwaS9NZXRhLTQubWV0YWRhdGEgdmFwaS9NZXRhLTcubWV0 YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggNzYlCityZW5hbWUgZnJvbSB2YXBpL01ldGEtNC5tZXRh ZGF0YQorcmVuYW1lIHRvIHZhcGkvTWV0YS03Lm1ldGFkYXRhCitpbmRleCBhZTJhNzgxNy4uNzI2 MjlmYmEgMTAwNjQ0CistLS0gdmFwaS9NZXRhLTQubWV0YWRhdGEKKysrKyB2YXBpL01ldGEtNy5t ZXRhZGF0YQorQEAgLTEsMjYgKzEsMjEgQEAKKyBCYWNrZW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvbWV0YS1iYWNrZW5kLmgiCisgQmFja2dyb3VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtYmFja2dyb3VuZC5oIgorIEJhY2tncm91bmRBY3RvciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIgorK0JhY2tncm91bmRDb250ZW50IGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWNvbnRlbnQuaCIKKyBCYWNrZ3JvdW5kR3JvdXAg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCIKKyBCYWNrZ3Jv dW5kSW1hZ2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIK KyBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oIgorIEJhcnJpZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9iYXJyaWVyLmgi CisgQmFycmllckV2ZW50IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYmFycmllci5oIgorLUJveGVz IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYm94ZXMuaCIKKyBDbG9zZURpYWxvZyBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiCistQ29tcG9zaXRvciBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL2NvbXBvc2l0b3IuaCIKKy1Db21wb3NpdG9yTXV0dGVyIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBDdXJzb3JUcmFja2VyIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oIgorIERpc3BsYXkgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9kaXNwbGF5LmgiCisgRG5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0 YS1kbmQuaCIKKy1Hcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2dyb3VwLmgiCisgSWRsZU1v bml0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oIgorIEluaGli aXRTaG9ydGN1dHNEaWFsb2cgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oIgorLUtleWJpbmRpbmdzIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEva2V5 YmluZGluZ3MuaCIKKyBMYXVuY2hDb250ZXh0IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oIgorIE1ldGEgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tYWluLmgiCisg TW9uaXRvck1hbmFnZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oIgorLVBsdWdpbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcGx1Z2luLmgiCisgUHJl ZmVyZW5jZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3ByZWZzLmgiCisgUmVtb3RlQWNjZXNzQ29u dHJvbGxlciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgiCisgUmVtb3RlQWNjZXNzSGFuZGxlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCIKK0BAIC0zMSw5ICsyNiw3IEBAIFNvdW5kUGxheWVy IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCIKKyBTdGFnZSBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc3RhZ2UuaCIKKyBTdGFydHVwTm90aWZpY2F0aW9uIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oIgorIFRoZW1l IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdGhlbWUuaCIKKy1UeXBlcyBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3R5cGVzLmgiCistVXRpbCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1W ZXJzaW9uIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS12ZXJzaW9uLmgiCisrV2F5bGFuZENs aWVudCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtd2F5bGFuZC1jbGllbnQuaCIKKyBXaW5k b3cgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS93aW5kb3cuaCIKKyBXaW5kb3dBY3RvciBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL21ldGEtd2luZG93LWFjdG9yLmgiCisgV2luZG93R3JvdXAgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oIgorQEAgLTQ2LDE3ICszOSwxMSBA QCBQbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorIFBsdWdpbklu Zm8gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorIHByZWZzXyogY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIiBwYXJlbnQ9Ik1ldGEuUHJlZnMiCisgYWRkX3ZlcmJv c2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorLWJ1ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistZGVidWdfc3Bld19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL3V0aWwuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHgxMV9lcnJvcl90cmFwX3BvcCBwYXJl bnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgeDExX2Vycm9y X3RyYXBfcHVzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGls LmgiCisgeDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9y X2FjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nX3V0Zjhfc3RybmR1cCBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZ2V0X2xvY2FsZV9kaXJlY3Rpb24gcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9vdmVy bGF5X3dpbmRvdyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGls LmgiCisgZ3Jhdml0eV90b19zdHJpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorIGlzX2RlYnVnZ2luZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgaXNfc3luY2luZyBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCitAQCAtNjgsMTMgKzU1LDggQEAgcG9wX25v X21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorIHB1c2hfbm9fbXNnX3ByZWZpeCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCisgcmVjdCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCisgcmVtb3ZlX3ZlcmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNldF9zdGFnZV9pbnB1dF9yZWdp b24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNo b3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKy10b3BpY19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKyB1bnNpZ25lZF9sb25nX2VxdWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB1bnNpZ25lZF9sb25nX2hhc2ggcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXZlcmJvc2VfcmVhbCBwYXJl bnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistd2FybmluZyBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgc2hvd19k aWFsb2cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor IGdldF9zdGFnZV9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIGdldF93aW5kb3dfYWN0b3JzIHBh cmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiCitAQCAtODMsMTAgKzY1LDcgQEAgZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX2Rp c3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEKKyBn ZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBkaXNhYmxlX3VucmVk aXJlY3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBlbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlz cGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIgorLXNldF9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLkNv bXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1l bXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBmb2N1c19zdGFnZV93aW5kb3cg cGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIKKy1zdGFnZV9pc19mb2N1c2VkIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisga2V5YmluZGluZ3Nf c2V0X2N1c3RvbV9oYW5kbGVyIHBhcmVudD0iTWV0YS5LZXlCaW5kaW5nIiBuYW1lPSJzZXRfY3Vz dG9tX2hhbmRsZXIiCisgS2V5SGFuZGxlckZ1bmMuZXZlbnQgdHlwZT0iQ2x1dHRlci5LZXlFdmVu dD8iCisgZ2V0X2JhY2tlbmQgcGFyZW50PSJNZXRhLkJhY2tlbmQiCitkaWZmIC0tZ2l0IHZhcGkv Z2VuZXJhdGUtbXV0dGVyLXZhcGkuc2ggdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaAoraW5k ZXggNmIwNzAyNDAuLmIyMzNlNTg2IDEwMDc1NQorLS0tIHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZh cGkuc2gKKysrKyB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoCitAQCAtMSw3ICsxLDcgQEAK KyAjIS9iaW4vYmFzaAorIHNldCAteGUKKyAKKy12ZXJzaW9uPSR7MS00fQorK3ZlcnNpb249JHs2 LTd9CisgZ2lyZGlyPSQocGtnLWNvbmZpZyBsaWJtdXR0ZXItJHZlcnNpb24gLS12YXJpYWJsZT1n aXJkaXIpCisgCisgY2QgJChkaXJuYW1lICQwKQorZGlmZiAtLWdpdCB2YXBpL2dyYXBoZW5lLWdv YmplY3QtMS4wLnZhcGkgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpCituZXcgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjY5ODAxNTM1CistLS0gL2Rldi9udWxsCisrKysg dmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpCitAQCAtMCwwICsxLDY5MSBAQAorKy8qIGdy YXBoZW5lLWdvYmplY3QtMS4wLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2Rp ZnkuICovCisrCisrW0NDb2RlIChjcHJlZml4ID0gIkdyYXBoZW5lIiwgZ2lyX25hbWVzcGFjZSA9 ICJHcmFwaGVuZSIsIGdpcl92ZXJzaW9uID0gIjEuMCIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJn cmFwaGVuZV8iKV0KKytuYW1lc3BhY2UgR3JhcGhlbmUgeworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfYm94X3QiLCB0 eXBlX2lkID0gImdyYXBoZW5lX2JveF9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgQm94IHsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5z X2JveCAoR3JhcGhlbmUuQm94IGIpOworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdy YXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5l LkJveD8gZW1wdHkgKCk7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuQm94IGIpOwor KwkJcHVibGljIEdyYXBoZW5lLkJveCBleHBhbmQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOwor KwkJcHVibGljIEdyYXBoZW5lLkJveCBleHBhbmRfc2NhbGFyIChmbG9hdCBzY2FsYXIpOworKwkJ cHVibGljIEdyYXBoZW5lLkJveCBleHBhbmRfdmVjMyAoR3JhcGhlbmUuVmVjMyB2ZWMpOworKwkJ cHVibGljIEdyYXBoZW5lLlNwaGVyZSBnZXRfYm91bmRpbmdfc3BoZXJlICgpOworKwkJcHVibGlj IEdyYXBoZW5lLlBvaW50M0QgZ2V0X2NlbnRlciAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfZGVw dGggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKysJCXB1YmxpYyBHcmFwaGVu ZS5Qb2ludDNEIGdldF9tYXggKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfbWlu ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3NpemUgKCk7CisrCQlwdWJsaWMgdm9p ZCBnZXRfdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgR3JhcGhl bmUuVmVjMyB2ZXJ0aWNlc1s4XSk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgpOworKwkJ cHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5maW5pdGUgKCk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXQgKEdyYXBoZW5lLlBvaW50M0Q/IG1pbiwgR3Jh cGhlbmUuUG9pbnQzRD8gbWF4KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5p dF9mcm9tX2JveCAoR3JhcGhlbmUuQm94IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5Cb3g/IGluaXRfZnJvbV9wb2ludHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5f cG9pbnRzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3Vp bnQiKV0gR3JhcGhlbmUuUG9pbnQzRFtdIHBvaW50cyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5Cb3g/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBtaW4sIEdyYXBoZW5lLlZl YzM/IG1heCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXRfZnJvbV92ZWN0 b3JzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3ZlY3RvcnMiLCBhcnJheV9sZW5n dGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5WZWMz W10gdmVjdG9ycyk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKEdyYXBoZW5lLkJveCBi LCBvdXQgR3JhcGhlbmUuQm94IHJlcyk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhl bmUuQm94PyBtaW51c19vbmUgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUu Qm94PyBvbmUgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBvbmVf bWludXNfb25lICgpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCB1bmlvbiAoR3JhcGhlbmUuQm94 IGIpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gemVybyAoKTsKKysJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25h bWUgPSAiZ3JhcGhlbmVfZXVsZXJfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfZXVsZXJfZ2V0X3R5 cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEV1 bGVyIHsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5FdWxlciBiKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfYmV0YSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2dhbW1h ICgpOworKwkJcHVibGljIEdyYXBoZW5lLkV1bGVyT3JkZXIgZ2V0X29yZGVyICgpOworKwkJcHVi bGljIGZsb2F0IGdldF94ICgpOworKwkJcHVibGljIGZsb2F0IGdldF95ICgpOworKwkJcHVibGlj IGZsb2F0IGdldF96ICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXQg KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu RXVsZXI/IGluaXRfZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXI/IHNyYyk7CisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4 PyBtLCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLkV1bGVyPyBpbml0X2Zyb21fcXVhdGVybmlvbiAoR3JhcGhlbmUuUXVhdGVybmlvbj8gcSwg R3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9yYWRpYW5zIChm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUu VmVjMz8gdiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5FdWxlcj8gaW5pdF93aXRoX29yZGVyIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6 LCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5FdWxlciBy ZW9yZGVyIChHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5N YXRyaXggdG9fbWF0cml4ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIHRvX3F1YXRlcm5pb24gKCk7CisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjMyB0b192ZWMzICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9mcnVzdHVtX3QiLCB0eXBl X2lkID0gImdyYXBoZW5lX2ZydXN0dW1fZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEZydXN0dW0geworKwkJcHVibGljIGJvb2wgY29u dGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLkZydXN0dW0gYik7Cisr CQlwdWJsaWMgdm9pZCBnZXRfcGxhbmVzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g cmVmIEdyYXBoZW5lLlBsYW5lIHBsYW5lc1s2XSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5GcnVzdHVtPyBpbml0IChHcmFwaGVuZS5QbGFuZSBwMCwgR3JhcGhlbmUuUGxhbmUgcDEsIEdy YXBoZW5lLlBsYW5lIHAyLCBHcmFwaGVuZS5QbGFuZSBwMywgR3JhcGhlbmUuUGxhbmUgcDQsIEdy YXBoZW5lLlBsYW5lIHA1KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkZydXN0dW0/IGlu aXRfZnJvbV9mcnVzdHVtIChHcmFwaGVuZS5GcnVzdHVtIHNyYyk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5GcnVzdHVtPyBpbml0X2Zyb21fbWF0cml4IChHcmFwaGVuZS5NYXRyaXggbWF0 cml4KTsKKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfYm94IChHcmFwaGVuZS5Cb3ggYm94KTsK KysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfc3BoZXJlIChHcmFwaGVuZS5TcGhlcmUgc3BoZXJl KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5o IiwgY25hbWUgPSAiZ3JhcGhlbmVfbWF0cml4X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX21hdHJp eF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgc3RydWN0IE1hdHJpeCB7CisrCQlwdWJsaWMgYm9v bCBkZWNvbXBvc2UgKG91dCBHcmFwaGVuZS5WZWMzIHRyYW5zbGF0ZSwgb3V0IEdyYXBoZW5lLlZl YzMgc2NhbGUsIG91dCBHcmFwaGVuZS5RdWF0ZXJuaW9uIHJvdGF0ZSwgb3V0IEdyYXBoZW5lLlZl YzMgc2hlYXIsIG91dCBHcmFwaGVuZS5WZWM0IHBlcnNwZWN0aXZlKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBkZXRlcm1pbmFudCAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuTWF0 cml4IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGVx dWFsX2Zhc3QgKEdyYXBoZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF9yb3cgKHVpbnQgaW5kZXhfKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfdmFsdWUgKHVpbnQg cm93LCB1aW50IGNvbCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg ZmxvYXQgZ2V0X3hfc2NhbGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJ cHVibGljIGZsb2F0IGdldF94X3RyYW5zbGF0aW9uICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95X3NjYWxlICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeV90cmFuc2xhdGlvbiAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfel9zY2FsZSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3pf dHJhbnNsYXRpb24gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJvbV8yZCAoZG91YmxlIHh4LCBkb3VibGUg eXgsIGRvdWJsZSB4eSwgZG91YmxlIHl5LCBkb3VibGUgeF8wLCBkb3VibGUgeV8wKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJp eD8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQg dlsxNl0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fbWF0cml4IChHcmFwaGVuZS5NYXRyaXggc3JjKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l Lk1hdHJpeD8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgdjAsIEdyYXBoZW5lLlZlYzQg djEsIEdyYXBoZW5lLlZlYzQgdjIsIEdyYXBoZW5lLlZlYzQgdjMpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zy dXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwg ZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfaWRlbnRpdHkgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5N YXRyaXg/IGluaXRfbG9va19hdCAoR3JhcGhlbmUuVmVjMyBleWUsIEdyYXBoZW5lLlZlYzMgY2Vu dGVyLCBHcmFwaGVuZS5WZWMzIHVwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9vcnRobyAoZmxvYXQgbGVmdCwg ZmxvYXQgcmlnaHQsIGZsb2F0IHRvcCwgZmxvYXQgYm90dG9tLCBmbG9hdCB6X25lYXIsIGZsb2F0 IHpfZmFyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9wZXJzcGVjdGl2ZSAoZmxvYXQgZm92eSwgZmxvYXQgYXNw ZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9yb3RhdGUgKGZs b2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3NjYWxlIChmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9za2V3IChmbG9hdCB4X3NrZXcs IGZsb2F0IHlfc2tldyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfdHJhbnNsYXRlIChHcmFwaGVuZS5Qb2ludDNE IHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1h dHJpeCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuTWF0cml4IGIsIGRvdWJsZSBmYWN0b3IpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaW52ZXJzZSAob3V0IEdy YXBoZW5lLk1hdHJpeCByZXMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGJvb2wgaXNfMmQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgYm9vbCBpc19iYWNrZmFjZV92aXNpYmxlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIGJvb2wgaXNfaWRlbnRpdHkgKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCBpc19zaW5ndWxhciAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggbXVsdGlwbHkgKEdyYXBo ZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMg Ym9vbCBuZWFyIChHcmFwaGVuZS5NYXRyaXggYiwgZmxvYXQgZXBzaWxvbik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IG5vcm1hbGl6ZSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRy aXggcGVyc3BlY3RpdmUgKGZsb2F0IGRlcHRoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyB2b2lkIHByaW50ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHByb2plY3RfcG9pbnQgKEdyYXBoZW5lLlBvaW50 IHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1 YWQgcHJvamVjdF9yZWN0IChHcmFwaGVuZS5SZWN0IHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgcHJvamVjdF9yZWN0X2JvdW5kcyAoR3Jh cGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2 b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIEdyYXBoZW5lLlZlYzMgYXhpcyk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKEdyYXBoZW5l LkV1bGVyIGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQg cm90YXRlX3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24gcSk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGVfeCAoZmxvYXQgYW5nbGUpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX3kgKGZs b2F0IGFuZ2xlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lk IHJvdGF0ZV96IChmbG9hdCBhbmdsZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgZmFjdG9yX3gsIGZsb2F0IGZhY3Rvcl95LCBmbG9h dCBmYWN0b3Jfeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9p ZCBza2V3X3h5IChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHZvaWQgc2tld194eiAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHNrZXdfeXogKGZsb2F0IGZhY3Rvcik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCB0b18yZCAob3V0IGRvdWJs ZSB4eCwgb3V0IGRvdWJsZSB5eCwgb3V0IGRvdWJsZSB4eSwgb3V0IGRvdWJsZSB5eSwgb3V0IGRv dWJsZSB4XzAsIG91dCBkb3VibGUgeV8wKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyB2b2lkIHRvX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g cmVmIGZsb2F0IHZbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5SZWN0IHRyYW5zZm9ybV9ib3VuZHMgKEdyYXBoZW5lLlJlY3Qgcik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IHRyYW5zZm9y bV9ib3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5Qb2ludCB0cmFuc2Zvcm1fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHAp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50 M0QgdHJhbnNmb3JtX3BvaW50M2QgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5IHRyYW5zZm9ybV9yYXkgKEdy YXBoZW5lLlJheSByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5RdWFkIHRyYW5zZm9ybV9yZWN0IChHcmFwaGVuZS5SZWN0IHIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlNwaGVyZSB0cmFuc2Zvcm1f c3BoZXJlIChHcmFwaGVuZS5TcGhlcmUgcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyB0cmFuc2Zvcm1fdmVjMyAoR3JhcGhlbmUuVmVjMyB2 KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0 IHRyYW5zZm9ybV92ZWM0IChHcmFwaGVuZS5WZWM0IHYpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChHcmFwaGVuZS5Qb2ludDNEIHBvcyk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4 IHRyYW5zcG9zZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5Qb2ludDNEIHVucHJvamVjdF9wb2ludDNkIChHcmFwaGVuZS5NYXRyaXggbW9kZWx2 aWV3LCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHVudHJhbnNmb3JtX2JvdW5kcyAoR3JhcGhlbmUu UmVjdCByLCBHcmFwaGVuZS5SZWN0IGJvdW5kcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgYm9vbCB1bnRyYW5zZm9ybV9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcCwg R3JhcGhlbmUuUmVjdCBib3VuZHMsIG91dCBHcmFwaGVuZS5Qb2ludCByZXMpOworKwl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJn cmFwaGVuZV9wbGFuZV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9wbGFuZV9nZXRfdHlwZSAoKSIp XQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgUGxhbmUgewor KwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1 YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5QbGFuZSBiKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRf Y29uc3RhbnQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfbm9ybWFsICgpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuUGxhbmU/IGluaXQgKEdyYXBoZW5lLlZlYzM/IG5vcm1h bCwgZmxvYXQgY29uc3RhbnQpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUGxhbmU/IGlu aXRfZnJvbV9wbGFuZSAoR3JhcGhlbmUuUGxhbmUgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLlBsYW5lPyBpbml0X2Zyb21fcG9pbnQgKEdyYXBoZW5lLlZlYzMgbm9ybWFsLCBHcmFw aGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBp bml0X2Zyb21fcG9pbnRzIChHcmFwaGVuZS5Qb2ludDNEIGEsIEdyYXBoZW5lLlBvaW50M0QgYiwg R3JhcGhlbmUuUG9pbnQzRCBjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBp bml0X2Zyb21fdmVjNCAoR3JhcGhlbmUuVmVjNCBzcmMpOworKwkJcHVibGljIEdyYXBoZW5lLlBs YW5lIG5lZ2F0ZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFuZSBub3JtYWxpemUgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBsYW5lIHRy YW5zZm9ybSAoR3JhcGhlbmUuTWF0cml4IG1hdHJpeCwgR3JhcGhlbmUuTWF0cml4PyBub3JtYWxf bWF0cml4KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29i amVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcG9pbnRfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVf cG9pbnRfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJs aWMgc3RydWN0IFBvaW50IHsKKysJCXB1YmxpYyBmbG9hdCB4OworKwkJcHVibGljIGZsb2F0IHk7 CisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5lLlBvaW50IGIsIG91dCBmbG9hdCBk X3gsIG91dCBmbG9hdCBkX3kpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlBvaW50 IGIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IGluaXQgKGZsb2F0IHgsIGZs b2F0IHkpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IGluaXRfZnJvbV9wb2lu dCAoR3JhcGhlbmUuUG9pbnQgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0X2Zyb21fdmVjMiAoR3JhcGhlbmUu VmVjMiBzcmMpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGludGVycG9sYXRlIChHcmFwaGVu ZS5Qb2ludCBiLCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5l LlBvaW50IGIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlZlYzIgdG9fdmVjMiAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBHcmFwaGVuZS5Qb2ludD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcG9pbnQzZF90 IiwgbG93ZXJfY2FzZV9jc3VmZml4ID0gInBvaW50M2QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3Bv aW50M2RfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJs aWMgc3RydWN0IFBvaW50M0QgeworKwkJcHVibGljIGZsb2F0IHg7CisrCQlwdWJsaWMgZmxvYXQg eTsKKysJCXB1YmxpYyBmbG9hdCB6OworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgY3Jvc3Mg KEdyYXBoZW5lLlBvaW50M0QgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlw dWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5lLlBvaW50M0QgYiwgb3V0IEdyYXBoZW5lLlZl YzMgZGVsdGEpOworKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuUG9pbnQzRCBiKTsKKysJ CXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5Qb2ludDNEIGIpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuUG9pbnQzRD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7Cisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEPyBpbml0X2Zyb21fcG9pbnQgKEdyYXBo ZW5lLlBvaW50M0Qgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IGlu aXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzIHYpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50 M0QgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlBvaW50M0QgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlw dWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJcHVibGljIGJvb2wgbmVhciAoR3JhcGhlbmUuUG9p bnQzRCBiLCBmbG9hdCBlcHNpbG9uKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIG5vcm1h bGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5Qb2ludDNEIG5vcm1hbGl6ZV92aWV3cG9ydCAoR3JhcGhlbmUuUmVjdCB2aWV3cG9ydCwgZmxv YXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBzY2Fs ZSAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHRvX3ZlYzMgKCk7Cisr CQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gemVybyAoKTsKKysJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUg PSAiZ3JhcGhlbmVfcXVhZF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9xdWFkX2dldF90eXBlICgp IildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBRdWFkIHsK KysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGJvdW5kcyAoKTsKKysJCXB1YmxpYyBib29sIGNvbnRh aW5zIChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50 PyBnZXRfcG9pbnQgKHVpbnQgaW5kZXhfKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1 YWQ/IGluaXQgKEdyYXBoZW5lLlBvaW50IHAxLCBHcmFwaGVuZS5Qb2ludCBwMiwgR3JhcGhlbmUu UG9pbnQgcDMsIEdyYXBoZW5lLlBvaW50IHA0KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGluaXRfZnJvbV9wb2ludHMgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Qb2ludCBwb2ludHNbNF0pOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhZD8gaW5pdF9mcm9tX3JlY3QgKEdyYXBoZW5l LlJlY3Qgcik7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdv YmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3F1YXRlcm5pb25fdCIsIHR5cGVfaWQgPSAiZ3Jh cGhlbmVfcXVhdGVybmlvbl9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCXB1YmxpYyBzdHJ1Y3QgUXVhdGVybmlvbiB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gYWRkIChHcmFwaGVuZS5RdWF0 ZXJuaW9uIGIpOworKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiKTsK KysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIpOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgeiwgZmxvYXQgdyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBp bml0X2Zyb21fYW5nbGVfdmVjMyAoZmxvYXQgYW5nbGUsIEdyYXBoZW5lLlZlYzMgYXhpcyk7Cisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fYW5nbGVzIChm bG9hdCBkZWdfeCwgZmxvYXQgZGVnX3ksIGZsb2F0IGRlZ196KTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRf ZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fbWF0cml4IChHcmFwaGVuZS5NYXRyaXggbSk7CisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fcXVhdGVybmlvbiAo R3JhcGhlbmUuUXVhdGVybmlvbiBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVh dGVybmlvbj8gaW5pdF9mcm9tX3JhZGlhbnMgKGZsb2F0IHJhZF94LCBmbG9hdCByYWRfeSwgZmxv YXQgcmFkX3opOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9m cm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlF1YXRlcm5pb24/IGluaXRfaWRlbnRpdHkgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVy bmlvbiBpbnZlcnQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlF1YXRlcm5pb24gbXVsdGlwbHkgKEdyYXBoZW5lLlF1YXRlcm5pb24gYik7Cisr CQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gc2NhbGUgKGZs b2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBzbGVycCAoR3JhcGhl bmUuUXVhdGVybmlvbiBiLCBmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIHZvaWQgdG9fYW5nbGVf dmVjMyAob3V0IGZsb2F0IGFuZ2xlLCBvdXQgR3JhcGhlbmUuVmVjMyBheGlzKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHRvX2FuZ2xlcyAob3V0IGZsb2F0 IGRlZ194LCBvdXQgZmxvYXQgZGVnX3ksIG91dCBmbG9hdCBkZWdfeik7CisrCQlwdWJsaWMgR3Jh cGhlbmUuTWF0cml4IHRvX21hdHJpeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KysJCXB1YmxpYyB2b2lkIHRvX3JhZGlhbnMgKG91dCBmbG9hdCByYWRfeCwgb3V0IGZsb2F0IHJh ZF95LCBvdXQgZmxvYXQgcmFkX3opOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgdG9fdmVjNCAo KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5o IiwgY25hbWUgPSAiZ3JhcGhlbmVfcmF5X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3JheV9nZXRf dHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCXB1YmxpYyBzdHJ1Y3Qg UmF5IHsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5SYXkgYik7CisrCQlwdWJsaWMg R3JhcGhlbmUuUG9pbnQzRCBnZXRfY2xvc2VzdF9wb2ludF90b19wb2ludCAoR3JhcGhlbmUuUG9p bnQzRCBwKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9kaXJlY3Rpb24gKCk7CisrCQlw dWJsaWMgZmxvYXQgZ2V0X2Rpc3RhbmNlX3RvX3BsYW5lIChHcmFwaGVuZS5QbGFuZSBwKTsKKysJ CXB1YmxpYyBmbG9hdCBnZXRfZGlzdGFuY2VfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcCk7 CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfb3JpZ2luICgpOworKwkJcHVibGljIEdy YXBoZW5lLlBvaW50M0QgZ2V0X3Bvc2l0aW9uX2F0IChmbG9hdCB0KTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLlJheT8gaW5pdCAoR3JhcGhlbmUuUG9pbnQzRD8gb3JpZ2luLCBHcmFwaGVu ZS5WZWMzPyBkaXJlY3Rpb24pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmF5PyBpbml0 X2Zyb21fcmF5IChHcmFwaGVuZS5SYXkgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlJheT8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/IG9yaWdpbiwgR3JhcGhlbmUuVmVj Mz8gZGlyZWN0aW9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMg R3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9uS2luZCBpbnRlcnNlY3RfYm94IChHcmFwaGVuZS5Cb3gg Yiwgb3V0IGZsb2F0IHRfb3V0KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlw dWJsaWMgR3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9uS2luZCBpbnRlcnNlY3Rfc3BoZXJlIChHcmFw aGVuZS5TcGhlcmUgcywgb3V0IGZsb2F0IHRfb3V0KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9uS2luZCBpbnRlcnNlY3Rf dHJpYW5nbGUgKEdyYXBoZW5lLlRyaWFuZ2xlIHQsIG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0c19ib3ggKEdy YXBoZW5lLkJveCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMg Ym9vbCBpbnRlcnNlY3RzX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHMpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfdHJpYW5nbGUgKEdy YXBoZW5lLlRyaWFuZ2xlIHQpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJn cmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9yZWN0X3QiLCB0eXBlX2lkID0g ImdyYXBoZW5lX3JlY3RfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwlwdWJsaWMgc3RydWN0IFJlY3QgeworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IG9yaWdp bjsKKysJCXB1YmxpYyBHcmFwaGVuZS5TaXplIHNpemU7CisrCQlwdWJsaWMgc3RhdGljIEdyYXBo ZW5lLlJlY3Q/IGFsbG9jICgpOworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBo ZW5lLlBvaW50IHApOworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcmVjdCAoR3JhcGhlbmUuUmVj dCBiKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5SZWN0IGIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgZXhwYW5kIChHcmFw aGVuZS5Qb2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMg ZmxvYXQgZ2V0X2FyZWEgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X2JvdHRvbV9s ZWZ0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9ib3R0b21fcmlnaHQgKCk7Cisr CQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X2NlbnRlciAoKTsKKysJCXB1YmxpYyBmbG9hdCBn ZXRfaGVpZ2h0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF90b3BfbGVmdCAoKTsK KysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfdG9wX3JpZ2h0ICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIHZvaWQgZ2V0X3ZlcnRpY2VzIChbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIEdyYXBoZW5lLlZlYzIgdmVydGljZXNbNF0pOworKwkJ cHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJ CXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/ IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gaW5pdF9mcm9tX3JlY3QgKEdyYXBoZW5lLlJl Y3Qgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IGluc2V0IChmbG9hdCBk X3gsIGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMg R3JhcGhlbmUuUmVjdCBpbnNldF9yIChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlwdWJsaWMg R3JhcGhlbmUuUmVjdCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuUmVjdCBiLCBkb3VibGUgZmFjdG9y KTsKKysJCXB1YmxpYyBib29sIGludGVyc2VjdGlvbiAoR3JhcGhlbmUuUmVjdCBiLCBvdXQgR3Jh cGhlbmUuUmVjdCByZXMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gbm9ybWFs aXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlJlY3Qgbm9ybWFsaXplX3IgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBv ZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IG9mZnNldF9yIChmbG9hdCBkX3gsIGZsb2F0IGRf eSk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3Qgcm91bmQgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3Qg cm91bmRfZXh0ZW50cyAoKTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLlJlY3Q/IHJvdW5kX3RvX3BpeGVsICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHNjYWxlIChmbG9hdCBzX2gsIGZsb2F0IHNf dik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB1bmlvbiAoR3JhcGhlbmUuUmVjdCBiKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFw aGVuZS5SZWN0PyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJn cmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zaW1kNGZfdCIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IFNpbWQ0RiB7CisrCX0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5l X3NpbWQ0eDRmX3QiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBTaW1k NFg0RiB7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3NpemVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfc2l6 ZV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBz dHJ1Y3QgU2l6ZSB7CisrCQlwdWJsaWMgZmxvYXQgd2lkdGg7CisrCQlwdWJsaWMgZmxvYXQgaGVp Z2h0OworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlNpemUgYik7CisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5TaXplPyBpbml0IChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsK KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNpemU/IGluaXRfZnJvbV9zaXplIChHcmFwaGVu ZS5TaXplIHNyYyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBpbnRlcnBvbGF0ZSAoR3JhcGhl bmUuU2l6ZSBiLCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TaXplIHNjYWxl IChmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlNpemU/ IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdv YmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3NwaGVyZV90IiwgdHlwZV9pZCA9ICJncmFwaGVu ZV9zcGhlcmVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlw dWJsaWMgc3RydWN0IFNwaGVyZSB7CisrCQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoR3Jh cGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5l LlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlNwaGVyZSBi KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZ2V0X2JvdW5kaW5nX2JveCAoKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5Qb2ludDNEIGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3Jh ZGl1cyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNwaGVyZT8gaW5pdCAoR3JhcGhl bmUuUG9pbnQzRD8gY2VudGVyLCBmbG9hdCByYWRpdXMpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuU3BoZXJlPyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFt ZSA9ICJuX3BvaW50cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xlbmd0aF90eXBl ID0gImd1aW50IildIEdyYXBoZW5lLlBvaW50M0RbXSBwb2ludHMsIEdyYXBoZW5lLlBvaW50M0Q/ IGNlbnRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TcGhlcmU/IGluaXRfZnJvbV92 ZWN0b3JzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3ZlY3RvcnMiLCBhcnJheV9s ZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5W ZWMzW10gdmVjdG9ycywgR3JhcGhlbmUuUG9pbnQzRD8gY2VudGVyKTsKKysJCXB1YmxpYyBib29s IGlzX2VtcHR5ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlNwaGVyZSB0cmFuc2xhdGUgKEdyYXBo ZW5lLlBvaW50M0QgcG9pbnQpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJn cmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV90cmlhbmdsZV90IiwgdHlwZV9p ZCA9ICJncmFwaGVuZV90cmlhbmdsZV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgVHJpYW5nbGUgeworKwkJcHVibGljIGJvb2wgY29u dGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAo R3JhcGhlbmUuVHJpYW5nbGUgYik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisrCQlw dWJsaWMgYm9vbCBnZXRfYmFyeWNvb3JkcyAoR3JhcGhlbmUuUG9pbnQzRD8gcCwgb3V0IEdyYXBo ZW5lLlZlYzIgcmVzKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZ2V0X2JvdW5kaW5nX2JveCAo KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9taWRwb2ludCAoKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWMzIGdldF9ub3JtYWwgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUGxhbmUg Z2V0X3BsYW5lICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3BvaW50cyAob3V0IEdyYXBoZW5lLlBv aW50M0QgYSwgb3V0IEdyYXBoZW5lLlBvaW50M0QgYiwgb3V0IEdyYXBoZW5lLlBvaW50M0QgYyk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgZ2V0X3V2IChH cmFwaGVuZS5Qb2ludDNEPyBwLCBHcmFwaGVuZS5WZWMyIHV2X2EsIEdyYXBoZW5lLlZlYzIgdXZf YiwgR3JhcGhlbmUuVmVjMiB1dl9jLCBvdXQgR3JhcGhlbmUuVmVjMiByZXMpOworKwkJcHVibGlj IHZvaWQgZ2V0X3ZlcnRpY2VzIChvdXQgR3JhcGhlbmUuVmVjMyBhLCBvdXQgR3JhcGhlbmUuVmVj MyBiLCBvdXQgR3JhcGhlbmUuVmVjMyBjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5UcmlhbmdsZT8gaW5pdF9mcm9tX2Zsb2F0IChb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgYVszXSwgW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIGZsb2F0IGJbM10sIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSBmbG9hdCBjWzNdKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlRyaWFuZ2xlPyBpbml0 X2Zyb21fcG9pbnQzZCAoR3JhcGhlbmUuUG9pbnQzRD8gYSwgR3JhcGhlbmUuUG9pbnQzRD8gYiwg R3JhcGhlbmUuUG9pbnQzRD8gYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Ucmlhbmds ZT8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/IGEsIEdyYXBoZW5lLlZlYzM/IGIsIEdy YXBoZW5lLlZlYzM/IGMpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFw aGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV92ZWMyX3QiLCB0eXBlX2lkID0gImdy YXBoZW5lX3ZlYzJfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBWZWMyIHsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIGFkZCAoR3Jh cGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5WZWMyIGRpdmlkZSAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUu VmVjMiB2Mik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X3ggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X3kgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5WZWMyPyBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IGluaXRfZnJv bV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IHNyY1syXSk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5W ZWMyPyBpbml0X2Zyb21fdmVjMiAoR3JhcGhlbmUuVmVjMiBzcmMpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIGludGVycG9sYXRlIChHcmFw aGVuZS5WZWMyIHYyLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBtYXggKEdyYXBoZW5lLlZlYzIgYik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBtaW4gKEdy YXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg R3JhcGhlbmUuVmVjMiBtdWx0aXBseSAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlZlYzIgdjIsIGZs b2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzIgbmVnYXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzIgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IG9uZSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIHNj YWxlIChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlZlYzIgc3VidHJhY3QgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCBkZXN0WzJdKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyB4X2F4 aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgR3JhcGhlbmUuVmVjMj8geV9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IHplcm8gKCk7Cisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gImdyYXBoZW5lX3ZlYzNfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfdmVjM19nZXRfdHlw ZSAoKSIpXQorKwlwdWJsaWMgc3RydWN0IFZlYzMgeworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgYWRkIChHcmFwaGVuZS5WZWMzIGIpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgY3Jvc3Mg KEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgR3JhcGhlbmUuVmVjMyBkaXZpZGUgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVuZS5WZWMzIGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBo ZW5lLlZlYzMgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZs b2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzIgZ2V0X3h5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3h5MCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF94eXowICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgZ2V0X3h5ejEgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRf eHl6dyAoZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg ZmxvYXQgZ2V0X3kgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg ZmxvYXQgZ2V0X3ogKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5WZWMzPyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlZlYzM/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZs b2F0IHNyY1szXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5WZWMzPyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyBzcmMpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGlu dGVycG9sYXRlIChHcmFwaGVuZS5WZWMzIHYyLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBtYXggKEdyYXBoZW5l LlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjMyBtaW4gKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBtdWx0aXBseSAoR3JhcGhlbmUuVmVjMyBiKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBo ZW5lLlZlYzMgdjIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbmVnYXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbm9ybWFsaXplICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5l LlZlYzM/IG9uZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5WZWMzIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgc3VidHJhY3QgKEdyYXBoZW5lLlZlYzMg Yik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9h dCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCBkZXN0WzNdKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFw aGVuZS5WZWMzPyB4X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8geV9heGlzICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZl YzM/IHpfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV92 ZWM0X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3ZlYzRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGlj IHN0cnVjdCBWZWM0IHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5WZWM0IGFkZCAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGRpdmlkZSAoR3JhcGhlbmUuVmVjNCBi KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdy YXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMg Ym9vbCBlcXVhbCAoR3JhcGhlbmUuVmVjNCB2Mik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3cgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBnZXRfeHkgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfeHl6ICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95ICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF96ICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8g aW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBpbml0X2Zy b21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBzcmNbNF0pOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu VmVjND8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIgc3JjLCBmbG9hdCB6LCBmbG9hdCB3 KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlZlYzQ/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzIHNyYywgZmxvYXQgdyk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5W ZWM0PyBpbml0X2Zyb21fdmVjNCAoR3JhcGhlbmUuVmVjNCBzcmMpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGludGVycG9sYXRlIChHcmFw aGVuZS5WZWM0IHYyLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBtYXggKEdyYXBoZW5lLlZlYzQgYik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBtaW4gKEdy YXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg R3JhcGhlbmUuVmVjNCBtdWx0aXBseSAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlZlYzQgdjIsIGZs b2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzQgbmVnYXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzQgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IG9uZSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHNj YWxlIChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlZlYzQgc3VidHJhY3QgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCBkZXN0WzRdKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB3X2F4 aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgR3JhcGhlbmUuVmVjND8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHlfYXhpcyAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5WZWM0PyB6X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gemVybyAoKTsKKysJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAi Z3JhcGhlbmVfZXVsZXJfb3JkZXJfdCIsIGNwcmVmaXggPSAiR1JBUEhFTkVfRVVMRVJfT1JERVJf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJ cHVibGljIGVudW0gRXVsZXJPcmRlciB7CisrCQlERUZBVUxULAorKwkJWFlaLAorKwkJWVpYLAor KwkJWlhZLAorKwkJWFpZLAorKwkJWVhaLAorKwkJWllYLAorKwkJU1hZWiwKKysJCVNYWVgsCisr CQlTWFpZLAorKwkJU1haWCwKKysJCVNZWlgsCisrCQlTWVpZLAorKwkJU1lYWiwKKysJCVNZWFks CisrCQlTWlhZLAorKwkJU1pYWiwKKysJCVNaWVgsCisrCQlTWllaLAorKwkJUlpZWCwKKysJCVJY WVgsCisrCQlSWVpYLAorKwkJUlhaWCwKKysJCVJYWlksCisrCQlSWVpZLAorKwkJUlpYWSwKKysJ CVJZWFksCisrCQlSWVhaLAorKwkJUlpYWiwKKysJCVJYWVosCisrCQlSWllaCisrCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdy YXBoZW5lX3JheV9pbnRlcnNlY3Rpb25fa2luZF90IiwgY3ByZWZpeCA9ICJHUkFQSEVORV9SQVlf SU5URVJTRUNUSU9OX0tJTkRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBlbnVtIFJheUludGVyc2VjdGlvbktpbmQgeworKwkJ Tk9ORSwKKysJCUVOVEVSLAorKwkJTEVBVkUKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfSEFTX0dDQyIpXQor KwlwdWJsaWMgY29uc3QgaW50IEhBU19HQ0M7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9IQVNfU0NBTEFSIildCisr CXB1YmxpYyBjb25zdCBpbnQgSEFTX1NDQUxBUjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX0hBU19TU0UiKV0KKysJ cHVibGljIGNvbnN0IGludCBIQVNfU1NFOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Z3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfUEkiKV0KKysJcHVibGljIGNv bnN0IGRvdWJsZSBQSTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdv YmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1BJXzIiKV0KKysJcHVibGljIGNvbnN0IGRvdWJs ZSBQSV8yOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5o IiwgY25hbWUgPSAiR1JBUEhFTkVfU0lNRF9TIildCisrCXB1YmxpYyBjb25zdCBzdHJpbmcgU0lN RF9TOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwg Y25hbWUgPSAiR1JBUEhFTkVfVkVDMl9MRU4iKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwlwdWJsaWMgY29uc3QgaW50IFZFQzJfTEVOOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfVkVDM19MRU4iKV0K KysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgY29uc3QgaW50IFZFQzNfTEVO OworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25h bWUgPSAiR1JBUEhFTkVfVkVDNF9MRU4iKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwlwdWJsaWMgY29uc3QgaW50IFZFQzRfTEVOOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZmFsc2UiKV0KKysJcHVibGljIGNvbnN0 IGludCBAZmFsc2U7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2Jq ZWN0LmgiLCBjbmFtZSA9ICJ0cnVlIildCisrCXB1YmxpYyBjb25zdCBpbnQgQHRydWU7CisrfQor ZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0yLmRlcHMgdmFwaS9saWJtdXR0ZXItMi5kZXBzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDFmM2M5MDc5Li4wMDAwMDAwMAorLS0tIHZh cGkvbGlibXV0dGVyLTIuZGVwcworKysrIC9kZXYvbnVsbAorQEAgLTEsOSArMCwwIEBACistY2Fp cm8KKy1nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzCistZ2RrLTMuMAorLWdkay1waXhidWYtMi4w CistZ3RrKy0zLjAKKy14MTEKKy14Zml4ZXMtNC4wCistY2x1dHRlci0xLjAKKy1jb2dsLTEuMAor ZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0yLnZhcGkgdmFwaS9saWJtdXR0ZXItMi52YXBpCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDBhNmM0MzU3Li4wMDAwMDAwMAorLS0tIHZh cGkvbGlibXV0dGVyLTIudmFwaQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMyNSArMCwwIEBACist LyogbGlibXV0dGVyLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICov CistCistW0NDb2RlIChjcHJlZml4ID0gIk1ldGEiLCBnaXJfbmFtZXNwYWNlID0gIk1ldGEiLCBn aXJfdmVyc2lvbiA9ICIzLjAiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKy1uYW1l c3BhY2UgTWV0YSB7CistCW5hbWVzcGFjZSBQcmVmcyB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX2xpc3Rl bmVyIChNZXRhLlByZWZzQ2hhbmdlZEZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgYmVsbF9pc19h dWRpYmxlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2VfbmFtZSAoaW50IGksIHN0 cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gZ2V0X2FjdGlvbl9k b3VibGVfY2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9u IGdldF9hY3Rpb25fbWlkZGxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5U aXRsZWJhckFjdGlvbiBnZXRfYWN0aW9uX3JpZ2h0X2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRp YyBib29sIGdldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYXV0 b19tYXhpbWl6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYXV0b19yYWlzZSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg aW50IGdldF9hdXRvX3JhaXNlX2RlbGF5ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkJ1dHRvbkxheW91dCBn ZXRfYnV0dG9uX2xheW91dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfY2VudGVyX25ld193aW5kb3dz ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIGdldF9jb21wb3NpdGluZ19tYW5hZ2VyICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBp bnQgZ2V0X2N1cnNvcl9zaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBnZXRfY3Vyc29y X3RoZW1lICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9kaXNhYmxlX3dvcmthcm91bmRzICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0 YXRpYyBpbnQgZ2V0X2RyYWdfdGhyZXNob2xkICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X2RyYWdnYWJs ZV9ib3JkZXJfd2lkdGggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2R5bmFtaWNfd29ya3NwYWNlcyAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgYm9vbCBnZXRfZWRnZV90aWxpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2Zv Y3VzX2NoYW5nZV9vbl9wb2ludGVyX3Jlc3QgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTW9k ZSBnZXRfZm9jdXNfbW9kZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuRm9jdXNOZXdXaW5kb3dzIGdl dF9mb2N1c19uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZm9yY2VfZnVsbHNjcmVl biAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Ym9vbCBnZXRfZ25vbWVfYW5pbWF0aW9ucyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfaWdub3JlX3Jl cXVlc3RfaGlkZV90aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5LZXlCaW5kaW5nQWN0aW9uIGdl dF9rZXliaW5kaW5nX2FjdGlvbiAoc3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X21vdXNl X2J1dHRvbl9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLlZpcnR1YWxNb2RpZmllciBnZXRfbW91c2Vf YnV0dG9uX21vZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfbW91c2VfYnV0dG9uX3Jlc2l6ZSAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgaW50IGdldF9udW1fd29ya3NwYWNlcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfcmFp c2Vfb25fY2xpY2sgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udERlc2NyaXB0aW9uIGdldF90aXRsZWJhcl9m b250ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQor LQkJcHVibGljIHN0YXRpYyBib29sIGdldF92aXN1YWxfYmVsbCAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0 b3AuVmlzdWFsQmVsbFR5cGUgZ2V0X3Zpc3VhbF9iZWxsX3R5cGUgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgc3RyaW5nIGdldF93b3Jrc3BhY2VfbmFtZSAoaW50IGkpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF93 b3Jrc3BhY2VzX29ubHlfb25fcHJpbWFyeSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0ICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIG92ZXJyaWRlX3ByZWZlcmVuY2Vfc2NoZW1hIChzdHJpbmcga2V5LCBzdHJpbmcg c2NoZW1hKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfbGlzdGVuZXIgKE1ldGEuUHJlZnNDaGFuZ2Vk RnVuYyBmdW5jKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9yY2VfZnVsbHNjcmVlbiAoYm9vbCB3aGV0 aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciAoYm9v bCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbnVtX3dvcmtzcGFjZXMgKGludCBuX3dvcmtz cGFjZXMpOworLQl9CistCW5hbWVzcGFjZSBVdGlsIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfYWRkX3ZlcmJvc2VfdG9waWMiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGlj IHRvcGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIm1ldGFfYnVnIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgYnVnIChzdHJpbmcgZm9y bWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAibWV0YV9kZWJ1Z19zcGV3X3JlYWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBk ZWJ1Z19zcGV3X3JlYWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVj dF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV91bnJlZGlyZWN0 X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbXB0eV9z dGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9p bnB1dF9yZWdpb24gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zv cl9zY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmFibGVfdW5yZWRpcmVjdF9mb3Jf c2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lcnJvcl90cmFwX3BvcCIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIGVycm9yX3RyYXBfcG9wIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X2Vycm9yX3RyYXBfcHVzaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVycm9yX3RyYXBfcHVz aCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lcnJvcl90cmFwX3B1c2hfd2l0aF9yZXR1cm4i KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3B1c2hfd2l0aF9yZXR1cm4gKE1l dGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24i KV0KKy0JCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGV4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0 aW9uICh1aW50IGtleWJpbmRpbmdfYWN0aW9uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZmF0YWwiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBmYXRhbCAoc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZnJlZV9nc2xpc3RfYW5kX2Vs ZW1lbnRzIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRz IChHTGliLlNMaXN0PHZvaWQqPiBsaXN0X3RvX2RlZXBfZnJlZSk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dfdXRmOF9zdHJuZHVw IildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywg c2l6ZV90IG4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIpXQorLQkJcHVibGljIHN0YXRpYyBN ZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVjdGlvbiAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZ2V0X292ZXJs YXlfd2luZG93IildCistCQlwdWJsaWMgc3RhdGljIFguV2luZG93IGdldF9vdmVybGF5X3dpbmRv dyAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90b19zdHJpbmciKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKGludCBncmF2aXR5KTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1l dGFfaXNfZGVidWdnaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAi bWV0YV9pc19zeW5jaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfc3luY2luZyAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1l dGFfaXNfdmVyYm9zZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3ZlcmJvc2UgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X2lzX3dheWxhbmRfY29tcG9zaXRvciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3dheWxh bmRfY29tcG9zaXRvciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJfYWRkIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQg bGF0ZXJfYWRkIChNZXRhLkxhdGVyVHlwZSB3aGVuLCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVu Yyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJtZXRhX2xhdGVyX3JlbW92ZSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGxhdGVyX3JlbW92 ZSAodWludCBsYXRlcl9pZCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJtZXRhX3BvcF9ub19tc2dfcHJlZml4IildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgcG9wX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3B1c2hfbm9fbXNnX3ByZWZpeCIpXQor LQkJcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfcmVjdCIpXQor LQkJcHVibGljIHN0YXRpYyBNZXRhLlJlY3RhbmdsZT8gcmVjdCAoaW50IHgsIGludCB5LCBpbnQg d2lkdGgsIGludCBoZWlnaHQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAibWV0YV9yZW1vdmVfdmVyYm9zZV90b3BpYyIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkIHJlbW92ZV92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuU2NyZWVuIHNjcmVlbiwgWC5Y c2VydmVyUmVnaW9uIHJlZ2lvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Nob3dfZGlhbG9nIildCistCQlwdWJsaWMgc3RhdGlj IEdMaWIuUGlkIHNob3dfZGlhbG9nIChzdHJpbmcgdHlwZSwgc3RyaW5nIG1lc3NhZ2UsIHN0cmlu Zz8gdGltZW91dCA9IG51bGwsIHN0cmluZz8gZGlzcGxheSA9IG51bGwsIHN0cmluZz8gb2tfdGV4 dCA9IG51bGwsIHN0cmluZz8gY2FuY2VsX3RleHQgPSBudWxsLCBzdHJpbmc/IGljb25fbmFtZSA9 IG51bGwsIGludCB0cmFuc2llbnRfZm9yID0gMCwgR0xpYi5TTGlzdDxzdHJpbmc+PyBjb2x1bW5z ID0gbnVsbCwgR0xpYi5TTGlzdDxzdHJpbmc+PyBlbnRyaWVzID0gbnVsbCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3RvcGljX3Jl YWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB0b3BpY19yZWFsIChNZXRhLkRlYnVnVG9waWMg dG9waWMsIHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Vuc2lnbmVkX2xvbmdfZXF1YWwiKV0KKy0J CXB1YmxpYyBzdGF0aWMgaW50IHVuc2lnbmVkX2xvbmdfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2 Mik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJtZXRhX3Vuc2lnbmVkX2xvbmdfaGFzaCIpXQorLQkJcHVibGljIHN0YXRpYyB1aW50IHVuc2ln bmVkX2xvbmdfaGFzaCAodm9pZCogdik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3ZlcmJvc2VfcmVhbCIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIHZlcmJvc2VfcmVhbCAoc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfd2FybmluZyIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHdhcm5pbmcgKHN0cmluZyBmb3JtYXQsIC4uLik7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9 ICJtZXRhX2JhY2tlbmRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIEJh Y2tlbmQgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2VuZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2VuZC5oIiwgY25hbWUgPSAibWV0YV9nZXRfYmFja2Vu ZCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQmFja2VuZCBnZXRfYmFja2VuZCAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlICgpOworLQkJcHVi bGljIHZvaWQgbG9ja19sYXlvdXRfZ3JvdXAgKHVpbnQgaWR4KTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9rZXltYXAgKHN0cmluZyBsYXlvdXRzLCBzdHJpbmcgdmFyaWFudHMsIHN0cmluZyBvcHRpb25z KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0KTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIs IHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFz cyBCYWNrZ3JvdW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEJhY2tncm91bmQgKE1ldGEuU2NyZWVuIHNjcmVl bik7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7CistCQlwdWJsaWMgdm9p ZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBkb3VibGUgYmxl bmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworLQkJcHVibGljIHZv aWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9m aWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hh ZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25k X2NvbG9yKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2NyZWVuIG1l dGFfc2NyZWVuIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBjaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfYWN0b3Jf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRBY3RvciA6IENsdXR0ZXIu QWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRh aW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBCYWNrZ3Jv dW5kQWN0b3IgKE1ldGEuU2NyZWVuIHNjcmVlbiwgaW50IG1vbml0b3IpOworLQkJcHVibGljIHZv aWQgc2V0X2JhY2tncm91bmQgKE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVkLCBkb3VibGUgYnJpZ2h0bmVzcywgZG91 YmxlIHNoYXJwbmVzcyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJh Y2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgYnJpZ2h0bmVzcyB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNjcmVlbiBtZXRhX3NjcmVlbiB7IG93bmVk IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQg bW9uaXRvciB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBib29sIHZpZ25ldHRlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGRvdWJsZSB2aWduZXR0ZV9zaGFycG5lc3MgeyBnZXQ7IHNldDsgfQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o IiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGNsYXNzIEJhY2tncm91bmRHcm91cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRv ciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRh YmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0g IkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kR3JvdXAgKCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgi LCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgQmFja2dyb3VuZEltYWdlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tncm91bmRJbWFn ZSAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9zdWNjZXNzICgpOworLQkJcHVibGljIHVub3duZWQg Q29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIGJvb2wgaXNfbG9hZGVkICgp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxvYWRlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIsIHR5cGVfaWQgPSAi bWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2NhY2hlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFz cyBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZ3JvdW5kSW1hZ2VD YWNoZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkJhY2tncm91bmRJbWFnZUNh Y2hlIGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIE1ldGEuQmFja2dyb3VuZEltYWdlIGxvYWQg KEdMaWIuRmlsZSBmaWxlKTsKKy0JCXB1YmxpYyB2b2lkIHB1cmdlIChHTGliLkZpbGUgZmlsZSk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwgdHlw ZV9pZCA9ICJtZXRhX2JhcnJpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhcnJp ZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgQmFycmllciAoKTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3kg KCk7CistCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUgKCk7CistCQlwdWJsaWMgdm9pZCByZWxlYXNl IChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBNZXRhLkJhcnJpZXJEaXJlY3Rpb24gZGlyZWN0aW9ucyB7IGdldDsgY29uc3RydWN0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7 IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBpbnQgeDEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgaW50IHgyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGludCB5MSB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBpbnQgeTIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25h bCB2b2lkIGhpdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIGxlZnQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29w eSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJp ZXJfZXZlbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBCYXJy aWVyRXZlbnQgeworLQkJcHVibGljIGludCBkdDsKKy0JCXB1YmxpYyBkb3VibGUgZHg7CistCQlw dWJsaWMgZG91YmxlIGR5OworLQkJcHVibGljIGludCBldmVudF9pZDsKKy0JCXB1YmxpYyBib29s IGdyYWJiZWQ7CistCQlwdWJsaWMgYm9vbCByZWxlYXNlZDsKKy0JCXB1YmxpYyB1aW50MzIgdGlt ZTsKKy0JCXB1YmxpYyBkb3VibGUgeDsKKy0JCXB1YmxpYyBkb3VibGUgeTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLmgiKV0KKy0JW0NvbXBhY3Rd CistCXB1YmxpYyBjbGFzcyBDb21wb3NpdG9yIHsKKy0JCXB1YmxpYyB2b2lkIGFkZF93aW5kb3cg KE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworLQkJcHVi bGljIGJvb2wgZmlsdGVyX2tleWJpbmRpbmcgKE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0J CXB1YmxpYyB2b2lkIGZsYXNoX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9 ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGZvY3Vz X3N0YWdlX3dpbmRvdyAoTWV0YS5TY3JlZW4gc2NyZWVuLCB1aW50MzIgdGltZXN0YW1wKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBj bmFtZSA9ICJtZXRhX2dldF9mZWVkYmFja19ncm91cF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX3NjcmVl biAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9zdGFnZV9mb3Jfc2Ny ZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3Rvcj8gZ2V0X3N0YWdl X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfdG9w X3dpbmRvd19ncm91cF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1 dHRlci5BY3Rvcj8gZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4g c2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfYWN0b3JzIildCistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3dBY3Rvcj4/IGdldF93aW5k b3dfYWN0b3JzIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRv d19ncm91cF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5B Y3Rvcj8gZ2V0X3dpbmRvd19ncm91cF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOwor LQkJcHVibGljIHZvaWQgaGlkZV90aWxlX3ByZXZpZXcgKCk7CistCQlwdWJsaWMgdm9pZCBoaWRl X3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkNvbXBFZmZlY3QgZWZmZWN0KTsKKy0J CXB1YmxpYyB2b2lkIG1hbmFnZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ29tcG9zaXRvciBA bmV3IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMgdm9pZCBxdWV1ZV9mcmFtZV9k cmF3biAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIG5vX2RlbGF5X2ZyYW1lKTsKKy0JCXB1Ymxp YyB2b2lkIHJlbW92ZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9p ZCBzaG93X3RpbGVfcHJldmlldyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLlJlY3RhbmdsZSB0 aWxlX3JlY3QsIGludCB0aWxlX21vbml0b3JfbnVtYmVyKTsKKy0JCXB1YmxpYyB2b2lkIHNob3df d2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuQ29tcEVmZmVjdCBlZmZlY3QpOworLQkJ cHVibGljIHZvaWQgc2hvd193aW5kb3dfbWVudSAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldp bmRvd01lbnVUeXBlIG1lbnUsIGludCB4LCBpbnQgeSk7CistCQlwdWJsaWMgdm9pZCBzaG93X3dp bmRvd19tZW51X2Zvcl9yZWN0IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5 cGUgbWVudSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaXplX2NoYW5n ZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5TaXplQ2hhbmdlIHdoaWNoX2NoYW5n ZSwgTWV0YS5SZWN0YW5nbGUgb2xkX2ZyYW1lX3JlY3QsIE1ldGEuUmVjdGFuZ2xlIG9sZF9idWZm ZXJfcmVjdCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9zdGFnZV9pc19mb2N1c2VkIildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgc3RhZ2VfaXNfZm9jdXNlZCAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1 YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIGZyb20sIE1ldGEuV29y a3NwYWNlIHRvLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pOworLQkJcHVibGljIHZv aWQgc3luY19zdGFjayAoR0xpYi5MaXN0PE1ldGEuV2luZG93QWN0b3I+IHN0YWNrKTsKKy0JCXB1 YmxpYyB2b2lkIHN5bmNfdXBkYXRlc19mcm96ZW4gKE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlw dWJsaWMgdm9pZCBzeW5jX3dpbmRvd19nZW9tZXRyeSAoTWV0YS5XaW5kb3cgd2luZG93LCBib29s IGRpZF9wbGFjZW1lbnQpOworLQkJcHVibGljIHZvaWQgdW5tYW5hZ2UgKCk7CistCQlwdWJsaWMg dm9pZCB3aW5kb3dfb3BhY2l0eV9jaGFuZ2VkIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVi bGljIHZvaWQgd2luZG93X3NoYXBlX2NoYW5nZWQgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlw dWJsaWMgdm9pZCB3aW5kb3dfc3VyZmFjZV9jaGFuZ2VkIChNZXRhLldpbmRvdyB3aW5kb3cpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfdHJhY2tlcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgQ3Vyc29yVHJhY2tlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBDdXJzb3JUcmFja2Vy ICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ3Vyc29yVHJhY2tlciBnZXRfZm9y X3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9ob3QgKG91 dCBpbnQgeCwgb3V0IGludCB5KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyIChpbnQgeCwg aW50IHksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZHMpOworLQkJcHVibGljIHVub3duZWQgQ29n bC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl92aXNp YmxlIChib29sIHZpc2libGUpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2Vk ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIs IHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBE aXNwbGF5IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERpc3BsYXkgKCk7CistCQlwdWJsaWMgdm9pZCBhZGRf aWdub3JlZF9jcm9zc2luZ19zZXJpYWwgKHVsb25nIHNlcmlhbCk7CistCQlwdWJsaWMgdWludCBh ZGRfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUsIEdMaWIuU2V0dGluZ3Mgc2V0dGluZ3MsIE1ldGEu S2V5QmluZGluZ0ZsYWdzIGZsYWdzLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jIGhhbmRsZXIp OworLQkJcHVibGljIGJvb2wgYmVnaW5fZ3JhYl9vcCAoTWV0YS5TY3JlZW4gc2NyZWVuLCBNZXRh LldpbmRvdyB3aW5kb3csIE1ldGEuR3JhYk9wIG9wLCBib29sIHBvaW50ZXJfYWxyZWFkeV9ncmFi YmVkLCBib29sIGZyYW1lX2FjdGlvbiwgaW50IGJ1dHRvbiwgdWxvbmcgbW9kbWFzaywgdWludDMy IHRpbWVzdGFtcCwgaW50IHJvb3RfeCwgaW50IHJvb3RfeSk7CistCQlwdWJsaWMgdm9pZCBjbGVh cl9tb3VzZV9tb2RlICgpOworLQkJcHVibGljIHZvaWQgZW5kX2dyYWJfb3AgKHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIHZvaWQgZm9jdXNfdGhlX25vX2ZvY3VzX3dpbmRvdyAoTWV0YS5T Y3JlZW4gc2NyZWVuLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWV6ZV9r ZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkNvbXBv c2l0b3IgZ2V0X2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50X3Rp bWUgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50X3RpbWVfcm91bmR0cmlwICgpOwor LQkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBNZXRhLldpbmRvdyBnZXRfZm9jdXNfd2luZG93ICgpOworLQkJcHVibGljIE1ldGEuR3JhYk9w IGdldF9ncmFiX29wICgpOworLQkJcHVibGljIHVpbnQgZ2V0X2tleWJpbmRpbmdfYWN0aW9uICh1 aW50IGtleWNvZGUsIHVsb25nIG1hc2spOworLQkJcHVibGljIHVpbnQzMiBnZXRfbGFzdF91c2Vy X3RpbWUgKCk7CistCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgpOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9jdXJyZW50IChNZXRhLlRhYkxpc3QgdHlw ZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBN ZXRhLldpbmRvdz4gZ2V0X3RhYl9saXN0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3Bh Y2U/IHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX25l eHQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIE1ldGEuV2lu ZG93PyB3aW5kb3csIGJvb2wgYmFja3dhcmQpOworLQkJcHVibGljIHVub3duZWQgWC5EaXNwbGF5 IGdldF94ZGlzcGxheSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3hpbnB1dF9vcGNvZGUgKCk7Cist CQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcgYWNjZWxlcmF0b3IpOworLQkJ cHVibGljIGJvb2wgaGFzX3NoYXBlICgpOworLQkJcHVibGljIGJvb2wgaXNfcG9pbnRlcl9lbXVs YXRpbmdfc2VxdWVuY2UgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UpOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5Hcm91cCBsb29rdXBfZ3JvdXAgKFguV2luZG93IGdyb3VwX2xlYWRl cik7CistCQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUpOworLQkJ cHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3VzX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBi b29sIGZvY3VzX2ZyYW1lLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0 PHdlYWsgTWV0YS5XaW5kb3c+IHNvcnRfd2luZG93c19ieV9zdGFja2luZyAoR0xpYi5TTGlzdDxN ZXRhLldpbmRvdz4gd2luZG93cyk7CistCQlwdWJsaWMgYm9vbCBzdXBwb3J0c19leHRlbmRlZF9i YXJyaWVycyAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuZnJlZXplX2tleWJvYXJkICh1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHVuZ3JhYl9hY2NlbGVyYXRvciAodWludCBhY3Rpb25f aWQpOworLQkJcHVibGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsK Ky0JCXB1YmxpYyB2b2lkIHVubWFuYWdlX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuLCB1aW50 MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVp bnQzMiB0aW1lMSwgdWludDMyIHRpbWUyKTsKKy0JCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9u b19mb2N1c193aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIHVpbnQgcDAsIHVpbnQgcDEpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuU2NyZWVuIG9iamVjdCwg TWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBn cmFiX29wX2VuZCAoTWV0YS5TY3JlZW4gb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFi T3AgcDEpOworLQkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3Rp dmF0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CistCQlwdWJs aWMgc2lnbmFsIGJvb2wgcmVzdGFydCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jl c2l6ZV9wb3B1cCAoYm9vbCBvYmplY3QsIE1ldGEuUmVjdGFuZ2xlIHAwLCBpbnQgcDEsIGludCBw Mik7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXN0YXJ0X21lc3NhZ2UgKHN0cmluZz8g bWVzc2FnZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2NyZWF0ZWQgKE1ldGEuV2lu ZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2RlbWFuZHNfYXR0ZW50 aW9uIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19t YXJrZWRfdXJnZW50IChNZXRhLldpbmRvdyBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xh c3MgRnJhbWUgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2dyb3Vw LmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBHcm91cCB7CistCQlwdWJsaWMgaW50 IGdldF9zaXplICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgp OworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgp OworLQkJcHVibGljIGJvb2wgcHJvcGVydHlfbm90aWZ5IChYLkV2ZW50IGV2ZW50KTsKKy0JCXB1 YmxpYyB2b2lkIHVwZGF0ZV9sYXllcnMgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV9pZGxlX21v bml0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIElkbGVNb25pdG9yIDogR0xpYi5P YmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJ cHJvdGVjdGVkIElkbGVNb25pdG9yICgpOworLQkJcHVibGljIHVpbnQgYWRkX2lkbGVfd2F0Y2gg KHVpbnQ2NCBpbnRlcnZhbF9tc2VjLCBvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBj YWxsYmFjayk7CistCQlwdWJsaWMgdWludCBhZGRfdXNlcl9hY3RpdmVfd2F0Y2ggKG93bmVkIE1l dGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9jb3JlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93 bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworLQkJ cHVibGljIGludDY0IGdldF9pZGxldGltZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV93YXRj aCAodWludCBpZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgZGV2aWNl X2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9rZXliaW5kaW5ncy5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGlu Z19nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEtleUJpbmRpbmcg eworLQkJcHVibGljIHVpbnQgZ2V0X21hc2sgKCk7CistCQlwdWJsaWMgTWV0YS5WaXJ0dWFsTW9k aWZpZXIgZ2V0X21vZGlmaWVycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFt ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2J1aWx0aW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19y ZXZlcnNlZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2tleWJpbmRp bmdzLmgiLCBjbmFtZSA9ICJtZXRhX2tleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciIpXQor LQkJcHVibGljIHN0YXRpYyBib29sIHNldF9jdXN0b21faGFuZGxlciAoc3RyaW5nIG5hbWUsIG93 bmVkIE1ldGEuS2V5SGFuZGxlckZ1bmM/IGhhbmRsZXIpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1l dGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFz cyBNb25pdG9yTWFuYWdlciA6IEdMaWIuREJ1c0ludGVyZmFjZVNrZWxldG9uLCBHTGliLkRCdXNJ bnRlcmZhY2UgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHJvdGVjdGVkIE1vbml0b3JNYW5hZ2VyICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IE1ldGEuTW9uaXRvck1hbmFnZXIgQGdldCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3Jf Zm9yX291dHB1dCAodWludCBpZCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29uZmlybV9kaXNw bGF5X2NoYW5nZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFBsdWdpbiAoKTsK Ky0JCXB1YmxpYyBib29sIGJlZ2luX21vZGFsIChNZXRhLk1vZGFsT3B0aW9ucyBvcHRpb25zLCB1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGNvbXBsZXRlX2Rpc3BsYXlfY2hhbmdl IChib29sIG9rKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbmZp cm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBkZXN0cm95IChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGRl c3Ryb3lfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lk IGVuZF9tb2RhbCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlBs dWdpbkluZm8/IGdldF9pbmZvICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5TY3JlZW4gZ2V0 X3NjcmVlbiAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVf dGlsZV9wcmV2aWV3ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wg a2V5YmluZGluZ19maWx0ZXIgKE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfc3dpdGNoX3dvcmtzcGFjZSAoKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfd2luZG93X2VmZmVjdHMg KE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHN0YXRpYyB2b2lkIG1hbmFnZXJf c2V0X3BsdWdpbl90eXBlIChHTGliLlR5cGUgZ3R5cGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgbWFwIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1Ymxp YyB2b2lkIG1hcF9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWluaW1pemUgKE1ldGEuV2luZG93QWN0b3Ig YWN0b3IpOworLQkJcHVibGljIHZvaWQgbWluaW1pemVfY29tcGxldGVkIChNZXRhLldpbmRvd0Fj dG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIE1l dGEuUGx1Z2luSW5mbz8gcGx1Z2luX2luZm8gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBzaG93X3RpbGVfcHJldmlldyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRh LlJlY3RhbmdsZSB0aWxlX3JlY3QsIGludCB0aWxlX21vbml0b3JfbnVtYmVyKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnUgKE1ldGEuV2lu ZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBpbnQgeCwgaW50IHkpOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd193aW5kb3dfbWVudV9mb3Jf cmVjdCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIE1ldGEu UmVjdGFuZ2xlIHJlY3QpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg c2l6ZV9jaGFuZ2UgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IsIE1ldGEuU2l6ZUNoYW5nZSB3aGlj aF9jaGFuZ2UsIE1ldGEuUmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0LCBNZXRhLlJlY3RhbmdsZSBv bGRfYnVmZmVyX3JlY3QpOworLQkJcHVibGljIHZvaWQgc2l6ZV9jaGFuZ2VfY29tcGxldGVkIChN ZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHN0YXJ0ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg c3dpdGNoX3dvcmtzcGFjZSAoaW50IGZyb20sIGludCB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24g ZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2VfY29tcGxldGVkICgp OworLSAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVubWluaW1pemUgKE1l dGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgdW5taW5pbWl6ZV9jb21wbGV0 ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIGJvb2wgeGV2ZW50X2ZpbHRlciAoWC5FdmVudCBldmVudCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvc2NyZWVuLmgiLCB0eXBlX2lkID0gIm1ldGFfc2Ny ZWVuX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTY3JlZW4gOiBHTGliLk9iamVjdCB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgU2NyZWVuICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGFwcGVuZF9u ZXdfd29ya3NwYWNlIChib29sIGFjdGl2YXRlLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1Ymxp YyB2b2lkIGZvY3VzX2RlZmF1bHRfd2luZG93ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgpOworLQkJcHVi bGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0 X2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRfbW9uaXRvcl9m b3JfcG9zIChpbnQgeCwgaW50IHkpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EaXNwbGF5IGdl dF9kaXNwbGF5ICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9tb25pdG9yX2dlb21l dHJ5IChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgYm9vbCBnZXRfbW9uaXRvcl9pbl9mdWxsc2Ny ZWVuIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2luZGV4X2Zvcl9y ZWN0IChNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfbmVp Z2hib3JfaW5kZXggKGludCB3aGljaF9tb25pdG9yLCBNZXRhLlNjcmVlbkRpcmVjdGlvbiBkaXIp OworLQkJcHVibGljIGludCBnZXRfbl9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25f d29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRvciAoKTsKKy0J CXB1YmxpYyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc2l6 ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CistCQlwdWJs aWMgdW5vd25lZCBHTGliLkxpc3Q8TWV0YS5Xb3Jrc3BhY2U+IGdldF93b3Jrc3BhY2VzICgpOwor LQkJcHVibGljIFguV2luZG93IGdldF94cm9vdCAoKTsKKy0JCXB1YmxpYyB2b2lkIG92ZXJyaWRl X3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuU2NyZWVuQ29ybmVyIHN0YXJ0aW5nX2Nvcm5lciwgYm9v bCB2ZXJ0aWNhbF9sYXlvdXQsIGludCBuX3Jvd3MsIGludCBuX2NvbHVtbnMpOworLQkJcHVibGlj IHZvaWQgcmVtb3ZlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCB1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7CistCQlwdWJs aWMgdm9pZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3IpOworLQkJcHVibGljIGludCBu X3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBpbl9mdWxsc2NyZWVu X2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXN0YWNrZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgc3RhcnR1cF9zZXF1ZW5jZV9jaGFuZ2VkICh2b2lkKiBvYmplY3QpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHdpbmRvd19lbnRlcmVkX21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93 IHAwKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbGVmdF9tb25pdG9yIChpbnQgb2Jq ZWN0LCBNZXRhLldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya2FyZWFzX2No YW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2Jq ZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVj dCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0 LCBpbnQgcDAsIE1ldGEuTW90aW9uRGlyZWN0aW9uIHAxKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCByZWZfZnVuY3Rpb24g PSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIs IHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCistCVtDb21wYWN0XQorLQlw dWJsaWMgY2xhc3MgU2hhZG93IHsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKGludCB3aW5k b3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwg Q2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWludCAoaW50IHdp bmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0 LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7 CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZmFjdG9yeV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgU2hhZG93RmFjdG9yeSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBTaGFkb3dGYWN0b3J5 ICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuU2hhZG93RmFjdG9yeSBnZXRfZGVm YXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvd1BhcmFtcyBnZXRfcGFyYW1zIChzdHJpbmcg Y2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvdyBnZXRfc2hh ZG93IChNZXRhLldpbmRvd1NoYXBlIHNoYXBlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHN0cmlu ZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQpOworLQkJcHVibGljIHZvaWQgc2V0X3BhcmFtcyAo c3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCwgTWV0YS5TaGFkb3dQYXJhbXMgQHBhcmFt cyk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgiLCB0eXBlX2lkID0g Im1ldGFfc2hhcGVkX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYXBl ZFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0 YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU2hhcGVkVGV4 dHVyZSAoKTsKKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFu Z2xlSW50IGNsaXApOworLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJl ICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBzIChib29sIGNyZWF0ZV9taXBt YXBzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9tYXNrX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBtYXNr X3RleHR1cmUpOworLQkJcHVibGljIHZvaWQgc2V0X29wYXF1ZV9yZWdpb24gKG93bmVkIENhaXJv LlJlZ2lvbiBvcGFxdWVfcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIHVwZGF0ZV9hcmVhIChpbnQg eCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg c2l6ZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3RoZW1lLmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBUaGVtZSB7CistCQlwdWJs aWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5UaGVtZSBnZXRfZGVmYXVsdCAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIE1ldGEuVGhlbWUgQG5ldyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3df Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvdyA6IEdMaWIuT2Jq ZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBXaW5kb3cgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZSAodWludDMyIGN1cnJl bnRfdGltZSk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRoX3dvcmtzcGFjZSAodWludDMy IGN1cnJlbnRfdGltZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyBib29s IGFsbG93c19tb3ZlICgpOworLQkJcHVibGljIGJvb2wgYWxsb3dzX3Jlc2l6ZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIGJlZ2luX2dyYWJfb3AgKE1ldGEuR3JhYk9wIG9wLCBib29sIGZyYW1lX2FjdGlv biwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCBjYW5fY2xvc2UgKCk7CistCQlw dWJsaWMgYm9vbCBjYW5fbWF4aW1pemUgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5fbWluaW1pemUg KCk7CistCQlwdWJsaWMgYm9vbCBjYW5fc2hhZGUgKCk7CistCQlwdWJsaWMgdm9pZCBjaGFuZ2Vf d29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIHZvaWQgY2hh bmdlX3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IHNwYWNlX2luZGV4LCBib29sIGFwcGVuZCk7Cist CQlwdWJsaWMgdm9pZCBjaGVja19hbGl2ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg TWV0YS5SZWN0YW5nbGUgY2xpZW50X3JlY3RfdG9fZnJhbWVfcmVjdCAoTWV0YS5SZWN0YW5nbGUg Y2xpZW50X3JlY3QpOworLQkJcHVibGljIHZvaWQgY29tcHV0ZV9ncm91cCAoKTsKKy0JCXB1Ymxp YyB2b2lkIEBkZWxldGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5XaW5kb3cgZmluZF9yb290X2FuY2VzdG9yICgpOworLQkJcHVibGljIHZvaWQgZm9jdXMgKHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9yZWFjaF9hbmNlc3RvciAoTWV0YS5X aW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfdHJhbnNpZW50 IChNZXRhLldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xl IGZyYW1lX3JlY3RfdG9fY2xpZW50X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3QpOwor LQkJW0NDb2RlIChhcnJheV9sZW5ndGhfcG9zID0gMC4xLCBhcnJheV9sZW5ndGhfdHlwZSA9ICJn c2l6ZSIpXQorLQkJcHVibGljIGludFtdIGdldF9hbGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMg TWV0YS5SZWN0YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9jbGllbnRfbWFjaGluZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0 IGdldF9jb21wb3NpdG9yX3ByaXZhdGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X2Rlc2NyaXB0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNw bGF5ICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5GcmFtZSBnZXRfZnJhbWUgKCk7CistCQlw dWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24/IGdldF9mcmFtZV9ib3VuZHMgKCk7CistCQlwdWJs aWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2ZyYW1lX3JlY3QgKCk7CistCQlwdWJsaWMgTWV0YS5GcmFt ZVR5cGUgZ2V0X2ZyYW1lX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkdyb3VwIGdl dF9ncm91cCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcF9tZW51X29i amVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRp b25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBsaWNhdGlvbl9v YmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX21lbnViYXJf b2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a190aGVtZV92 YXJpYW50ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdW5pcXVlX2J1c19u YW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfd2luZG93X29iamVjdF9w YXRoICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2ljb25fZ2VvbWV0cnkgKG91dCBNZXRhLlJlY3Rh bmdsZSByZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVyICgpOworLQkJ cHVibGljIE1ldGEuTWF4aW1pemVGbGFncyBnZXRfbWF4aW1pemVkICgpOworLQkJcHVibGljIGlu dCBnZXRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbXV0dGVyX2hp bnRzICgpOworLQkJcHVibGljIGludCBnZXRfcGlkICgpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9yb2xlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5TY3JlZW4gZ2V0X3NjcmVl biAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9zdGFibGVfc2VxdWVuY2UgKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X3N0YXJ0dXBfaWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LldpbmRvdz8gZ2V0X3RpbGVfbWF0Y2ggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X3RpdGxlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RyYW5zaWVudF9m b3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF91c2VyX3RpbWUgKCk7CistCQlwdWJsaWMgTWV0 YS5XaW5kb3dUeXBlIGdldF93aW5kb3dfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfd21fY2xhc3MgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3dtX2NsYXNz X2luc3RhbmNlICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfYWxs X21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfY3Vy cmVudF9tb25pdG9yICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFf Zm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEu V29ya3NwYWNlIGdldF93b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3h3aW5k b3cgKCk7CistCQlwdWJsaWMgdm9pZCBncm91cF9sZWFkZXJfY2hhbmdlZCAoKTsKKy0JCXB1Ymxp YyBib29sIGhhc19mb2N1cyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fib3ZlICgpOworLQkJcHVi bGljIGJvb2wgaXNfYWx3YXlzX29uX2FsbF93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIGJvb2wg aXNfYW5jZXN0b3Jfb2ZfdHJhbnNpZW50IChNZXRhLldpbmRvdyB0cmFuc2llbnQpOworLQkJcHVi bGljIGJvb2wgaXNfYXR0YWNoZWRfZGlhbG9nICgpOworLQkJcHVibGljIGJvb2wgaXNfZnVsbHNj cmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2hpZGRlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlz X21vbml0b3Jfc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vbl9hbGxfd29ya3NwYWNlcyAo KTsKKy0JCXB1YmxpYyBib29sIGlzX29uX3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX292ZXJyaWRlX3JlZGlyZWN0ICgpOworLQkJcHVibGljIGJvb2wgaXNfcmVtb3RlICgp OworLQkJcHVibGljIGJvb2wgaXNfc2NyZWVuX3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNf c2hhZGVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2tpcF90YXNrYmFyICgpOworLQkJcHVibGlj IHZvaWQga2lsbCAoKTsKKy0JCXB1YmxpYyBib29sIGxvY2F0ZWRfb25fd29ya3NwYWNlIChNZXRh LldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIHZvaWQgbG93ZXIgKCk7CistCQlwdWJs aWMgdm9pZCBtYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZvaWQgbWFrZV9mdWxsc2NyZWVuICgp OworLQkJcHVibGljIHZvaWQgbWF4aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25z KTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplICgpOworLQkJcHVibGljIHZvaWQgbW92ZV9mcmFt ZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQgcm9vdF95X253KTsKKy0JCXB1Ymxp YyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGlu dCByb290X3lfbncsIGludCB3LCBpbnQgaCk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0 b3IgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJv b2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVz dGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9z aXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBwcml2KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kZW1h bmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRh LlJlY3RhbmdsZT8gcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaGFkZSAodWludDMyIHRpbWVzdGFt cCk7CistCQlwdWJsaWMgdm9pZCBzaG92ZV90aXRsZWJhcl9vbnNjcmVlbiAoKTsKKy0JCXB1Ymxp YyBib29sIHNob3dpbmdfb25faXRzX3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNodXRk b3duX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgc3RpY2sgKCk7CistCQlwdWJsaWMgYm9vbCB0 aXRsZWJhcl9pc19vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9hYm92ZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIHVubWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgdW5t YXhpbWl6ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQg dW5taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgp OworLQkJcHVibGljIHZvaWQgdW5zaGFkZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg dm9pZCB1bnN0aWNrICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBh Ym92ZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhcHBl YXJzX2ZvY3VzZWQgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJv b2wgZGVjb3JhdGVkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBi b29sIGRlbWFuZHNfYXR0ZW50aW9uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBib29sIGZ1bGxzY3JlZW4geyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2Fw cF9tZW51X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBsaWNh dGlvbl9pZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwbGljYXRpb25fb2JqZWN0 X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX21lbnViYXJfb2JqZWN0X3BhdGgg eyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3VuaXF1ZV9idXNfbmFtZSB7IGdldDsgfQor LQkJcHVibGljIHN0cmluZyBndGtfd2luZG93X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGljb24geyBvd25lZCBnZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4aW1pemVkX2hvcml6 b250YWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBt YXhpbWl6ZWRfdmVydGljYWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgQ2Fpcm8uU3VyZmFjZSBtaW5pX2ljb24geyBvd25lZCBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWluaW1pemVkIHsgZ2V0OyB9CistCQlwdWJsaWMg c3RyaW5nIG11dHRlcl9oaW50cyB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgYm9vbCBvbl9hbGxfd29ya3NwYWNlcyB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCByZXNpemVhYmxlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBib29sIHNraXBfdGFza2JhciB7IGdldDsgfQorLQkJcHVibGljIHN0 cmluZyB0aXRsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9v bCB1cmdlbnQgeyBnZXQ7IH0KKy0JCXB1YmxpYyB1aW50IHVzZXJfdGltZSB7IGdldDsgfQorLQkJ cHVibGljIE1ldGEuV2luZG93VHlwZSB3aW5kb3dfdHlwZSB7IGdldDsgfQorLQkJcHVibGljIHN0 cmluZyB3bV9jbGFzcyB7IGdldDsgfQorLQkJW0NDb2RlIChjbmFtZSA9ICJmb2N1cyIpXQorLQkJ cHVibGljIHNpZ25hbCB2b2lkIGZvY3VzZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcG9z aXRpb25fY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByYWlzZWQgKCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHVubWFuYWdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAo KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3Is IENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJs ZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgV2luZG93QWN0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRf bWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0 dXJlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX2Rlc3Ryb3llZCAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHN0 cmluZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRvd19tb2RlIHsgZ2V0OyBzZXQ7IH0K Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhX3dpbmRvd19zaGFwZS5oIiwgcmVmX2Z1bmN0aW9u ID0gIm1ldGFfd2luZG93X3NoYXBlX3JlZiIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfc2hhcGVf Z2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3dpbmRvd19zaGFwZV91bnJlZiIp XQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFdpbmRvd1NoYXBlIHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBXaW5kb3dTaGFwZSAo Q2Fpcm8uUmVnaW9uIHJlZ2lvbik7CistCQlwdWJsaWMgYm9vbCBlcXVhbCAoTWV0YS5XaW5kb3dT aGFwZSBzaGFwZV9iKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3JkZXJzIChpbnQgYm9yZGVyX3Rv cCwgaW50IGJvcmRlcl9yaWdodCwgaW50IGJvcmRlcl9ib3R0b20sIGludCBib3JkZXJfbGVmdCk7 CistCQlwdWJsaWMgdWludCBoYXNoICgpOworLQkJcHVibGljIE1ldGEuV2luZG93U2hhcGUgQHJl ZiAoKTsKKy0JCXB1YmxpYyBDYWlyby5SZWdpb24gdG9fcmVnaW9uIChpbnQgY2VudGVyX3dpZHRo LCBpbnQgY2VudGVyX2hlaWdodCk7CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAi bWV0YV93b3Jrc3BhY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdvcmtzcGFjZSA6 IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXByb3RlY3RlZCBXb3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZSAo dWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRoX2ZvY3VzIChN ZXRhLldpbmRvdyBmb2N1c190aGlzLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuV29ya3NwYWNlIGdldF9uZWlnaGJvciAoTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGly ZWN0aW9uKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVuIGdldF9zY3JlZW4gKCk7Cist CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7Cist CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdo aWNoX21vbml0b3IpOworLQkJcHVibGljIGludCBpbmRleCAoKTsKKy0JCXB1YmxpYyBHTGliLkxp c3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGljIHZvaWQgc2V0 X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ+IHN0cnV0cyk7CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG5fd2luZG93cyB7IGdldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCB3b3Jrc3BhY2VfaW5kZXggeyBnZXQ7IH0K Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfYWRkZWQgKE1ldGEuV2luZG93IG9iamVjdCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X3JlbW92ZWQgKE1ldGEuV2luZG93IG9iamVj dCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBCdXR0b25MYXlvdXQgeworLQkJ W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1 ZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uW10gbGVmdF9idXR0b25zOwor LQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0g dHJ1ZSldCistCQlwdWJsaWMgd2VhayBib29sW10gbGVmdF9idXR0b25zX2hhc19zcGFjZXI7Cist CQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0 cnVlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb25bXSByaWdodF9idXR0b25z OworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVk ID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBib29sW10gcmlnaHRfYnV0dG9uc19oYXNfc3BhY2Vy OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBFZGdlIHsKKy0JCXB1YmxpYyBNZXRh LlJlY3RhbmdsZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lkZSBzaWRlX3R5cGU7CistCQlwdWJs aWMgTWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0 cnVjdCBGcmFtZUJvcmRlcnMgeworLQkJcHVibGljIEd0ay5Cb3JkZXIgdmlzaWJsZTsKKy0JCXB1 YmxpYyBHdGsuQm9yZGVyIGludmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHRvdGFsOwor LQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMg c3RydWN0IFBsdWdpbkluZm8geworLQkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CistCQlwdWJs aWMgd2VhayBzdHJpbmcgdmVyc2lvbjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBhdXRob3I7Cist CQlwdWJsaWMgd2VhayBzdHJpbmcgbGljZW5zZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBkZXNj cmlwdGlvbjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBs dWdpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVy c2lvbiB7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21ham9yOworLQkJcHVibGljIHVpbnQgdmVy c2lvbl9taW5vcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CistCQlwdWJsaWMgdWlu dCB2ZXJzaW9uX2FwaTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i b3hlcy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xl IHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyBpbnQgd2lk dGg7CistCQlwdWJsaWMgaW50IGhlaWdodDsKKy0JCXB1YmxpYyBpbnQgYXJlYSAoKTsKKy0JCXB1 YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVyX3JlY3QpOworLQkJ cHVibGljIGJvb2wgY291bGRfZml0X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVyX3JlY3QpOwor LQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuUmVjdGFuZ2xlIHNyYzIpOworLQkJcHVibGljIGJv b2wgaG9yaXpfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIGJvb2wg aW50ZXJzZWN0IChNZXRhLlJlY3RhbmdsZSBzcmMyLCBvdXQgTWV0YS5SZWN0YW5nbGUgZGVzdCk7 CistCQlwdWJsaWMgYm9vbCBvdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJs aWMgTWV0YS5SZWN0YW5nbGUgdW5pb24gKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1Ymxp YyBib29sIHZlcnRfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7CistCQlwdWJs aWMgaW50IHJhZGl1czsKKy0JCXB1YmxpYyBpbnQgdG9wX2ZhZGU7CistCQlwdWJsaWMgaW50IHhf b2Zmc2V0OworLQkJcHVibGljIGludCB5X29mZnNldDsKKy0JCXB1YmxpYyB1aW50OCBvcGFjaXR5 OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTdHJ1dCB7CistCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCBjcHJlZml4ID0gIk1FVEFf QkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dl dF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gQmFycmllckRpcmVjdGlvbiB7 CistCQlQT1NJVElWRV9YLAorLQkJUE9TSVRJVkVfWSwKKy0JCU5FR0FUSVZFX1gsCistCQlORUdB VElWRV9ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgi LCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0 b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24g eworLQkJTUVOVSwKKy0JCU1JTklNSVpFLAorLQkJTUFYSU1JWkUsCistCQlDTE9TRSwKKy0JCVNI QURFLAorLQkJQUJPVkUsCistCQlTVElDSywKKy0JCVVOU0hBREUsCistCQlVTkFCT1ZFLAorLQkJ VU5TVElDSywKKy0JCUFQUE1FTlUsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIiwgY3ByZWZpeCA9ICJNRVRBX0NPTVBfRUZGRUNU XyIsIHR5cGVfaWQgPSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBDb21wRWZmZWN0IHsKKy0JCUNSRUFURSwKKy0JCVVOTUlOSU1JWkUsCistCQlERVNUUk9Z LAorLQkJTUlOSU1JWkUsCistCQlOT05FCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAi bWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ3Vyc29yIHsKKy0JCU5P TkUsCistCQlERUZBVUxULAorLQkJTk9SVEhfUkVTSVpFLAorLQkJU09VVEhfUkVTSVpFLAorLQkJ V0VTVF9SRVNJWkUsCistCQlFQVNUX1JFU0laRSwKKy0JCVNFX1JFU0laRSwKKy0JCVNXX1JFU0la RSwKKy0JCU5FX1JFU0laRSwKKy0JCU5XX1JFU0laRSwKKy0JCU1PVkVfT1JfUkVTSVpFX1dJTkRP VywKKy0JCUJVU1ksCistCQlETkRfSU5fRFJBRywKKy0JCURORF9NT1ZFLAorLQkJRE5EX0NPUFks CistCQlETkRfVU5TVVBQT1JURURfVEFSR0VULAorLQkJUE9JTlRJTkdfSEFORCwKKy0JCUNST1NT SEFJUiwKKy0JCUlCRUFNLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1l dGFfZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBE ZWJ1Z1RvcGljIHsKKy0JCVZFUkJPU0UsCistCQlGT0NVUywKKy0JCVdPUktBUkVBLAorLQkJU1RB Q0ssCistCQlUSEVNRVMsCistCQlTTSwKKy0JCUVWRU5UUywKKy0JCVdJTkRPV19TVEFURSwKKy0J CVdJTkRPV19PUFMsCistCQlHRU9NRVRSWSwKKy0JCVBMQUNFTUVOVCwKKy0JCVBJTkcsCistCQlY SU5FUkFNQSwKKy0JCUtFWUJJTkRJTkdTLAorLQkJU1lOQywKKy0JCUVSUk9SUywKKy0JCVNUQVJU VVAsCistCQlQUkVGUywKKy0JCUdST1VQUywKKy0JCVJFU0laSU5HLAorLQkJU0hBUEVTLAorLQkJ Q09NUE9TSVRPUiwKKy0JCUVER0VfUkVTSVNUQU5DRSwKKy0JCURCVVMKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJF Q1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxh Z3NdCistCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7CistCQlMRUZULAorLQkJUklHSFQsCistCQlU T1AsCistCQlCT1RUT00sCistCQlVUCwKKy0JCURPV04sCistCQlIT1JJWk9OVEFMLAorLQkJVkVS VElDQUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwg Y3ByZWZpeCA9ICJNRVRBX0VER0VfIiwgdHlwZV9pZCA9ICJtZXRhX2VkZ2VfdHlwZV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBFZGdlVHlwZSB7CistCQlXSU5ET1csCistCQlNT05JVE9S LAorLQkJU0NSRUVOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY3ByZWZpeCA9ICJNRVRBX0VYSVRfIiwgdHlwZV9pZCA9ICJtZXRhX2V4aXRfY29kZV9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBFeGl0Q29kZSB7CistCQlTVUNDRVNTLAorLQkJ RVJST1IKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfZmxhZ3NfZ2V0 X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBGcmFtZUZsYWdzIHsKKy0JCUFM TE9XU19ERUxFVEUsCistCQlBTExPV1NfTUVOVSwKKy0JCUFMTE9XU19BUFBNRU5VLAorLQkJQUxM T1dTX01JTklNSVpFLAorLQkJQUxMT1dTX01BWElNSVpFLAorLQkJQUxMT1dTX1ZFUlRJQ0FMX1JF U0laRSwKKy0JCUFMTE9XU19IT1JJWk9OVEFMX1JFU0laRSwKKy0JCUhBU19GT0NVUywKKy0JCVNI QURFRCwKKy0JCVNUVUNLLAorLQkJTUFYSU1JWkVELAorLQkJQUxMT1dTX1NIQURFLAorLQkJQUxM T1dTX01PVkUsCistCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcsCistCQlBQk9WRSwKKy0J CVRJTEVEX0xFRlQsCistCQlUSUxFRF9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FX1RZUEVfIiwgdHlw ZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRnJh bWVUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURJQUxPRywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVVU SUxJVFksCistCQlNRU5VLAorLQkJQk9SREVSLAorLQkJQVRUQUNIRUQsCistCQlMQVNUOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoTWV0YS5GcmFtZVR5cGUgdHlwZSk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0g Ik1FVEFfR1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBHcmFiT3AgeworLQkJTk9ORSwKKy0JCUNPTVBPU0lUT1IsCistCQlXQVlM QU5EX1BPUFVQLAorLQkJV0lORE9XX0JBU0UsCistCQlGUkFNRV9CVVRUT04sCistCQlNT1ZJTkcs CistCQlSRVNJWklOR19OVywKKy0JCVJFU0laSU5HX04sCistCQlSRVNJWklOR19ORSwKKy0JCVJF U0laSU5HX0UsCistCQlSRVNJWklOR19TVywKKy0JCVJFU0laSU5HX1MsCistCQlSRVNJWklOR19T RSwKKy0JCVJFU0laSU5HX1csCistCQlLRVlCT0FSRF9NT1ZJTkcsCistCQlLRVlCT0FSRF9SRVNJ WklOR19VTktOT1dOLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTlcsCistCQlLRVlCT0FSRF9SRVNJ WklOR19OLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTkUsCistCQlLRVlCT0FSRF9SRVNJWklOR19F LAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU1csCistCQlLRVlCT0FSRF9SRVNJWklOR19TLAorLQkJ S0VZQk9BUkRfUkVTSVpJTkdfU0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19XCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9L RVlCSU5ESU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24geworLQkJTk9ORSwK Ky0JCVdPUktTUEFDRV8xLAorLQkJV09SS1NQQUNFXzIsCistCQlXT1JLU1BBQ0VfMywKKy0JCVdP UktTUEFDRV80LAorLQkJV09SS1NQQUNFXzUsCistCQlXT1JLU1BBQ0VfNiwKKy0JCVdPUktTUEFD RV83LAorLQkJV09SS1NQQUNFXzgsCistCQlXT1JLU1BBQ0VfOSwKKy0JCVdPUktTUEFDRV8xMCwK Ky0JCVdPUktTUEFDRV8xMSwKKy0JCVdPUktTUEFDRV8xMiwKKy0JCVdPUktTUEFDRV9MRUZULAor LQkJV09SS1NQQUNFX1JJR0hULAorLQkJV09SS1NQQUNFX1VQLAorLQkJV09SS1NQQUNFX0RPV04s CistCQlXT1JLU1BBQ0VfTEFTVCwKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlMsCistCQlTV0lUQ0hf QVBQTElDQVRJT05TX0JBQ0tXQVJELAorLQkJU1dJVENIX0dST1VQLAorLQkJU1dJVENIX0dST1VQ X0JBQ0tXQVJELAorLQkJU1dJVENIX1dJTkRPV1MsCistCQlTV0lUQ0hfV0lORE9XU19CQUNLV0FS RCwKKy0JCVNXSVRDSF9QQU5FTFMsCistCQlTV0lUQ0hfUEFORUxTX0JBQ0tXQVJELAorLQkJQ1lD TEVfR1JPVVAsCistCQlDWUNMRV9HUk9VUF9CQUNLV0FSRCwKKy0JCUNZQ0xFX1dJTkRPV1MsCist CQlDWUNMRV9XSU5ET1dTX0JBQ0tXQVJELAorLQkJQ1lDTEVfUEFORUxTLAorLQkJQ1lDTEVfUEFO RUxTX0JBQ0tXQVJELAorLQkJU0hPV19ERVNLVE9QLAorLQkJUEFORUxfTUFJTl9NRU5VLAorLQkJ UEFORUxfUlVOX0RJQUxPRywKKy0JCVRPR0dMRV9SRUNPUkRJTkcsCistCQlTRVRfU1BFV19NQVJL LAorLQkJQUNUSVZBVEVfV0lORE9XX01FTlUsCistCQlUT0dHTEVfRlVMTFNDUkVFTiwKKy0JCVRP R0dMRV9NQVhJTUlaRUQsCistCQlUT0dHTEVfVElMRURfTEVGVCwKKy0JCVRPR0dMRV9USUxFRF9S SUdIVCwKKy0JCVRPR0dMRV9BQk9WRSwKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0J CVRPR0dMRV9TSEFERUQsCistCQlNSU5JTUlaRSwKKy0JCUNMT1NFLAorLQkJQkVHSU5fTU9WRSwK Ky0JCUJFR0lOX1JFU0laRSwKKy0JCVRPR0dMRV9PTl9BTExfV09SS1NQQUNFUywKKy0JCU1PVkVf VE9fV09SS1NQQUNFXzEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8yLAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfMywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV81 LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzcsCistCQlN T1ZFX1RPX1dPUktTUEFDRV84LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOSwKKy0JCU1PVkVfVE9f V09SS1NQQUNFXzEwLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTEsCistCQlNT1ZFX1RPX1dPUktT UEFDRV8xMiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xFRlQsCistCQlNT1ZFX1RPX1dPUktTUEFD RV9SSUdIVCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1VQLAorLQkJTU9WRV9UT19XT1JLU1BBQ0Vf RE9XTiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xBU1QsCistCQlNT1ZFX1RPX01PTklUT1JfTEVG VCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9SSUdIVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9VUCwKKy0J CU1PVkVfVE9fTU9OSVRPUl9ET1dOLAorLQkJUkFJU0VfT1JfTE9XRVIsCistCQlSQUlTRSwKKy0J CUxPV0VSLAorLQkJTUFYSU1JWkVfVkVSVElDQUxMWSwKKy0JCU1BWElNSVpFX0hPUklaT05UQUxM WSwKKy0JCU1PVkVfVE9fQ09STkVSX05XLAorLQkJTU9WRV9UT19DT1JORVJfTkUsCistCQlNT1ZF X1RPX0NPUk5FUl9TVywKKy0JCU1PVkVfVE9fQ09STkVSX1NFLAorLQkJTU9WRV9UT19TSURFX04s CistCQlNT1ZFX1RPX1NJREVfUywKKy0JCU1PVkVfVE9fU0lERV9FLAorLQkJTU9WRV9UT19TSURF X1csCistCQlNT1ZFX1RPX0NFTlRFUiwKKy0JCU9WRVJMQVlfS0VZLAorLQkJSVNPX05FWFRfR1JP VVAsCistCQlBTFdBWVNfT05fVE9QLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZX0JJTkRJTkdfIiwg dHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFn c10KKy0JcHVibGljIGVudW0gS2V5QmluZGluZ0ZsYWdzIHsKKy0JCU5PTkUsCistCQlQRVJfV0lO RE9XLAorLQkJQlVJTFRJTiwKKy0JCUlTX1JFVkVSU0VECistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVf aWQgPSAibWV0YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExhdGVy VHlwZSB7CistCQlSRVNJWkUsCistCQlDQUxDX1NIT1dJTkcsCistCQlDSEVDS19GVUxMU0NSRUVO LAorLQkJU1lOQ19TVEFDSywKKy0JCUJFRk9SRV9SRURSQVcsCistCQlJRExFCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0xP Q0FMRV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTG9jYWxlRGlyZWN0aW9uIHsKKy0JCUxUUiwKKy0JCVJU TAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3By ZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19n ZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIE1heGltaXplRmxhZ3Mgewor LQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FMLAorLQkJQk9USAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9E QUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKy0JW0Zs YWdzXQorLQlwdWJsaWMgZW51bSBNb2RhbE9wdGlvbnMgeworLQkJUE9JTlRFUl9BTFJFQURZX0dS QUJCRUQsCistCQlLRVlCT0FSRF9BTFJFQURZX0dSQUJCRUQKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJT05fIiwg dHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUxFRlQsCistCQlS SUdIVCwKKy0JCVVQX0xFRlQsCistCQlVUF9SSUdIVCwKKy0JCURPV05fTEVGVCwKKy0JCURPV05f UklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y3ByZWZpeCA9ICJNRVRBX1BSRUZfIiwgdHlwZV9pZCA9ICJtZXRhX3ByZWZlcmVuY2VfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUHJlZmVyZW5jZSB7CistCQlNT1VTRV9CVVRUT05fTU9E UywKKy0JCUZPQ1VTX01PREUsCistCQlGT0NVU19ORVdfV0lORE9XUywKKy0JCUFUVEFDSF9NT0RB TF9ESUFMT0dTLAorLQkJUkFJU0VfT05fQ0xJQ0ssCistCQlBQ1RJT05fRE9VQkxFX0NMSUNLX1RJ VExFQkFSLAorLQkJQUNUSU9OX01JRERMRV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9SSUdI VF9DTElDS19USVRMRUJBUiwKKy0JCUFVVE9fUkFJU0UsCistCQlBVVRPX1JBSVNFX0RFTEFZLAor LQkJRk9DVVNfQ0hBTkdFX09OX1BPSU5URVJfUkVTVCwKKy0JCVRJVExFQkFSX0ZPTlQsCistCQlO VU1fV09SS1NQQUNFUywKKy0JCURZTkFNSUNfV09SS1NQQUNFUywKKy0JCUtFWUJJTkRJTkdTLAor LQkJRElTQUJMRV9XT1JLQVJPVU5EUywKKy0JCUJVVFRPTl9MQVlPVVQsCistCQlXT1JLU1BBQ0Vf TkFNRVMsCistCQlWSVNVQUxfQkVMTCwKKy0JCUFVRElCTEVfQkVMTCwKKy0JCVZJU1VBTF9CRUxM X1RZUEUsCistCQlHTk9NRV9BQ0NFU1NJQklMSVRZLAorLQkJR05PTUVfQU5JTUFUSU9OUywKKy0J CUNVUlNPUl9USEVNRSwKKy0JCUNVUlNPUl9TSVpFLAorLQkJUkVTSVpFX1dJVEhfUklHSFRfQlVU VE9OLAorLQkJRURHRV9USUxJTkcsCistCQlGT1JDRV9GVUxMU0NSRUVOLAorLQkJV09SS1NQQUNF U19PTkxZX09OX1BSSU1BUlksCistCQlEUkFHR0FCTEVfQk9SREVSX1dJRFRILAorLQkJQVVUT19N QVhJTUlaRSwKKy0JCUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURSQUdfVEhSRVNIT0xEOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoTWV0YS5QcmVmZXJlbmNlIHByZWYpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3NjcmVlbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX1NDUkVFTl8iLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVuX2Nvcm5lcl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBTY3JlZW5Db3JuZXIgeworLQkJVE9QTEVGVCwKKy0JCVRPUFJJ R0hULAorLQkJQk9UVE9NTEVGVCwKKy0JCUJPVFRPTVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJlZml4ID0gIk1FVEFf U0NSRUVOXyIsIHR5cGVfaWQgPSAibWV0YV9zY3JlZW5fZGlyZWN0aW9uX2dldF90eXBlICgpIild CistCXB1YmxpYyBlbnVtIFNjcmVlbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlM RUZULAorLQkJUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLWVudW0tdHlwZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lk ID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2hhZG93 TW9kZSB7CistCQlBVVRPLAorLQkJRk9SQ0VEX09GRiwKKy0JCUZPUkNFRF9PTgorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRB X1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gU2lkZSB7CistCQlMRUZULAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RUT00KKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWVudW0tdHlwZXMuaCIsIGNw cmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2Vf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7CistCQlNQVhJTUlaRSwK Ky0JCVVOTUFYSU1JWkUsCistCQlGVUxMU0NSRUVOLAorLQkJVU5GVUxMU0NSRUVOCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1F VEFfTEFZRVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWNrX2xheWVyX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIFN0YWNrTGF5ZXIgeworLQkJREVTS1RPUCwKKy0JCUJPVFRPTSwKKy0JCU5P Uk1BTCwKKy0JCVRPUCwKKy0JCURPQ0ssCistCQlGVUxMU0NSRUVOLAorLQkJRk9DVVNFRF9XSU5E T1csCistCQlPVkVSUklERV9SRURJUkVDVCwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1Rf IiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVt IFRhYkxpc3QgeworLQkJTk9STUFMLAorLQkJRE9DS1MsCistCQlHUk9VUCwKKy0JCU5PUk1BTF9B TEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBj cHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFiU2hvd1R5cGUgeworLQkJSUNPTiwKKy0J CUlOU1RBTlRMWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxf bW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBWaXJ0dWFs TW9kaWZpZXIgeworLQkJU0hJRlRfTUFTSywKKy0JCUNPTlRST0xfTUFTSywKKy0JCUFMVF9NQVNL LAorLQkJTUVUQV9NQVNLLAorLQkJU1VQRVJfTUFTSywKKy0JCUhZUEVSX01BU0ssCistCQlNT0Qy X01BU0ssCistCQlNT0QzX01BU0ssCistCQlNT0Q0X01BU0ssCistCQlNT0Q1X01BU0sKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAi TUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19jbGllbnRf dHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dDbGllbnRUeXBlIHsKKy0J CVdBWUxBTkQsCistCQlYMTEKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfTUVOVV8iLCB0eXBlX2lkID0gIm1l dGFfd2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dN ZW51VHlwZSB7CistCQlXTSwKKy0JCUFQUAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV18iLCB0eXBlX2lkID0g Im1ldGFfd2luZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93VHlw ZSB7CistCQlOT1JNQUwsCistCQlERVNLVE9QLAorLQkJRE9DSywKKy0JCURJQUxPRywKKy0JCU1P REFMX0RJQUxPRywKKy0JCVRPT0xCQVIsCistCQlNRU5VLAorLQkJVVRJTElUWSwKKy0JCVNQTEFT SFNDUkVFTiwKKy0JCURST1BET1dOX01FTlUsCistCQlQT1BVUF9NRU5VLAorLQkJVE9PTFRJUCwK Ky0JCU5PVElGSUNBVElPTiwKKy0JCUNPTUJPLAorLQkJRE5ELAorLQkJT1ZFUlJJREVfT1RIRVIK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgSWRsZU1v bml0b3JXYXRjaEZ1bmMgKE1ldGEuSWRsZU1vbml0b3IgbW9uaXRvciwgdWludCB3YXRjaF9pZCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9w b3MgPSA1LjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBLZXlIYW5kbGVyRnVuYyAoTWV0YS5E aXNwbGF5IGRpc3BsYXksIE1ldGEuU2NyZWVuIHNjcmVlbiwgTWV0YS5XaW5kb3c/IHdpbmRvdywg Q2x1dHRlci5LZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGluc3RhbmNlX3BvcyA9IDEu OSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZzQ2hhbmdlZEZ1bmMgKE1ldGEuUHJlZmVy ZW5jZSBwcmVmKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93Lmgi LCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgYm9vbCBXaW5kb3dGb3Jl YWNoRnVuYyAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFNRSIpXQorLQlw dWJsaWMgY29uc3Qgc3RyaW5nIERFRkFVTFRfSUNPTl9OQU1FOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fSEVJR0hUIildCist CXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMg Y29uc3QgaW50IElDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUFKT1JfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3Qg aW50IE1BSk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50 IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorLQlwdWJsaWMgY29uc3QgaW50 IE1JTklfSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRIIildCistCXB1YmxpYyBjb25zdCBp bnQgTUlOSV9JQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGlu dCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJNRVRBX1BMVUdJTl9BUElfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3Qg aW50IFBMVUdJTl9BUElfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9CRUZPUkVfUkVEUkFXIildCistCXB1 YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfQkVGT1JFX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19O T1RJRlkiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9QUkVGU19OT1RJRlk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJ T1JJVFlfUkVEUkFXIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFXOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BS SU9SSVRZX1JFU0laRSIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFU0laRTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9W SVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKy0JcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NP UkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKy0JcHVibGljIGNv bnN0IGludCBWSVJUVUFMX0NPUkVfUE9JTlRFUl9JRDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBhY3RpdmF0ZV9zZXNz aW9uICgpOworLSAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2luaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZXhpdCAoTWV0 YS5FeGl0Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLk9wdGlvbkNvbnRleHQgZ2V0X29w dGlvbl9jb250ZXh0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgaW5pdCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19yZXN0YXJ0ICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHF1 aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9u ICgpOworLSAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmcgbWVzc2FnZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGludCBydW4g KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X2dub21lX3dtX2tleWJpbmRpbmdzIChzdHJpbmcgd21fa2V5Ymlu ZGluZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHNldF93bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7CistfQorZGlm ZiAtLWdpdCB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxhIHZhcGkvbGlibXV0dGVyLTMtY3Vz dG9tLnZhbGEKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMjllNTk3N2QuLjAwMDAw MDAwCistLS0gdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQorKysrIC9kZXYvbnVsbAorQEAg LTEsNiArMCwwIEBACistbmFtZXNwYWNlIE1ldGEgeworLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3Mg TW9uaXRvck1hbmFnZXIgOiBNZXRhLkRCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24sIEdMaWIuREJ1 c0ludGVyZmFjZSB7CistCQkvKiBub3QgZXhwb3J0ZWQgKi8KKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBtb25pdG9yc19jaGFuZ2VkICgpOworLQl9CistfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRl ci0zLmRlcHMgdmFwaS9saWJtdXR0ZXItMy5kZXBzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDFmM2M5MDc5Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTMuZGVwcworKysr IC9kZXYvbnVsbAorQEAgLTEsOSArMCwwIEBACistY2Fpcm8KKy1nc2V0dGluZ3MtZGVza3RvcC1z Y2hlbWFzCistZ2RrLTMuMAorLWdkay1waXhidWYtMi4wCistZ3RrKy0zLjAKKy14MTEKKy14Zml4 ZXMtNC4wCistY2x1dHRlci0xLjAKKy1jb2dsLTEuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRl ci00LmRlcHMgdmFwaS9saWJtdXR0ZXItNC5kZXBzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDM2N2MzNWI5Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTQuZGVwcworKysr IC9kZXYvbnVsbAorQEAgLTEsOCArMCwwIEBACistZ2RrLTMuMAorLWdkay1waXhidWYtMi4wCist Z3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcworLWd0aystMy4wCistbXV0dGVyLWNsdXR0ZXItNAor LW11dHRlci1jb2dsLTQKKy14MTEKKy14Zml4ZXMtNC4wCitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0 dGVyLTQudmFwaSB2YXBpL2xpYm11dHRlci00LnZhcGkKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggZTBkMzU2YTAuLjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXItNC52YXBpCisr KysgL2Rldi9udWxsCitAQCAtMSwxNDI1ICswLDAgQEAKKy0vKiBsaWJtdXR0ZXItNC52YXBpIGdl bmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworLQorLVtDQ29kZSAoY3ByZWZp eCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNCIsIGxv d2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorLW5hbWVzcGFjZSBNZXRhIHsKKy0JbmFtZXNw YWNlIENvbXBvc2l0b3IgeworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9k aXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9k aXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFn ZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1 dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91 bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3Vu cmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJt ZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGZvY3VzX3N0 YWdlX3dpbmRvdyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIHVpbnQzMiB0aW1lc3RhbXApOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNu YW1lID0gIm1ldGFfZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX2Rpc3Bs YXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9zdGFnZV9mb3Jf ZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0 YWdlX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9n ZXRfdG9wX3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEu RGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfYWN0b3JzIildCist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5MaXN0PENsdXR0ZXIuQWN0b3I+IGdldF93aW5k b3dfYWN0b3JzIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2lu ZG93X2dyb3VwX2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRl ci5BY3RvciBnZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxh eSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5EaXNwbGF5IGRpc3BsYXks IFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworLQl9CistCW5hbWVzcGFjZSBQcmVmcyB7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9w cmVmc19iZWxsX2lzX2F1ZGlibGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19iZWxs X2lzX2F1ZGlibGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19jaGFuZ2Vfd29ya3NwYWNlX25hbWUiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19jaGFuZ2Vfd29ya3NwYWNlX25hbWUgKGludCBpLCBzdHJp bmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19nZXRfYWN0aW9uX2RvdWJsZV9jbGlja190aXRsZWJhciIpXQor LQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBwcmVmc19nZXRfYWN0aW9u X2RvdWJsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hY3Rpb25fbWlkZGxlX2Ns aWNrX3RpdGxlYmFyIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9u IHByZWZzX2dldF9hY3Rpb25fbWlkZGxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0 X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3Rv cC5UaXRsZWJhckFjdGlvbiBwcmVmc19nZXRfYWN0aW9uX3JpZ2h0X2NsaWNrX3RpdGxlYmFyICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X2F0dGFjaF9tb2RhbF9kaWFsb2dzIildCistCQlwdWJsaWMgc3RhdGlj IGJvb2wgcHJlZnNfZ2V0X2F0dGFjaF9tb2RhbF9kaWFsb2dzICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F1 dG9fbWF4aW1pemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfYXV0b19tYXhp bWl6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdXRvX3JhaXNlIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgcHJlZnNfZ2V0X2F1dG9fcmFpc2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYXV0b19yYWlzZV9kZWxh eSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2F1dG9fcmFpc2VfZGVsYXkgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfYnV0dG9uX2xheW91dCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkJ1 dHRvbkxheW91dCBwcmVmc19nZXRfYnV0dG9uX2xheW91dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jZW50 ZXJfbmV3X3dpbmRvd3MiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY2VudGVy X25ld193aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRh X3ByZWZzX2dldF9jdXJzb3Jfc2l6ZSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0 X2N1cnNvcl9zaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2N1cnNvcl90aGVtZSIpXQorLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIHN0cmluZyBwcmVmc19nZXRfY3Vyc29yX3RoZW1lICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X2Rpc2FibGVfd29ya2Fyb3VuZHMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVm c19nZXRfZGlzYWJsZV93b3JrYXJvdW5kcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9kcmFnX3RocmVzaG9s ZCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2RyYWdfdGhyZXNob2xkICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1l dGFfcHJlZnNfZ2V0X2RyYWdnYWJsZV9ib3JkZXJfd2lkdGgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg aW50IHByZWZzX2dldF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2R5 bmFtaWNfd29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9keW5h bWljX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZWRnZV90aWxpbmciKV0KKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZWRnZV90aWxpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZm9j dXNfY2hhbmdlX29uX3BvaW50ZXJfcmVzdCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZz X2dldF9mb2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9yZXN0ICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvY3Vz X21vZGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuRm9jdXNNb2RlIHByZWZzX2dldF9m b2N1c19tb2RlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvY3VzX25ld193aW5kb3dzIildCistCQlwdWJs aWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTmV3V2luZG93cyBwcmVmc19nZXRfZm9jdXNfbmV3X3dp bmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19nZXRfZm9yY2VfZnVsbHNjcmVlbiIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIHByZWZzX2dldF9mb3JjZV9mdWxsc2NyZWVuICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2du b21lX2FjY2Vzc2liaWxpdHkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZ25v bWVfYWNjZXNzaWJpbGl0eSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9tZV9hbmltYXRpb25zIildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9w cmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5LZXlC aW5kaW5nQWN0aW9uIHByZWZzX2dldF9rZXliaW5kaW5nX2FjdGlvbiAoc3RyaW5nIG5hbWUpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1l dGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51IildCistCQlwdWJsaWMgc3RhdGljIGludCBw cmVmc19nZXRfbW91c2VfYnV0dG9uX21lbnUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfbW91c2VfYnV0dG9u X21vZHMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIgcHJlZnNfZ2V0 X21vdXNlX2J1dHRvbl9tb2RzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9yZXNpemUi KV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9tb3VzZV9idXR0b25fcmVzaXplICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X251bV93b3Jrc3BhY2VzIildCistCQlwdWJsaWMgc3RhdGljIGludCBw cmVmc19nZXRfbnVtX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfcmFpc2Vfb25fY2xpY2si KV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfcmFpc2Vfb25fY2xpY2sgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19nZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIHByZWZzX2dldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51ICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Rp dGxlYmFyX2ZvbnQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBQYW5nby5Gb250RGVzY3Jp cHRpb24gcHJlZnNfZ2V0X3RpdGxlYmFyX2ZvbnQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfdmlzdWFsX2Jl bGwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfdmlzdWFsX2JlbGwgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19nZXRfdmlzdWFsX2JlbGxfdHlwZSIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3Rv cC5WaXN1YWxCZWxsVHlwZSBwcmVmc19nZXRfdmlzdWFsX2JlbGxfdHlwZSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF93b3Jrc3BhY2VfbmFtZSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBw cmVmc19nZXRfd29ya3NwYWNlX25hbWUgKGludCBpKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF93b3Jrc3BhY2Vz X29ubHlfb25fcHJpbWFyeSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF93b3Jr c3BhY2VzX29ubHlfb25fcHJpbWFyeSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2luaXQiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdm9pZCBwcmVmc19pbml0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4i KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfZm9yY2VfZnVsbHNjcmVlbiAoYm9v bCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9udW1fd29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIHByZWZzX3NldF9udW1fd29ya3NwYWNlcyAoaW50IG5fd29ya3NwYWNlcyk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19zZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIHByZWZzX3NldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51IChib29sIHdoZXRoZXIpOworLQl9 CistCW5hbWVzcGFjZSBVdGlsIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfYWRkX3ZlcmJvc2VfdG9waWMiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdm9pZCBhZGRfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRvcGljKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFf ZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3Ry aW5nIGV4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uICh1aW50IGtleWJpbmRpbmdfYWN0 aW9uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfZ191dGY4X3N0cm5kdXAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGdfdXRm OF9zdHJuZHVwIChzdHJpbmcgc3JjLCBzaXplX3Qgbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9sb2NhbGVfZGlyZWN0aW9u IildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuTG9jYWxlRGlyZWN0aW9uIGdldF9sb2NhbGVfZGly ZWN0aW9uICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwg Y25hbWUgPSAibWV0YV9ncmF2aXR5X3RvX3N0cmluZyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93 bmVkIHN0cmluZyBncmF2aXR5X3RvX3N0cmluZyAoaW50IGdyYXZpdHkpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9pc19kZWJ1Z2dp bmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19kZWJ1Z2dpbmcgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3N5bmNp bmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19zeW5jaW5nICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9pc192ZXJib3Nl IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdmVyYm9zZSAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfd2F5bGFuZF9j b21wb3NpdG9yIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfd2F5bGFuZF9jb21wb3NpdG9y ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUg PSAibWV0YV9sYXRlcl9hZGQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCBsYXRlcl9hZGQgKE1l dGEuTGF0ZXJUeXBlIHdoZW4sIG93bmVkIEdMaWIuU291cmNlRnVuYyBmdW5jKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJf cmVtb3ZlIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgbGF0ZXJfcmVtb3ZlICh1aW50IGxhdGVy X2lkKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfcG9wX25vX21zZ19wcmVmaXgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bf bm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0 aWwuaCIsIGNuYW1lID0gIm1ldGFfcHVzaF9ub19tc2dfcHJlZml4IildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgcHVzaF9ub19tc2dfcHJlZml4ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9yZWN0IildCistCQlwdWJsaWMgc3Rh dGljIE1ldGEuUmVjdGFuZ2xlPyByZWN0IChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhl aWdodCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFt ZSA9ICJtZXRhX3JlbW92ZV92ZXJib3NlX3RvcGljIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg cmVtb3ZlX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3Nob3dfZGlh bG9nIildCistCQlwdWJsaWMgc3RhdGljIEdMaWIuUGlkIHNob3dfZGlhbG9nIChzdHJpbmcgdHlw ZSwgc3RyaW5nIG1lc3NhZ2UsIHN0cmluZyB0aW1lb3V0LCBzdHJpbmcgZGlzcGxheSwgc3RyaW5n IG9rX3RleHQsIHN0cmluZyBjYW5jZWxfdGV4dCwgc3RyaW5nIGljb25fbmFtZSwgaW50IHRyYW5z aWVudF9mb3IsIEdMaWIuU0xpc3Q8dm9pZCo+IGNvbHVtbnMsIEdMaWIuU0xpc3Q8dm9pZCo+IGVu dHJpZXMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25h bWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2VxdWFsIildCistCQlwdWJsaWMgc3RhdGljIGludCB1 bnNpZ25lZF9sb25nX2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25n X2hhc2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCB1bnNpZ25lZF9sb25nX2hhc2ggKHZvaWQq IHYpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUg PSAibWV0YV94MTFfZXJyb3JfdHJhcF9wb3AiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFf ZXJyb3JfdHJhcF9wb3AgKE1ldGEuWDExRGlzcGxheSB4MTFfZGlzcGxheSk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3gxMV9lcnJv cl90cmFwX3BvcF93aXRoX3JldHVybiIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgeDExX2Vycm9y X3RyYXBfcG9wX3dpdGhfcmV0dXJuIChNZXRhLlgxMURpc3BsYXkgeDExX2Rpc3BsYXkpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV94 MTFfZXJyb3JfdHJhcF9wdXNoIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX2Vycm9yX3Ry YXBfcHVzaCAoTWV0YS5YMTFEaXNwbGF5IHgxMV9kaXNwbGF5KTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIsIHR5cGVfaWQgPSAibWV0YV9i YWNrZW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCYWNrZW5kIDog R0xpYi5PYmplY3QsIEdMaWIuSW5pdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIsIGNuYW1lID0gIm1ldGFfZ2V0 X2JhY2tlbmQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkJhY2tlbmQgZ2V0X2Jh Y2tlbmQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRuZCBnZXRfZG5kICgpOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5SZW1vdGVBY2Nlc3NDb250cm9sbGVyIGdldF9yZW1vdGVfYWNjZXNz X2NvbnRyb2xsZXIgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFn ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGxvY2tfbGF5b3V0X2dyb3VwICh1aW50IGlkeCk7CistCQlw dWJsaWMgdm9pZCBzZXRfa2V5bWFwIChzdHJpbmcgbGF5b3V0cywgc3RyaW5nIHZhcmlhbnRzLCBz dHJpbmcgb3B0aW9ucyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbnVtbG9jayAoYm9vbCBudW1sb2Nr X3N0YXRlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfY2hhbmdlZCAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0 KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0 KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2Jq ZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tn cm91bmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCistCXB1 YmxpYyBjbGFzcyBCYWNrZ3JvdW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEJhY2tncm91bmQgKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2FsbCAoKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZpbGUgZmlsZTIs IGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7Cist CQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGlj IHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUg c3R5bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50IChHRGVza3RvcC5CYWNrZ3JvdW5k U2hhZGluZyBzaGFkaW5nX2RpcmVjdGlvbiwgQ2x1dHRlci5Db2xvciBjb2xvciwgQ2x1dHRlci5D b2xvciBzZWNvbmRfY29sb3IpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0 YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNr Z3JvdW5kX2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0 b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwg Q2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlw dWJsaWMgQmFja2dyb3VuZEFjdG9yIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgaW50IG1vbml0b3Ip OworLQkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmQgKE1ldGEuQmFja2dyb3VuZCBiYWNrZ3Jv dW5kKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoYm9vbCBlbmFibGVkLCBpbnQgaGVp Z2h0LCBkb3VibGUgdG9uZV9zdGFydCk7CistCQlwdWJsaWMgdm9pZCBzZXRfbW9uaXRvciAoaW50 IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgc2V0X3ZpZ25ldHRlIChib29sIGVuYWJsZWQsIGRv dWJsZSBicmlnaHRuZXNzLCBkb3VibGUgc2hhcnBuZXNzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kIHsgb3duZWQgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSBicmlnaHRuZXNzIHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZ3JhZGll bnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IGdy YWRpZW50X2hlaWdodCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBkb3VibGUgZ3JhZGllbnRfbWF4X2RhcmtuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25l ZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50 IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgYm9vbCB2aWduZXR0ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBkb3VibGUgdmlnbmV0dGVfc2hhcnBuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dyb3VwX2dldF90eXBlICgpIildCistCXB1 YmxpYyBjbGFzcyBCYWNrZ3JvdW5kR3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50 b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0 YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEdyb3VwICgpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o IiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGNsYXNzIEJhY2tncm91bmRJbWFnZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZ3JvdW5kSW1h Z2UgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfc3VjY2VzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2xvYWRlZCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsb2FkZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBlX2lkID0g Im1ldGFfYmFja2dyb3VuZF9pbWFnZV9jYWNoZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xh c3MgQmFja2dyb3VuZEltYWdlQ2FjaGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3VuZEltYWdl Q2FjaGUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZ3JvdW5kSW1hZ2VD YWNoZSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmRJbWFnZSBsb2Fk IChHTGliLkZpbGUgZmlsZSk7CistCQlwdWJsaWMgdm9pZCBwdXJnZSAoR0xpYi5GaWxlIGZpbGUp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgQmFycmllciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYXJyaWVyICgpOworLQkJcHVi bGljIHZvaWQgZGVzdHJveSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2FjdGl2ZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIHJlbGVhc2UgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFycmllckRpcmVjdGlvbiBkaXJlY3Rpb25zIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEu RGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGludCB4MSB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHkxIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MiB7IGdldDsgY29uc3RydWN0OyB9 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaGl0IChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgbGVmdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCIsIGNvcHlfZnVu Y3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0 eXBlX2lkID0gIm1ldGFfYmFycmllcl9ldmVudF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0K Ky0JcHVibGljIGNsYXNzIEJhcnJpZXJFdmVudCB7CistCQlwdWJsaWMgaW50IGR0OworLQkJcHVi bGljIGRvdWJsZSBkeDsKKy0JCXB1YmxpYyBkb3VibGUgZHk7CistCQlwdWJsaWMgaW50IGV2ZW50 X2lkOworLQkJcHVibGljIGJvb2wgZ3JhYmJlZDsKKy0JCXB1YmxpYyBib29sIHJlbGVhc2VkOwor LQkJcHVibGljIHVpbnQzMiB0aW1lOworLQkJcHVibGljIGRvdWJsZSB4OworLQkJcHVibGljIGRv dWJsZSB5OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX3RyYWNrZXJfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEN1cnNvclRyYWNrZXIgOiBHTGliLk9iamVjdCB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQg Q3Vyc29yVHJhY2tlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkN1cnNvclRy YWNrZXIgZ2V0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMg dm9pZCBnZXRfaG90IChvdXQgaW50IHgsIG91dCBpbnQgeSk7CistCQlwdWJsaWMgdm9pZCBnZXRf cG9pbnRlciAoaW50IHgsIGludCB5LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RzKTsKKy0JCXB1 YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgpOworLQkJcHVibGljIHZvaWQg c2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBjdXJzb3JfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbW92ZWQg KGZsb2F0IG9iamVjdCwgZmxvYXQgcDApOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBEaXNwbGF5IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERpc3BsYXkgKCk7 CistCQlwdWJsaWMgdm9pZCBhZGRfaWdub3JlZF9jcm9zc2luZ19zZXJpYWwgKHVsb25nIHNlcmlh bCk7CistCQlwdWJsaWMgdWludCBhZGRfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUsIEdMaWIuU2V0 dGluZ3Mgc2V0dGluZ3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzLCBvd25lZCBNZXRhLktl eUhhbmRsZXJGdW5jIGhhbmRsZXIpOworLQkJcHVibGljIGJvb2wgYmVnaW5fZ3JhYl9vcCAoTWV0 YS5XaW5kb3cgd2luZG93LCBNZXRhLkdyYWJPcCBvcCwgYm9vbCBwb2ludGVyX2FscmVhZHlfZ3Jh YmJlZCwgYm9vbCBmcmFtZV9hY3Rpb24sIGludCBidXR0b24sIHVsb25nIG1vZG1hc2ssIHVpbnQz MiB0aW1lc3RhbXAsIGludCByb290X3gsIGludCByb290X3kpOworLQkJcHVibGljIHZvaWQgY2xl YXJfbW91c2VfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNsb3NlICh1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9ncmFiX29wICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyB2b2lkIGZvY3VzX2RlZmF1bHRfd2luZG93ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyB2b2lkIGZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg aW50IGdldF9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50 X3RpbWUgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50X3RpbWVfcm91bmR0cmlwICgp OworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X2ZvY3VzX3dpbmRvdyAoKTsKKy0J CXB1YmxpYyBNZXRhLkdyYWJPcCBnZXRfZ3JhYl9vcCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9r ZXliaW5kaW5nX2FjdGlvbiAodWludCBrZXljb2RlLCB1bG9uZyBtYXNrKTsKKy0JCXB1YmxpYyB1 aW50MzIgZ2V0X2xhc3RfdXNlcl90aW1lICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdl dF9tb25pdG9yX2dlb21ldHJ5IChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgYm9vbCBnZXRfbW9u aXRvcl9pbl9mdWxsc2NyZWVuIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgaW50IGdldF9tb25p dG9yX2luZGV4X2Zvcl9yZWN0IChNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyBpbnQg Z2V0X21vbml0b3JfbmVpZ2hib3JfaW5kZXggKGludCB3aGljaF9tb25pdG9yLCBNZXRhLkRpc3Bs YXlEaXJlY3Rpb24gZGlyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMgKCk7CistCQlw dWJsaWMgc3RyaW5nIGdldF9wYWRfYWN0aW9uX2xhYmVsIChDbHV0dGVyLklucHV0RGV2aWNlIHBh ZCwgTWV0YS5QYWRBY3Rpb25UeXBlIGFjdGlvbl90eXBlLCB1aW50IGFjdGlvbl9udW1iZXIpOwor LQkJcHVibGljIGludCBnZXRfcHJpbWFyeV9tb25pdG9yICgpOworLQkJcHVibGljIHZvaWQgZ2V0 X3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB1bm93bmVk IE1ldGEuU291bmRQbGF5ZXIgZ2V0X3NvdW5kX3BsYXllciAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IE1ldGEuV2luZG93IGdldF90YWJfY3VycmVudCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29y a3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+ IGdldF90YWJfbGlzdCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlPyB3b3Jrc3Bh Y2UpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9uZXh0IChNZXRhLlRh Ykxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBNZXRhLldpbmRvdz8gd2luZG93 LCBib29sIGJhY2t3YXJkKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlTWFuYWdl ciBnZXRfd29ya3NwYWNlX21hbmFnZXIgKCk7CistCQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJh dG9yIChzdHJpbmcgYWNjZWxlcmF0b3IsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzKTsKKy0J CXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50 U2VxdWVuY2U/IHNlcXVlbmNlKTsKKy0JCXB1YmxpYyBib29sIHJlbW92ZV9rZXliaW5kaW5nIChz dHJpbmcgbmFtZSk7CistCQlwdWJsaWMgdm9pZCByZXF1ZXN0X3BhZF9vc2QgKENsdXR0ZXIuSW5w dXREZXZpY2UgcGFkLCBib29sIGVkaXRpb25fbW9kZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3Vy c29yIChNZXRhLkN1cnNvciBjdXJzb3IpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRh LldpbmRvdz4gc29ydF93aW5kb3dzX2J5X3N0YWNraW5nIChHTGliLlNMaXN0PE1ldGEuV2luZG93 PiB3aW5kb3dzKTsKKy0JCXB1YmxpYyBib29sIHN1cHBvcnRzX2V4dGVuZGVkX2JhcnJpZXJzICgp OworLQkJcHVibGljIHZvaWQgdW5mcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOwor LQkJcHVibGljIGJvb2wgdW5ncmFiX2FjY2VsZXJhdG9yICh1aW50IGFjdGlvbl9pZCk7CistCQlw dWJsaWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGlj IGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIp OworLQkJcHVibGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorLQkJcHVibGlj IHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIHVpbnQgcDAs IHVpbnQgcDEpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl91cGRhdGVkICgpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGdsX3ZpZGVvX21lbW9yeV9wdXJnZWQgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgZ3JhYl9vcF9iZWdpbiAoTWV0YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5XaW5k b3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2Vu ZCAoTWV0YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBpbl9mdWxsc2NyZWVuX2NoYW5nZWQgKCk7CistCQlwdWJs aWMgc2lnbmFsIGJvb2wgbW9kaWZpZXJzX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBvdmVybGF5X2tleSAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBw YWRfbW9kZV9zd2l0Y2ggKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCB1aW50IHAwLCB1aW50 IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXN0YWNrZWQgKCk7CistCQlwdWJsaWMgc2ln bmFsIGJvb2wgcmVzdGFydCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93X29zZCAoaW50 IG9iamVjdCwgc3RyaW5nIHAwLCBzdHJpbmcgcDEpOworLQkJcHVibGljIHNpZ25hbCB1bm93bmVk IENsdXR0ZXIuQWN0b3I/IHNob3dfcGFkX29zZCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIEdM aWIuU2V0dGluZ3Mgc2V0dGluZ3MsIHN0cmluZyBsYXlvdXRfcGF0aCwgYm9vbCBlZGl0aW9uX21v ZGUsIGludCBtb25pdG9yX2lkeCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXNpemVf cG9wdXAgKGJvb2wgb2JqZWN0LCBNZXRhLlJlY3RhbmdsZSBwMCwgaW50IHAxLCBpbnQgcDIpOwor LQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzdGFydF9tZXNzYWdlIChzdHJpbmc/IG1lc3Nh Z2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNob3dpbmdfZGVza3RvcF9jaGFuZ2VkICgpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRvdyBvYmplY3Qp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlvbiAoTWV0YS5X aW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25p dG9yIChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg d2luZG93X2xlZnRfbW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIHdpbmRvd19tYXJrZWRfdXJnZW50IChNZXRhLldpbmRvdyBvYmplY3Qp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2VkICgpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X2Nsb3NpbmcgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgeDExX2Rpc3BsYXlfb3BlbmVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfZG5k X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBEbmQgOiBHTGliLk9iamVjdCB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgRG5k ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9lbnRlciAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBkbmRfbGVhdmUgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX3Bvc2l0aW9u X2NoYW5nZSAoaW50IG9iamVjdCwgaW50IHAwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRnJhbWUgeworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0 eXBlX2lkID0gIm1ldGFfaWRsZV9tb25pdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFz cyBJZGxlTW9uaXRvciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBJZGxlTW9uaXRvciAoKTsKKy0JCXB1Ymxp YyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0YS5J ZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworLQkJcHVibGljIHVpbnQgYWRkX3VzZXJf YWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7 CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfY29yZSAoKTsK Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9mb3JfZGV2aWNl IChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUgKCk7CistCQlw dWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVk X2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKy0JW0Nv bXBhY3RdCistCXB1YmxpYyBjbGFzcyBLZXlCaW5kaW5nIHsKKy0JCXB1YmxpYyB1aW50IGdldF9t YXNrICgpOworLQkJcHVibGljIE1ldGEuVmlydHVhbE1vZGlmaWVyIGdldF9tb2RpZmllcnMgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CistCQlwdWJsaWMgYm9vbCBp c19idWlsdGluICgpOworLQkJcHVibGljIGJvb2wgaXNfcmV2ZXJzZWQgKCk7CistCQlbQ0NvZGUg KGNuYW1lID0gIm1ldGFfa2V5YmluZGluZ3Nfc2V0X2N1c3RvbV9oYW5kbGVyIildCistCQlwdWJs aWMgc3RhdGljIGJvb2wgc2V0X2N1c3RvbV9oYW5kbGVyIChzdHJpbmcgbmFtZSwgb3duZWQgTWV0 YS5LZXlIYW5kbGVyRnVuYz8gaGFuZGxlcik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9s YXVuY2hfY29udGV4dF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgTGF1bmNoQ29udGV4 dCA6IEdMaWIuQXBwTGF1bmNoQ29udGV4dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgTGF1bmNoQ29udGV4dCAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF90aW1lc3RhbXAgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQg c2V0X3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25z dHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgdGltZXN0YW1w IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuV29y a3NwYWNlIHdvcmtzcGFjZSB7IG93bmVkIGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIsIHR5cGVfaWQgPSAi bWV0YV9tb25pdG9yX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIE1vbml0 b3JNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE1vbml0b3JNYW5hZ2VyICgpOworLQkJcHVibGlj IGJvb2wgY2FuX3N3aXRjaF9jb25maWcgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0 YS5Nb25pdG9yTWFuYWdlciBAZ2V0ICgpOworLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X2Rpc3Bs YXlfY29uZmlndXJhdGlvbl90aW1lb3V0ICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2lzX2J1aWx0 aW5fZGlzcGxheV9vbiAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfZm9yX2Nvbm5lY3Rv ciAoc3RyaW5nIGNvbm5lY3Rvcik7CistCQlwdWJsaWMgTWV0YS5Nb25pdG9yU3dpdGNoQ29uZmln VHlwZSBnZXRfc3dpdGNoX2NvbmZpZyAoKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF9jb25maWcg KE1ldGEuTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUgY29uZmlnX3R5cGUpOworLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNv bnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2Ug KCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkX2ludGVybmFsICgpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHBvd2VyX3NhdmVfbW9kZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCB0eXBlX2lkID0gIm1ldGFfcGx1 Z2luX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQbHVnaW4gOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgUGx1Z2luICgpOworLQkJcHVibGljIGJvb2wgYmVnaW5fbW9kYWwgKE1ldGEu TW9kYWxPcHRpb25zIG9wdGlvbnMsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQg Y29tcGxldGVfZGlzcGxheV9jaGFuZ2UgKGJvb2wgb2spOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgY29uZmlybV9kaXNwbGF5X2NoYW5nZSAoKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlc3Ryb3kgKE1ldGEuV2luZG93QWN0b3IgYWN0 b3IpOworLQkJcHVibGljIHZvaWQgZGVzdHJveV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3Ig YWN0b3IpOworLQkJcHVibGljIHZvaWQgZW5kX21vZGFsICh1aW50MzIgdGltZXN0YW1wKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuUGx1Z2luSW5mbz8gZ2V0X2luZm8gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX3RpbGVfcHJldmlldyAoKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWJpbmRpbmdfZmlsdGVyIChNZXRhLktleUJpbmRp bmcgYmluZGluZyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxs X3N3aXRjaF93b3Jrc3BhY2UgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBraWxsX3dpbmRvd19lZmZlY3RzIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBtYW5hZ2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBl KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5k b3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBtYXBfY29tcGxldGVkIChNZXRhLldpbmRv d0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1p bmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXpl X2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IHBsdWdpbl9pbmZvICgpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd190aWxlX3ByZXZpZXcg KE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9t b25pdG9yX251bWJlcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBz aG93X3dpbmRvd19tZW51IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUg bWVudSwgaW50IHgsIGludCB5KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHNob3dfd2luZG93X21lbnVfZm9yX3JlY3QgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5X aW5kb3dNZW51VHlwZSBtZW51LCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNpemVfY2hhbmdlIChNZXRhLldpbmRvd0FjdG9yIGFj dG9yLCBNZXRhLlNpemVDaGFuZ2Ugd2hpY2hfY2hhbmdlLCBNZXRhLlJlY3RhbmdsZSBvbGRfZnJh bWVfcmVjdCwgTWV0YS5SZWN0YW5nbGUgb2xkX2J1ZmZlcl9yZWN0KTsKKy0JCXB1YmxpYyB2b2lk IHNpemVfY2hhbmdlX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaXplX2NoYW5nZWQgKE1ldGEuV2luZG93 QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3Rh cnQgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzd2l0Y2hfd29y a3NwYWNlIChpbnQgZnJvbSwgaW50IHRvLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24p OworLQkJcHVibGljIHZvaWQgc3dpdGNoX3dvcmtzcGFjZV9jb21wbGV0ZWQgKCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1bm1pbmltaXplIChNZXRhLldpbmRvd0Fj dG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1pemVfY29tcGxldGVkIChNZXRhLldp bmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29s IHhldmVudF9maWx0ZXIgKFguRXZlbnQgZXZlbnQpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1l dGFfcmVtb3RlX2FjY2Vzc19jb250cm9sbGVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFz cyBSZW1vdGVBY2Nlc3NDb250cm9sbGVyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0Nv bnRyb2xsZXIgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbmV3X2hhbmRsZSAoTWV0YS5SZW1v dGVBY2Nlc3NIYW5kbGUgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlbW90 ZV9hY2Nlc3NfaGFuZGxlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBSZW1vdGVBY2Nl c3NIYW5kbGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNzSGFuZGxlICgpOworLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBzdG9wICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHN0b3BwZWQg KCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVi bGljIGNsYXNzIFNldHRpbmdzIHsKKy0JCXB1YmxpYyBpbnQgZ2V0X2ZvbnRfZHBpICgpOworLQkJ cHVibGljIGludCBnZXRfdWlfc2NhbGluZ19mYWN0b3IgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHJlZl9mdW5j dGlvbiA9ICJtZXRhX3NoYWRvd19yZWYiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2dldF90eXBl ICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfdW5yZWYiKV0KKy0JW0NvbXBhY3Rd CistCXB1YmxpYyBjbGFzcyBTaGFkb3cgeworLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAoaW50 IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVp Z2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgYm91bmRzKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50IChD b2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyLCBpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwg aW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIHVpbnQ4IG9wYWNpdHksIENhaXJv LlJlZ2lvbj8gY2xpcCwgYm9vbCBjbGlwX3N0cmljdGx5KTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRv dyBAcmVmICgpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQg PSAibWV0YV9zaGFkb3dfZmFjdG9yeV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hh ZG93RmFjdG9yeSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBTaGFkb3dGYWN0b3J5ICgpOworLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIE1ldGEuU2hhZG93RmFjdG9yeSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1Ymxp YyBNZXRhLlNoYWRvd1BhcmFtcyBnZXRfcGFyYW1zIChzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBm b2N1c2VkKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvdyBnZXRfc2hhZG93IChNZXRhLldpbmRvd1No YXBlIHNoYXBlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHN0cmluZyBjbGFzc19uYW1lLCBib29s IGZvY3VzZWQpOworLQkJcHVibGljIHZvaWQgc2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUs IGJvb2wgZm9jdXNlZCwgTWV0YS5TaGFkb3dQYXJhbXMgQHBhcmFtcyk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90 ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1 dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIu Q29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7CistCQlw dWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludCBjbGlwKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVhdGVfbWlwbWFwcyk7CistCQlwdWJs aWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1cmUgbWFza190ZXh0dXJlKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25lZCBDYWlyby5SZWdpb24gb3BhcXVl X3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJlYSAoaW50IHgsIGludCB5LCBpbnQg d2lkdGgsIGludCBoZWlnaHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAo KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NvdW5kX3BsYXllcl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgY2xhc3MgU291bmRQbGF5ZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU291bmRQbGF5 ZXIgKCk7CistCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fZmlsZSAoR0xpYi5GaWxlIGZpbGUsIHN0 cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsK Ky0JCXB1YmxpYyB2b2lkIHBsYXlfZnJvbV90aGVtZSAoc3RyaW5nIG5hbWUsIHN0cmluZyBkZXNj cmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgdHlwZV9pZCA9ICJtZXRhX3N0YWdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBT dGFnZSA6IENsdXR0ZXIuU3RhZ2UsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxl LCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTdGFnZSAoKTsKKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mb2N1c2VkIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgYWN0b3JzX3BhaW50ZWQgKCk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVf aWQgPSAibWV0YV9zdGFydHVwX25vdGlmaWNhdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgU3RhcnR1cE5vdGlmaWNhdGlvbiA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTdGFydHVwTm90aWZp Y2F0aW9uICgpOworLQkJcHVibGljIE1ldGEuTGF1bmNoQ29udGV4dCBjcmVhdGVfbGF1bmNoZXIg KCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxh eSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdl ZCAodm9pZCogb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YXJ0dXBfc2Vx dWVuY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFN0YXJ0dXBTZXF1ZW5jZSA6IEdM aWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBTdGFydHVwU2VxdWVuY2UgKCk7CistCQlwdWJsaWMgdm9pZCBjb21wbGV0 ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYXBwbGljYXRpb25faWQgKCk7Cist CQlwdWJsaWMgYm9vbCBnZXRfY29tcGxldGVkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9pY29uX25hbWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2lkICgpOwor LQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIHVpbnQ2NCBn ZXRfdGltZXN0YW1wICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bWNsYXNzICgp OworLQkJcHVibGljIGludCBnZXRfd29ya3NwYWNlICgpOworLQkJcHVibGljIHN0cmluZyBhcHBs aWNhdGlvbl9pZCB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5nIGljb25fbmFt ZSB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5nIGlkIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJs aWMgdWludDY0IHRpbWVzdGFtcCB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5n IHdtY2xhc3MgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIGludCB3b3Jrc3BhY2UgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0Nv bXBhY3RdCistCXB1YmxpYyBjbGFzcyBUaGVtZSB7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dldF90eXBlICgpIildCistCXB1Ymxp YyBhYnN0cmFjdCBjbGFzcyBXaW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93ICgpOworLQkJ cHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiBjdXJyZW50X3RpbWUpOworLQkJcHVibGljIHZv aWQgYWN0aXZhdGVfd2l0aF93b3Jrc3BhY2UgKHVpbnQzMiBjdXJyZW50X3RpbWUsIE1ldGEuV29y a3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgYm9vbCBhbGxvd3NfbW92ZSAoKTsKKy0JCXB1 YmxpYyBib29sIGFsbG93c19yZXNpemUgKCk7CistCQlwdWJsaWMgdm9pZCBiZWdpbl9ncmFiX29w IChNZXRhLkdyYWJPcCBvcCwgYm9vbCBmcmFtZV9hY3Rpb24sIHVpbnQzMiB0aW1lc3RhbXApOwor LQkJcHVibGljIGJvb2wgY2FuX2Nsb3NlICgpOworLQkJcHVibGljIGJvb2wgY2FuX21heGltaXpl ICgpOworLQkJcHVibGljIGJvb2wgY2FuX21pbmltaXplICgpOworLQkJcHVibGljIGJvb2wgY2Fu X3NoYWRlICgpOworLQkJcHVibGljIHZvaWQgY2hhbmdlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3Bh Y2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2VfYnlfaW5kZXgg KGludCBzcGFjZV9pbmRleCwgYm9vbCBhcHBlbmQpOworLQkJcHVibGljIHZvaWQgY2hlY2tfYWxp dmUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9y ZWN0X3RvX2ZyYW1lX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0KTsKKy0JCXB1Ymxp YyB2b2lkIGNvbXB1dGVfZ3JvdXAgKCk7CistCQlwdWJsaWMgdm9pZCBAZGVsZXRlICh1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGZpbmRfcm9vdF9hbmNl c3RvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyB2b2lkIGZvcmVhY2hfYW5jZXN0b3IgKE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVuYyk7 CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX3RyYW5zaWVudCAoTWV0YS5XaW5kb3dGb3JlYWNoRnVu YyBmdW5jKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0X3RvX2NsaWVudF9y ZWN0IChNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rhbmds ZSBnZXRfYnVmZmVyX3JlY3QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2NsaWVu dF9tYWNoaW5lICgpOworLQkJcHVibGljIE1ldGEuV2luZG93Q2xpZW50VHlwZSBnZXRfY2xpZW50 X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfY29tcG9zaXRvcl9w cml2YXRlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9kZXNjcmlwdGlvbiAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIENhaXJvLlJlZ2lvbj8gZ2V0X2ZyYW1lX2JvdW5kcyAoKTsKKy0JCXB1YmxpYyBN ZXRhLlJlY3RhbmdsZSBnZXRfZnJhbWVfcmVjdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkZyYW1lVHlw ZSBnZXRfZnJhbWVfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2Fw cF9tZW51X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtf YXBwbGljYXRpb25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBs aWNhdGlvbl9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3Rr X21lbnViYXJfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0 a190aGVtZV92YXJpYW50ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdW5p cXVlX2J1c19uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfd2luZG93 X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2ljb25fZ2VvbWV0cnkgKG91dCBN ZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyB1aW50NjQgZ2V0X2lkICgpOworLQkJcHVi bGljIE1ldGEuU3RhY2tMYXllciBnZXRfbGF5ZXIgKCk7CistCQlwdWJsaWMgTWV0YS5NYXhpbWl6 ZUZsYWdzIGdldF9tYXhpbWl6ZWQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yICgpOwor LQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9tdXR0ZXJfaGludHMgKCk7CistCQlwdWJsaWMg aW50IGdldF9waWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3JvbGUgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3NhbmRib3hlZF9hcHBfaWQgKCk7CistCQlwdWJs aWMgdWludCBnZXRfc3RhYmxlX3NlcXVlbmNlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9zdGFydHVwX2lkICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3c/IGdldF90 aWxlX21hdGNoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90aXRsZSAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90cmFuc2llbnRfZm9yICgpOworLQkJcHVi bGljIHVpbnQzMiBnZXRfdXNlcl90aW1lICgpOworLQkJcHVibGljIE1ldGEuV2luZG93VHlwZSBn ZXRfd2luZG93X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3dtX2NsYXNz ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9jbGFzc19pbnN0YW5jZSAoKTsK Ky0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2FsbF9tb25pdG9ycyAoKTsK Ky0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2N1cnJlbnRfbW9uaXRvciAo KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zvcl9tb25pdG9yIChp bnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRf d29ya3NwYWNlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94d2luZG93ICgpOworLQkJcHVi bGljIHZvaWQgZ3JvdXBfbGVhZGVyX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfZm9j dXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hYm92ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fs d2F5c19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2FuY2VzdG9yX29m X3RyYW5zaWVudCAoTWV0YS5XaW5kb3cgdHJhbnNpZW50KTsKKy0JCXB1YmxpYyBib29sIGlzX2F0 dGFjaGVkX2RpYWxvZyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2NsaWVudF9kZWNvcmF0ZWQgKCk7 CistCQlwdWJsaWMgYm9vbCBpc19mdWxsc2NyZWVuICgpOworLQkJcHVibGljIGJvb2wgaXNfaGlk ZGVuICgpOworLQkJcHVibGljIGJvb2wgaXNfbW9uaXRvcl9zaXplZCAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX29uX2FsbF93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIGJvb2wgaXNfb25fcHJpbWFy eV9tb25pdG9yICgpOworLQkJcHVibGljIGJvb2wgaXNfb3ZlcnJpZGVfcmVkaXJlY3QgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19yZW1vdGUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19zY3JlZW5fc2l6 ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19zaGFkZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19z a2lwX3Rhc2tiYXIgKCk7CistCQlwdWJsaWMgdm9pZCBraWxsICgpOworLQkJcHVibGljIGJvb2wg bG9jYXRlZF9vbl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJs aWMgdm9pZCBsb3dlciAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfYWJvdmUgKCk7CistCQlwdWJs aWMgdm9pZCBtYWtlX2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCBtYXhpbWl6ZSAoTWV0 YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQgbWluaW1pemUgKCk7 CistCQlwdWJsaWMgdm9pZCBtb3ZlX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncs IGludCByb290X3lfbncpOworLQkJcHVibGljIHZvaWQgbW92ZV9yZXNpemVfZnJhbWUgKGJvb2wg dXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udywgaW50IHcsIGludCBoKTsKKy0J CXB1YmxpYyB2b2lkIG1vdmVfdG9fbW9uaXRvciAoaW50IG1vbml0b3IpOworLQkJcHVibGljIHZv aWQgcmFpc2UgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfYnlwYXNzX2NvbXBvc2l0b3Ig KCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfZG9udF9ieXBhc3NfY29tcG9zaXRvciAoKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9jb21wb3NpdG9yX3ByaXZhdGUgKEdMaWIuT2JqZWN0IHByaXYp OworLQkJcHVibGljIHZvaWQgc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJcHVibGljIHZv aWQgc2V0X2ljb25fZ2VvbWV0cnkgKE1ldGEuUmVjdGFuZ2xlPyByZWN0KTsKKy0JCXB1YmxpYyB2 b2lkIHNoYWRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNob3ZlX3RpdGxl YmFyX29uc2NyZWVuICgpOworLQkJcHVibGljIGJvb2wgc2hvd2luZ19vbl9pdHNfd29ya3NwYWNl ICgpOworLQkJcHVibGljIHZvaWQgc2h1dGRvd25fZ3JvdXAgKCk7CistCQlwdWJsaWMgdm9pZCBz dGljayAoKTsKKy0JCXB1YmxpYyBib29sIHRpdGxlYmFyX2lzX29uc2NyZWVuICgpOworLQkJcHVi bGljIHZvaWQgdW5tYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZvaWQgdW5tYWtlX2Z1bGxzY3Jl ZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1heGltaXplIChNZXRhLk1heGltaXplRmxhZ3MgZGly ZWN0aW9ucyk7CistCQlwdWJsaWMgdm9pZCB1bm1pbmltaXplICgpOworLQkJcHVibGljIHZvaWQg dW5zZXRfZGVtYW5kc19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9pZCB1bnNoYWRlICh1aW50 MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHVuc3RpY2sgKCk7CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGFib3ZlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBib29sIGFwcGVhcnNfZm9jdXNlZCB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkZWNvcmF0ZWQgeyBnZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVtYW5kc19hdHRlbnRpb24geyBnZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZnVsbHNjcmVlbiB7IGdldDsg fQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwX21lbnVfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0J CXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9uX2lkIHsgZ2V0OyB9CistCQlwdWJsaWMgc3Ry aW5nIGd0a19hcHBsaWNhdGlvbl9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmlu ZyBndGtfbWVudWJhcl9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtf dW5pcXVlX2J1c19uYW1lIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a193aW5kb3dfb2Jq ZWN0X3BhdGggeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHZvaWQq IGljb24geyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4 aW1pemVkX2hvcml6b250YWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgYm9vbCBtYXhpbWl6ZWRfdmVydGljYWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgdm9pZCogbWluaV9pY29uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1pbmltaXplZCB7IGdldDsgfQorLQkJcHVibGljIHN0 cmluZyBtdXR0ZXJfaGludHMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGJvb2wgb25fYWxsX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGJvb2wgcmVzaXplYWJsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCBza2lwX3Rhc2tiYXIgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJp bmcgdGl0bGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wg dXJnZW50IHsgZ2V0OyB9CistCQlwdWJsaWMgdWludCB1c2VyX3RpbWUgeyBnZXQ7IH0KKy0JCXB1 YmxpYyBNZXRhLldpbmRvd1R5cGUgd2luZG93X3R5cGUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJp bmcgd21fY2xhc3MgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwb3NpdGlvbl9jaGFu Z2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHJhaXNlZCAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBzaG93biAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5hZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHdvcmtzcGFjZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd2lu ZG93X2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dB Y3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxl LCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXaW5kb3dBY3RvciAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9tZXRhX3dpbmRvdyAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMg WC5XaW5kb3cgZ2V0X3hfd2luZG93ICgpOworLQkJcHVibGljIGJvb2wgaXNfZGVzdHJveWVkICgp OworLQkJcHVibGljIHZvaWQgc3luY192aXNpYmlsaXR5ICgpOworLQkJcHVibGljIE1ldGEuV2lu ZG93IG1ldGFfd2luZG93IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIHN0cmluZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRvd19tb2Rl IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBlZmZlY3RzX2NvbXBsZXRlZCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX3dpbmRvd19ncm91cF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg V2luZG93R3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5p bWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93 R3JvdXAgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3dpbmRvd19zaGFwZV9y ZWYiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3NoYXBlX2dldF90eXBlICgpIiwgdW5yZWZfZnVu Y3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfdW5yZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1Ymxp YyBjbGFzcyBXaW5kb3dTaGFwZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCistCQlwdWJsaWMgV2luZG93U2hhcGUgKENhaXJvLlJlZ2lvbiByZWdpb24pOwor LQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuV2luZG93U2hhcGUgc2hhcGVfYik7CistCQlwdWJs aWMgdm9pZCBnZXRfYm9yZGVycyAoaW50IGJvcmRlcl90b3AsIGludCBib3JkZXJfcmlnaHQsIGlu dCBib3JkZXJfYm90dG9tLCBpbnQgYm9yZGVyX2xlZnQpOworLQkJcHVibGljIHVpbnQgaGFzaCAo KTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1NoYXBlIEByZWYgKCk7CistCQlwdWJsaWMgQ2Fpcm8u UmVnaW9uIHRvX3JlZ2lvbiAoaW50IGNlbnRlcl93aWR0aCwgaW50IGNlbnRlcl9oZWlnaHQpOwor LQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93b3Jr c3BhY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdvcmtzcGFjZSA6IEdMaWIuT2Jq ZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBXb3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZSAodWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRoX2ZvY3VzIChNZXRhLldpbmRv dyBmb2N1c190aGlzLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEu RGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNl IGdldF9uZWlnaGJvciAoTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1Ymxp YyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1Ymxp YyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9u aXRvcik7CistCQlwdWJsaWMgaW50IGluZGV4ICgpOworLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFr IE1ldGEuV2luZG93PiBsaXN0X3dpbmRvd3MgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRp bl9zdHJ1dHMgKEdMaWIuU0xpc3Q8TWV0YS5TdHJ1dD8+IHN0cnV0cyk7CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG5fd2luZG93cyB7IGdldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgdWludCB3b3Jrc3BhY2VfaW5kZXggeyBnZXQ7IH0KKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfYWRkZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X3JlbW92ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93b3Jrc3BhY2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgY2xhc3MgV29ya3NwYWNlTWFuYWdlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXb3Jr c3BhY2VNYW5hZ2VyICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgYXBwZW5k X25ld193b3Jrc3BhY2UgKGJvb2wgYWN0aXZhdGUsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X2FjdGl2ZV93b3Jrc3BhY2UgKCk7CistCQlw dWJsaWMgaW50IGdldF9hY3RpdmVfd29ya3NwYWNlX2luZGV4ICgpOworLQkJcHVibGljIGludCBn ZXRfbl93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0 X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKy0JCXB1YmxpYyB2b2lkIG92ZXJyaWRl X3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuRGlzcGxheUNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJv b2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKy0JCXB1Ymxp YyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMy IHRpbWVzdGFtcCk7CistCQlwdWJsaWMgaW50IG5fd29ya3NwYWNlcyB7IGdldDsgfQorLQkJcHVi bGljIHNpZ25hbCB2b2lkIGFjdGl2ZV93b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCB3b3Jrc3BhY2VfYWRkZWQgKGludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHdvcmtzcGFjZV9yZW1vdmVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3 b3Jrc3BhY2Vfc3dpdGNoZWQgKGludCBvYmplY3QsIGludCBwMCwgTWV0YS5Nb3Rpb25EaXJlY3Rp b24gcDEpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfeDExX2Rpc3BsYXlfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgWDExRGlz cGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cgKHVpbnQz MiB0aW1lc3RhbXApOworLQkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7Cist CQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworLQkJcHVibGljIGludCBnZXRfc2hh cGVfZXZlbnRfYmFzZSAoKTsKKy0JCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9j dXNfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0 aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgeHdpbmRvd19pc19hX25vX2ZvY3VzX3dpbmRvdyAo WC5XaW5kb3cgeHdpbmRvdyk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfY25hbWUgPSAiTWV0YUNsb3NlRGlh bG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgaW50ZXJmYWNlIENsb3NlRGlhbG9nIDogR0xpYi5PYmplY3QgeworLQkJcHVi bGljIGFic3RyYWN0IHZvaWQgZm9jdXMgKCk7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoaWRl ICgpOworLQkJcHVibGljIGJvb2wgaXNfdmlzaWJsZSAoKTsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2 b2lkIHNob3cgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBhYnN0cmFjdCBN ZXRhLldpbmRvdyB3aW5kb3cgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW0hhc0VtaXR0 ZXJdCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzcG9uc2UgKE1ldGEuQ2xvc2VEaWFsb2dSZXNw b25zZSByZXNwb25zZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfY25hbWUgPSAiTWV0YUluaGliaXRTaG9y dGN1dHNEaWFsb2dJbnRlcmZhY2UiLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNf ZGlhbG9nX2dldF90eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgSW5oaWJpdFNob3J0Y3V0 c0RpYWxvZyA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGhpZGUgKCk7 CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93ICgpOworLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYWJzdHJhY3QgTWV0YS5XaW5kb3cgd2luZG93IHsgb3duZWQgZ2V0OyBjb25z dHJ1Y3Q7IH0KKy0JCVtIYXNFbWl0dGVyXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3BvbnNl IChNZXRhLkluaGliaXRTaG9ydGN1dHNEaWFsb2dSZXNwb25zZSByZXNwb25zZSk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IEJ1dHRvbkxheW91dCB7 CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEu QnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzRdOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0dG9uc19oYXNfc3BhY2VyWzRd OworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBNZXRh LkJ1dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNF07CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0dG9uc19oYXNfc3BhY2Vy WzRdOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBF ZGdlIHsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lk ZSBzaWRlX3R5cGU7CistCQlwdWJsaWMgTWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IEZyYW1lQm9yZGVycyB7 CistCQlwdWJsaWMgR3RrLkJvcmRlciB2aXNpYmxlOworLQkJcHVibGljIEd0ay5Cb3JkZXIgaW52 aXNpYmxlOworLQkJcHVibGljIEd0ay5Cb3JkZXIgdG90YWw7CistCQlwdWJsaWMgdm9pZCBjbGVh ciAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdp bi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luSW5mbyB7 CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyB2ZXJz aW9uOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGF1dGhvcjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmlu ZyBsaWNlbnNlOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGRlc2NyaXB0aW9uOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBQbHVnaW5WZXJzaW9uIHsK Ky0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWFqb3I7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21p bm9yOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNybzsKKy0JCXB1YmxpYyB1aW50IHZlcnNp b25fYXBpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfcmVjdGFuZ2xlX2dldF90eXBlICgp IildCistCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1 YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyBpbnQgd2lkdGg7CistCQlwdWJsaWMgaW50IGhlaWdodDsK Ky0JCXB1YmxpYyBpbnQgYXJlYSAoKTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKE1l dGEuUmVjdGFuZ2xlIGlubmVyX3JlY3QpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlPyBjb3B5 ICgpOworLQkJcHVibGljIGJvb2wgY291bGRfZml0X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVy X3JlY3QpOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuUmVjdGFuZ2xlIHNyYzIpOworLQkJ cHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyBib29sIGhvcml6X292ZXJsYXAgKE1ldGEu UmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBib29sIGludGVyc2VjdCAoTWV0YS5SZWN0YW5n bGUgc3JjMiwgb3V0IE1ldGEuUmVjdGFuZ2xlIGRlc3QpOworLQkJcHVibGljIGJvb2wgb3Zlcmxh cCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9u IChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1l dGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CXB1YmxpYyBzdHJ1Y3QgU2hhZG93UGFyYW1zIHsKKy0JCXB1YmxpYyBpbnQgcmFkaXVzOworLQkJ cHVibGljIGludCB0b3BfZmFkZTsKKy0JCXB1YmxpYyBpbnQgeF9vZmZzZXQ7CistCQlwdWJsaWMg aW50IHlfb2Zmc2V0OworLQkJcHVibGljIHVpbnQ4IG9wYWNpdHk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFN0cnV0IHsKKy0JCXB1YmxpYyBNZXRh LlJlY3RhbmdsZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lkZSBzaWRlOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj cHJlZml4ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJp ZXJfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gQmFy cmllckRpcmVjdGlvbiB7CistCQlQT1NJVElWRV9YLAorLQkJUE9TSVRJVkVfWSwKKy0JCU5FR0FU SVZFX1gsCistCQlORUdBVElWRV9ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9CVVRUT05f RlVOQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2J1dHRvbl9mdW5jdGlvbl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBCdXR0b25GdW5jdGlvbiB7CistCQlNRU5VLAorLQkJTUlOSU1JWkUs CistCQlNQVhJTUlaRSwKKy0JCUNMT1NFLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0g Ik1FVEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFs b2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ2xvc2VEaWFsb2dSZXNw b25zZSB7CistCQlXQUlULAorLQkJRk9SQ0VfQ0xPU0UKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBDb21wRWZmZWN0IHsKKy0JCUNSRUFURSwKKy0JCVVOTUlOSU1J WkUsCistCQlERVNUUk9ZLAorLQkJTUlOSU1JWkUsCistCQlOT05FCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVm aXggPSAiTUVUQV9DVVJTT1JfIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBDdXJzb3IgeworLQkJTk9ORSwKKy0JCURFRkFVTFQsCistCQlOT1JU SF9SRVNJWkUsCistCQlTT1VUSF9SRVNJWkUsCistCQlXRVNUX1JFU0laRSwKKy0JCUVBU1RfUkVT SVpFLAorLQkJU0VfUkVTSVpFLAorLQkJU1dfUkVTSVpFLAorLQkJTkVfUkVTSVpFLAorLQkJTldf UkVTSVpFLAorLQkJTU9WRV9PUl9SRVNJWkVfV0lORE9XLAorLQkJQlVTWSwKKy0JCURORF9JTl9E UkFHLAorLQkJRE5EX01PVkUsCistCQlETkRfQ09QWSwKKy0JCURORF9VTlNVUFBPUlRFRF9UQVJH RVQsCistCQlQT0lOVElOR19IQU5ELAorLQkJQ1JPU1NIQUlSLAorLQkJSUJFQU0sCistCQlMQVNU CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVi dWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBEZWJ1Z1Rv cGljIHsKKy0JCVZFUkJPU0UsCistCQlGT0NVUywKKy0JCVdPUktBUkVBLAorLQkJU1RBQ0ssCist CQlUSEVNRVMsCistCQlTTSwKKy0JCUVWRU5UUywKKy0JCVdJTkRPV19TVEFURSwKKy0JCVdJTkRP V19PUFMsCistCQlHRU9NRVRSWSwKKy0JCVBMQUNFTUVOVCwKKy0JCVBJTkcsCistCQlYSU5FUkFN QSwKKy0JCUtFWUJJTkRJTkdTLAorLQkJU1lOQywKKy0JCUVSUk9SUywKKy0JCVNUQVJUVVAsCist CQlQUkVGUywKKy0JCUdST1VQUywKKy0JCVJFU0laSU5HLAorLQkJU0hBUEVTLAorLQkJQ09NUE9T SVRPUiwKKy0JCUVER0VfUkVTSVNUQU5DRSwKKy0JCURCVVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9 ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfZGlyZWN0aW9uX2dldF90eXBlICgp IildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGlyZWN0aW9uIHsKKy0JCUxFRlQsCistCQlS SUdIVCwKKy0JCVRPUCwKKy0JCUJPVFRPTSwKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUhPUklaT05U QUwsCistCQlWRVJUSUNBTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0 eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gRGlzcGxheUNvcm5lciB7CistCQlUT1BMRUZULAorLQkJVE9QUklHSFQsCistCQlCT1RUT01M RUZULAorLQkJQk9UVE9NUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlf IiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIERpc3BsYXlEaXJlY3Rpb24geworLQkJVVAsCistCQlET1dOLAorLQkJTEVGVCwK Ky0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAi bWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRWRnZVR5cGUgewor LQkJV0lORE9XLAorLQkJTU9OSVRPUiwKKy0JCVNDUkVFTgorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0g Ik1FVEFfRVhJVF8iLCB0eXBlX2lkID0gIm1ldGFfZXhpdF9jb2RlX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIEV4aXRDb2RlIHsKKy0JCVNVQ0NFU1MsCistCQlFUlJPUgorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dl dF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRnJhbWVGbGFncyB7CistCQlB TExPV1NfREVMRVRFLAorLQkJQUxMT1dTX01FTlUsCistCQlBTExPV1NfTUlOSU1JWkUsCistCQlB TExPV1NfTUFYSU1JWkUsCistCQlBTExPV1NfVkVSVElDQUxfUkVTSVpFLAorLQkJQUxMT1dTX0hP UklaT05UQUxfUkVTSVpFLAorLQkJSEFTX0ZPQ1VTLAorLQkJU0hBREVELAorLQkJU1RVQ0ssCist CQlNQVhJTUlaRUQsCistCQlBTExPV1NfU0hBREUsCistCQlBTExPV1NfTU9WRSwKKy0JCUZVTExT Q1JFRU4sCistCQlJU19GTEFTSElORywKKy0JCUFCT1ZFLAorLQkJVElMRURfTEVGVCwKKy0JCVRJ TEVEX1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV9UWVBFXyIsIHR5cGVf aWQgPSAibWV0YV9mcmFtZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEZyYW1l VHlwZSB7CistCQlOT1JNQUwsCistCQlESUFMT0csCistCQlNT0RBTF9ESUFMT0csCistCQlVVElM SVRZLAorLQkJTUVOVSwKKy0JCUJPUkRFUiwKKy0JCUFUVEFDSEVELAorLQkJTEFTVDsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAi TUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFiX29wX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIEdyYWJPcCB7CistCQlOT05FLAorLQkJV0lORE9XX0JBU0UsCistCQlDT01Q T1NJVE9SLAorLQkJV0FZTEFORF9QT1BVUCwKKy0JCUZSQU1FX0JVVFRPTiwKKy0JCU1PVklORywK Ky0JCVJFU0laSU5HX05XLAorLQkJUkVTSVpJTkdfTiwKKy0JCVJFU0laSU5HX05FLAorLQkJUkVT SVpJTkdfRSwKKy0JCVJFU0laSU5HX1NXLAorLQkJUkVTSVpJTkdfUywKKy0JCVJFU0laSU5HX1NF LAorLQkJUkVTSVpJTkdfVywKKy0JCUtFWUJPQVJEX01PVklORywKKy0JCUtFWUJPQVJEX1JFU0la SU5HX1VOS05PV04sCistCQlLRVlCT0FSRF9SRVNJWklOR19OVywKKy0JCUtFWUJPQVJEX1JFU0la SU5HX04sCistCQlLRVlCT0FSRF9SRVNJWklOR19ORSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX0Us CistCQlLRVlCT0FSRF9SRVNJWklOR19TVywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1MsCistCQlL RVlCT0FSRF9SRVNJWklOR19TRSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1cKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y3ByZWZpeCA9ICJNRVRBX0lOSElCSVRfU0hPUlRDVVRTX0RJQUxPR19SRVNQT05TRV8iLCB0eXBl X2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIEluaGliaXRTaG9ydGN1dHNEaWFsb2dSZXNwb25zZSB7CistCQlB TExPVywKKy0JCURFTlkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWUJJTkRJTkdfQUNU SU9OXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gS2V5QmluZGluZ0FjdGlvbiB7CistCQlOT05FLAorLQkJV09SS1NQQUNF XzEsCistCQlXT1JLU1BBQ0VfMiwKKy0JCVdPUktTUEFDRV8zLAorLQkJV09SS1NQQUNFXzQsCist CQlXT1JLU1BBQ0VfNSwKKy0JCVdPUktTUEFDRV82LAorLQkJV09SS1NQQUNFXzcsCistCQlXT1JL U1BBQ0VfOCwKKy0JCVdPUktTUEFDRV85LAorLQkJV09SS1NQQUNFXzEwLAorLQkJV09SS1NQQUNF XzExLAorLQkJV09SS1NQQUNFXzEyLAorLQkJV09SS1NQQUNFX0xFRlQsCistCQlXT1JLU1BBQ0Vf UklHSFQsCistCQlXT1JLU1BBQ0VfVVAsCistCQlXT1JLU1BBQ0VfRE9XTiwKKy0JCVdPUktTUEFD RV9MQVNULAorLQkJU1dJVENIX0FQUExJQ0FUSU9OUywKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlNf QkFDS1dBUkQsCistCQlTV0lUQ0hfR1JPVVAsCistCQlTV0lUQ0hfR1JPVVBfQkFDS1dBUkQsCist CQlTV0lUQ0hfV0lORE9XUywKKy0JCVNXSVRDSF9XSU5ET1dTX0JBQ0tXQVJELAorLQkJU1dJVENI X1BBTkVMUywKKy0JCVNXSVRDSF9QQU5FTFNfQkFDS1dBUkQsCistCQlDWUNMRV9HUk9VUCwKKy0J CUNZQ0xFX0dST1VQX0JBQ0tXQVJELAorLQkJQ1lDTEVfV0lORE9XUywKKy0JCUNZQ0xFX1dJTkRP V1NfQkFDS1dBUkQsCistCQlDWUNMRV9QQU5FTFMsCistCQlDWUNMRV9QQU5FTFNfQkFDS1dBUkQs CistCQlTSE9XX0RFU0tUT1AsCistCQlQQU5FTF9NQUlOX01FTlUsCistCQlQQU5FTF9SVU5fRElB TE9HLAorLQkJVE9HR0xFX1JFQ09SRElORywKKy0JCVNFVF9TUEVXX01BUkssCistCQlBQ1RJVkFU RV9XSU5ET1dfTUVOVSwKKy0JCVRPR0dMRV9GVUxMU0NSRUVOLAorLQkJVE9HR0xFX01BWElNSVpF RCwKKy0JCVRPR0dMRV9USUxFRF9MRUZULAorLQkJVE9HR0xFX1RJTEVEX1JJR0hULAorLQkJVE9H R0xFX0FCT1ZFLAorLQkJTUFYSU1JWkUsCistCQlVTk1BWElNSVpFLAorLQkJVE9HR0xFX1NIQURF RCwKKy0JCU1JTklNSVpFLAorLQkJQ0xPU0UsCistCQlCRUdJTl9NT1ZFLAorLQkJQkVHSU5fUkVT SVpFLAorLQkJVE9HR0xFX09OX0FMTF9XT1JLU1BBQ0VTLAorLQkJTU9WRV9UT19XT1JLU1BBQ0Vf MSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzIsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8zLAorLQkJ TU9WRV9UT19XT1JLU1BBQ0VfNCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzUsCistCQlNT1ZFX1RP X1dPUktTUEFDRV82LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNywKKy0JCU1PVkVfVE9fV09SS1NQ QUNFXzgsCistCQlNT1ZFX1RPX1dPUktTUEFDRV85LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTAs CistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEyLAorLQkJ TU9WRV9UT19XT1JLU1BBQ0VfTEVGVCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1JJR0hULAorLQkJ TU9WRV9UT19XT1JLU1BBQ0VfVVAsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9ET1dOLAorLQkJTU9W RV9UT19XT1JLU1BBQ0VfTEFTVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9MRUZULAorLQkJTU9WRV9U T19NT05JVE9SX1JJR0hULAorLQkJTU9WRV9UT19NT05JVE9SX1VQLAorLQkJTU9WRV9UT19NT05J VE9SX0RPV04sCistCQlSQUlTRV9PUl9MT1dFUiwKKy0JCVJBSVNFLAorLQkJTE9XRVIsCistCQlN QVhJTUlaRV9WRVJUSUNBTExZLAorLQkJTUFYSU1JWkVfSE9SSVpPTlRBTExZLAorLQkJTU9WRV9U T19DT1JORVJfTlcsCistCQlNT1ZFX1RPX0NPUk5FUl9ORSwKKy0JCU1PVkVfVE9fQ09STkVSX1NX LAorLQkJTU9WRV9UT19DT1JORVJfU0UsCistCQlNT1ZFX1RPX1NJREVfTiwKKy0JCU1PVkVfVE9f U0lERV9TLAorLQkJTU9WRV9UT19TSURFX0UsCistCQlNT1ZFX1RPX1NJREVfVywKKy0JCU1PVkVf VE9fQ0VOVEVSLAorLQkJT1ZFUkxBWV9LRVksCistCQlJU09fTkVYVF9HUk9VUCwKKy0JCUFMV0FZ U19PTl9UT1AsCistCQlTV0lUQ0hfTU9OSVRPUiwKKy0JCVJPVEFURV9NT05JVE9SLAorLQkJTEFT VAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9ICJt ZXRhX2tleV9iaW5kaW5nX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGlj IGVudW0gS2V5QmluZGluZ0ZsYWdzIHsKKy0JCU5PTkUsCistCQlQRVJfV0lORE9XLAorLQkJQlVJ TFRJTiwKKy0JCUlTX1JFVkVSU0VELAorLQkJTk9OX01BU0tBQkxFLAorLQkJSUdOT1JFX0FVVE9S RVBFQVQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0 YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExhdGVyVHlwZSB7Cist CQlSRVNJWkUsCistCQlDQUxDX1NIT1dJTkcsCistCQlDSEVDS19GVUxMU0NSRUVOLAorLQkJU1lO Q19TVEFDSywKKy0JCUJFRk9SRV9SRURSQVcsCistCQlJRExFCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXgg PSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0 aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CistCQlM VFIsCistCQlSVEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVf aWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1 YmxpYyBlbnVtIE1heGltaXplRmxhZ3MgeworLQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FMLAor LQkJQk9USAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJt ZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51 bSBNb2RhbE9wdGlvbnMgeworLQkJUE9JTlRFUl9BTFJFQURZX0dSQUJCRUQsCistCQlLRVlCT0FS RF9BTFJFQURZX0dSQUJCRUQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX01PTklUT1JfU1dJ VENIX0NPTkZJR18iLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9zd2l0Y2hfY29uZmlnX3R5cGVf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUgewor LQkJQUxMX01JUlJPUiwKKy0JCUFMTF9MSU5FQVIsCistCQlFWFRFUk5BTCwKKy0JCUJVSUxUSU4s CistCQlVTktOT1dOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJT05fIiwgdHlwZV9p ZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g TW90aW9uRGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUxFRlQsCistCQlSSUdIVCwK Ky0JCVVQX0xFRlQsCistCQlVUF9SSUdIVCwKKy0JCURPV05fTEVGVCwKKy0JCURPV05fUklHSFQK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1BBRF9BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRh X3BhZF9hY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBQYWRBY3Rpb25U eXBlIHsKKy0JCUJVVFRPTiwKKy0JCVJJTkcsCistCQlTVFJJUAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4 ID0gIk1FVEFfUFJFRl8iLCB0eXBlX2lkID0gIm1ldGFfcHJlZmVyZW5jZV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBQcmVmZXJlbmNlIHsKKy0JCU1PVVNFX0JVVFRPTl9NT0RTLAorLQkJ Rk9DVVNfTU9ERSwKKy0JCUZPQ1VTX05FV19XSU5ET1dTLAorLQkJQVRUQUNIX01PREFMX0RJQUxP R1MsCistCQlSQUlTRV9PTl9DTElDSywKKy0JCUFDVElPTl9ET1VCTEVfQ0xJQ0tfVElUTEVCQVIs CistCQlBQ1RJT05fTUlERExFX0NMSUNLX1RJVExFQkFSLAorLQkJQUNUSU9OX1JJR0hUX0NMSUNL X1RJVExFQkFSLAorLQkJQVVUT19SQUlTRSwKKy0JCUFVVE9fUkFJU0VfREVMQVksCistCQlGT0NV U19DSEFOR0VfT05fUE9JTlRFUl9SRVNULAorLQkJVElUTEVCQVJfRk9OVCwKKy0JCU5VTV9XT1JL U1BBQ0VTLAorLQkJRFlOQU1JQ19XT1JLU1BBQ0VTLAorLQkJS0VZQklORElOR1MsCistCQlESVNB QkxFX1dPUktBUk9VTkRTLAorLQkJQlVUVE9OX0xBWU9VVCwKKy0JCVdPUktTUEFDRV9OQU1FUywK Ky0JCVZJU1VBTF9CRUxMLAorLQkJQVVESUJMRV9CRUxMLAorLQkJVklTVUFMX0JFTExfVFlQRSwK Ky0JCUdOT01FX0FDQ0VTU0lCSUxJVFksCistCQlHTk9NRV9BTklNQVRJT05TLAorLQkJQ1VSU09S X1RIRU1FLAorLQkJQ1VSU09SX1NJWkUsCistCQlSRVNJWkVfV0lUSF9SSUdIVF9CVVRUT04sCist CQlFREdFX1RJTElORywKKy0JCUZPUkNFX0ZVTExTQ1JFRU4sCistCQlXT1JLU1BBQ0VTX09OTFlf T05fUFJJTUFSWSwKKy0JCURSQUdHQUJMRV9CT1JERVJfV0lEVEgsCistCQlBVVRPX01BWElNSVpF LAorLQkJQ0VOVEVSX05FV19XSU5ET1dTLAorLQkJRFJBR19USFJFU0hPTEQ7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFf U0hBRE9XX01PREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19tb2RlX2dldF90eXBlICgpIild CistCXB1YmxpYyBlbnVtIFNoYWRvd01vZGUgeworLQkJQVVUTywKKy0JCUZPUkNFRF9PRkYsCist CQlGT1JDRURfT04KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9 ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2lkZSB7CistCQlMRUZU LAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RUT00KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX1NJWkVfQ0hBTkdFXyIsIHR5cGVfaWQgPSAibWV0YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBTaXplQ2hhbmdlIHsKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJ TUlaRSwKKy0JCUZVTExTQ1JFRU4sCistCQlVTkZVTExTQ1JFRU4KKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBTdGFja0xheWVyIHsKKy0JCURFU0tUT1AsCistCQlCT1RUT00s CistCQlOT1JNQUwsCistCQlUT1AsCistCQlET0NLLAorLQkJT1ZFUlJJREVfUkVESVJFQ1QsCist CQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfTElTVF8iLCB0eXBlX2lkID0g Im1ldGFfdGFiX2xpc3RfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFiTGlzdCB7Cist CQlOT1JNQUwsCistCQlET0NLUywKKy0JCUdST1VQLAorLQkJTk9STUFMX0FMTAorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5 cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFiU2hvd1R5cGUgeworLQkJSUNPTiwK Ky0JCUlOU1RBTlRMWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfVklSVFVBTF8iLCB0eXBl X2lkID0gIm1ldGFfdmlydHVhbF9tb2RpZmllcl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCist CXB1YmxpYyBlbnVtIFZpcnR1YWxNb2RpZmllciB7CistCQlTSElGVF9NQVNLLAorLQkJQ09OVFJP TF9NQVNLLAorLQkJQUxUX01BU0ssCistCQlNRVRBX01BU0ssCistCQlTVVBFUl9NQVNLLAorLQkJ SFlQRVJfTUFTSywKKy0JCU1PRDJfTUFTSywKKy0JCU1PRDNfTUFTSywKKy0JCU1PRDRfTUFTSywK Ky0JCU1PRDVfTUFTSworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9U WVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gV2luZG93Q2xpZW50VHlwZSB7CistCQlXQVlMQU5ELAorLQkJWDExCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfTUVOVV8iLCB0eXBlX2lkID0gIm1ldGFf d2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dNZW51 VHlwZSB7CistCQlXTSwKKy0JCUFQUAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9X XyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBXaW5kb3dUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURFU0tUT1AsCistCQlET0NLLAorLQkJ RElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAorLQkJVE9PTEJBUiwKKy0JCU1FTlUsCistCQlVVElM SVRZLAorLQkJU1BMQVNIU0NSRUVOLAorLQkJRFJPUERPV05fTUVOVSwKKy0JCVBPUFVQX01FTlUs CistCQlUT09MVElQLAorLQkJTk9USUZJQ0FUSU9OLAorLQkJQ09NQk8sCistCQlETkQsCistCQlP VkVSUklERV9PVEhFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAoTWV0YS5JZGxlTW9uaXRvciBtb25p dG9yLCB1aW50IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCistCXB1Ymxp YyBkZWxlZ2F0ZSB2b2lkIEtleUhhbmRsZXJGdW5jIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgTWV0 YS5XaW5kb3cgd2luZG93LCBbQ0NvZGUgKHR5cGUgPSAiQ2x1dHRlcktleUV2ZW50KiIpXSBDbHV0 dGVyLktleUV2ZW50PyBldmVudCwgTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5z dGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgUHJlZnNDaGFuZ2VkRnVu YyAoTWV0YS5QcmVmZXJlbmNlIHByZWYpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0J cHVibGljIGRlbGVnYXRlIGJvb2wgV2luZG93Rm9yZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdpbmRv dyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0NVUlJFTlRfVElNRSIpXQorLQlwdWJsaWMgY29uc3Qg aW50IENVUlJFTlRfVElNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9JQ09OX05BTUUi KV0KKy0JcHVibGljIGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05fTkFNRTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1l ID0gIk1FVEFfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBJQ09OX0hFSUdIVDsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMgY29uc3QgaW50IElD T05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKy0JcHVibGlj IGNvbnN0IGludCBNQUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NSUNST19WRVJT SU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlDUk9fVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0g Ik1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9I RUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMg Y29uc3QgaW50IE1JTklfSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVS U0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9 ICJNRVRBX1BMVUdJTl9BUElfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBMVUdJTl9B UElfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIp XQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9SRURSQVc7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFt ZSA9ICJNRVRBX1BSSU9SSVRZX1BSRUZTX05PVElGWSIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBS SU9SSVRZX1BSRUZTX05PVElGWTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFX IildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAi TUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJ WkU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRCIpXQorLQlw dWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRDsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0g Ik1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKy0JcHVibGljIGNvbnN0IGludCBWSVJU VUFMX0NPUkVfUE9JTlRFUl9JRDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZh dGVfc2Vzc2lvbiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZXhpdCAoTWV0YS5F eGl0Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5PcHRp b25Db250ZXh0IGdldF9vcHRpb25fY29udGV4dCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGlj IGJvb2wgZ2V0X3JlcGxhY2VfY3VycmVudF93bSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgaW5pdCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfcmVzdGFydCAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcXVpdCAoTWV0YS5FeGl0Q29kZSBjb2Rl KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2Up OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgaW50IHJ1biAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X2dub21lX3dtX2tleWJpbmRpbmdzIChzdHJpbmcgd21fa2V5YmluZGlu Z3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdt X25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB4MTFfaW5pdF9nZGtfZGlzcGxh eSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy19CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTUu ZGVwcyB2YXBpL2xpYm11dHRlci02LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggNTAlCityZW5hbWUg ZnJvbSB2YXBpL2xpYm11dHRlci01LmRlcHMKK3JlbmFtZSB0byB2YXBpL2xpYm11dHRlci02LmRl cHMKK2luZGV4IDQ4YWE3NTYzLi4yMjM1MjVlNCAxMDA2NDQKKy0tLSB2YXBpL2xpYm11dHRlci01 LmRlcHMKKysrKyB2YXBpL2xpYm11dHRlci02LmRlcHMKK0BAIC0xLDUgKzEsNiBAQAorIGd0ayst My4wCisganNvbi1nbGliLTEuMAorLW11dHRlci1jbHV0dGVyLTUKKyttdXR0ZXItY2x1dHRlci02 CisgeDExCisgeGZpeGVzLTQuMAorK2dyYXBoZW5lLWdvYmplY3QtMS4wCitkaWZmIC0tZ2l0IHZh cGkvbGlibXV0dGVyLTUudmFwaSB2YXBpL2xpYm11dHRlci02LnZhcGkKK3NpbWlsYXJpdHkgaW5k ZXggOTclCityZW5hbWUgZnJvbSB2YXBpL2xpYm11dHRlci01LnZhcGkKK3JlbmFtZSB0byB2YXBp L2xpYm11dHRlci02LnZhcGkKK2luZGV4IGI5NWEyOGU2Li5iMzZiZTFiNyAxMDA2NDQKKy0tLSB2 YXBpL2xpYm11dHRlci01LnZhcGkKKysrKyB2YXBpL2xpYm11dHRlci02LnZhcGkKK0BAIC0xLDEy ICsxLDEwIEBACistLyogbGlibXV0dGVyLTUudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8g bm90IG1vZGlmeS4gKi8KKysvKiBsaWJtdXR0ZXItNi52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2Vu LCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25h bWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNSIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9 ICJtZXRhXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJN ZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNiIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQor IG5hbWVzcGFjZSBNZXRhIHsKKyAJbmFtZXNwYWNlIENvbXBvc2l0b3IgeworIAkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1l dGFfZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGljIHZv aWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBz dGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5 KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlw dWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorQEAg LTIxLDggKzE5LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93X2FjdG9ycyAoTWV0YS5EaXNwbGF5 IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIp XQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dpbmRvd19ncm91 cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0 X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9p bnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9u KTsKKyAJfQorIAluYW1lc3BhY2UgUHJlZnMgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfYmVsbF9pc19hdWRpYmxlIild CitAQCAtMTY0LDcgKzE2MCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB2b2lkIHNl dF9udW1sb2NrIChib29sIG51bWxvY2tfc3RhdGUpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtl eW1hcF9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9sYXlvdXRfZ3Jv dXBfY2hhbmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2 aWNlX2NoYW5nZWQgKGludCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2 aWNlX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQg PSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCitAQCAtMTc0LDcgKzE3MCw3IEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2FsbCAoKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZpbGUgZmlsZTIs IGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGlj IHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUg c3R5bGUpOworKwkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZT8gZmlsZSwgR0Rlc2t0 b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAo R0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29s b3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNv bnN0cnVjdDsgfQorQEAgLTI3NSw3ICsyNzEsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJs aWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9wb2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg Y3Vyc29yX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChm bG9hdCBvYmplY3QsIGZsb2F0IHAwKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbW92 ZWQgKGZsb2F0IHgsIGZsb2F0IHkpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHZpc2liaWxpdHlf Y2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNw bGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorQEAgLTMyNyw2 ICszMjMsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVf aXNfYmVmb3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7CisgCQlwdWJsaWMgTWV0YS5X aW5kb3cgZm9jdXNfd2luZG93IHsgZ2V0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxl cmF0b3JfYWN0aXZhdGVkICh1aW50IG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZSBwMCwgdWlu dCBwMSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBjdXJzb3JfdXBkYXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBnbF92aWRl b19tZW1vcnlfcHVyZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4g KE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CitA QCAtMzUwLDYgKzM0Nyw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxh eV9jbG9zaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAo KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9zZXR1cCAoKTsKKyAJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWRuZC5oIiwgdHlwZV9pZCA9ICJt ZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgRG5kIDogR0xpYi5PYmplY3Qg eworQEAgLTM3MCwxMSArMzY4LDEwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1aW50 IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0YS5JZGxlTW9u aXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVibGljIHVpbnQgYWRkX3VzZXJfYWN0aXZl X3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CisgCQlw dWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfY29yZSAoKTsKKy0JCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9mb3JfZGV2aWNlIChpbnQg ZGV2aWNlX2lkKTsKKyAJCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUgKCk7CisgCQlwdWJsaWMg dm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgQ2x1dHRl ci5JbnB1dERldmljZSBkZXZpY2UgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNvcHlfZnVuY3Rpb24gPSAi Z19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0g Im1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitAQCAtNTM2LDE1 ICs1MzMsMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5n ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLklt cGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVy LlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IEdMaWIuT2JqZWN0 LCBDbHV0dGVyLkNvbnRlbnQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8u U3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludCBjbGlwKTsKKysJCXB1YmxpYyBD YWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlw dWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CisgCQlwdWJsaWMgdm9p ZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOworIAkJcHVibGljIHZv aWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVyZSk7CisgCQlwdWJs aWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdp b24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQgeSwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCIsIHR5cGVfaWQgPSAibWV0YV9zb3VuZF9wbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KK0BAIC03NTYs MTcgKzc1MiwxNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBX aW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5Bbmlt YXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBXaW5kb3dB Y3RvciAoKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3Rh bmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93 aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgp OworKwkJcHVibGljIHVub3duZWQgTWV0YS5TaGFwZWRUZXh0dXJlIGdldF90ZXh0dXJlICgpOwor IAkJcHVibGljIGJvb2wgaXNfZGVzdHJveWVkICgpOworIAkJcHVibGljIHZvaWQgc3luY192aXNp YmlsaXR5ICgpOworIAkJcHVibGljIE1ldGEuV2luZG93IG1ldGFfd2luZG93IHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHN0cmluZyBzaGFkb3df Y2xhc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRvd19tb2RlIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBz aWduYWwgdm9pZCBkYW1hZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGVmZmVjdHNfY29t cGxldGVkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGZpcnN0X2ZyYW1lICgpOworKwkJcHVi bGljIHNpZ25hbCB2b2lkIHRoYXdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19n cm91cF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgV2luZG93R3JvdXAgOiBDbHV0dGVy LkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250 YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAtODEzLDcgKzgwOCw3IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29y a3NwYWNlICgpOworIAkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsK KyAJCXB1YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1l dGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CisrCQlwdWJs aWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZT8gZ2V0X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IGlu ZGV4KTsKKyAJCXB1YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuRGlz cGxheUNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9y b3dzLCBpbnQgbl9jb2x1bW5zKTsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1l dGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgdm9p ZCByZW9yZGVyX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBpbnQgbmV3X2lu ZGV4KTsKK0BAIC04MzMsMTEgKzgyOCwxMyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBj bGFzcyBYMTFEaXNwbGF5IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFgxMURpc3BsYXkgKCk7CisrCQlwdWJs aWMgdm9pZCBjbGVhcl9zdGFnZV9pbnB1dF9yZWdpb24gKCk7CisgCQlwdWJsaWMgaW50IGdldF9k YW1hZ2VfZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIgKCk7 CisgCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgpOworIAkJcHVibGljIGJvb2wg aGFzX3NoYXBlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2NtX3NlbGVjdGlvbiAoKTsKKysJCXB1 YmxpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKFguWHNlcnZlclJlZ2lvbiByZWdpb24p OworIAkJcHVibGljIGJvb2wgeHdpbmRvd19pc19hX25vX2ZvY3VzX3dpbmRvdyAoWC5XaW5kb3cg eHdpbmRvdyk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCIsIHR5cGVfY25hbWUgPSAiTWV0YUNsb3NlRGlhbG9nSW50ZXJmYWNlIiwg dHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19nZXRfdHlwZSAoKSIpXQorQEAgLTg5OSw3ICs4 OTYsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pY3JvOwor IAkJcHVibGljIHVpbnQgdmVyc2lvbl9hcGk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1 bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwg dHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0 IFJlY3RhbmdsZSB7CisgCQlwdWJsaWMgaW50IHg7CisgCQlwdWJsaWMgaW50IHk7CitAQCAtMTQ0 Myw2ICsxNDQwLDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRlX3Nlc3Np b24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlw dWJsaWMgc3RhdGljIHZvaWQgYWRkX2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdG bGFnIGRlYnVnX2ZsYWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRl ci5QaWNrRGVidWdGbGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhpdENv ZGUgY29kZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQor IAlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90 IG4pOworQEAgLTE0NTksNiArMTQ1OCw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBy ZWdpc3Rlcl93aXRoX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2NsdXR0ZXJfZGVidWdf ZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0Zs YWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBpY2tfZmxhZ3MpOworKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2 b2lkIHJlc3RhcnQgKHN0cmluZz8gbWVzc2FnZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGludCBydW4gKCk7CitAQCAtMTQ2 Nyw1ICsxNDY4LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF93bV9uYW1lIChz dHJpbmcgd21fbmFtZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0ICgpOworKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIHgxMV9p bml0X2dka19kaXNwbGF5ICgpIHRocm93cyBHTGliLkVycm9yOworIH0KK2RpZmYgLS1naXQgdmFw aS9saWJtdXR0ZXItNy1jdXN0b20udmFsYSB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxhCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjFlMGI5MTdjCistLS0gL2Rldi9u dWxsCisrKysgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQorQEAgLTAsMCArMSw3IEBACisr W0NDb2RlIChoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGJlZm9yZV9mcmFt ZSB7CisrfQorKworK1tDQ29kZSAoaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVj dCBmcmFtZSB7CisrfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci03LmRlcHMgdmFwaS9saWJt dXR0ZXItNy5kZXBzCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjJlZjkx OWVlCistLS0gL2Rldi9udWxsCisrKysgdmFwaS9saWJtdXR0ZXItNy5kZXBzCitAQCAtMCwwICsx LDYgQEAKKytndGsrLTMuMAorK2pzb24tZ2xpYi0xLjAKKyttdXR0ZXItY2x1dHRlci03CisreDEx CisreGZpeGVzLTQuMAorK2dyYXBoZW5lLWdvYmplY3QtMS4wCitkaWZmIC0tZ2l0IHZhcGkvbGli bXV0dGVyLTMudmFwaSB2YXBpL2xpYm11dHRlci03LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggNzUl CityZW5hbWUgZnJvbSB2YXBpL2xpYm11dHRlci0zLnZhcGkKK3JlbmFtZSB0byB2YXBpL2xpYm11 dHRlci03LnZhcGkKK2luZGV4IDE3MTVhYThmLi45MGM0MTU5MCAxMDA2NDQKKy0tLSB2YXBpL2xp Ym11dHRlci0zLnZhcGkKKysrKyB2YXBpL2xpYm11dHRlci03LnZhcGkKK0BAIC0xLDEyICsxLDEw IEBACistLyogbGlibXV0dGVyLTMudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1v ZGlmeS4gKi8KKysvKiBsaWJtdXR0ZXItNy52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBu b3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFj ZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiMyIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRh XyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwg Z2lyX3ZlcnNpb24gPSAiNyIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorIG5hbWVz cGFjZSBNZXRhIHsKKyAJbmFtZXNwYWNlIENvbXBvc2l0b3IgeworIAkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZGlz YWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlz YWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25h bWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJ CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBj bmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMg c3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBk aXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorQEAgLTIxLDgg KzE5LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIu TGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93X2FjdG9ycyAoTWV0YS5EaXNwbGF5IGRpc3Bs YXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorIAkJ cHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dpbmRvd19ncm91cF9mb3Jf ZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdl X2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9y ZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJ fQorIAluYW1lc3BhY2UgUHJlZnMgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfYmVsbF9pc19hdWRpYmxlIildCitAQCAt NDcsNiArNDMsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIE1ldGEuQnV0 dG9uTGF5b3V0IHByZWZzX2dldF9idXR0b25fbGF5b3V0ICgpOworIAkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NlbnRl cl9uZXdfd2luZG93cyIpXQorIAkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9jZW50ZXJf bmV3X3dpbmRvd3MgKCk7CisrCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY2hlY2tfYWxpdmVfdGltZW91dCIpXQorKwkJ cHVibGljIHN0YXRpYyB1aW50IHByZWZzX2dldF9jaGVja19hbGl2ZV90aW1lb3V0ICgpOworIAkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBw cmVmc19nZXRfY29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jdXJzb3Jfc2l6 ZSIpXQorQEAgLTc1LDggKzczLDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRp YyBib29sIHByZWZzX2dldF9nbm9tZV9hY2Nlc3NpYmlsaXR5ICgpOworIAkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2du b21lX2FuaW1hdGlvbnMiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZ25vbWVf YW5pbWF0aW9ucyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFy IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVf dGl0bGViYXIgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24iKV0KKyAJCXB1Ymxp YyBzdGF0aWMgTWV0YS5LZXlCaW5kaW5nQWN0aW9uIHByZWZzX2dldF9rZXliaW5kaW5nX2FjdGlv biAoc3RyaW5nIG5hbWUpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51IildCitAQCAt MTA1LDggKzEwMSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBw cmVmc19pbml0ICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4iKV0KKyAJCXB1Ymxp YyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfZm9yY2VfZnVsbHNjcmVlbiAoYm9vbCB3aGV0aGVyKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX3NldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyIildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgcHJlZnNfc2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKGJvb2wg d2hldGhlcik7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMiKV0KKyAJCXB1YmxpYyBzdGF0 aWMgdm9pZCBwcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMgKGludCBuX3dvcmtzcGFjZXMpOworIAkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfc2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KK0BAIC0xMTcsMTIgKzExMSwxMCBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9w aWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3Jf YWN0aW9uIildCisgCQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVf Zm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dfdXRmOF9zdHJuZHVwIild CistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6 ZV90IG4pOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25h bWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIpXQorIAkJcHVibGljIHN0YXRpYyBNZXRh LkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVjdGlvbiAoKTsKKyAJCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90b19z dHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJp bmcgKGludCBncmF2aXR5KTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0 eV90b19zdHJpbmcgKE1ldGEuR3Jhdml0eSBncmF2aXR5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfZGVidWdnaW5nIildCisg CQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgpOworIAkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9pc19zeW5jaW5nIildCitA QCAtMTY1LDEyICsxNTcsMTMgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVub3duZWQg TWV0YS5EbmQgZ2V0X2RuZCAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuUmVtb3RlQWNjZXNz Q29udHJvbGxlciBnZXRfcmVtb3RlX2FjY2Vzc19jb250cm9sbGVyICgpOworIAkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5BY3RvciBnZXRfc3RhZ2UgKCk7CisrCQlwdWJsaWMgYm9vbCBpc19yZW5k ZXJpbmdfaGFyZHdhcmVfYWNjZWxlcmF0ZWQgKCk7CisgCQlwdWJsaWMgdm9pZCBsb2NrX2xheW91 dF9ncm91cCAodWludCBpZHgpOworIAkJcHVibGljIHZvaWQgc2V0X2tleW1hcCAoc3RyaW5nIGxh eW91dHMsIHN0cmluZyB2YXJpYW50cywgc3RyaW5nIG9wdGlvbnMpOworIAkJcHVibGljIHZvaWQg c2V0X251bWxvY2sgKGJvb2wgbnVtbG9ja19zdGF0ZSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg a2V5bWFwX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9n cm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9k ZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9k ZXZpY2VfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIGxpZF9pc19jbG9zZWRfY2hhbmdlZCAoYm9vbCBvYmplY3QpOworIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC5oIiwgdHlwZV9p ZCA9ICJtZXRhX2JhY2tncm91bmRfZ2V0X3R5cGUgKCkiKV0KK0BAIC0xODAsNyArMTczLDcgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIHJlZnJlc2hfYWxsICgpOwor IAkJcHVibGljIHZvaWQgc2V0X2JsZW5kIChHTGliLkZpbGUgZmlsZTEsIEdMaWIuRmlsZSBmaWxl MiwgZG91YmxlIGJsZW5kX2ZhY3RvciwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJs aWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlIGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHls ZSBzdHlsZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlPyBmaWxlLCBHRGVz a3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworIAkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50 IChHRGVza3RvcC5CYWNrZ3JvdW5kU2hhZGluZyBzaGFkaW5nX2RpcmVjdGlvbiwgQ2x1dHRlci5D b2xvciBjb2xvciwgQ2x1dHRlci5Db2xvciBzZWNvbmRfY29sb3IpOworIAkJW05vQWNjZXNzb3JN ZXRob2RdCisgCQlwdWJsaWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsg Y29uc3RydWN0OyB9CitAQCAtMTkwLDkgKzE4MywxOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1 YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50 b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0 YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyQWN0b3IqIildCisgCQlwdWJsaWMgQmFja2dyb3VuZEFjdG9yIChNZXRhLkRpc3Bs YXkgZGlzcGxheSwgaW50IG1vbml0b3IpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJs aWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9Cisr CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBpbnQgbW9uaXRvciB7IGdldDsgY29uc3Ry dWN0OyB9CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNr Z3JvdW5kLWNvbnRlbnQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2NvbnRlbnRfZ2V0 X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEJhY2tncm91bmRDb250ZW50IDogR0xpYi5PYmpl Y3QsIENsdXR0ZXIuQ29udGVudCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQmFja2dyb3VuZENvbnRlbnQgKCk7CisrCQlwdWJsaWMg c3RhdGljIENsdXR0ZXIuQ29udGVudCBAbmV3IChNZXRhLkRpc3BsYXkgZGlzcGxheSwgaW50IG1v bml0b3IpOworIAkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmQgKE1ldGEuQmFja2dyb3VuZCBi YWNrZ3JvdW5kKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoYm9vbCBlbmFibGVkLCBp bnQgaGVpZ2h0LCBkb3VibGUgdG9uZV9zdGFydCk7CistCQlwdWJsaWMgdm9pZCBzZXRfbW9uaXRv ciAoaW50IG1vbml0b3IpOworIAkJcHVibGljIHZvaWQgc2V0X3ZpZ25ldHRlIChib29sIGVuYWJs ZWQsIGRvdWJsZSBicmlnaHRuZXNzLCBkb3VibGUgc2hhcnBuZXNzKTsKKyAJCVtOb0FjY2Vzc29y TWV0aG9kXQorIAkJcHVibGljIE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kIHsgb3duZWQgZ2V0 OyBzZXQ7IH0KK0BAIC0yNzcsMTQgKzI3OSwxNCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJs aWMgc3RhdGljIHVub3duZWQgTWV0YS5DdXJzb3JUcmFja2VyIGdldF9mb3JfZGlzcGxheSAoTWV0 YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJcHVibGljIHZvaWQgZ2V0X2hvdCAob3V0IGludCB4LCBv dXQgaW50IHkpOworIAkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXIgKGludCB4LCBpbnQgeSwgQ2x1 dHRlci5Nb2RpZmllclR5cGUgbW9kcyk7CisrCQlwdWJsaWMgYm9vbCBnZXRfcG9pbnRlcl92aXNp YmxlICgpOworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29sIHZpc2libGUpOworKwkJW05v QWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfZGJ1c19kaXNwbGF5X2NvbmZpZ19za2VsZXRvbl9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgREJ1c0Rpc3BsYXlDb25maWdTa2VsZXRvbiA6 IEdMaWIuREJ1c0ludGVyZmFjZVNrZWxldG9uLCBHTGliLkRCdXNJbnRlcmZhY2UgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERCdXNE aXNwbGF5Q29uZmlnU2tlbGV0b24gKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21v dmVkIChmbG9hdCB4LCBmbG9hdCB5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB2aXNpYmlsaXR5 X2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlz cGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGlj IGNsYXNzIERpc3BsYXkgOiBHTGliLk9iamVjdCB7CitAQCAtMzA5LDMyICszMTEsMzkgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGJvb2wgZ2V0X21vbml0b3JfaW5fZnVsbHNjcmVlbiAo aW50IG1vbml0b3IpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRvcl9pbmRleF9mb3JfcmVjdCAo TWV0YS5SZWN0YW5nbGUgcmVjdCk7CisgCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX25laWdoYm9y X2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5EaXNwbGF5RGlyZWN0aW9uIGRpcik7Cisr CQlwdWJsaWMgZmxvYXQgZ2V0X21vbml0b3Jfc2NhbGUgKGludCBtb25pdG9yKTsKKyAJCXB1Ymxp YyBpbnQgZ2V0X25fbW9uaXRvcnMgKCk7CisgCQlwdWJsaWMgc3RyaW5nIGdldF9wYWRfYWN0aW9u X2xhYmVsIChDbHV0dGVyLklucHV0RGV2aWNlIHBhZCwgTWV0YS5QYWRBY3Rpb25UeXBlIGFjdGlv bl90eXBlLCB1aW50IGFjdGlvbl9udW1iZXIpOworIAkJcHVibGljIGludCBnZXRfcHJpbWFyeV9t b25pdG9yICgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5TZWxlY3Rpb24gZ2V0X3NlbGVjdGlv biAoKTsKKyAJCXB1YmxpYyB2b2lkIGdldF9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhl aWdodCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNvdW5kUGxheWVyIGdldF9zb3VuZF9wbGF5 ZXIgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX2N1cnJlbnQgKE1l dGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworIAkJcHVibGljIEdM aWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBnZXRfdGFiX2xpc3QgKE1ldGEuVGFiTGlzdCB0eXBl LCBNZXRhLldvcmtzcGFjZT8gd29ya3NwYWNlKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV2lu ZG93IGdldF90YWJfbmV4dCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtz cGFjZSwgTWV0YS5XaW5kb3c/IHdpbmRvdywgYm9vbCBiYWNrd2FyZCk7CisgCQlwdWJsaWMgdW5v d25lZCBNZXRhLldvcmtzcGFjZU1hbmFnZXIgZ2V0X3dvcmtzcGFjZV9tYW5hZ2VyICgpOworLQkJ cHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9yKTsKKysJCXB1 YmxpYyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBhY2NlbGVyYXRvciwgTWV0YS5LZXlC aW5kaW5nRmxhZ3MgZmxhZ3MpOworIAkJcHVibGljIGJvb2wgaXNfcG9pbnRlcl9lbXVsYXRpbmdf c2VxdWVuY2UgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UpOworIAkJcHVibGljIGJv b2wgcmVtb3ZlX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHJlcXVl c3RfcGFkX29zZCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIGJvb2wgZWRpdGlvbl9tb2RlKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9jdXJzb3IgKE1ldGEuQ3Vyc29yIGN1cnNvcik7CisrCQlwdWJs aWMgdm9pZCBzZXRfaW5wdXRfZm9jdXMgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBmb2N1c19m cmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIE1ldGEu V2luZG93PiBzb3J0X3dpbmRvd3NfYnlfc3RhY2tpbmcgKEdMaWIuU0xpc3Q8TWV0YS5XaW5kb3c+ IHdpbmRvd3MpOworIAkJcHVibGljIGJvb2wgc3VwcG9ydHNfZXh0ZW5kZWRfYmFycmllcnMgKCk7 CisgCQlwdWJsaWMgdm9pZCB1bmZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7Cisg CQlwdWJsaWMgYm9vbCB1bmdyYWJfYWNjZWxlcmF0b3IgKHVpbnQgYWN0aW9uX2lkKTsKKyAJCXB1 YmxpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMg dm9pZCB1bnNldF9pbnB1dF9mb2N1cyAodWludDMyIHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgYm9v bCB4c2VydmVyX3RpbWVfaXNfYmVmb3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7Cisg CQlwdWJsaWMgTWV0YS5XaW5kb3cgZm9jdXNfd2luZG93IHsgZ2V0OyB9CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50IG9iamVjdCwgdWludCBwMCwgdWlu dCBwMSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50 IG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZSBwMCwgdWludCBwMSk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgY2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfdXBkYXRl ZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBnbF92aWRlb19tZW1vcnlfcHVyZ2VkICgpOwor IAkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuRGlzcGxheSBvYmplY3Qs IE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg Z3JhYl9vcF9lbmQgKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdy YWJPcCBwMSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9jaGFuZ2VkICgp OworKwkJcHVibGljIHNpZ25hbCBib29sIGluaXRfeHNlcnZlciAoR0xpYi5UYXNrIG9iamVjdCk7 CisgCQlwdWJsaWMgc2lnbmFsIGJvb2wgbW9kaWZpZXJzX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCAo KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBvdmVybGF5X2tleSAoKTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBwYWRfbW9kZV9zd2l0Y2ggKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCB1aW50 IHAwLCB1aW50IHAxKTsKK0BAIC0zNDUsNyArMzU0LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzaXplX3BvcHVwIChib29sIG9iamVjdCwgTWV0YS5S ZWN0YW5nbGUgcDAsIGludCBwMSwgaW50IHAyKTsKKyAJCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93 X3Jlc3RhcnRfbWVzc2FnZSAoc3RyaW5nPyBtZXNzYWdlKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzdGFy dHVwX3NlcXVlbmNlX2NoYW5nZWQgKHZvaWQqIG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgd2luZG93X2NyZWF0ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgd2luZG93X2RlbWFuZHNfYXR0ZW50aW9uIChNZXRhLldpbmRvdyBvYmplY3QpOworIAkJ cHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19lbnRlcmVkX21vbml0b3IgKGludCBvYmplY3QsIE1l dGEuV2luZG93IHAwKTsKK0BAIC0zNTQsNiArMzYyLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIHgxMV9kaXNwbGF5X2Nsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDEx X2Rpc3BsYXlfb3BlbmVkICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X3Nl dHVwICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtZG5k LmgiLCB0eXBlX2lkID0gIm1ldGFfZG5kX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBE bmQgOiBHTGliLk9iamVjdCB7CitAQCAtMzYzLDcgKzM3Miw3IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfbGVhdmUgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgZG5kX3Bvc2l0aW9uX2NoYW5nZSAoaW50IG9iamVjdCwgaW50IHAwKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBGcmFtZSB7CisgCX0K K0BAIC0zNzQsMTMgKzM4MywxMiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdWludCBh ZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEuSWRsZU1vbml0 b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyB1aW50IGFkZF91c2VyX2FjdGl2ZV93 YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVi bGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7CistCQlwdWJs aWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2RldmljZSAoaW50IGRl dmljZV9pZCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOworIAkJcHVibGljIHZv aWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIu SW5wdXREZXZpY2UgZGV2aWNlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9rZXliaW5kaW5ncy5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAibWV0YV9rZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5k aW5nX2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgS2V5QmluZGlu ZyB7CisgCQlwdWJsaWMgdWludCBnZXRfbWFzayAoKTsKK0BAIC0zOTEsOCArMzk5LDIxIEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCVtDQ29kZSAoY25hbWUgPSAibWV0YV9rZXliaW5kaW5nc19zZXRf Y3VzdG9tX2hhbmRsZXIiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBzZXRfY3VzdG9tX2hhbmRs ZXIgKHN0cmluZyBuYW1lLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jPyBoYW5kbGVyKTsKKyAJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgiLCB0eXBlX2lkID0gIm1ldGFfbGF1bmNoX2NvbnRleHRfZ2V0X3R5cGUgKCkiKV0KKysJcHVi bGljIGNsYXNzIExhdW5jaENvbnRleHQgOiBHTGliLkFwcExhdW5jaENvbnRleHQgeworKwkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIExhdW5j aENvbnRleHQgKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfdGltZXN0YW1wICh1aW50MzIgdGltZXN0 YW1wKTsKKysJCXB1YmxpYyB2b2lkIHNldF93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtz cGFjZSk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlz cGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJ CXB1YmxpYyB1aW50IHRpbWVzdGFtcCB7IGdldDsgc2V0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKysJCXB1YmxpYyBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UgeyBvd25lZCBnZXQ7IHNldDsg fQorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIild CistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBNb25pdG9yTWFuYWdlciA6IE1ldGEuREJ1c0Rpc3Bs YXlDb25maWdTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlLCBHTGliLkRCdXNJbnRlcmZhY2Ug eworKwlwdWJsaWMgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBHTGliLk9iamVjdCB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgTW9uaXRv ck1hbmFnZXIgKCk7CisgCQlwdWJsaWMgYm9vbCBjYW5fc3dpdGNoX2NvbmZpZyAoKTsKK0BAIC00 MDcsNiArNDI4LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIGNv bmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNf Y2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkX2ludGVy bmFsICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHBvd2VyX3NhdmVfbW9kZV9jaGFuZ2VkICgp OworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgi LCB0eXBlX2lkID0gIm1ldGFfcGx1Z2luX2dldF90eXBlICgpIildCisgCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBQbHVnaW4gOiBHTGliLk9iamVjdCB7CitAQCAtNDMwLDYgKzQ1Miw4IEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF9zd2l0Y2hfd29ya3NwYWNl ICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF93aW5kb3df ZWZmZWN0cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVi bGljIHZpcnR1YWwgdm9pZCBsb2NhdGVfcG9pbnRlciAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgdm9p ZCBtYW5hZ2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBlKTsKKyAJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7 CitAQCAtNDY1LDI2ICs0ODksNTYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgY2xhc3Mg UmVtb3RlQWNjZXNzQ29udHJvbGxlciA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBSZW1vdGVBY2Nlc3NDb250 cm9sbGVyICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdF9yZW1vdGVfYWNjZXNzICgpOworKwkJ cHVibGljIHZvaWQgdW5pbmhpYml0X3JlbW90ZV9hY2Nlc3MgKCk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgbmV3X2hhbmRsZSAoTWV0YS5SZW1vdGVBY2Nlc3NIYW5kbGUgb2JqZWN0KTsKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlbW90ZV9hY2Nlc3NfaGFuZGxlX2dldF90eXBl ICgpIildCisgCXB1YmxpYyBjbGFzcyBSZW1vdGVBY2Nlc3NIYW5kbGUgOiBHTGliLk9iamVjdCB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0 ZWQgUmVtb3RlQWNjZXNzSGFuZGxlICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2Rpc2FibGVfYW5p bWF0aW9ucyAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RvcCAoKTsKKysJCVtOb0FjY2Vz c29yTWV0aG9kXQorKwkJcHVibGljIGJvb2wgaXNfcmVjb3JkaW5nIHsgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzdG9wcGVkICgpOworIAl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFNlbGVjdGlvbiA6IEdMaWIuT2JqZWN0IHsK KysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBT ZWxlY3Rpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKysJCXB1YmxpYyBHTGliLkxpc3Q8c3Ry aW5nPiBnZXRfbWltZXR5cGVzIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0aW9uX3R5cGUpOwor KwkJcHVibGljIHZvaWQgc2V0X293bmVyIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0aW9uX3R5 cGUsIE1ldGEuU2VsZWN0aW9uU291cmNlIG93bmVyKTsKKysJCXB1YmxpYyBhc3luYyBib29sIHRy YW5zZmVyX2FzeW5jIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0aW9uX3R5cGUsIHN0cmluZyBt aW1ldHlwZSwgc3NpemVfdCBzaXplLCBHTGliLk91dHB1dFN0cmVhbSBvdXRwdXQsIEdMaWIuQ2Fu Y2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyB2b2lk IHVuc2V0X293bmVyIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0aW9uX3R5cGUsIE1ldGEuU2Vs ZWN0aW9uU291cmNlIG93bmVyKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBvd25lcl9jaGFuZ2Vk ICh1aW50IG9iamVjdCwgTWV0YS5TZWxlY3Rpb25Tb3VyY2UgcDApOworKwl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rp b25fc291cmNlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTZWxlY3Rpb25Tb3VyY2Ug OiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisrCQlwcm90ZWN0ZWQgU2VsZWN0aW9uU291cmNlICgpOworKwkJcHVibGljIHZpcnR1YWwg R0xpYi5MaXN0PHN0cmluZz4gZ2V0X21pbWV0eXBlcyAoKTsKKysJCXB1YmxpYyBib29sIGlzX2Fj dGl2ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGFzeW5jIEdMaWIuSW5wdXRTdHJlYW0gcmVhZF9h c3luYyAoc3RyaW5nIG1pbWV0eXBlLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhy b3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhY3RpdmF0ZWQg KCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkZWFjdGl2YXRlZCAoKTsKKysJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1l dGFfc2VsZWN0aW9uX3NvdXJjZV9tZW1vcnlfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNz IFNlbGVjdGlvblNvdXJjZU1lbW9yeSA6IE1ldGEuU2VsZWN0aW9uU291cmNlIHsKKysJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIk1ldGFTZWxlY3Rpb25T b3VyY2UqIildCisrCQlwdWJsaWMgU2VsZWN0aW9uU291cmNlTWVtb3J5IChzdHJpbmcgbWltZXR5 cGUsIEdMaWIuQnl0ZXMgY29udGVudCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1zZXR0aW5ncy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21w YWN0XQorIAlwdWJsaWMgY2xhc3MgU2V0dGluZ3MgeworIAkJcHVibGljIGludCBnZXRfZm9udF9k cGkgKCk7CisgCQlwdWJsaWMgaW50IGdldF91aV9zY2FsaW5nX2ZhY3RvciAoKTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCBy ZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19n ZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHJlZl9mdW5jdGlvbiA9ICJt ZXRhX3NoYWRvd19yZWYiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2dldF90eXBlICgpIiwgdW5y ZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCisgCXB1Ymxp YyBjbGFzcyBTaGFkb3cgeworIAkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAoaW50IHdpbmRvd194 LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCBDYWly by5SZWN0YW5nbGVJbnQgYm91bmRzKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50IChpbnQgd2luZG93 X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIHVp bnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9vbCBjbGlwX3N0cmljdGx5KTsKKysJ CXB1YmxpYyB2b2lkIHBhaW50IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyLCBpbnQgd2lu ZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQs IHVpbnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9vbCBjbGlwX3N0cmljdGx5KTsK KyAJCXB1YmxpYyBNZXRhLlNoYWRvdyBAcmVmICgpOworIAkJcHVibGljIHZvaWQgdW5yZWYgKCk7 CisgCX0KK0BAIC00OTksMjggKzU1Myw3NCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhcGVkX3Rl eHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBDbHV0 dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5D b250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0 dXJlIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU2hhcGVkVGV4dHVyZSAoKTsK Ky0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50IGNs aXApOworKwkJcHVibGljIENhaXJvLlN1cmZhY2U/IGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xl SW50PyBjbGlwKTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAo KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVhdGVfbWlwbWFw cyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1cmUgbWFza190 ZXh0dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25lZCBDYWlyby5S ZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJlYSAoaW50IHgs IGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNp emVfY2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWdlX2dldF90eXBlICgpIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc291bmQtcGxheWVyLmgi LCB0eXBlX2lkID0gIm1ldGFfc291bmRfcGxheWVyX2dldF90eXBlICgpIildCisrCXB1YmxpYyBj bGFzcyBTb3VuZFBsYXllciA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTb3VuZFBsYXllciAoKTsKKysJCXB1 YmxpYyB2b2lkIHBsYXlfZnJvbV9maWxlIChHTGliLkZpbGUgZmlsZSwgc3RyaW5nIGRlc2NyaXB0 aW9uLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpOworKwkJcHVibGljIHZv aWQgcGxheV9mcm9tX3RoZW1lIChzdHJpbmcgbmFtZSwgc3RyaW5nIGRlc2NyaXB0aW9uLCBHTGli LkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpOworKwl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc3RhZ2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9n ZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLlN0YWdlLCBBdGsu SW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0 ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisgCQlwcm90ZWN0ZWQgU3RhZ2UgKCk7CisgCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZm9j dXNlZCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGFjdG9y c19wYWludGVkICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFydHVwX25vdGlm aWNhdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU3RhcnR1cE5vdGlmaWNhdGlv biA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKysJCXByb3RlY3RlZCBTdGFydHVwTm90aWZpY2F0aW9uICgpOworKwkJcHVibGljIE1l dGEuTGF1bmNoQ29udGV4dCBjcmVhdGVfbGF1bmNoZXIgKCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKysJCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0 OyB9CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAodm9pZCogb2JqZWN0KTsKKysJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1l dGFfc3RhcnR1cF9zZXF1ZW5jZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU3RhcnR1 cFNlcXVlbmNlIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFN0YXJ0dXBTZXF1ZW5jZSAoKTsKKysJCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfYXBwbGljYXRpb25faWQgKCk7CisrCQlwdWJsaWMgYm9vbCBn ZXRfY29tcGxldGVkICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pY29uX25hbWUg KCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2lkICgpOworKwkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9uYW1lICgpOworKwkJcHVibGljIHVpbnQ2NCBnZXRfdGltZXN0YW1wICgp OworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bWNsYXNzICgpOworKwkJcHVibGljIGlu dCBnZXRfd29ya3NwYWNlICgpOworKwkJcHVibGljIHN0cmluZyBhcHBsaWNhdGlvbl9pZCB7IGdl dDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIGljb25fbmFtZSB7IGdldDsgY29uc3Ry dWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIGlkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1Ymxp YyBzdHJpbmcgbmFtZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgdWludDY0IHRpbWVz dGFtcCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIHdtY2xhc3MgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIGludCB3b3Jrc3BhY2UgeyBnZXQ7IGNvbnN0cnVjdDsg fQorKwkJW0hhc0VtaXR0ZXJdCisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29tcGxldGUgKCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdGhlbWUuaCIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFRoZW1lIHsKKyAJCXB1 YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS13YXlsYW5kLWNsaWVudC5oIiwgdHlwZV9pZCA9ICJtZXRhX3dheWxhbmRfY2xpZW50 X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBXYXlsYW5kQ2xpZW50IDogR0xpYi5PYmpl Y3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHVi bGljIFdheWxhbmRDbGllbnQgKEdMaWIuU3VicHJvY2Vzc0xhdW5jaGVyIGxhdW5jaGVyKSB0aHJv d3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyB2b2lkIGhpZGVfZnJvbV93aW5kb3dfbGlzdCAoTWV0 YS5XaW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyBib29sIG93bnNfd2luZG93IChNZXRhLldpbmRv dyB3aW5kb3cpOworKwkJcHVibGljIHZvaWQgc2hvd19pbl93aW5kb3dfbGlzdCAoTWV0YS5XaW5k b3cgd2luZG93KTsKKysJCXB1YmxpYyBHTGliLlN1YnByb2Nlc3Mgc3Bhd252IChNZXRhLkRpc3Bs YXkgZGlzcGxheSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJt aW5hdGVkID0gdHJ1ZSldIHN0cmluZ1tdIGFyZ3YpIHRocm93cyBHTGliLkVycm9yOworKwl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgdHlwZV9pZCA9ICJt ZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93 IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorQEAgLTU0Nyw2ICs2NDcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90b19jbGllbnRfcmVjdCAoTWV0YS5SZWN0YW5nbGUgZnJh bWVfcmVjdCk7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOwor IAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9jbGllbnRfbWFjaGluZSAoKTsKKysJCXB1Ymxp YyBNZXRhLldpbmRvd0NsaWVudFR5cGUgZ2V0X2NsaWVudF90eXBlICgpOworIAkJcHVibGljIHVu b3duZWQgR0xpYi5PYmplY3QgZ2V0X2NvbXBvc2l0b3JfcHJpdmF0ZSAoKTsKKyAJCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRh LkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CitAQCAtNTYxLDYgKzY2Miw3IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1ZV9idXNfbmFtZSAo KTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19vYmplY3RfcGF0aCAo KTsKKyAJCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0YS5SZWN0YW5nbGUg cmVjdCk7CisrCQlwdWJsaWMgdWludDY0IGdldF9pZCAoKTsKKyAJCXB1YmxpYyBNZXRhLlN0YWNr TGF5ZXIgZ2V0X2xheWVyICgpOworIAkJcHVibGljIE1ldGEuTWF4aW1pemVGbGFncyBnZXRfbWF4 aW1pemVkICgpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRvciAoKTsKK0BAIC02MTAsOCArNzEy LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHZvaWQgbW92ZV9yZXNpemVfZnJhbWUg KGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udywgaW50IHcsIGludCBo KTsKKyAJCXB1YmxpYyB2b2lkIG1vdmVfdG9fbW9uaXRvciAoaW50IG1vbml0b3IpOworIAkJcHVi bGljIHZvaWQgcmFpc2UgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfYnlwYXNzX2NvbXBv c2l0b3IgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfZG9udF9ieXBhc3NfY29tcG9zaXRv ciAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb21wb3NpdG9yX3ByaXZhdGUgKEdMaWIuT2JqZWN0 IHByaXYpOworIAkJcHVibGljIHZvaWQgc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworIAkJcHVi bGljIHZvaWQgc2V0X2ljb25fZ2VvbWV0cnkgKE1ldGEuUmVjdGFuZ2xlPyByZWN0KTsKK0BAIC02 NzIsMjQgKzc3MiwyNSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg c2hvd24gKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworIAkJcHVi bGljIHNpZ25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB1bm1h bmFnaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9jaGFuZ2VkICgpOwor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93LWFjdG9y LmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2FjdG9yX2dldF90eXBlICgpIildCistCXB1Ymxp YyBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1 dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsK KysJcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRr LkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorIAkJcHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOworKwkJcHVibGljIHZvaWQgZnJlZXpl ICgpOworKwkJcHVibGljIENhaXJvLlN1cmZhY2U/IGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xl SW50PyBjbGlwKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9tZXRhX3dpbmRv dyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RleHR1cmUgKCk7Cist CQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3hfd2luZG93ICgpOworKwkJcHVibGljIHVub3duZWQgTWV0 YS5TaGFwZWRUZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVibGljIGJvb2wgaXNfZGVzdHJv eWVkICgpOworIAkJcHVibGljIHZvaWQgc3luY192aXNpYmlsaXR5ICgpOworKwkJcHVibGljIHZv aWQgdGhhdyAoKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7IGdldDsgY29u c3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93 X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMg c2lnbmFsIHZvaWQgZGFtYWdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBlZmZlY3RzX2Nv bXBsZXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKysJCXB1 YmxpYyBzaWduYWwgdm9pZCB0aGF3ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3df Z3JvdXBfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRl ci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29u dGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTcyMCw3ICs4MjEsOSBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9u aXRvciAoaW50IHdoaWNoX21vbml0b3IpOworIAkJcHVibGljIGludCBpbmRleCAoKTsKKyAJCXB1 YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVi bGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ+IHN0cnV0 cyk7CisrCQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRpbl9zdHJ1dHMgKEdMaWIuU0xpc3Q8TWV0YS5T dHJ1dD8+IHN0cnV0cyk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBib29sIGFj dGl2ZSB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgdWludCBuX3dp bmRvd3MgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTczNiwyNyArODM5LDMz IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdl dF9hY3RpdmVfd29ya3NwYWNlICgpOworIAkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFj ZV9pbmRleCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRl eCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZT8gZ2V0X3dvcmtzcGFjZV9ieV9p bmRleCAoaW50IGluZGV4KTsKKyAJCXB1YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlv dXQgKE1ldGEuRGlzcGxheUNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVydGljYWxfbGF5 b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV93 b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVzdGFtcCk7Cisr CQlwdWJsaWMgdm9pZCByZW9yZGVyX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNl LCBpbnQgbmV3X2luZGV4KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGludCBs YXlvdXRfY29sdW1ucyB7IGdldDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMg aW50IGxheW91dF9yb3dzIHsgZ2V0OyB9CisgCQlwdWJsaWMgaW50IG5fd29ya3NwYWNlcyB7IGdl dDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGFjdGl2ZV93b3Jrc3BhY2VfY2hhbmdlZCAoKTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfYWRkZWQgKGludCBvYmplY3QpOworIAkJcHVibGlj IHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9yZW1vdmVkIChpbnQgb2JqZWN0KTsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCB3b3Jrc3BhY2Vfc3dpdGNoZWQgKGludCBvYmplY3QsIGludCBwMCwgTWV0YS5N b3Rpb25EaXJlY3Rpb24gcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZXNfcmVv cmRlcmVkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt eDExLWRpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV94MTFfZGlzcGxheV9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgY2xhc3MgWDExRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBYMTFEaXNwbGF5 ICgpOworLQkJcHVibGljIHZvaWQgZm9jdXNfdGhlX25vX2ZvY3VzX3dpbmRvdyAodWludDMyIHRp bWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCBjbGVhcl9zdGFnZV9pbnB1dF9yZWdpb24gKCk7Cisg CQlwdWJsaWMgaW50IGdldF9kYW1hZ2VfZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0 X3NjcmVlbl9udW1iZXIgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgp OworIAkJcHVibGljIGJvb2wgaGFzX3NoYXBlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2NtX3Nl bGVjdGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9mb2N1c193aW5kb3cgKE1ldGEu V2luZG93IHdpbmRvdywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CisrCQlw dWJsaWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChYLlhzZXJ2ZXJSZWdpb24gcmVnaW9u KTsKKyAJCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2luZG93 IHh3aW5kb3cpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxvZ0ludGVyZmFjZSIs IHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KK0BAIC03NzksMjQg Kzg4OCwyNCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBz aWduYWwgdm9pZCByZXNwb25zZSAoTWV0YS5JbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2Ug cmVzcG9uc2UpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEJ1 dHRvbkxheW91dCB7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1Ymxp YyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzVdOworKwkJcHVibGljIHdl YWsgTWV0YS5CdXR0b25GdW5jdGlvbiBsZWZ0X2J1dHRvbnNbNF07CisgCQlbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgbGVmdF9idXR0b25zX2hhc19z cGFjZXJbNV07CisrCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0dG9uc19oYXNfc3BhY2VyWzRd OworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBNZXRh LkJ1dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNV07CisrCQlwdWJsaWMgd2VhayBNZXRhLkJ1 dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNF07CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyWzVd OworKwkJcHVibGljIHdlYWsgYm9vbCByaWdodF9idXR0b25zX2hhc19zcGFjZXJbNF07CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBFZGdlIHsKKyAJCXB1YmxpYyBN ZXRhLlJlY3RhbmdsZSByZWN0OworIAkJcHVibGljIE1ldGEuU2lkZSBzaWRlX3R5cGU7CisgCQlw dWJsaWMgTWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisgCXB1YmxpYyBzdHJ1Y3QgRnJhbWVCb3JkZXJzIHsKKyAJCXB1YmxpYyBHdGsuQm9yZGVyIHZp c2libGU7CisgCQlwdWJsaWMgR3RrLkJvcmRlciBpbnZpc2libGU7CitAQCAtODExLDE0ICs5MjAs MTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHdlYWsgc3RyaW5nIGxpY2Vuc2U7Cisg CQlwdWJsaWMgd2VhayBzdHJpbmcgZGVzY3JpcHRpb247CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBQbHVnaW5WZXJzaW9uIHsKKyAJCXB1YmxpYyB1aW50 IHZlcnNpb25fbWFqb3I7CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pbm9yOworIAkJcHVibGlj IHVpbnQgdmVyc2lvbl9taWNybzsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25fYXBpOworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCB0eXBlX2lkID0gIm1l dGFfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5j dGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfcmVjdGFuZ2xlX2dldF90eXBl ICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKyAJCXB1YmxpYyBpbnQgeDsKKyAJ CXB1YmxpYyBpbnQgeTsKK0BAIC04MzYsNyArOTQ1LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CisgCQlw dWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgU2hhZG93UGFy YW1zIHsKKyAJCXB1YmxpYyBpbnQgcmFkaXVzOworIAkJcHVibGljIGludCB0b3BfZmFkZTsKK0BA IC04NDQsMTIgKzk1MywxMiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgaW50IHlfb2Zm c2V0OworIAkJcHVibGljIHVpbnQ4IG9wYWNpdHk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KyAJcHVibGljIHN0cnVjdCBTdHJ1dCB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsK KyAJCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05f IiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9C QVJSSUVSX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9kaXJlY3Rpb25fZ2V0 X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBCYXJyaWVyRGlyZWN0aW9uIHsK KyAJCVBPU0lUSVZFX1gsCitAQCAtODU3LDIxICs5NjYsMjAgQEAgbmFtZXNwYWNlIE1ldGEgewor IAkJTkVHQVRJVkVfWCwKKyAJCU5FR0FUSVZFX1kKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9CVVRUT05fRlVOQ1RJT05f IiwgdHlwZV9pZCA9ICJtZXRhX2J1dHRvbl9mdW5jdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVU VE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUg KCkiKV0KKyAJcHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24geworIAkJTUVOVSwKKyAJCU1JTklN SVpFLAorIAkJTUFYSU1JWkUsCisgCQlDTE9TRSwKKy0JCUFQUE1FTlUsCisgCQlMQVNUCisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCIs IGNwcmVmaXggPSAiTUVUQV9DTE9TRV9ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJtZXRh X2Nsb3NlX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JF U1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUg KCkiKV0KKyAJcHVibGljIGVudW0gQ2xvc2VEaWFsb2dSZXNwb25zZSB7CisgCQlXQUlULAorIAkJ Rk9SQ0VfQ0xPU0UKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21w b3NpdG9yLmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlwZV9pZCA9ICJtZXRh X2NvbXBfZWZmZWN0X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9DT01QX0VGRkVDVF8iLCB0eXBlX2lkID0g Im1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gQ29tcEVmZmVj dCB7CisgCQlDUkVBVEUsCisgCQlVTk1JTklNSVpFLAorQEAgLTg3OSw3ICs5ODcsNyBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlNSU5JTUlaRSwKKyAJCU5PTkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9DVVJTT1JfIiwg dHlwZV9pZCA9ICJtZXRhX2N1cnNvcl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVf aWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gQ3Vyc29yIHsK KyAJCU5PTkUsCisgCQlERUZBVUxULAorQEAgLTkwMCw5ICsxMDA4LDEwIEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCVBPSU5USU5HX0hBTkQsCisgCQlDUk9TU0hBSVIsCisgCQlJQkVBTSwKKysJCUJM QU5LLAorIAkJTEFTVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0 aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVidWdfdG9w aWNfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RFQlVHXyIsIHR5cGVfaWQgPSAibWV0YV9kZWJ1Z190b3Bp Y19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIERlYnVnVG9waWMgewor IAkJVkVSQk9TRSwKK0BAIC05MjgsOSArMTAzNywxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlT SEFQRVMsCisgCQlDT01QT1NJVE9SLAorIAkJRURHRV9SRVNJU1RBTkNFLAorLQkJREJVUworKwkJ REJVUywKKysJCUlOUFVUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9k aXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFf ZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gRGlyZWN0 aW9uIHsKKyAJCUxFRlQsCitAQCAtOTQyLDIxICsxMDUyLDIxIEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCUhPUklaT05UQUwsCisgCQlWRVJUSUNBTAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVf aWQgPSAibWV0YV9kaXNwbGF5X2Nvcm5lcl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0 eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVu dW0gRGlzcGxheUNvcm5lciB7CisgCQlUT1BMRUZULAorIAkJVE9QUklHSFQsCisgCQlCT1RUT01M RUZULAorIAkJQk9UVE9NUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1l dGFfZGlzcGxheV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9p ZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVt IERpc3BsYXlEaXJlY3Rpb24geworIAkJVVAsCisgCQlET1dOLAorIAkJTEVGVCwKKyAJCVJJR0hU CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGNwcmVm aXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX0VER0VfIiwgdHlwZV9pZCA9ICJtZXRhX2VkZ2VfdHlwZV9nZXRfdHlwZSAoKSIpXQor IAlwdWJsaWMgZW51bSBFZGdlVHlwZSB7CisgCQlXSU5ET1csCisgCQlNT05JVE9SLAorQEAgLTk2 NywxMiArMTA3NywxMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlTVUNDRVNTLAorIAkJRVJST1IK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVm aXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZp eCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV9mbGFnc19nZXRfdHlwZSAo KSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEZyYW1lRmxhZ3MgeworIAkJQUxMT1dTX0RF TEVURSwKKyAJCUFMTE9XU19NRU5VLAorLQkJQUxMT1dTX0FQUE1FTlUsCisgCQlBTExPV1NfTUlO SU1JWkUsCisgCQlBTExPV1NfTUFYSU1JWkUsCisgCQlBTExPV1NfVkVSVElDQUxfUkVTSVpFLAor QEAgLTk4NCwxMiArMTA5MywxMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlBTExPV1NfU0hBREUs CisgCQlBTExPV1NfTU9WRSwKKyAJCUZVTExTQ1JFRU4sCistCQlJU19GTEFTSElORywKKyAJCUFC T1ZFLAorIAkJVElMRURfTEVGVCwKKyAJCVRJTEVEX1JJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQ RV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVf VFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgZW51bSBGcmFtZVR5cGUgeworIAkJTk9STUFMLAorIAkJRElBTE9HLAorQEAgLTEwMDEsNyAr MTEwOSw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUxBU1Q7CisgCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRh X2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRhX2dy YWJfb3BfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gR3JhYk9wIHsKKyAJCU5PTkUsCisg CQlXSU5ET1dfQkFTRSwKK0BAIC0xMDI4LDEyICsxMTM2LDI2IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCUtFWUJPQVJEX1JFU0laSU5HX1NFLAorIAkJS0VZQk9BUkRfUkVTSVpJTkdfVworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgiLCBjcHJlZml4ID0gIk1FVEFfSU5ISUJJVF9TSE9SVENVVFNfRElBTE9HX1JFU1BP TlNFXyIsIHR5cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0Y3V0c19kaWFsb2dfcmVzcG9uc2Vf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX0dSQVZJVFlfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYXZpdHlfZ2V0 X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gR3Jhdml0eSB7CisrCQlOT05FLAorKwkJTk9SVEhf V0VTVCwKKysJCU5PUlRILAorKwkJTk9SVEhfRUFTVCwKKysJCVdFU1QsCisrCQlDRU5URVIsCisr CQlFQVNULAorKwkJU09VVEhfV0VTVCwKKysJCVNPVVRILAorKwkJU09VVEhfRUFTVCwKKysJCVNU QVRJQworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNw cmVmaXggPSAiTUVUQV9JTkhJQklUX1NIT1JUQ1VUU19ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9p ZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgZW51bSBJbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgeworIAkJQUxM T1csCisgCQlERU5ZCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1l dGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElP Tl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgpIildCisg CXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24geworIAkJTk9ORSwKKyAJCVdPUktTUEFDRV8x LAorQEAgLTExMjIsMjIgKzEyNDQsMjUgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJTU9WRV9UT19T SURFX1csCisgCQlNT1ZFX1RPX0NFTlRFUiwKKyAJCU9WRVJMQVlfS0VZLAorKwkJTE9DQVRFX1BP SU5URVJfS0VZLAorIAkJSVNPX05FWFRfR1JPVVAsCisgCQlBTFdBWVNfT05fVE9QLAorIAkJU1dJ VENIX01PTklUT1IsCisgCQlST1RBVEVfTU9OSVRPUiwKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9C SU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0g Ik1FVEFfS0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2ZsYWdzX2dl dF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gS2V5QmluZGluZ0ZsYWdzIHsK KyAJCU5PTkUsCisgCQlQRVJfV0lORE9XLAorIAkJQlVJTFRJTiwKKyAJCUlTX1JFVkVSU0VELAor LQkJTk9OX01BU0tBQkxFCisrCQlOT05fTUFTS0FCTEUsCisrCQlJR05PUkVfQVVUT1JFUEVBVCwK KysJCU5PX0FVVE9fR1JBQgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lkID0gIm1ldGFfbGF0ZXJf dHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFURVJfIiwgdHlwZV9pZCA9ICJtZXRhX2xhdGVyX3R5 cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTGF0ZXJUeXBlIHsKKyAJCVJFU0laRSwK KyAJCUNBTENfU0hPV0lORywKK0BAIC0xMTQ2LDI1ICsxMjcxLDI1IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCUJFRk9SRV9SRURSQVcsCisgCQlJRExFCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0xPQ0FMRV9ESVJFQ1RJT05f IiwgdHlwZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xP Q0FMRV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0X3R5 cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTG9jYWxlRGlyZWN0aW9uIHsKKyAJCUxUUiwKKyAJCVJU TAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3By ZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19n ZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjcHJlZml4ID0gIk1FVEFfTUFYSU1JWkVfIiwgdHlwZV9pZCA9ICJtZXRhX21heGltaXplX2Zs YWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gTWF4aW1pemVGbGFn cyB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwsCisgCQlCT1RICisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGNwcmVmaXggPSAiTUVU QV9NT0RBTF8iLCB0eXBlX2lkID0gIm1ldGFfbW9kYWxfb3B0aW9uc19nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1F VEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0K KyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBNb2RhbE9wdGlvbnMgeworIAkJUE9JTlRFUl9BTFJF QURZX0dSQUJCRUQsCisgCQlLRVlCT0FSRF9BTFJFQURZX0dSQUJCRUQKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIiwgY3ByZWZp eCA9ICJNRVRBX01PTklUT1JfU1dJVENIX0NPTkZJR18iLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRv cl9zd2l0Y2hfY29uZmlnX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PTklUT1JfU1dJVENIX0NP TkZJR18iLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9zd2l0Y2hfY29uZmlnX3R5cGVfZ2V0X3R5 cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUgeworIAkJQUxM X01JUlJPUiwKKyAJCUFMTF9MSU5FQVIsCitAQCAtMTE3Miw3ICsxMjk3LDcgQEAgbmFtZXNwYWNl IE1ldGEgeworIAkJQlVJTFRJTiwKKyAJCVVOS05PV04KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJT05fIiwgdHlw ZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PVElPTl8i LCB0eXBlX2lkID0gIm1ldGFfbW90aW9uX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgZW51bSBNb3Rpb25EaXJlY3Rpb24geworIAkJVVAsCisgCQlET1dOLAorQEAgLTExODMsNyAr MTMwOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCURPV05fTEVGVCwKKyAJCURPV05fUklHSFQK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJl Zml4ID0gIk1FVEFfUEFEX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfcGFkX2FjdGlvbl90eXBl X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNwcmVmaXggPSAiTUVUQV9QQURfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9wYWRfYWN0 aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gUGFkQWN0aW9uVHlwZSB7Cisg CQlCVVRUT04sCisgCQlSSU5HLAorQEAgLTEyMjMsMzAgKzEzNDgsMzkgQEAgbmFtZXNwYWNlIE1l dGEgeworIAkJRFJBR0dBQkxFX0JPUkRFUl9XSURUSCwKKyAJCUFVVE9fTUFYSU1JWkUsCisgCQlD RU5URVJfTkVXX1dJTkRPV1MsCistCQlEUkFHX1RIUkVTSE9MRDsKKysJCURSQUdfVEhSRVNIT0xE LAorKwkJTE9DQVRFX1BPSU5URVIsCisrCQlDSEVDS19BTElWRV9USU1FT1VUOworIAkJcHVibGlj IHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIiwgY3ByZWZpeCA9ICJNRVRBX1NIQURP V19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlwZSAoKSIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFf IiwgdHlwZV9pZCA9ICJtZXRhX3NlbGVjdGlvbl90eXBlX2dldF90eXBlICgpIildCisrCXB1Ymxp YyBlbnVtIFNlbGVjdGlvblR5cGUgeworKwkJU0VMRUNUSU9OX1BSSU1BUlksCisrCQlTRUxFQ1RJ T05fQ0xJUEJPQVJELAorKwkJU0VMRUNUSU9OX0RORCwKKysJCU5fU0VMRUNUSU9OX1RZUEVTCisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKyAJCUFVVE8sCisgCQlGT1JDRURf T0ZGLAorIAkJRk9SQ0VEX09OCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfU0lERV8iLCB0eXBlX2lkID0gIm1ldGFfc2lk ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjcHJlZml4ID0gIk1FVEFfU0lERV8iLCB0eXBlX2lkID0gIm1ldGFfc2lkZV9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTaWRlIHsKKyAJCUxFRlQsCisgCQlSSUdIVCwKKyAJCVRP UCwKKyAJCUJPVFRPTQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bXBvc2l0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1l dGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJWkVfQ0hBTkdFXyIsIHR5cGVfaWQg PSAibWV0YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTaXplQ2hh bmdlIHsKKyAJCU1BWElNSVpFLAorIAkJVU5NQVhJTUlaRSwKKyAJCUZVTExTQ1JFRU4sCisgCQlV TkZVTExTQ1JFRU4KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5 ZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXll cl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTdGFja0xheWVyIHsKKyAJCURFU0tUT1As CisgCQlCT1RUT00sCitAQCAtMTI1NiwxOSArMTM5MCwxOSBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlPVkVSUklERV9SRURJUkVDVCwKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlw ZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfTElTVF8iLCB0eXBl X2lkID0gIm1ldGFfdGFiX2xpc3RfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gVGFiTGlz dCB7CisgCQlOT1JNQUwsCisgCQlET0NLUywKKyAJCUdST1VQLAorIAkJTk9STUFMX0FMTAorIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXgg PSAiTUVUQV9UQUJfU0hPV18iLCB0eXBlX2lkID0gIm1ldGFfdGFiX3Nob3dfdHlwZV9nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJl Zml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0 X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gVGFiU2hvd1R5cGUgeworIAkJSUNPTiwKKyAJCUlO U1RBTlRMWQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5o IiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9k aWZpZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1 YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBWaXJ0 dWFsTW9kaWZpZXIgeworIAkJU0hJRlRfTUFTSywKK0BAIC0xMjgyLDE3ICsxNDE2LDE3IEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCU1PRDRfTUFTSywKKyAJCU1PRDVfTUFTSworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJ TkRPV19DTElFTlRfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2NsaWVudF90eXBlX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dp bmRvd19jbGllbnRfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBXaW5kb3dDbGll bnRUeXBlIHsKKyAJCVdBWUxBTkQsCisgCQlYMTEKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfTUVOVV8iLCB0 eXBlX2lkID0gIm1ldGFfd2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9X X01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGVudW0gV2luZG93TWVudVR5cGUgeworIAkJV00sCisgCQlBUFAKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVU QV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90eXBlICgpIildCisg CXB1YmxpYyBlbnVtIFdpbmRvd1R5cGUgeworIAkJTk9STUFMLAorIAkJREVTS1RPUCwKK0BAIC0x MzExLDUxICsxNDQ1LDU3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCURORCwKKyAJCU9WRVJSSURF X09USEVSCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCXB1YmxpYyBkZWxl Z2F0ZSB2b2lkIElkbGVNb25pdG9yV2F0Y2hGdW5jIChNZXRhLklkbGVNb25pdG9yIG1vbml0b3Is IHVpbnQgd2F0Y2hfaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZv aWQgS2V5SGFuZGxlckZ1bmMgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBNZXRhLldpbmRvdyB3aW5k b3csIFtDQ29kZSAodHlwZSA9ICJDbHV0dGVyS2V5RXZlbnQqIildIENsdXR0ZXIuS2V5RXZlbnQ/ IGV2ZW50LCBNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlw dWJsaWMgZGVsZWdhdGUgdm9pZCBQcmVmc0NoYW5nZWRGdW5jIChNZXRhLlByZWZlcmVuY2UgcHJl Zik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgaW5zdGFu Y2VfcG9zID0gMS45KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgV2luZG93Rm9y ZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9DVVJSRU5UX1RJTUUiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9DVVJS RU5UX1RJTUUiKV0KKyAJcHVibGljIGNvbnN0IGludCBDVVJSRU5UX1RJTUU7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxU X0lDT05fTkFNRSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRfSUNPTl9OQU1FIildCisgCXB1YmxpYyBjb25zdCBzdHJp bmcgREVGQVVMVF9JQ09OX05BTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fSEVJR0hUIild CisgCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX1dJRFRIIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfSUNP Tl9XSURUSCIpXQorIAlwdWJsaWMgY29uc3QgaW50IElDT05fV0lEVEg7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NQUpPUl9WRVJT SU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIk1FVEFfTUFKT1JfVkVSU0lPTiIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1BSk9SX1ZFUlNJ T047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUg PSAiTUVUQV9NSUNST19WRVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorIAlwdWJsaWMgY29u c3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fSEVJR0hUIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09O X0hFSUdIVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9IRUlHSFQ7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5J X0lDT05fV0lEVEgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKyAJcHVibGljIGNvbnN0IGludCBN SU5JX0lDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgY25hbWUgPSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIpXQor IAlwdWJsaWMgY29uc3QgaW50IE1JTk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04i KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAi TUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBQTFVHSU5fQVBJ X1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg Y25hbWUgPSAiTUVUQV9QUklPUklUWV9CRUZPUkVfUkVEUkFXIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JF X1JFRFJBVyIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9SRURSQVc7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVU QV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKyAJ cHVibGljIGNvbnN0IGludCBQUklPUklUWV9QUkVGU19OT1RJRlk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRURS QVciKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAiTUVUQV9QUklPUklUWV9SRURSQVciKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9S RURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25h bWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKyAJcHVi bGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJWkU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRf SUQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKyAJcHVibGljIGNvbnN0IGludCBW SVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfUE9JTlRFUl9JRCIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRB X1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCisgCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9D T1JFX1BPSU5URVJfSUQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vzc2lvbiAoKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9p ZCBhZGRfY2x1dHRlcl9kZWJ1Z19mbGFncyAoQ2x1dHRlci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3Ms IENsdXR0ZXIuRHJhd0RlYnVnRmxhZyBkcmF3X2ZsYWdzLCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcg cGlja19mbGFncyk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIp XQorKwlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9pbml0ICgpOworKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGV4aXQg KE1ldGEuRXhpdENvZGUgY29kZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5n IHNyYywgc2l6ZV90IG4pOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuT3B0aW9uQ29udGV4dCBnZXRfb3B0 aW9uX2NvbnRleHQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3JlcGxhY2VfY3VycmVudF93bSAoKTsKK0BA IC0xMzY4LDYgKzE1MDgsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJf d2l0aF9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9jbHV0dGVyX2RlYnVnX2ZsYWdzIChD bHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRyYXdf ZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0 YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBpbnQgcnVuICgpOworQEAgLTEzNzUsNiArMTUx NywxNCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZ25vbWVf d21fa2V5YmluZGluZ3MgKHN0cmluZyB3bV9rZXliaW5kaW5ncyk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3dt X25hbWUgKHN0cmluZyB3bV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS14MTEtZGlzcGxheS5oIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0ICgpOworKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBi b29sIHgxMV9pbml0X2dka19kaXNwbGF5ICgpIHRocm93cyBHTGliLkVycm9yOworIH0KKytbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibGlibXV0dGVyLTctY3VzdG9tLmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGJlZm9yZV9mcmFtZSB7CisrfQorK1tDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJsaWJtdXR0ZXItNy1jdXN0b20uaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorK3B1YmxpYyBzdHJ1Y3QgZnJhbWUgeworK30KK2RpZmYgLS1naXQgdmFwaS9saWJt dXR0ZXItY29nbC00LnZhcGkgdmFwaS9saWJtdXR0ZXItY29nbC00LnZhcGkKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggN2RjMTg0NzYuLjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0 ZXItY29nbC00LnZhcGkKKysrKyAvZGV2L251bGwKK0BAIC0xLDEyNzIgKzAsMCBAQAorLS8qIGxp Ym11dHRlci1jb2dsLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4g Ki8KKy0KKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIs IGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKy1uYW1l c3BhY2UgQ29nbCB7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBC aXRtYXAgOiBDb2dsLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQml0bWFwICgpOworLQkJcHVibGljIHN0YXRpYyB1aW50 MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQml0bWFwLmZy b21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0 ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2hl aWdodCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdl dF9yb3dzdHJpZGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg c3RhdGljIENvZ2wuQm9vbCBnZXRfc2l6ZV9mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgb3V0 IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3dpZHRoICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFj dF0KKy0JcHVibGljIGNsYXNzIEV1bGVyIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2Nsb3N1cmVf Z2V0X2d0eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIp XQorLQlwdWJsaWMgY2xhc3MgRnJhbWVDbG9zdXJlIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX21hdGVyaWFs X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgTWF0ZXJpYWwgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1Ymxp YyBNYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlh bCBjb3B5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5 ZXIgKENvZ2wuTWF0ZXJpYWxMYXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlm ZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChD b2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5C b29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRl eCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBn ZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIp XQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3Mg KGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0 ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7Cist CQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q29nbC5NYXRlcmlhbExheWVyPiBnZXRfbGF5ZXJz ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3Bl Y3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkhhbmRsZSBnZXRfdXNl cl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLkhh bmRsZSBAcmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgcmVt b3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLk1hdGVyaWFsQWxwaGFGdW5jIGFs cGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENvZ2wuQ29s b3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2Js ZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29u c3RhbnRfY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xv ciAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFs cGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVp bnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wu Q29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9s YXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJf aW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9jb21iaW5lX2NvbnN0YW50IChpbnQg bGF5ZXJfaW5kZXgsIENvZ2wuQ29sb3IgY29uc3RhbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9sYXllcl9maWx0ZXJzIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgbWlu X2ZpbHRlciwgQ29nbC5NYXRlcmlhbEZpbHRlciBtYWdfZmlsdGVyKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXJfbWF0cml4IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0cml4IG1hdHJp eCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9p bnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFi bGUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBN b2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93 cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9z IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXll cl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9zaXplKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5l c3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29n bC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBNYXRlcmlhbExheWVyIHsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWFnX2ZpbHRlciAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWluX2ZpbHRlciAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlw dWJsaWMgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0 ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3MgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRf d3JhcF9tb2RlX3QgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGlj IGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT2JqZWN0ICgpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9vZmZzY3JlZW5f Z2V0X2d0eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9iamVjdCwg Q29nbC5GcmFtZWJ1ZmZlciB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVyZSAoQ29n bC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmICh2b2lk KiBvZmZzY3JlZW4pOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJl KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBl X2lkID0gImNvZ2xfb25zY3JlZW5fZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBPbnNj cmVlbiA6IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBPbnNjcmVlbiAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5 Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9 IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRh RGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyBDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBhZGRfcmVzaXplX2NhbGxiYWNr IChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuUmVzaXpl Q2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdWludCBhZGRfc3dhcF9idWZmZXJzX2Nh bGxiYWNrIChDb2dsLlN3YXBCdWZmZXJzTm90aWZ5IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBjbHV0dGVyX2JhY2tlbmRfc2V0X3NpemVfQ0xVVFRFUiAoaW50IHdpZHRoLCBpbnQg aGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgaW50IGdl dF9idWZmZXJfYWdlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1Ymxp YyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Jlc2l6YWJsZSAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGhpZGUgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2RpcnR5X2NhbGxiYWNrIChDb2ds Lk9uc2NyZWVuRGlydHlDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFtZV9jYWxsYmFjayAoQ29nbC5GcmFtZUNs b3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCByZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBj bG9zdXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3N3YXBf YnVmZmVyc19jYWxsYmFjayAodWludCBpZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChDb2dsLkJvb2wgcmVzaXphYmxlKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNob3cgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVm ZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChp bnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xlcyk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVl bl9kaXJ0eV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIGNsYXNzIE9uc2NyZWVuRGlydHlDbG9zdXJlIHsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1 bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwg dHlwZV9pZCA9ICJjb2dsX29uc2NyZWVuX3Jlc2l6ZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQor LQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgY2xhc3Mg T25zY3JlZW5SZXNpemVDbG9zdXJlIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlwZWxpbmVfZ2V0X2d0eXBlICgpIild CistCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQaXBlbGluZSAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lIGNv cHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBmb3Jl YWNoX2xheWVyIChDb2dsLlBpcGVsaW5lTGF5ZXJDYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUFscGhhRnVuYyBn ZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfdGVzdF9yZWZlcmVuY2UgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xv ciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2ds LkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyBDb2dsLkNvbG9yTWFzayBnZXRfY29sb3JfbWFzayAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGdldF9jdWxs X2ZhY2VfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNz aW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLldpbmRp bmcgZ2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRfbGF5ZXJfbWFnX2ZpbHRlciAo aW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRfbGF5ZXJfbWluX2ZpbHRlciAoaW50IGxheWVyX2lu ZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wg Z2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRl eHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXll cl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9k ZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJ cHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBs YXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgaW50 IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyBDb2dsLkJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfc2hpbmluZXNzICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1 bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyBpbnQgZ2V0X3VuaWZvcm1fbG9jYXRpb24gKHN0cmluZyB1bmlmb3JtX25hbWUp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuSGFuZGxlIGdl dF91c2VyX3Byb2dyYW0gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHZvaWQgcmVtb3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENv Z2wuUGlwZWxpbmVBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50 IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENvZ2wuQ29sb3IgY29sb3IpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfYmxl bmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2ds LkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBm bG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4 IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29s b3JfbWFzayk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfY3VsbF9mYWNlX21vZGUgKENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgY3VsbF9mYWNlX21v ZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Rp ZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb250X2ZhY2Vf d2luZGluZyAoQ29nbC5XaW5kaW5nIGZyb250X3dpbmRpbmcpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxh eWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9jb21iaW5l X2NvbnN0YW50IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQ29sb3IgY29uc3RhbnQpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9maWx0ZXJz IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVGaWx0ZXIgbWluX2ZpbHRlciwgQ29nbC5Q aXBlbGluZUZpbHRlciBtYWdfZmlsdGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0cml4IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wu TWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2xheWVyX251bGxfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlRleHR1 cmVUeXBlIHRleHR1cmVfdHlwZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGlu dCBsYXllcl9pbmRleCwgQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlRleHR1 cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFw TW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3Jh cE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdy YXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVX cmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBD b2dsLkJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoQ29nbC5Cb29sIGVuYWJsZSkgdGhy b3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5l c3MpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Nw ZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFmIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwg ZmxvYXQgdmFsdWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3VuaWZvcm1fMWkgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgdmFsdWUpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fZmxv YXQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25lbnRzLCBpbnQgY291bnQsIGZs b2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF91bmlmb3JtX2ludCAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCBuX2NvbXBvbmVudHMs IGludCBjb3VudCwgaW50IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX21hdHJpeCAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGlu dCBkaW1lbnNpb25zLCBpbnQgY291bnQsIENvZ2wuQm9vbCB0cmFuc3Bvc2UsIGZsb2F0IHZhbHVl KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2Vy X3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFj dF0KKy0JcHVibGljIGNsYXNzIFF1YXRlcm5pb24geworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZWJ1ZmZlcl9nZXRf Z3R5cGUgKCkiKV0KKy0JcHVibGljIGludGVyZmFjZSBGcmFtZWJ1ZmZlciA6IENvZ2wuT2JqZWN0 IHsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxs b2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgdm9pZCBjbGVhciAodWxvbmcgYnVmZmVycywgQ29nbC5Db2xvciBjb2xvcik7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBjbGVhcjRmICh1 bG9uZyBidWZmZXJzLCBmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBh bHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBkaXNj YXJkX2J1ZmZlcnMgKHVsb25nIGJ1ZmZlcnMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfbXVsdGl0ZXh0dXJlZF9yZWN0YW5nbGUgKENvZ2wuUGlw ZWxpbmUgcGlwZWxpbmUsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlf MiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50 IHRleF9jb29yZHNfbGVuKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdm9pZCBkcmF3X3JlY3RhbmdsZSAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgZmxvYXQgeF8x LCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X3JlY3RhbmdsZXMgKENvZ2wuUGlwZWxpbmUg cGlwZWxpbmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIGNvb3JkaW5h dGVzLCB1aW50IG5fcmVjdGFuZ2xlcyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgZHJhd190ZXh0dXJlZF9yZWN0YW5nbGUgKENvZ2wuUGlwZWxpbmUgcGlw ZWxpbmUsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQg c18xLCBmbG9hdCB0XzEsIGZsb2F0IHNfMiwgZmxvYXQgdF8yKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X3RleHR1cmVkX3JlY3RhbmdsZXMgKENv Z2wuUGlwZWxpbmUgcGlwZWxpbmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9h dFtdIGNvb3JkaW5hdGVzLCB1aW50IG5fcmVjdGFuZ2xlcyk7CistCQlwdWJsaWMgc3RhdGljIHVp bnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgdm9pZCBmaW5pc2ggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRv bSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2FscGhhX2JpdHMgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9ibHVlX2JpdHMgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0 X2NvbG9yX21hc2sgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg aW50IGdldF9kZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0J CXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVyZSAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kZXB0aF90 ZXh0dXJlX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVi bGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RpdGhlcl9lbmFibGVkICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfZ3JlZW5f Yml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0 X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2lzX3N0ZXJlbyAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5NYXRyaXggZ2V0X21vZGVs dmlld19tYXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IENvZ2wuTWF0cml4IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3JlZF9iaXRzICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3NhbXBsZXNfcGVyX3BpeGVsICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1YmxpYyBDb2dsLlN0ZXJlb01v ZGUgZ2V0X3N0ZXJlb19tb2RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X3ZpZXdwb3J0NGZ2IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl KV0gb3V0IHVub3duZWQgZmxvYXQgdmlld3BvcnRbNF0pOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9ydF9oZWlnaHQgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3ZpZXdwb3J0X3dpZHRo ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92 aWV3cG9ydF94ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZs b2F0IGdldF92aWV3cG9ydF95ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIGludCBnZXRfd2lkdGggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgaWRlbnRpdHlfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9ydGhvZ3JhcGhpYyAoZmxvYXQgeF8xLCBmbG9hdCB5 XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9h dCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwb3BfY2xpcCAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwb3BfbWF0cml4ICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfbWF0 cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHB1 c2hfcmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0 IHlfMik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcHVz aF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHJlYWRfcGl4 ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1h dCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVsc19pbnRvX2JpdG1hcCAoaW50IHgsIGludCB5 LCBDb2dsLlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wuQml0bWFwIGJpdG1hcCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCByZXNvbHZlX3NhbXBsZXMg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCByZXNvbHZl X3NhbXBsZXNfcmVnaW9uIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlIChmbG9h dCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1 YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRf Y29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3RleHR1cmVfZW5hYmxlZCAo Q29nbC5Cb29sIGVuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChDb2dsLkJvb2wgZGVwdGhfd3JpdGVf ZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBz ZXRfZGl0aGVyX2VuYWJsZWQgKENvZ2wuQm9vbCBkaXRoZXJfZW5hYmxlZCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXgg KENvZ2wuTWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NhbXBsZXNf cGVyX3BpeGVsIChpbnQgc2FtcGxlc19wZXJfcGl4ZWwpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zdGVyZW9fbW9kZSAoQ29nbC5TdGVyZW9Nb2Rl IHN0ZXJlb19tb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF92aWV3cG9ydCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhl aWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgdHJh bnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9p ZCA9ICJjb2dsX3RleHR1cmVfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgVGV4 dHVyZSA6IENvZ2wuT2JqZWN0IHsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhy b3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5UZXh0dXJlQ29t cG9uZW50cyBnZXRfY29tcG9uZW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhdGEgKENvZ2wu UGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlwdWJs aWMgQ29nbC5Cb29sIGdldF9nbF90ZXh0dXJlIChvdXQgdWludCBvdXRfZ2xfaGFuZGxlLCBvdXQg dWludCBvdXRfZ2xfdGFyZ2V0KTsKKy0JCXB1YmxpYyB1aW50IGdldF9oZWlnaHQgKCk7CistCQlw dWJsaWMgaW50IGdldF9tYXhfd2FzdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcHJlbXVsdGlwbGllZCAoKTsKKy0JCXB1YmxpYyB1 aW50IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgaXNfc2xpY2VkICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2Jp dG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5Q aXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdo dCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2ds LlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x OCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zy b21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5Q aXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9 ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2ZvcmVpZ24g KHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3RhcmdldCwgdWludCB3aWR0aCwgdWludCBoZWlnaHQs IHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rfd2FzdGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9y bWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE4Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5UZXh0dXJlIG5ld19mcm9t X3N1Yl90ZXh0dXJlIChpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1 Yl9oZWlnaHQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0 dXJlIG5ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVG bGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb21wb25lbnRzIChDb2ds LlRleHR1cmVDb21wb25lbnRzIGNvbXBvbmVudHMpOworLQkJcHVibGljIENvZ2wuQm9vbCBzZXRf ZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEs IGludCBsZXZlbCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x OCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3ByZW11bHRpcGxpZWQgKENvZ2wuQm9vbCBwcmVtdWx0 aXBsaWVkKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3JlZ2lvbiAoaW50IHNyY194LCBpbnQg c3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVp Z2h0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50 IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb25fZnJvbV9iaXRtYXAgKGludCBzcmNfeCwgaW50 IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hl aWdodCwgQ29nbC5CaXRtYXAgYml0bWFwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1NpbXBsZVR5cGVdCistCXB1YmxpYyBzdHJ1Y3QgQW5n bGUgOiBpbnQzMiB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtTaW1wbGVUeXBlXQorLQlwdWJsaWMgc3RydWN0IEJvb2wgOiBpbnQgeworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAi Y29nbF9jb2xvcl9nZXRfZ3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RydWN0IENvbG9yIHsKKy0JCXB1YmxpYyBDb2dsLkNvbG9yPyBjb3B5ICgpOwor LQkJcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7Cist CQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhICgpOworLQkJcHVibGljIHVpbnQ4IGdldF9hbHBoYV9i eXRlICgpOworLQkJcHVibGljIGZsb2F0IGdldF9hbHBoYV9mbG9hdCAoKTsKKy0JCXB1YmxpYyBm bG9hdCBnZXRfYmx1ZSAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfYmx1ZV9ieXRlICgpOworLQkJ cHVibGljIGZsb2F0IGdldF9ibHVlX2Zsb2F0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF9ncmVl biAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfZ3JlZW5fYnl0ZSAoKTsKKy0JCXB1YmxpYyBmbG9h dCBnZXRfZ3JlZW5fZmxvYXQgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3JlZCAoKTsKKy0JCXB1 YmxpYyB1aW50OCBnZXRfcmVkX2J5dGUgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3JlZF9mbG9h dCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRf ZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgaW5pdF9mcm9t XzRmdiAoZmxvYXQgY29sb3JfYXJyYXkpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZvaWQgaW5pdF9mcm9tXzR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWlu dDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0X2Zyb21faHNsIChvdXQgQ29nbC5Db2xvciBjb2xvciwg ZmxvYXQgaHVlLCBmbG9hdCBzYXR1cmF0aW9uLCBmbG9hdCBsdW1pbmFuY2UpOworLQkJcHVibGlj IHZvaWQgcHJlbXVsdGlwbHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfYWxwaGEgKGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV9ieXRlICh1aW50OCBhbHBoYSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfZmxv YXQgKGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9ibHVlIChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibHVlX2J5dGUgKHVpbnQ4IGJsdWUpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsdWVfZmxvYXQgKGZsb2F0 IGJsdWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNGYgKGZs b2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzR1YiAodWludDggcmVkLCB1aW50OCBn cmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2dyZWVuIChmbG9hdCBncmVlbik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZ3JlZW5fYnl0ZSAodWludDgg Z3JlZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2dyZWVuX2Zsb2F0IChmbG9hdCBncmVlbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBzZXRfcmVkIChmbG9hdCByZWQpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlZF9ieXRlICh1aW50OCByZWQpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlZF9mbG9hdCAo ZmxvYXQgcmVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9p ZCB0b19oc2wgKG91dCBmbG9hdCBodWUsIG91dCBmbG9hdCBzYXR1cmF0aW9uLCBvdXQgZmxvYXQg bHVtaW5hbmNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHVucHJlbXVsdGlwbHkgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JcHVibGljIHN0cnVjdCBEZWJ1Z09iamVjdFR5cGVJbmZvIHsKKy0JCXB1YmxpYyB3 ZWFrIHN0cmluZyBuYW1lOworLQkJcHVibGljIHVsb25nIGluc3RhbmNlX2NvdW50OworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbU2ltcGxlVHlw ZV0KKy0JcHVibGljIHN0cnVjdCBIYW5kbGUgeworLQkJcHVibGljIHN0YXRpYyBHTGliLlR5cGUg Z2V0X3R5cGUgKCk7CistCQlwdWJsaWMgQ29nbC5IYW5kbGUgQHJlZiAoKTsKKy0JCXB1YmxpYyB2 b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIHR5cGVfaWQgPSAiY29nbF9tYXRyaXhfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBz dHJ1Y3QgTWF0cml4IHsKKy0JCXB1YmxpYyBmbG9hdCB4eDsKKy0JCXB1YmxpYyBmbG9hdCB5eDsK Ky0JCXB1YmxpYyBmbG9hdCB6eDsKKy0JCXB1YmxpYyBmbG9hdCB3eDsKKy0JCXB1YmxpYyBmbG9h dCB4eTsKKy0JCXB1YmxpYyBmbG9hdCB5eTsKKy0JCXB1YmxpYyBmbG9hdCB6eTsKKy0JCXB1Ymxp YyBmbG9hdCB3eTsKKy0JCXB1YmxpYyBmbG9hdCB4ejsKKy0JCXB1YmxpYyBmbG9hdCB5ejsKKy0J CXB1YmxpYyBmbG9hdCB6ejsKKy0JCXB1YmxpYyBmbG9hdCB3ejsKKy0JCXB1YmxpYyBmbG9hdCB4 dzsKKy0JCXB1YmxpYyBmbG9hdCB5dzsKKy0JCXB1YmxpYyBmbG9hdCB6dzsKKy0JCXB1YmxpYyBm bG9hdCB3dzsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1h dHJpeD8gY29weSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBz dGF0aWMgQ29nbC5Cb29sIGVxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2b2lk IGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRv cCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlwdWJsaWMgdW5vd25lZCBmbG9hdFtd IGdldF9hcnJheSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBD b2dsLkJvb2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNlKTsKKy0JCXB1Ymxp YyB2b2lkIGluaXRfZnJvbV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlwdWJsaWMgdm9p ZCBpbml0X2Zyb21fcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgaW5pdF90cmFuc2xhdGlv biAoZmxvYXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0eik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGlzX2lkZW50aXR5ICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgbG9va19hdCAoZmxvYXQgZXllX3Bvc2l0 aW9uX3gsIGZsb2F0IGV5ZV9wb3NpdGlvbl95LCBmbG9hdCBleWVfcG9zaXRpb25feiwgZmxvYXQg b2JqZWN0X3gsIGZsb2F0IG9iamVjdF95LCBmbG9hdCBvYmplY3RfeiwgZmxvYXQgd29ybGRfdXBf eCwgZmxvYXQgd29ybGRfdXBfeSwgZmxvYXQgd29ybGRfdXBfeik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZv aWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRv cCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9h dCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JCXB1YmxpYyB2b2lk IHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZs b2F0IHpfZmFyKTsKKy0JCXB1YmxpYyB2b2lkIHByb2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25l bnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0 LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworLQkJcHVibGljIHZvaWQgcm90YXRl IChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIg ZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90 YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKy0JCXB1YmxpYyB2 b2lkIHNjYWxlIChmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN6KTsKKy0JCXB1YmxpYyB2b2lk IHRyYW5zZm9ybV9wb2ludCAocmVmIGZsb2F0IHgsIHJlZiBmbG9hdCB5LCByZWYgZmxvYXQgeiwg cmVmIGZsb2F0IHcpOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50cyAoaW50IG5fY29t cG9uZW50cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRl X291dCwgdm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKy0JCXB1YmxpYyB2b2lkIHRy YW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgdHJhbnNwb3NlICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgdmlld18yZF9pbl9mcnVzdHVtIChmbG9hdCBs ZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwg ZmxvYXQgel8yZCwgZmxvYXQgd2lkdGhfMmQsIGZsb2F0IGhlaWdodF8yZCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCB2aWV3XzJkX2luX3BlcnNwZWN0aXZl IChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfMmQsIGZs b2F0IHdpZHRoXzJkLCBmbG9hdCBoZWlnaHRfMmQpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0IE9uc2NyZWVuRGlydHlJbmZvIHsK Ky0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyBpbnQgd2lkdGg7 CistCQlwdWJsaWMgaW50IGhlaWdodDsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBU ZXh0dXJlVmVydGV4IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7Cist CQlwdWJsaWMgZmxvYXQgejsKKy0JCXB1YmxpYyBmbG9hdCB0eDsKKy0JCXB1YmxpYyBmbG9hdCB0 eTsKKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGNvbG9yOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdHJ1Y3QgVXNlckRhdGFLZXkgeworLQkJcHVi bGljIGludCB1bnVzZWQ7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY25hbWUgPSAiX0NvZ2xDb2xvclNpemVDaGVjayIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlwdWJsaWMgc3RydWN0IF9Db2xvclNpemVDaGVjayB7CistCQlbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGNoYXJbXSBjb21waWxlX3RpbWVfYXNz ZXJ0X0NvZ2xDb2xvcl9zaXplOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNuYW1lID0gIl9Db2dsTWF0cml4U2l6ZUNoZWNrIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgX01hdHJpeFNpemVDaGVjayB7CistCQlbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGNoYXJbXSBjb21waWxlX3Rp bWVfYXNzZXJ0X0NvZ2xNYXRyaXhfc2l6ZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJfQ29nbFRleHR1cmVWZXJ0ZXhTaXplQ2hlY2si LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBfVGV4dHVyZVZlcnRleFNp emVDaGVjayB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3 ZWFrIGNoYXJbXSBjb21waWxlX3RpbWVfYXNzZXJ0X0NvZ2xUZXh0dXJlVmVydGV4X3NpemU7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX0FUVFJJQlVURV9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEF0dHJpYnV0ZVR5cGUgeworLQkJQllU RSwKKy0JCVVOU0lHTkVEX0JZVEUsCistCQlTSE9SVCwKKy0JCVVOU0lHTkVEX1NIT1JULAorLQkJ RkxPQVQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfQklUTUFQX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIEJpdG1hcEVycm9yIHsKKy0J CUZBSUxFRCwKKy0JCVVOS05PV05fVFlQRSwKKy0JCUNPUlJVUFRfSU1BR0UKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQkxF TkRfU1RSSU5HX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEJsZW5kU3RyaW5nRXJyb3IgeworLQkJUEFSU0Vf RVJST1IsCistCQlBUkdVTUVOVF9QQVJTRV9FUlJPUiwKKy0JCUlOVkFMSURfRVJST1IsCistCQlH UFVfVU5TVVBQT1JURURfRVJST1I7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4 ID0gIkNPR0xfQlVGRkVSX0JJVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEJ1ZmZlckJpdCB7Cist CQlDT0xPUiwKKy0JCURFUFRILAorLQkJU1RFTkNJTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCXB1Ymxp YyBlbnVtIEJ1ZmZlclRhcmdldCB7CistCQlXSU5ET1dfQlVGRkVSLAorLQkJT0ZGU0NSRUVOX0JV RkZFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9DT0xPUl9NQVNLXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxh Z3NdCistCXB1YmxpYyBlbnVtIENvbG9yTWFzayB7CistCQlOT05FLAorLQkJUkVELAorLQkJR1JF RU4sCistCQlCTFVFLAorLQkJQUxQSEEsCistCQlBTEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfREVQVEhfVEVTVF9GVU5D VElPTl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gRGVwdGhUZXN0RnVu Y3Rpb24geworLQkJTkVWRVIsCistCQlMRVNTLAorLQkJRVFVQUwsCistCQlMRVFVQUwsCistCQlH UkVBVEVSLAorLQkJTk9URVFVQUwsCistCQlHRVFVQUwsCistCQlBTFdBWVMKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVB VFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistCQlURVhUVVJFX1JF Q1RBTkdMRSwKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9S RUFEX1BJWEVMUywKKy0JCVNIQURFUlNfR0xTTCwKKy0JCU9GRlNDUkVFTiwKKy0JCU9GRlNDUkVF Tl9NVUxUSVNBTVBMRSwKKy0JCU9GRlNDUkVFTl9CTElULAorLQkJRk9VUl9DTElQX1BMQU5FUywK Ky0JCVNURU5DSUxfQlVGRkVSLAorLQkJVkJPUywKKy0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRf SU5ESUNFUywKKy0JCURFUFRIX1JBTkdFLAorLQkJVEVYVFVSRV9OUE9UX0JBU0lDLAorLQkJVEVY VFVSRV9OUE9UX01JUE1BUCwKKy0JCVRFWFRVUkVfTlBPVF9SRVBFQVQsCistCQlQT0lOVF9TUFJJ VEUsCistCQlURVhUVVJFXzNELAorLQkJTUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9CVUZG RVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUsCistCQlERVBUSF9URVhUVVJFCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gRmls dGVyUmV0dXJuIHsKKy0JCUNPTlRJTlVFLAorLQkJUkVNT1ZFCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZPR19NT0RFXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBlbnVtIEZvZ01vZGUgeworLQkJTElORUFSLAorLQkJRVhQT05FTlRJQUwsCistCQlFWFBP TkVOVElBTF9TUVVBUkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZSQU1FX0VWRU5UXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQlwdWJsaWMgZW51bSBGcmFtZUV2 ZW50IHsKKy0JCVNZTkMsCistCQlDT01QTEVURQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRUJVRkZFUl9FUlJPUl8i LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gRnJhbWVidWZmZXJFcnJvciB7 CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NBVEUiKV0K Ky0JCUZSQU1FQlVGRkVSX0VSUk9SX0FMTE9DQVRFOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIg cXVhcmsgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY3ByZWZpeCA9ICJDT0dMX0lORElDRVNfVFlQRV9VTlNJR05FRF8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JcHVibGljIGVudW0gSW5kaWNlc1R5cGUgeworLQkJQllURSwKKy0JCVNIT1JU LAorLQkJSU5UCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX0FMUEhBX0ZVTkNfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsQWxwaGFGdW5jIHsKKy0JCU5FVkVSLAorLQkJ TEVTUywKKy0JCUVRVUFMLAorLQkJTEVRVUFMLAorLQkJR1JFQVRFUiwKKy0JCU5PVEVRVUFMLAor LQkJR0VRVUFMLAorLQkJQUxXQVlTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX0ZJTFRFUl8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxGaWx0ZXIgeworLQkJTkVBUkVT VCwKKy0JCUxJTkVBUiwKKy0JCU5FQVJFU1RfTUlQTUFQX05FQVJFU1QsCistCQlMSU5FQVJfTUlQ TUFQX05FQVJFU1QsCistCQlORUFSRVNUX01JUE1BUF9MSU5FQVIsCistCQlMSU5FQVJfTUlQTUFQ X0xJTkVBUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFs TGF5ZXJUeXBlIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBF X1RFWFRVUkUiKV0KKy0JCU1BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVSRQorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRF UklBTF9XUkFQX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxXcmFwTW9kZSB7CistCQlSRVBFQVQs CistCQlDTEFNUF9UT19FREdFLAorLQkJQVVUT01BVElDCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJUEVMSU5FX0FMUEhB X0ZVTkNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFBpcGVsaW5lQWxw aGFGdW5jIHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0JCUVRVUFMLAorLQkJTEVRVUFMLAorLQkJ R1JFQVRFUiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFMLAorLQkJQUxXQVlTCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJ UEVMSU5FX0NVTExfRkFDRV9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMg ZW51bSBQaXBlbGluZUN1bGxGYWNlTW9kZSB7CistCQlOT05FLAorLQkJRlJPTlQsCistCQlCQUNL LAorLQkJQk9USAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCXB1YmxpYyBlbnVtIFBpcGVsaW5lRmlsdGVyIHsKKy0JCU5FQVJFU1QsCistCQlMSU5F QVIsCistCQlORUFSRVNUX01JUE1BUF9ORUFSRVNULAorLQkJTElORUFSX01JUE1BUF9ORUFSRVNU LAorLQkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorLQkJTElORUFSX01JUE1BUF9MSU5FQVIKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfUElQRUxJTkVfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBlbnVtIFBpcGVsaW5lV3JhcE1vZGUgewor LQkJUkVQRUFULAorLQkJTUlSUk9SRURfUkVQRUFULAorLQkJQ0xBTVBfVE9fRURHRSwKKy0JCUFV VE9NQVRJQworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNwcmVmaXggPSAiQ09HTF9QSVhFTF9GT1JNQVRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBQaXhl bEZvcm1hdCB7CistCQlBTlksCistCQlBXzgsCistCQlSR0JfNTY1LAorLQkJUkdCQV80NDQ0LAor LQkJUkdCQV81NTUxLAorLQkJWVVWLAorLQkJR184LAorLQkJUkdfODgsCistCQlSR0JfODg4LAor LQkJQkdSXzg4OCwKKy0JCVJHQkFfODg4OCwKKy0JCUJHUkFfODg4OCwKKy0JCUFSR0JfODg4OCwK Ky0JCUFCR1JfODg4OCwKKy0JCVJHQkFfMTAxMDEwMiwKKy0JCUJHUkFfMTAxMDEwMiwKKy0JCUFS R0JfMjEwMTAxMCwKKy0JCUFCR1JfMjEwMTAxMCwKKy0JCVJHQkFfODg4OF9QUkUsCistCQlCR1JB Xzg4ODhfUFJFLAorLQkJQVJHQl84ODg4X1BSRSwKKy0JCUFCR1JfODg4OF9QUkUsCistCQlSR0JB XzQ0NDRfUFJFLAorLQkJUkdCQV81NTUxX1BSRSwKKy0JCVJHQkFfMTAxMDEwMl9QUkUsCistCQlC R1JBXzEwMTAxMDJfUFJFLAorLQkJQVJHQl8yMTAxMDEwX1BSRSwKKy0JCUFCR1JfMjEwMTAxMF9Q UkUsCistCQlERVBUSF8xNiwKKy0JCURFUFRIXzMyLAorLQkJREVQVEhfMjRfU1RFTkNJTF84Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX1JFQURfUElYRUxTX0NPTE9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxh Z3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gUmVhZFBpeGVs c0ZsYWdzIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xPUl9CVUZG RVIiKV0KKy0JCVJFQURfUElYRUxTX0NPTE9SX0JVRkZFUgorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRU5ERVJFUl9FUlJP Ul8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gUmVuZGVyZXJFcnJvciB7 CistCQlYTElCX0RJU1BMQVlfT1BFTiwKKy0JCUJBRF9DT05TVFJBSU5UCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1NIQURF Ul9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBlbnVtIFNoYWRlclR5cGUgeworLQkJVkVSVEVYLAorLQkJRlJBR01FTlQK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4 ID0gIkNPR0xfU1RFUkVPXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBT dGVyZW9Nb2RlIHsKKy0JCUJPVEgsCistCQlMRUZULAorLQkJUklHSFQKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfU1lTVEVN X0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCistCXB1YmxpYyBlbnVtIFN5c3RlbUVycm9yIHsKKy0JCVVOU1VQUE9SVEVELAorLQkJTk9f TUVNT1JZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfQ09NUE9ORU5UU18iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIGVudW0gVGV4dHVyZUNv bXBvbmVudHMgeworLQkJQSwKKy0JCVJHLAorLQkJUkdCLAorLQkJUkdCQSwKKy0JCURFUFRICist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX1RFWFRVUkVfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIGVudW0gVGV4dHVyZUVycm9yIHsKKy0JCVNJWkUs CistCQlGT1JNQVQsCistCQlCQURfUEFSQU1FVEVSLAorLQkJVFlQRTsKKy0JCXB1YmxpYyBzdGF0 aWMgdWludDMyIHF1YXJrICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVu dW0gVGV4dHVyZUZsYWdzIHsKKy0JCU5PTkUsCistCQlOT19BVVRPX01JUE1BUCwKKy0JCU5PX1NM SUNJTkcsCistCQlOT19BVExBUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX1RZUEVfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBlbnVtIFRl eHR1cmVUeXBlIHsKKy0JCUAyRCwKKy0JCUAzRCwKKy0JCVJFQ1RBTkdMRQorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9WRVJU SUNFU19NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBlbnVtIFZlcnRpY2VzTW9kZSB7CistCQlQT0lOVFMsCistCQlMSU5F UywKKy0JCUxJTkVfTE9PUCwKKy0JCUxJTkVfU1RSSVAsCistCQlUUklBTkdMRVMsCistCQlUUklB TkdMRV9TVFJJUCwKKy0JCVRSSUFOR0xFX0ZBTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5ESU5HXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBXaW5kaW5nIHsKKy0JCUNMT0NLV0lTRSwKKy0J CUNPVU5URVJfQ0xPQ0tXSVNFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1dJTlNZU19GRUFUVVJFXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBXaW5zeXNGZWF0dXJlIHsKKy0JCU1VTFRJUExFX09O U0NSRUVOLAorLQkJU1dBUF9USFJPVFRMRSwKKy0JCVZCTEFOS19DT1VOVEVSLAorLQkJVkJMQU5L X1dBSVQsCistCQlURVhUVVJFX0ZST01fUElYTUFQLAorLQkJU1dBUF9CVUZGRVJTX0VWRU5ULAor LQkJU1dBUF9SRUdJT04sCistCQlTV0FQX1JFR0lPTl9USFJPVFRMRSwKKy0JCVNXQVBfUkVHSU9O X1NZTkNIUk9OSVpFRCwKKy0JCUJVRkZFUl9BR0UsCistCQlTWU5DX0FORF9DT01QTEVURV9FVkVO VCwKKy0JCU5fRkVBVFVSRVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIERlYnVnT2JqZWN0Rm9yZWFjaFR5cGVDYWxsYmFj ayAoQ29nbC5EZWJ1Z09iamVjdFR5cGVJbmZvIGluZm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgQ29nbC5Cb29sIE1hdGVyaWFsTGF5ZXJDYWxsYmFjayAo Q29nbC5NYXRlcmlhbCBtYXRlcmlhbCwgaW50IGxheWVyX2luZGV4KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5E aXJ0eUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBDb2dsLk9uc2NyZWVuRGlydHlJ bmZvIGluZm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBp bnN0YW5jZV9wb3MgPSAzLjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1Ymxp YyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25z Y3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0 ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1 aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wu UGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBk ZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVm ZmVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3Rh cmdldCA9IGZhbHNlKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgVXNlckRhdGFEZXN0cm95Q2Fs bGJhY2sgKHZvaWQqIGRhdGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjbmFtZSA9ICJDT0dMX0FGSVJTVF9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBB RklSU1RfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj bmFtZSA9ICJDT0dMX0FfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgQV9CSVQ7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfQkdSX0JJ VCIpXQorLQlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIildCistCXB1Ymxp YyBjb25zdCBpbnQgREVQVEhfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BSRU1VTFRfQklUIildCistCXB1YmxpYyBjb25zdCBp bnQgUFJFTVVMVF9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNuYW1lID0gIkNPR0xfU1RFTkNJTF9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBTVEVO Q0lMX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25h bWUgPSAiQ09HTF9URVhUVVJFX01BWF9XQVNURSIpXQorLQlwdWJsaWMgY29uc3QgaW50IFRFWFRV UkVfTUFYX1dBU1RFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGJlZ2luX2dsICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuQm9vbCBjaGVja19leHRlbnNpb24gKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBjbGVhciAoQ29nbC5Db2xvciBjb2xvciwgdWxvbmcgYnVmZmVycyk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuQm9vbCBjbHV0dGVyX2NoZWNrX2V4dGVuc2lvbl9DTFVUVEVSIChzdHJpbmcg bmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjbHV0dGVyX3dpbnN5c19oYXNfZmVh dHVyZV9DTFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1cmUgZmVhdHVyZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19tYXRyaXhfcHJpbnQgKENvZ2wuTWF0cml4 IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19v YmplY3RfZm9yZWFjaF90eXBlIChDb2dsLkRlYnVnT2JqZWN0Rm9yZWFjaFR5cGVDYWxsYmFjayBm dW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnX29iamVj dF9wcmludF9pbnN0YW5jZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9mb2cgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZW5kX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZmVh dHVyZXNfYXZhaWxhYmxlIChDb2dsLkZlYXR1cmVGbGFncyBmZWF0dXJlcyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBmbHVzaCAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0 b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wu Qm9vbCBnZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X2Jp dG1hc2tzIChvdXQgaW50IHJlZCwgb3V0IGludCBncmVlbiwgb3V0IGludCBibHVlLCBvdXQgaW50 IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9kZXB0aF90ZXN0X2VuYWJsZWQgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVy IGdldF9kcmF3X2ZyYW1lYnVmZmVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkZl YXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9tb2Rl bHZpZXdfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3Vw IGdldF9vcHRpb25fZ3JvdXAgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9wcm9qZWN0aW9u X21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCogZ2V0X3NvdXJjZSAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSBvdXQgZmxvYXQgdls0XSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBndHlwZV9tYXRyaXhfZ2V0X3R5 cGUgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19m cmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBz dGF0aWMgQ29nbC5Cb29sIGlzX29uc2NyZWVuICh2b2lkKiBvYmplY3QpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19waXBlbGluZSAodm9pZCogb2JqZWN0 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX3ZlcnRleF9idWZmZXJfaW5k aWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBv cnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBm bG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBm b3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9seWdvbiAoQ29nbC5UZXh0dXJlVmVydGV4 IHZlcnRpY2VzLCB1aW50IG5fdmVydGljZXMsIENvZ2wuQm9vbCB1c2VfY29sb3IpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHBvcF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX3Nv dXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBwdXNoX3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3Rh bmdsZSAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93aXRoX211bHRpdGV4 dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB0ZXhfY29vcmRzLCBpbnQgdGV4X2Nv b3Jkc19sZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFu Z2xlX3dpdGhfdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeDIsIGZs b2F0IHkyLCBmbG9hdCB0eDEsIGZsb2F0IHR5MSwgZmxvYXQgdHgyLCBmbG9hdCB0eTIpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlcyAoW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC44LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXNfd2l0aF90ZXh0 dXJlX2Nvb3JkcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMs IHVpbnQgbl9yZWN0cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQg eCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0 IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQg KENvZ2wuQm9vbCBzZXR0aW5nKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVk IChDb2dsLkJvb2wgc2V0dGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvZyAoQ29nbC5Db2xvciBm b2dfY29sb3IsIENvZ2wuRm9nTW9kZSBtb2RlLCBmbG9hdCBkZW5zaXR5LCBmbG9hdCB6X25lYXIs IGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbW9kZWx2aWV3X21hdHJpeCAoQ29nbC5N YXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfcHJvamVjdGlvbl9tYXRyaXggKENvZ2wu TWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZSAo dm9pZCogbWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2Vf Y29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNl dF9zb3VyY2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxv YXQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0 dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX3RleHR1cmUgKENvZ2wuVGV4dHVy ZSB0ZXh0dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgi LCBzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF92aWV3cG9ydCAoaW50 IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9j b21waWxlIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBzdHJpbmcgc2hhZGVyX2dldF9p bmZvX2xvZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5TaGFkZXJUeXBlIHNo YWRlcl9nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIHNo YWRlcl9pc19jb21waWxlZCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5k bGUgc2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJf c291cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmluZyBzb3VyY2UpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNoYWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRt YXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zv cm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNp bmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19m cm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3Ms IENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1h dCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5U ZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJv d3MgR0xpYi5FcnJvcjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1 cmVfbmV3X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5kbGUsIHVpbnQgZ2xfdGFyZ2V0LCB1aW50 IHdpZHRoLCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93YXN0ZSwgdWludCB5X3BvdF93YXN0ZSwg Q29nbC5QaXhlbEZvcm1hdCBmb3JtYXQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRl eHR1cmUgdGV4dHVyZV9uZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29n bC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MS40IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm0gKENvZ2wuTWF0cml4IG1hdHJp eCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2FkZCAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJp bmcgYXR0cmlidXRlX25hbWUsIHVpbnQ4IG5fY29tcG9uZW50cywgQ29nbC5BdHRyaWJ1dGVUeXBl IHR5cGUsIENvZ2wuQm9vbCBub3JtYWxpemVkLCB1aW50MTYgc3RyaWRlLCB2b2lkKiBwb2ludGVy KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RlbGV0ZSAoQ29nbC5IYW5kbGUgaGFuZGxl LCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGlz YWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHZlcnRleF9idWZmZXJfZHJhdyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRp Y2VzTW9kZSBtb2RlLCBpbnQgZmlyc3QsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4 X2J1ZmZlcl9kcmF3X2VsZW1lbnRzIChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNN b2RlIG1vZGUsIENvZ2wuSGFuZGxlIGluZGljZXMsIGludCBtaW5faW5kZXgsIGludCBtYXhfaW5k ZXgsIGludCBpbmRpY2VzX29mZnNldCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhf YnVmZmVyX2VuYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyB1aW50IHZlcnRleF9idWZmZXJfZ2V0X25fdmVydGljZXMgKENvZ2wuSGFuZGxl IGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRf Zm9yX3F1YWRzICh1aW50IG5faW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSW5kaWNlc1R5cGUgdmVy dGV4X2J1ZmZlcl9pbmRpY2VzX2dldF90eXBlIChDb2dsLkhhbmRsZSBpbmRpY2VzKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQgbl92ZXJ0aWNlcyk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9zdWJtaXQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuOC4y IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2aWV3cG9ydCAodWludCB3aWR0aCwgdWludCBoZWln aHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVi bGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF92aXN1YWxfeGlkIChDb2dsLk9uc2Ny ZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdWludDMy IHgxMV9vbnNjcmVlbl9nZXRfd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFfb25zY3JlZW5fc2V0X2Zv cmVpZ25fd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIHhpZCwgW0ND b2RlIChzY29wZSA9ICJhc3luYyIpXSBDb2dsLk9uc2NyZWVuWDExTWFza0NhbGxiYWNrIHVwZGF0 ZSk7CistfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEgdmFw aS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxhCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IGI4ZDgzOGQwLi4wMDAwMDAwMAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0 b20udmFsYQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTU4ICswLDAgQEAKKy1uYW1lc3BhY2UgQ2x1 dHRlciB7CistICBbQ0NvZGUgKHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIsIGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBzdHJ1Y3Qg QWN0b3JCb3ggeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfYm94X2Zyb21f dmVydGljZXMiKV0KKy0gICAgcHVibGljIEFjdG9yQm94LmZyb21fdmVydGljZXMgKENsdXR0ZXIu VmVydGV4W10gdmVydHMpOworLSAgfQorLQorLSAgcHVibGljIHN0cnVjdCBNYXRyaXggOiBDb2ds Lk1hdHJpeCB7CistICB9CistCistICBwdWJsaWMgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0 IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfb3B0aW9u cyAoR0xpYi5PcHRpb25Hcm91cCBncm91cCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1Ymxp YyB2aXJ0dWFsIGJvb2wgY3JlYXRlX2NvbnRleHQgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistICAg IFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5TdGFnZVdp bmRvdyBjcmVhdGVfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugd3JhcHBlcikgdGhyb3dzIEdMaWIuRXJy b3I7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2Nv bnRleHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJs aWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRfZGV2aWNlX21hbmFn ZXIgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVh dHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGlj IHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVi bGljIHZpcnR1YWwgdm9pZCBpbml0X2ZlYXR1cmVzICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAg ICBwdWJsaWMgdmlydHVhbCBib29sIHBvc3RfcGFyc2UgKCkgdGhyb3dzIEdMaWIuRXJyb3I7Cist ICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3BhcnNlICgpIHRo cm93cyBHTGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2 b2lkIHJlZHJhdyAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistICB9CistCistICBbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf Ym94X2dldF90eXBlICgpIildCistICBwdWJsaWMgY2xhc3MgQm94IDogQ2x1dHRlci5BY3RvciB7 CistICAgIHB1YmxpYyBDbHV0dGVyLkxheW91dE1hbmFnZXIgbGF5b3V0X21hbmFnZXIgeyBnZXQ7 IHNldDsgfQorLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9DT0xP UiIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBz dHJ1Y3QgQ29sb3IgeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9o bHMiKV0KKy0gICAgcHVibGljIENvbG9yLmZyb21faGxzIChmbG9hdCBodWUsIGZsb2F0IGx1bWlu YW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9j b2xvcl9mcm9tX3BpeGVsIildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX3BpeGVsICh1aW50MzIg cGl4ZWwpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmci KV0KKy0gICAgcHVibGljIENvbG9yLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKy0gICAgW0ND b2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCistICAgIHB1YmxpYyBi b29sIHBhcnNlX3N0cmluZyAoc3RyaW5nIHN0cik7CistICAgIHB1YmxpYyBzdGF0aWMgdW5vd25l ZCBDbHV0dGVyLkNvbG9yPyBnZXRfc3RhdGljIChDbHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9yKTsK Ky0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jb250YWluZXJfZ2V0X3R5cGUgKCkiKV0KKy0gIHB1Ymxp YyBpbnRlcmZhY2UgQ29udGFpbmVyIDogR0xpYi5PYmplY3QgeworLSAgICBwdWJsaWMgdm9pZCBh ZGQgKHBhcmFtcyBDbHV0dGVyLkFjdG9yW10gYWN0b3JzKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9 ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5IildCistICAgIHB1 YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRfcHJvcGVydHkgKHN0 cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRh aW5lcl9jbGFzc19saXN0X2NoaWxkX3Byb3BlcnRpZXMiKV0KKy0gICAgcHVibGljIGNsYXNzIHVu b3duZWQgR0xpYi5QYXJhbVNwZWNbXSBsaXN0X2NoaWxkX3Byb3BlcnRpZXMgKCk7CistICB9Cist CistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2V2ZW50X2dldF90eXBlICgpIildCistICBbQ29tcGFjdF0K Ky0gIHB1YmxpYyBjbGFzcyBFdmVudCB7CistICAgIHB1YmxpYyBDbHV0dGVyLkFueUV2ZW50IGFu eSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJBbnlFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAg cHVibGljIENsdXR0ZXIuQnV0dG9uRXZlbnQgYnV0dG9uIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1 dHRlckJ1dHRvbkV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5Dcm9zc2lu Z0V2ZW50IGNyb3NzaW5nIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckNyb3NzaW5nRXZlbnQg KikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLktleUV2ZW50IGtleSB7IFtDQ29kZSAo Y25hbWUgPSAiKENsdXR0ZXJLZXlFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0 ZXIuTW90aW9uRXZlbnQgbW90aW9uIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlck1vdGlvbkV2 ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5TY3JvbGxFdmVudCBzY3JvbGwg eyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyU2Nyb2xsRXZlbnQgKikiKV0gZ2V0OyB9CistICAg IHB1YmxpYyBDbHV0dGVyLlN0YWdlU3RhdGVFdmVudCBzdGFnZV9zdGF0ZSB7IFtDQ29kZSAoY25h bWUgPSAiKENsdXR0ZXJTdGFnZVN0YXRlRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBD bHV0dGVyLlRvdWNoRXZlbnQgdG91Y2ggeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hF dmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuVG91Y2hwYWRQaW5jaEV2ZW50 IHRvdWNocGFkX3BpbmNoIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNocGFkUGluY2hF dmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuVG91Y2hwYWRTd2lwZUV2ZW50 IHRvdWNocGFkX3N3aXBlIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNocGFkU3dpcGVF dmVudCAqKSIpXSBnZXQ7IH0KKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJjbHV0dGVy X3N0YWdlX2dldF90eXBlICgpIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLSAgcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5Hcm91cCB7CistICAgIFtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl9yZWRyYXciKV0KKy0gICAgcHVibGljIHZvaWQgcmVkcmF3ICgp OworLSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistICBwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3Qgewor LSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfcmVkcmF3X2Ns aXAgKENsdXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsKKy0gICAgW05vV3JhcHBlcl0K Ky0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5 IGdlb21ldHJ5KTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGludCBn ZXRfcGVuZGluZ19zd2FwcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3Ry YWN0IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfd3JhcHBlciAoKTsKKy0gICAgW05vV3JhcHBl cl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wgaGFzX3JlZHJhd19jbGlwcyAoKTsKKy0gICAg W05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAoKTsKKy0gICAgW05v V3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wgaWdub3JpbmdfcmVkcmF3X2NsaXBz ICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbCByZWFsaXpl ICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXNpemUg KGludCB3aWR0aCwgaW50IGhlaWdodCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBh YnN0cmFjdCB2b2lkIHNldF9jdXJzb3JfdmlzaWJsZSAoYm9vbCBjdXJzb3JfdmlzaWJsZSk7Cist ICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9mdWxsc2NyZWVu IChib29sIGlzX2Z1bGxzY3JlZW4pOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJz dHJhY3Qgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CistICAgIFtOb1dyYXBwZXJdCist ICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF91c2VyX3Jlc2l6YWJsZSAoYm9vbCBpc19yZXNp emFibGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93 IChib29sIGRvX3JhaXNlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0 IHZvaWQgdW5yZWFsaXplICgpOworLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lkID0gImNsdXR0 ZXJfdGV4dHVyZV9nZXRfdHlwZSAoKSIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBUZXh0dXJlIDogQ2x1dHRlci5BY3RvciB7CistICAg IHB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0ZXJpYWwgeyBnZXQ7IHNldDsgfQorLSAgICBw dWJsaWMgQ29nbC5UZXh0dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsgc2V0OyB9CistICB9CistCist ICBbQ29tcGFjdF0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLSAgcHVibGljIGNsYXNzIFRpbWVvdXRQb29sIHsKKy0gICAgW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLSAgICBwdWJsaWMgVGltZW91dFBvb2wgKGlu dCBwcmlvcml0eSk7CistICB9CistCistICBbQ0NvZGUgKGNwcmVmaXggPSAiQ0xVVFRFUl9GRUFU VVJFXyIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIFtGbGFn c10KKy0gIHB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistICAgIFRFWFRVUkVfTlBPVDsKKy0g ICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2ZlYXR1cmVfYXZhaWxhYmxlIildCistICAgIHB1 YmxpYyBib29sIGlzX2F2YWlsYWJsZSAoKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVy X2ZlYXR1cmVfZ2V0X2FsbCIpXQorLSAgICBwdWJsaWMgc3RhdGljIENsdXR0ZXIuRmVhdHVyZUZs YWdzIEBnZXQgKCk7CistICB9CistCistICBbQ0NvZGUgKHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBF X1VOSVRTIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVi bGljIHN0cnVjdCBVbml0cyB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19m cm9tX2NtIildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX2NtIChmbG9hdCBjbSk7CistICAgIFtD Q29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtIildCistICAgIHB1YmxpYyBVbml0 cy5mcm9tX2VtIChmbG9hdCBlbSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0 c19mcm9tX2VtX2Zvcl9mb250IildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX2VtX2Zvcl9mb250 IChzdHJpbmcgZm9udF9uYW1lLCBmbG9hdCBlbSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl91bml0c19mcm9tX21tIildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX21tIChmbG9hdCBt bSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3BpeGVscyIpXQor LSAgICBwdWJsaWMgVW5pdHMuZnJvbV9waXhlbHMgKGludCBweCk7CistICAgIFtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3B0IildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX3B0 IChmbG9hdCBwdCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3N0 cmluZyIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpOworLSAg fQorLX0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci00LWN1c3RvbS52YWxhIHZhcGkv bXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQorc2ltaWxhcml0eSBpbmRleCA5MiUKK3JlbmFt ZSBmcm9tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYQorcmVuYW1lIHRvIHZhcGkv bXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQoraW5kZXggYjhkODM4ZDAuLjg5MjI0YmU2IDEw MDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYQorKysrIHZhcGkvbXV0 dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQorQEAgLTEsOSArMSw0IEBACisgbmFtZXNwYWNlIENs dXR0ZXIgeworLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RPUl9CT1giLCBj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgc3RydWN0 IEFjdG9yQm94IHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9t X3ZlcnRpY2VzIildCistICAgIHB1YmxpYyBBY3RvckJveC5mcm9tX3ZlcnRpY2VzIChDbHV0dGVy LlZlcnRleFtdIHZlcnRzKTsKKy0gIH0KKyAKKyAgIHB1YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29n bC5NYXRyaXggeworICAgfQorQEAgLTE4LDggKzEzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor ICAgICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0 IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAgICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZp cnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5hZ2VyICgp OworLSAgICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVhbCBDbHV0dGVyLkZlYXR1cmVG bGFncyBnZXRfZmVhdHVyZXMgKCk7CisgICAgIFtOb1dyYXBwZXJdCisgICAgIHB1YmxpYyB2aXJ0 dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7CitAQCAtODMsMTAgKzc2LDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAorICAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCisgICBwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3Qgewor LSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfcmVkcmF3X2Ns aXAgKENsdXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsKKy0gICAgW05vV3JhcHBlcl0K Ky0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5 IGdlb21ldHJ5KTsKKyAgICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIGFic3RyYWN0IGludCBn ZXRfcGVuZGluZ19zd2FwcyAoKTsKKyAgICAgW05vV3JhcHBlcl0KK2RpZmYgLS1naXQgdmFwaS9t dXR0ZXItY2x1dHRlci01LmRlcHMgdmFwaS9tdXR0ZXItY2x1dHRlci02LmRlcHMKK3NpbWlsYXJp dHkgaW5kZXggNjMlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTUuZGVwcworcmVu YW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBzCitpbmRleCAzZjVhOTJhNi4uN2E3MGQ2 ZGYgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci01LmRlcHMKKysrKyB2YXBpL211dHRl ci1jbHV0dGVyLTYuZGVwcworQEAgLTEsNCArMSw0IEBACisgYXRrCisgY2Fpcm8KKyBqc29uLWds aWItMS4wCistbXV0dGVyLWNvZ2wtNQorK211dHRlci1jb2dsLTYKK2RpZmYgLS1naXQgdmFwaS9t dXR0ZXItY2x1dHRlci01LnZhcGkgdmFwaS9tdXR0ZXItY2x1dHRlci02LnZhcGkKK3NpbWlsYXJp dHkgaW5kZXggOTMlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTUudmFwaQorcmVu YW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52YXBpCitpbmRleCAyNGY3ZjZiMS4uMDEzMGE5 M2MgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci01LnZhcGkKKysrKyB2YXBpL211dHRl ci1jbHV0dGVyLTYudmFwaQorQEAgLTEsNiArMSw2IEBACistLyogbXV0dGVyLWNsdXR0ZXItNS52 YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1j bHV0dGVyLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAK Ky1bQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIs IGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY2x1dHRlcl8iKV0KKytb Q0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdp cl92ZXJzaW9uID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY2x1dHRlcl8iKV0KKyBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCW5hbWVzcGFjZSBLZXkgeworIAkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY25hbWUgPSAiQ0xVVFRFUl9LRVlfMCIpXQor QEAgLTQ2NjEsMjIgKzQ2NjEsMTQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZv aWQgYWxsb2NhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdz KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlv biBhbmltYXRlICh1bG9uZyBtb2RlLCB1aW50IGR1cmF0aW9uLCAuLi4pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF9h bHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfYWxwaGF2IChDbHV0 dGVyLkFscGhhIGFscGhhLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRp ZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2Rl IChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9 IDEuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF90aW1lbGluZSAodWxvbmcg bW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfdGltZWxp bmV2ICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCBbQ0NvZGUgKGFycmF5 X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0g c3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9w ZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFu aW1hdGV2ICh1bG9uZyBtb2RlLCB1aW50IGR1cmF0aW9uLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9j bmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gc3RyaW5nW10g cHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwg YXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGFwcGx5X3JlbGF0 aXZlX3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIENsdXR0ZXIu VmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5X3JlbGF0aXZlX3RyYW5zZm9ybV90 b19wb2ludCAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIEdyYXBoZW5lLlBvaW50M0QgcG9pbnQs IG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0QgdmVydGV4KTsKKyAJCVtOb1dyYXBwZXJdCisg CQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X3RyYW5zZm9ybSAocmVmIENsdXR0ZXIuTWF0cml4 IG1hdHJpeCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgQ2x1dHRl ci5WZXJ0ZXggYXBwbHlfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLlZlcnRleCBwb2ludCk7 CisrCQlwdWJsaWMgdm9pZCBhcHBseV90cmFuc2Zvcm1fdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50 M0QgcG9pbnQsIG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0QgdmVydGV4KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgdm9pZCBiaW5kX21vZGVsIChHTGliLkxp c3RNb2RlbD8gbW9kZWwsIG93bmVkIENsdXR0ZXIuQWN0b3JDcmVhdGVDaGlsZEZ1bmMgY3JlYXRl X2NoaWxkX2Z1bmMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ2ODgsMjAg KzQ2ODAsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIGJvb2wgY29udGFpbnMgKENsdXR0ZXIuQWN0b3IgZGVzY2VuZGFudCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBjb250aW51ZV9w YWludCAoKTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BhaW50IChDbHV0dGVyLlBhaW50Q29u dGV4dCBwYWludF9jb250ZXh0KTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BpY2sgKENsdXR0 ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyBQYW5nby5Db250ZXh0IGNyZWF0ZV9wYW5nb19jb250ZXh0ICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIFBhbmdvLkxheW91dCBjcmVhdGVf cGFuZ29fbGF5b3V0IChzdHJpbmc/IHRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB2b2lkIGRlc3Ryb3lfYWxsX2NoaWxkcmVuICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIGRldGFjaF9hbmltYXRpb24gKCk7CisgCQlbQ0NvZGUgKGNu YW1lID0gImNsdXR0ZXJfYWN0b3JfZXZlbnQiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKyAJCXB1YmxpYyBib29sIGVtaXRfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIGJvb2wg Y2FwdHVyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBn ZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CisrCQlwdWJsaWMgdm9pZCBnZXRfYWJzX2FsbG9j YXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Q b2ludDNEIHZlcnRzWzRdKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQXRrLk9iamVjdCBn ZXRfYWNjZXNzaWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0aW9uIGdldF9hY3Rpb24gKHN0cmluZyBuYW1lKTsKK0BAIC00 NzA5LDE2ICs0NzAwLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBHTGliLkxp c3Q8d2VhayBDbHV0dGVyLkFjdGlvbj4gZ2V0X2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBnZXRfYWxsb2NhdGlvbl9i b3ggKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgZ2V0 X2FsbG9jYXRpb25fZ2VvbWV0cnkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgdm9pZCBnZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoQ2x1dHRlci5BY3Rvcj8gYW5j ZXN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0 c1s0XSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FuY2hvcl9wb2lu dCAob3V0IGZsb2F0IGFuY2hvcl94LCBvdXQgZmxvYXQgYW5jaG9yX3kpOworKwkJcHVibGljIHZv aWQgZ2V0X2FsbG9jYXRpb25fdmVydGljZXMgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0c1s0XSk7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBnZXRfYW5jaG9yX3Bv aW50X2dyYXZpdHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BbmltYXRpb24gZ2V0X2FuaW1hdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfYmFja2dyb3VuZF9jb2xvciAoKTsK KyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9nZXRfYWN0b3JfYnlfZ2lkIildCitAQCAtNDc2 OCw4ICs0NzUzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0X2Zp eGVkX3Bvc2l0aW9uX3NldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLkFjdG9yRmxhZ3MgZ2V0X2ZsYWdzICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQor LQkJcHVibGljIHVpbnQzMiBnZXRfZ2lkICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVy X2FjdG9yX2hhc19wb2ludGVyIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlw dWJsaWMgYm9vbCBnZXRfaGFzX3BvaW50ZXIgKCk7CitAQCAtNDg0OCw4ICs0ODMxLDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuVGV4dERpcmVjdGlvbiBnZXRfdGV4 dF9kaXJlY3Rpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGlj IENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zvcm0gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zvcm1hdGlvbl9tYXRyaXggKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50 Vm9sdW1lIGdldF90cmFuc2Zvcm1lZF9wYWludF92b2x1bWUgKENsdXR0ZXIuQWN0b3IgcmVsYXRp dmVfdG9fYW5jZXN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTQ4OTIs NyArNDg3Myw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGhhc19tYXBw ZWRfY2xvbmVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZp cnR1YWwgYm9vbCBoYXNfb3ZlcmxhcHMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorKwkJW05vV3Jh cHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV9hbGwgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0X2NoaWxkX2Fib3ZlIChDbHV0 dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nKTsKK0BAIC00OTEyLDEwICs0 ODkzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgaXNfc2NhbGVkICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJCXB1YmxpYyBib29sIGlzX3Zpc2li bGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXIgKENsdXR0ZXIuQWN0b3I/IGFib3ZlKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCBsb3dlcl9ib3R0b20gKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42 IildCitAQCAtNDkyOCwxNyArNDkwNSwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgYm9vbCBuZWVkc19leHBhbmQgKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOwor IAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfbm9kZSAoQ2x1dHRl ci5QYWludE5vZGUgcm9vdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgcGlj a19ib3ggKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0LCBDbHV0dGVyLkFjdG9yQm94 IGJveCk7CisgCQlwdWJsaWMgdm9pZCBwb3BfaW50ZXJuYWwgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIp XQorIAkJcHVibGljIHZvaWQgcHVzaF9pbnRlcm5hbCAoKTsKKyAJCXB1YmxpYyB2b2lkIHF1ZXVl X3JlZHJhdyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBxdWV1ZV9yZWRyYXdfd2l0aF9jbGlwIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHJhaXNlIChDbHV0dGVyLkFjdG9yPyBiZWxvdyk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHZvaWQgcmFpc2VfdG9wICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIHZvaWQgcmVtb3ZlX2FjdGlvbiAoQ2x1dHRlci5BY3Rpb24gYWN0aW9uKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00OTYwLDggKzQ5MzIsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfZWZmZWN0X2J5X25hbWUgKHN0cmluZyBu YW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByZW1v dmVfdHJhbnNpdGlvbiAoc3RyaW5nIG5hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1Ymxp YyB2b2lkIHJlcGFyZW50IChDbHV0dGVyLkFjdG9yIG5ld19wYXJlbnQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlcGxhY2VfY2hpbGQgKENsdXR0ZXIu QWN0b3Igb2xkX2NoaWxkLCBDbHV0dGVyLkFjdG9yIG5ld19jaGlsZCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorQEAgLTUwNDYsOCArNTAxNiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyB2b2lkIHNldF9zY2FsZSAoZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2Fs ZV95KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfZnVsbCAo ZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95LCBmbG9hdCBjZW50ZXJfeCwgZmxvYXQgY2Vu dGVyX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zY2FsZV93aXRo X2dyYXZpdHkgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwgQ2x1dHRlci5HcmF2aXR5 IGdyYXZpdHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9zY2FsZV96IChkb3VibGUgc2NhbGVfeik7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2l6ZSAo ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CitAQCAtNTExMCwxMSArNTA3OCw4IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMg Ym9vbCBjaGlsZF90cmFuc2Zvcm1fc2V0IHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy IildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSBjbGlwIHsgb3duZWQgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLlJlY3QgY2xpcF9yZWN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1 YmxpYyBHcmFwaGVuZS5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjbGlwX3RvX2FsbG9jYXRpb24g eyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTE5OSwxMiArNTE2NCwx MiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBvcGFjaXR5IHsgZ2V0OyBz ZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBpdm90X3BvaW50IHsgb3duZWQgZ2V0OyBzZXQ7 IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0 OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IHBpdm90 X3BvaW50X3ogeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUG9pbnQgcG9zaXRpb24geyBv d25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHBvc2l0aW9uIHsgb3du ZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBi b29sIHJlYWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUy MjUsMTMgKzUxOTAsMTMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGRvdWJsZSBy b3RhdGlvbl9hbmdsZV96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJf eCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCByb3RhdGlv bl9jZW50ZXJfeCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVy X3kgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgcm90YXRp b25fY2VudGVyX3kgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRl cl96IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHJvdGF0 aW9uX2NlbnRlcl96IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgcm90YXRpb25fY2Vu dGVyX3pfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CitAQCAtNTI1Nyw3ICs1MjIyLDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgc2hvd19vbl9zZXRfcGFyZW50IHsgZ2V0OyBz ZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlw dWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gdGV4dF9k aXJlY3Rpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTMxOSwx MSArNTI4NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgYm9vbCBtb3Rpb25fZXZlbnQgKENsdXR0ZXIuTW90aW9uRXZlbnQgZXZlbnQpOworIAkJW0hh c0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYWludCAoQ2x1dHRl ci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4y IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYXJlbnRfc2V0IChDbHV0dGVyLkFj dG9yPyBvbGRfcGFyZW50KTsKKysJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAoQ2x1dHRlci5Db2xv ciBjb2xvcik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaWNrIChDbHV0dGVyLlBp Y2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHF1ZXVlX3JlbGF5 b3V0ICgpOworQEAgLTUzNjEsNiArNTMyNywxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgYm9vbCBlbmFibGVkIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7 IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX25vZGVfZ2V0X3R5cGUgKCkiKV0K KysJcHVibGljIGNsYXNzIEFjdG9yTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5v ZGUqIildCisrCQlwdWJsaWMgQWN0b3JOb2RlIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfYWxpZ25fY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBBbGlnbkNvbnN0cmFpbnQgOiBDbHV0dGVy LkNvbnN0cmFpbnQgeworQEAgLTUzODgsMTkgKzUzNTksMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVsb25nIGdldF9tb2Rl ICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJl Z2lzdGVyX2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfZnVuYyAoQ2x1dHRl ci5BbHBoYUZ1bmMgZnVuYyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgdm9pZCBzZXRfY2xvc3VyZSAoR0xpYi5DbG9zdXJlIGNsb3N1cmUpOworIAkJcHVibGljIHZv aWQgc2V0X2Z1bmMgKG93bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOwor IAkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBBbHBoYS53aXRoX2Z1bmMgKENsdXR0ZXIuVGlt ZWxpbmUgdGltZWxpbmUsIG93bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworIAkJcHVibGlj IGRvdWJsZSBhbHBoYSB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KK0BAIC01NDExLDM1ICs1 Mzc1LDI2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGNsYXNzIEFuaW1hdGlvbiA6 IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIEFuaW1hdGlvbiAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJpbmQgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBH TGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJp bmRfaW50ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBvd25lZCBDbHV0dGVyLkludGVydmFs IGludGVydmFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFscGhhIGdldF9hbHBoYSAoKTsKKyAJCXB1YmxpYyB1aW50IGdldF9kdXJhdGlvbiAoKTsKKyAJ CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW50ZXJ2YWwgZ2V0X2ludGVydmFsIChzdHJpbmcgcHJv cGVydHlfbmFtZSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfbG9vcCAoKTsKKyAJCXB1YmxpYyB1bG9u ZyBnZXRfbW9kZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3Qg KCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsK KyAJCXB1YmxpYyBib29sIGhhc19wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBh bHBoYSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworIAkJcHVi bGljIHZvaWQgc2V0X2xvb3AgKGJvb2wgbG9vcCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbW9kZSAo dWxvbmcgbW9kZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfb2JqZWN0IChHTGliLk9iamVjdCBvYmpl Y3QpOworIAkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lPyB0aW1l bGluZSk7CistCQlwdWJsaWMgdm9pZCB1bmJpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9u YW1lKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIHVwZGF0ZSAoc3RyaW5n IHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgZmluYWwpOworLQkJcHVibGljIHZvaWQgdXBkYXRl X2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZh bCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg Q2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5BbHBo YSBhbHBoYSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCBkdXJhdGlvbiB7IGdl dDsgc2V0OyB9CisgCQlwdWJsaWMgYm9vbCBsb29wIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1 bG9uZyBtb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBHTGliLk9iamVjdCBvYmplY3QgeyBn ZXQ7IHNldDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgR0xpYi5PYmplY3Qg b2JqZWN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIHRp bWVsaW5lIHsgZ2V0OyBzZXQ7IH0KKy0JCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgY29tcGxldGVkICgpOworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg c3RhcnRlZCAoKTsKKyAJfQorQEAgLTU0NjAsMjEgKzU0MTUsMTggQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGlj IHZpcnR1YWwgdm9pZCBhZGRfb3B0aW9ucyAoR0xpYi5PcHRpb25Hcm91cCBncm91cCk7CistCQlw dWJsaWMgdm9pZCBiZWxsX25vdGlmeSAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmly dHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgpIHRocm93cyBHTGliLkVycm9yOworIAkJW05vV3Jh cHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5TdGFnZVdpbmRvdyBjcmVh dGVfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugd3JhcHBlcikgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlb Tm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1cmVfY29udGV4dCAoQ2x1dHRl ci5TdGFnZSBzdGFnZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25l ZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5hZ2VyICgpOworKwkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9kZWZhdWx0X3NlYXQgKCk7CisgCQlbTm9XcmFwcGVy XQorIAkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHVub3duZWQgQ2Fpcm8u Rm9udE9wdGlvbnMgZ2V0X2ZvbnRfb3B0aW9ucyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuSW5wdXRNZXRob2QgZ2V0X2lucHV0X21ldGhvZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuS2V5bWFwIGdldF9rZXltYXAgKCk7CisgCQlwdWJsaWMgZG91YmxlIGdldF9yZXNvbHV0 aW9uICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVu dHMgKCk7CitAQCAtNTQ5Niw5NSArNTQ0OCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2V0dGluZ3Nf Y2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBz aW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIEJlaGF2aW91ciA6IEdMaWIu T2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJlaGF2aW91ciAoKTsKKy0JCXB1YmxpYyB2 b2lkIGFjdG9yc19mb3JlYWNoIChDbHV0dGVyLkJlaGF2aW91ckZvcmVhY2hGdW5jIGZ1bmMpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxwaGFfbm90aWZ5IChkb3Vi bGUgYWxwaGFfdmFsdWUpOworLQkJcHVibGljIHZvaWQgYXBwbHkgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLkFjdG9yPiBnZXRfYWN0b3Jz ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7CistCQlw dWJsaWMgaW50IGdldF9uX2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgZ2V0X250aF9hY3RvciAoaW50IGluZGV4Xyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCistCQlwdWJsaWMgYm9vbCBpc19hcHBsaWVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0J CXB1YmxpYyB2b2lkIHJlbW92ZSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfYWxsICgpOworLQkJcHVibGlj IHZvaWQgc2V0X2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhKTsKKy0JCXB1YmxpYyBDbHV0dGVy LkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFwcGxpZWQgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgcmVtb3ZlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2JlaGF2aW91cl9kZXB0aF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1Ymxp YyBjbGFzcyBCZWhhdmlvdXJEZXB0aCA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlw dGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0J CXB1YmxpYyBCZWhhdmlvdXJEZXB0aCAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIGludCBkZXB0aF9z dGFydCwgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgaW50IGRlcHRoX3N0YXJ0LCBvdXQgaW50IGRlcHRo X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRf Ym91bmRzIChpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRo X2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBpbnQgZGVwdGhfc3RhcnQgeyBnZXQ7IHNldDsgfQor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfb3BhY2l0eV9nZXRfdHlwZSAoKSIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2Ug PSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJPcGFjaXR5IDogQ2x1dHRlci5CZWhh dmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJcHVibGljIEJl aGF2aW91ck9wYWNpdHkgKENsdXR0ZXIuQWxwaGE/IGFscGhhLCB1aW50OCBvcGFjaXR5X3N0YXJ0 LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgdWludDggb3BhY2l0eV9zdGFydCwgb3V0IHVpbnQ4 IG9wYWNpdHlfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9ib3VuZHMgKHVpbnQ4IG9wYWNpdHlfc3RhcnQsIHVpbnQ4IG9wYWNpdHlfZW5kKTsK Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0eV9lbmQgeyBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBvcGFjaXR5X3N0 YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX3NjYWxlX2dldF90 eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJlaGF2aW91clNjYWxl IDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIp XQorLQkJcHVibGljIEJlaGF2aW91clNjYWxlIChDbHV0dGVyLkFscGhhPyBhbHBoYSwgZG91Ymxl IHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQs IGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlw dWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgZG91YmxlIHhfc2NhbGVfc3RhcnQsIG91dCBkb3Vi bGUgeV9zY2FsZV9zdGFydCwgb3V0IGRvdWJsZSB4X3NjYWxlX2VuZCwgb3V0IGRvdWJsZSB5X3Nj YWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBz ZXRfYm91bmRzIChkb3VibGUgeF9zY2FsZV9zdGFydCwgZG91YmxlIHlfc2NhbGVfc3RhcnQsIGRv dWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB4X3Nj YWxlX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9zdGFydCB7IGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91 YmxlIHlfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iaW5fbGF5 b3V0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGlj IGNsYXNzIEJpbkxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdl cioiKV0KKyAJCXB1YmxpYyBCaW5MYXlvdXQgKENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24g PSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGln biA9IENsdXR0ZXIuQmluQWxpZ25tZW50LlNUQVJUKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgdm9pZCBhZGQgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQmluQWxpZ25tZW50 IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBv dXQgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50 IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1l bnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBD bHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduIHsg Z2V0OyBzZXQ7IH0KK0BAIC01NzU4LDM3ICs1NjI2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf Y2Fpcm9fdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg Y2xhc3MgQ2Fpcm9UZXh0dXJlIDogQ2x1dHRlci5UZXh0dXJlLCBBdGsuSW1wbGVtZW50b3IsIENs dXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0b3IqIildCistCQlwdWJsaWMgQ2Fpcm9UZXh0dXJlICh1aW50IHdpZHRoLCB1aW50IGhl aWdodCk7CistCQlwdWJsaWMgdm9pZCBjbGVhciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBDYWlyby5Db250ZXh0IGNyZWF0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBDYWlyby5Db250ZXh0IGNyZWF0ZV9yZWdpb24gKGludCB4X29mZnNldCwgaW50IHlfb2Zmc2V0 LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIGJvb2wgZ2V0X2F1dG9fcmVzaXplICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3N1 cmZhY2Vfc2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZV9yZWN0YW5n bGUgKENhaXJvLlJlY3RhbmdsZUludD8gcmVjdCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXNpemUgKGJvb2wgdmFsdWUpOworLQkJcHVi bGljIHZvaWQgc2V0X3N1cmZhY2Vfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGJvb2wgYXV0b19yZXNpemUgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBzdXJmYWNl X2hlaWdodCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1 aW50IHN1cmZhY2Vfd2lkdGggeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIENhaXJvLlN1cmZhY2UgY3JlYXRlX3N1cmZh Y2UgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGRyYXcgKENhaXJvLkNvbnRleHQgY3Ip OworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9jYW52YXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIENhbnZhcyA6IEdMaWIuT2JqZWN0LCBDbHV0 dGVyLkNvbnRlbnQgeworQEAgLTU5MjAsNjIgKzU3NTcsMjQgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHZvaWQgc2V0X2ZhY3RvciAoZG91YmxlIGZhY3Rvcik7CisgCQlwdWJsaWMg ZG91YmxlIGZhY3RvciB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RldmljZV9tYW5h Z2VyX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGlj IGFic3RyYWN0IGNsYXNzIERldmljZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgRGV2aWNlTWFu YWdlciAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9kZXZp Y2UgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlT ZXR0aW5ncyBzZXR0aW5ncyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBjb21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuRXZlbnQgdG9f ZGlzY2FyZCk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJbnB1dERldmljZSBj cmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBl KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfY29y ZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKy0JCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RlZmF1bHQgKCk7Cist CQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2RldmljZSAo aW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENs dXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9wb2lu dGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7 CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxEZXZpY2VUeXBlIGdldF9zdXBwb3J0 ZWRfdmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENs dXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdM aWIuU0xpc3Q8Q2x1dHRlci5JbnB1dERldmljZT4gcGVla19kZXZpY2VzICgpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVtb3ZlX2RldmljZSAoQ2x1dHRlci5JbnB1 dERldmljZSBkZXZpY2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg c2VsZWN0X3N0YWdlX2V2ZW50cyAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistCQlwdWJsaWMgdm9p ZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdz KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZSAoQ2x1 dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworLQkJcHVibGljIHZv aWQgc2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdz IHNldHRpbmdzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0ZXIuQmFj a2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2Up OworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQgKHVpbnQgc2V0 dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBr YmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1aW50IGxvY2tl ZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV9kd2VsbF9jbGlja190eXBl X2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0YXJ0ZWQgKENsdXR0ZXIu SW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91 dF90eXBlLCB1aW50IGRlbGF5KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1l b3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJB MTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB0b29s X2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNl VG9vbCBwMCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYWN0aW9uX2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIERyYWdBY3Rpb24gOiBD bHV0dGVyLkFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorIAkJcHVibGljIERyYWdBY3Rpb24gKCk7Cist CQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3QgZHJhZ19hcmVhKTsKKysJ CXB1YmxpYyBib29sIGdldF9kcmFnX2FyZWEgKEdyYXBoZW5lLlJlY3QgZHJhZ19hcmVhKTsKKyAJ CXB1YmxpYyBDbHV0dGVyLkRyYWdBeGlzIGdldF9kcmFnX2F4aXMgKCk7CisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGdldF9kcmFnX2hhbmRsZSAoKTsKKyAJCXB1YmxpYyB2b2lkIGdl dF9kcmFnX3RocmVzaG9sZCAob3V0IHVpbnQgeF90aHJlc2hvbGQsIG91dCB1aW50IHlfdGhyZXNo b2xkKTsKKyAJCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzIChvdXQgZmxvYXQgbW90aW9u X3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CisgCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRz IChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworLQkJcHVibGljIHZvaWQg c2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0PyBkcmFnX2FyZWEpOworKwkJcHVibGljIHZvaWQg c2V0X2RyYWdfYXJlYSAoR3JhcGhlbmUuUmVjdD8gZHJhZ19hcmVhKTsKKyAJCXB1YmxpYyB2b2lk IHNldF9kcmFnX2F4aXMgKENsdXR0ZXIuRHJhZ0F4aXMgYXhpcyk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfZHJhZ19oYW5kbGUgKENsdXR0ZXIuQWN0b3I/IGhhbmRsZSk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfZHJhZ190aHJlc2hvbGQgKGludCB4X3RocmVzaG9sZCwgaW50IHlfdGhyZXNob2xkKTsKKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLlJlY3QgZHJhZ19hcmVhIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1Ymxp YyBHcmFwaGVuZS5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9v bCBkcmFnX2FyZWFfc2V0IHsgZ2V0OyB9CitAQCAtNjAxMSwxMyArNTgxMCwxMyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgYm9vbCBtb2Rp ZnlfcGFpbnRfdm9sdW1lIChDbHV0dGVyLlBhaW50Vm9sdW1lIHZvbHVtZSk7CisgCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludCAoQ2x1dHRlci5FZmZlY3RQYWludEZs YWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRD b250ZXh0IHBhaW50X2NvbnRleHQsIENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7Cisg CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwaWNrIChDbHV0dGVyLkVmZmVj dFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwaWNrIChDbHV0dGVy LlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCBwb3N0X3BhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwb3N0X3Bh aW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFs IGJvb2wgcHJlX3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlcGFpbnQg KCk7CisgCX0KK0BAIC02MDY4LDcgKzU4NjcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgdWludCBnZXRfbW9kZV9ncm91cCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9wYWRfZXZl bnRfZGV0YWlscyAob3V0IHVpbnQgbnVtYmVyLCBvdXQgdWludCBtb2RlLCBvdXQgZG91YmxlIHZh bHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9pZCBnZXRf cG9zaXRpb24gKENsdXR0ZXIuUG9pbnQgcG9zaXRpb24pOworKwkJcHVibGljIHZvaWQgZ2V0X3Bv c2l0aW9uIChHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9yZWxhdGVkICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC02MzA4LDcgKzYxMDcsNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg Ym9vbCBnZXRfYXhpc192YWx1ZSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGRvdWJs ZVtdIGF4ZXMsIENsdXR0ZXIuSW5wdXRBeGlzIGF4aXMsIG91dCBkb3VibGUgdmFsdWUpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENs dXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJ cHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSwg R3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIGludCBnZXRfZGV2aWNlX2lkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorQEAgLTYzMjIsNyArNjEyMSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBi b29sIGdldF9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2dyYWJiZWRfYWN0b3IgKCk7CistCQlwdWJs aWMgaW50IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworKwkJcHVibGljIHZpcnR1YWwg aW50IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19jdXJzb3IgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCitAQCAtNjM0NCwxNiArNjE0MywxNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9wb2ludGVyX3N0YWdlICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfcHJvZHVjdF9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2VhdCBnZXRf c2VhdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBHTGliLkxp c3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBnZXRfc2xhdmVfZGV2aWNlcyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Zl bmRvcl9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBncmFiIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBib29sIGlzX2dyb3VwZWQg KENsdXR0ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKy0JCXB1YmxpYyBib29sIGlzX21v ZGVfc3dpdGNoX2J1dHRvbiAodWludCBncm91cCwgdWludCBidXR0b24pOworKwkJcHVibGljIHZp cnR1YWwgYm9vbCBpc19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVyX2RldmljZSk7 CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX21vZGVfc3dpdGNoX2J1dHRvbiAodWludCBncm91 cCwgdWludCBidXR0b24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwgdWludCBldmRl dl9rZXljb2RlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wga2V5Y29kZV90b19ldmRldiAodWlu dCBoYXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Igc2VxdWVuY2Vf Z2V0X2dyYWJiZWRfYWN0b3IgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZSBzZXF1ZW5jZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTYzNjksMTIgKzYxNjksMTEgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgdW5ncmFiICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgdXBkYXRlX2Zyb21fZXZlbnQgKENsdXR0ZXIu RXZlbnQgZXZlbnQsIGJvb2wgdXBkYXRlX3N0YWdlKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJs aWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9mcm9tX3Rvb2wgKENsdXR0ZXIuSW5wdXREZXZpY2VUb29s IHRvb2wpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCisgCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0 cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCistCQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9tYW5hZ2VyIHsgb3du ZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0TW9kZSBkZXZpY2Vf bW9kZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgc3RyaW5nIGRldmljZV9ub2RlIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KK0BAIC02Mzk3 LDYgKzYxOTYsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgc3RyaW5nIG5hbWUg eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0K KyAJCXB1YmxpYyBzdHJpbmcgcHJvZHVjdF9pZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJs aWMgQ2x1dHRlci5TZWF0IHNlYXQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdmVuZG9yX2lkIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKyAJfQorQEAgLTY0MzQsNyArNjIzNCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2b2lkIHNldF9jYW5fc2hvd19wcmVlZGl0IChib29sIGNhbl9zaG93X3ByZWVkaXQp OworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfaGludHMgKENsdXR0ZXIuSW5wdXRDb250ZW50 SGludEZsYWdzIGhpbnQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfcHVycG9zZSAoQ2x1 dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIHB1cnBvc2UpOworLQkJcHVibGljIHZvaWQgc2V0X2N1 cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2V0X2N1 cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9p bnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJW05v V3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5n IHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKK0BAIC02NDUzLDcgKzYyNTMsNyBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCByZXNldCAo KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3JfbG9j YXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1 cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9p bnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJcHVi bGljIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nPyBwcmVlZGl0LCB1aW50IGN1cnNvcik7 CisgCQlbTm9XcmFwcGVyXQorQEAgLTY0NzAsNyArNjI3MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0Q29udGVudFB1cnBvc2UgY29udGVudF9wdXJwb3Nl IHsgZ2V0OyBzZXQ7IH0KKyAJCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGNv bW1pdCAoc3RyaW5nIHRleHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlv bl9jaGFuZ2VkIChDbHV0dGVyLlJlY3Qgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBj dXJzb3JfbG9jYXRpb25fY2hhbmdlZCAoR3JhcGhlbmUuUmVjdCBvYmplY3QpOworIAkJW0hhc0Vt aXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50IG9m ZnNldCwgdWludCBsZW4pOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGlucHV0X3BhbmVsX3N0YXRl IChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBvYmplY3QpOworQEAgLTY1NDYsMjcgKzYzNDYsMzEg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEtleW1hcCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJv b2wgZ2V0X2NhcHNfbG9ja19zdGF0ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIFBhbmdvLkRpcmVj dGlvbiBnZXRfZGlyZWN0aW9uICgpOworIAkJcHVibGljIHZpcnR1YWwgYm9vbCBnZXRfbnVtX2xv Y2tfc3RhdGUgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhdGVfY2hhbmdlZCAoKTsKKyAJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfbGF5ZXJfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3Mg TGF5ZXJOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1Ymxp YyBMYXllck5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24sIENhaXJvLlJlY3RhbmdsZSB2aWV3 cG9ydCwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgdWludDggb3BhY2l0eSk7CisrCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2xheW91dF9tYW5hZ2VyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIExheW91dE1hbmFnZXIgOiBHTGli LkluaXRpYWxseVVub3duZWQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJcHJvdGVjdGVkIExheW91dE1hbmFnZXIgKCk7CisgCQlwdWJsaWMgdmlydHVh bCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0 b3JCb3ggYWxsb2NhdGlvbiwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5BbHBoYSBiZWdp bl9hbmltYXRpb24gKHVpbnQgZHVyYXRpb24sIHVsb25nIG1vZGUpOworIAkJcHVibGljIHZvaWQg Y2hpbGRfZ2V0IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0 b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29u dGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25h bWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0IChDbHV0dGVy LkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJs aWMgdm9pZCBjaGlsZF9zZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwg Q2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFs dWUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5M YXlvdXRNZXRhIGNyZWF0ZV9jaGlsZF9tZXRhIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIs IENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKysJCVtOb1dyYXBwZXJd CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuZF9hbmltYXRpb24gKCk7CisgCQlwdWJsaWMgdW5v d25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgbmFtZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMiIpXQorKwkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIGRvdWJs ZSBnZXRfYW5pbWF0aW9uX3Byb2dyZXNzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNZXRhIGdldF9jaGlsZF9tZXRhIChD bHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworQEAgLTY2 MjMsMTIgKzY0MjcsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJvdGVjdGVkIE9mZnNj cmVlbkVmZmVjdCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIENvZ2wuSGFuZGxlIGNyZWF0ZV90ZXh0 dXJlIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93bmVkIENsdXR0 ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyBib29sIGdldF90YXJnZXRfcmVjdCAob3V0IHVub3du ZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgYm9v bCBnZXRfdGFyZ2V0X3NpemUgKG91dCBmbG9hdCB3aWR0aCwgb3V0IGZsb2F0IGhlaWdodCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ29nbC5IYW5k bGUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X3RhcmdldCAo KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFyZ2V0IChDbHV0dGVyLlBhaW50Q29u dGV4dCBwYWludF9jb250ZXh0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFnZV90dXJuX2VmZmVjdF9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNjY0NSw2ICs2 NDQ5LDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgcGVyaW9kIHsg Z2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBmbG9hdCByYWRpdXMgeyBnZXQ7IHNldDsgfQorIAl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5j dGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfcmVmIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Bh aW50X2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50 X2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQYWludENvbnRl eHQgeworKwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wu RnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcG9wX2ZyYW1l YnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcHVzaF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1 ZmZlciBmcmFtZWJ1ZmZlcik7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Q29udGV4 dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Bh aW50X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ cHVibGljIGFic3RyYWN0IGNsYXNzIFBhaW50Tm9kZSB7CitAQCAtNjY1NCw3ICs2NDY4LDggQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgYWRkX211bHRpdGV4dHVyZV9yZWN0 YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgdGV4dF9jb29yZHMsIHVpbnQgdGV4 dF9jb29yZHNfbGVuKTsKKyAJCXB1YmxpYyB2b2lkIGFkZF9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0 b3JCb3ggcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBhZGRfdGV4dHVyZV9yZWN0YW5nbGUgKENsdXR0 ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQg eV8yKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5G cmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBwYWludCAoQ2x1 dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLlBhaW50Tm9kZSBAcmVmICgpOworIAkJcHVibGljIHZvaWQgc2V0X25hbWUgKHN0cmluZyBu YW1lKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVmICgpOworQEAgLTY2NzIsNyArNjQ4Nyw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1Ymxp YyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJ cHVibGljIENsdXR0ZXIuVmVydGV4IGdldF9vcmlnaW4gKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRf b3JpZ2luIChvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY2ODIsNyArNjQ5Nyw3IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9oZWlnaHQgKGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCist CQlwdWJsaWMgdm9pZCBzZXRfb3JpZ2luIChDbHV0dGVyLlZlcnRleCBvcmlnaW4pOworKwkJcHVi bGljIHZvaWQgc2V0X29yaWdpbiAoR3JhcGhlbmUuUG9pbnQzRCBvcmlnaW4pOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3dpZHRoIChmbG9hdCB3aWR0 aCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjc2OSwyNiArNjU4NCwxOSBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5QYXRoIHBhdGggeyBnZXQ7 IHNldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIG5vZGVfcmVhY2hlZCAoQ2x1dHRlci5BY3Rv ciBhY3RvciwgdWludCBpbmRleCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGlja19jb250ZXh0 X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJl Zl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF91bnJlZiIpXQorKwlbQ29tcGFjdF0K KysJcHVibGljIGNsYXNzIFBpY2tDb250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7 CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBpY2tDb250ZXh0IEByZWYgKCk7CisrCQlwdWJs aWMgdm9pZCB1bnJlZiAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlwZWxpbmVfbm9kZV9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUGlw ZWxpbmVOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFBpcGVsaW5lTm9kZSAoKTsKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1 bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgUG9pbnQgeworLQkJcHVi bGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRl ci5Qb2ludCBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IGNvcHkgKCk7CistCQlw dWJsaWMgZmxvYXQgZGlzdGFuY2UgKENsdXR0ZXIuUG9pbnQgYiwgb3V0IGZsb2F0IHhfZGlzdGFu Y2UsIG91dCBmbG9hdCB5X2Rpc3RhbmNlKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRl ci5Qb2ludCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLlBvaW50IGluaXQgKGZsb2F0IHgsIGZsb2F0IHkpOworLQkJcHVibGljIHN0YXRpYyB1 bm93bmVkIENsdXR0ZXIuUG9pbnQgemVybyAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcHJvcGVydHlf dHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAlwdWJsaWMgY2xhc3MgUHJvcGVydHlUcmFuc2l0aW9uIDogQ2x1dHRlci5UcmFuc2l0aW9uLCBD bHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTY3OTgsMzMgKzY2MDYsNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfcHJvcGVydHlfbmFtZSAoc3RyaW5nPyBwcm9wZXJ0 eV9uYW1lKTsKKyAJCXB1YmxpYyBzdHJpbmcgcHJvcGVydHlfbmFtZSB7IGdldDsgc2V0OyB9Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgUmVjdCB7CistCQlw dWJsaWMgd2VhayBDbHV0dGVyLlBvaW50IG9yaWdpbjsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIu U2l6ZSBzaXplOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlJlY3QgYWxsb2MgKCk7CistCQlw dWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3Bv aW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3Qg KENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY29weSAoKTsKKy0JCXB1 YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAo KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9jZW50ZXIgKENsdXR0ZXIuUG9pbnQgY2VudGVyKTsKKy0J CXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF93aWR0aCAo KTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBm bG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGluc2V0IChmbG9hdCBk X3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKENsdXR0ZXIuUmVj dCBiLCBDbHV0dGVyLlJlY3Q/IHJlcyk7CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IG5vcm1hbGl6 ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG9mZnNldCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworLQkJ cHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNfeCwgZmxvYXQgc195KTsKKy0JCXB1YmxpYyB2b2lk IHVuaW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0IHJlcyk7CistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgQ2x1dHRlci5SZWN0IHplcm8gKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlY3Rh bmdsZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCXB1Ymxp YyBjbGFzcyBSZWN0YW5nbGUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0 ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitA QCAtNjkwNyw4ICs2Njg4LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJ cHVibGljIFNjcm9sbEFjdG9yICgpOworIAkJcHVibGljIENsdXR0ZXIuU2Nyb2xsTW9kZSBnZXRf c2Nyb2xsX21vZGUgKCk7CistCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQgKENsdXR0ZXIu UG9pbnQgcG9pbnQpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3JlY3QgKENsdXR0ZXIuUmVj dCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19wb2ludCAoR3JhcGhlbmUuUG9pbnQg cG9pbnQpOworKwkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3JlY3QgKEdyYXBoZW5lLlJlY3QgcmVj dCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2Nyb2xsX21vZGUgKENsdXR0ZXIuU2Nyb2xsTW9kZSBt b2RlKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUgc2Nyb2xsX21vZGUgeyBnZXQ7IHNl dDsgfQorIAl9CitAQCAtNjkzMCw2ICs2NzExLDQ0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Nl YXRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGFic3RyYWN0IGNsYXNzIFNlYXQgOiBHTGliLk9i amVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlw cm90ZWN0ZWQgU2VhdCAoKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lk IGFwcGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5n cyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGJlbGxfbm90aWZ5ICgpOworKwkJcHVibGljIHZp cnR1YWwgdm9pZCBjb21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIu RXZlbnQgdG9fZGlzY2FyZCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9p ZCBjb3B5X2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgc3JjLCBDbHV0dGVyLkV2ZW50IGRlc3Qp OworKwkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRlX3Zp cnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CisrCQlw dWJsaWMgdm9pZCBlbnN1cmVfYTExeV9zdGF0ZSAoKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJs aWMgdmlydHVhbCB2b2lkIGZyZWVfZXZlbnRfZGF0YSAoQ2x1dHRlci5FdmVudCBldmVudCk7Cisr CQlwdWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRp bmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERl dmljZSBnZXRfa2V5Ym9hcmQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIu S2V5bWFwIGdldF9rZXltYXAgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIu SW5wdXREZXZpY2UgZ2V0X3BvaW50ZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlcl9h MTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJ cHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsRGV2aWNlVHlwZSBnZXRfc3VwcG9ydGVkX3Zp cnR1YWxfZGV2aWNlX3R5cGVzICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3RvdWNoX21vZGUgKCk7 CisrCQlwdWJsaWMgdmlydHVhbCBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBs aXN0X2RldmljZXMgKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENs dXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2lu dGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZSAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tU eXBlIGNsaWNrX3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9zZXR0aW5n cyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgd2FycF9wb2ludGVyIChpbnQgeCwgaW50IHkpOworKwkJW05vQWNjZXNzb3JNZXRo b2RdCisrCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0 cnVjdDsgfQorKwkJcHVibGljIGJvb2wgdG91Y2hfbW9kZSB7IGdldDsgfQorKwkJcHVibGljIHNp Z25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworKwkJ cHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0dGVyLklucHV0RGV2aWNlIG9i amVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3NfY2hhbmdlZCAodWlu dCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVkX21hc2ssIHVpbnQg bG9ja2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X2R3ZWxsX2NsaWNr X3R5cGVfY2hhbmdlZCAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5 cGUpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RhcnRlZCAoQ2x1 dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0 aW1lb3V0X3R5cGUsIHVpbnQgZGVsYXkpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5 X3RpbWVvdXRfc3RvcHBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9p bnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIGJvb2wgY2xpY2tlZCk7CisrCQlwdWJs aWMgc2lnbmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwg Q2x1dHRlci5JbnB1dERldmljZVRvb2wgcDApOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZXR0aW5nc19n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFz cyBTZXR0aW5ncyA6IEdMaWIuT2JqZWN0IHsKK0BAIC03MDAyLDE4ICs2ODIxLDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHJvdGVjdGVkIFNoYWRlck1hdHJpeCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRf Y29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3NpemVfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCistCXB1YmxpYyBjbGFzcyBTaXplIHsKKy0JCXB1YmxpYyBmbG9hdCBoZWlnaHQ7Cist CQlwdWJsaWMgZmxvYXQgd2lkdGg7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuU2l6ZSBhbGxv YyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVx dWFscyAoQ2x1dHRlci5TaXplIGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuU2l6ZSBpbml0IChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsK Ky0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfc25hcF9jb25zdHJhaW50X2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJcHVibGljIGNsYXNzIFNuYXBDb25zdHJhaW50IDogQ2x1 dHRlci5Db25zdHJhaW50IHsKK0BAIC03MDUyLDE0ICs2ODU5LDEyIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGZyZWV6ZV91cGRhdGVzICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2FjY2VwdF9mb2N1cyAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0X3BvcyAoQ2x1dHRlci5QaWNr TW9kZSBwaWNrX21vZGUsIGludCB4LCBpbnQgeSk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUgcGlja19tb2RlLCBmbG9h dCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBib29sIGdldF9jYXB0dXJlX2ZpbmFsX3NpemUgKENh aXJvLlJlY3RhbmdsZUludCByZWN0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGZsb2F0IHNjYWxl KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29sb3IgKCk7CisgCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X2RlZmF1bHQgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGdldF9mb2cgKCk7CisgCQlwdWJsaWMg aW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlfZm9jdXMgKCk7CitAQCAt NzA2NywxOSArNjg3MiwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBn ZXRfbWluaW11bV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9tb3Rpb25fZXZlbnRz X2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9v bCBnZXRfbm9fY2xlYXJfaGludCAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIGdl dF9wZXJzcGVjdGl2ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyBDYWlyby5SZWN0YW5nbGVJbnQgZ2V0X3JlZHJhd19jbGlwX2JvdW5kcyAoKTsKKysJCXB1Ymxp YyBDYWlyby5SZWdpb24gZ2V0X3JlZHJhd19jbGlwICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3Rocm90dGxlX21vdGlvbl9ldmVudHMgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X3RpdGxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wg Z2V0X3VzZV9hbHBoYSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCBnZXRf dXNlX2ZvZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyB2b2lk IGhpZGVfY3Vyc29yICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KK0BAIC03MDk0LDE2ICs2ODk0LDEy IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9hY2NlcHRfZm9jdXMg KGJvb2wgYWNjZXB0X2ZvY3VzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0 ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9m b2cgKENsdXR0ZXIuRm9nIGZvZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlw dWJsaWMgdm9pZCBzZXRfa2V5X2ZvY3VzIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbWluaW11bV9zaXplICh1 aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisg CQlwdWJsaWMgdm9pZCBzZXRfbW90aW9uX2V2ZW50c19lbmFibGVkIChib29sIGVuYWJsZWQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X25vX2NsZWFy X2hpbnQgKGJvb2wgbm9fY2xlYXIpOworIAkJcHVibGljIHZvaWQgc2V0X3BlcnNwZWN0aXZlIChD bHV0dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRzIChib29sIHRo cm90dGxlKTsKK0BAIC03MTExLDggKzY5MDcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FscGhhIChib29sIHVzZV9hbHBoYSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9mb2cgKGJvb2wgZm9n KTsKKyAJCXB1YmxpYyB2b2lkIHNob3dfY3Vyc29yICgpOworIAkJcHVibGljIHZvaWQgdGhhd191 cGRhdGVzICgpOworIAkJcHVibGljIHZvaWQgdXBkYXRlX3Jlc291cmNlX3NjYWxlcyAoKTsKK0BA IC03MTIyLDIwICs2OTE2LDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0 dGVyLkNvbG9yIGNvbG9yIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJ cHVibGljIGJvb2wgY3Vyc29yX3Zpc2libGUgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBmb2cgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3Iga2V5X2ZvY3VzIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIG5v X2NsZWFyX2hpbnQgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor IAkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUgeyBnZXQ7IHNldDsgfQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHN0cmluZyB0aXRsZSB7IGdl dDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgYm9vbCB1 c2VfYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29s IHVzZV9mb2cgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0aXZhdGUgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yMCIpXQorQEAgLTcxNTgsOCArNjk0Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsg Q2x1dHRlci5TdGFnZT4gbGlzdF9zdGFnZXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLlNM aXN0PENsdXR0ZXIuU3RhZ2U+IHBlZWtfc3RhZ2VzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2RlZmF1bHRfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuU3RhZ2UgZGVmYXVs dF9zdGFnZSB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTcyMDYs MTYgKzY5OTIsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyB1aW50IGdldF9kdXJhdGlvbiAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3Ry aW5nPyB0YXJnZXRfc3RhdGVfbmFtZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIEdM aWIuTGlzdDx3ZWFrIENsdXR0ZXIuU3RhdGVLZXk+IGdldF9rZXlzIChzdHJpbmc/IHNvdXJjZV9z dGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdD8gb2JqZWN0 LCBzdHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfc3RhdGUgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGlj IEdMaWIuTGlzdDx3ZWFrIHN0cmluZz4gZ2V0X3N0YXRlcyAoKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfa2V5IChzdHJpbmc/IHNvdXJj ZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdD8gb2Jq ZWN0LCBzdHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9kdXJhdGlvbiAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0 YXJnZXRfc3RhdGVfbmFtZSwgdWludCBkdXJhdGlvbik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5TdGF0ZSBzZXRfa2V5IChzdHJpbmc/IHNvdXJjZV9zdGF0 ZV9uYW1lLCBzdHJpbmcgdGFyZ2V0X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0IG9iamVjdCwgc3Ry aW5nIHByb3BlcnR5X25hbWUsIHVpbnQgbW9kZSwgR0xpYi5WYWx1ZSB2YWx1ZSwgZG91YmxlIHBy ZV9kZWxheSwgZG91YmxlIHBvc3RfZGVsYXkpOworQEAgLTcyMzYsMjQgKzcwMTYsOCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisgCXB1YmxpYyBjbGFzcyBTdGF0ZUtleSB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHVsb25nIGdldF9tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVk IEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IGRvdWJsZSBnZXRfcG9zdF9kZWxheSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg ZG91YmxlIGdldF9wcmVfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9wcm9wZXJ0eV9uYW1lICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyBHTGliLlR5cGUgZ2V0X3Byb3BlcnR5X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zb3VyY2Vfc3RhdGVfbmFtZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RhcmdldF9zdGF0 ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF92YWx1ZSAo R0xpYi5WYWx1ZSB2YWx1ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N3aXBlX2FjdGlvbl9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNzI2NSw1MyArNzAyOSw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisg CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBzd2lwZSAoQ2x1dHRlci5BY3RvciBhY3Rvciwg Q2x1dHRlci5Td2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJs ZV9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNz IFRhYmxlTGF5b3V0IDogQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJMYXlvdXRNYW5hZ2VyKiIp XQorLQkJcHVibGljIFRhYmxlTGF5b3V0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBDbHV0dGVyLlRh YmxlQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHlfYWxpZ24p OworLQkJcHVibGljIGludCBnZXRfY29sdW1uX2NvdW50ICgpOworLQkJcHVibGljIHVpbnQgZ2V0 X2NvbHVtbl9zcGFjaW5nICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGdl dF9lYXNpbmdfZHVyYXRpb24gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25n IGdldF9lYXNpbmdfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBn ZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2V4cGFuZCwgb3V0IGJv b2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9maWxs IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2ZpbGwsIG91dCBib29sIHlfZmlsbCk7 CistCQlwdWJsaWMgaW50IGdldF9yb3dfY291bnQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfcm93 X3NwYWNpbmcgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc3BhbiAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgb3V0IGludCBjb2x1bW5fc3Bhbiwgb3V0IGludCByb3dfc3Bhbik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZV9hbmltYXRpb25zICgpOworLQkJcHVibGljIHZv aWQgcGFjayAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGNvbHVtbiwgaW50IHJvdyk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3Rv ciBhY3RvciwgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLlRhYmxlQWxp Z25tZW50IHlfYWxpZ24pOworLQkJcHVibGljIHZvaWQgc2V0X2NvbHVtbl9zcGFjaW5nICh1aW50 IHNwYWNpbmcpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdf ZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9lYXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCB4X2V4cGFuZCwg Ym9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zp bGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCk7CistCQlw dWJsaWMgdm9pZCBzZXRfcm93X3NwYWNpbmcgKHVpbnQgc3BhY2luZyk7CistCQlwdWJsaWMgdm9p ZCBzZXRfc3BhbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGNvbHVtbl9zcGFuLCBpbnQgcm93 X3NwYW4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfYW5pbWF0 aW9ucyAoYm9vbCBhbmltYXRlKTsKKy0JCXB1YmxpYyB1aW50IGNvbHVtbl9zcGFjaW5nIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBlYXNpbmdfZHVyYXRp b24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBlYXNp bmdfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWludCByb3dfc3BhY2luZyB7IGdldDsg c2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgdXNlX2FuaW1hdGlvbnMg eyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YXBfYWN0aW9uX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBjbGFzcyBUYXBBY3Rpb24g OiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworQEAgLTczMzksNyArNzA1Niw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9jdXJzb3JfY29sb3IgKCk7 CisgCQlwdWJsaWMgaW50IGdldF9jdXJzb3JfcG9zaXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9yZWN0IChvdXQgdW5vd25l ZCBDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfY3Vyc29yX3JlY3QgKG91 dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdWludCBnZXRfY3Vyc29y X3NpemUgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY3Vyc29yX3Zpc2libGUgKCk7CisgCQlwdWJs aWMgYm9vbCBnZXRfZWRpdGFibGUgKCk7CitAQCAtNzQ1OCw3ICs3MTc1LDcgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9ldmVudCAoQ2x1dHRlci5HZW9tZXRy eSBnZW9tZXRyeSk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQg KEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBkZWxldGVfdGV4dCAoaW50IHN0YXJ0 X3BvcywgaW50IGVuZF9wb3MpOworQEAgLTc0OTcsOTIgKzcyMTQsOSBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgVGV4dE5vZGUgKFBhbmdvLkxheW91dD8gbGF5b3V0LCBDbHV0dGVy LkNvbG9yPyBjb2xvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENs dXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVy LkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJs aWMgVGV4dHVyZSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBU ZXh0dXJlLmZyb21fYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVu YW1lKSB0aHJvd3MgQ2x1dHRlci5UZXh0dXJlRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2Jhc2Vfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX21hdGVyaWFsICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9j b2dsX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuVGV4 dHVyZVF1YWxpdHkgZ2V0X2ZpbHRlcl9xdWFsaXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBib29sIGdldF9rZWVwX2FzcGVjdF9yYXRpbyAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9hc3luYyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9kYXRhX2FzeW5jICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyBpbnQgZ2V0X21heF90aWxlX3dhc3RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBib29sIGdldF9waWNrX3dpdGhfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgZ2V0X3JlcGVhdCAob3V0IGJvb2wgcmVwZWF0X3gsIG91dCBib29s IHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfc3luY19z aXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIHNldF9hcmVhX2Zyb21f cmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGJv b2wgaGFzX2FscGhhLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHJv d3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGli LkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2dsX21hdGVy aWFsIChDb2dsLkhhbmRsZSBjb2dsX21hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgdm9pZCBzZXRfY29nbF90ZXh0dXJlIChDb2dsLkhhbmRsZSBjb2dsX3RleCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbHRlcl9xdWFsaXR5IChDbHV0dGVy LlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgYm9vbCBzZXRfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVy cm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX3JnYl9kYXRh IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBib29sIGhhc19h bHBoYSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQgYnBwLCBDbHV0 dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu NCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21feXV2X2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ2x1dHRl ci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9rZWVwX2FzcGVjdF9yYXRpbyAoYm9vbCBrZWVwX2FzcGVj dCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xvYWRfYXN5bmMgKGJv b2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xv YWRfZGF0YV9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfcGlja193aXRoX2FscGhhIChib29sIHBpY2tfd2l0aF9hbHBoYSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlcGVhdCAoYm9vbCByZXBlYXRf eCwgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3N5bmNfc2l6ZSAoYm9vbCBzeW5jX3NpemUpOworKwlwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENs dXR0ZXIuQWN0b3IgeworIAkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29nbF9tYXRlcmlhbCB7IGdl dDsgc2V0OyB9CisgCQlwdWJsaWMgQ29nbC5UZXh0dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsgc2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRpc2FibGVfc2xpY2lu ZyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJs aWMgc3RyaW5nIGZpbGVuYW1lIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVy LlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5IHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9Cist CQlwdWJsaWMgYm9vbCBrZWVwX2FzcGVjdF9yYXRpbyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9hZF9hc3luYyB7IHNldDsgfQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfZGF0YV9hc3luYyB7IHNldDsgfQorLQkJcHVibGlj IGJvb2wgcGlja193aXRoX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBlYXRfeSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMg Ym9vbCBzeW5jX3NpemUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgaW50IHRpbGVfd2FzdGUgeyBnZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBsb2FkX2ZpbmlzaGVkIChHTGliLkVycm9yIGVycm9yKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaXhidWZfY2hhbmdlICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlIChpbnQgd2lkdGgsIGlu dCBoZWlnaHQpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX25vZGVfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03NjA4LDcgKzcyNDIsNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg Ym9vbCBnZXRfYXV0b19yZXZlcnNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K Ky0JCXB1YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQg Y18xLCBDbHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVy X3Byb2dyZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludCBnZXRfY3VycmVudF9yZXBl YXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCitAQCAtNzY0NSw3ICs3Mjc5LDcg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2F1dG9fcmV2ZXJzZSAoYm9vbCByZXZlcnNlKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dy ZXNzIChDbHV0dGVyLlBvaW50IGNfMSwgQ2x1dHRlci5Qb2ludCBjXzIpOworKwkJcHVibGljIHZv aWQgc2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoR3JhcGhlbmUuUG9pbnQgY18xLCBHcmFwaGVu ZS5Qb2ludCBjXzIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2RlbGF5ICh1aW50IG1zZWNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K K0BAIC03NzQ0LDYgKzczNzgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZs b2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNmb3JtX25v ZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRyYW5zZm9ybU5vZGUgOiBDbHV0dGVy LlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwg dHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIFRyYW5zZm9ybU5vZGUgKENv Z2wuTWF0cml4IHByb2plY3Rpb24pOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90cmFuc2l0aW9uX2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBUcmFuc2l0aW9uIDogQ2x1dHRlci5UaW1lbGluZSwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKK0BAIC03NzgzLDcgKzc0MjIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgVmlydHVhbElu cHV0RGV2aWNlICgpOworIAkJcHVibGljIGludCBnZXRfZGV2aWNlX3R5cGUgKCk7CistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X21hbmFnZXIgKCk7CisgCQlwdWJs aWMgdmlydHVhbCB2b2lkIG5vdGlmeV9hYnNvbHV0ZV9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBk b3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfYnV0dG9u ICh1aW50NjQgdGltZV91cywgdWludDMyIGJ1dHRvbiwgQ2x1dHRlci5CdXR0b25TdGF0ZSBidXR0 b25fc3RhdGUpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfZGlzY3JldGVfc2Nyb2xs ICh1aW50NjQgdGltZV91cywgQ2x1dHRlci5TY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBDbHV0 dGVyLlNjcm9sbFNvdXJjZSBzY3JvbGxfc291cmNlKTsKK0BAIC03Nzk0LDI1ICs3NDMyLDI1IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNo X2Rvd24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX21vdGlvbiAodWludDY0IHRpbWVfdXMs IGludCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBu b3RpZnlfdG91Y2hfdXAgKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCk7CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIg eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIENsdXR0ZXIuSW5wdXREZXZpY2VU eXBlIGRldmljZV90eXBlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9k XQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0K KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfem9vbV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKyAJcHVibGljIGNsYXNzIFpvb21BY3Rpb24gOiBDbHV0dGVyLkdl c3R1cmVBY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Us IHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBab29tQWN0aW9uICgpOworLQkJ cHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1 YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2lu dCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50 KTsKKysJCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAoR3JhcGhlbmUu UG9pbnQgcG9pbnQpOworIAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMgZ2V0X3pvb21fYXhpcyAo KTsKKyAJCXB1YmxpYyB2b2lkIHNldF96b29tX2F4aXMgKENsdXR0ZXIuWm9vbUF4aXMgYXhpcyk7 CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhpcyB6b29tX2F4aXMgeyBnZXQ7IHNldDsgfQorLQkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1 dHRlci5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBHcmFwaGVuZS5Qb2ludCBm b2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9jbmFtZSA9ICJDbHV0dGVyQW5pbWF0YWJs ZUludGVyZmFjZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRhYmxlX2dldF90eXBlICgpIild CisgCXB1YmxpYyBpbnRlcmZhY2UgQW5pbWF0YWJsZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9 ICIxLjAiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBhbmltYXRl X3Byb3BlcnR5IChDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRpb24sIHN0cmluZyBwcm9wZXJ0eV9u YW1lLCBHTGliLlZhbHVlIGluaXRpYWxfdmFsdWUsIEdMaWIuVmFsdWUgZmluYWxfdmFsdWUsIGRv dWJsZSBwcm9ncmVzcywgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX3By b3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CitAQCAtNzgzMCw4ICs3NDY4LDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlICh2ZnVuY19uYW1lID0gImFkZCIpXQorIAkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9hY3RvciAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgYWRkX3ZhbGlz dCAoQ2x1dHRlci5BY3RvciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXQgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIC4uLik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzg1 MywxMCArNzQ4OSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuQWN0b3IgZmluZF9jaGlsZF9ieV9uYW1lIChzdHJpbmcgY2hpbGRfbmFtZSk7CisgCQlb Q0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29udGFpbmVyX2NsYXNzX2ZpbmRfY2hpbGRfcHJvcGVy dHkiKV0KKyAJCXB1YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRf cHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlw dWJsaWMgYWJzdHJhY3Qgdm9pZCBAZm9yZWFjaCAoQ2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBmb3JlYWNoX3dpdGhf aW50ZXJuYWxzIChDbHV0dGVyLkNhbGxiYWNrIGNhbGxiYWNrKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5DaGlsZE1ldGEg Z2V0X2NoaWxkX21ldGEgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0K K0BAIC03ODc0LDggKzc1MDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKHZm dW5jX25hbWUgPSAicmVtb3ZlIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIGFic3Ry YWN0IHZvaWQgcmVtb3ZlX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfdmFsaXN0IChDbHV0dGVyLkFjdG9yIGZpcnN0 X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMg YWJzdHJhY3Qgdm9pZCBzb3J0X2RlcHRoX29yZGVyICgpOworIAkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgYWN0b3JfYWRkZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworQEAgLTc4OTIsNyAr NzUyMiw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGlu dmFsaWRhdGUgKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlkYXRlX3NpemUgKCk7 CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29udGVudCAo Q2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSk7CisrCQlwdWJsaWMg YWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVy LlBhaW50Tm9kZSBub2RlLCBDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCBhdHRhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorQEAgLTc5MDgsMTAgKzc1MzgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1 YmxpYyBpbnRlcmZhY2UgU3RhZ2VXaW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21l dHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0 IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKyAJCVtOb1dy YXBwZXJdCisgCQlwdWJsaWMgYWJzdHJhY3QgaW50IGdldF9wZW5kaW5nX3N3YXBzICgpOworIAkJ W05vV3JhcHBlcl0KK0BAIC03OTM5LDE0ICs3NTY1LDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bnJlYWxpemUgKCk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9YIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0 b3JfYm94X2dldF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgQWN0b3JCb3ggeworIAkJcHVi bGljIGZsb2F0IHgxOworIAkJcHVibGljIGZsb2F0IHkxOworIAkJcHVibGljIGZsb2F0IHgyOwor IAkJcHVibGljIGZsb2F0IHkyOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1 YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJveD8gYWxsb2MgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKysJCXB1Ymxp YyBzdGF0aWMgdm9pZCBjbGFtcF90b19waXhlbCAocmVmIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChm bG9hdCB4LCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC03OTU1 LDggKzc1ODMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAo Q2x1dHRlci5BY3RvckJveCBib3hfYik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9y X2JveF9mcm9tX3ZlcnRpY2VzIildCistCQlwdWJsaWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAo Q2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CitAQCAtODAwMiw3ICs3NjI4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHdl YWsgQ2Fpcm8uU3VyZmFjZSBpbWFnZTsKKyAJCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgcmVj dDsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9DT0xPUiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29w eSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZ UEVfQ09MT1IiKV0KKyAJcHVibGljIHN0cnVjdCBDb2xvciB7CisgCQlwdWJsaWMgdWludDggcmVk OworIAkJcHVibGljIHVpbnQ4IGdyZWVuOworQEAgLTgwNDEsMjQgKzc2NjcsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgc3Ry aW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZm9nX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdHJ1Y3QgRm9nIHsKKy0JCXB1YmxpYyBmbG9hdCB6 X25lYXI7CistCQlwdWJsaWMgZmxvYXQgel9mYXI7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dlb21ldHJ5 X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdHJ1Y3QgR2VvbWV0cnkgeworLQkJcHVibGlj IGludCB4OworLQkJcHVibGljIGludCB5OworLQkJcHVibGljIHVpbnQgd2lkdGg7CistCQlwdWJs aWMgdWludCBoZWlnaHQ7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg Ym9vbCBpbnRlcnNlY3RzIChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5MSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSB1bmlvbiAoQ2x1 dHRlci5HZW9tZXRyeSBnZW9tZXRyeV9iKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGlj IHN0cnVjdCBLYmRBMTF5U2V0dGluZ3MgeworIAkJcHVibGljIENsdXR0ZXIuS2V5Ym9hcmRBMTF5 RmxhZ3MgY29udHJvbHM7CitAQCAtODA2OSw3ICs3Njc3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGludCBtb3VzZWtleXNfbWF4X3NwZWVkOworIAkJcHVibGljIGludCBtb3Vz ZWtleXNfYWNjZWxfdGltZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25vdF9nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1 bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjAuMiIpXQorIAlwdWJsaWMgc3RydWN0IEtub3QgeworIAkJcHVibGljIGludCB4OworQEAg LTgxMjEsNyArNzcyOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUg dmFsdWU7CisgCQlwdWJsaWMgdWludDMyIG1vZGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9k ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3QgUGF0aE5v ZGUgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aE5vZGVUeXBlIHR5cGU7CitAQCAtODEzMSw3ICs3 NzM5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0 ZXIuUGF0aE5vZGUgbm9kZV9iKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGVy c3BlY3RpdmVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlw dWJsaWMgc3RydWN0IFBlcnNwZWN0aXZlIHsKKyAJCXB1YmxpYyBmbG9hdCBmb3Z5OworQEAgLTgx NjIsNyArNzc3MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0 ZXIuQWN0b3Igc291cmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5JbnB1dERldmljZSBkZXZp Y2U7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfVU5JVFMiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2Nv cHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9U WVBFX1VOSVRTIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0cnVj dCBVbml0cyB7CisgCQlwdWJsaWMgQ2x1dHRlci5Vbml0cz8gY29weSAoKTsKK0BAIC04MTg2LDIz ICs3Nzk0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHRvX3BpeGVs cyAoKTsKKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl92 ZXJ0ZXhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJs aWMgc3RydWN0IFZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5 OworLQkJcHVibGljIGZsb2F0IHo7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJ cHVibGljIHN0YXRpYyBDbHV0dGVyLlZlcnRleD8gYWxsb2MgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXg/IGNvcHkgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5WZXJ0 ZXggdmVydGV4X2IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgZnJlZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLlZlcnRleD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7Cist CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSX0FDVE9SX0FMSUdOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9h bGlnbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJs aWMgZW51bSBBY3RvckFsaWduIHsKK0BAIC04MzQwLDYgKzc5MzEsMjcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJWV9BWElTLAorIAkJQk9USAorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR18iLCB0 eXBlX2lkID0gImNsdXR0ZXJfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisr CXB1YmxpYyBlbnVtIERlYnVnRmxhZyB7CisrCQlNSVNDLAorKwkJQUNUT1IsCisrCQlURVhUVVJF LAorKwkJRVZFTlQsCisrCQlQQUlOVCwKKysJCVBBTkdPLAorKwkJQkFDS0VORCwKKysJCVNDSEVE VUxFUiwKKysJCVNDUklQVCwKKysJCVNIQURFUiwKKysJCU1VTFRJU1RBR0UsCisrCQlBTklNQVRJ T04sCisrCQlMQVlPVVQsCisrCQlQSUNLLAorKwkJRVZFTlRMT09QLAorKwkJQ0xJUFBJTkcsCisr CQlPT0JfVFJBTlNGT1JNUworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9EUkFHXyIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9kcmFnX2F4aXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAlwdWJsaWMgZW51bSBEcmFnQXhpcyB7CitAQCAtODM0Nyw2ICs3OTU5LDE5IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVhfQVhJUywKKyAJCVlfQVhJUworIAl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9E RUJVR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhd19kZWJ1Z19mbGFnX2dldF90eXBlICgpIild CisrCVtGbGFnc10KKysJcHVibGljIGVudW0gRHJhd0RlYnVnRmxhZyB7CisrCQlESVNBQkxFX1NX QVBfRVZFTlRTLAorKwkJRElTQUJMRV9DTElQUEVEX1JFRFJBV1MsCisrCQlSRURSQVdTLAorKwkJ UEFJTlRfVk9MVU1FUywKKysJCURJU0FCTEVfQ1VMTElORywKKysJCURJU0FCTEVfT0ZGU0NSRUVO X1JFRElSRUNULAorKwkJQ09OVElOVU9VU19SRURSQVcsCisrCQlQQUlOVF9ERUZPUk1fVElMRVMs CisrCQlQQUlOVF9EQU1BR0VfUkVHSU9OCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF9B Q1RPUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X3BhaW50X2ZsYWdzX2dldF90eXBlICgp IildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gRWZmZWN0UGFpbnRGbGFncyB7CitAQCAtODM5 OCw4ICs4MDIzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgZW51bSBGZWF0dXJl RmxhZ3MgeworIAkJVEVYVFVSRV9OUE9ULAorIAkJU1dBUF9USFJPVFRMRSwKKy0JCVRFWFRVUkVf WVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKyAJCVNUQUdFX1NUQVRJQywKKyAJCVNUQUdF X0NVUlNPUiwKKyAJCVNIQURFUlNfR0xTTCwKK0BAIC04NjU3LDYgKzgyODAsMTEgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJUkVMX0xJTkVfVE8sCisgCQlSRUxfQ1VSVkVfVE8KKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0g IkNMVVRURVJfREVCVUdfTk9QXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2RlYnVnX2ZsYWdf Z2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBQaWNrRGVidWdGbGFnIHsK KysJCVBJQ0tJTkcKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUElDS18iLCB0eXBlX2lkID0gImNsdXR0ZXJf cGlja19tb2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJ cHVibGljIGVudW0gUGlja01vZGUgeworQEAgLTg4NTEsMTMgKzg0NzksNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlMRUZULAorIAkJUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEFCTEVfQUxJ R05NRU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9hbGlnbm1lbnRfZ2V0X3R5cGUgKCki KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MjIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gVGFibGVBbGlnbm1lbnQgeworLQkJ U1RBUlQsCistCQlDRU5URVIsCistCQlFTkQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVF9ESVJFQ1RJ T05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHRfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGVudW0gVGV4dERpcmVjdGlvbiB7 CitAQCAtODkzMywyOCArODU1NCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlWQUxVRTsK KyAJCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf VEVYVFVSRV9FUlJPUl8iKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMg ZXJyb3Jkb21haW4gVGV4dHVyZUVycm9yIHsKKy0JCU9VVF9PRl9NRU1PUlksCistCQlOT19ZVVYs CistCQlCQURfRk9STUFUOworLQkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOwor LQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGlu c3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCXB1Ymxp YyBkZWxlZ2F0ZSBDbHV0dGVyLkFjdG9yIEFjdG9yQ3JlYXRlQ2hpbGRGdW5jIChHTGliLk9iamVj dCBpdGVtKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIGRlbGVn YXRlIGRvdWJsZSBBbHBoYUZ1bmMgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42 Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEJlaGF2aW91ckZvcmVh Y2hGdW5jIChDbHV0dGVyLkJlaGF2aW91ciBiZWhhdmlvdXIsIENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0 YW5jZV9wb3MgPSA0LjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBk ZWxlZ2F0ZSBib29sIEJpbmRpbmdBY3Rpb25GdW5jIChHTGliLk9iamVjdCBnb2JqZWN0LCBzdHJp bmcgYWN0aW9uX25hbWUsIHVpbnQga2V5X3ZhbCwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZp ZXJzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg aW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgQ2FsbGJhY2sgKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9p ZCBFbWl0SW5wdXREZXZpY2VFdmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5JbnB1 dERldmljZSBkZXZpY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x OCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBFdmVudEZpbHRlckZ1bmMgKENsdXR0ZXIuRXZl bnQgZXZlbnQpOworQEAgLTg5ODUsOSArODU5Nyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JF RFJBVzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5B Y3RvckJveD8gYWN0b3JfYm94X2FsbG9jICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGJhc2VfaW5pdCAo KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtOTA1MSw5ICs4NjYwLDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBQYW5nby5Gb250TWFwIGdldF9mb250X21hcCAoKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2tleWJv YXJkX2dyYWIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBzdGF0aWMgR0xp Yi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KK0BAIC05MDYxLDE3ICs4NjY3LDggQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29w dGlvbl9ncm91cF93aXRob3V0X2luaXQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9wb2ludGVyX2dyYWIgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ2V0 X3NjcmlwdF9pZCAoR0xpYi5PYmplY3QgZ29iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX2tleWJvYXJkIChDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdyYWJfcG9p bnRlciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIENsdXR0ZXIuSW5pdEVycm9y IGluaXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gImFyZ2MiLCBhcnJheV9sZW5ndGhf cG9zID0gMC41KV0gcmVmIHVub3duZWQgc3RyaW5nW10/IGFyZ3YpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjAuMiIpXQorQEAgLTkwODcsMjkgKzg2ODQsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X2N1c3RvbV9iYWNrZW5kX2Z1bmMgKHZvaWQqIGZ1bmMpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfYWRkX2RhdGFfZnVs bCAoc3RyaW5nIHRlc3RfcGF0aCwgb3duZWQgR0xpYi5UZXN0RGF0YUZ1bmMgdGVzdF9mdW5jKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNr X2FjdG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50 LCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5BY3Rvcj8gcmVzdWx0KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2NvbG9y X2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0 dGVyLkNvbG9yIGNvbG9yLCBvdXQgQ2x1dHRlci5Db2xvciByZXN1bHQpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgdGVzdF9n ZXRfc3RhZ2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0IChpbnQgYXJnYywgc3RyaW5n IGFyZ3YpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQgdGVz dF9ydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1 bmdyYWJfa2V5Ym9hcmQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB1bmdyYWJfcG9pbnRlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1 YmxpYyBzdGF0aWMgdWludCB1bmljb2RlX3RvX2tleXN5bSAodWludDMyIHdjKTsKKyB9CitkaWZm IC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC5kZXBzIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy5k ZXBzCitzaW1pbGFyaXR5IGluZGV4IDU0JQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRl ci00LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTcuZGVwcworaW5kZXggOTUw OTQwMjYuLjZiZDFjY2Y3IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC5kZXBzCisr KysgdmFwaS9tdXR0ZXItY2x1dHRlci03LmRlcHMKK0BAIC0xLDUgKzEsNCBAQAorIGF0aworIGNh aXJvCisganNvbi1nbGliLTEuMAorLW11dHRlci1jb2dsLTQKKy1wYW5nbworK211dHRlci1jb2ds LTcKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci00LnZhcGkgdmFwaS9tdXR0ZXItY2x1 dHRlci03LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggODYlCityZW5hbWUgZnJvbSB2YXBpL211dHRl ci1jbHV0dGVyLTQudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy52YXBpCitp bmRleCBjOGExZDIzYi4uYWVhNmEzMWEgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci00 LnZhcGkKKysrKyB2YXBpL211dHRlci1jbHV0dGVyLTcudmFwaQorQEAgLTEsNiArMSw2IEBACist LyogbXV0dGVyLWNsdXR0ZXItNC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9k aWZ5LiAqLworKy8qIG11dHRlci1jbHV0dGVyLTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwg ZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9u YW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVm aXggPSAiY2x1dHRlcl8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1l c3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjciLCBsb3dlcl9jYXNlX2NwcmVmaXgg PSAiY2x1dHRlcl8iKV0KKyBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCW5hbWVzcGFjZSBLZXkgewor IAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY25hbWUg PSAiQ0xVVFRFUl9LRVlfMCIpXQorQEAgLTQ1NzYsMjAgKzQ1NzYsOCBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHN0YXRpYyB1 aW50IGFkZF9yZXBhaW50X2Z1bmNfZnVsbCAoQ2x1dHRlci5SZXBhaW50RmxhZ3MgZmxhZ3MsIG93 bmVkIEdMaWIuU291cmNlRnVuYyBmdW5jKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBlbnRlciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBp bml0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGxlYXZlICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX3Jl cGFpbnRfZnVuYyAodWludCBoYW5kbGVfaWQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2xvY2tfZnVuY3Rpb25zIChHTGliLkNhbGxiYWNrIGVu dGVyX2ZuLCBHTGliLkNhbGxiYWNrIGxlYXZlX2ZuKTsKKyAJfQorIAluYW1lc3BhY2UgVmFsdWUg eworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitA QCAtNDYzNiw3ICs0NjI0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHN0YXRp YyB2b2lkIHRha2VfcGFpbnRfbm9kZSAoR0xpYi5WYWx1ZSB2YWx1ZSwgQ2x1dHRlci5QYWludE5v ZGU/IG5vZGUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQWN0aW9uIDog Q2x1dHRlci5BY3Rvck1ldGEgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJcHJvdGVjdGVkIEFjdGlvbiAoKTsKK0BAIC00NjY0LDMzICs0NjUxLDIzIEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgdm9pZCBhZGRfdHJhbnNpdGlvbiAoc3RyaW5nIG5hbWUsIENsdXR0ZXIuVHJhbnNpdGlv biB0cmFuc2l0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQWN0b3JCb3ggYm94LCBDbHV0dGVyLkFsbG9j YXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0 dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBhbGxvY2F0ZV9hbGlnbl9maWxsIChDbHV0dGVyLkFjdG9yQm94IGJveCwgZG91Ymxl IHhfYWxpZ24sIGRvdWJsZSB5X2FsaWduLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwsIENsdXR0 ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2b2lkIGFsbG9jYXRlX2FsaWdu X2ZpbGwgKENsdXR0ZXIuQWN0b3JCb3ggYm94LCBkb3VibGUgeF9hbGlnbiwgZG91YmxlIHlfYWxp Z24sIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hdmFpbGFibGVfc2l6ZSAoZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgYXZhaWxhYmxlX3dpZHRoLCBmbG9hdCBhdmFpbGFibGVfaGVpZ2h0LCBDbHV0 dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hdmFp bGFibGVfc2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgYXZhaWxhYmxlX3dpZHRoLCBmbG9h dCBhdmFpbGFibGVfaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0dGVyLkFsbG9jYXRpb25GbGFn cyBmbGFncyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B bmltYXRpb24gYW5pbWF0ZSAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgLi4uKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRl X3dpdGhfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIC4uLik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX2FscGhh diAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9w cm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMs IFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0 aF9wb3MgPSAxLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmUg KHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIC4uLik7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRo X3RpbWVsaW5ldiAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgW0NDb2Rl IChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9 IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0g Im5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFs dWVzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1h dGlvbiBhbmltYXRldiAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgW0NDb2RlIChhcnJheV9s ZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0 cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVy dGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKysJ CXB1YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChmbG9hdCB4LCBmbG9hdCB5KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBh cHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9y LCBDbHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV9yZWxhdGl2ZV90 cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBHcmFwaGVuZS5Qb2lu dDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbTm9X cmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV90cmFuc2Zvcm0gKHJlZiBDbHV0 dGVyLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIENsdXR0ZXIuVmVydGV4IGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5WZXJ0 ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfdHJhbnNmb3JtX3RvX3BvaW50IChHcmFw aGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIHZvaWQgYmluZF9tb2Rl bCAoR0xpYi5MaXN0TW9kZWw/IG1vZGVsLCBvd25lZCBDbHV0dGVyLkFjdG9yQ3JlYXRlQ2hpbGRG dW5jIGNyZWF0ZV9jaGlsZF9mdW5jKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVh bCBmbG9hdCBjYWxjdWxhdGVfcmVzb3VyY2Vfc2NhbGUgKGludCBwaGFzZSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBjbGVhcl9hY3Rpb25zICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ3MDAsMjAgKzQ2NzcsMTkgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJv b2wgY29udGFpbnMgKENsdXR0ZXIuQWN0b3IgZGVzY2VuZGFudCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoKTsKKysJCXB1Ymxp YyB2b2lkIGNvbnRpbnVlX3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0 KTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlj a19jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5n by5Db250ZXh0IGNyZWF0ZV9wYW5nb19jb250ZXh0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIFBhbmdvLkxheW91dCBjcmVhdGVfcGFuZ29fbGF5b3V0IChzdHJp bmc/IHRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lk IGRlc3Ryb3lfYWxsX2NoaWxkcmVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIGRldGFjaF9hbmltYXRpb24gKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0 b3JfZXZlbnQiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29s IGVtaXRfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIGJvb2wgY2FwdHVyZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWJzX2FsbG9jYXRpb25f dmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2 ZXJ0c1s0XSk7CisrCQlwdWJsaWMgdm9pZCBnZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Qb2ludDNEIHZlcnRzWzRdKTsK KyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQXRrLk9iamVjdCBnZXRfYWNjZXNzaWJsZSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QWN0aW9uIGdldF9hY3Rpb24gKHN0cmluZyBuYW1lKTsKK0BAIC00NzIxLDIxICs0Njk3LDggQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuQWN0 aW9uPiBnZXRfYWN0aW9ucyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLkFjdG9yQm94IGdldF9hbGxvY2F0aW9uX2JveCAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MC44IildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSBnZXRfYWxsb2NhdGlvbl9nZW9tZXRy eSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9h bGxvY2F0aW9uX3ZlcnRpY2VzIChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIENsdXR0ZXIuVmVydGV4IHZlcnRzWzRdKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYW5jaG9yX3BvaW50IChvdXQgZmxvYXQgYW5jaG9y X3gsIG91dCBmbG9hdCBhbmNob3JfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENs dXR0ZXIuR3Jhdml0eSBnZXRfYW5jaG9yX3BvaW50X2dyYXZpdHkgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gZ2V0X2FuaW1hdGlvbiAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xv ciBnZXRfYmFja2dyb3VuZF9jb2xvciAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9n ZXRfYWN0b3JfYnlfZ2lkIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYnlfZ2lkICh1aW50MzIgaWRfKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9j aGlsZF9hdF9pbmRleCAoaW50IGluZGV4Xyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorQEAgLTQ3NjIsOCArNDcyNSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2 b2lkIGdldF9jb250ZW50X3NjYWxpbmdfZmlsdGVycyAob3V0IENsdXR0ZXIuU2NhbGluZ0ZpbHRl ciBtaW5fZmlsdGVyLCBvdXQgQ2x1dHRlci5TY2FsaW5nRmlsdGVyIG1hZ19maWx0ZXIpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFp bnRWb2x1bWUgZ2V0X2RlZmF1bHRfcGFpbnRfdm9sdW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBmbG9h dCBnZXRfZGVwdGggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHVpbnQgZ2V0X2Vhc2luZ19kZWxheSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CitAQCAtNDc3NiwxMiArNDczNywxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg R0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5FZmZlY3Q+IGdldF9lZmZlY3RzICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X2ZpcnN0X2NoaWxkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2ZpeGVkX3Bvc2l0aW9uIChvdXQg ZmxvYXQgeCwgb3V0IGZsb2F0IHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJ cHVibGljIGJvb2wgZ2V0X2ZpeGVkX3Bvc2l0aW9uX3NldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yRmxhZ3MgZ2V0X2ZsYWdzICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIs IHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHVpbnQzMiBnZXRfZ2lkICgpOworIAkJW0NDb2Rl IChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2hhc19wb2ludGVyIildCisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisgCQlwdWJsaWMgYm9vbCBnZXRfaGFzX3BvaW50ZXIgKCk7CitAQCAtNDgz OSwxNyArNDc5OSwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBnZXRf cmVhY3RpdmUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1 dHRlci5SZXF1ZXN0TW9kZSBnZXRfcmVxdWVzdF9tb2RlICgpOworLQkJcHVibGljIGJvb2wgZ2V0 X3Jlc291cmNlX3NjYWxlIChvdXQgZmxvYXQgcmVzb3VyY2Vfc2NhbGUpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3JvdGF0aW9uIChDbHV0dGVyLlJvdGF0ZUF4aXMg YXhpcywgb3V0IGZsb2F0IHgsIG91dCBmbG9hdCB5LCBvdXQgZmxvYXQgeik7CisrCQlwdWJsaWMg ZmxvYXQgZ2V0X3Jlc291cmNlX3NjYWxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3JvdGF0aW9uX2FuZ2xlIChDbHV0dGVyLlJvdGF0ZUF4 aXMgYXhpcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBn ZXRfc2NhbGUgKG91dCBkb3VibGUgc2NhbGVfeCwgb3V0IGRvdWJsZSBzY2FsZV95KTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc2NhbGVfY2VudGVyIChvdXQgZmxvYXQg Y2VudGVyX3gsIG91dCBmbG9hdCBjZW50ZXJfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIENsdXR0ZXIuR3Jhdml0eSBnZXRfc2NhbGVfZ3Jhdml0eSAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdldF9zY2FsZV96ICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuMiIpXQorQEAgLTQ4NjAsOCArNDgxNCw3IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gZ2V0X3RleHRfZGlyZWN0 aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBDbHV0dGVy Lk1hdHJpeCBnZXRfdHJhbnNmb3JtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtYXRpb25fbWF0cml4ICgpOworKwkJcHVibGljIHZv aWQgZ2V0X3RyYW5zZm9ybWVkX2V4dGVudHMgKG91dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVj dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLlBhaW50Vm9sdW1lIGdldF90cmFuc2Zvcm1lZF9wYWludF92b2x1bWUgKENsdXR0ZXIuQWN0 b3IgcmVsYXRpdmVfdG9fYW5jZXN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor QEAgLTQ4ODUsMTAgKzQ4MzgsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9v bCBnZXRfeV9leHBhbmQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIGZsb2F0IGdldF96X3Bvc2l0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLkdyYXZpdHkgZ2V0X3pfcm90YXRpb25fZ3Jhdml0eSAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGdyYWJfa2V5X2ZvY3VzICgpOworKwkJ cHVibGljIHZpcnR1YWwgYm9vbCBoYXNfYWNjZXNzaWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgYm9vbCBoYXNfYWN0aW9ucyAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KK0BAIC00OTAwLDE4ICs0ODUyLDIwIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBib29sIGhhc19lZmZlY3RzICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgaGFzX2tleV9mb2N1cyAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgYm9vbCBoYXNfbWFwcGVkX2Nsb25lcyAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaGFz X292ZXJsYXBzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJs aWMgdmlydHVhbCB2b2lkIGhpZGVfYWxsICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdF9jdWxs aW5nICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGlu c2VydF9jaGlsZF9hYm92ZSAoQ2x1dHRlci5BY3RvciBjaGlsZCwgQ2x1dHRlci5BY3Rvcj8gc2li bGluZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5z ZXJ0X2NoaWxkX2F0X2luZGV4IChDbHV0dGVyLkFjdG9yIGNoaWxkLCBpbnQgaW5kZXhfKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBpbnNlcnRfY2hpbGRf YmVsb3cgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcpOworKwkJ cHVibGljIHZvaWQgaW52YWxpZGF0ZV90cmFuc2Zvcm0gKCk7CisrCQlwdWJsaWMgYm9vbCBpc19l ZmZlY3RpdmVseV9vbl9zdGFnZV92aWV3IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGlzX2luX2Nsb25lX3BhaW50 ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KK0BAIC00OTI0LDMzICs0ODc4LDIw IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGlzX3NjYWxlZCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgYm9vbCBpc192aXNpYmxlICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyIChDbHV0dGVyLkFjdG9yPyBhYm92ZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgbG93ZXJfYm90dG9tICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQor LQkJcHVibGljIHZvaWQgbW92ZV9hbmNob3JfcG9pbnQgKGZsb2F0IGFuY2hvcl94LCBmbG9hdCBh bmNob3JfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgbW92ZV9hbmNob3Jf cG9pbnRfZnJvbV9ncmF2aXR5IChDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBtb3ZlX2J5IChmbG9hdCBkeCwgZmxv YXQgZHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBib29sIG5l ZWRzX2V4cGFuZCAoQ2x1dHRlci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbik7CisgCQlbTm9XcmFw cGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF9ub2RlIChDbHV0dGVyLlBhaW50Tm9k ZSByb290KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwb3BfaW50ZXJuYWwg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcHVzaF9pbnRlcm5hbCAoKTsK KysJCXB1YmxpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLlN0YWdlVmlldz4gcGVla19zdGFn ZV92aWV3cyAoKTsKKysJCXB1YmxpYyB2b2lkIHBpY2tfYm94IChDbHV0dGVyLlBpY2tDb250ZXh0 IHBpY2tfY29udGV4dCwgQ2x1dHRlci5BY3RvckJveCBib3gpOworKwkJcHVibGljIHVub3duZWQg Q2x1dHRlci5GcmFtZUNsb2NrIHBpY2tfZnJhbWVfY2xvY2sgKCk7CisgCQlwdWJsaWMgdm9pZCBx dWV1ZV9yZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHZvaWQgcXVldWVfcmVkcmF3X3dpdGhfY2xpcCAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCByYWlzZSAoQ2x1dHRlci5BY3Rvcj8gYmVsb3cpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIHJhaXNlX3RvcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9hY3Rpb24gKENsdXR0ZXIuQWN0aW9uIGFjdGlvbik7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDk3Miw4ICs0OTEzLDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2VmZmVjdF9ieV9uYW1lIChzdHJp bmcgbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQg cmVtb3ZlX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlw dWJsaWMgdm9pZCByZXBhcmVudCAoQ2x1dHRlci5BY3RvciBuZXdfcGFyZW50KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByZXBsYWNlX2NoaWxkIChDbHV0 dGVyLkFjdG9yIG9sZF9jaGlsZCwgQ2x1dHRlci5BY3RvciBuZXdfY2hpbGQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC00OTgxLDExICs0OTIwLDcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNh dmVfZWFzaW5nX3N0YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9hbGxvY2F0aW9uIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5B bGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9hbmNob3JfcG9pbnQgKGZsb2F0IGFuY2hvcl94LCBmbG9hdCBhbmNob3JfeSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FuY2hvcl9wb2ludF9mcm9tX2dyYXZp dHkgKENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsKKysJCXB1YmxpYyB2b2lkIHNldF9hbGxvY2F0 aW9uIChDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmRfY29sb3IgKENsdXR0ZXIuQ29sb3I/IGNv bG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTAwOCw4ICs0OTQzLDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfcmVwZWF0 IChDbHV0dGVyLkNvbnRlbnRSZXBlYXQgcmVwZWF0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29udGVudF9zY2FsaW5nX2ZpbHRlcnMgKENsdXR0 ZXIuU2NhbGluZ0ZpbHRlciBtaW5fZmlsdGVyLCBDbHV0dGVyLlNjYWxpbmdGaWx0ZXIgbWFnX2Zp bHRlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoIChmbG9hdCBkZXB0aCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19kZWxh eSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTUwMzks OCArNDk3Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9vZmZz Y3JlZW5fcmVkaXJlY3QgKENsdXR0ZXIuT2Zmc2NyZWVuUmVkaXJlY3QgcmVkaXJlY3QpOworIAkJ cHVibGljIHZvaWQgc2V0X29wYWNpdHkgKHVpbnQ4IG9wYWNpdHkpOworIAkJcHVibGljIHZvaWQg c2V0X29wYWNpdHlfb3ZlcnJpZGUgKGludCBvcGFjaXR5KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBz ZXRfcGFyZW50IChDbHV0dGVyLkFjdG9yIHBhcmVudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Bpdm90X3BvaW50IChmbG9hdCBwaXZvdF94LCBm bG9hdCBwaXZvdF95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtNTA1MCwx NiArNDk4MSwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfcmVh Y3RpdmUgKGJvb2wgcmVhY3RpdmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJ cHVibGljIHZvaWQgc2V0X3JlcXVlc3RfbW9kZSAoQ2x1dHRlci5SZXF1ZXN0TW9kZSBtb2RlKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfcm90YXRpb24gKENsdXR0ZXIu Um90YXRlQXhpcyBheGlzLCBkb3VibGUgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHop OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9yb3Rh dGlvbl9hbmdsZSAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4aXMsIGRvdWJsZSBhbmdsZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGUgKGRvdWJs ZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3NjYWxlX2Z1bGwgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwgZmxv YXQgY2VudGVyX3gsIGZsb2F0IGNlbnRlcl95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfc2NhbGVfd2l0aF9ncmF2aXR5IChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNj YWxlX3ksIENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfeiAoZG91YmxlIHNjYWxlX3opOworIAkJ cHVibGljIHZvaWQgc2V0X3NpemUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworQEAgLTUw ODUsMTcgKzUwMTAsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0 X3lfZXhwYW5kIChib29sIGV4cGFuZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor IAkJcHVibGljIHZvaWQgc2V0X3pfcG9zaXRpb24gKGZsb2F0IHpfcG9zaXRpb24pOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF96X3JvdGF0aW9uX2Zyb21fZ3Jhdml0eSAo ZG91YmxlIGFuZ2xlLCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlwdWJsaWMgYm9vbCBz aG91bGRfcGlja19wYWludCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHNob3dfYWxsICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVi bGljIGJvb2wgdHJhbnNmb3JtX3N0YWdlX3BvaW50IChmbG9hdCB4LCBmbG9hdCB5LCBvdXQgZmxv YXQgeF9vdXQsIG91dCBmbG9hdCB5X291dCk7CisrCQlwdWJsaWMgdm9pZCB1bmluaGliaXRfY3Vs bGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgdW5tYXAgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZvaWQgdW5wYXJl bnQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCB1bnNl dF9mbGFncyAoQ2x1dHRlci5BY3RvckZsYWdzIGZsYWdzKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorQEAgLTUxMDMsMTYgKzUwMjMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg Q2x1dHRlci5BY3Rpb24gYWN0aW9ucyB7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBh bGxvY2F0aW9uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGFuY2hvcl9ncmF2aXR5IHsgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBm bG9hdCBhbmNob3JfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgZmxvYXQgYW5jaG9yX3kgeyBnZXQ7IHNldDsgfQorKwkJ cHVibGljIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbiB7IG93bmVkIGdldDsgfQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJhY2tncm91 bmRfY29sb3IgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTEyMiwx MSArNTAzMyw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisgCQlwdWJsaWMgYm9vbCBjaGlsZF90cmFuc2Zvcm1fc2V0IHsgZ2V0OyB9CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSBjbGlwIHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY2xpcF9yZWN0IHsgb3duZWQgZ2V0OyBz ZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0 OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjbGlwX3Rv X2FsbG9jYXRpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTE0 MCw4ICs1MDQ4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQ29u dGVudEdyYXZpdHkgY29udGVudF9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db250ZW50UmVwZWF0IGNvbnRlbnRf cmVwZWF0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZmxvYXQg ZGVwdGggeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgQ2x1dHRlci5FZmZlY3QgZWZmZWN0IHsgc2V0OyB9 CitAQCAtNTIxMSwxMiArNTExNywxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dWludCBvcGFjaXR5IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBpdm90X3Bv aW50IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwaXZvdF9w b2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor IAkJcHVibGljIGZsb2F0IHBpdm90X3BvaW50X3ogeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNz b3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0 ZXIuUG9pbnQgcG9zaXRpb24geyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5l LlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIHJlYWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorQEAgLTUyMjUsOCArNTEzMSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlJlcXVlc3RN b2RlIHJlcXVlc3RfbW9kZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBmbG9hdCByZXNvdXJjZV9zY2FsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91YmxlIHJvdGF0 aW9uX2FuZ2xlX3ggeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTIz NiwyNyArNTE0MCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKyAJCXB1YmxpYyBkb3VibGUgcm90YXRpb25fYW5nbGVfeiB7IGdldDsgc2V0OyB9 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1 dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJv dGF0aW9uX2NlbnRlcl95IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJf eiB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHJvdGF0aW9uX2NlbnRlcl96X2dyYXZpdHkgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIGZsb2F0IHNjYWxlX2NlbnRlcl94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBzY2FsZV9jZW50ZXJf eSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHNjYWxlX2dyYXZpdHkgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlw dWJsaWMgZG91YmxlIHNjYWxlX3ggeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2Rd CitAQCAtNTI2OSw3ICs1MTUyLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJv b2wgc2hvd19vbl9zZXRfcGFyZW50IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUg c2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplIHsg b3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1Ymxp YyBDbHV0dGVyLlRleHREaXJlY3Rpb24gdGV4dF9kaXJlY3Rpb24geyBnZXQ7IHNldDsgfQorIAkJ W05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTI5OSw4ICs1MTgyLDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIGJvb2wgeV9leHBhbmQgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCB6X3Bvc2l0aW9uIHsgZ2V0OyBzZXQ7 IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBh bGxvY2F0aW9uX2NoYW5nZWQgKENsdXR0ZXIuQWN0b3JCb3ggYm94LCBDbHV0dGVyLkFsbG9jYXRp b25GbGFncyBmbGFncyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgYm9vbCBidXR0b25fcHJlc3NfZXZlbnQgKENsdXR0ZXIuQnV0dG9uRXZl bnQgZXZlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorQEAgLTUzMzEsMjIgKzUy MTIsMjUgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJv b2wgbW90aW9uX2V2ZW50IChDbHV0dGVyLk1vdGlvbkV2ZW50IGV2ZW50KTsKKyAJCVtIYXNFbWl0 dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBh aW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFp bnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQor IAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFyZW50X3NldCAoQ2x1dHRlci5BY3Rvcj8g b2xkX3BhcmVudCk7CisrCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIuQ29sb3IgY29s b3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29u dGV4dCBwaWNrX2NvbnRleHQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBxdWV1ZV9yZWxheW91dCAo KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCB2b2lkIHJlYWxpemUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBy ZXNvdXJjZV9zY2FsZV9jaGFuZ2VkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor IAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc2Nyb2xsX2V2ZW50IChDbHV0dGVyLlNjcm9s bEV2ZW50IGV2ZW50KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu MiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc2hvdyAoKTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCBzdGFnZV92aWV3c19jaGFuZ2VkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHRvdWNoX2V2ZW50IChDbHV0 dGVyLkV2ZW50IGV2ZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtNTM1 OCwyMSArNTI0MiwzMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCB1bnJlYWxpemUgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX21ldGFfZ2V0 X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgYWJzdHJh Y3QgY2xhc3MgQWN0b3JNZXRhIDogR0xpYi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBBY3Rvck1ldGEg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFjdG9yIGdldF9hY3RvciAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyBib29sIGdldF9lbmFibGVkICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworIAkJW05vV3JhcHBlcl0K KyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2FjdG9yIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7 CistCQlwdWJsaWMgdm9pZCBzZXRfZW5hYmxlZCAoYm9vbCBpc19lbmFibGVkKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2VuYWJsZWQg KGJvb2wgaXNfZW5hYmxlZCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJs aWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3IgYWN0b3IgeyBnZXQ7IH0KKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGVuYWJsZWQgeyBnZXQ7IHNldDsgfQor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHN0cmluZyBuYW1lIHsgZ2V0 OyBzZXQ7IH0KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3Jfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlw dWJsaWMgY2xhc3MgQWN0b3JOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoi KV0KKysJCXB1YmxpYyBBY3Rvck5vZGUgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9hbGlnbl9jb25zdHJhaW50X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIEFsaWduQ29uc3RyYWludCA6IENsdXR0ZXIuQ29u c3RyYWludCB7CitAQCAtNTM4MCw4MSArNTI3NiwxOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgQWxpZ25Db25zdHJhaW50IChDbHV0dGVyLkFjdG9yPyBzb3VyY2UsIENsdXR0ZXIu QWxpZ25BeGlzIGF4aXMsIGZsb2F0IGZhY3Rvcik7CisgCQlwdWJsaWMgQ2x1dHRlci5BbGlnbkF4 aXMgZ2V0X2FsaWduX2F4aXMgKCk7CisgCQlwdWJsaWMgZmxvYXQgZ2V0X2ZhY3RvciAoKTsKKysJ CXB1YmxpYyB2b2lkIGdldF9waXZvdF9wb2ludCAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQg cGl2b3RfcG9pbnQpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfc291cmNl ICgpOworIAkJcHVibGljIHZvaWQgc2V0X2FsaWduX2F4aXMgKENsdXR0ZXIuQWxpZ25BeGlzIGF4 aXMpOworIAkJcHVibGljIHZvaWQgc2V0X2ZhY3RvciAoZmxvYXQgZmFjdG9yKTsKKysJCXB1Ymxp YyB2b2lkIHNldF9waXZvdF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQpOworIAkJ cHVibGljIHZvaWQgc2V0X3NvdXJjZSAoQ2x1dHRlci5BY3Rvcj8gc291cmNlKTsKKyAJCXB1Ymxp YyBDbHV0dGVyLkFsaWduQXhpcyBhbGlnbl9heGlzIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9Cisg CQlwdWJsaWMgZmxvYXQgZmFjdG9yIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVk IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBzb3VyY2UgeyBnZXQ7IHNldCBj b25zdHJ1Y3Q7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxwaGFfZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEFscGhhIDogR0xpYi5Jbml0aWFsbHlVbm93bmVk LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHVibGljIEFscGhhICgpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIEFscGhhLmZ1bGwgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIHVsb25nIG1vZGUpOwor LQkJcHVibGljIGRvdWJsZSBnZXRfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfY2xvc3VyZSAoR0xpYi5DbG9zdXJl IGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRp YyB1bG9uZyByZWdpc3Rlcl9mdW5jIChDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jbG9zdXJlIChHTGliLkNs b3N1cmUgY2xvc3VyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZnVuYyAob3duZWQgQ2x1dHRlci5B bHBoYUZ1bmMgZnVuYyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfbW9kZSAodWxvbmcgbW9kZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfdGltZWxpbmUg KENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IEFscGhhLndpdGhfZnVuYyAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgb3duZWQgQ2x1dHRl ci5BbHBoYUZ1bmMgZnVuYyk7CistCQlwdWJsaWMgZG91YmxlIGFscGhhIHsgZ2V0OyB9CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0 IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUgeyBnZXQ7 IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIGNsYXNzIEFuaW1hdGlvbiA6IEdMaWIuT2JqZWN0LCBDbHV0 dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHVibGljIEFuaW1hdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QW5pbWF0aW9uIGJpbmQgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJpbmRfaW50ZXJ2YWwgKHN0cmlu ZyBwcm9wZXJ0eV9uYW1lLCBvd25lZCBDbHV0dGVyLkludGVydmFsIGludGVydmFsKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFscGhhIGdldF9hbHBoYSAo KTsKKy0JCXB1YmxpYyB1aW50IGdldF9kdXJhdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuSW50ZXJ2YWwgZ2V0X2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlw dWJsaWMgYm9vbCBnZXRfbG9vcCAoKTsKKy0JCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCXB1YmxpYyBib29sIGhh c19wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCQlwdWJsaWMg dm9pZCBzZXRfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJcHVibGljIHZvaWQgc2V0X2xvb3Ag KGJvb2wgbG9vcCk7CistCQlwdWJsaWMgdm9pZCBzZXRfbW9kZSAodWxvbmcgbW9kZSk7CistCQlw dWJsaWMgdm9pZCBzZXRfb2JqZWN0IChHTGliLk9iamVjdCBvYmplY3QpOworLQkJcHVibGljIHZv aWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lPyB0aW1lbGluZSk7CistCQlwdWJsaWMg dm9pZCB1bmJpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIHVwZGF0ZSAoc3RyaW5nIHByb3BlcnR5X25hbWUsIEdM aWIuVmFsdWUgZmluYWwpOworLQkJcHVibGljIHZvaWQgdXBkYXRlX2ludGVydmFsIChzdHJpbmcg cHJvcGVydHlfbmFtZSwgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJcHVi bGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJcHVibGljIGJvb2wgbG9vcCB7IGdl dDsgc2V0OyB9CistCQlwdWJsaWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMg R0xpYi5PYmplY3Qgb2JqZWN0IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRpbWVs aW5lIHRpbWVsaW5lIHsgZ2V0OyBzZXQ7IH0KKy0JCVtIYXNFbWl0dGVyXQorLQkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgY29tcGxldGVkICgpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgc3RhcnRlZCAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC01NDY3LDM3ICs1MzAwLDE0IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmFja2VuZF9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBjbGFzcyBCYWNrZW5kIDogR0xpYi5P YmplY3QgeworKwlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0IHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3Rl ZCBCYWNrZW5kICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRk X29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLQkJcHVibGljIHZvaWQgYmVsbF9u b3RpZnkgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBjcmVhdGVf Y29udGV4dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5kb3cgY3JlYXRlX3N0YWdlIChDbHV0dGVy LlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VN YW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCBDbHV0dGVyLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CisrCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X2RlZmF1bHRfc2VhdCAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENhaXJvLkZvbnRPcHRpb25zIGdldF9m b250X29wdGlvbnMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0TWV0aG9kIGdl dF9pbnB1dF9tZXRob2QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRf a2V5bWFwICgpOworIAkJcHVibGljIGRvdWJsZSBnZXRfcmVzb2x1dGlvbiAoKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9mZWF0dXJlcyAoKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIHBvc3RfcGFyc2UgKCkgdGhyb3dzIEdMaWIu RXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFyc2Ug KCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCByZWRyYXcgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2ZvbnRfb3B0aW9ucyAoQ2Fpcm8uRm9udE9wdGlv bnMgb3B0aW9ucyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfbWV0aG9kIChDbHV0dGVyLklu cHV0TWV0aG9kIG1ldGhvZCk7CitAQCAtNTUwOCw5NSArNTMxOCwxMSBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgc2V0dGluZ3NfY2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX2dldF90 eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIEJlaGF2 aW91ciA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJlaGF2aW91ciAoKTsK Ky0JCXB1YmxpYyB2b2lkIGFjdG9yc19mb3JlYWNoIChDbHV0dGVyLkJlaGF2aW91ckZvcmVhY2hG dW5jIGZ1bmMpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxwaGFf bm90aWZ5IChkb3VibGUgYWxwaGFfdmFsdWUpOworLQkJcHVibGljIHZvaWQgYXBwbHkgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLkFjdG9y PiBnZXRfYWN0b3JzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxw aGEgKCk7CistCQlwdWJsaWMgaW50IGdldF9uX2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3IgZ2V0X250aF9hY3RvciAoaW50IGluZGV4Xyk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBpc19hcHBsaWVkIChDbHV0dGVyLkFjdG9y IGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfYWxsICgp OworLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhKTsKKy0JCXB1 YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFwcGxpZWQgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVtb3ZlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9kZXB0aF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4y IildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJEZXB0aCA6IENsdXR0ZXIuQmVoYXZpb3VyLCBD bHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjQiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJEZXB0aCAoQ2x1dHRlci5BbHBoYT8gYWxwaGEs IGludCBkZXB0aF9zdGFydCwgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgaW50IGRlcHRoX3N0YXJ0LCBv dXQgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgdm9pZCBzZXRfYm91bmRzIChpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJs aWMgaW50IGRlcHRoX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBpbnQgZGVwdGhfc3RhcnQgeyBn ZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfb3BhY2l0eV9nZXRfdHlwZSAo KSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJPcGFjaXR5IDog Q2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQor LQkJcHVibGljIEJlaGF2aW91ck9wYWNpdHkgKENsdXR0ZXIuQWxwaGE/IGFscGhhLCB1aW50OCBv cGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgdWludDggb3BhY2l0eV9zdGFy dCwgb3V0IHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKHVpbnQ4IG9wYWNpdHlfc3RhcnQsIHVpbnQ4IG9w YWNpdHlfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0 eV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWlu dCBvcGFjaXR5X3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3Vy X3NjYWxlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJl aGF2aW91clNjYWxlIDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVy QmVoYXZpb3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91clNjYWxlIChDbHV0dGVyLkFscGhhPyBh bHBoYSwgZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUg eF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgZG91YmxlIHhfc2NhbGVfc3Rh cnQsIG91dCBkb3VibGUgeV9zY2FsZV9zdGFydCwgb3V0IGRvdWJsZSB4X3NjYWxlX2VuZCwgb3V0 IGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgdm9pZCBzZXRfYm91bmRzIChkb3VibGUgeF9zY2FsZV9zdGFydCwgZG91YmxlIHlfc2Nh bGVfc3RhcnQsIGRvdWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IGRvdWJsZSB4X3NjYWxlX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9z dGFydCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2FsZV9lbmQgeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9iaW5fbGF5b3V0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKyAJcHVibGljIGNsYXNzIEJpbkxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVy TGF5b3V0TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBCaW5MYXlvdXQgKENsdXR0ZXIuQmluQWxpZ25t ZW50IHhfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCwgQ2x1dHRlci5CaW5BbGln bm1lbnQgeV9hbGlnbiA9IENsdXR0ZXIuQmluQWxpZ25tZW50LlNUQVJUKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4yIildCistCQlwdWJsaWMgdm9pZCBhZGQgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIu QmluQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0 b3I/IGNoaWxkLCBvdXQgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIu QmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdubWVu dCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKyAJCVtOb0FjY2Vzc29y TWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJpbkFsaWdubWVu dCB4X2FsaWduIHsgZ2V0OyBzZXQ7IH0KK0BAIC01NjQ0LDk4ICs1MzcwLDI5IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0 eXBlID0gIkNsdXR0ZXJFZmZlY3QqIildCisgCQlwdWJsaWMgQmx1ckVmZmVjdCAoKTsKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfYm94X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKy0JcHVibGljIGNsYXNzIEJveCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwg Q2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNs dXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQm94IChDbHV0dGVy LkxheW91dE1hbmFnZXIgbWFuYWdlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENs dXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuTGF5b3V0TWFuYWdlciBnZXRfbGF5b3V0X21hbmFnZXIgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFjayAoQ2x1dHRlci5BY3RvciBhY3Rvciwg Li4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrX2FmdGVyIChDbHV0 dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nLCAuLi4pOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2tfYXQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGlu dCBwb3NpdGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNr X2JlZm9yZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8gc2libGluZywgLi4u KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrdiAoQ2x1dHRlci5BY3Rv ciBhY3RvciwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJy YXlfbGVuZ3RoX3BvcyA9IDEuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gc3RyaW5n W10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVz IiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0g R0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQg c2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yPyBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2xheW91dF9tYW5hZ2VyIChDbHV0dGVyLkxheW91dE1hbmFnZXIgbWFu YWdlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29sb3Ig eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIGJvb2wgY29sb3Jfc2V0IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVy LkxheW91dE1hbmFnZXIgbGF5b3V0X21hbmFnZXIgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9ib3hfbGF5b3V0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKyAJcHVibGljIGNsYXNzIEJveExheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVy TGF5b3V0TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBCb3hMYXlvdXQgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3Rvciwg b3V0IENsdXR0ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJveEFsaWdubWVu dCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWludCBnZXRfZWFzaW5n X2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfZWFz aW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2V4cGFu ZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZv aWQgZ2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZmlsbCwgb3V0IGJv b2wgeV9maWxsKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29s IGdldF9ob21vZ2VuZW91cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlw dWJsaWMgQ2x1dHRlci5PcmllbnRhdGlvbiBnZXRfb3JpZW50YXRpb24gKCk7CisgCQlwdWJsaWMg Ym9vbCBnZXRfcGFja19zdGFydCAoKTsKKyAJCXB1YmxpYyB1aW50IGdldF9zcGFjaW5nICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfYW5pbWF0aW9ucyAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCBnZXRfdmVydGljYWwgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFjayAoQ2x1dHRlci5BY3RvciBhY3Rvciwg Ym9vbCBleHBhbmQsIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCwgQ2x1dHRlci5Cb3hBbGlnbm1l bnQgeF9hbGlnbiwgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3Rvciwg Q2x1dHRlci5Cb3hBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeV9hbGln bik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19kdXJhdGlv biAodWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vh c2luZ19tb2RlICh1bG9uZyBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9p ZCBzZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIGV4cGFuZCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3Is IGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgdm9pZCBzZXRfaG9tb2dlbmVvdXMgKGJvb2wgaG9tb2dlbmVvdXMpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9vcmllbnRhdGlv biAoQ2x1dHRlci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbik7CisgCQlwdWJsaWMgdm9pZCBzZXRf cGFja19zdGFydCAoYm9vbCBwYWNrX3N0YXJ0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zcGFjaW5n ICh1aW50IHNwYWNpbmcpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91 c2VfYW5pbWF0aW9ucyAoYm9vbCBhbmltYXRlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgdm9pZCBzZXRfdmVydGljYWwgKGJvb2wgdmVydGljYWwpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyB1aW50IGVhc2luZ19kdXJhdGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIHVsb25nIGVhc2luZ19tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGhvbW9nZW5lb3VzIHsgZ2V0 OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRl ci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbiB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgYm9vbCBw YWNrX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1aW50IHNwYWNpbmcgeyBnZXQ7IHNl dDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbmltYXRpb25zIHsg Z2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCB2ZXJ0aWNhbCB7 IGdldDsgc2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JyaWdodG5lc3NfY29udHJhc3RfZWZmZWN0 X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTc0OSw5 ICs1NDA2LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRy YXN0IChmbG9hdCBjb250cmFzdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29udHJhc3RfZnVsbCAo ZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSk7CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJyaWdodG5lc3MgeyBnZXQ7IHNldDsgfQorKwkJ cHVibGljIENsdXR0ZXIuQ29sb3IgYnJpZ2h0bmVzcyB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbnRyYXN0IHsgZ2V0 OyBzZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbnRyYXN0IHsgb3duZWQgZ2V0OyBz ZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCitAQCAtNTc3MCwzNyArNTQy Nyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGlj IGZsb2F0IHk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhaXJvX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGNsYXNzIENhaXJvVGV4dHVyZSA6IENsdXR0ZXIu VGV4dHVyZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29u dGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIENhaXJv VGV4dHVyZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJcHVibGljIHZvaWQgY2xlYXIg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGUgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGVfcmVnaW9u IChpbnQgeF9vZmZzZXQsIGludCB5X29mZnNldCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGdldF9hdXRvX3Jlc2l6 ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zdXJmYWNlX3NpemUgKG91dCB1aW50IHdpZHRoLCBv dXQgdWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IHZvaWQgaW52YWxpZGF0ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIGludmFsaWRhdGVfcmVjdGFuZ2xlIChDYWlyby5SZWN0YW5nbGVJbnQ/IHJlY3Qp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2F1dG9f cmVzaXplIChib29sIHZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9zdXJmYWNlX3NpemUgKHVp bnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyBib29sIGF1dG9fcmVzaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBzdXJmYWNlX3dpZHRoIHsgZ2V0OyBzZXQ7 IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCBDYWlyby5TdXJmYWNlIGNyZWF0ZV9zdXJmYWNlICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg Ym9vbCBkcmF3IChDYWlyby5Db250ZXh0IGNyKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2FudmFzX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFz cyBDYW52YXMgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKK0BAIC01ODI3LDE3ICs1 NDUzLDIwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbnRhaW5l ciBjb250YWluZXIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jbGlja19h Y3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJs aWMgY2xhc3MgQ2xpY2tBY3Rpb24gOiBDbHV0dGVyLkFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIENsaWNrQWN0aW9uICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVpbnQgZ2V0X2J1dHRvbiAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9jb29yZHMg KG91dCBmbG9hdCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCisgCQlwdWJsaWMgQ2x1dHRlci5Nb2RpZmllclR5cGUgZ2V0X3N0YXRlICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgcmVsZWFzZSAo KTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor IAkJcHVibGljIGJvb2wgaGVsZCB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNTg0Niw3ICs1NDc1LDkgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBs b25nX3ByZXNzX3RocmVzaG9sZCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIHByZXNzZWQgeyBn ZXQ7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIGNsaWNrZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgbG9uZ19wcmVzcyAo Q2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Mb25nUHJlc3NTdGF0ZSBzdGF0ZSk7CitAQCAt NTg4OCw4ICs1NTE5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJvdGVjdGVkIENvbnN0 cmFpbnQgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVf YWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3RvckJveCBhbGxvY2F0 aW9uKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9wcmVm ZXJyZWRfc2l6ZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5PcmllbnRhdGlvbiBkaXJl Y3Rpb24sIGZsb2F0IGZvcl9zaXplLCBmbG9hdCBtaW5pbXVtX3NpemUsIGZsb2F0IG5hdHVyYWxf c2l6ZSk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1 dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5PcmllbnRhdGlvbiBkaXJlY3Rpb24sIGZsb2F0IGZv cl9zaXplLCByZWYgZmxvYXQgbWluaW11bV9zaXplLCByZWYgZmxvYXQgbmF0dXJhbF9zaXplKTsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCitAQCAtNTg5OCw2ICs1NTI4LDcgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5JbnB1dERldmljZSBk ZXZpY2U7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudEZsYWdzIGZsYWdzOworIAkJcHVibGljIHdl YWsgQ2x1dHRlci5BY3RvciByZWxhdGVkOworKwkJcHVibGljIHdlYWsgQ2x1dHRlci5FdmVudFNl cXVlbmNlIHNlcXVlbmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciBzb3VyY2U7Cisg CQlwdWJsaWMgd2VhayBDbHV0dGVyLlN0YWdlIHN0YWdlOworIAkJcHVibGljIHVpbnQzMiB0aW1l OworQEAgLTU5MzEsOTggKzU1NjIsMjEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHZvaWQgc2V0X2ZhY3RvciAoZG91YmxlIGZhY3Rvcik7CisgCQlwdWJsaWMgZG91YmxlIGZhY3Rv ciB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RldmljZV9tYW5hZ2VyX2dldF90eXBl ICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNs YXNzIERldmljZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgRGV2aWNlTWFuYWdlciAoKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9kZXZpY2UgKENsdXR0ZXIu SW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIGFwcGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0 aW5ncyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBjb21wcmVzc19t b3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuRXZlbnQgdG9fZGlzY2FyZCk7Cist CQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJbnB1dERldmljZSBjcmVhdGVfdmlydHVh bF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKy0JCXB1Ymxp YyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfY29yZV9kZXZpY2UgKENs dXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgdmly dHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2RldmljZSAoaW50IGRldmljZV9p ZCk7CistCQlwdWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTEx eVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbERl dmljZVR5cGUgZ2V0X3N1cHBvcnRlZF92aXJ0dWFsX2RldmljZV90eXBlcyAoKTsKKy0JCXB1Ymxp YyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gbGlzdF9kZXZpY2VzICgpOwor LQkJcHVibGljIHVub3duZWQgR0xpYi5TTGlzdDxDbHV0dGVyLklucHV0RGV2aWNlPiBwZWVrX2Rl dmljZXMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCByZW1vdmVf ZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBzZWxlY3Rfc3RhZ2VfZXZlbnRzIChDbHV0dGVyLlN0YWdlIHN0 YWdlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRB MTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg Q2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVi bGljIHNpZ25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2Up OworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0dGVyLklucHV0RGV2 aWNlIGRldmljZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3NfY2hhbmdl ZCAodWludCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOworLQkJcHVibGljIHNp Z25hbCB2b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVkX21hc2ss IHVpbnQgbG9ja2VkX21hc2spOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAo Q2x1dHRlci5JbnB1dERldmljZSBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfZHJhZ19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgRHJhZ0FjdGlvbiA6IENsdXR0ZXIuQWN0 aW9uIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0g IkNsdXR0ZXJBY3Rpb24qIildCistCQlwdWJsaWMgRHJhZ0FjdGlvbiAoKTsKKy0JCXB1YmxpYyBi b29sIGdldF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVjdCBkcmFnX2FyZWEpOworLQkJcHVibGljIENs dXR0ZXIuRHJhZ0F4aXMgZ2V0X2RyYWdfYXhpcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X2RyYWdfaGFuZGxlICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2RyYWdfdGhy ZXNob2xkIChvdXQgdWludCB4X3RocmVzaG9sZCwgb3V0IHVpbnQgeV90aHJlc2hvbGQpOworLQkJ cHVibGljIHZvaWQgZ2V0X21vdGlvbl9jb29yZHMgKG91dCBmbG9hdCBtb3Rpb25feCwgb3V0IGZs b2F0IG1vdGlvbl95KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9wcmVzc19jb29yZHMgKG91dCBmbG9h dCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19h cmVhIChDbHV0dGVyLlJlY3Q/IGRyYWdfYXJlYSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19h eGlzIChDbHV0dGVyLkRyYWdBeGlzIGF4aXMpOworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfaGFu ZGxlIChDbHV0dGVyLkFjdG9yPyBoYW5kbGUpOworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfdGhy ZXNob2xkIChpbnQgeF90aHJlc2hvbGQsIGludCB5X3RocmVzaG9sZCk7CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRl ci5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBkcmFnX2Fy ZWFfc2V0IHsgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5EcmFnQXhpcyBkcmFnX2F4aXMgeyBn ZXQ7IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuQWN0b3IgZHJhZ19oYW5kbGUgeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHhfZHJhZ190aHJlc2hv bGQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHlf ZHJhZ190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgZHJhZ19iZWdpbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQg ZXZlbnRfeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsKKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIGRyYWdfZW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVu dF94LCBmbG9hdCBldmVudF95LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RpZmllcnMpOworLQkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJhZ19tb3Rpb24gKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIGZsb2F0IGRlbHRhX3gsIGZsb2F0IGRlbHRhX3kpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGRyYWdfcHJvZ3Jlc3MgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGRlbHRhX3gsIGZsb2F0IGRlbHRhX3kpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9kcm9wX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCXB1YmxpYyBjbGFzcyBEcm9wQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24gewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRl ckFjdGlvbioiKV0KKy0JCXB1YmxpYyBEcm9wQWN0aW9uICgpOworLQkJcHVibGljIHZpcnR1YWwg c2lnbmFsIGJvb2wgY2FuX2Ryb3AgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gs IGZsb2F0IGV2ZW50X3kpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJvcCAoQ2x1 dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGRyb3BfY2FuY2Vs IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBmbG9hdCBldmVudF95KTsKKy0J CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIG92ZXJfaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgb3Zlcl9vdXQgKENsdXR0ZXIuQWN0b3Ig YWN0b3IpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRWZmZWN0IDogQ2x1 dHRlci5BY3Rvck1ldGEgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorIAkJcHJvdGVjdGVkIEVmZmVjdCAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCBib29sIGdldF9wYWludF92b2x1bWUgKENsdXR0ZXIuUGFpbnRWb2x1bWUgdm9sdW1l KTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgbW9kaWZ5X3BhaW50X3ZvbHVtZSAoQ2x1dHRlci5Q YWludFZvbHVtZSB2b2x1bWUpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgcGFpbnQgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmly dHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0LCBDbHV0 dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQp OworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoKTsK KysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQg cGFpbnRfY29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBw cmVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYWludCAoQ2x1dHRlci5Q YWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZXBhaW50ICgpOworIAl9CitAQCAtNjAzMyw4ICs1NTg3 LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50VHlwZSB0 eXBlOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVi bGljIEV2ZW50IChDbHV0dGVyLkV2ZW50VHlwZSB0eXBlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE4IildCisrCQlwdWJsaWMgc3RhdGljIHVpbnQgYWRkX2ZpbHRlciAoQ2x1dHRlci5TdGFn ZT8gc3RhZ2UsIFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDIuMiwgZGVzdHJveV9ub3Rp ZnlfcG9zID0gMi4xKV0gb3duZWQgQ2x1dHRlci5FdmVudEZpbHRlckZ1bmMgZnVuYyk7CisgCQlw dWJsaWMgQ2x1dHRlci5FdmVudCBjb3B5ICgpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5FdmVu dCBAZ2V0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBkb3Vi bGUgZ2V0X2FuZ2xlIChDbHV0dGVyLkV2ZW50IHRhcmdldCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCitAQCAtNjA3Myw3ICs1NjMxLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHVpbnQgZ2V0X21vZGVfZ3JvdXAgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcGFkX2V2 ZW50X2RldGFpbHMgKG91dCB1aW50IG51bWJlciwgb3V0IHVpbnQgbW9kZSwgb3V0IGRvdWJsZSB2 YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X3Bvc2l0aW9uIChDbHV0dGVyLlBvaW50IHBvc2l0aW9uKTsKKysJCXB1YmxpYyB2b2lkIGdldF9w b3NpdGlvbiAoR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcmVsYXRlZCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNjEwNiw4ICs1NjY0LDEyIEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGhhc19zaGlmdF9tb2RpZmllciAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBpc19wb2ludGVy X2VtdWxhdGVkICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorKwkJcHVibGljIHN0 YXRpYyB1bm93bmVkIENsdXR0ZXIuRXZlbnQgcGVlayAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHB1dCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE4IildCisrCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2ZpbHRlciAodWludCBpZCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYnV0dG9uICh1 aW50MzIgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC02MTQwLDE2 ICs1NzAyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3N0YXRl IChDbHV0dGVyLk1vZGlmaWVyVHlwZSBzdGF0ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGltZSAodWludDMyIHRpbWVfKTsKKy0JCXB1YmxpYyBD bHV0dGVyLkFueUV2ZW50IGFueSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckFueUV2ZW50ICop IildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkJ1dHRvbkV2ZW50IGJ1dHRvbiB7W0NDb2Rl IChjbmFtZSA9ICIoQ2x1dHRlckJ1dHRvbkV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBD bHV0dGVyLkNyb3NzaW5nRXZlbnQgY3Jvc3Npbmcge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJD cm9zc2luZ0V2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLktleUV2ZW50IGtl eSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlcktleUV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1 YmxpYyBDbHV0dGVyLk1vdGlvbkV2ZW50IG1vdGlvbiB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRl ck1vdGlvbkV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlNjcm9sbEV2ZW50 IHNjcm9sbCB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclNjcm9sbEV2ZW50ICopIildICBnZXQ7 IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlN0YWdlU3RhdGVFdmVudCBzdGFnZV9zdGF0ZSB7W0NDb2Rl IChjbmFtZSA9ICIoQ2x1dHRlclN0YWdlU3RhdGVFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJs aWMgQ2x1dHRlci5Ub3VjaEV2ZW50IHRvdWNoIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91 Y2hFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Ub3VjaHBhZFBpbmNoRXZl bnQgdG91Y2hwYWRfcGluY2gge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBhZFBpbmNo RXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVG91Y2hwYWRTd2lwZUV2ZW50 IHRvdWNocGFkX3N3aXBlIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hwYWRTd2lwZUV2 ZW50ICopIildICBnZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVu Y3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2V2ZW50X3NlcXVlbmNl X2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTYxOTgsMTAgKzU3NTAsMjQgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJCXB1Ymxp YyBib29sIHNuYXBfdG9fZ3JpZCB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZyYW1l X2Nsb2NrX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBGcmFtZUNsb2NrIDogR0xpYi5P YmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJ cHVibGljIEZyYW1lQ2xvY2sgKGZsb2F0IHJlZnJlc2hfcmF0ZSwgQ2x1dHRlci5GcmFtZUxpc3Rl bmVySWZhY2UgaWZhY2UsIHZvaWQqIHVzZXJfZGF0YSk7CisrCQlwdWJsaWMgdm9pZCBhZGRfdGlt ZWxpbmUgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUpOworKwkJcHVibGljIGZsb2F0IGdldF9y ZWZyZXNoX3JhdGUgKCk7CisrCQlwdWJsaWMgdm9pZCBpbmhpYml0ICgpOworKwkJcHVibGljIHZv aWQgcmVtb3ZlX3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKysJCXB1Ymxp YyB2b2lkIHNjaGVkdWxlX3VwZGF0ZSAoKTsKKysJCXB1YmxpYyB2b2lkIHNjaGVkdWxlX3VwZGF0 ZV9ub3cgKCk7CisrCQlwdWJsaWMgdm9pZCB1bmluaGliaXQgKCk7CisrCQlbSGFzRW1pdHRlcl0K KysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXN0cm95ICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZXN0 dXJlX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisg CXB1YmxpYyBjbGFzcyBHZXN0dXJlQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioi KV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBHZXN0dXJlQWN0aW9u ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIGNhbmNl bCAoKTsKK0BAIC02MjExLDYgKzU3NzcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZpY2UgKHVpbnQgcG9pbnQpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu RXZlbnQgZ2V0X2xhc3RfZXZlbnQgKHVpbnQgcG9pbnQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAkJcHVibGljIHZvaWQgZ2V0X21vdGlvbl9jb29yZHMgKHVpbnQgcG9pbnQsIG91 dCBmbG9hdCBtb3Rpb25feCwgb3V0IGZsb2F0IG1vdGlvbl95KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X21vdGlvbl9kZWx0YSAodWludCBwb2lu dCwgb3V0IGZsb2F0IGRlbHRhX3gsIG91dCBmbG9hdCBkZWx0YV95KTsKK0BAIC02MjE4LDcgKzU3 ODUsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBnZXRfbl9jdXJyZW50 X3BvaW50cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgaW50 IGdldF9uX3RvdWNoX3BvaW50cyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJ CXB1YmxpYyB2b2lkIGdldF9wcmVzc19jb29yZHMgKHVpbnQgcG9pbnQsIG91dCBmbG9hdCBwcmVz c194LCBvdXQgZmxvYXQgcHJlc3NfeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisg CQlwdWJsaWMgdm9pZCBnZXRfcmVsZWFzZV9jb29yZHMgKHVpbnQgcG9pbnQsIG91dCBmbG9hdCBy ZWxlYXNlX3gsIG91dCBmbG9hdCByZWxlYXNlX3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRXZlbnRTZXF1ZW5jZSBnZXRfc2VxdWVu Y2UgKHVpbnQgcG9pbnQpOworQEAgLTYyNDYsOSArNTgxNSwxMyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgZmxvYXQgdGhyZXNob2xkX3RyaWdnZXJfZGlzdGFuY2VfeSB7IGdldDsg Y29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAkJcHVibGljIENs dXR0ZXIuR2VzdHVyZVRyaWdnZXJFZGdlIHRocmVzaG9sZF90cmlnZ2VyX2VkZ2UgeyBnZXQ7IGNv bnN0cnVjdDsgfQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIGJvb2wgZ2VzdHVyZV9iZWdpbiAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBn ZXN0dXJlX2NhbmNlbCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBnZXN0dXJlX2VuZCAoQ2x1 dHRlci5BY3RvciBhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgYm9vbCBnZXN0dXJlX3Byb2dyZXNzIChDbHV0dGVyLkFjdG9yIGFj dG9yKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ3JpZF9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KK0BAIC02 Mjc4LDE5ICs1ODUxLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgcm93 X2hvbW9nZW5lb3VzIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1aW50IHJvd19zcGFjaW5nIHsg Z2V0OyBzZXQ7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgR3JvdXAgOiBDbHV0dGVyLkFj dG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWlu ZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIEdyb3Vw ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fY2hpbGRyZW4gKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRf bnRoX2NoaWxkIChpbnQgaW5kZXhfKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfYWxsICgp OworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9pbWFnZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgSW1hZ2UgOiBHTGliLk9iamVjdCwgQ2x1dHRl ci5Db250ZW50IHsKK0BAIC02MzA2LDYgKzU4NjYsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CXB1YmxpYyBjbGFzcyBJbnB1dERldmljZSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBJbnB1dERldmljZSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X2FjdG9yIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW5w dXREZXZpY2UgZ2V0X2Fzc29jaWF0ZWRfZGV2aWNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorQEAgLTYzMTMsNyArNTg3NSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9heGlzX3ZhbHVlIChb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZG91YmxlW10gYXhlcywgQ2x1dHRlci5JbnB1 dEF4aXMgYXhpcywgb3V0IGRvdWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBz ZXF1ZW5jZSwgQ2x1dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfY29vcmRz IChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBHcmFwaGVuZS5Qb2ludCBwb2ludCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgaW50IGdldF9kZXZpY2Vf aWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjMyNSwxMiArNTg4Nyw5 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlVHlw ZSBnZXRfZGV2aWNlX3R5cGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlw dWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9n ZXRfaW5wdXRfZGV2aWNlX2Zvcl9pZCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9mb3JfaWQgKGludCBpZF8pOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QWN0b3IgZ2V0X2dyYWJiZWRfYWN0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9ncm91cF9uX21v ZGVzIChpbnQgZ3JvdXApOworKwkJcHVibGljIHZpcnR1YWwgaW50IGdldF9ncm91cF9uX21vZGVz IChpbnQgZ3JvdXApOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJv b2wgZ2V0X2hhc19jdXJzb3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAt NjM0NiwyMyArNTkwNSwyMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgaW50IGdl dF9uX21vZGVfZ3JvdXBzICgpOworIAkJcHVibGljIGludCBnZXRfbl9yaW5ncyAoKTsKKyAJCXB1 YmxpYyBpbnQgZ2V0X25fc3RyaXBzICgpOworLQkJcHVibGljIGJvb2wgZ2V0X3BoeXNpY2FsX3Np emUgKGRvdWJsZSB3aWR0aCwgZG91YmxlIGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9wb2ludGVyX2FjdG9y ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5TdGFnZSBnZXRfcG9pbnRlcl9zdGFnZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Byb2R1Y3RfaWQgKCk7CisrCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmlj ZT4gZ2V0X3NsYXZlX2RldmljZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQor IAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF92ZW5kb3JfaWQgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZ3JhYiAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CistCQlwdWJsaWMgYm9vbCBpc19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVy X2RldmljZSk7CistCQlwdWJsaWMgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3Jv dXAsIHVpbnQgYnV0dG9uKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1 dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZpY2UpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBp c19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1 aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZfa2V5Y29kZSk7CisrCQlwdWJsaWMgdmly dHVhbCBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwgdWludCBl dmRldl9rZXljb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIHNlcXVlbmNlX2dldF9ncmFiYmVkX2FjdG9yIChDbHV0dGVy LkV2ZW50U2VxdWVuY2Ugc2VxdWVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K K0BAIC02Mzc4LDEyICs1OTM1LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2 b2lkIHVuZ3JhYiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2 b2lkIHVwZGF0ZV9mcm9tX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIHVwZGF0ZV9z dGFnZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfZnJv bV90b29sIChDbHV0dGVyLklucHV0RGV2aWNlVG9vbCB0b29sKTsKKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuQmFj a2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRGV2 aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlw dWJsaWMgQ2x1dHRlci5JbnB1dE1vZGUgZGV2aWNlX21vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQor IAkJcHVibGljIHN0cmluZyBkZXZpY2Vfbm9kZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAtNjQwNiw2ICs1OTYyLDcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIHN0cmluZyBuYW1lIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHByb2R1Y3Rf aWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMg c3RyaW5nIHZlbmRvcl9pZCB7IGdldDsgY29uc3RydWN0OyB9CisgCX0KK0BAIC02NDMwLDcgKzU5 ODcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZp cnR1YWwgdm9pZCBjb21taXRfdGV4dCAoc3RyaW5nIHRleHQpOworIAkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50IG9mZnNldCwgdWlu dCBsZW4pOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBkZWxldGVfc3Vycm91bmRpbmcgKGludCBv ZmZzZXQsIHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBib29sIGZpbHRlcl9rZXlfZXZlbnQgKENsdXR0 ZXIuS2V5RXZlbnQga2V5KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lk IGZvY3VzX2luIChDbHV0dGVyLklucHV0TWV0aG9kIGlucHV0X21ldGhvZCk7CitAQCAtNjQ0Myw3 ICs2MDAwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2Nhbl9z aG93X3ByZWVkaXQgKGJvb2wgY2FuX3Nob3dfcHJlZWRpdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRf Y29udGVudF9oaW50cyAoQ2x1dHRlci5JbnB1dENvbnRlbnRIaW50RmxhZ3MgaGludCk7CisgCQlw dWJsaWMgdm9pZCBzZXRfY29udGVudF9wdXJwb3NlIChDbHV0dGVyLklucHV0Q29udGVudFB1cnBv c2UgcHVycG9zZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChDbHV0dGVy LlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChHcmFwaGVu ZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X3BhbmVsX3N0YXRlIChDbHV0 dGVyLklucHV0UGFuZWxTdGF0ZSBzdGF0ZSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZp cnR1YWwgdm9pZCBzZXRfcHJlZWRpdF90ZXh0IChzdHJpbmcgcHJlZWRpdCwgdWludCBjdXJzb3Ip OworQEAgLTY0NjIsNyArNjAxOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlc2V0ICgpOworIAkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJl Y3QpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChHcmFwaGVu ZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X3BhbmVsX3N0YXRlIChDbHV0 dGVyLklucHV0UGFuZWxTdGF0ZSBzdGF0ZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfcHJlZWRpdF90 ZXh0IChzdHJpbmc/IHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKKyAJCVtOb1dyYXBwZXJdCitAQCAt NjQ3OSw5ICs2MDM2LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIu SW5wdXRDb250ZW50UHVycG9zZSBjb250ZW50X3B1cnBvc2UgeyBnZXQ7IHNldDsgfQorIAkJW0hh c0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29tbWl0IChzdHJpbmcgdGV4dCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2xvY2F0aW9uX2NoYW5nZWQgKENsdXR0ZXIuUmVj dCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2Vk IChHcmFwaGVuZS5SZWN0IG9iamVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBkZWxldGVfc3Vycm91bmRpbmcgKHVpbnQgb2Zmc2V0LCB1aW50IGxlbik7CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nIChpbnQgb2Zmc2V0LCB1aW50IGxl bik7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5w dXRQYW5lbFN0YXRlIG9iamVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwg dm9pZCByZXF1ZXN0X3N1cnJvdW5kaW5nICgpOworQEAgLTY1NTUsMjggKzYxMTIsMjggQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorIAkJcHJvdGVjdGVkIEtleW1hcCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0 X2NhcHNfbG9ja19zdGF0ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIFBhbmdvLkRpcmVjdGlvbiBn ZXRfZGlyZWN0aW9uICgpOworIAkJcHVibGljIHZpcnR1YWwgYm9vbCBnZXRfbnVtX2xvY2tfc3Rh dGUgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhdGVfY2hhbmdlZCAoKTsKKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfbGF5ZXJfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgTGF5ZXJO b2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBMYXll ck5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24sIENhaXJvLlJlY3RhbmdsZSB2aWV3cG9ydCwg ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgdWludDggb3BhY2l0eSk7CisrCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2xheW91dF9tYW5hZ2VyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIExheW91dE1hbmFnZXIgOiBHTGliLkluaXRp YWxseVVub3duZWQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHJvdGVjdGVkIExheW91dE1hbmFnZXIgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2b2lk IGFsbG9jYXRlIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3JCb3gg YWxsb2NhdGlvbiwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5BbHBoYSBiZWdpbl9hbmlt YXRpb24gKHVpbnQgZHVyYXRpb24sIHVsb25nIG1vZGUpOworKwkJcHVibGljIHZpcnR1YWwgdm9p ZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yQm94 IGFsbG9jYXRpb24pOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkNvbnRhaW5l ciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBj aGlsZF9nZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5B Y3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJ cHVibGljIHZvaWQgY2hpbGRfc2V0IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0 ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9zZXRfcHJvcGVydHkg KENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5n IHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNZXRhIGNyZWF0ZV9jaGlsZF9tZXRh IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5kX2FuaW1hdGlvbiAoKTsK KyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRfcHJvcGVydHkgKHN0 cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCBkb3VibGUg Z2V0X2FuaW1hdGlvbl9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1 dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtOb1dy YXBwZXJdCitAQCAtNjYzMiwxMiArNjE4OSwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw cm90ZWN0ZWQgT2Zmc2NyZWVuRWZmZWN0ICgpOworIAkJcHVibGljIHZpcnR1YWwgQ29nbC5IYW5k bGUgY3JlYXRlX3RleHR1cmUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBib29sIGdldF90YXJnZXRfcmVjdCAob3V0 IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIGJvb2wgZ2V0X3RhcmdldF9y ZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjgiKV0K KyAJCXB1YmxpYyBib29sIGdldF90YXJnZXRfc2l6ZSAob3V0IGZsb2F0IHdpZHRoLCBvdXQgZmxv YXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5v d25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg cGFpbnRfdGFyZ2V0ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF90YXJnZXQgKENs dXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWdl X3R1cm5fZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K K0BAIC02NjU0LDYgKzYyMTEsMTcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGRv dWJsZSBwZXJpb2QgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGZsb2F0IHJhZGl1cyB7IGdldDsg c2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgcmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF9yZWYiLCB0eXBlX2lk ID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0g ImNsdXR0ZXJfcGFpbnRfY29udGV4dF91bnJlZiIpXQorKwlbQ29tcGFjdF0KKysJcHVibGljIGNs YXNzIFBhaW50Q29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworKwkJcHVibGlj IHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMg dW5vd25lZCBDYWlyby5SZWdpb24gZ2V0X3JlZHJhd19jbGlwICgpOworKwkJcHVibGljIHZvaWQg cG9wX2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcHVzaF9mcmFtZWJ1ZmZlciAoQ29n bC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBh aW50Q29udGV4dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3BhaW50X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFBhaW50Tm9kZSB7CitAQCAtNjY2Myw3ICs2 MjMxLDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgYWRkX211bHRpdGV4 dHVyZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgdGV4dF9jb29yZHMs IHVpbnQgdGV4dF9jb29yZHNfbGVuKTsKKyAJCXB1YmxpYyB2b2lkIGFkZF9yZWN0YW5nbGUgKENs dXR0ZXIuQWN0b3JCb3ggcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBhZGRfdGV4dHVyZV9yZWN0YW5n bGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhf MiwgZmxvYXQgeV8yKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHVub3du ZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBw YWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLlBhaW50Tm9kZSBAcmVmICgpOworIAkJcHVibGljIHZvaWQgc2V0X25hbWUg KHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVmICgpOworQEAgLTY2ODEsNyArNjI1 MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K KyAJCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGdldF9vcmlnaW4gKCk7CisrCQlwdWJsaWMg dm9pZCBnZXRfb3JpZ2luIChvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY2OTEsNyArNjI2MCw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9oZWlnaHQgKGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCistCQlwdWJsaWMgdm9pZCBzZXRfb3JpZ2luIChDbHV0dGVyLlZlcnRleCBvcmlnaW4p OworKwkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoR3JhcGhlbmUuUG9pbnQzRCBvcmlnaW4pOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3dpZHRoIChm bG9hdCB3aWR0aCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjc3OCw4OCAr NjM0NywyOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5QYXRoIHBh dGggeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIG5vZGVfcmVhY2hlZCAoQ2x1 dHRlci5BY3RvciBhY3RvciwgdWludCBpbmRleCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGlj a19jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfZ2V0X3R5cGUg KCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF91bnJlZiIpXQorKwlb Q29tcGFjdF0KKysJcHVibGljIGNsYXNzIFBpY2tDb250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRl c3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBpY2tDb250ZXh0IEByZWYgKCk7 CisrCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlwZWxpbmVfbm9k ZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMg Y2xhc3MgUGlwZWxpbmVOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFBpcGVsaW5lTm9kZSAo KTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hl ZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50X2dldF90eXBlICgpIildCistCVtDb21w YWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgUG9pbnQg eworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBzdGF0 aWMgQ2x1dHRlci5Qb2ludCBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IGNvcHkg KCk7CistCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKENsdXR0ZXIuUG9pbnQgYiwgb3V0IGZsb2F0 IHhfZGlzdGFuY2UsIG91dCBmbG9hdCB5X2Rpc3RhbmNlKTsKKy0JCXB1YmxpYyBib29sIGVxdWFs cyAoQ2x1dHRlci5Qb2ludCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLlBvaW50IGluaXQgKGZsb2F0IHgsIGZsb2F0IHkpOworLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUG9pbnQgemVybyAoKTsKKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf cHJvcGVydHlfdHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUHJvcGVydHlUcmFuc2l0aW9uIDogQ2x1dHRlci5UcmFu c2l0aW9uLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclRyYW5zaXRpb24qIildCisgCQlwdWJsaWMg UHJvcGVydHlUcmFuc2l0aW9uIChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworKwkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclRyYW5zaXRpb24q IildCisrCQlwdWJsaWMgUHJvcGVydHlUcmFuc2l0aW9uLmZvcl9hY3RvciAoQ2x1dHRlci5BY3Rv ciBhY3Rvciwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wcm9wZXJ0eV9uYW1l IChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJcHVibGljIHN0cmluZyBwcm9wZXJ0eV9uYW1l IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlY3RfZ2V0X3R5cGUgKCki KV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBj bGFzcyBSZWN0IHsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuUG9pbnQgb3JpZ2luOworLQkJcHVi bGljIHdlYWsgQ2x1dHRlci5TaXplIHNpemU7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuUmVj dCBhbGxvYyAoKTsKKy0JCXB1YmxpYyB2b2lkIGNsYW1wX3RvX3BpeGVsICgpOworLQkJcHVibGlj IGJvb2wgY29udGFpbnNfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJcHVibGljIGJv b2wgY29udGFpbnNfcmVjdCAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVibGljIENsdXR0ZXIuUmVj dCBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVyLlJlY3QgYik7CistCQlw dWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2NlbnRlciAoQ2x1dHRlci5Q b2ludCBjZW50ZXIpOworLQkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMg ZmxvYXQgZ2V0X3dpZHRoICgpOworLQkJcHVibGljIGZsb2F0IGdldF94ICgpOworLQkJcHVibGlj IGZsb2F0IGdldF95ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5SZWN0IGluaXQgKGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworLQkJcHVibGljIHZv aWQgaW5zZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1YmxpYyBib29sIGludGVyc2Vj dGlvbiAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdD8gcmVzKTsKKy0JCXB1YmxpYyBDbHV0 dGVyLlJlY3Qgbm9ybWFsaXplICgpOworLQkJcHVibGljIHZvaWQgb2Zmc2V0IChmbG9hdCBkX3gs IGZsb2F0IGRfeSk7CistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc194LCBmbG9hdCBzX3kp OworLQkJcHVibGljIHZvaWQgdW5pb24gKENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3QgcmVz KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlJlY3QgemVybyAoKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFJlY3RhbmdsZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5J bXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgUmVjdGFuZ2xlICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9ib3JkZXJfY29s b3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2JvcmRlcl93aWR0 aCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2JvcmRlcl9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvcmRlcl93aWR0aCAodWludCB3aWR0 aCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgUmVjdGFuZ2xlLndpdGhfY29sb3IgKENsdXR0ZXIu Q29sb3IgY29sb3IpOworLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgYm9yZGVyX2NvbG9yIHsgZ2V0 OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IGJvcmRlcl93aWR0aCB7IGdldDsgc2V0OyB9CistCQlw dWJsaWMgQ2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBib29sIGhhc19ib3JkZXIgeyBnZXQ7IHNldDsgfQorKwkJcHVibGlj IHZvaWQgc2V0X3Byb3BlcnR5X25hbWUgKHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CisrCQlwdWJs aWMgc3RyaW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7IHNldDsgfQorIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9y b290X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFJvb3ROb2RlIDogQ2x1dHRl ci5QYWludE5vZGUgeworQEAgLTY4ODAsMTUgKzYzOTAsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIFNjcmlwdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJ CXB1YmxpYyB2b2lkIGFkZF9zZWFyY2hfcGF0aHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1l ID0gIm5fcGF0aHMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS4xLCBhcnJheV9sZW5ndGhfdHlwZSA9 ICJnc2l6ZSIpXSBzdHJpbmdbXSBwYXRocyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IHZvaWQgYWRkX3N0YXRlcyAoc3RyaW5nPyBuYW1lLCBDbHV0dGVyLlN0YXRlIHN0YXRlKTsKKyAJ CXB1YmxpYyB2b2lkIGNvbm5lY3Rfc2lnbmFscyAodm9pZCogdXNlcl9kYXRhKTsKKyAJCXB1Ymxp YyB2b2lkIGNvbm5lY3Rfc2lnbmFsc19mdWxsIChDbHV0dGVyLlNjcmlwdENvbm5lY3RGdW5jIGZ1 bmMpOworIAkJcHVibGljIHZvaWQgZW5zdXJlX29iamVjdHMgKCk7CisgCQlwdWJsaWMgdW5vd25l ZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0IChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgaW50IGdl dF9vYmplY3RzICguLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuU3RhdGUgZ2V0X3N0YXRlcyAoc3RyaW5nPyBuYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RyYW5zbGF0aW9uX2Rv bWFpbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIEdMaWIuVHlwZSBnZXRfdHlwZV9mcm9tX25hbWUg KHN0cmluZyB0eXBlX25hbWUpOworQEAgLTY5MTYsOCArNjQyMiw4IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0g IkNsdXR0ZXJBY3RvcioiKV0KKyAJCXB1YmxpYyBTY3JvbGxBY3RvciAoKTsKKyAJCXB1YmxpYyBD bHV0dGVyLlNjcm9sbE1vZGUgZ2V0X3Njcm9sbF9tb2RlICgpOworLQkJcHVibGljIHZvaWQgc2Ny b2xsX3RvX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9s bF90b19yZWN0IChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9f cG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19y ZWN0IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X3Njcm9sbF9tb2Rl IChDbHV0dGVyLlNjcm9sbE1vZGUgbW9kZSk7CisgCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2Rl IHNjcm9sbF9tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJfQorQEAgLTY5MzksNiArNjQ0NSw0NyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5 OworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9zZWF0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBTZWF0IDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNlYXQgKCk7CisrCQlbTm9XcmFwcGVyXQor KwkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5L YmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBiZWxsX25v dGlmeSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVy LkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworKwkJW05vV3JhcHBlcl0K KysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29weV9ldmVudF9kYXRhIChDbHV0dGVyLkV2ZW50IHNy YywgQ2x1dHRlci5FdmVudCBkZXN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVh bElucHV0RGV2aWNlIGNyZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5 cGUgZGV2aWNlX3R5cGUpOworKwkJcHVibGljIHZvaWQgZW5zdXJlX2ExMXlfc3RhdGUgKCk7Cisr CQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBmcmVlX2V2ZW50X2RhdGEgKENs dXR0ZXIuRXZlbnQgZXZlbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdz IChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB1 bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2tleWJvYXJkICgpOworKwkJcHVibGljIHZp cnR1YWwgdW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworKwkJcHVibGljIHZp cnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9wb2ludGVyICgpOworKwkJcHVi bGljIHZvaWQgZ2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNl dHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyBib29sIGdldF90b3VjaF9tb2RlICgpOworKwkJ cHVibGljIHZvaWQgaW5oaWJpdF91bmZvY3VzICgpOworKwkJcHVibGljIGJvb2wgaXNfdW5mb2N1 c19pbmhpYml0ZWQgKCk7CisrCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERl dmljZT4gbGlzdF9kZXZpY2VzICgpOworKwkJcHVibGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRp bmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2Vs bENsaWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlf c2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJs aWMgdm9pZCB1bmluaGliaXRfdW5mb2N1cyAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgd2Fy cF9wb2ludGVyIChpbnQgeCwgaW50IHkpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJs aWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJ cHVibGljIGJvb2wgdG91Y2hfbW9kZSB7IGdldDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGRl dmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25h bCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCk7CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgaXNfdW5mb2N1c19pbmhpYml0ZWRfY2hhbmdlZCAoKTsKKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9mbGFnc19jaGFuZ2VkICh1aW50IHNldHRpbmdzX2Zs YWdzLCB1aW50IGNoYW5nZWRfbWFzayk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlf bW9kc19zdGF0ZV9jaGFuZ2VkICh1aW50IGxhdGNoZWRfbWFzaywgdWludCBsb2NrZWRfbWFzayk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9jaGFuZ2Vk IChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJs aWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdGFydGVkIChDbHV0dGVyLklucHV0RGV2 aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSwg dWludCBkZWxheSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdG9w cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVv dXRUeXBlIHRpbWVvdXRfdHlwZSwgYm9vbCBjbGlja2VkKTsKKysJCXB1YmxpYyBzaWduYWwgdm9p ZCB0b29sX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0 RGV2aWNlVG9vbCBwMCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NldHRpbmdzX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIFNldHRpbmdzIDog R0xpYi5PYmplY3QgeworQEAgLTcwMTEsMTggKzY1NTgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0 ZWQgU2hhZGVyTWF0cml4ICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9m dW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2l6ZV9nZXRfdHlw ZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVi bGljIGNsYXNzIFNpemUgeworLQkJcHVibGljIGZsb2F0IGhlaWdodDsKKy0JCXB1YmxpYyBmbG9h dCB3aWR0aDsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5TaXplIGFsbG9jICgpOworLQkJcHVi bGljIENsdXR0ZXIuU2l6ZSBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVy LlNpemUgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5TaXplIGluaXQgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9zbmFwX2NvbnN0cmFpbnRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAlwdWJsaWMgY2xhc3MgU25hcENvbnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0cmFp bnQgeworQEAgLTcwNDMsMTM1ICs2NTc4LDY2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfc3RhZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAu MiIpXQorLQlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLkdyb3VwLCBBdGsuSW1wbGVtZW50 b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0 YWJsZSB7CisrCXB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1l bnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3Jp cHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1 YmxpYyBTdGFnZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhcHR1cmUgKGJvb2wgcGFpbnQsIENhaXJv LlJlY3RhbmdsZUludCByZWN0LCBDbHV0dGVyLkNhcHR1cmUgY2FwdHVyZXMsIGludCBuX2NhcHR1 cmVzKTsKKyAJCXB1YmxpYyB2b2lkIGNhcHR1cmVfaW50byAoYm9vbCBwYWludCwgQ2Fpcm8uUmVj dGFuZ2xlSW50IHJlY3QsIHVpbnQ4IGRhdGEpOworKwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2Vf dmlld3MgKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfc3RhZ2VfZXZlbnQiKV0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBib29sIGVtaXRfZXZlbnQgKENs dXR0ZXIuRXZlbnQgZXZlbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBzaW5j ZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGVuc3VyZV9jdXJyZW50ICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZW5zdXJlX3JlZHJhdyAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGVuc3VyZV92aWV3cG9y dCAoKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWV6ZV91cGRhdGVzICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2FjY2VwdF9mb2N1cyAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0X3BvcyAoQ2x1dHRlci5QaWNr TW9kZSBwaWNrX21vZGUsIGludCB4LCBpbnQgeSk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUgcGlja19tb2RlLCBmbG9h dCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBib29sIGdldF9jYXB0dXJlX2ZpbmFsX3NpemUgKENh aXJvLlJlY3RhbmdsZUludCByZWN0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGZsb2F0IHNjYWxl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X2RlZmF1bHQgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGdldF9mb2cgKCk7CisgCQlwdWJsaWMg aW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgYm9vbCBnZXRfZnVsbHNjcmVlbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2tleV9mb2N1cyAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9taW5p bXVtX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X21vdGlvbl9ldmVudHNfZW5hYmxl ZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9u b19jbGVhcl9oaW50ICgpOworIAkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgZ2V0X3BlcnNw ZWN0aXZlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENhaXJv LlJlY3RhbmdsZUludCBnZXRfcmVkcmF3X2NsaXBfYm91bmRzICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3Rocm90dGxlX21vdGlvbl9ldmVudHMg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X3RpdGxlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGlj IGJvb2wgZ2V0X3VzZV9hbHBoYSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9v bCBnZXRfdXNlX2ZvZyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1Ymxp YyBib29sIGdldF91c2VyX3Jlc2l6YWJsZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKy0JCXB1YmxpYyB2b2lkIGhpZGVfY3Vyc29yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0J CXB1YmxpYyBib29sIGlzX2RlZmF1bHQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGlj IHZvaWQgcXVldWVfcmVkcmF3ICgpOworKwkJcHVibGljIGJvb2wgcGFpbnRfdG9fYnVmZmVyIChD YWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgZmxvYXQgc2NhbGUsIHVpbnQ4IGRhdGEsIGludCBzdHJp ZGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDbHV0dGVyLlBhaW50RmxhZyBwYWludF9mbGFn cykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCBwYWludF90b19mcmFtZWJ1ZmZl ciAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3Qs IGZsb2F0IHNjYWxlLCBDbHV0dGVyLlBhaW50RmxhZyBwYWludF9mbGFncyk7CisgCQlbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKyAJCXB1YmxpYyB1aW50OFtdIHJlYWRfcGl4ZWxzIChp bnQgeCwgaW50IHksIGludCB3aWR0aCA9IC0xLCBpbnQgaGVpZ2h0ID0gLTEpOworLQkJW0NDb2Rl IChjbmFtZSA9ICJjbHV0dGVyX3JlZHJhdyIpXQorLQkJcHVibGljIHZvaWQgcmVkcmF3ICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FjY2VwdF9m b2N1cyAoYm9vbCBhY2NlcHRfZm9jdXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAo Q2x1dHRlci5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQg c2V0X2ZvZyAoQ2x1dHRlci5Gb2cgZm9nKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9mdWxsc2NyZWVuIChib29sIGZ1bGxzY3JlZW4pOworKwkJcHVi bGljIHZvaWQgc2NoZWR1bGVfdXBkYXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorIAkJcHVibGljIHZvaWQgc2V0X2tleV9mb2N1cyAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X21pbmltdW1f c2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFi bGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9u b19jbGVhcl9oaW50IChib29sIG5vX2NsZWFyKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wZXJzcGVj dGl2ZSAoQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGhyb3R0bGVfbW90aW9uX2V2ZW50cyAo Ym9vbCB0aHJvdHRsZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMg dm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FscGhhIChib29sIHVzZV9hbHBoYSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9mb2cgKGJvb2wgZm9nKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VyX3Jlc2l6 YWJsZSAoYm9vbCByZXNpemFibGUpOworLQkJcHVibGljIHZvaWQgc2hvd19jdXJzb3IgKCk7Cist CQlwdWJsaWMgdm9pZCB0aGF3X3VwZGF0ZXMgKCk7CistCQlwdWJsaWMgdm9pZCB1cGRhdGVfcmVz b3VyY2Vfc2NhbGVzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGlj IGJvb2wgYWNjZXB0X2ZvY3VzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ2x1dHRlci5D b2xvciBjb2xvciB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBib29sIGN1cnNvcl92aXNpYmxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ2x1dHRlci5Gb2cgZm9nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgZnVsbHNjcmVlbl9zZXQgeyBnZXQ7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGtleV9mb2N1cyB7IGdl dDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBu b19jbGVhcl9oaW50IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyBib29sIG9mZnNjcmVlbiB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSB7IGdl dDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSB7IGdl dDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHN0cmluZyB0aXRs ZSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg Ym9vbCB1c2VfYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1Ymxp YyBib29sIHVzZV9mb2cgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIGJvb2wgdXNlcl9yZXNpemFibGUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0aXZh dGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMCIpXQorLQkJcHVibGljIHNpZ25hbCB2 b2lkIGFmdGVyX3BhaW50ICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGFmdGVyX3BhaW50IChD bHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBhZnRlcl91cGRh dGUgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGJlZm9y ZV9wYWludCAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg YmVmb3JlX3VwZGF0ZSAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkZWFjdGl2YXRlICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFs IGJvb2wgZGVsZXRlX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGZ1bGxzY3JlZW4g KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCB1bmZ1bGxzY3JlZW4gKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBw YWludF92aWV3IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3LCBDYWlyby5SZWdpb24gcmVkcmF3X2Ns aXApOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGFnZV9tYW5hZ2VyX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC03MTg1LDggKzY2NTEsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgR0xpYi5T TGlzdDx3ZWFrIENsdXR0ZXIuU3RhZ2U+IGxpc3Rfc3RhZ2VzICgpOworIAkJcHVibGljIHVub3du ZWQgR0xpYi5TTGlzdDxDbHV0dGVyLlN0YWdlPiBwZWVrX3N0YWdlcyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZWZhdWx0X3N0YWdlIChDbHV0dGVyLlN0YWdlIHN0 YWdlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlN0 YWdlIGRlZmF1bHRfc3RhZ2UgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0K K0BAIC03MjA2LDYzICs2NjcwLDMzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1 aW50MzIgdGltZTsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50VHlwZSB0eXBlOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9zdGF0ZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CistCXB1YmxpYyBjbGFzcyBTdGF0ZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUg eworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfc3RhZ2Vfdmlld19nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3Mg U3RhZ2VWaWV3IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBTdGF0ZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKHN0cmluZz8gc291 cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLlN0YXRlS2V5PiBnZXRfa2V5 cyAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwg R0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXRlICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBzdHJpbmc+IGdldF9zdGF0ZXMgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBn ZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3Zl X2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFt ZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0 YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIHVpbnQgZHVyYXRpb24pOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhdGUgc2V0X2tleSAo c3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lLCBHTGli Lk9iamVjdCBvYmplY3QsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCB1aW50IG1vZGUsIEdMaWIuVmFs dWUgdmFsdWUsIGRvdWJsZSBwcmVfZGVsYXksIGRvdWJsZSBwb3N0X2RlbGF5KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIHNldF9zdGF0ZSAo c3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIHdhcnBfdG9fc3RhdGUgKHN0cmluZyB0YXJnZXRfc3Rh dGVfbmFtZSk7CisrCQlwcm90ZWN0ZWQgU3RhZ2VWaWV3ICgpOworKwkJcHVibGljIHZvaWQgYXNz aWduX25leHRfc2Nhbm91dCAoQ29nbC5TY2Fub3V0IHNjYW5vdXQpOworKwkJcHVibGljIHVub3du ZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBn ZXRfbGF5b3V0IChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCk7CisrCQlwdWJsaWMgdmlydHVhbCB2 b2lkIGdldF9vZmZzY3JlZW5fdHJhbnNmb3JtYXRpb25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRy aXgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfb25zY3JlZW4gKCk7 CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3NjYWxlICgpOworKwkJcHVibGljIHZvaWQgaW52YWxpZGF0 ZV9vZmZzY3JlZW5fYmxpdF9waXBlbGluZSAoKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMg dmlydHVhbCB2b2lkIHNldHVwX29mZnNjcmVlbl9ibGl0X3BpcGVsaW5lIChDb2dsLlBpcGVsaW5l IHBpcGVsaW5lKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHRyYW5z Zm9ybV9yZWN0X3RvX29uc2NyZWVuIChDYWlyby5SZWN0YW5nbGVJbnQgc3JjX3JlY3QsIGludCBk c3Rfd2lkdGgsIGludCBkc3RfaGVpZ2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgZHN0X3JlY3QpOwor IAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQg ZHVyYXRpb24geyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENhaXJvLlJlY3RhbmdsZUludCBsYXlv dXQgeyBvd25lZCBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBzdHJpbmcgc3RhdGUgeyBvd25lZCBnZXQ7IHNl dDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNv bXBsZXRlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YXRlX2tleV9nZXRfdHlwZSAo KSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMg Y2xhc3MgU3RhdGVLZXkgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRf bW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVj dCBnZXRfb2JqZWN0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0 X3Bvc3RfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGRvdWJsZSBnZXRf cHJlX2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgR0xp Yi5UeXBlIGdldF9wcm9wZXJ0eV90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfc291cmNlX3N0YXRlX25hbWUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90YXJnZXRfc3RhdGVfbmFtZSAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdmFsdWUgKEdMaWIuVmFsdWUg dmFsdWUpOworKwkJcHVibGljIHN0cmluZyBuYW1lIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0K KysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGZsb2F0IHJlZnJlc2hfcmF0ZSB7IGdl dDsgc2V0IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgZmxv YXQgc2NhbGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQor KwkJcHVibGljIENsdXR0ZXIuU3RhZ2Ugc3RhZ2UgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQor KwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgYm9vbCB1c2Vfc2hhZG93ZmIgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zd2lwZV9hY3Rpb25fZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTcyNzQsNTMgKzY3MDgsNiBAQCBu 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 dHRlci5HZXN0dXJlQWN0aW9uIHsKK0BAIC03MzQ4LDcgKzY3MzUsNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY3Vyc29yX2NvbG9yICgpOworIAkJ cHVibGljIGludCBnZXRfY3Vyc29yX3Bvc2l0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0IHVub3duZWQgQ2x1 dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9yZWN0IChvdXQgdW5v d25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHVpbnQgZ2V0X2N1cnNvcl9zaXpl ICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2N1cnNvcl92aXNpYmxlICgpOworIAkJcHVibGljIGJv b2wgZ2V0X2VkaXRhYmxlICgpOworQEAgLTc0NjcsNyArNjg1NCw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKENsdXR0ZXIuR2VvbWV0cnkgZ2Vv bWV0cnkpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50IChHcmFw aGVuZS5SZWN0IHJlY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3RleHQgKGludCBzdGFydF9wb3Ms IGludCBlbmRfcG9zKTsKK0BAIC03NTA1LDk0ICs2ODkyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlclBhaW50Tm9kZSoiKV0KKyAJCXB1YmxpYyBUZXh0Tm9kZSAoUGFuZ28uTGF5b3V0PyBsYXlv dXQsIENsdXR0ZXIuQ29sb3I/IGNvbG9yKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dHVyZV9nZXRf dHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBU ZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFi bGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyBUZXh0dXJlICgpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQor LQkJcHVibGljIFRleHR1cmUuZnJvbV9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0 b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIFRleHR1cmUuZnJvbV9maWxlIChz dHJpbmcgZmlsZW5hbWUpIHRocm93cyBDbHV0dGVyLlRleHR1cmVFcnJvcjsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJs aWMgdm9pZCBnZXRfYmFzZV9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X2NvZ2xf bWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5I YW5kbGUgZ2V0X2NvZ2xfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg Q2x1dHRlci5UZXh0dXJlUXVhbGl0eSBnZXRfZmlsdGVyX3F1YWxpdHkgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2tlZXBfYXNwZWN0X3JhdGlvICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2FkX2FzeW5jICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2FkX2RhdGFfYXN5bmMgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjAuOCIpXQorLQkJcHVibGljIGludCBnZXRfbWF4X3RpbGVfd2FzdGUgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3BpY2tfd2l0aF9hbHBoYSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfcmVwZWF0IChvdXQgYm9vbCByZXBlYXRf eCwgb3V0IGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29s IGdldF9zeW5jX3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wgc2V0 X2FyZWFfZnJvbV9yZ2JfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4 W10gZGF0YSwgYm9vbCBoYXNfYWxwaGEsIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0LCBpbnQgcm93c3RyaWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykg dGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2NvZ2xfbWF0ZXJpYWwgKENvZ2wuSGFuZGxlIGNvZ2xfbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2dsX3RleHR1cmUgKENvZ2wuSGFuZGxlIGNvZ2xf dGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZmlsdGVyX3F1YWxp dHkgKENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmlsdGVyX3F1YWxpdHkpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhy b3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zy b21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEs IGJvb2wgaGFzX2FscGhhLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCByb3dzdHJpZGUsIGlu dCBicHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV95dXZfZGF0YSAoW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0LCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2tlZXBfYXNwZWN0X3JhdGlvIChib29s IGtlZXBfYXNwZWN0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbG9h ZF9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfbG9hZF9kYXRhX2FzeW5jIChib29sIGxvYWRfYXN5bmMpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9waWNrX3dpdGhfYWxwaGEgKGJvb2wgcGlja193aXRo X2FscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVwZWF0IChi b29sIHJlcGVhdF94LCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfc3luY19zaXplIChib29sIHN5bmNfc2l6ZSk7CistCQlwdWJsaWMgQ29nbC5N YXRlcmlhbCBjb2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDb2dsLlRleHR1 cmUgY29nbF90ZXh0dXJlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGJvb2wgZGlzYWJsZV9zbGljaW5nIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzdHJpbmcgZmlsZW5hbWUgeyBvd25lZCBnZXQ7 IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmlsdGVyX3F1YWxpdHkg eyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBib29sIGtlZXBfYXNwZWN0X3JhdGlv IHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBsb2FkX2Fz eW5jIHsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9hZF9kYXRh X2FzeW5jIHsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBwaWNrX3dpdGhfYWxwaGEgeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBlYXRfeCB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlcGVhdF95 IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIHN5bmNfc2l6ZSB7IGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgdGlsZV93YXN0ZSB7IGdldDsgfQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGxvYWRfZmlu aXNoZWQgKEdMaWIuRXJyb3IgZXJyb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIHBpeGJ1Zl9jaGFuZ2UgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg c2l6ZV9jaGFuZ2UgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Rl eHR1cmVfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAlwdWJsaWMgY2xhc3MgVGV4dHVyZU5vZGUgOiBDbHV0dGVyLlBpcGVsaW5lTm9kZSB7CitAQCAt NzYwNCw3ICs2OTAzLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgY2xhc3MgVGlt ZWxpbmUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyBUaW1lbGluZSAodWludCBtc2Vjcyk7CisrCQlwdWJsaWMgVGltZWxpbmUg KHVpbnQgZHVyYXRpb25fbXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1 YmxpYyB2b2lkIGFkZF9tYXJrZXIgKHN0cmluZyBtYXJrZXJfbmFtZSwgZG91YmxlIHByb2dyZXNz KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03NjEyLDEyICs2OTExLDE1IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkdmFuY2UgKHVpbnQgbXNlY3Mp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgYWR2YW5jZV90 b19tYXJrZXIgKHN0cmluZyBtYXJrZXJfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIENsdXR0ZXIuVGltZWxpbmUgY2xvbmUgKCk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgVGltZWxpbmUuZm9yX2FjdG9yIChDbHV0dGVy LkFjdG9yIGFjdG9yLCB1aW50IGR1cmF0aW9uX21zKTsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBUaW1lbGluZS5mb3JfZnJhbWVfY2xvY2sg KENsdXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9jbG9jaywgdWludCBkdXJhdGlvbl9tcyk7CisrCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9hdXRvX3JldmVyc2UgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2N1YmljX2Jlemll cl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18yKTsKKysJCXB1 YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNfMSwg R3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgaW50IGdldF9jdXJyZW50X3JlcGVhdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KK0BAIC03NjMxLDggKzY5MzMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludDY0IGdldF9kdXJhdGlvbl9oaW50 ICgpOworIAkJcHVibGljIHVpbnQgZ2V0X2VsYXBzZWRfdGltZSAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg Ym9vbCBnZXRfbG9vcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1Ymxp YyBkb3VibGUgZ2V0X3Byb2dyZXNzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K K0BAIC03NjUxLDE4ICs2OTUxLDE4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9tYXJrZXIgKHN0cmluZyBt YXJrZXJfbmFtZSk7CisgCQlwdWJsaWMgdm9pZCByZXdpbmQgKCk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfYWN0b3IgKENsdXR0ZXIuQWN0b3I/IGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hdXRvX3JldmVyc2UgKGJvb2wgcmV2ZXJzZSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jl emllcl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18yKTsKKysJ CXB1YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNf MSwgR3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9kZWxheSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZGlyZWN0aW9uIChDbHV0dGVyLlRpbWVsaW5l RGlyZWN0aW9uIGRpcmVjdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlw dWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sb29wIChib29sIGxvb3ApOworKwkJcHVibGljIHZvaWQgc2V0X2ZyYW1lX2Nsb2NrIChD bHV0dGVyLkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2spOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wcm9ncmVzc19mdW5jIChvd25lZCBDbHV0dGVyLlRp bWVsaW5lUHJvZ3Jlc3NGdW5jPyBmdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CitAQCAtNzY3NCw2ICs2OTc0LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZv aWQgc2tpcCAodWludCBtc2Vjcyk7CisgCQlwdWJsaWMgdm9pZCBzdGFydCAoKTsKKyAJCXB1Ymxp YyB2b2lkIHN0b3AgKCk7CisrCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBhY3RvciB7IGdldDsgc2V0 IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJv b2wgYXV0b19yZXZlcnNlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KK0BAIC03NjgyLDggKzY5ODMsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg Q2x1dHRlci5UaW1lbGluZURpcmVjdGlvbiBkaXJlY3Rpb24geyBnZXQ7IHNldDsgfQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNl dDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyBib29sIGxvb3AgeyBnZXQ7IHNldDsgfQorKwkJW05vQWNjZXNz b3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5GcmFtZUNsb2NrIGZyYW1lX2Nsb2NrIHsgb3du ZWQgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIENsdXR0ZXIuQW5pbWF0aW9uTW9kZSBwcm9ncmVzc19tb2RlIHsgZ2V0OyBzZXQ7 IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzY5NywxMiArNjk5OCw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzdG9wcGVkIChib29sIGlzX2ZpbmlzaGVkKTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBUaW1lb3V0UG9vbCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgVGltZW91dFBvb2wgKGludCBw cmlvcml0eSk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorQEAgLTc3NTMsNiArNzA0OCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl90cmFuc2Zvcm1fbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgVHJhbnNm b3JtTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMg VHJhbnNmb3JtTm9kZSAoQ29nbC5NYXRyaXggcHJvamVjdGlvbik7CisrCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFRyYW5zaXRpb24gOiBDbHV0dGVyLlRpbWVsaW5lLCBD bHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTc3OTIsNyArNzA5Miw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXBy b3RlY3RlZCBWaXJ0dWFsSW5wdXREZXZpY2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9kZXZpY2Vf dHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRfbWFu YWdlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2Fic29sdXRlX21vdGlvbiAo dWludDY0IHRpbWVfdXMsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJsaWMgdmlydHVhbCB2 b2lkIG5vdGlmeV9idXR0b24gKHVpbnQ2NCB0aW1lX3VzLCB1aW50MzIgYnV0dG9uLCBDbHV0dGVy LkJ1dHRvblN0YXRlIGJ1dHRvbl9zdGF0ZSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlm eV9kaXNjcmV0ZV9zY3JvbGwgKHVpbnQ2NCB0aW1lX3VzLCBDbHV0dGVyLlNjcm9sbERpcmVjdGlv biBkaXJlY3Rpb24sIENsdXR0ZXIuU2Nyb2xsU291cmNlIHNjcm9sbF9zb3VyY2UpOworQEAgLTc4 MDMsMjggKzcxMDIsMjcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwg dm9pZCBub3RpZnlfdG91Y2hfZG93biAodWludDY0IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUg eCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfbW90aW9u ICh1aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJs aWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF91cCAodWludDY0IHRpbWVfdXMsIGludCBzbG90 KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0ZXIuRGV2aWNlTWFuYWdl ciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgQ2x1 dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJ W05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5TZWF0IHNlYXQgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl96b29tX2FjdGlvbl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAlwdWJsaWMgY2xhc3MgWm9vbUFj dGlvbiA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorIAkJcHVibGljIFpv b21BY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQgKENsdXR0ZXIuUG9p bnQgcG9pbnQpOworLQkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9ybWVkX2ZvY2FsX3BvaW50IChD bHV0dGVyLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9mb2NhbF9wb2ludCAoR3Jh cGhlbmUuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9ybWVkX2ZvY2Fs X3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhp cyBnZXRfem9vbV9heGlzICgpOworIAkJcHVibGljIHZvaWQgc2V0X3pvb21fYXhpcyAoQ2x1dHRl ci5ab29tQXhpcyBheGlzKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpvb21BeGlzIHpvb21fYXhpcyB7 IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVy LkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBvaW50IGZvY2FsX3BvaW50LCBkb3VibGUgZmFjdG9yKTsK KysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENsdXR0ZXIuQWN0b3IgYWN0b3Is IEdyYXBoZW5lLlBvaW50IGZvY2FsX3BvaW50LCBkb3VibGUgZmFjdG9yKTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2NuYW1lID0g IkNsdXR0ZXJBbmltYXRhYmxlSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FuaW1hdGFi bGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBBbmltYXRhYmxlIDogR0xpYi5P YmplY3QgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wgYW5pbWF0 ZV9wcm9wZXJ0eSAoQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0aW9uLCBzdHJpbmcgcHJvcGVydHlf bmFtZSwgR0xpYi5WYWx1ZSBpbml0aWFsX3ZhbHVlLCBHTGliLlZhbHVlIGZpbmFsX3ZhbHVlLCBk b3VibGUgcHJvZ3Jlc3MsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9w cm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworKwkJcHVibGljIGFic3RyYWN0IHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBnZXRfaW5pdGlhbF9zdGF0ZSAoc3RyaW5nIHBy b3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorQEAgLTc4MzUsMTIgKzcxMzMsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9jb250YWluZXJfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorIAlwdWJsaWMgaW50ZXJmYWNlIENvbnRhaW5lciA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1Ymxp YyB2b2lkIGFkZCAocGFyYW1zIENsdXR0ZXIuQWN0b3JbXSBhY3RvcnMpOworIAkJW0NDb2RlICh2 ZnVuY19uYW1lID0gImFkZCIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFj dCB2b2lkIGFkZF9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIHZvaWQgYWRkX3ZhbGlzdCAoQ2x1dHRlci5BY3RvciBmaXJzdF9hY3Rvciwg dmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgdm9pZCBjaGlsZF9nZXQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCitAQCAtNzg2MCwxOCArNzE1NSwxMCBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlc3Ryb3lfY2hpbGRfbWV0YSAoQ2x1dHRl ci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIGZpbmRfY2hpbGRfYnlfbmFtZSAoc3RyaW5nIGNoaWxkX25h bWUpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2No aWxkX3Byb3BlcnR5IildCistCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBm aW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu NCIpXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgQGZvcmVhY2ggKENsdXR0ZXIuQ2FsbGJhY2sg Y2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZm9y ZWFjaF93aXRoX2ludGVybmFscyAoQ2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIu Q2hpbGRNZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC40IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5BY3Rvcj4gZ2V0X2No aWxkcmVuICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19s aXN0X2NoaWxkX3Byb3BlcnRpZXMiKV0KKy0JCXB1YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFy YW1TcGVjW10gbGlzdF9jaGlsZF9wcm9wZXJ0aWVzICgpOworIAkJW0NDb2RlICh2ZnVuY19uYW1l ID0gImxvd2VyIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBs b3dlcl9jaGlsZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8gc2libGluZyA9 IG51bGwpOworQEAgLTc4ODMsOCArNzE3MCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtD Q29kZSAodmZ1bmNfbmFtZSA9ICJyZW1vdmUiKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJs aWMgYWJzdHJhY3Qgdm9pZCByZW1vdmVfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV92YWxpc3QgKENsdXR0ZXIuQWN0 b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKyAJ CXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNvcnRfZGVwdGhfb3JkZXIgKCk7CisgCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCBhY3Rvcl9hZGRlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CitAQCAt NzkwMSw3ICs3MTg2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGFic3RyYWN0 IHZvaWQgaW52YWxpZGF0ZSAoKTsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGludmFsaWRhdGVf c2l6ZSAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYWludF9j b250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBhaW50Tm9kZSBub2RlKTsKKysJ CXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2NvbnRlbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3Is IENsdXR0ZXIuUGFpbnROb2RlIG5vZGUsIENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRl eHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIGF0dGFjaGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCitAQCAtNzkxNSw0NyArNzIwMCwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfY3VzdG9tX3Byb3BlcnR5IChDbHV0dGVy LlNjcmlwdCBzY3JpcHQsIHN0cmluZyBuYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIHNldF9pZCAoc3RyaW5nIGlkXyk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1YmxpYyBpbnRlcmZhY2Ug U3RhZ2VXaW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFi c3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3Rh bmdsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21l dHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgYWJzdHJhY3QgaW50IGdldF9wZW5kaW5nX3N3YXBzICgpOworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dyYXBwZXIgKCk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wgaGFzX3JlZHJhd19jbGlwcyAo KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoaWRlICgpOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGlnbm9yaW5nX3JlZHJhd19jbGlw cyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCByZWFsaXplICgp OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlc2l6ZSAoaW50IHdp ZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBzZXRfY3Vyc29yX3Zpc2libGUgKGJvb2wgY3Vyc29yX3Zpc2libGUpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9mdWxsc2NyZWVuIChib29sIGlzX2Z1bGxz Y3JlZW4pOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF90aXRs ZSAoc3RyaW5nIHRpdGxlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBzZXRfdXNlcl9yZXNpemFibGUgKGJvb2wgaXNfcmVzaXphYmxlKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93IChib29sIGRvX3JhaXNlKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bnJlYWxpemUgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJD TFVUVEVSX1RZUEVfQUNUT1JfQk9YIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9m dW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3JfYm94X2dl dF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgQWN0b3JCb3ggeworIAkJcHVibGljIGZsb2F0 IHgxOworIAkJcHVibGljIGZsb2F0IHkxOworIAkJcHVibGljIGZsb2F0IHgyOworIAkJcHVibGlj IGZsb2F0IHkyOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyBzdGF0 aWMgQ2x1dHRlci5BY3RvckJveD8gYWxsb2MgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKysJCXB1YmxpYyBzdGF0aWMg dm9pZCBjbGFtcF90b19waXhlbCAocmVmIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChmbG9hdCB4LCBm bG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC03OTY0LDggKzcyMTgs NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5B Y3RvckJveCBib3hfYik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg dm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9t X3ZlcnRpY2VzIildCistCQlwdWJsaWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAoQ2x1dHRlci5W ZXJ0ZXhbXSB2ZXJ0cyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg ZmxvYXQgZ2V0X2FyZWEgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzk4 Niw2ICs3MjM4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgaW5pdF9y ZWN0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94IGludGVy cG9sYXRlIChDbHV0dGVyLkFjdG9yQm94IGZpbmFsLCBkb3VibGUgcHJvZ3Jlc3MpOworKwkJcHVi bGljIGJvb2wgaXNfaW5pdGlhbGl6ZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42Iild CisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc2NhbGUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorQEAgLTgwMTEsNyArNzI2NCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB3ZWFrIENhaXJvLlN1cmZhY2UgaW1hZ2U7CisgCQlwdWJsaWMgQ2Fpcm8uUmVjdGFu Z2xlSW50IHJlY3Q7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJn X2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9jb2xvcl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IENvbG9yIHsKKyAJ CXB1YmxpYyB1aW50OCByZWQ7CisgCQlwdWJsaWMgdWludDggZ3JlZW47CitAQCAtODAyNywxMiAr NzI4MCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1 dHRlci5Db2xvciB2Mik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMg dm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21faGxz IildCistCQlwdWJsaWMgQ29sb3IuZnJvbV9obHMgKGZsb2F0IGh1ZSwgZmxvYXQgbHVtaW5hbmNl LCBmbG9hdCBzYXR1cmF0aW9uKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9m cm9tX3BpeGVsIildCistCQlwdWJsaWMgQ29sb3IuZnJvbV9waXhlbCAodWludDMyIHBpeGVsKTsK Ky0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3N0cmluZyIpXQorLQkJcHVi bGljIENvbG9yLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKysJCXB1YmxpYyBzdGF0aWMgdm9p ZCBmcm9tX2hscyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIGZsb2F0IGh1ZSwgZmxvYXQgbHVt aW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCBmcm9tX3Bp eGVsIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgdWludDMyIHBpeGVsKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgYm9vbCBmcm9tX3N0cmluZyAob3V0 IENsdXR0ZXIuQ29sb3IgY29sb3IsIHN0cmluZyBzdHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQ29sb3I/IGdldF9zdGF0 aWMgKENsdXR0ZXIuU3RhdGljQ29sb3IgY29sb3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIHVpbnQgaGFzaCAoKTsKK0BAIC04MDQxLDggKzcyOTMsNiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg Q2x1dHRlci5Db2xvciBpbnRlcnBvbGF0ZSAoQ2x1dHRlci5Db2xvciBmaW5hbCwgZG91YmxlIHBy b2dyZXNzKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGxpZ2h0ZW4gKCk7CistCQlbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmciKV0KKy0JCXB1YmxpYyBib29sIHBh cnNlX3N0cmluZyAoc3RyaW5nIHN0cik7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBzaGFkZSAo ZG91YmxlIGZhY3Rvcik7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBzdWJ0cmFjdCAoQ2x1dHRl ci5Db2xvciBiKTsKKyAJCXB1YmxpYyB2b2lkIHRvX2hscyAob3V0IGZsb2F0IGh1ZSwgb3V0IGZs b2F0IGx1bWluYW5jZSwgb3V0IGZsb2F0IHNhdHVyYXRpb24pOworQEAgLTgwNTAsMjMgKzczMDAs MTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQor IAkJcHVibGljIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvZ19nZXRf dHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RydWN0IEZvZyB7CistCQlw dWJsaWMgZmxvYXQgel9uZWFyOworLQkJcHVibGljIGZsb2F0IHpfZmFyOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9nZW9tZXRyeV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0IEdlb21ldHJ5 IHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyB1aW50IHdp ZHRoOworLQkJcHVibGljIHVpbnQgaGVpZ2h0OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0cyAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeTEp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0 cnkgdW5pb24gKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnlfYik7CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor KwlwdWJsaWMgc3RydWN0IEZyYW1lTGlzdGVuZXJJZmFjZSB7CisrCQlwdWJsaWMgd2VhayBnbG9i YWw6OmJlZm9yZV9mcmFtZSBiZWZvcmVfZnJhbWU7CisrCQlwdWJsaWMgd2VhayBnbG9iYWw6OmZy YW1lIGZyYW1lOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEtiZEExMXlT ZXR0aW5ncyB7CitAQCAtODA3OCw3ICs3MzE1LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIGludCBtb3VzZWtleXNfbWF4X3NwZWVkOworIAkJcHVibGljIGludCBtb3VzZWtleXNf YWNjZWxfdGltZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25vdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAu MiIpXQorIAlwdWJsaWMgc3RydWN0IEtub3QgeworIAkJcHVibGljIGludCB4OworQEAgLTgwODcs OCArNzMyNCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAo Q2x1dHRlci5Lbm90IGtub3RfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNPR0xf VFlQRV9NQVRSSVgiKV0KKyAJcHVibGljIHN0cnVjdCBNYXRyaXggOiBDb2dsLk1hdHJpeCB7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHN0YXRpYyBDbHV0dGVyLk1h dHJpeD8gYWxsb2MgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGlj IHZvaWQgZnJlZSAoKTsKKysJCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGdldF90eXBlICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu TWF0cml4PyBpbml0X2Zyb21fYXJyYXkgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBm bG9hdCB2YWx1ZXNbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLk1hdHJpeD8gaW5pdF9mcm9tX21hdHJpeCAoQ2x1dHRlci5NYXRy aXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHVub3duZWQg Q2x1dHRlci5NYXRyaXg/IGluaXRfaWRlbnRpdHkgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisg CXB1YmxpYyBzdHJ1Y3QgUGFkQnV0dG9uRXZlbnQgeworQEAgLTgxMzAsNyArNzM3OCw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgdmFsdWU7CisgCQlwdWJsaWMgdWlu dDMyIG1vZGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3QgUGF0aE5vZGUgeworIAkJcHVibGljIENsdXR0 ZXIuUGF0aE5vZGVUeXBlIHR5cGU7CitAQCAtODE0MCw3ICs3Mzg4LDcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuUGF0aE5vZGUgbm9kZV9iKTsK KyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJn X2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGVyc3BlY3RpdmVfZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RydWN0IFBlcnNwZWN0 aXZlIHsKKyAJCXB1YmxpYyBmbG9hdCBmb3Z5OworQEAgLTgxNDksNiArNzM5NywxOSBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgel9mYXI7CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCisrCXB1YmxpYyBzdHJ1Y3QgUG9pbnRlckExMXlTZXR0aW5ncyB7CisrCQlwdWJsaWMgQ2x1 dHRlci5Qb2ludGVyQTExeUZsYWdzIGNvbnRyb2xzOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRl ckExMXlEd2VsbENsaWNrVHlwZSBkd2VsbF9jbGlja190eXBlOworKwkJcHVibGljIENsdXR0ZXIu UG9pbnRlckExMXlEd2VsbE1vZGUgZHdlbGxfbW9kZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50 ZXJBMTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2VzdHVyZV9zaW5nbGU7CisrCQlwdWJsaWMgQ2x1 dHRlci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVfZG91YmxlOworKwkJ cHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0dXJlX2Ry YWc7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dl c3R1cmVfc2Vjb25kYXJ5OworKwkJcHVibGljIGludCBzZWNvbmRhcnlfY2xpY2tfZGVsYXk7Cisr CQlwdWJsaWMgaW50IGR3ZWxsX2RlbGF5OworKwkJcHVibGljIGludCBkd2VsbF90aHJlc2hvbGQ7 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI4IildCisgCXB1 YmxpYyBzdHJ1Y3QgUHJveGltaXR5RXZlbnQgeworIAkJcHVibGljIENsdXR0ZXIuRXZlbnRUeXBl IHR5cGU7CitAQCAtODE1OCw0NyArNzQxOSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgd2VhayBDbHV0dGVyLkFjdG9yIHNvdXJjZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIu SW5wdXREZXZpY2UgZGV2aWNlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRTIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rp b24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBl X2lkID0gImNsdXR0ZXJfdW5pdHNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFVuaXRzIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlVuaXRz PyBjb3B5ICgpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAi Y2x1dHRlcl91bml0c19mcm9tX2NtIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9jbSAoZmxvYXQg Y20pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fZW0iKV0KKy0JCXB1 YmxpYyBVbml0cy5mcm9tX2VtIChmbG9hdCBlbSk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfdW5pdHNfZnJvbV9lbV9mb3JfZm9udCIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fZW1fZm9y X2ZvbnQgKHN0cmluZyBmb250X25hbWUsIGZsb2F0IGVtKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAi Y2x1dHRlcl91bml0c19mcm9tX21tIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9tbSAoZmxvYXQg bW0pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fcGl4ZWxzIildCist CQlwdWJsaWMgVW5pdHMuZnJvbV9waXhlbHMgKGludCBweCk7CistCQlbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfdW5pdHNfZnJvbV9wdCIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fcHQgKGZsb2F0 IHB0KTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3N0cmluZyIpXQor LQkJcHVibGljIFVuaXRzLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKyAJCXB1YmxpYyBDbHV0 dGVyLlVuaXRUeXBlIGdldF91bml0X3R5cGUgKCk7CisgCQlwdWJsaWMgZmxvYXQgZ2V0X3VuaXRf dmFsdWUgKCk7CisgCQlwdWJsaWMgZmxvYXQgdG9fcGl4ZWxzICgpOworIAkJcHVibGljIHN0cmlu ZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3ZlcnRleF9nZXRfdHlwZSAoKSIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdHJ1Y3QgVmVydGV4IHsKKy0J CXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgZmxvYXQgejsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIu VmVydGV4PyBhbGxvYyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLlZlcnRleD8gY29weSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlZlcnRleCB2ZXJ0ZXhfYik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVmVydGV4PyBp bml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQUNUT1Jf QUxJR05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2FsaWduX2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBlbnVtIEFjdG9yQWxpZ24gewor QEAgLTgyMjMsMTQgKzc0NTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlZX0FYSVMsCisg CQlCT1RICisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbGxvY2F0aW9u X2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgZW51bSBBbGxvY2F0aW9uRmxhZ3MgeworLQkJQUxMT0NBVElPTl9OT05F LAorLQkJQUJTT0xVVEVfT1JJR0lOX0NIQU5HRUQsCistCQlERUxFR0FURV9MQVlPVVQKKy0JfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4 ID0gIkNMVVRURVJfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FuaW1hdGlvbl9tb2RlX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVudW0gQW5pbWF0 aW9uTW9kZSB7CitAQCAtODMzNiw2ICs3NTU4LDI3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CVlfQVhJUywKKyAJCUJPVEgKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51 bSBEZWJ1Z0ZsYWcgeworKwkJTUlTQywKKysJCUFDVE9SLAorKwkJVEVYVFVSRSwKKysJCUVWRU5U LAorKwkJUEFJTlQsCisrCQlQQU5HTywKKysJCUJBQ0tFTkQsCisrCQlTQ0hFRFVMRVIsCisrCQlT Q1JJUFQsCisrCQlTSEFERVIsCisrCQlNVUxUSVNUQUdFLAorKwkJQU5JTUFUSU9OLAorKwkJTEFZ T1VULAorKwkJUElDSywKKysJCUVWRU5UTE9PUCwKKysJCUNMSVBQSU5HLAorKwkJT09CX1RSQU5T Rk9STVMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRFJBR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhZ19h eGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGlj IGVudW0gRHJhZ0F4aXMgeworQEAgLTgzNDMsMTEgKzc1ODYsMjQgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJWF9BWElTLAorIAkJWV9BWElTCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0VGRkVDVF9QQUlO VF9BQ1RPUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X3BhaW50X2ZsYWdzX2dldF90eXBl ICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhd19kZWJ1 Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gRHJhd0RlYnVn RmxhZyB7CisrCQlESVNBQkxFX1NXQVBfRVZFTlRTLAorKwkJRElTQUJMRV9DTElQUEVEX1JFRFJB V1MsCisrCQlSRURSQVdTLAorKwkJUEFJTlRfVk9MVU1FUywKKysJCURJU0FCTEVfQ1VMTElORywK KysJCURJU0FCTEVfT0ZGU0NSRUVOX1JFRElSRUNULAorKwkJQ09OVElOVU9VU19SRURSQVcsCisr CQlQQUlOVF9ERUZPUk1fVElMRVMsCisrCQlQQUlOVF9EQU1BR0VfUkVHSU9OCisrCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX0VGRkVDVF9QQUlOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X3BhaW50X2Zs YWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gRWZmZWN0UGFpbnRG bGFncyB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNMVVRURVJfRUZGRUNUX1BBSU5UX0FDVE9SX0RJ UlRZIildCistCQlBQ1RPUl9ESVJUWQorKwkJQUNUT1JfRElSVFksCisrCQlCWVBBU1NfRUZGRUNU CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y3ByZWZpeCA9ICJDTFVUVEVSX0VWRU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9mbGFn c19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCitAQCAtODM5MiwyMSArNzY0OCwxMiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCVtGbGFnc10KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQor IAlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9OUE9ULAorLQkJU1dBUF9U SFJPVFRMRSwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKyAJCVNU QUdFX1NUQVRJQywKKy0JCVNUQUdFX1VTRVJfUkVTSVpFLAorIAkJU1RBR0VfQ1VSU09SLAorIAkJ U0hBREVSU19HTFNMLAorIAkJT0ZGU0NSRUVOLAorIAkJU1RBR0VfTVVMVElQTEUsCistCQlTV0FQ X0VWRU5UUzsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2F2YWlsYWJsZSIp XQorLQkJcHVibGljIGJvb2wgaXNfYXZhaWxhYmxlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJj bHV0dGVyX2ZlYXR1cmVfZ2V0X2FsbCIpXQorLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLkZlYXR1 cmVGbGFncyBAZ2V0ICgpOworKwkJU1dBUF9FVkVOVFMKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRkxPV18i LCB0eXBlX2lkID0gImNsdXR0ZXJfZmxvd19vcmllbnRhdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAtODQxNCwxMiArNzY2MSwxMCBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfRk9OVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZm9udF9mbGFnc19nZXRfdHlwZSAoKSIpXQor LQlbRmxhZ3NdCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjIyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEZvbnRGbGFncyB7Cist CQlNSVBNQVBQSU5HLAorLQkJSElOVElORworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRlJBTUVfUkVTVUxUXyIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9mcmFtZV9yZXN1bHRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVu dW0gRnJhbWVSZXN1bHQgeworKwkJUEVORElOR19QUkVTRU5URUQsCisrCQlJRExFCisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9 ICJDTFVUVEVSX0dFU1RVUkVfVFJJR0dFUl9FREdFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZXN0 dXJlX3RyaWdnZXJfZWRnZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x OCIpXQorQEAgLTg2MzQsNyArNzg3OSw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgZW51bSBPZmZzY3JlZW5SZWRpcmVjdCB7Cisg CQlBVVRPTUFUSUNfRk9SX09QQUNJVFksCistCQlBTFdBWVMKKysJCUFMV0FZUywKKysJCU9OX0lE TEUKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjcHJlZml4ID0gIkNMVVRURVJfT1JJRU5UQVRJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX29y aWVudGF0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitA QCAtODY0Miw2ICs3ODg4LDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCUhPUklaT05UQUws CisgCQlWRVJUSUNBTAorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9QQUlOVF9GTEFHXyIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9wYWludF9mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVu dW0gUGFpbnRGbGFnIHsKKysJCU5PTkUsCisrCQlOT19DVVJTT1JTLAorKwkJRk9SQ0VfQ1VSU09S UworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNwcmVmaXggPSAiQ0xVVFRFUl9QQU5fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Bhbl9heGlzX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCXB1YmxpYyBlbnVt IFBhbkF4aXMgeworQEAgLTg2NjEsNiArNzkxNCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlSRUxfTElORV9UTywKKyAJCVJFTF9DVVJWRV9UTworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR19O T1BfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpY2tfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQor KwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIFBpY2tEZWJ1Z0ZsYWcgeworKwkJUElDS0lORworKwl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9QSUNLXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX21vZGVfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgZW51bSBQaWNr TW9kZSB7CitAQCAtODY2OCwxMyArNzkyNiw0NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlS RUFDVElWRSwKKyAJCUFMTAorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZX0RXRUxMX0NMSUNLX1RZUEVf IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9kd2VsbF9jbGlja190eXBlX2dldF90 eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgeworKwkJ Tk9ORSwKKysJCVBSSU1BUlksCisrCQlTRUNPTkRBUlksCisrCQlNSURETEUsCisrCQlET1VCTEUs CisrCQlEUkFHCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfRFdFTExfRElSRUNUSU9OXyIsIHR5cGVf aWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfZGlyZWN0aW9uX2dldF90eXBlICgpIild CisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24geworKwkJTk9ORSwKKysJ CUxFRlQsCisrCQlSSUdIVCwKKysJCVVQLAorKwkJRE9XTgorKwl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZ X0RXRUxMX01PREVfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9kd2VsbF9tb2Rl X2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdlbGxNb2RlIHsKKysJ CVdJTkRPVywKKysJCUdFU1RVUkUKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV8iLCB0eXBlX2lkID0g ImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2ZsYWdzX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJ cHVibGljIGVudW0gUG9pbnRlckExMXlGbGFncyB7CisrCQlTRUNPTkRBUllfQ0xJQ0tfRU5BQkxF RCwKKysJCURXRUxMX0VOQUJMRUQKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9USU1FT1VUX1RZUEVf IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV90aW1lb3V0X3R5cGVfZ2V0X3R5cGUg KCkiKV0KKysJcHVibGljIGVudW0gUG9pbnRlckExMXlUaW1lb3V0VHlwZSB7CisrCQlTRUNPTkRB UllfQ0xJQ0ssCisrCQlEV0VMTCwKKysJCUdFU1RVUkUKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUkVQQUlO VF9GTEFHU18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVwYWludF9mbGFnc19nZXRfdHlwZSAoKSIp XQorIAlbRmxhZ3NdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBlbnVt IFJlcGFpbnRGbGFncyB7CisgCQlQUkVfUEFJTlQsCistCQlQT1NUX1BBSU5ULAorLQkJUVVFVUVf UkVEUkFXX09OX0FERAorKwkJUE9TVF9QQUlOVAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9SRVFVRVNUXyIs IHR5cGVfaWQgPSAiY2x1dHRlcl9yZXF1ZXN0X21vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTg3NTUsOCArODA0Niw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJW0ZsYWdzXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBl bnVtIFN0YWdlU3RhdGUgeworLQkJRlVMTFNDUkVFTiwKKy0JCU9GRlNDUkVFTiwKKyAJCUFDVElW QVRFRAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9DT0xPUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhdGlj X2NvbG9yX2dldF90eXBlICgpIildCitAQCAtODgyMywxMyArODExMiw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCUxFRlQsCisgCQlSSUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9UQUJMRV9BTElH Tk1FTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhYmxlX2FsaWdubWVudF9nZXRfdHlwZSAoKSIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4y MiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBUYWJsZUFsaWdubWVudCB7CistCQlT VEFSVCwKKy0JCUNFTlRFUiwKKy0JCUVORAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9URVhUX0RJUkVDVElP Tl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dF9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgZW51bSBUZXh0RGlyZWN0aW9uIHsK K0BAIC04OTA1LDI4ICs4MTg3LDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVZBTFVFOwor IAkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9U RVhUVVJFX0VSUk9SXyIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBl cnJvcmRvbWFpbiBUZXh0dXJlRXJyb3IgeworLQkJT1VUX09GX01FTU9SWSwKKy0JCU5PX1lVViwK Ky0JCUJBRF9GT1JNQVQ7CistCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7Cist CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5z dGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJcHVibGlj IGRlbGVnYXRlIENsdXR0ZXIuQWN0b3IgQWN0b3JDcmVhdGVDaGlsZEZ1bmMgKEdMaWIuT2JqZWN0 IGl0ZW0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgZGVsZWdh dGUgZG91YmxlIEFscGhhRnVuYyAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSld CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYi LCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgQmVoYXZpb3VyRm9yZWFj aEZ1bmMgKENsdXR0ZXIuQmVoYXZpb3VyIGJlaGF2aW91ciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3Rh bmNlX3BvcyA9IDQuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGRl bGVnYXRlIGJvb2wgQmluZGluZ0FjdGlvbkZ1bmMgKEdMaWIuT2JqZWN0IGdvYmplY3QsIHN0cmlu ZyBhY3Rpb25fbmFtZSwgdWludCBrZXlfdmFsLCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RpZmll cnMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBp bnN0YW5jZV9wb3MgPSAxLjkpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBDYWxsYmFjayAoQ2x1 dHRlci5BY3RvciBhY3Rvcik7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGhhc190YXJnZXQgPSBmYWxzZSldCisrCXB1YmxpYyBkZWxlZ2F0ZSB2b2lk IEVtaXRJbnB1dERldmljZUV2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLklucHV0 RGV2aWNlIGRldmljZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4 IildCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIEV2ZW50RmlsdGVyRnVuYyAoQ2x1dHRlci5FdmVu dCBldmVudCk7CitAQCAtODk1Nyw5ICs4MjI3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlb VmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVE UkFXOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIHN0YXRpYyBDbHV0dGVyLkFj dG9yQm94PyBhY3Rvcl9ib3hfYWxsb2MgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgYmFzZV9pbml0ICgp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC04OTcxLDM3ICs4MjM4LDEyIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0 YXRpYyBib29sIGNoZWNrX3dpbmRvd2luZ19iYWNrZW5kIChzdHJpbmcgYmFja2VuZF90eXBlKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGVhcl9nbHlwaF9jYWNoZSAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9mcm9tX2hscyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3Is IGZsb2F0IGh1ZSwgZmxvYXQgbHVtaW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBjb2xvcl9mcm9tX3BpeGVsIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgdWludDMy IHBpeGVsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGNv bG9yX2Zyb21fc3RyaW5nIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgc3RyaW5nIHN0cik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkNv bG9yPyBjb2xvcl9nZXRfc3RhdGljIChDbHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9yKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX2FjY2Vzc2li aWxpdHkgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBk b19ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQor LQlwdWJsaWMgc3RhdGljIHVpbnQgZXZlbnRfYWRkX2ZpbHRlciAoQ2x1dHRlci5TdGFnZT8gc3Rh Z2UsIFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDIuMiwgZGVzdHJveV9ub3RpZnlfcG9z ID0gMi4xKV0gb3duZWQgQ2x1dHRlci5FdmVudEZpbHRlckZ1bmMgZnVuYyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5FdmVudCBldmVudF9nZXQgKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVy LkV2ZW50IGV2ZW50X3BlZWsgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgZXZlbnRfcmVtb3ZlX2ZpbHRlciAodWludCBpZCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBldmVudHNfcGVuZGluZyAoKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTAxNCw5 ICs4MjU2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCXB1YmxpYyBzdGF0aWMgdWludDMyIGdldF9jdXJyZW50X2V2ZW50X3RpbWUgKCk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlw dWJsaWMgc3RhdGljIGJvb2wgZ2V0X2RlYnVnX2VuYWJsZWQgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkJhY2tlbmQgZ2V0X2RlZmF1 bHRfYmFja2VuZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCitAQCAtOTAyNiwxOCArODI2NSw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgc3RhdGljIENsdXR0ZXIuVGV4dERp cmVjdGlvbiBnZXRfZGVmYXVsdF90ZXh0X2RpcmVjdGlvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgQ2x1dHRlci5Gb250RmxhZ3MgZ2V0X2ZvbnRfZmxhZ3MgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBQYW5nby5Gb250TWFwIGdl dF9mb250X21hcCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2tleWJvYXJkX2dyYWIgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCist CXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfbW90aW9uX2V2ZW50c19lbmFibGVkICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29w dGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCitAQCAtOTA0NSwyNiArODI3NSw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ cHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXBfd2l0aG91dF9p bml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQg Q2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdldF9zY3JpcHRfaWQgKEdMaWIuT2Jq ZWN0IGdvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9zaG93 X2ZwcyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCXB1YmxpYyBzdGF0aWMgdWxvbmcgZ2V0X3RpbWVzdGFtcCAoKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdyYWJfa2V5Ym9hcmQgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgZ3JhYl9wb2ludGVyIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX3BvaW50ZXJfZm9yX2RldmljZSAoQ2x1dHRlci5BY3Rv ciBhY3RvciwgaW50IGlkXyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIENsdXR0ZXIuSW5pdEVycm9yIGluaXQgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gImFyZ2MiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41 KV0gcmVmIHVub3duZWQgc3RyaW5nW10/IGFyZ3YpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQor QEAgLTkwODAsNDEgKzgyOTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X2N1c3RvbV9iYWNrZW5kX2Z1bmMgKHZvaWQqIGZ1bmMpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHNldF9kZWZhdWx0X2ZyYW1lX3JhdGUgKHVpbnQgZnJhbWVzX3Bl cl9zZWMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb250X2ZsYWdz IChDbHV0dGVyLkZvbnRGbGFncyBmbGFncyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfbW90aW9uX2V2ZW50c19lbmFibGVkIChib29sIGVuYWJsZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9hZGRfZGF0YV9mdWxsIChz dHJpbmcgdGVzdF9wYXRoLCBvd25lZCBHTGliLlRlc3REYXRhRnVuYyB0ZXN0X2Z1bmMpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIHRlc3RfY2hlY2tfYWN0 b3JfYXRfcG9pbnQgKENsdXR0ZXIuQWN0b3Igc3RhZ2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQsIENs dXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBDbHV0dGVyLkFjdG9yPyByZXN1bHQpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIHRlc3RfY2hlY2tfY29sb3JfYXRf cG9pbnQgKENsdXR0ZXIuQWN0b3Igc3RhZ2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQsIENsdXR0ZXIu Q29sb3IgY29sb3IsIG91dCBDbHV0dGVyLkNvbG9yIHJlc3VsdCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciB0ZXN0X2dldF9z dGFnZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2luaXQgKGludCBhcmdjLCBzdHJpbmcgYXJn dik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGludCB0ZXN0X3J1 biAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHVuZ3Jh Yl9rZXlib2FyZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHVuZ3JhYl9wb2ludGVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHVuZ3JhYl9wb2ludGVyX2Zvcl9kZXZpY2UgKGludCBpZF8pOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50IHVuaWNvZGVfdG9fa2V5c3ltICh1aW50MzIgd2Mp OworIH0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LWN1c3RvbS52YWxhIHZhcGkvbXV0 dGVyLWNvZ2wtNi1jdXN0b20udmFsYQorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJv bSB2YXBpL211dHRlci1jb2dsLTUtY3VzdG9tLnZhbGEKK3JlbmFtZSB0byB2YXBpL211dHRlci1j b2dsLTYtY3VzdG9tLnZhbGEKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC00LmRlcHMgdmFw aS9tdXR0ZXItY29nbC02LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20g dmFwaS9tdXR0ZXItY29nbC00LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTYuZGVw cworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTUudmFwaSB2YXBpL211dHRlci1jb2dsLTYu dmFwaQorc2ltaWxhcml0eSBpbmRleCA2OCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wt NS52YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC02LnZhcGkKK2luZGV4IGE4OTYxMjI0 Li4xOTVlM2IxNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTUudmFwaQorKysrIHZhcGkv bXV0dGVyLWNvZ2wtNi52YXBpCitAQCAtMSw2ICsxLDYgQEAKKy0vKiBtdXR0ZXItY29nbC01LnZh cGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrLyogbXV0dGVyLWNv Z2wtNi52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtD Q29kZSAoY3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25hbWVzcGFjZSA9ICJDb2dsIiwgZ2lyX3ZlcnNp b24gPSAiNSIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjb2dsXyIpXQorK1tDQ29kZSAoY3ByZWZp eCA9ICJDb2dsIiwgZ2lyX25hbWVzcGFjZSA9ICJDb2dsIiwgZ2lyX3ZlcnNpb24gPSAiNiIsIGxv d2VyX2Nhc2VfY3ByZWZpeCA9ICJjb2dsXyIpXQorIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIs IHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIildCisgCVtDb21wYWN0XQorQEAg LTI4LDkgKzI4LDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29sIHNldF9kYXRh IChzaXplX3Qgb2Zmc2V0LCBbQ0NvZGUgKGFycmF5X2xlbmd0aF90eXBlID0gInNpemVfdCIpXSB1 aW50OFtdIGRhdGEpOworIAkJcHVibGljIHZvaWQgdW5tYXAgKCk7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRXVsZXIgeworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfY29udGV4dF9nZXRfZ3R5cGUg KCkiKV0KKysJcHVibGljIGNsYXNzIENvbnRleHQgOiBDb2dsLk9iamVjdCB7CisrCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQ29udGV4dCAo KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2Nsb3N1cmVfZ2V0X2d0eXBlICgpIildCisgCVtDb21w YWN0XQorQEAgLTY1LDYyICs2NiwxNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE1hdGVyaWFsICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvcHkgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZm9yZWFjaF9sYXllciAoQ29nbC5NYXRl cmlhbExheWVyQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1p c3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sYXllcl9wb2lu dF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2Rl X3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wu TWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRf bGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CistCQlwdWJsaWMgdW5vd25lZCBH TGliLkxpc3Q8Q29nbC5NYXRlcmlhbExheWVyPiBnZXRfbGF5ZXJzICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0g KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5k bGUgQHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92 ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg dm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhhRnVuYyBhbHBo YV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9y IGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0 cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9j b2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDb2ds LkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29s b3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVk LCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworIAkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBl bWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyIChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuSGFuZGxlIHRleHR1cmUpOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmlu ZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworQEAgLTEzMyw0MSArODksMTMgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIHNldF9s YXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgYm9vbCBl bmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdy YXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXll cl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9k ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9k ZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBs YXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9zaXplKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGlu aW5lc3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAo Q29nbC5Db2xvciBzcGVjdWxhcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQg c2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBNYXRlcmlhbExheWVyIHsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWFnX2ZpbHRlciAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWluX2ZpbHRlciAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJs aWMgQ29nbC5NYXRlcmlhbExheWVyVHlwZSBnZXRfdHlwZSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfcCAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFw X21vZGVfcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdy YXBNb2RlIGdldF93cmFwX21vZGVfdCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2JqZWN0X2dldF9ndHlwZSAoKSIp XQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgT2JqZWN0IHsKK0BAIC0xNzgsMTMgKzEwNiw5IEBA IG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIGNsYXNzIE9mZnNjcmVlbiA6IENvZ2wuT2JqZWN0 LCBDb2dsLkZyYW1lYnVmZmVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBPZmZzY3JlZW4gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQqIEByZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE9mZnNjcmVlbi50b190ZXh0dXJlIChD b2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKHZv aWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisgCQlwdWJsaWMgT2Zmc2NyZWVuLndpdGhfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1 cmUpOworIAl9CitAQCAtMTk2LDkgKzEyMCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1Ymxp YyBDb2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGFkZF9kaXJ0eV9jYWxsYmFjayAoW0NDb2RlIChk ZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlbkRpcnR5Q2FsbGJhY2sgY2Fs bGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJl IGFkZF9yZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSld IENvZ2wuT25zY3JlZW5SZXNpemVDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ry b3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB1aW50 IGFkZF9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dhcEJ1ZmZlcnNOb3RpZnkgY2FsbGJh Y2spOworLQkJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfYmFja2VuZF9zZXRfc2l6ZV9DTFVU VEVSIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQi KV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xNCIpXQorQEAgLTIxMyw4ICsxMzQsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJs aWMgdm9pZCByZW1vdmVfZnJhbWVfY2FsbGJhY2sgKENvZ2wuRnJhbWVDbG9zdXJlIGNsb3N1cmUp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX3Jl c2l6ZV9jYWxsYmFjayAoQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgY2xvc3VyZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNp bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9zd2FwX2J1ZmZlcnNfY2FsbGJh Y2sgKHVpbnQgaWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X3Jlc2l6YWJsZSAoYm9vbCByZXNpemFibGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorQEAgLTI0NCw3ICsxNjMsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9waXBlbGlu ZV9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVsaW5lIDogQ29nbC5PYmplY3Qg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFBpcGVsaW5lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorKwkJcHVibGlj IFBpcGVsaW5lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZSBjb3B5ICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorQEAgLTI1NCwxNiArMTc0LDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfdGVz dF9yZWZlcmVuY2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2Rl IGdldF9jdWxsX2ZhY2VfbW9kZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNv bG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBD b2dsLldpbmRpbmcgZ2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRfbGF5ZXJfbWFn X2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsKK0BAIC0yNzQsOCArMTg4LDYgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVk IENvZ2wuVGV4dHVyZSBnZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUg Z2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJf d3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVf dCAoaW50IGxheWVyX2luZGV4KTsKK0BAIC0yODYsMTAgKzE5OCw2IEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfcG9p bnRfc2l6ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9h dCBnZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3VuaWZvcm1fbG9jYXRpb24gKHN0 cmluZyB1bmlmb3JtX25hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKK0BAIC0yOTgsMTAg KzIwNiw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLlBpcGVsaW5lQWxw aGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBh bWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBib29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0 cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisg CQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29s b3IpOworQEAgLTMxNCwxMCArMjE4LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2N1bGxfZmFjZV9tb2RlIChDb2ds LlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGN1bGxfZmFjZV9tb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1 c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vt aXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9mcm9udF9mYWNlX3dpbmRpbmcgKENvZ2wuV2luZGluZyBm cm9udF93aW5kaW5nKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBi b29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJp bmcpIHRocm93cyBHTGliLkVycm9yOworQEAgLTMzNSw4ICsyMzUsNiBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2Rl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXll cl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9k ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1v ZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xh eWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBt b2RlKTsKK0BAIC0zNDUsMTAgKzI0Myw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBw b2ludF9zaXplKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9zaGluaW5lc3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZv cm1fMWYgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBmbG9hdCB2YWx1ZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xaSAoaW50IHVuaWZv cm1fbG9jYXRpb24sIGludCB2YWx1ZSk7CitAQCAtMzgyLDEwICsyNzYsNiBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3Jt X25vLCBpbnQgc2l6ZSwgYm9vbCB0cmFuc3Bvc2UsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX3BvcyA9 IDIuOSldIGZsb2F0W10gdmFsdWUpOworIAkJcHVibGljIHZvaWQgdXNlICgpOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFF1YXRlcm5pb24geworLQl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5k bGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAi Y29nbF9zaGFkZXJfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBTaGFkZXIg OiBDb2dsLkhhbmRsZSB7CitAQCAtNDY1LDEyICszNTUsMTAgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJcHVibGljIGludCBnZXRfYWxwaGFfYml0cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2JsdWVfYml0cyAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuQ29udGV4dCBnZXRfY29udGV4dCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2RlcHRo X2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHVub3du ZWQgQ29nbC5UZXh0dXJlIGdldF9kZXB0aF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2RlcHRo X3dyaXRlX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNTE2 LDYgKzQwNCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHB1c2hfbWF0cml4 ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hf cmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlf Mik7CisrCQlwdWJsaWMgdm9pZCBwdXNoX3JlZ2lvbl9jbGlwIChDYWlyby5SZWdpb24gcmVnaW9u KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3Nj aXNzb3JfY2xpcCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01MjksMTMgKzQxOCw5IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByb3Rh dGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxl ciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBy b3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGlj IHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKGJvb2wgZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQg KGJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CitAQCAtNjM1LDEwICs1MjAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBz ZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVu LCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVp bnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor QEAgLTY2Miw3ICs1NDMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgd2VhayBzdHJp bmcgbmFtZTsKKyAJCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9N QVRSSVgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorIAlwdWJsaWMgc3RydWN0IE1hdHJp eCB7CisgCQlwdWJsaWMgZmxvYXQgeHg7CisgCQlwdWJsaWMgZmxvYXQgeXg7CitAQCAtNjkyLDgg KzU3Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29sIGdldF9pbnZlcnNlIChv dXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNvZ2xfbWF0cml4 X2luaXRfaWRlbnRpdHkiKV0KKyAJCXB1YmxpYyBNYXRyaXguaWRlbnRpdHkgKCk7CistCQlwdWJs aWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJcHVibGljIHZv aWQgaW5pdF9mcm9tX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJ CXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgaW5pdF90cmFuc2xhdGlv biAoZmxvYXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0eik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCitAQCAtNzAyLDE5ICs1ODIsMTUgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGlj IHZvaWQgbG9va19hdCAoZmxvYXQgZXllX3Bvc2l0aW9uX3gsIGZsb2F0IGV5ZV9wb3NpdGlvbl95 LCBmbG9hdCBleWVfcG9zaXRpb25feiwgZmxvYXQgb2JqZWN0X3gsIGZsb2F0IG9iamVjdF95LCBm bG9hdCBvYmplY3RfeiwgZmxvYXQgd29ybGRfdXBfeCwgZmxvYXQgd29ybGRfdXBfeSwgZmxvYXQg d29ybGRfdXBfeik7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNvZ2xfbWF0cml4X211bHRpcGx5Iild CisgCQlwdWJsaWMgTWF0cml4Lm11bHRpcGx5IChDb2dsLk1hdHJpeCBhLCBDb2dsLk1hdHJpeCBi KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZs b2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIG9ydGhvZ3JhcGhpYyAoZmxvYXQg eF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBuZWFyLCBmbG9hdCBm YXIpOworIAkJcHVibGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95LCBmbG9hdCBhc3Bl Y3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworIAkJcHVibGljIHZvaWQgcHJvamVjdF9w b2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19p biwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7Cisg CQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h dCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0 ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRl cm5pb24pOworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxl cik7CisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzeik7 CistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4LCByZWYgZmxvYXQg eSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFu c2Zvcm1fcG9pbnQgKHJlZiBDb2dsLk1hdHJpeCBtYXRyaXgsIHJlZiBmbG9hdCB4LCByZWYgZmxv YXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKyAJCXB1YmxpYyB2b2lkIHRyYW5zZm9y bV9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50 c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7 CisgCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC04MTgsMzggKzY5NCwzMyBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlOT05FLAorIAkJTk9fR0VUX0RBVEEKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV8i LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistCQlURVhUVVJFX1lVViwKKy0J CVRFWFRVUkVfUkVBRF9QSVhFTFMsCistCQlPRkZTQ1JFRU4sCistCQlPRkZTQ1JFRU5fTVVMVElT QU1QTEUsCistCQlGT1VSX0NMSVBfUExBTkVTLAorLQkJU1RFTkNJTF9CVUZGRVIsCistCQlWQk9T LAorLQkJUEJPUywKKy0JCVVOU0lHTkVEX0lOVF9JTkRJQ0VTLAorLQkJREVQVEhfUkFOR0UsCist CQlQT0lOVF9TUFJJVEUsCistCQlNQVBfQlVGRkVSX0ZPUl9SRUFELAorLQkJTUFQX0JVRkZFUl9G T1JfV1JJVEUsCistCQlPTlNDUkVFTl9NVUxUSVBMRSwKKy0JCURFUFRIX1RFWFRVUkUKKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZF QVRVUkVfSURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisrCXB1YmxpYyBlbnVtIEZlYXR1cmVJRCB7CisrCQlbQ0NvZGUgKGNuYW1lID0gIkNP R0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRfSU5ESUNFUyIpXQorKwkJT0dMX0ZFQVRVUkVfSURf VU5TSUdORURfSU5UX0lORElDRVMsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9J RF9NQVBfQlVGRkVSX0ZPUl9SRUFEIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZP Ul9SRUFELAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9G T1JfV1JJVEUiKV0KKysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1dSSVRFLAorKwkJ W0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5UIildCisr CQlPR0xfRkVBVFVSRV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQsCisrCQlbQ0NvZGUgKGNuYW1lID0g IkNPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJT05fVElNRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURf UFJFU0VOVEFUSU9OX1RJTUUsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9G RU5DRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfRkVOQ0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNP R0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JH LAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSIpXQorKwkJ T0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFU VVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVSTkFMIildCisrCQlPR0xfRkVBVFVSRV9JRF9U RVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEZpbHRlclJldHVybiB7CisgCQlDT05USU5VRSwKKyAJ CVJFTU9WRQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNwcmVmaXggPSAiQ09HTF9GT0dfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVB UiwKKy0JCUVYUE9ORU5USUFMLAorLQkJRVhQT05FTlRJQUxfU1FVQVJFRAorLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFN RV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTQiKV0KKyAJcHVibGljIGVudW0gRnJhbWVFdmVudCB7CitAQCAtODYyLDYgKzczMywxNCBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCQlGUkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURTsKKyAJCXB1Ymxp YyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9HUkFQSElDU19SRVNFVF9TVEFUVVNf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBlbnVtIEdyYXBoaWNzUmVzZXRTdGF0 dXMgeworKwkJTk9fRVJST1IsCisrCQlHVUlMVFlfQ09OVEVYVF9SRVNFVCwKKysJCUlOTk9DRU5U X0NPTlRFWFRfUkVTRVQsCisrCQlVTktOT1dOX0NPTlRFWFRfUkVTRVQsCisrCQlQVVJHRURfQ09O VEVYVF9SRVNFVAorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdORURfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEluZGljZXNUeXBlIHsKKyAJCUJZVEUsCitAQCAtODg4 LDEyICs3NjcsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlORUFSRVNUX01JUE1BUF9MSU5FQVIs CisgCQlMSU5FQVJfTUlQTUFQX0xJTkVBUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBlbnVtIE1hdGVyaWFsTGF5ZXJUeXBlIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9N QVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUiKV0KKy0JCU1BVEVSSUFMX0xBWUVSX1RZUEVfVEVY VFVSRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9NQVRFUklBTF9XUkFQX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGVudW0gTWF0ZXJpYWxXcmFw TW9kZSB7CitAQCAtOTcxLDYgKzg0NCw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCURFUFRIXzE2 LAorIAkJREVQVEhfMzIsCisgCQlERVBUSF8yNF9TVEVOQ0lMXzg7CisrCQlwdWJsaWMgaW50IGdl dF9ieXRlc19wZXJfcGl4ZWwgKGludCBwbGFuZSk7CisrCQlwdWJsaWMgaW50IGdldF9uX3BsYW5l cyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1JF QURfUElYRUxTX0NPTE9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorQEAgLTEwNjQsOSArOTM5 LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIERlYnVnT2JqZWN0Rm9yZWFjaFR5cGVDYWxsYmFj ayAoQ29nbC5EZWJ1Z09iamVjdFR5cGVJbmZvIGluZm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgYm9vbCBNYXRlcmlhbExheWVyQ2FsbGJhY2sgKENvZ2wu TWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9pbmRleCk7CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisrCVtWZXJzaW9u IChzaW5jZSA9ICIwLjEwIildCisrCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEZlYXR1cmVDYWxsYmFj ayAoQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE2IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuRGlydHlDYWxsYmFjayAo Q29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVlbkRpcnR5SW5mbyBpbmZvKTsKK0BA IC0xMDc0LDEzICs5NDksOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5SZXNpemVDYWxsYmFjayAo Q29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0K Ky0JcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5YMTFNYXNrQ2FsbGJhY2sgKENvZ2wuT25z Y3JlZW4gb25zY3JlZW4sIHVpbnQzMiBldmVudF9tYXNrKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBQaXBlbGluZUxheWVyQ2Fs bGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSld CistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2dsLkZyYW1lYnVm ZmVyIGZyYW1lYnVmZmVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgVGV4dHVy ZTJERUdMSW1hZ2VFeHRlcm5hbEFsbG9jIChDb2dsLlRleHR1cmUyRCB0ZXhfMmQpIHRocm93cyBH TGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBo YXNfdGFyZ2V0ID0gZmFsc2UpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBVc2VyRGF0YURlc3Ry b3lDYWxsYmFjayAodm9pZCogZGF0YSk7CitAQCAtMTA5Miw2ICs5NjMsOCBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCXB1YmxpYyBjb25zdCBpbnQgQkdSX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9ERVBUSF9CSVQiKV0KKyAJcHVi bGljIGNvbnN0IGludCBERVBUSF9CSVQ7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUElYRUxfRk9STUFUX01BWF9QTEFORVMiKV0KKysJ cHVibGljIGNvbnN0IGludCBQSVhFTF9GT1JNQVRfTUFYX1BMQU5FUzsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVNVUxUX0JJVCIp XQorIAlwdWJsaWMgY29uc3QgaW50IFBSRU1VTFRfQklUOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklUIildCitAQCAt MTA5OSwxOSArOTcyLDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RFWFRVUkVfTUFYX1dBU1RFIild CisgCXB1YmxpYyBjb25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgYmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgYmxpdF9mcmFtZWJ1ZmZlciAoQ29n bC5GcmFtZWJ1ZmZlciBzcmMsIENvZ2wuRnJhbWVidWZmZXIgZGVzdCwgaW50IHNyY194LCBpbnQg c3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHRocm93 cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MiIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgY2hlY2tfZXh0ZW5zaW9uIChzdHJpbmcgbmFtZSwg c3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wuQ29sb3IgY29sb3IsIHVsb25n IGJ1ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JcHVibGljIHN0YXRpYyBib29sIGNsdXR0ZXJfY2hlY2tfZXh0ZW5zaW9uX0NMVVRURVIgKHN0 cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBjbHV0dGVyX3dpbnN5c19oYXNfZmVh dHVyZV9DTFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1cmUgZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCitAQCAtMTEyOSw1NyArOTkxLDM4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfb2JqZWN0X3ByaW50 X2luc3RhbmNlcyAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX2ZvZyAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBlbmRfZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZmVhdHVyZXNfYXZhaWxh YmxlIChDb2dsLkZlYXR1cmVGbGFncyBmZWF0dXJlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1 YmxpYyBzdGF0aWMgdm9pZCBmbHVzaCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRv cCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCBmb3JlYWNoX2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBj b250ZXh0LCBDb2dsLkZlYXR1cmVDYWxsYmFjayBjYWxsYmFjayk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0 X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF9iaXRtYXNrcyAo b3V0IGludCByZWQsIG91dCBpbnQgZ3JlZW4sIG91dCBpbnQgYmx1ZSwgb3V0IGludCBhbHBoYSk7 CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCXB1YmxpYyBzdGF0aWMgaW50NjQgZ2V0 X2Nsb2NrX3RpbWUgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGVw dGhfdGVzdF9lbmFibGVkICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHVu b3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZHJhd19mcmFtZWJ1ZmZlciAoKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCist CXB1YmxpYyBzdGF0aWMgQ29nbC5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLk1hdHJpeCBnZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsKKysJcHVibGljIHN0YXRpYyBD b2dsLkdyYXBoaWNzUmVzZXRTdGF0dXMgZ2V0X2dyYXBoaWNzX3Jlc2V0X3N0YXR1cyAoQ29nbC5D b250ZXh0IGNvbnRleHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3Vw IGdldF9vcHRpb25fZ3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuQ2FsbGJhY2sgZ2V0X3Byb2NfYWRkcmVz cyAoc3RyaW5nIHMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXgg KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQqIGdldF9zb3VyY2UgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgZ2V0X3ZpZXdwb3J0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gb3V0IGZs b2F0IHZbNF0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgi KV0KKyAJcHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ3R5cGVfbWF0cml4X2dldF90eXBlICgpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGhhc19mZWF0dXJlIChDb2ds LkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfY29udGV4dCAodm9pZCogb2JqZWN0KTsKKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisrCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZWJ1ZmZlciAodm9p ZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtMTE5Myw1MyArMTAzNiw5IEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0 YXRpYyBib29sIGlzX3RleHR1cmVfMmRfc2xpY2VkICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0J cHVibGljIHN0YXRpYyBib29sIGlzX3ZlcnRleF9idWZmZXJfaW5kaWNlcyAoQ29nbC5IYW5kbGUg aGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIG1hdHJpeF9l cXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBv cnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBm bG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBm b3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9seWdvbiAoQ29nbC5UZXh0dXJlVmVydGV4 IHZlcnRpY2VzLCB1aW50IG5fdmVydGljZXMsIGJvb2wgdXNlX2NvbG9yKTsKKy0JW0NDb2RlIChj 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 bG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisg CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChib29s IHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K K0BAIC0xMjQ3LDUzICsxMDQ2LDExIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIHN0YXRp YyB2b2lkIHNldF9kZXB0aF90ZXN0X2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X2ZvZyAoQ29nbC5Db2xvciBmb2dfY29sb3IsIENvZ2wuRm9nTW9kZSBtb2RlLCBmbG9h dCBkZW5zaXR5LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf bW9kZWx2aWV3X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf cHJvamVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9h dCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF9zb3VyY2VfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4 IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291 cmNlX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF92aWV3cG9ydCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNoYWRlcl9jb21waWxlIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyBzdHJpbmcgc2hhZGVyX2dldF9pbmZvX2xvZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBz dGF0aWMgQ29nbC5TaGFkZXJUeXBlIHNoYWRlcl9nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaGFuZGxl KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgYm9vbCBzaGFkZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgc2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisg CXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfc291cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0 cmluZyBzb3VyY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2lu Y2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zy b21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBD b2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorQEAgLTEzMDYsNTkgKzEwNjMsNiBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRl eHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVy ZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuNCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJp YnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0cmlidXRlVHlwZSB0eXBlLCBi 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 bGJhY2sgdXBkYXRlKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNC1jdXN0b20u dmFsYSB2YXBpL211dHRlci1jb2dsLTctY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggODEl CityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTQtY3VzdG9tLnZhbGEKK3JlbmFtZSB0byB2 YXBpL211dHRlci1jb2dsLTctY3VzdG9tLnZhbGEKK2luZGV4IDI1NTE4ODVhLi5jNGQ0YjkzYSAx MDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTQtY3VzdG9tLnZhbGEKKysrKyB2YXBpL211dHRl ci1jb2dsLTctY3VzdG9tLnZhbGEKK0BAIC0xLDEwICsxLDQgQEAKKyBuYW1lc3BhY2UgQ29nbCB7 CistCVtDb21wYWN0XQorLQlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiKV0KKy0JcHVibGlj IGNsYXNzIEJpdG1hcDogSGFuZGxlIHsKKy0JCXB1YmxpYyBzdGF0aWMgQml0bWFwIG5ld19mcm9t X2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCX0KKy0KKyAJW0Nv bXBhY3RdCisgCVtDQ29kZSAoY25hbWUgPSAiQ29nbEhhbmRsZSIpXQorIAlwdWJsaWMgY2xhc3Mg QnVmZmVyOiBIYW5kbGUgeworQEAgLTQyLDcgKzM2LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJ cHVibGljIGJvb2wgaXNfdmVydGV4X2J1ZmZlciAoKTsKKyAJfQorIAorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImNvZ2xfcGF0aF9j b3B5IildIAorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImNvZ2xfcGF0aF9jb3B5IildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xh c3MgUGF0aCB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgQG5ldyAoKTsKK0BAIC04MiwxOCArNzYs NiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzb3VyY2UgKHN0cmluZyBzb3Vy Y2UpOworIAl9CisgCistCVtDb21wYWN0XQorLQlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUi LCByZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNv Z2xfdGV4dHVyZV91bnJlZiIpXQorLQlwdWJsaWMgY2xhc3MgVGV4dHVyZTogSGFuZGxlIHsKKy0J CXB1YmxpYyBDb2dsLlBpeGVsRm9ybWF0IGdldF9mb3JtYXQgKCk7CistCQlwdWJsaWMgdWludCBn ZXRfcm93c3RyaWRlICgpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9iaXRtYXAgKENvZ2wuQml0 bWFwIGJtcF9oYW5kbGUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0 IGludGVybmFsX2Zvcm1hdCk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2RhdGEgKHVpbnQgd2lk dGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1h dCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCB1aW50IHJvd3N0cmlk ZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVjaGFyW10gZGF0YSk7CistCQlwdWJs aWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3Mg ZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJv cjsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fc3ViX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBmdWxs X3RleHR1cmUsIGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBpbnQgc3ViX2hl aWdodCk7CistCQlwdWJsaWMgVGV4dHVyZS53aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVp Z2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9m b3JtYXQpOworLQl9CistCisgCVtDb21wYWN0XQorIAlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5k bGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVyX3JlZiIsIHVucmVmX2Z1bmN0 aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl91bnJlZiIpXQorIAlwdWJsaWMgY2xhc3MgVmVydGV4 QnVmZmVyOiBIYW5kbGUgeworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTUuZGVwcyB2YXBp L211dHRlci1jb2dsLTcuZGVwcworc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2 YXBpL211dHRlci1jb2dsLTUuZGVwcworcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNy5kZXBz CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNC52YXBpIHZhcGkvbXV0dGVyLWNvZ2wtNy52 YXBpCitzaW1pbGFyaXR5IGluZGV4IDU5JQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00 LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTcudmFwaQoraW5kZXggNWRlOGY0NDcu LjYyMGMyMzE3IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNvZ2wtNC52YXBpCisrKysgdmFwaS9t dXR0ZXItY29nbC03LnZhcGkKK0BAIC0xLDEyICsxLDEzIEBACistLyogbXV0dGVyLWNvZ2wtNC52 YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1j b2dsLTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1b Q0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJz aW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKytbQ0NvZGUgKGNwcmVm aXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjciLCBs b3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKyBuYW1lc3BhY2UgQ29nbCB7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUi LCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0J cHVibGljIGNsYXNzIEJpdG1hcCA6IENvZ2wuSGFuZGxlIHsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9nZXRfZ3R5cGUg KCkiKV0KKysJcHVibGljIGNsYXNzIEJpdG1hcCA6IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBCaXRtYXAgKCk7 CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNvZ2xCaXRtYXAqIildCisrCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCQlwdWJsaWMgQml0bWFwLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1l KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAt MTYsMTAgKzE3LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3Jvd3N0cmlkZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9zaXplX2Zyb21fZmls ZSAoc3RyaW5nIGZpbGVuYW1lLCBvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CisrCQlw dWJsaWMgc3RhdGljIGJvb2wgZ2V0X3NpemVfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIG91 dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5C aXRtYXAgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9 ICJDb2dsSGFuZGxlIildCisgCVtDb21wYWN0XQorQEAgLTI4LDE1ICsyOCwyOCBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAoc2l6ZV90IG9mZnNldCwgW0NDb2Rl IChhcnJheV9sZW5ndGhfdHlwZSA9ICJzaXplX3QiKV0gdWludDhbXSBkYXRhKTsKKyAJCXB1Ymxp YyB2b2lkIHVubWFwICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNs YXNzIEV1bGVyIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg dHlwZV9pZCA9ICJjb2dsX2NvbnRleHRfZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBD b250ZXh0IDogQ29nbC5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIENvbnRleHQgKCk7CisrCQlwdWJsaWMgYm9vbCBpc19o YXJkd2FyZV9hY2NlbGVyYXRlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVu Y3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2Nsb3N1cmVfZ2V0 X2d0eXBlICgpIildCisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQor IAlwdWJsaWMgY2xhc3MgRnJhbWVDbG9zdXJlIHsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVfaW5mb19nZXRfZ3R5 cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEZyYW1lSW5mbyA6IENvZ2wuT2JqZWN0IHsKKysJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBGcmFt ZUluZm8gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwkJcHVibGljIGludDY0 IGdldF9mcmFtZV9jb3VudGVyICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJ CXB1YmxpYyBpbnQ2NCBnZXRfcHJlc2VudGF0aW9uX3RpbWUgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9yZWZyZXNoX3JhdGUgKCk7CisrCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgcmVmX2Z1bmN0aW9u ID0gImNvZ2xfaGFuZGxlX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfaGFuZGxlX3VucmVm IildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgSGFuZGxlIHsKK0BAIC02NSw2NSArNzgs MjAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBNYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wuTWF0ZXJpYWxMYXllckNhbGxiYWNrIGNh bGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAo Q29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5D b2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRz X2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGlj IENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9p bmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9k ZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2Rl X3QgKGludCBsYXllcl9pbmRleCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q29nbC5N YXRlcmlhbExheWVyPiBnZXRfbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBpbnQgZ2V0X25fbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBmbG9h dCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQg Z2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRf c3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgQHJlZiAoQ29nbC5I YW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxh eWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFf dGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBh bHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9h bWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5k X3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0 cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9j b2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDb2ds LkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29s b3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVk LCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworIAkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBl bWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyIChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuSGFuZGxlIHRleHR1cmUpOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwg c3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBz ZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0 YW50KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCitAQCAtMTMxLDQzICs5OSwxNSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJp eCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xh eWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJv b2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2Rl IG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFw X21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKysJCXB1YmxpYyBi b29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRl eCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9zaXplKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3Mp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5D b2xvciBzcGVjdWxhcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Vz ZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKyAJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBNYXRlcmlhbExheWVyIHsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWFnX2ZpbHRlciAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlw dWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWluX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJs aWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29n bC5NYXRlcmlhbExheWVyVHlwZSBnZXRfdHlwZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfcCAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVf cyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2Rl IGdldF93cmFwX21vZGVfdCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2JqZWN0X2dldF9ndHlwZSAoKSIpXQorIAlw dWJsaWMgYWJzdHJhY3QgY2xhc3MgT2JqZWN0IHsKK0BAIC0xNzgsMTMgKzExOCw5IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJcHVibGljIGNsYXNzIE9mZnNjcmVlbiA6IENvZ2wuT2JqZWN0LCBDb2ds LkZyYW1lYnVmZmVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBPZmZzY3JlZW4gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQq IEByZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE9mZnNjcmVlbi50b190ZXh0dXJlIChDb2dsLlRl eHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKHZvaWQqIG9m ZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlwdWJsaWMgT2Zmc2NyZWVuLndpdGhfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOwor IAl9CitAQCAtMTk0LDE3ICsxMzAsMTYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHJvdGVjdGVk IE9uc2NyZWVuICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBD b2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGFkZF9kaXJ0eV9jYWxsYmFjayAoW0NDb2RlIChkZWxl Z2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlbkRpcnR5Q2FsbGJhY2sgY2FsbGJh Y2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBDb2dsLkZyYW1lQ2xvc3VyZSBhZGRfZnJhbWVf Y2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuRnJhbWVD YWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5PbnNjcmVlblJl c2l6ZUNsb3N1cmUgYWRkX3Jlc2l6ZV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRf cG9zID0gMS41KV0gQ29nbC5PbnNjcmVlblJlc2l6ZUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVz ZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHVpbnQgYWRkX3N3YXBfYnVmZmVyc19jYWxsYmFjayAoQ29nbC5Td2FwQnVmZmVyc05v dGlmeSBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9iYWNrZW5kX3Nl dF9zaXplX0NMVVRURVIgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNCIpXQorIAkJcHVibGljIGludCBnZXRfYnVmZmVyX2FnZSAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdl dF9yZXNpemFibGUgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfcmVzaXphYmxlICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgaGlkZSAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE2IildCitAQCAtMjEzLDE4ICsxNDgsMTYgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2ZyYW1lX2NhbGxiYWNrIChDb2dsLkZyYW1lQ2xv c3VyZSBjbG9zdXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2 b2lkIHJlbW92ZV9yZXNpemVfY2FsbGJhY2sgKENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGNs b3N1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfc3dhcF9i dWZmZXJzX2NhbGxiYWNrICh1aW50IGlkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKENvZ2wuQm9vbCByZXNpemFibGUpOworKwkJ cHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoYm9vbCByZXNpemFibGUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2hvdyAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnMgKCk7CisrCQlwdWJs aWMgdm9pZCBzd2FwX2J1ZmZlcnMgKENvZ2wuRnJhbWVJbmZvIGZyYW1lX2luZm8pOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVyc193aXRo X2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworKwkJcHVibGljIHZv aWQgc3dhcF9idWZmZXJzX3dpdGhfZGFtYWdlIChpbnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFu Z2xlcywgQ29nbC5GcmFtZUluZm8gaW5mbyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgc3dhcF9yZWdpb24gKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0 YW5nbGVzKTsKKysJCXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChpbnQgcmVjdGFuZ2xlcywgaW50 IG5fcmVjdGFuZ2xlcywgQ29nbC5GcmFtZUluZm8gaW5mbyk7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2Nv cHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9vbnNj cmVlbl9kaXJ0eV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC0yNDQs NyArMTc3LDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlwZWxpbmVfZ2V0X2d0eXBlICgpIild CisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQaXBlbGluZSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJCXB1YmxpYyBQaXBlbGluZSAoQ29nbC5D b250ZXh0IGNvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IENvZ2wuUGlwZWxpbmUgY29weSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BA IC0yNTQsNDQgKzE4OCwzMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3RfcmVmZXJlbmNlICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQg KENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9k ZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5D b2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMg Q29nbC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21h Z19maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21pbl9maWx0ZXIgKGlu dCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg Q29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXll cl9pbmRleCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19l bmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxh eWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2ds LlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVX cmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdl dF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcGVyX3ZlcnRleF9wb2lu dF9zaXplICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRf c2l6ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBn ZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3VuaWZvcm1fbG9jYXRpb24gKHN0cmlu ZyB1bmlmb3JtX25hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKK0BAIC0zMDAsMTEgKzIy MCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLlBpcGVsaW5lQWxwaGFG dW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJp ZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9h bWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRf c3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9ibGVuZCAoc3Ry aW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3Ig Y29uc3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorQEAgLTMxMyw0 NiArMjI5LDM1IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvcjRm IChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVp bnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcl9tYXNrIChDb2ds LkNvbG9yTWFzayBjb2xvcl9tYXNrKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9kZSAoQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9k ZSBjdWxsX2ZhY2VfbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBl bWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfZnJvbnRfZmFjZV93aW5kaW5nIChDb2dsLldpbmRpbmcgZnJvbnRfd2luZGluZyk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9j b21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGli LkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRl eCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFu dCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfZmlsdGVycyAoaW50IGxh eWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1pbl9maWx0ZXIsIENvZ2wuUGlwZWxpbmVG aWx0ZXIgbWFnX2ZpbHRlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJpeCBt YXRyaXgpOworKwkJcHVibGljIHZvaWQgc2V0X2xheWVyX21heF9taXBtYXBfbGV2ZWwgKGludCBs YXllciwgaW50IG1heF9sZXZlbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2xheWVyX251bGxfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4LCBDb2ds LlRleHR1cmVUeXBlIHRleHR1cmVfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbnVs bF90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFi bGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9y OworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAo aW50IGxheWVyX2luZGV4LCBib29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlRleHR1cmUg dGV4dHVyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9k ZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1v ZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBN b2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFw TW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2ds LkJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dz IEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfcGVyX3ZlcnRleF9wb2ludF9zaXplIChi b29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNz IChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFmIChpbnQgdW5p Zm9ybV9sb2NhdGlvbiwgZmxvYXQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBp bnQgdmFsdWUpOworQEAgLTM2MSw3ICsyNjYsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9pbnQgKGlu dCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25lbnRzLCBpbnQgY291bnQsIGludCB2YWx1 ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5p Zm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgZGltZW5zaW9ucywgaW50IGNv dW50LCBDb2dsLkJvb2wgdHJhbnNwb3NlLCBmbG9hdCB2YWx1ZSk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgZGltZW5zaW9ucywg aW50IGNvdW50LCBib29sIHRyYW5zcG9zZSwgZmxvYXQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5k bGUgcHJvZ3JhbSk7CisgCX0KK0BAIC0zODgsNyArMjkzLDcgQEAgbmFtZXNwYWNlIENvZ2wgewor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFF1YXRlcm5pb24gewor KwlwdWJsaWMgY2xhc3MgU2Nhbm91dCB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJj b2dsX3NoYWRlcl9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3NoYWRlcl91bnJlZiIpXQor IAlbQ29tcGFjdF0KK0BAIC00MDEsNDggKzMwNiwyMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlw dWJsaWMgYm9vbCBpc19jb21waWxlZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHNvdXJjZSAoc3RyaW5n IHNvdXJjZSk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX3RleHR1cmVfcmVm IiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfZ2V0X2d0eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24g PSAiY29nbF90ZXh0dXJlX3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGV4 dHVyZSA6IENvZ2wuSGFuZGxlIHsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhy b3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsK Ky0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBibXBfaGFuZGxlLCBD b2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQp OworLQkJcHVibGljIFRleHR1cmUuZnJvbV9kYXRhICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwg Q29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBp eGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgdWludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSB1Y2hhcltdIGRhdGEpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9m aWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVs Rm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgVGV4 dHVyZS5mcm9tX3N1Yl90ZXh0dXJlIChDb2dsLlRleHR1cmUgZnVsbF90ZXh0dXJlLCBpbnQgc3Vi X3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLlRleHR1cmVDb21wb25lbnRzIGdl dF9jb21wb25lbnRzICgpOworLQkJcHVibGljIGludCBnZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1h dCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCXB1YmxpYyBDb2dsLlBp eGVsRm9ybWF0IGdldF9mb3JtYXQgKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9nbF90ZXh0 dXJlIChvdXQgdWludCBvdXRfZ2xfaGFuZGxlLCBvdXQgdWludCBvdXRfZ2xfdGFyZ2V0KTsKKy0J CXB1YmxpYyB1aW50IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tYXhfd2FzdGUg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBn ZXRfcHJlbXVsdGlwbGllZCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9yb3dzdHJpZGUgKCk7Cist CQlwdWJsaWMgdWludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGlzX3NsaWNl ZCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBu ZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxh Z3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgs IGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZv cm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVp bnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0 dXJlIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxh Z3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4 Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJv bV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVp bnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVs Rm9ybWF0IGZvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVy ZSBuZXdfZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lk dGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGlj IENvZ2wuVGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29n bC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9u ZW50cyAoQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKy0JCXB1YmxpYyBDb2ds LkJvb2wgc2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1 aW50OCBkYXRhLCBpbnQgbGV2ZWwpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcmVtdWx0aXBsaWVkIChDb2dsLkJv b2wgcHJlbXVsdGlwbGllZCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb24gKGludCBz cmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVp bnQgZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZv cm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uX2Zyb21fYml0bWFwIChpbnQg c3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1 aW50IGRzdF9oZWlnaHQsIENvZ2wuQml0bWFwIGJpdG1hcCk7CistCQlwdWJsaWMgVGV4dHVyZS53 aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFn cywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBsb3dlcl9jYXNlX2NzdWZmaXggPSAidGV4dHVyZV8y ZCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlXzJkX2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMg Y2xhc3MgVGV4dHVyZTJEIDogQ29nbC5PYmplY3QsIENvZ2wuVGV4dHVyZSB7CisrCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgVGV4dHVyZTJE ICgpOworKwkJcHVibGljIHZvaWQgZWdsX2ltYWdlX2V4dGVybmFsX2FsbG9jX2ZpbmlzaCAodm9p ZCogdXNlcl9kYXRhLCBHTGliLkRlc3Ryb3lOb3RpZnkgZGVzdHJveSk7CisrCQlwdWJsaWMgdm9p ZCBlZ2xfaW1hZ2VfZXh0ZXJuYWxfYmluZCAoKTsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJCXB1Ymxp YyBUZXh0dXJlMkQuZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCk7CisrCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgbG93ZXJfY2FzZV9jc3VmZml4 ID0gInRleHR1cmVfMmRfc2xpY2VkIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfMmRfc2xpY2Vk X2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgVGV4dHVyZTJEU2xpY2VkIDogQ29nbC5P YmplY3QsIENvZ2wuVGV4dHVyZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgVGV4dHVyZTJEU2xpY2VkICgpOworKwkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTYiKV0KKysJCXB1YmxpYyBUZXh0dXJlMkRTbGljZWQuZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFw IGJtcCwgaW50IG1heF93YXN0ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2ds X3ZlcnRleF9idWZmZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVy X3VucmVmIildCisgCVtDb21wYWN0XQorQEAgLTQ2OCw3ICszNDgsNyBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQg PSAiY29nbF9mcmFtZWJ1ZmZlcl9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBG cmFtZWJ1ZmZlciA6IENvZ2wuT2JqZWN0IHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlw dWJsaWMgYm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGNsZWFyICh1bG9uZyBidWZmZXJzLCBDb2ds LkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC00ODgsNiAr MzY4LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3Jf cXVhcmsgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQg ZmluaXNoICgpOworKwkJcHVibGljIHZvaWQgZmx1c2ggKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmln aHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC00OTUsMjIgKzM3NiwxOCBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50 IGdldF9ibHVlX2JpdHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBD b2dsLkNvbnRleHQgZ2V0X2NvbnRleHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgaW50IGdldF9kZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVy ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgQ29nbC5Cb29s IGdldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x OCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKysJ CXB1YmxpYyBib29sIGdldF9kZXB0aF93cml0ZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGl0aGVyX2VuYWJsZWQgKCk7 CisrCQlwdWJsaWMgYm9vbCBnZXRfZGl0aGVyX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGdldF9ncmVlbl9iaXRzICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVi bGljIENvZ2wuQm9vbCBnZXRfaXNfc3RlcmVvICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2lzX3N0 ZXJlbyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ29nbC5N YXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorQEAgLTU0NywxMiArNDI0LDEzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2 b2lkIHB1c2hfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIHB1c2hfcmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9h dCB4XzIsIGZsb2F0IHlfMik7CisrCQlwdWJsaWMgdm9pZCBwdXNoX3JlZ2lvbl9jbGlwIChDYWly by5SZWdpb24gcmVnaW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdm9pZCBwdXNoX3NjaXNzb3JfY2xpcCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBo ZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgcmVhZF9waXhlbHMgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2ds LlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludDggcGl4ZWxzKTsKKysJCXB1YmxpYyBib29sIHJlYWRf cGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZv cm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVsc19pbnRvX2JpdG1hcCAoaW50IHgsIGlu dCB5LCBDb2dsLlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wuQml0bWFwIGJpdG1hcCk7Cisr CQlwdWJsaWMgYm9vbCByZWFkX3BpeGVsc19pbnRvX2JpdG1hcCAoaW50IHgsIGludCB5LCBDb2ds LlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wuQml0bWFwIGJpdG1hcCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCByZXNvbHZlX3NhbXBsZXMgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNTYwLDE5ICs0MzgsMTMgQEAgbmFtZXNw YWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lk IHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2ds LkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlw dWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg dm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3RleHR1cmVf ZW5hYmxlZCAoQ29nbC5Cb29sIGVuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChDb2dsLkJvb2wgZGVw dGhfd3JpdGVfZW5hYmxlZCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxl ZCAoYm9vbCBkZXB0aF93cml0ZV9lbmFibGVkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaXRoZXJfZW5hYmxlZCAoQ29nbC5Cb29sIGRpdGhlcl9l bmFibGVkKTsKKysJCXB1YmxpYyB2b2lkIHNldF9kaXRoZXJfZW5hYmxlZCAoYm9vbCBkaXRoZXJf ZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorQEAgLTU4OCw2ICs0NjAsMzkgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAo ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfZ2V0X2d0eXBlICgp IildCisrCXB1YmxpYyBpbnRlcmZhY2UgVGV4dHVyZSA6IENvZ2wuT2JqZWN0IHsKKysJCXB1Ymxp YyBib29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyB1 aW50MzIgZXJyb3JfcXVhcmsgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJ cHVibGljIENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgZ2V0X2NvbXBvbmVudHMgKCk7CisrCQlwdWJs aWMgaW50IGdldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUs IFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdPyBkYXRhKTsKKysJCXB1Ymxp YyBib29sIGdldF9nbF90ZXh0dXJlIChvdXQgdWludCBvdXRfZ2xfaGFuZGxlLCBvdXQgdWludCBv dXRfZ2xfdGFyZ2V0KTsKKysJCXB1YmxpYyB1aW50IGdldF9oZWlnaHQgKCk7CisrCQlwdWJsaWMg aW50IGdldF9tYXhfd2FzdGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJ cHVibGljIGJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CisrCQlwdWJsaWMgdWludCBnZXRfd2lk dGggKCk7CisrCQlwdWJsaWMgYm9vbCBpc19zbGljZWQgKCk7CisrCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1h cCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVy bmFsX2Zvcm1hdCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRl eHR1cmUgbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVG bGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50 ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl KV0gdWludDhbXSBkYXRhKTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisrCQlwdWJsaWMgc3RhdGljIENv Z2wuVGV4dHVyZSBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZs YWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIu RXJyb3I7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIENvZ2wuVGV4dHVyZSBuZXdfZnJv bV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBz dWJfaGVpZ2h0KTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisrCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4 dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJl RmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9uZW50cyAoQ29n bC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKysJCXB1YmxpYyBib29sIHNldF9kYXRh IChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgaW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgaW50IGxldmVsKSB0aHJvd3MgR0xpYi5FcnJv cjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgdm9pZCBzZXRfcHJl bXVsdGlwbGllZCAoYm9vbCBwcmVtdWx0aXBsaWVkKTsKKysJCXB1YmxpYyBib29sIHNldF9yZWdp b24gKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rf d2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVs Rm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXSB1aW50OFtdIGRhdGEpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorKwkJcHVi bGljIGJvb2wgc2V0X3JlZ2lvbl9mcm9tX2JpdG1hcCAoaW50IHNyY194LCBpbnQgc3JjX3ksIGlu dCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBDb2ds LkJpdG1hcCBiaXRtYXApOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorIAlbU2ltcGxlVHlwZV0KKyAJcHVibGljIHN0cnVjdCBBbmdsZSA6IGludDMy IHsKK0BAIC02MzUsMTAgKzU0MCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lk IHNldF9ibHVlX2J5dGUgKHVpbnQ4IGJsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2JsdWVfZmxvYXQgKGZsb2F0IGJsdWUpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3Jl ZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9mcm9tXzR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwg dWludDggYWxwaGEpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2dyZWVuIChmbG9hdCBncmVlbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CitAQCAtNjYyLDcgKzU2Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB3ZWFrIHN0 cmluZyBuYW1lOworIAkJcHVibGljIHVsb25nIGluc3RhbmNlX2NvdW50OworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiQ09HTF9UWVBF X01BVFJJWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj b3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9m cmVlIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisgCXB1YmxpYyBzdHJ1Y3QgTWF0 cml4IHsKKyAJCXB1YmxpYyBmbG9hdCB4eDsKKyAJCXB1YmxpYyBmbG9hdCB5eDsKK0BAIC02ODks MzIgKzU5MCwyNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBmcnVzdHVtIChm bG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpf bmVhciwgZmxvYXQgel9mYXIpOworIAkJcHVibGljIHVub3duZWQgZmxvYXRbXSBnZXRfYXJyYXkg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdl dF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CisrCQlwdWJsaWMgYm9vbCBnZXRf aW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworIAkJW0NDb2RlIChjbmFtZSA9ICJj b2dsX21hdHJpeF9pbml0X2lkZW50aXR5IildCisgCQlwdWJsaWMgTWF0cml4LmlkZW50aXR5ICgp OworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0J CXB1YmxpYyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVy bmlvbik7CisrCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1 bGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGluaXRf dHJhbnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBpc19pZGVudGl0eSAoKTsKKysJ CXB1YmxpYyBib29sIGlzX2lkZW50aXR5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAkJcHVibGljIHZvaWQgbG9va19hdCAoZmxvYXQgZXllX3Bvc2l0aW9uX3gsIGZsb2F0IGV5 ZV9wb3NpdGlvbl95LCBmbG9hdCBleWVfcG9zaXRpb25feiwgZmxvYXQgb2JqZWN0X3gsIGZsb2F0 IG9iamVjdF95LCBmbG9hdCBvYmplY3RfeiwgZmxvYXQgd29ybGRfdXBfeCwgZmxvYXQgd29ybGRf dXBfeSwgZmxvYXQgd29ybGRfdXBfeik7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNvZ2xfbWF0cml4 X211bHRpcGx5IildCisgCQlwdWJsaWMgTWF0cml4Lm11bHRpcGx5IChDb2dsLk1hdHJpeCBhLCBD b2dsLk1hdHJpeCBiKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxv YXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIG9ydGhvZ3Jh cGhpYyAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBu ZWFyLCBmbG9hdCBmYXIpOworIAkJcHVibGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95 LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworIAkJcHVibGljIHZv aWQgcHJvamVjdF9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZv aWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBu X3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0 ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVu ZS5FdWxlciBldWxlcik7CisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5 LCBmbG9hdCBzeik7CistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4 LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKysJCXB1YmxpYyBzdGF0 aWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBDb2dsLk1hdHJpeCBtYXRyaXgsIHJlZiBmbG9h dCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKyAJCXB1YmxpYyB2 b2lkIHRyYW5zZm9ybV9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4s IHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGlu dCBuX3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC04MDEsMTYgKzY5 Nyw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVdJTkRPV19CVUZGRVIsCisgCQlPRkZTQ1JFRU5f QlVGRkVSCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX0NPTE9SX01BU0tfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtG bGFnc10KKy0JcHVibGljIGVudW0gQ29sb3JNYXNrIHsKKy0JCU5PTkUsCistCQlSRUQsCistCQlH UkVFTiwKKy0JCUJMVUUsCistCQlBTFBIQSwKKy0JCUFMTAorLQl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9ERVBUSF9URVNUX0ZV TkNUSU9OXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBEZXB0aFRlc3RG dW5jdGlvbiB7CisgCQlORVZFUiwKK0BAIC04MjIsNDYgKzcwOCw0MSBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlHRVFVQUwsCisgCQlBTFdBWVMKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV8iLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX0VHTF9JTUFHRV9GTEFHXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor IAlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVudW0gRmVh dHVyZUZsYWdzIHsKKy0JCVRFWFRVUkVfUkVDVEFOR0xFLAorLQkJVEVYVFVSRV9OUE9ULAorLQkJ VEVYVFVSRV9ZVVYsCistCQlURVhUVVJFX1JFQURfUElYRUxTLAorLQkJU0hBREVSU19HTFNMLAor LQkJT0ZGU0NSRUVOLAorLQkJT0ZGU0NSRUVOX01VTFRJU0FNUExFLAorLQkJT0ZGU0NSRUVOX0JM SVQsCistCQlGT1VSX0NMSVBfUExBTkVTLAorLQkJU1RFTkNJTF9CVUZGRVIsCistCQlWQk9TLAor LQkJUEJPUywKKy0JCVVOU0lHTkVEX0lOVF9JTkRJQ0VTLAorLQkJREVQVEhfUkFOR0UsCistCQlU RVhUVVJFX05QT1RfQkFTSUMsCistCQlURVhUVVJFX05QT1RfTUlQTUFQLAorLQkJVEVYVFVSRV9O UE9UX1JFUEVBVCwKKy0JCVBPSU5UX1NQUklURSwKKy0JCVRFWFRVUkVfM0QsCistCQlNQVBfQlVG RkVSX0ZPUl9SRUFELAorLQkJTUFQX0JVRkZFUl9GT1JfV1JJVEUsCistCQlPTlNDUkVFTl9NVUxU SVBMRSwKKy0JCURFUFRIX1RFWFRVUkUKKysJcHVibGljIGVudW0gRWdsSW1hZ2VGbGFncyB7Cisr CQlOT05FLAorKwkJTk9fR0VUX0RBVEEKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV9JRF8iLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIGVudW0g RmVhdHVyZUlEIHsKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1VOU0lHTkVE X0lOVF9JTkRJQ0VTIildCisrCQlPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRfSU5ESUNFUywK KysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1JFQUQi KV0KKysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1JFQUQsCisrCQlbQ0NvZGUgKGNu YW1lID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9XUklURSIpXQorKwkJT0dMX0ZF QVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xf RkVBVFVSRV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1NXQVBf QlVGRkVSU19FVkVOVCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1BSRVNF TlRBVElPTl9USU1FIildCisrCQlPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJT05fVElNRSwKKysJ CVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0ZFTkNFIildCisrCQlPR0xfRkVBVFVS RV9JRF9GRU5DRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVf UkciKV0KKysJCU9HTF9GRUFUVVJFX0lEX1RFWFRVUkVfUkcsCisrCQlbQ0NvZGUgKGNuYW1lID0g IkNPR0xfRkVBVFVSRV9JRF9CVUZGRVJfQUdFIildCisrCQlPR0xfRkVBVFVSRV9JRF9CVUZGRVJf QUdFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9FR0xfSU1B R0VfRVhURVJOQUwiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVS TkFMLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfQkxJVF9GUkFNRUJVRkZF UiIpXQorKwkJT0dMX0ZFQVRVUkVfSURfQkxJVF9GUkFNRUJVRkZFUgorIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GSUxURVJf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEZpbHRlclJldHVybiB7Cisg CQlDT05USU5VRSwKKyAJCVJFTU9WRQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0dfTU9ERV8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb2dN b2RlIHsKKy0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAorLQkJRVhQT05FTlRJQUxfU1FVQVJF RAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGVudW0gRnJhbWVFdmVudCB7CitAQCAtODc0 LDYgKzc1NSwxNCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlGUkFNRUJVRkZFUl9FUlJPUl9BTExP Q0FURTsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworIAl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9HUkFQSElD U19SRVNFVF9TVEFUVVNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBlbnVtIEdy YXBoaWNzUmVzZXRTdGF0dXMgeworKwkJTk9fRVJST1IsCisrCQlHVUlMVFlfQ09OVEVYVF9SRVNF VCwKKysJCUlOTk9DRU5UX0NPTlRFWFRfUkVTRVQsCisrCQlVTktOT1dOX0NPTlRFWFRfUkVTRVQs CisrCQlQVVJHRURfQ09OVEVYVF9SRVNFVAorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdORURf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEluZGljZXNUeXBlIHsKKyAJ CUJZVEUsCitAQCAtOTAwLDEyICs3ODksNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlORUFSRVNU X01JUE1BUF9MSU5FQVIsCisgCQlMSU5FQVJfTUlQTUFQX0xJTkVBUgorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklB TF9MQVlFUl9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsTGF5ZXJUeXBlIHsKKy0JCVtDQ29kZSAo Y25hbWUgPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUiKV0KKy0JCU1BVEVSSUFM X0xBWUVSX1RZUEVfVEVYVFVSRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9XUkFQX01PREVfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGVu dW0gTWF0ZXJpYWxXcmFwTW9kZSB7CitAQCAtOTcwLDYgKzg1MywxMCBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlCR1JBXzEwMTAxMDIsCisgCQlBUkdCXzIxMDEwMTAsCisgCQlBQkdSXzIxMDEwMTAs CisrCQlSR0JBX0ZQXzE2MTYxNjE2LAorKwkJQkdSQV9GUF8xNjE2MTYxNiwKKysJCUFSR0JfRlBf MTYxNjE2MTYsCisrCQlBQkdSX0ZQXzE2MTYxNjE2LAorIAkJUkdCQV84ODg4X1BSRSwKKyAJCUJH UkFfODg4OF9QUkUsCisgCQlBUkdCXzg4ODhfUFJFLAorQEAgLTk4MCw5ICs4NjcsMTYgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJQkdSQV8xMDEwMTAyX1BSRSwKKyAJCUFSR0JfMjEwMTAxMF9QUkUs CisgCQlBQkdSXzIxMDEwMTBfUFJFLAorKwkJUkdCQV9GUF8xNjE2MTYxNl9QUkUsCisrCQlCR1JB X0ZQXzE2MTYxNjE2X1BSRSwKKysJCUFSR0JfRlBfMTYxNjE2MTZfUFJFLAorKwkJQUJHUl9GUF8x NjE2MTYxNl9QUkUsCisgCQlERVBUSF8xNiwKKyAJCURFUFRIXzMyLAorLQkJREVQVEhfMjRfU1RF TkNJTF84CisrCQlERVBUSF8yNF9TVEVOQ0lMXzg7CisrCQlwdWJsaWMgaW50IGdldF9ieXRlc19w ZXJfcGl4ZWwgKGludCBwbGFuZSk7CisrCQlwdWJsaWMgaW50IGdldF9uX3BsYW5lcyAoKTsKKysJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1JFQURfUElYRUxT X0NPTE9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbRmxhZ3NdCitAQCAtMTA0MSwxMyAr OTM1LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTk9fU0xJQ0lORywKKyAJCU5PX0FUTEFTCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX1RFWFRVUkVfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIGVudW0gVGV4dHVyZVR5cGUgeworLQkJQDJELAor LQkJQDNELAorLQkJUkVDVEFOR0xFCistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1ZFUlRJQ0VTX01PREVfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVudW0g VmVydGljZXNNb2RlIHsKK0BAIC0xMDY3LDcgKzk1NCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X1dJTlNZU19GRUFUVVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBX aW5zeXNGZWF0dXJlIHsKKyAJCU1VTFRJUExFX09OU0NSRUVOLAorLQkJU1dBUF9USFJPVFRMRSwK KyAJCVZCTEFOS19DT1VOVEVSLAorIAkJVkJMQU5LX1dBSVQsCisgCQlURVhUVVJFX0ZST01fUElY TUFQLAorQEAgLTEwODIsOSArOTY4LDEyIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09i amVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9z ID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBN YXRlcmlhbExheWVyQ2FsbGJhY2sgKENvZ2wuTWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9p bmRleCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3Rh bmNlX3BvcyA9IDEuOSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIwLjEwIildCisrCXB1YmxpYyBk ZWxlZ2F0ZSB2b2lkIEZlYXR1cmVDYWxsYmFjayAoQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9 IDMuOSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCXB1YmxpYyBkZWxlZ2F0ZSB2 b2lkIEZyYW1lQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuRnJhbWVFdmVu dCBldmVudCwgQ29nbC5GcmFtZUluZm8gaW5mbyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE2IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuRGlydHlDYWxsYmFj ayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVlbkRpcnR5SW5mbyBpbmZvKTsK K0BAIC0xMDkyLDEyICs5ODEsMTAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2FsbGJh Y2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIu OSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxiYWNrIChDb2ds Lk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBQaXBlbGlu ZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7 CisrCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFBpcGVsaW5lTGF5ZXJDYWxsYmFjayAoQ29nbC5QaXBl bGluZSBwaXBlbGluZSwgaW50IGxheWVyX2luZGV4KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVn YXRlIHZvaWQgU3dhcEJ1ZmZlcnNOb3RpZnkgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIp OworKwlwdWJsaWMgZGVsZWdhdGUgYm9vbCBUZXh0dXJlMkRFR0xJbWFnZUV4dGVybmFsQWxsb2Mg KENvZ2wuVGV4dHVyZTJEIHRleF8yZCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190YXJnZXQgPSBmYWxzZSldCisgCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIFVzZXJEYXRhRGVzdHJveUNhbGxiYWNrICh2b2lkKiBkYXRhKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09H TF9BRklSU1RfQklUIildCitAQCAtMTEwOCw2ICs5OTUsOCBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CXB1YmxpYyBjb25zdCBpbnQgQkdSX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9ERVBUSF9CSVQiKV0KKyAJcHVibGljIGNvbnN0 IGludCBERVBUSF9CSVQ7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNuYW1lID0gIkNPR0xfUElYRUxfRk9STUFUX01BWF9QTEFORVMiKV0KKysJcHVibGljIGNv bnN0IGludCBQSVhFTF9GT1JNQVRfTUFYX1BMQU5FUzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVNVUxUX0JJVCIpXQorIAlwdWJs aWMgY29uc3QgaW50IFBSRU1VTFRfQklUOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklUIildCitAQCAtMTExNSwyMSAr MTAwNCwxMiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfVEVYVFVSRV9NQVhfV0FTVEUiKV0KKyAJcHVi bGljIGNvbnN0IGludCBURVhUVVJFX01BWF9XQVNURTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBiZWdpbl9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2hlY2tfZXh0ZW5zaW9uIChzdHJp bmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wuQ29sb3IgY29s b3IsIHVsb25nIGJ1ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl9jaGVja19leHRlbnNp b25fQ0xVVFRFUiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworKwlwdWJsaWMgc3RhdGljIGJv b2wgYmxpdF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBzcmMsIENvZ2wuRnJhbWVidWZm ZXIgZGVzdCwgaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCBpbnQg d2lkdGgsIGludCBoZWlnaHQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1 dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1 cmUpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVfQ0xV VFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjb2xvcl9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsK KysJcHVibGljIHN0YXRpYyBib29sIGNvbG9yX2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGNvbG9yX2luaXRfZnJvbV9o c2wgKG91dCBDb2dsLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IHNhdHVyYXRpb24sIGZs b2F0IGx1bWluYW5jZSk7CitAQCAtMTE0MywyMzQgKzEwMjMsODcgQEAgbmFtZXNwYWNlIENvZ2wg eworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1 Z19vYmplY3RfcHJpbnRfaW5zdGFuY2VzICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfZm9nICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5C b29sIGZlYXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxv YXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgZm9yZWFjaF9mZWF0 dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlQ2FsbGJhY2sgY2FsbGJhY2sp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKysJ cHVibGljIHN0YXRpYyBib29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBnZXRfYml0bWFza3MgKG91dCBpbnQgcmVkLCBvdXQgaW50IGdyZWVuLCBvdXQgaW50 IGJsdWUsIG91dCBpbnQgYWxwaGEpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlw dWJsaWMgc3RhdGljIGludDY0IGdldF9jbG9ja190aW1lIChDb2dsLkNvbnRleHQgY29udGV4dCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFibGVkICgpOworKwlwdWJsaWMg c3RhdGljIGJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2RyYXdfZnJhbWVi dWZmZXIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuRmVhdHVyZUZsYWdzIGdldF9m ZWF0dXJlcyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7 CisrCXB1YmxpYyBzdGF0aWMgQ29nbC5HcmFwaGljc1Jlc2V0U3RhdHVzIGdldF9ncmFwaGljc19y ZXNldF9zdGF0dXMgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0 aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLkNhbGxi YWNrIGdldF9wcm9jX2FkZHJlc3MgKHN0cmluZyBzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0 X3Byb2plY3Rpb25fbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkKiBnZXRf c291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF92aWV3cG9ydCAoW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIG91dCBmbG9hdCB2WzRdKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE4IildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGd0eXBlX21h dHJpeF9nZXRfdHlwZSAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5Cb29sIGlzX2ZyYW1lYnVmZmVyICh2b2lkKiBvYmplY3QpOworKwlwdWJsaWMgc3RhdGljIGJv b2wgaGFzX2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBjb250ZXh0LCBDb2dsLkZlYXR1cmVJRCBmZWF0 dXJlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX29u c2NyZWVuICh2b2lkKiBvYmplY3QpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfY29udGV4dCAo dm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJv b2wgaXNfcGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuQm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7Cisr CXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZV9pbmZvICh2b2lkKiBvYmplY3QpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBtYXRyaXhfZXF1YWwgKHZvaWQq IHYxLCB2b2lkKiB2Mik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgb3J0aG8gKGZsb2F0 IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwg ZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92eSwgZmxvYXQg YXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVyZVZlcnRleCB2ZXJ0aWNlcywg dWludCBuX3ZlcnRpY2VzLCBDb2dsLkJvb2wgdXNlX2NvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bf bWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvcF9zb3VyY2UgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGUgKGZsb2F0 IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF9tdWx0aXRleHR1cmVfY29vcmRz IChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50IHRleF9jb29yZHNfbGVuKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93aXRoX3Rl eHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgZmxv YXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQgdHkyKTsKKysJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX2ZyYW1lYnVmZmVyICh2b2lk KiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFu Z2xlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQg bl9yZWN0cyk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMg Ym9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjguNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlc193aXRoX3RleHR1cmVfY29vcmRzIChbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKysJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfcGlwZWxp bmUgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc190ZXh0dXJl XzJkICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5 LCBmbG9hdCB6KTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRp YyBib29sIGlzX3RleHR1cmVfMmRfc2xpY2VkICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKENvZ2wuQm9vbCBzZXR0aW5nKTsKKysJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgbWF0cml4X2VxdWFs ICh2b2lkKiB2MSwgdm9pZCogdjIpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9kZXB0aF90ZXN0X2VuYWJs ZWQgKENvZ2wuQm9vbCBzZXR0aW5nKTsKKysJcHVibGljIHN0YXRpYyB2b2lkIHNldF9iYWNrZmFj ZV9jdWxsaW5nX2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvZyAo Q29nbC5Db2xvciBmb2dfY29sb3IsIENvZ2wuRm9nTW9kZSBtb2RlLCBmbG9hdCBkZW5zaXR5LCBm bG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJcHVibGljIHN0YXRpYyB2b2lkIHNldF9kZXB0 aF90ZXN0X2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vZGVsdmll d19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf dHJhY2luZ19kaXNhYmxlZF9vbl90aHJlYWQgKHZvaWQqIGRhdGEpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNl dF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CisrCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfdHJhY2luZ19lbmFibGVkX29uX3RocmVhZCAodm9pZCogZGF0YSwgc3RyaW5n IGdyb3VwLCBzdHJpbmcgZmlsZW5hbWUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNl dF9zb3VyY2VfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF9zb3VyY2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQg Ymx1ZSwgZmxvYXQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3Vy Y2VfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFs cGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX3RleHR1cmUgKENv Z2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF92aWV3 cG9ydCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNoYWRlcl9jb21waWxlIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBzdHJpbmcgc2hh ZGVyX2dldF9pbmZvX2xvZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKysJcHVibGljIHN0YXRpYyB2 b2lkIHNldF90cmFjaW5nX2VuYWJsZWRfb25fdGhyZWFkX3dpdGhfZmQgKHZvaWQqIGRhdGEsIHN0 cmluZyBncm91cCwgaW50IGZkKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5TaGFkZXJUeXBlIHNoYWRlcl9nZXRf dHlwZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIHNoYWRlcl9pc19j b21waWxlZCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRs ZSBzaGFkZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9z b3VyY2UgKENvZ2wuSGFuZGxlIHNoYWRlciwgc3RyaW5nIHNvdXJjZSk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg c2hhZGVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRp YyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1h cCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9y bWF0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2lu Y2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zy b21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywg Q29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0 LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKysJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1 cmUgdGV4dHVyZV9uZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4 dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1h dCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXSB1aW50OFtdIGRhdGEpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1 cmUgdGV4dHVyZV9uZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZs YWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIu RXJyb3I7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNp bmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19m cm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3RhcmdldCwgdWludCB3aWR0aCwg dWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rfd2FzdGUsIENvZ2wuUGl4 ZWxGb3JtYXQgZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRl eHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVy ZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuNCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJp YnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0cmlidXRlVHlwZSB0eXBlLCBD b2dsLkJvb2wgbm9ybWFsaXplZCwgdWludDE2IHN0cmlkZSwgdm9pZCogcG9pbnRlcik7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kZWxldGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5n IGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Rpc2FibGUgKENv Z2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2 ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUg bW9kZSwgaW50IGZpcnN0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJf ZHJhd19lbGVtZW50cyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2Rl LCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBpbnQgbWluX2luZGV4LCBpbnQgbWF4X2luZGV4LCBpbnQg aW5kaWNlc19vZmZzZXQsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9l bmFibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3ZlcnRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRf Zm9yX3F1YWRzICh1aW50IG5faW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSW5kaWNlc1R5cGUgdmVy dGV4X2J1ZmZlcl9pbmRpY2VzX2dldF90eXBlIChDb2dsLkhhbmRsZSBpbmRpY2VzKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX25ldyAodWludCBuX3ZlcnRpY2Vz KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVi bGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfcmVmIChDb2dsLkhh bmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfc3VibWl0IChDb2dsLkhh bmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl91bnJlZiAoQ29nbC5IYW5k bGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgi LCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmlld3BvcnQgKHVpbnQg d2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfdmlzdWFs X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJs aWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3dpbmRvd194aWQgKENvZ2wuT25zY3Jl ZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgeDEx X29uc2NyZWVuX3NldF9mb3JlaWduX3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4s IHVpbnQzMiB4aWQsIFtDQ29kZSAoc2NvcGUgPSAiYXN5bmMiKV0gQ29nbC5PbnNjcmVlblgxMU1h c2tDYWxsYmFjayB1cGRhdGUpOworIH0KK2RpZmYgLS1naXQgdmFwaS9wb2xraXQtZ29iamVjdC0x LnZhcGkgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkKK2luZGV4IDkzZWZmOGE1Li5mZWRjNmE0 YSAxMDA2NDQKKy0tLSB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFwaQorKysrIHZhcGkvcG9sa2l0 LWdvYmplY3QtMS52YXBpCitAQCAtNyw3ICs3LDcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQWN0 aW9uRGVzY3JpcHRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2FjdGlvbl9p ZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYW5ub3RhdGlvbiAoc3RyaW5nIGtl eSk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGdldF9hbm5vdGF0aW9uIChzdHJpbmcga2V5 KTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRl ZCA9IHRydWUpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nW10gZ2V0X2Fubm90YXRpb25fa2V5 cyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7CitAQCAt MzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCXB1YmxpYyBQb2xraXQuQXV0aG9y aXR5RmVhdHVyZXMgZ2V0X2JhY2tlbmRfZmVhdHVyZXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X2JhY2tlbmRfbmFtZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf YmFja2VuZF92ZXJzaW9uICgpOworLQkJcHVibGljIHN0cmluZyBnZXRfb3duZXIgKCk7CisrCQlw dWJsaWMgc3RyaW5nPyBnZXRfb3duZXIgKCk7CisgCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5BdXRo b3JpdHkgZ2V0X3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhy b3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgYXN5bmMgYm9vbCByZWdpc3Rlcl9hdXRoZW50aWNh dGlvbl9hZ2VudCAoUG9sa2l0LlN1YmplY3Qgc3ViamVjdCwgc3RyaW5nIGxvY2FsZSwgc3RyaW5n IG9iamVjdF9wYXRoLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIu RXJyb3I7CisgCQlwdWJsaWMgYm9vbCByZWdpc3Rlcl9hdXRoZW50aWNhdGlvbl9hZ2VudF9zeW5j IChQb2xraXQuU3ViamVjdCBzdWJqZWN0LCBzdHJpbmcgbG9jYWxlLCBzdHJpbmcgb2JqZWN0X3Bh dGgsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJy b3I7CitAQCAtNTYsMjEgKzU2LDIyIEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAlwdWJsaWMgY2xh c3MgQXV0aG9yaXphdGlvblJlc3VsdCA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBBdXRob3JpemF0aW9uUmVzdWx0 IChib29sIGlzX2F1dGhvcml6ZWQsIGJvb2wgaXNfY2hhbGxlbmdlLCBQb2xraXQuRGV0YWlscz8g ZGV0YWlscyk7CistCQlwdWJsaWMgdW5vd25lZCBQb2xraXQuRGV0YWlscyBnZXRfZGV0YWlscyAo KTsKKysJCXB1YmxpYyB1bm93bmVkIFBvbGtpdC5EZXRhaWxzPyBnZXRfZGV0YWlscyAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjEwMSIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2Rpc21pc3Nl ZCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9pc19hdXRob3JpemVkICgpOworIAkJcHVibGljIGJv b2wgZ2V0X2lzX2NoYWxsZW5nZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9yZXRhaW5zX2F1dGhv cml6YXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RlbXBvcmFyeV9hdXRo b3JpemF0aW9uX2lkICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRfdGVtcG9yYXJ5 X2F1dGhvcml6YXRpb25faWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g InBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9sa2l0X2RldGFpbHNfZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGNsYXNzIERldGFpbHMgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgRGV0YWlscyAoKTsKKyAJ CVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRy dWUpXQorLQkJcHVibGljIHN0cmluZ1tdIGdldF9rZXlzICgpOworKwkJcHVibGljIHN0cmluZ1td PyBnZXRfa2V5cyAoKTsKKyAJCXB1YmxpYyB2b2lkIGluc2VydCAoc3RyaW5nIGtleSwgc3RyaW5n PyB2YWx1ZSk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgbG9va3VwIChzdHJpbmcga2V5KTsK KysJCXB1YmxpYyB1bm93bmVkIHN0cmluZz8gbG9va3VwIChzdHJpbmcga2V5KTsKKyAJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgdHlwZV9pZCA9ICJw b2xraXRfcGVybWlzc2lvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgUGVybWlzc2lv biA6IEdMaWIuUGVybWlzc2lvbiwgR0xpYi5Bc3luY0luaXRhYmxlLCBHTGliLkluaXRhYmxlIHsK K0BAIC04OCw3ICs4OSw4IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFN5c3RlbUJ1c05hbWUgKCk7 CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CistCQlwdWJsaWMgUG9sa2l0 LlN1YmplY3QgZ2V0X3Byb2Nlc3Nfc3luYyAoR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUg PSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBQb2xraXQuU3ViamVjdD8gZ2V0 X3Byb2Nlc3Nfc3luYyAoR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKSB0aHJv d3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBQb2xraXQuVW5peFVzZXI/IGdldF91c2VyX3N5bmMg KEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7 CisgCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5TdWJqZWN0IEBuZXcgKHN0cmluZyBuYW1lKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgc3RyaW5nIG5h bWUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KK0BAIC0xNDYsOSArMTQ4LDEwIEBAIG5hbWVzcGFj ZSBQb2xraXQgeworIAkJcHJvdGVjdGVkIFVuaXhTZXNzaW9uICgpOworIAkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9zZXNzaW9uX2lkICgpOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQuU3Vi amVjdCBAbmV3IChzdHJpbmcgc2Vzc2lvbl9pZCk7CistCQlwdWJsaWMgc3RhdGljIGFzeW5jIFBv bGtpdC5TdWJqZWN0IG5ld19mb3JfcHJvY2VzcyAoaW50IHBpZCwgR0xpYi5DYW5jZWxsYWJsZT8g Y2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyBQb2xraXQu U3ViamVjdCBuZXdfZm9yX3Byb2Nlc3Nfc3luYyAoaW50IHBpZCwgR0xpYi5DYW5jZWxsYWJsZT8g Y2FuY2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMg YXN5bmMgUG9sa2l0LlN1YmplY3Q/IG5ld19mb3JfcHJvY2VzcyAoaW50IHBpZCwgR0xpYi5DYW5j ZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRp YyBQb2xraXQuU3ViamVjdD8gbmV3X2Zvcl9wcm9jZXNzX3N5bmMgKGludCBwaWQsIEdMaWIuQ2Fu Y2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJs aWMgdm9pZCBzZXRfc2Vzc2lvbl9pZCAoc3RyaW5nIHNlc3Npb25faWQpOworKwkJW05vQWNjZXNz b3JNZXRob2RdCisgCQlwdWJsaWMgaW50IHBpZCB7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHN0 cmluZyBzZXNzaW9uX2lkIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCX0KK0BAIC0xNTYsMTcg KzE1OSwxNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJcHVibGljIGNsYXNzIFVuaXhVc2VyIDog R0xpYi5PYmplY3QsIFBvbGtpdC5JZGVudGl0eSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgVW5peFVzZXIgKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGdl dF9uYW1lICgpOworIAkJcHVibGljIGludCBnZXRfdWlkICgpOworIAkJcHVibGljIHN0YXRpYyBQ b2xraXQuSWRlbnRpdHkgQG5ldyAoaW50IHVpZCk7CistCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5J ZGVudGl0eSBuZXdfZm9yX25hbWUgKHN0cmluZyBuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJ CXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5PyBuZXdfZm9yX25hbWUgKHN0cmluZyBuYW1l KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyB2b2lkIHNldF91aWQgKGludCB1aWQpOwor IAkJcHVibGljIGludCB1aWQgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgdHlwZV9pZCA9ICJwb2xraXRf aWRlbnRpdHlfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBJZGVudGl0eSA6IEdM aWIuT2JqZWN0IHsKKyAJCXB1YmxpYyBhYnN0cmFjdCBib29sIGVxdWFsIChQb2xraXQuSWRlbnRp dHkgYik7CistCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eSBmcm9tX3N0cmluZyAoc3Ry aW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVu dGl0eT8gZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVi bGljIGFic3RyYWN0IHVpbnQgaGFzaCAoKTsKKyAJCXB1YmxpYyBhYnN0cmFjdCBzdHJpbmcgdG9f c3RyaW5nICgpOworIAl9CitAQCAtMjAxLDcgKzIwNCw3IEBAIG5hbWVzcGFjZSBQb2xraXQgewor IAkJQURNSU5JU1RSQVRPUl9BVVRIRU5USUNBVElPTl9SRVFVSVJFRF9SRVRBSU5FRCwKKyAJCUFV VEhPUklaRUQ7CisgCQlwdWJsaWMgc3RhdGljIGJvb2wgZnJvbV9zdHJpbmcgKHN0cmluZyBzdHJp bmcsIFBvbGtpdC5JbXBsaWNpdEF1dGhvcml6YXRpb24gb3V0X2ltcGxpY2l0X2F1dGhvcml6YXRp b24pOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKFBvbGtpdC5J bXBsaWNpdEF1dGhvcml6YXRpb24gaW1wbGljaXRfYXV0aG9yaXphdGlvbik7CisrCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiLCBjcHJlZml4ID0gIlBPTEtJVF9FUlJPUl8iKV0KKyAJ cHVibGljIGVycm9yZG9tYWluIEVycm9yIHsKK0BAIC0yMTIsNyArMjE1LDcgQEAgbmFtZXNwYWNl IFBvbGtpdCB7CisgCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIpXQorLQlwdWJsaWMg c3RhdGljIFBvbGtpdC5JZGVudGl0eSBpZGVudGl0eV9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikg dGhyb3dzIEdMaWIuRXJyb3I7CisrCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5PyBpZGVu dGl0eV9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiKV0KKyAJcHVibGljIHN0YXRp YyBQb2xraXQuU3ViamVjdCBzdWJqZWN0X2Zyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKyB9CistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2J1ZGdp ZS1kZXNrdG9wL3RlbXBsYXRlIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZQppbmRl eCBiMzJlNzczNGQzYi4uYWU1YTlkNWY3NjkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYnVkZ2llLWRl c2t0b3AvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2J1ZGdpZS1kZXNrdG9wJwogcGtnbmFt ZT1idWRnaWUtZGVza3RvcAogdmVyc2lvbj0xMC41LjEKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQK IGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9Z2lyCiBjb25maWd1cmVfYXJncz0iLUR3 aXRoLWd0ay1kb2M9ZmFsc2UgLUR3aXRoLWRlc2t0b3AtaWNvbnM9bm9uZSIKCkZyb20gZWY5ODA3 MjNkZjM4NDk0ZDMxZTgyMzU3NmY3Mzg4YTdkMWIxZDVhMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTcgU2VwIDIwMjAgMDY6MjM6NTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDEwMS8xMDJdIE5ldyBw YWNrYWdlOiBnbm9tZS1jb3JlLTMuMzYuMAoKLS0tCiBzcmNwa2dzL2dub21lLWNvcmUvdGVtcGxh dGUgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hh bmdlZCwgNTQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUt Y29yZS90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29yZS90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ25vbWUtY29yZS90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uMDM3NDk3Y2NiNTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21l LWNvcmUvdGVtcGxhdGUKQEAgLTAsMCArMSw1NCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25v bWUtY29yZScKK3BrZ25hbWU9Z25vbWUtY29yZQordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEK K2J1aWxkX3N0eWxlPW1ldGEKK3Nob3J0X2Rlc2M9IkdOT01FIG1ldGEtcGFja2FnZSBmb3IgVm9p ZCBMaW51eCAtIGNvcmUgY29tcG9uZW50cyIKK21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5LCBMR1BMLTIuMC1vbmx5IgoraG9tZXBh Z2U9Imh0dHBzOi8vd3d3Lmdub21lLm9yZyIKKworZGVwZW5kcz0iCisgYWR3YWl0YS1pY29uLXRo ZW1lPj0zLjM4LjAKKyBhdC1zcGkyLWNvcmU+PTIuMzguMAorIGF0LXNwaTItYXRrPj0yLjM4LjAK KyBjYW50YXJlbGwtZm9udHM+PTAuMjAxCisgY2FyaWJvdT49MC40LjIxCisgZGNvbmY+PTAuMzYu MAorIGV2b2x1dGlvbi1kYXRhLXNlcnZlcj49My4zOC4wCisgZm9sa3M+PTAuMTQuMAorIGZvbnQt YWRvYmUtc291cmNlLWNvZGUtcHJvPj0yLjAzMFIKKyBnY3I+PTMuMzYuMAorIGdkbT49My4zOC4w CisgZ2VvY29kZS1nbGliPj0zLjI2LjAKKyBnZmJncmFwaD49MC4yLjQKKyBnanM+PTEuNjYuMAor IGdsaWI+PTIuNjYuMAorIGdsaWItbmV0d29ya2luZz49Mi42Ni4wCisgZ21pbWUzPj0zLjIuNwor IGdub21lLWJhY2tncm91bmRzPj0zLjM4LjAKKyBnbm9tZS1ibHVldG9vdGg+PTMuMzQuMQorIGdu b21lLWNvbG9yLW1hbmFnZXI+PTMuMzYuMAorIGdub21lLWNvbnRyb2wtY2VudGVyPj0zLjM4LjAK KyBnbm9tZS1kZXNrdG9wPj0zLjM4LjAKKyBnbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcz49My4z Ni4yCisgZ25vbWUtaW5pdGlhbC1zZXR1cD49My4zOC4wCisgZ25vbWUta2V5cmluZz49My4zNi4w CisgZ25vbWUtb25saW5lLWFjY291bnRzPj0zLjM3LjkwCisgZ25vbWUtb25saW5lLW1pbmVycz49 My4zNC4wCisgZ25vbWUtc2Vzc2lvbj49My4zOC4wCisgZ25vbWUtc2V0dGluZ3MtZGFlbW9uPj0z LjM4LjAKKyBnbm9tZS1zaGVsbD49My4zOC4wCisgZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucz49My4z OC4wCisgZ25vbWUtdGhlbWVzLXN0YW5kYXJkPj0zLjI4CisgZ25vbWUtdXNlci1kb2NzPj0zLjM4 LjAKKyBnbm9tZS12aWRlby1lZmZlY3RzPj0wLjUuMAorIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVt YXM+PTMuMzguMAorIGd2ZnM+PTEuNDYuMAorIG11dHRlcj49My4zOC4wCisgbmF1dGlsdXM+PTMu MzguMAorIHN1c2hpPj0zLjM0LjAKKyB0cmFja2VyMz49My4wLjAKKyB5ZWxwPj0zLjM4LjAKKyB4 ZGctZGVza3RvcC1wb3J0YWwtZ3RrPj0xLjguMAorIHplbml0eT49My4zMi4wIgoKRnJvbSA4OWYw NTk4OTUzOTM3NDVkNDlmOTU5MmNkMzY3NjU0ZjFjNWIyZjNiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxNyBTZXAgMjAyMCAwNjoyNDowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAyLzEwMl0gZ25v bWU6IHVwZGF0ZSB0byAzLjM4LjAKCltjaSBza2lwXQotLS0KIHNyY3BrZ3MvZ25vbWUvdGVtcGxh dGUgfCAyNDEgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAxNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUvdGVtcGxhdGUKaW5kZXgg OWU3YjZjMjEzMzYuLmFlMTEyNDQxZjMxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUvdGVtcGxhdGUKQEAgLTEsMTgxICsxLDk4IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdnbm9tZScKIHBrZ25hbWU9Z25vbWUKLXZlcnNpb249My4zMi4wCi1y ZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWV0YQog c2hvcnRfZGVzYz0iR05PTUUgbWV0YS1wYWNrYWdlIGZvciBWb2lkIExpbnV4IgogbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b25seSwgTEdQTC0yLjAtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5nbm9tZS5vcmciCiAK LWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyPj0xLjE0LjBfMQotIGFkd2FpdGEtaWNvbi10aGVtZT49 My4zMi4wCi0gYXQtc3BpMi1hdGs+PTIuMzIuMAotIGF0LXNwaTItY29yZT49Mi4zMi4wCi0gYXRr Pj0yLjMyLjAKLSBhdGttbT49Mi4yNC4yCi0gY2Fpcm9tbT49MS4xMi4yXzIKLSBjYW50YXJlbGwt Zm9udHM+PTAuMC4yNQotIGNhcmlib3U+PTAuNC4yMQotIGNocm9tZS1nbm9tZS1zaGVsbD49MTAu MC4wCi0gY2x1dHRlcj49MS4yNi4yCi0gY2x1dHRlci1nc3QzPj0zLjAuMjQKLSBjbHV0dGVyLWd0 az49MS44LjQKLSBjb2dsPj0xLjIyLjIKLSBkY29uZj49MC4zMC4wCi0gZW9nPj0zLjMyLjAKLSBl dmluY2U+PTMuMzIuMAotIGV2b2x1dGlvbi1kYXRhLXNlcnZlcj49My4zMi4wCi0gZmlsZS1yb2xs ZXI+PTMuMzIuMAotIGZvbGtzPj0wLjExLjQKLSBmb250LWFkb2JlLXNvdXJjZS1jb2RlLXBybz49 Mi4wMzBSCi0gZ2NhYj49MC43Ci0gZ2NyPj0zLjI4LjAKLSBnZGstcGl4YnVmPj0yLjM4LjAKLSBn ZG0+PTMuMzIuMAotIGdlb2NvZGUtZ2xpYj49My4yNi4wXzEKLSBnZmJncmFwaD49MC4yLjMKLSBn anM+PTEuNTYuMAotIGdsaWI+PTIuNjAuMAotIGdsaWItbmV0d29ya2luZz49Mi42MC4wCi0gZ2xp Ym1tPj0yLjYwLjAKLSBnbWltZT49Mi42LjIzCi0gZ25vbWUtYmFja2dyb3VuZHM+PTMuMzIuMAot IGdub21lLWJsdWV0b290aD49My4zMi4wCi0gZ25vbWUtY29sb3ItbWFuYWdlcj49My4zMi4wCi0g Z25vbWUtY29udHJvbC1jZW50ZXI+PTMuMzIuMAotIGdub21lLWRlc2t0b3A+PTMuMzIuMAotIGdu b21lLWdldHRpbmctc3RhcnRlZC1kb2NzPj0zLjMyLjAKLSBnbm9tZS1pbml0aWFsLXNldHVwPj0z LjMyLjAKLSBnbm9tZS1rZXlyaW5nPj0zLjI4LjEKLSBnbm9tZS1vbmxpbmUtYWNjb3VudHM+PTMu MzIuMAotIGdub21lLW9ubGluZS1taW5lcnM+PTMuMzAuMAotIGdub21lLXNlc3Npb24+PTMuMzIu MAotIGdub21lLXNldHRpbmdzLWRhZW1vbj49My4zMi4wCi0gZ25vbWUtc2hlbGw+PTMuMzIuMAot IGdub21lLXNoZWxsLWV4dGVuc2lvbnM+PTMuMzIuMAotIGdub21lLXRoZW1lcy1zdGFuZGFyZD49 My4yMi4zCi0gZ25vbWUtdHdlYWtzPj0zLjMyLjAKLSBnbm9tZS11c2VyLWRvY3M+PTMuMzIuMAot IGdub21lLXZpZGVvLWVmZmVjdHM+PTAuNC4zCi0gZ29iamVjdC1pbnRyb3NwZWN0aW9uPj0xLjYw LjAKLSBnb20+PTAuMy4yXzEKLSBncmlsbz49MC4zLjQKLSBncmlsby1wbHVnaW5zPj0wLjMuNQot IGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXM+PTMuMzIuMAorZGVwZW5kcz0iCisgZ25vbWUtY29y ZT49JHt2ZXJzaW9ufQorIGJhb2JhYj49My4zOC4wCisgY2hlZXNlPj0zLjM4LjAKKyBlb2c+PTMu MzguMAorIGV2aW5jZT49My4zOC4wCisgZmlsZS1yb2xsZXI+PTMuMzguMAorIGdlZGl0Pj0zLjM4 LjAKKyBnbm9tZS1jYWxjdWxhdG9yPj0zLjM4LjAKKyBnbm9tZS1jYWxlbmRhcj49My4zOC4wCisg Z25vbWUtY2hhcmFjdGVycz49My4zNC4wCisgZ25vbWUtY2xvY2tzPj0zLjM4LjAKKyBnbm9tZS1j b250YWN0cz49My4zNy4yCisgZ25vbWUtZGlzay11dGlsaXR5Pj0zLjM4LjAKKyBnbm9tZS1mb250 LXZpZXdlcj49My4zNC4wCisgZ25vbWUtbWFwcz49My4zOC4wCisgZ25vbWUtbXVzaWM+PTMuMzgu MAorIGdub21lLXNjcmVlbnNob3Q+PTMuMzguMAorIGdub21lLXN5c3RlbS1tb25pdG9yPj0zLjM4 LjAKKyBnbm9tZS10ZXJtaW5hbD49My4zOC4wCisgZ25vbWUtdHdlYWtzPj0zLjM0LjAKKyBnbm9t ZS13ZWF0aGVyPj0zLjM2LjEKICBnc291bmQ+PTEuMC4yCi0gZ3NwZWxsPj0xLjguMAotIGdzc2Rw Pj0xLjAuMgotIGd0ayszPj0zLjI0LjAKLSBndGttbT49My4yMi4xCi0gZ3Rrc291cmNldmlldz49 My4yNC40Ci0gZ3VwbnA+PTEuMC4yCi0gZ3VwbnAtYXY+PTAuMTIuMTAKLSBndXBucC1kbG5hPj0w LjEwLjUKLSBndXBucC1pZ2Q+PTAuMi40Ci0gZ3Zmcz49MS40MC4wCi0ganNvbi1nbGliPj0xLjQu MgotIGxpYmNyb2NvPj0wLjYuMTIKLSBsaWJnZGF0YT49MC4xNi4xXzIKLSBsaWJnZWUwOD49MC4y MC4wCi0gbGliZ2VwdWI+PTAuNF8xCi0gbGliZ25vbWVrYmQ+PTMuMjYuMAotIGxpYmdzZj49MS4x NC40MQotIGxpYmd0b3A+PTIuNDAuMAotIGxpYmd3ZWF0aGVyPj0zLjMyLjAKLSBsaWJneHBzPj0w LjIuNV8xCi0gbGlibWVkaWFhcnQ+PTEuOS40Ci0gbGlibm90aWZ5Pj0wLjcuNl80Ci0gbGlicGVh cz49MS4yMi4wCi0gbGlicnN2Zz49Mi40NC4wCi0gbGlic2VjcmV0Pj0wLjE4LjUKLSBsaWJzaWdj Kys+PTIuMTAuMAotIGxpYnNvdXA+PTIuNjAuMAotIGxpYnhtbDI+PTIuNi4zMAotIGxpYnhzbHQ+ PTEuMS4yMgotIGxpYnphcG9qaXQ+PTAuMC4zCi0gbW0tY29tbW9uPj0wLjkuMTBfMgotIG1vdXNl dHdlYWtzPj0zLjEyLjAKLSBtdXR0ZXI+PTMuMzIuMAotIG5hdXRpbHVzPj0zLjMyLjAKKyBnc3Bl bGw+PTEuOC4zCisgbW91c2V0d2Vha3M+PTMuMzIuMAogIG5ldHdvcmstbWFuYWdlci1hcHBsZXQ+ PTEuOC4yCi0gb3JjYT49My4zMi4wCi0gcGFuZ28+PTEuNDIuMAotIHBhbmdvbW0+PTIuNDAuMQot IHBob2Rhdj49Mi4yCi0gcHl0aG9uLWF0c3BpPj0yLjI2LjAKLSBweXRob24tZ29iamVjdD49My4y Ni4wCi0gcmVzdD49MC44LjAKLSB0cmFja2VyPj0yLjAuMAotIHZhbGE+PTAuNDQuMAotIHZ0ZTM+ PTAuNTQuMAotIHllbHA+PTMuMzIuMAotIHllbHAtdG9vbHM+PTMuMzIuMAotIHllbHAteHNsPj0z LjMyLjAKLSB6ZW5pdHk+PTMuMzIuMCIKKyBvcmNhPj0zLjM4LjAKKyBwaG9kYXY+PTIuNQorIHNp bXBsZS1zY2FuPj0zLjM4LjAKKyB0b3RlbT49My4zOC4wCisgeWVscC10b29scz49My4zOC4wIgog Ci1fYXBwc19kZXBlbmRzPSJiYW9iYWI+PTMuMzIuMAotIGNoZWVzZT49My4zMi4wCi0gZGNvbmYt ZWRpdG9yPj0zLjMyLjAKLSBkZXZoZWxwPj0zLjMyLjAKLSBlcGlwaGFueT49My4zMi4wCi0gZXZv bHV0aW9uPj0zLjMyLjAKLSBnaGV4Pj0zLjE4LjMKLSBnaXRnPj0zLjI2LjAKLSBnZWRpdD49My4z Mi4wCi0gZ2VkaXQtcGx1Z2lucz49My4zMi4wCi0gZ25vbWUtYm94ZXM+PTMuMzIuMAotIGdub21l LWJ1aWxkZXI+PTMuMzIuMAotIGdub21lLWNhbGN1bGF0b3I+PTMuMzIuMAotIGdub21lLWNhbGVu ZGFyPj0zLjMyLjAKLSBnbm9tZS1jaGFyYWN0ZXJzPj0zLjMyLjAKLSBnbm9tZS1jbG9ja3M+PTMu MzIuMAotIGdub21lLWRpY3Rpb25hcnk+PTMuMjYuMAotIGdub21lLWRpc2stdXRpbGl0eT49My4z Mi4wCi0gZ25vbWUtZG9jdW1lbnRzPj0zLjMyLjAKLSBnbm9tZS1mb250LXZpZXdlcj49My4zMi4w Ci0gZ25vbWUtbWFwcz49My4zMi4wCi0gZ25vbWUtbXVzaWM+PTMuMzIuMAorX2FwcHNfZGVwZW5k cz0iCisgZGNvbmYtZWRpdG9yPj0zLjM4LjAKKyBkZXZoZWxwPj0zLjM4LjAKKyBlcGlwaGFueT49 My4zOC4wCisgZXZvbHV0aW9uPj0zLjM4LjAKKyBnaGV4Pj0zLjE4LjQKKyBnaXRnPj0zLjMyLjEK KyBnZWRpdC1wbHVnaW5zPj0zLjM4LjAKKyBnbm9tZS1ib3hlcz49My4zOC4wCisgZ25vbWUtYnVp bGRlcj49My4zOC4wCisgZ25vbWUtY2FsY3VsYXRvcj49My4zOC4wCisgZ25vbWUtY2FsZW5kYXI+ PTMuMzguMAorIGdub21lLWNoYXJhY3RlcnM+PTMuMzQuMAorIGdub21lLWNsb2Nrcz49My4zOC4w CisgZ25vbWUtZGljdGlvbmFyeT49My4yNi4xCisgZ25vbWUtZGlzay11dGlsaXR5Pj0zLjM4LjAK KyBnbm9tZS1kb2N1bWVudHM+PTMuMzQuMAorIGdub21lLWZvbnQtdmlld2VyPj0zLjM0LjAKKyBn bm9tZS1tYXBzPj0zLjM4LjAKKyBnbm9tZS1tdXNpYz49My4zOC4wCiAgZ25vbWUtbmV0dG9vbD49 My44LjEKLSBnbm9tZS1waG90b3M+PTMuMzIuMAotIGdub21lLXJlY2lwZXM+PTIuMC4wCi0gZ25v bWUtc2NyZWVuc2hvdD49My4zMi4wCi0gZ25vbWUtc291bmQtcmVjb3JkZXI+PTMuMzIuMAotIGdu b21lLXN5c3RlbS1tb25pdG9yPj0zLjMyLjAKLSBnbm9tZS10ZXJtaW5hbD49My4zMi4wCi0gZ25v bWUtdHdlYWtzPj0zLjMyLjAKLSBndGstdm5jPj0wLjYuMF8yCi0gbGliY2hhbXBsYWluPj0wLjEy LjE2Ci0gbmF1dGlsdXMtc2VuZHRvPj0zLjguMAorIGdub21lLXBob3Rvcz49My4zNy45MS4xCisg Z25vbWUtcmVjaXBlcz49Mi4wLjIKKyBnbm9tZS1zY3JlZW5zaG90Pj0zLjM4LjAKKyBnbm9tZS1z b3VuZC1yZWNvcmRlcj49My4zNC4wCisgZ25vbWUtc3lzdGVtLW1vbml0b3I+PTMuMzguMAorIGdu b21lLXRlcm1pbmFsPj0zLjM4LjAKICBuZW1pdmVyPj0wLjkuNgotIHBvbGFyaT49My4zMi4wCi0g cnlnZWw+PTAuMzYuMAotIHNpbXBsZS1zY2FuPj0zLjMyLjAKLSBzdXNoaT49My4zMi4wCi0gdG90 ZW0+PTMuMzIuMAotIHRvdGVtLXBsLXBhcnNlcj49My4yNi4wCisgcG9sYXJpPj0zLjM2LjMKKyBy eWdlbD49MC40MC4wCisgc2ltcGxlLXNjYW4+PTMuMzguMAorIHRvdGVtPj0zLjM4LjAKICB2aW5v Pj0zLjIyLjAiCiAKIF9nYW1lc19jb2xsZWN0aW9uX2RlcGVuZHM9IgotIGFpc2xlcmlvdD49My4y Mi4zCi0gZml2ZS1vci1tb3JlPj0zLjMyLjAKLSBmb3VyLWluLWEtcm93Pj0zLjMyLjAKLSBnbm9t ZS0yMDQ4Pj0zLjMyLjAKLSBnbm9tZS1jaGVzcz49My4zMi4wCi0gZ25vbWUta2xvdHNraT49My4z Mi4wCi0gZ25vbWUtbWFoam9uZ2c+PTMuMzIuMAotIGdub21lLW1pbmVzPj0zLjMyLjAKLSBnbm9t ZS1uaWJibGVzPj0zLjI0LjAKLSBnbm9tZS1yb2JvdHM+PTMuMzIuMAotIGdub21lLXN1ZG9rdT49 My4zMi4wCi0gZ25vbWUtdGV0cmF2ZXg+PTMuMzIuMAotIGhpdG9yaT49My4yMi40Ci0gaWFnbm8+ PTMuMzIuMAotIGxpZ2h0c29mZj49My4yNi4wCi0gcXVhZHJhcGFzc2VsPj0zLjMyLjAKLSBzd2Vs bC1mb29wPj0zLjI2LjAKLSB0YWxpPj0zLjMyLjAKLSIKKyBhaXNsZXJpb3Q+PTMuMjIuMTIKKyBm aXZlLW9yLW1vcmU+PTMuMzIuMgorIGZvdXItaW4tYS1yb3c+PTMuMzYuNAorIGdub21lLTIwNDg+ PTMuMzYuNAorIGdub21lLWNoZXNzPj0zLjM2LjEKKyBnbm9tZS1rbG90c2tpPj0zLjM2LjMKKyBn bm9tZS1tYWhqb25nZz49My4zNi4yCisgZ25vbWUtbWluZXM+PTMuMzYuMQorIGdub21lLW5pYmJs ZXM+PTMuMjYuMQorIGdub21lLXJvYm90cz49My4zNi4xCisgZ25vbWUtc3Vkb2t1Pj0zLjM2LjAK KyBnbm9tZS10ZXRyYXZleD49My4zNi40CisgaGl0b3JpPj0zLjM4LjAKKyBpYWdubz49My4zNi40 CisgbGlnaHRzb2ZmPj0zLjM2LjAKKyBxdWFkcmFwYXNzZWw+PTMuMzYuMDUKKyBzd2VsbC1mb29w Pj0zLjM0LjEKKyB0YWxpPj0zLjM2LjQiCiAKIGdub21lLWFwcHNfcGFja2FnZSgpIHsKIAlkZXBl bmRzPSIkX2FwcHNfZGVwZW5kcyIK --===============4857251706471208453==--