From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 14264 invoked from network); 5 Sep 2020 20:25:32 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 5 Sep 2020 20:25:32 -0000 Content-Type: multipart/mixed; boundary="===============8260361720955377983==" 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: Sat, 05 Sep 2020 22:25:28 +0200 List-Id: Message-ID: <20200905202528.37waWiPF_-Wfu56tUJveQgT0c42Jnk093Ox7gsm0X3Q@z> GitHub notification mails are now in MIME to allow UTF8. --===============8260361720955377983== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBnbm9tZTMzOApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL3B1bGwvMjQyNjAKCmdub21lIDMuMzgKU2luY2UgaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzIxMzgyIGlzIHRha2luZyBhIHdoaWxlIGFuZCBn bm9tZSAzLjM4IGlzIGp1c3QgYXJvdW5kIHRoZSBjb3JuZXIsIEkgcHJlcGFyZWQgYSBwcmVsaW1p bmFyeSBQUiBmb3Igbm93IGNvbnRhaW5pbmcgdGhlIDMuMzcgcHJlcmVsZWFzZSBzdHVmZiAtIEkg ZGlkIHRoaXMgbWFpbmx5IGJlY2F1c2UgSSBuZWVkZWQgbW9yZSAicmVhZHkiIHdheWxhbmQgc3Vw cG9ydC4gVGVzdGVkIG9uIGFhcmNoNjQuDQoNCiMgVE9ETw0KDQotIFt4XSBjbGVhbiBpdCB1cA0K LSBbeF0gYmV0dGVyIHRlc3RpbmcsIG1ha2Ugc3VyZSB0ZXN0c3VpdGUgcGFzc2VzDQotIFt4XSBp bXBvcnQgdGhlIHVzZWZ1bCBiaXRzIGZyb20gIzIxMzgyLCBvciByZWJhc2UgaWYgaXQgZ2V0cyBt ZXJnZWQNCi0gWyBdIG1ha2Ugc3VyZSBjcm9zc2J1aWxkcyB3b3JrDQotIFsgXSB0ZXN0IG9uIG1v cmUgcGxhdGZvcm1zDQotIFsgXSBmaXggdGhlIG1ldGFwYWNrYWdlcyAodGhleSBoYXZlbid0IGJl ZW4gdG91Y2hlZCwgcG9zc2libHkgaW4gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzIyOTM2KQ0KLSBbIF0gZHJvcCB0aGUgYHZhbGFgIG9wdGlvbiBpbiB0 aGUgcmVzdCBvZiB0aGUgcGFja2FnZXMNCg0KIyBVcGRhdGVkDQoNCi0gW3hdIGdsaWIgLT4gMi42 NS4yICp1bnN0YWJsZSogKGBndGtfZG9jYCBvcHRpb24gZG9lcyBub3Qgd29yazogbmVlZHMgdW5y ZWxlYXNlZCBgZ3RrLWRvY2ApDQotIFt4XSBnbGliLW5ldHdvcmtpbmcgLT4gMi42NS45MCAqKipi ZXRhKioqDQotIFt4XSBhdC1zcGkyLWNvcmUgLT4gMi4zNy45MCAqKipiZXRhKioqDQotIFt4XSBh dC1zcGkyLWF0ayAtPiAyLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIHdlYmtpdDJndGsgLT4gMi4y OS45MSAqKipiZXRhKioqDQotIFt4XSBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIC0+IDMuMzcu MiAqdW5zdGFibGUqDQotIFt4XSBnbm9tZS1kZXNrdG9wIC0+IDMuMzcuOTEgKioqYmV0YSoqKg0K LSBbeF0gbGliZ3dlYXRoZXIgLT4gMy4zNi4xICoqc3RhYmxlKioNCi0gW3hdIGdub21lLXNldHRp bmdzLWRhZW1vbiAtPiAzLjM3LjAgKnVuc3RhYmxlKg0KLSBbeF0gbXV0dGVyIC0+IDMuMzcuOTEg KioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtbWVudXMgLT4gMy4zNi4wICoqc3RhYmxlKioNCi0gW3hd IGNoZWVzZSAtPiAocmV2YnVtcCkgKipzdGFibGUqKg0KLSBbeF0gZXZvbHV0aW9uLWRhdGEtc2Vy dmVyIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtY29udHJvbC1jZW50ZXIgLT4g My4zNy45MCAqKipiZXRhKioqDQotIFt4XSB0cmFja2VyIC0+IDIuMy40ICoqc3RhYmxlKioNCi0g W3hdIGZvbGtzIC0+IDAuMTQuMCAqKnN0YWJsZSoqDQotIFt4XSBkY29uZi1lZGl0b3IgLT4gMy4z Ni40ICoqc3RhYmxlKioNCi0gW3hdIGRldmhlbHAgLT4gMy4zNy4xICp1bnN0YWJsZSoNCi0gW3hd IGdub21lLXNoZWxsIC0+IDMuMzcuOTEgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtc2hlbGwtZXh0 ZW5zaW9ucyAtPiAzLjM3LjkxICoqKmJldGEqKioNCi0gW3hdIGdkbSAtPiAzLjM3LjkwICoqKmJl dGEqKioNCi0gW3hdIGdub21lLXNlc3Npb24gLT4gMy4zNy4wICp1bnN0YWJsZSoNCi0gW3hdIGdu b21lLW9ubGluZS1hY2NvdW50cyAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWlu aXRpYWwtc2V0dXAgLT4gMy4zNy45MS4xICoqKmJldGEqKioNCi0gW3hdIHhkZy1kZXNrdG9wLXBv cnRhbC1ndGsgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIG5hdXRpbHVzIC0+IDMuMzcu OTEgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtbWFwcyAtPiAzLjM3LjkxICoqKmJldGEqKioNCi0g W3hdIGV2b2x1dGlvbiAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGV2b2x1dGlvbi1ld3Mg LT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBweXRob24zLWF0c3BpIC0+IDIuMzcuOTAgKioq YmV0YSoqKg0KLSBbeF0gcHl0aG9uLWF0c3BpIC0+IDIuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0g b3JjYSAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLXdlYXRoZXIgLT4gKHJldmJ1 bXApICoqc3RhYmxlKioNCi0gW3hdIHZ0ZTMgLT4gMC42MS45MCAqKipiZXRhKioqDQotIFt4XSBn bm9tZS10ZXJtaW5hbCAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWdldHRpbmct c3RhcnRlZC1kb2NzIC0+IDMuMzYuMiAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS11c2VyLWRvY3Mg LT4gMy4zNi4yICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWVwdWItdGh1bWJuYWlsZXIgLT4gMS42 ICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWJvb2tzIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQot IFt4XSBnbm9tZS1jaGFyYWN0ZXJzIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBnbm9t ZS1kb2N1bWVudHMgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWZvbnQtdmll d2VyIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS1zY3JlZW5zYXZlciAtPiAo cmV2YnVtcCArIGJ1aWxkIGZpeCkgKipzdGFibGUqKg0KLSBbeF0gdG90ZW0gLT4gKHJldmJ1bXAp ICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWNsb2NrcyAtPiAzLjM3LjkxICoqKmJldGEqKioNCi0g W3hdIGxpYmRhenpsZSAtPiAzLjM3LjEgKnVuc3RhYmxlKg0KLSBbeF0gZXBpcGhhbnkgLT4gMy4z Ny45MSAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1jb250YWN0cyAtPiAzLjM3LjIgKnVuc3RhYmxl Kg0KLSBbeF0gZW9nIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtcGhvdG9zIC0+ IDMuMzcuOTEuMSAqKipiZXRhKioqDQotIFt4XSBldmluY2UgLT4gMy4zNy45MCAqKipiZXRhKioq DQotIFt4XSBmaWxlLXJvbGxlciAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWNh bGVuZGFyIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS1tdXNpYyAtPiAzLjM3 LjMgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUtcGFuZWwgLT4gMy4zNy4xICp1bnN0YWJsZSoNCi0g W3hdIG1ldGFjaXR5IC0+IDMuMzcuMSAqdW5zdGFibGUqDQotIFt4XSBnbm9tZS1mbGFzaGJhY2sg LT4gMy4zNy4yICp1bnN0YWJsZSoNCi0gW3hdIHRlcGwgLT4gNC40OS4zICp1bnN0YWJsZSoNCi0g W3hdIGdlZGl0IC0+IDMuMzcuMyAqdW5zdGFibGUqDQotIFt4XSBnZWRpdC1wbHVnaW5zIC0+IChy ZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS1sYXRleCAtPiAzLjM3LjIgKnVuc3RhYmxl Kg0KLSBbeF0gYmFvYmFiIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtYm94ZXMg LT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1jYWxjdWxhdG9yIC0+IDMuMzcuOTAg KioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtZGlzay11dGlsaXR5IC0+IDMuMzcuMiAqdW5zdGFibGUq DQotIFt4XSBnbm9tZS1zY3JlZW5zaG90IC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25v bWUtc3lzdGVtLW1vbml0b3IgLT4gMy4zNy45MSAqKipiZXRhKioqDQotIFt4XSBndGtzb3VyY2V2 aWV3NCAtPiA0LjcuOTAgKioqYmV0YSoqKg0KLSBbeF0gc3lzcHJvZiAtPiAzLjM3LjkwICoqKmJl dGEqKioNCi0gW3hdIG1vempzNzggLT4gKG5ldykgKipzdGFibGUqKg0KLSBbeF0gZ2pzIC0+IDEu NjUuOTEgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtYnVpbGRlciAtPiAzLjM3LjkwICoqKmJldGEq KiogKG5lZWRzIHVuc3RhYmxlIGBnbGliYCkNCi0gW3hdIGFkd2FpdGEtaWNvbi10aGVtZSAtPiAz LjM3LjIgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUtYmFja2dyb3VuZHMgLT4gMy4zNy4yICp1bnN0 YWJsZSoNCi0gW3hdIHBvbGFyaSAtPiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBbeF0gZ3ZmcyAtPiAx LjQ1LjkwICoqKmJldGEqKioNCi0gW3hdIGxpYnNvdXAgLT4gMi43MS4wICp1bnN0YWJsZSoNCi0g W3hdIHJ5Z2VsIC0+IDAuMzkuMiAqdW5zdGFibGUqDQotIFt4XSBzaW1wbGUtc2NhbiAtPiAzLjM3 LjMgKnVuc3RhYmxlKg0KLSBbeF0geWVscC14c2wgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4 XSB5ZWxwIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0geWVscC10b29scyAtPiAzLjM3Ljkw ICoqKmJldGEqKioNCi0gW3hdIGJ1ZGdpZS1kZXNrdG9wIC0+IChyZWJ1aWxkKSAqKnN0YWJsZSoq DQoNCiMjIE1lcmdlZA0KDQotIFt4XSBsaWJzaWdjKyszIC0+IDMuMC4zIChuZXcpDQotIFt4XSBt bS1jb21tb24gLT4gMS4wLjENCi0gW3hdIGdsaWJtbSAtPiAyLjY0LjINCi0gW3hdIHBhbmdvbW0g LT4gMi40Mi4xDQotIFt4XSBsaWJub3RpZnkgLT4gMC43LjkNCi0gW3hdIGF0ayAtPiAyLjM2LjAN Ci0gW3hdIGd0ayszIC0+IDMuMjQuMjINCi0gW3hdIGdyYXBoZW5lIC0+IDEuMTAuMA0KLSBbeF0g YW10ayAtPiA1LjEuMQ0KLSBbeF0gbGliaGFuZHkxIC0+IDAuOTAuMCAobmV3KQ0KLSBbeF0gbGli cG9ydGFsIC0+IDAuMyAobmV3KQ0KLSBbeF0gY29nbCAtPiAxLjIyLjI4DQotIFt4XSBnZW9jb2Rl LWdsaWIgLT4gMy4yNi4yDQotIFt4XSBnZmJncmFwaCAtPiAwLjIuNA0KLSBbeF0gbGliZ3NmIC0+ IDEuMTQuNDcNCi0gW3hdIGxpYnNlY3JldCAtPiAwLjIwLjMNCi0gW3hdIGxpYmNoYW1wbGFpbiAt PiAwLjEyLjIwDQotIFt4XSB2YWxhIC0+IDAuNDguOQ0KLSBbeF0gdmFsYWRvYyAtPiAwLjQ4LjkN Ci0gW3hdIGdvbSAtPiAwLjQNCi0gW3hdIGdzc2RwIC0+IDEuMi4zDQotIFt4XSBndGstdm5jIC0+ IDEuMC4wIChkcm9wcyB1bnVzZWQgZ3RrMiBzdXBwb3J0KQ0KLSBbeF0gcGhvZGF2IC0+IDIuNA0K LSBbeF0gZ3VwbnAgLT4gMS4yLjQNCi0gW3hdIGdub21lLXZpZGVvLWVmZmVjdHMgLT4gMC41LjAN Cg0KIyMgVE9ETw0KDQotIFsgXSByZXRyby1ndGsgKHVucmVsZWFzZWQpDQotIFsgXSBnbm9tZS1n YW1lcyAoYmxvY2tlZCBvbiBgcmV0cm8tZ3RrYCkNCg0KIyBXb24ndCB1cGRhdGUNCg0KLSBndGs0 IC0+IDMuOTkuMCAobm90IGEgZGVwZW5kZW5jeSBvZiBhbnl0aGluZyBhbmQgcmVxdWlyZXMgY3Vy cmVudCBgcGFuZ29gIGFuZCBpdCdzIGltcHJhY3RpY2FsIHRvIGJhY2twb3J0OyB3ZSdsbCBwcm9i YWJseSBuZWVkIHRvIGZpbmFsbHkgdXBkYXRlIGBwYW5nb2ApCgpBIHBhdGNoIGZpbGUgZnJvbSBo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjQyNjAucGF0 Y2ggaXMgYXR0YWNoZWQ= --===============8260361720955377983== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSBhOTU4ODAwMGRiM2MzMTQzOTllNjgxMGM1MWVhMGQyZWI2ZTM3OGNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToxODo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv ODNdIGdsaWI6IHVwZGF0ZSB0byAyLjY1LjIKCmNhdmVhdDogZG9jcyBkb24ndCB3b3JrIHlldAot LS0KIC4uLi9nbGliL3BhdGNoZXMvZGlzYWJsZS1icm9rZW4tdGVzdHMucGF0Y2ggICB8IDU4ICsr KysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ2xpYi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAg ICAgICAgICB8IDE0ICsrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGliL3BhdGNoZXMvZGlz YWJsZS1icm9rZW4tdGVzdHMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWIvcGF0Y2hl cy9kaXNhYmxlLWJyb2tlbi10ZXN0cy5wYXRjaCBiL3NyY3BrZ3MvZ2xpYi9wYXRjaGVzL2Rpc2Fi bGUtYnJva2VuLXRlc3RzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi40YTM2OTEyMGI3YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ2xpYi9wYXRjaGVz L2Rpc2FibGUtYnJva2VuLXRlc3RzLnBhdGNoCkBAIC0wLDAgKzEsNTggQEAKK0Zyb20gODAyMGMy ZjY2OWQ0NWRkNzFiN2U3OWJiMDg4Zjg3OTcwYjE5MTAwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogU3Vu LCAxNiBBdWcgMjAyMCAwNToxMzoxOCArMDIwMAorU3ViamVjdDogW1BBVENIXSBkaXNhYmxlIGJy b2tlbiB0ZXN0cworCistLS0KKyBnaW8vdGVzdHMvbWVzb24uYnVpbGQgIHwgNiAtLS0tLS0KKyBn bGliL3Rlc3RzL21lc29uLmJ1aWxkIHwgMyAtLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDkgZGVsZXRp b25zKC0pCisKK2RpZmYgLS1naXQgZ2lvL3Rlc3RzL21lc29uLmJ1aWxkIGdpby90ZXN0cy9tZXNv bi5idWlsZAoraW5kZXggZDhlYmQ1Ni4uZWYwNjE1OCAxMDA2NDQKKy0tLSBnaW8vdGVzdHMvbWVz b24uYnVpbGQKKysrKyBnaW8vdGVzdHMvbWVzb24uYnVpbGQKK0BAIC0zOSw3ICszOSw2IEBAIGdp b190ZXN0cyA9IHsKKyAgICdjcmVkZW50aWFscycgOiB7fSwKKyAgICdkYXRhLWlucHV0LXN0cmVh bScgOiB7fSwKKyAgICdkYXRhLW91dHB1dC1zdHJlYW0nIDoge30sCistICAnZGVmYXVsdHZhbHVl JyA6IHsnZXh0cmFfc291cmNlcycgOiBbZ2lvdHlwZWZ1bmNzX2luY119LAorICAgJ2ZpbGVhdHRy aWJ1dGVtYXRjaGVyJyA6IHt9LAorICAgJ2ZpbHRlci1zdHJlYW1zJyA6IHt9LAorICAgJ2dpb21v ZHVsZScgOiB7fSwKK0BAIC03OSw3ICs3OCw2IEBAIGdpb190ZXN0cyA9IHsKKyAgICd0bHMtaW50 ZXJhY3Rpb24nIDogeydleHRyYV9zb3VyY2VzJyA6IFsnZ3Rlc3R0bHNiYWNrZW5kLmMnXX0sCisg ICAndGxzLWRhdGFiYXNlJyA6IHsnZXh0cmFfc291cmNlcycgOiBbJ2d0ZXN0dGxzYmFja2VuZC5j J119LAorICAgJ3Rscy1iaW5kaW5ncycgOiB7J2V4dHJhX3NvdXJjZXMnIDogWydndGVzdHRsc2Jh Y2tlbmQuYyddfSwKKy0gICdnZGJ1cy1hZGRyZXNzLWdldC1zZXNzaW9uJyA6IHt9LAorICAgJ3dp bjMyLWFwcGluZm8nIDoge30sCisgfQorIAorQEAgLTEzNiwxMCArMTM0LDYgQEAgZW5kaWYKKyBp ZiBob3N0X21hY2hpbmUuc3lzdGVtKCkgIT0gJ3dpbmRvd3MnCisgICBnaW9fdGVzdHMgKz0gewor ICAgICAnZmlsZScgOiB7fSwKKy0gICAgJ2dkYnVzLXBlZXInIDogeworLSAgICAgICdkZXBlbmRl bmNpZXMnIDogW2xpYmdkYnVzX2V4YW1wbGVfb2JqZWN0bWFuYWdlcl9kZXBdLAorLSAgICAgICdp bnN0YWxsX3JwYXRoJyA6IGluc3RhbGxlZF90ZXN0c19leGVjZGlyCistICAgIH0sCisgICAgICdn ZGJ1cy1wZWVyLW9iamVjdC1tYW5hZ2VyJyA6IHt9LAorICAgICAnbGl2ZS1nLWZpbGUnIDoge30s CisgICAgICdzb2NrZXQtYWRkcmVzcycgOiB7fSwKK2RpZmYgLS1naXQgZ2xpYi90ZXN0cy9tZXNv bi5idWlsZCBnbGliL3Rlc3RzL21lc29uLmJ1aWxkCitpbmRleCA2ZWIyM2U4Li4xZjhjZDVjIDEw MDY0NAorLS0tIGdsaWIvdGVzdHMvbWVzb24uYnVpbGQKKysrKyBnbGliL3Rlc3RzL21lc29uLmJ1 aWxkCitAQCAtMjAsOSArMjAsNiBAQCBnbGliX3Rlc3RzID0geworICAgJ2Vudmlyb25tZW50JyA6 IHt9LAorICAgJ2Vycm9yJyA6IHt9LAorICAgJ2ZpbGV1dGlscycgOiB7fSwKKy0gICdnZGF0ZXRp bWUnIDogeworLSAgICAnc3VpdGUnIDogWydzbG93J10sCistICB9LAorICAgJ2d1dWlkJyA6IHt9 LAorICAgJ2d2YXJpYW50JyA6IHsKKyAgICAgJ3N1aXRlJyA6IFsnc2xvdyddLAorLS0gCisyLjI4 LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliL3RlbXBsYXRlIGIvc3JjcGtncy9nbGliL3Rl bXBsYXRlCmluZGV4IDViYmY1OWU2NzYwLi5kMzZjMGExOGE4YiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbGliL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYi90ZW1wbGF0ZQpAQCAtMSwxMCArMSwx MCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2xpYicKIHBrZ25hbWU9Z2xpYgotdmVyc2lvbj0y LjY0LjMKK3ZlcnNpb249Mi42NS4yCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1EZmFtPWZhbHNlIC1EbWFuPXRydWUgLURzZWxpbnV4PWRpc2FibGVkCi0g LURndGtfZG9jPSQodm9wdF9pZiBndGtfZG9jIHRydWUgZmFsc2UpIgorICQodm9wdF9ib29sIGd0 a19kb2MgZ3RrX2RvYykiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBsaWJ4 c2x0IGRvY2Jvb2steHNsICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgogbWFrZWRlcGVuZHM9 InpsaWItZGV2ZWwgcGNyZS1kZXZlbCBsaWJmZmktZGV2ZWwgZGJ1cy1kZXZlbCBlbGZ1dGlscy1k ZXZlbCBsaWJtb3VudC1kZXZlbCIKIGNoZWNrZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIHNo YXJlZC1taW1lLWluZm8gdHpkYXRhIgpAQCAtMTQsMTMgKzE0LDE3IEBAIGxpY2Vuc2U9IkxHUEwt Mi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMv R0xpYiIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dsaWIvcmF3 L21hc3Rlci9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dsaWIvJHt2ZXJzaW9uJS4q fS9nbGliLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmU5Y2JjOTc5MjVkMTRjODA0OTM1 ZjA2N2EzYWQ3N2VmNTVjMGJiZTliZWZlNjg5NjIzMThmNWE3NjdjZWIyMgorY2hlY2tzdW09NDQ1 YjE5NTFlYWE4MmQ3YThhZjQ2YmRmZjVkY2M4MDMwNDA2ZGIxY2VlYjBmMGMzYTg4OTgzZjcwMTUy YzU1NQogCiBidWlsZF9vcHRpb25zPSJndGtfZG9jIgogZGVzY19vcHRpb25fZ3RrX2RvYz0iQnVp bGQgR1RLIEFQSSBkb2NzIgogCi1pZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQlidWls ZF9vcHRpb25zX2RlZmF1bHQrPSIgZ3RrX2RvYyIKKyNpZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07 IHRoZW4KKyMJYnVpbGRfb3B0aW9uc19kZWZhdWx0Kz0iIGd0a19kb2MiCisjZmkKKworaWYgWyAi JGJ1aWxkX29wdGlvbl9ndGtfZG9jIiBdOyB0aGVuCisJYnJva2VuPSJuZWVkcyBndGstZG9jIDEu MzIuMSwgbm90IHJlbGVhc2VkIHlldCIKIGZpCiAKIGxpYmdsaWItZGV2ZWxfcGFja2FnZSgpIHsK CkZyb20gYzI2NjU3ZjBhM2QyMDcxNzcxNjQwNWQ2YmQ5ZmYzZjFlNDc0YmMzZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDU6MjA6MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDAy LzgzXSBnbGliLW5ldHdvcmtpbmc6IHVwZGF0ZSB0byAyLjY1LjkwCgotLS0KIHNyY3BrZ3MvZ2xp Yi1uZXR3b3JraW5nL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliLW5ldHdv cmtpbmcvdGVtcGxhdGUgYi9zcmNwa2dzL2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZQppbmRleCA1 ZWFmZmE4MmU2NC4uMWQ2MWE2MTY5YmEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2xpYi1uZXR3b3Jr aW5nL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2xpYi1uZXR3b3JraW5nJwogcGtnbmFt ZT1nbGliLW5ldHdvcmtpbmcKLXZlcnNpb249Mi42NC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIu NjUuOTAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURp bnN0YWxsZWRfdGVzdHM9ZmFsc2UgLURnbnV0bHM9ZW5hYmxlZCAtRGxpYnByb3h5PWVuYWJsZWQK ICAtRGdub21lX3Byb3h5PWVuYWJsZWQiCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ2xpYi1uZXR3 b3JraW5nLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWE0YzM0NmRlZjdkODE3 NDY3ZDc5YTk1YzIzYjNjY2YyMmU0ZGYxNTQ4ODcwNzI2YjYzMzk2NDAwODUyZGFmNzIKK2NoZWNr c3VtPTBiNGRmNWY2NDNiN2UwODIyMzY5MGExMjQ5Y2UzMDIzMjliNjE1NmYyNjQwZDdiMDIxN2Yx OTJiMzMwYWY1NjYKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKIHBvc3RfaW5zdGFsbCgpIHsKCkZyb20g NWIyYzcwOWM3NmMzNmYwY2YyNTUxNGFkZmE3OWI0MDFjMGExY2M1YiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzLzgzXSBh dC1zcGkyLWNvcmU6IHVwZGF0ZSB0byAyLjM3LjkwCgotLS0KIHNyY3BrZ3MvYXQtc3BpMi1jb3Jl L3RlbXBsYXRlIHwgMTQgKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWNvcmUv dGVtcGxhdGUgYi9zcmNwa2dzL2F0LXNwaTItY29yZS90ZW1wbGF0ZQppbmRleCBiMzgzZmU5OWJl ZC4uNDljYjNmYTFiZjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCkBAIC0xLDIzICsxLDI3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdhdC1zcGkyLWNvcmUnCiBwa2duYW1lPWF0LXNwaTItY29yZQot dmVyc2lvbj0yLjM0LjAKK3ZlcnNpb249Mi4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGRi dXMgZ2xpYi1kZXZlbCIKLW1ha2VkZXBlbmRzPSJsaWJnbGliLWRldmVsIGxpYlhleHQtZGV2ZWwg bGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbAotIGxpYlhldmllLWRldmVsIGRidXMtZGV2ZWwiCito b3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZGJ1cyBnbGliLWRldmVsIGdldHRleHQiCittYWtl ZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCBsaWJYZXh0LWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3Qt ZGV2ZWwgZGJ1cy1kZXZlbCIKIHNob3J0X2Rlc2M9IkFzc2lzdGl2ZSBUZWNobm9sb2d5IFNlcnZp Y2UgUHJvdmlkZXIgSW50ZXJmYWNlIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2F0LXNwaTItY29yZSIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWQ2MjljZGJkNjc0ZTUzOWY4OTEyMDI4NTEyYWY1ODM5OTA5Mzhj N2I0OWUyNTE4NGMxMjZiMDAxMjFlZjExYzYKK2NoZWNrc3VtPWNhYTcyMjk5ZDVlN2YyYWE0Yjgx OThlMzc0MDU3NTFiZGE1YTIyYTViYTk3N2I5YzdiZjM0MTk5NTkzYmI2YmIKIAogIyBQYWNrYWdl IGJ1aWxkIG9wdGlvbnMKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIgogCisjIG5vbi10cml2aWFsIGRidXMgc2V0dXAKK2RvX2NoZWNrKCkgeworCToKK30K KwogcG9zdF9pbnN0YWxsKCkgewogCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvc3lzdGVtZAog fQoKRnJvbSAxMjdhN2JhOGY2ZTQ5ZTY1MjM2ODBmZWRlNzRjZWVhMDEzOTY0MDQ0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDQvODNdIGF0LXNwaTItYXRrOiB1cGRhdGUgdG8gMi4zNy45MAoKLS0tCiBzcmNwa2dzL2F0LXNw aTItYXRrL3RlbXBsYXRlIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWF0ay90 ZW1wbGF0ZSBiL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKaW5kZXggNDM1MWI3OTk2ZjMu LjM5OTFmMTkyZjBhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdhdC1zcGkyLWF0aycKIHBrZ25hbWU9YXQtc3BpMi1hdGsKLXZlcnNpb249 Mi4zNC4xCit2ZXJzaW9uPTIuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBo b3N0bWFrZWRlcGVuZHM9ImxpYnRvb2wgcGtnLWNvbmZpZyBpbnRsdG9vbCBnbGliLWRldmVsIgpA QCAtMTAsNyArMTAsMTIgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly93 d3cuZ25vbWUub3JnIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Nzc2ZGY5MzA3 NDhmZGU3MWMxMjhiZTZjMzY2YTk4N2I5OGI2ZWU2NmQ1MDhlZDljOGRiMjM1NWJmNGI5Y2MxNgor Y2hlY2tzdW09OTk4NDdhM2I2MWJmMmFjOThhNDdlNDdlZGI0ZGU0ZWE1YzRmMzI2YzgyMzhhZDEw NjYxYmQ2ZDljNDZiNDhmMAorCisjIG5vbi10cml2aWFsIGRidXMgc2V0dXAKK2RvX2NoZWNrKCkg eworCToKK30KIAogYXQtc3BpMi1hdGstZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke21h a2VkZXBlbmRzfSAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCgpGcm9tIDg4 ZDU0YjBjNmZkZGNlYzYxNzY4MjA0YjlmNjFiMTBhOGQzY2QwNzAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBT dW4sIDE2IEF1ZyAyMDIwIDIxOjI5OjQ1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNS84M10gd2Vi a2l0Mmd0azogdXBkYXRlIHRvIDIuMjkuOTEKCi0tLQogLi4uL3BhdGNoZXMvZG9udC1kaXNhYmxl LWdpci1kdXJpbmctY3Jvc3MucGF0Y2ggICAgfCAxMCAtLS0tLS0tLS0tCiBzcmNwa2dzL3dlYmtp dDJndGsvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKysrLS0tLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy93ZWJraXQyZ3RrL3BhdGNoZXMvZG9udC1kaXNhYmxlLWdp ci1kdXJpbmctY3Jvc3MucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3dlYmtpdDJndGsvcGF0 Y2hlcy9kb250LWRpc2FibGUtZ2lyLWR1cmluZy1jcm9zcy5wYXRjaCBiL3NyY3BrZ3Mvd2Via2l0 Mmd0ay9wYXRjaGVzL2RvbnQtZGlzYWJsZS1naXItZHVyaW5nLWNyb3NzLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTliN2UzMjM4YS4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy93ZWJraXQyZ3RrL3BhdGNoZXMvZG9udC1kaXNhYmxlLWdpci1kdXJpbmctY3Jvc3MucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0tLS0gU291cmNlL2NtYWtlL09wdGlv bnNHVEsuY21ha2Uub3JpZwkyMDE5LTAyLTEwIDE4OjA0OjA3Ljg5ODQxNzc3OCArMDEwMAotKysr IFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCTIwMTktMDItMTAgMTg6MDQ6MzYuNjczNDE1 NTY5ICswMTAwCi1AQCAtMzU3LDcgKzM1Nyw2IEBACi0gIyBPdmVycmlkZSB0aGUgY2FjaGVkIHZh cmlhYmxlcywgZ3RrLWRvYyBhbmQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGRvIG5vdCByZWFsbHkg d29yayB3aGVuIGNyb3NzLWJ1aWxkaW5nLgotIGlmIChDTUFLRV9DUk9TU0NPTVBJTElORykKLSAg ICAgc2V0KEVOQUJMRV9HVEtET0MgT0ZGKQotLSAgICBzZXQoRU5BQkxFX0lOVFJPU1BFQ1RJT04g T0ZGKQotIGVuZGlmICgpCi0gCi0gIyBPdmVycmlkZSB0aGUgY2FjaGVkIHZhcmlhYmxlLCBndGst ZG9jIGRvZXMgbm90IHJlYWxseSB3b3JrIHdoZW4gYnVpbGRpbmcgb24gTWFjLgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy93ZWJraXQyZ3RrL3RlbXBsYXRlIGIvc3JjcGtncy93ZWJraXQyZ3RrL3RlbXBs YXRlCmluZGV4IGY0ZmZlZmEyMzdiLi40ZGJiYjczYjkwMSAxMDA2NDQKLS0tIGEvc3JjcGtncy93 ZWJraXQyZ3RrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvd2Via2l0Mmd0ay90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3dlYmtpdDJndGsnCiBwa2duYW1lPXdl YmtpdDJndGsKLXZlcnNpb249Mi4yOC4zCit2ZXJzaW9uPTIuMjkuOTEKIHJldmlzaW9uPTEKIHdy a3NyYz0id2Via2l0Z3RrLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQpAQCAtMTQsNiAr MTQsNyBAQCBjb25maWd1cmVfYXJncz0iLURQT1JUPUdUSyAtRFVTRV9MRF9HT0xEPU9GRgogIC1E Q01BS0VfQ19GTEFHU19SRUxXSVRIREVCSU5GTz0tRE5ERUJVRwogIC1EQ01BS0VfTElOS0VSPSR7 WEJQU19DUk9TU19UUklQTEVUfS1nY2MKICAtRFJVQllfVkVSU0lPTj0yLjcKKyAtRFVTRV9TWVNU RU1EPU9GRgogIC1ERU5BQkxFX0dUS0RPQz1PRkYgLURVU0VfR1NUUkVBTUVSX0dMPU9GRiAtRFVT RV9XUEVfUkVOREVSRVI9T0ZGCiAgLURFTkFCTEVfTUlOSUJST1dTRVI9JCh2b3B0X2lmIG1pbmli cm93c2VyIE9OIE9GRikKICAtREVOQUJMRV9KSVQ9JCh2b3B0X2lmIGppdCBPTiBPRkYpCkBAIC0y Myw4ICsyNCw4IEBAIGNvbmZpZ3VyZV9hcmdzPSItRFBPUlQ9R1RLIC1EVVNFX0xEX0dPTEQ9T0ZG CiAgLURFTkFCTEVfWDExX1RBUkdFVD0kKHZvcHRfaWYgeDExIE9OIE9GRikKICAtREVOQUJMRV9T QU1QTElOR19QUk9GSUxFUj0kKHZvcHRfaWYgc2FtcGxpbmdfcHJvZmlsZXIgT04gT0ZGKQogIC1E RU5BQkxFX0JVQkJMRVdSQVBfU0FOREJPWD0kKHZvcHRfaWYgYnViYmxld3JhcCBPTiBPRkYpIgot aG9zdG1ha2VkZXBlbmRzPSJwZXJsIHB5dGhvbiBwa2ctY29uZmlnIGdwZXJmIGZsZXggcnVieSBn ZXR0ZXh0IGdsaWItZGV2ZWwgZ2VvY2x1ZTIKLSAkKHZvcHRfaWYgd2F5bGFuZCB3YXlsYW5kLWRl dmVsKSIKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBweXRob24gcGtnLWNvbmZpZyBncGVyZiBmbGV4 IHJ1YnkgZ2V0dGV4dCBnbGliLWRldmVsCisgZ2VvY2x1ZTIgbGliaGFyZmJ1enogJCh2b3B0X2lm IHdheWxhbmQgd2F5bGFuZC1kZXZlbCkiCiBtYWtlZGVwZW5kcz0iYXQtc3BpMi1jb3JlLWRldmVs IGxpYmpwZWctdHVyYm8tZGV2ZWwgbGlicG5nLWRldmVsCiAgaGFyZmJ1enotZGV2ZWwgZ3N0LXBs dWdpbnMtYmFzZTEtZGV2ZWwgZ3N0LXBsdWdpbnMtYmFkMS1kZXZlbCBzcWxpdGUtZGV2ZWwKICBs aWJzb3VwLWRldmVsIGxpYnhzbHQtZGV2ZWwgZ251dGxzLWRldmVsIGljdS1kZXZlbCBlbmNoYW50 LWRldmVsCkBAIC0zOCw3ICszOSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciwgQlNELTItQ2xhdXNl IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2Via2l0Z3RrLm9yZy8iCiBkaXN0ZmlsZXM9IiR7aG9tZXBh Z2V9L3JlbGVhc2VzL3dlYmtpdGd0ay0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWYwODk4 YWMwNzJjMjIwZTEzYTRhZWU4MTk0MDg0MjFhNmNiNTZhNmViODkxNzBjZWFmZTUyNDY4YjA5MDM1 MjIKK2NoZWNrc3VtPWNiYmFkYjVlNTAyMWYwMDNkYzIxZjhhZTkzMDhjZjhhY2FmZjkwZTIxZGRi MDY5YWI1NTllYTUxMDgxOWNkMDEKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIHdheWxhbmQgeDExIGJ1 YmJsZXdyYXAgaml0IHNhbXBsaW5nX3Byb2ZpbGVyIG1pbmlicm93c2VyIgogYnVpbGRfb3B0aW9u c19kZWZhdWx0PSJnaXIgd2F5bGFuZCB4MTEgYnViYmxld3JhcCBtaW5pYnJvd3NlciIKQEAgLTQ4 LDggKzQ5LDkgQEAgZGVzY19vcHRpb25faml0PSJKYXZhU2NyaXB0IEpJVCAoT25seSBzb21lIGFy Y2hpdGVjdHVyZXMpIgogZGVzY19vcHRpb25fc2FtcGxpbmdfcHJvZmlsZXI9IlNhbXBsaW5nIHBy b2ZpbGVyIHN1cHBvcnQgKEpJVCArIGdsaWJjIG9ubHkpIgogZGVzY19vcHRpb25fbWluaWJyb3dz ZXI9IkJ1aWxkIHRoZSBtaW5pYnJvd3NlciIKIAotbWFrZWRlcGVuZHMrPSIgbGliaGFyZmJ1enoi Ci1ob3N0bWFrZWRlcGVuZHMrPSIgbGliaGFyZmJ1enoiCitkb19jaGVjaygpIHsKKwk6Cit9CiAK ICMgZGV0ZWN0aW9uICsgcnVudGltZQogaWYgWyAiJGJ1aWxkX29wdGlvbl9idWJibGV3cmFwIiBd OyB0aGVuCgpGcm9tIDQ4ZThjZDhkZmZkMTMwN2RhZjQ3YzU2Y2U3Y2RiZTMyY2Y1ZjViNWQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNi84M10gZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hczogdXBkYXRlIHRvIDMuMzcuMgoK LS0tCiAuLi4vcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoICAgICAgICAgICAgICAgICAgICAg fCAxMyAtLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvdGVt cGxhdGUgICAgICAgICAgfCAgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAxNiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dzZXR0aW5n cy1kZXNrdG9wLXNjaGVtYXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdp ci5wYXRjaCBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy9wYXRjaGVzL2ZpeC1j cm9zcy1naXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyOTlkNWM5Y2Qw Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvcGF0 Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAot ZGlmZiAtLWdpdCBhL2hlYWRlcnMvbWVzb24uYnVpbGQgYi9oZWFkZXJzL21lc29uLmJ1aWxkCi1p bmRleCAzY2U4YjYxLi4xMTMyNjk1IDEwMDY0NAotLS0tIGhlYWRlcnMvbWVzb24uYnVpbGQKLSsr KyBoZWFkZXJzL21lc29uLmJ1aWxkCi1AQCAtMTksNyArMTksNyBAQCBlbnVtc194bWwgPSBjdXN0 b21fdGFyZ2V0KAotICAgaW5zdGFsbDogdHJ1ZSwKLSAgIGluc3RhbGxfZGlyOiBzY2hlbWFzZGly KQotIAotLWlmIG5vdCBtZXNvbi5pc19jcm9zc19idWlsZCgpIGFuZCBnZXRfb3B0aW9uKCdpbnRy b3NwZWN0aW9uJykKLStpZiBnZXRfb3B0aW9uKCdpbnRyb3NwZWN0aW9uJykKLSAgIG5vaW5zdF9s aWIgPSBzaGFyZWRfbGlicmFyeSgnbm9pbnN0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBoZWFkZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbGw6IGZh bHNlKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBs YXRlIGIvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRlCmluZGV4IDQ5 YzY0Y2NhNzM4Li41NWYwOTc3ZDFjMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nc2V0dGluZ3MtZGVz a3RvcC1zY2hlbWFzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMnCiBwa2duYW1lPWdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMK LXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQog YnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1E aW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgpAQCAtMTIsNyArMTIsNyBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT03NjRhYjY4MzI4NjUzNjMyNDUzM2E1OGQ0ZTk1ZmM1N2Y4MWFkYWJhN2Q4ODBk ZDBlYmJiY2VkNjNlOTYwZWE2CitjaGVja3N1bT1lMzM4ZThjYmNlMTY4NGI3ZGYyZTUwYjJkNzBh MGIwZmU0NzE3NmZiMGIzNzNlNmJjNjdiMjY5NjBiNDBkOGVmCiAKICMgUGFja2FnZSBidWlsZCBv cHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIiCgpGcm9tIDZiMmYyMjJmNWU2YjJjOGE1Y2I5NDBj NjA2MWQ1ZDU0YjZjOTBlOTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNy84M10gZ25vbWUtZGVza3RvcDogdXBkYXRlIHRv IDMuMzcuOTEKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogc3JjcGtncy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2ggfCAxOCAr KysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZSAgICAgICAg ICAgIHwgMTEgKysrKysrKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLWRlc2t0b3Av cGF0Y2hlcy9idWlsZC5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24v c2hsaWJzCmluZGV4IGJlYTViNTA0NzAxLi5lYzNmMGVlMjRhMSAxMDA2NDQKLS0tIGEvY29tbW9u L3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0xMTc4LDcgKzExNzgsNyBAQCBsaWJnc3Ri YXNlY2FtZXJhYmluc3JjLTEuMC5zby4wIGdzdC1wbHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0 Y29kZWNwYXJzZXJzLTEuMC5zby4wIGdzdC1wbHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0cGxh eWVyLTEuMC5zby4wIGdzdC1wbHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0Z2wtMS4wLnNvLjAg Z3N0LXBsdWdpbnMtYmFzZTEtMS4xNC4wXzEKLWxpYmdub21lLWRlc2t0b3AtMy5zby4xOCBnbm9t ZS1kZXNrdG9wLTMuMzQuMF8xCitsaWJnbm9tZS1kZXNrdG9wLTMuc28uMTkgZ25vbWUtZGVza3Rv cC0zLjM3LjkwLjFfMQogbGlic2VjcmV0LTEuc28uMCBsaWJzZWNyZXQtMC4xMF8xCiBsaWJnd2Vh dGhlci0zLnNvLjE2IGxpYmd3ZWF0aGVyLTMuMzQuMF8xCiBsaWJnbm9tZWtiZC5zby44IGxpYmdu b21la2JkLTMuNi4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVz L2J1aWxkLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVmZWQwMGEyNWRkCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gK QEAgLTAsMCArMSwxOCBAQAorY29tbWl0IDRmNTVmZjA3ODQxMTk5M2I3ODJlNzRlYTE4YzVjNmFi MzVhZGY2ODUKK0F1dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitE YXRlOiAgIFdlZCBBdWcgMTIgMDU6MjY6MDAgMjAyMCArMDIwMAorCisgICAgYmxhCisKK2RpZmYg LS1naXQgbGliZ25vbWUtZGVza3RvcC9nbm9tZS1yci5oIGxpYmdub21lLWRlc2t0b3AvZ25vbWUt cnIuaAoraW5kZXggMTExYmFiMy4uNzY5ODY3MiAxMDA2NDQKKy0tLSBsaWJnbm9tZS1kZXNrdG9w L2dub21lLXJyLmgKKysrKyBsaWJnbm9tZS1kZXNrdG9wL2dub21lLXJyLmgKK0BAIC0yOCw2ICsy OCw3IEBACisgI2Vycm9yICAgIEdub21lUlIgaXMgdW5zdGFibGUgQVBJLiBZb3UgbXVzdCBkZWZp bmUgR05PTUVfREVTS1RPUF9VU0VfVU5TVEFCTEVfQVBJIGJlZm9yZSBpbmNsdWRpbmcgZ25vbWVy ci5oCisgI2VuZGlmCisgCisrI2luY2x1ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxnbGliLmg+ CisgI2luY2x1ZGUgPGdkay9nZGsuaD4KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGVz a3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZQppbmRleCA5OTJj YjFmZjE2YS4uYjA1OGFlYmZmZjkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsMTAgKzEs MTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWRlc2t0b3AnCiBwa2duYW1lPWdub21l LWRlc2t0b3AKLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzcuOTEKIHJldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGdu b21lLWRpc3RyaWJ1dG9yPVZvaWRMaW51eCAtRHVkZXY9ZW5hYmxlZAorY29uZmlndXJlX2FyZ3M9 Ii1EZ25vbWVfZGlzdHJpYnV0b3I9Vm9pZExpbnV4IC1EdWRldj1lbmFibGVkIC1Ec3lzdGVtZD1k aXNhYmxlZAogIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgogaG9z dG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGl0c3Rvb2wgcGtnLWNvbmZpZyBnbGliLWRldmVsIgogbWFr ZWRlcGVuZHM9ImV1ZGV2LWxpYnVkZXYtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1k ZXZlbCBndGsrMy1kZXZlbApAQCAtMTYsMTEgKzE2LDE2IEBAIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBM R1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05P TUUvZ25vbWUtZGVza3RvcCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWMxZGJl YjU2NjZkYWQyNzE2NmM3NjllNDhlMmFiNDFkZDVlZDc0NzE4ZWEzNWViNTdjODQ4ODc5MDY2MmRj NWEKK2NoZWNrc3VtPTMyMmY2YTFkMjMzZGE3NmY5NWI3ZWVlMWVlOTNkOTg1NDU4OTkzN2MyMThl M2I2NjUyYzkyZDliNWUxYjNiMTkKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9u c19kZWZhdWx0PSJnaXIiCiAKKyMgbmVlZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQorCiBnbm9t ZS1kZXNrdG9wLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3NldHRp bmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbD49My4xMgogCSBnZGstcGl4YnVmLWRldmVsIGlzby1j b2RlcyBsaWJYMTEtZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJzZWNjb21wLWRldmVsCgpGcm9tIGU1 NWM3NWFmMWUyYmUwZWYyODA2YzUxNjAzYjFjMGU3NmI1NTJlYjUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBU aHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOC84M10gbGli Z3dlYXRoZXI6IHVwZGF0ZSB0byAzLjM2LjEKCi0tLQogc3JjcGtncy9saWJnd2VhdGhlci90ZW1w bGF0ZSB8IDE1ICsrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBs YXRlIGIvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZQppbmRleCAzNGM2NGQ2ZTNhMS4uZmNk YjU4Nzk1MDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbGliZ3dlYXRoZXInCiBwa2duYW1lPWxpYmd3ZWF0aGVyCi12ZXJzaW9uPTMu MzYuMAordmVyc2lvbj0zLjM2LjEKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWls ZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZV92YWxhPSQodm9wdF9pZiB2 YWxhIHRydWUgZmFsc2UpCi0gLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxz ZSkKK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfYm9vbCBnaXIgZW5hYmxlX3ZhbGEpICQodm9wdF9i b29sIGdpciBpbnRyb3NwZWN0aW9uKQogIC1Eem9uZWluZm9fZGlyPS91c3Ivc2hhcmUvem9uZWlu Zm8iCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyAkKHZv cHRfaWYgdmFsYSB2YWxhKSIKK2hvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBw a2ctY29uZmlnICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ2VvY29kZS1nbGli LWRldmVsIGd0ayszLWRldmVsIGxpYnNvdXAtZ25vbWUtZGV2ZWwiCiBjaGVja2RlcGVuZHM9InR6 ZGF0YSIKIHNob3J0X2Rlc2M9IkdOT01FIFdlYXRoZXIgaW5mb3JtYXRpb24gYWNjZXNzIGxpYnJh cnkiCkBAIC0xNSwxMCArMTQsMTAgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvTGliR1dlYXRoZXIiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT1kMmZmZWVjMDE3ODhkMDNkMWJiZjM1MTEzZmMyZjA1NGM2YzM2 MDA3MjEwODhmODI3YmNjMzFlNWM2MDNhMzJkCitjaGVja3N1bT1kZTI3MDlmMGVlMjMzYjIwMTE2 ZDVmYTk4NjFkNDA2MDcxNzk4YzRhYTM3ODMwY2EyNWY1ZWYyYzAwODNlNDUwCiAKLWJ1aWxkX29w dGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxk X29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBwb3N0X3BhdGNo KCkgewogCSMgVGhpcyB0ZXN0IHJlcXVpcmVzIExDX0lERU5USUZJQ0FUSU9OLCB3aGljaCBpcyBh IEdMSUJDJ3MgZXh0ZW5zaW9uCkBAIC0zNSw4ICszNCw2IEBAIGxpYmd3ZWF0aGVyLWRldmVsX3Bh Y2thZ2UoKSB7CiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCWlmIFsgIiRidWlsZF9vcHRpb25f Z2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAotCQlmaQotCQlpZiBbICIk YnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZp CiAJfQoKRnJvbSAyYjAwMWIyM2U0Y2YwMmUxYjVjZTkwOTFjZDlmODg2MjFjNWY4MzczIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDkvODNdIGdub21lLXNldHRpbmdzLWRhZW1vbjogdXBkYXRlIHRvIDMuMzcuMAoKLS0tCiAu Li4vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoICAgICAgICAgICAgfCAxMzYgKysrKysr KysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZSAgICAg ICAgfCAgMTEgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24v cGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoIGIvc3JjcGtn cy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNWNhNmJkNDNkZAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3BhdGNoZXMvbG9naW5k LWJhY2tsaWdodC5wYXRjaApAQCAtMCwwICsxLDEzNiBAQAorRnJvbSAzODQ1YjNhN2I1OGYyNmVj NjhkYmMxYzQ1N2VhZDA2ZjQ4ODExODBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBGcmksIDE0IEF1ZyAy MDIwIDE3OjQ4OjIxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFRoZSBuZXcgbG9naW5kIGJyaWdo dG5lc3MgY29kZSBkb2Vzbid0IHdvcmsgd2l0aCBlbG9naW5kLgorCitodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvZ25vbWUtc2V0dGluZ3MtZGFlbW9uLy0vY29tbWl0L2NkMDUxZTZjN2Nj ZmI3ZTdiMGVjNDQwNDA5YzU1OWIyZTUxMjg0ZTgKKy0tLQorIHBsdWdpbnMvcG93ZXIvZ3NkLWJh Y2tsaWdodC5jIHwgNzcgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZp bGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYyBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGln aHQuYworaW5kZXggY2E1ZjI3Mi4uNGFjYzJlNSAxMDA2NDQKKy0tLSBwbHVnaW5zL3Bvd2VyL2dz ZC1iYWNrbGlnaHQuYworKysrIHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jCitAQCAtNDAs OCArNDAsNiBAQCBzdHJ1Y3QgX0dzZEJhY2tsaWdodAorICAgICAgICAgZ2ludCBicmlnaHRuZXNz X3N0ZXA7CisgCisgI2lmZGVmIF9fbGludXhfXworLSAgICAgICAgR0RCdXNQcm94eSAqbG9naW5k X3Byb3h5OworLQorICAgICAgICAgR1VkZXZDbGllbnQgKnVkZXY7CisgICAgICAgICBHVWRldkRl dmljZSAqdWRldl9kZXZpY2U7CisgCitAQCAtNjEsMTAgKzU5LDYgQEAgZW51bSB7CisgICAgICAg ICBQUk9QX0xBU1QsCisgfTsKKyAKKy0jZGVmaW5lIFNZU1RFTURfREJVU19OQU1FICAgICAgICAg ICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLmxvZ2luMSIKKy0jZGVmaW5lIFNZU1RFTURf REJVU19QQVRIICAgICAgICAgICAgICAgICAgICAgICAiL29yZy9mcmVlZGVza3RvcC9sb2dpbjEv c2Vzc2lvbi9hdXRvIgorLSNkZWZpbmUgU1lTVEVNRF9EQlVTX0lOVEVSRkFDRSAgICAgICAgICAg ICAgICAgICJvcmcuZnJlZWRlc2t0b3AubG9naW4xLlNlc3Npb24iCistCisgc3RhdGljIEdQYXJh bVNwZWMgKnByb3BzW1BST1BfTEFTVF07CisgCisgc3RhdGljIHZvaWQgICAgIGdzZF9iYWNrbGln aHRfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgICppZmFjZSk7CitAQCAtNDgy LDMwICs0NzYsMTMgQEAgZ3NkX2JhY2tsaWdodF9zZXRfYnJpZ2h0bmVzc192YWxfYXN5bmMgKEdz ZEJhY2tsaWdodCAqYmFja2xpZ2h0LAorICAgICAgICAgaWYgKGJhY2tsaWdodC0+dWRldl9kZXZp Y2UgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICBCYWNrbGlnaHRIZWxwZXJEYXRhICp0YXNr X2RhdGE7CisgCistICAgICAgICAgICAgICAgIGlmIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSkg eworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfZGJ1c19wcm94eV9jYWxsIChiYWNrbGlnaHQt PmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIlNldEJyaWdodG5lc3MiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzdSkiLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFja2xpZ2h0IiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ191ZGV2 X2RldmljZV9nZXRfbmFtZSAoYmFja2xpZ2h0LT51ZGV2X2RldmljZSksCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tsaWdodC0+ YnJpZ2h0bmVzc190YXJnZXQpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtMSwgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CistCistICAgICAgICAgICAgICAgICAgICAg ICAgcGVyY2VudCA9IEFCU19UT19QRVJDRU5UQUdFIChiYWNrbGlnaHQtPmJyaWdodG5lc3NfbWlu LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmFja2xpZ2h0LT5icmlnaHRuZXNzX21heCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19yZXR1cm5faW50ICh0YXNrLCBwZXJjZW50 KTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0 YXNrX2RhdGEgPSBnX25ldzAgKEJhY2tsaWdodEhlbHBlckRhdGEsIDEpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIHRhc2tfZGF0YS0+dmFsdWUgPSBiYWNrbGlnaHQtPmJyaWdodG5lc3NfdGFy Z2V0OworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19zZXRfdGFza19kYXRhICh0YXNr LCB0YXNrX2RhdGEsIGJhY2tsaWdodF90YXNrX2RhdGFfZGVzdHJveSk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQgdXAgbm93LiBRdWV1ZSBpdCBhbmQgZW5zdXJl IHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICBn X3F1ZXVlX3B1c2hfdGFpbCAoJmJhY2tsaWdodC0+dGFza3MsIHRhc2spOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vzc190YXNrcXVldWUgKGJhY2tsaWdodCk7 CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgdGFza19kYXRhID0gZ19uZXcw IChCYWNrbGlnaHRIZWxwZXJEYXRhLCAxKTsKKysgICAgICAgICAgICAgICAgdGFza19kYXRhLT52 YWx1ZSA9IGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQ7CisrICAgICAgICAgICAgICAgIGdf dGFza19zZXRfdGFza19kYXRhICh0YXNrLCB0YXNrX2RhdGEsIGJhY2tsaWdodF90YXNrX2RhdGFf ZGVzdHJveSk7CisrCisrICAgICAgICAgICAgICAgIC8qIFRhc2sgaXMgc2V0IHVwIG5vdy4gUXVl dWUgaXQgYW5kIGVuc3VyZSB3ZSBhcmUgd29ya2luZyBzb21ldGhpbmcuICovCisrICAgICAgICAg ICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmYmFja2xpZ2h0LT50YXNrcywgdGFzayk7CisrICAg ICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vzc190YXNrcXVldWUgKGJhY2tsaWdodCk7 CisgCisgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KK0BAIC04MjMsNyArODAw LDYgQEAgZ3NkX2JhY2tsaWdodF9pbml0YWJsZV9pbml0IChHSW5pdGFibGUgICAgICAgKmluaXRh YmxlLAorIHsKKyAgICAgICAgIEdzZEJhY2tsaWdodCAqYmFja2xpZ2h0ID0gR1NEX0JBQ0tMSUdI VCAoaW5pdGFibGUpOworICAgICAgICAgR25vbWVSUk91dHB1dCogb3V0cHV0ID0gTlVMTDsKKy0g ICAgICAgIEdFcnJvciAqbG9naW5kX2Vycm9yID0gTlVMTDsKKyAKKyAgICAgICAgIGlmIChjYW5j ZWxsYWJsZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwg KGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX05PVF9TVVBQT1JURUQsCitAQCAtODMyLDQ0 ICs4MDgsNiBAQCBnc2RfYmFja2xpZ2h0X2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAgICAgICAq aW5pdGFibGUsCisgICAgICAgICB9CisgCisgI2lmZGVmIF9fbGludXhfXworLSAgICAgICAgYmFj a2xpZ2h0LT5sb2dpbmRfcHJveHkgPQorLSAgICAgICAgICAgICAgICBnX2RidXNfcHJveHlfbmV3 X2Zvcl9idXNfc3luYyAoR19CVVNfVFlQRV9TWVNURU0sCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNZU1RFTURfREJVU19OQU1FLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lTVEVNRF9EQlVTX1BBVEgsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTWVNURU1EX0RCVVNfSU5U RVJGQUNFLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCwgJmxvZ2luZF9lcnJvcik7CistICAgICAgICBpZiAoYmFja2xpZ2h0LT5sb2dpbmRfcHJv eHkpIHsKKy0gICAgICAgICAgICAgICAgLyogQ2hlY2sgdGhhdCB0aGUgU2V0QnJpZ2h0bmVzcyBt ZXRob2QgZG9lcyBleGlzdCAqLworLSAgICAgICAgICAgICAgICBnX2RidXNfcHJveHlfY2FsbF9z eW5jIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLCBOVUxMLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLCAtMSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJmxvZ2luZF9lcnJvcik7 CistCistICAgICAgICAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMgKGxvZ2luZF9lcnJvciwg R19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RC VVNfRVJST1JfSU5WQUxJRF9BUkdTKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdl IGFyZSBjYWxsaW5nIHRoZSBtZXRob2Qgd2l0aCBubyBhcmd1bWVudHMsIHNvCistICAgICAgICAg ICAgICAgICAgICAgICAgICogdGhpcyBpcyBleHBlY3RlZC4KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX2Vycm9yICgmbG9naW5k X2Vycm9yKTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChnX2Vycm9yX21hdGNoZXMgKGxv Z2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SX1VOS05PV05fTUVUSE9EKSkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIC8qIHN5c3RlbWQgdmVyc2lvbiBpcyB0b28gb2xkLCBzbyBpZ25vcmUu CistICAgICAgICAgICAgICAgICAgICAgICAgICovCistICAgICAgICAgICAgICAgICAgICAgICAg Z19jbGVhcl9lcnJvciAoJmxvZ2luZF9lcnJvcik7CistICAgICAgICAgICAgICAgICAgICAgICAg Z19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CistICAgICAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLyogRmFpbCBvbiBhbnl0aGlu ZyBlbHNlICovCistICAgICAgICAgICAgICAgICAgICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNr bGlnaHQtPmxvZ2luZF9wcm94eSk7CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0K Ky0gICAgICAgIGlmIChsb2dpbmRfZXJyb3IpIHsKKy0gICAgICAgICAgICAgICAgZ193YXJuaW5n ICgiTm8gbG9naW5kIGZvdW5kOiAlcyIsIGxvZ2luZF9lcnJvci0+bWVzc2FnZSk7CistICAgICAg ICAgICAgICAgIGdfZXJyb3JfZnJlZSAobG9naW5kX2Vycm9yKTsKKy0gICAgICAgIH0KKy0KKyAg ICAgICAgIC8qIFRyeSBmaW5kaW5nIGEgdWRldiBkZXZpY2UuICovCisgICAgICAgICBpZiAoZ3Nk X2JhY2tsaWdodF91ZGV2X2luaXQgKGJhY2tsaWdodCkpCisgICAgICAgICAgICAgICAgIGdvdG8g Zm91bmQ7CitAQCAtOTExLDcgKzg0OSw2IEBAIGdzZF9iYWNrbGlnaHRfZmluYWxpemUgKEdPYmpl Y3QgKm9iamVjdCkKKyAjaWZkZWYgX19saW51eF9fCisgICAgICAgICBnX2Fzc2VydCAoYmFja2xp Z2h0LT5hY3RpdmVfdGFzayA9PSBOVUxMKTsKKyAgICAgICAgIGdfYXNzZXJ0IChnX3F1ZXVlX2lz X2VtcHR5ICgmYmFja2xpZ2h0LT50YXNrcykpOworLSAgICAgICAgZ19jbGVhcl9vYmplY3QgKCZi YWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CisgICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2ts aWdodC0+dWRldik7CisgICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+dWRldl9k ZXZpY2UpOworICAgICAgICAgaWYgKGJhY2tsaWdodC0+aWRsZV91cGRhdGUpIHsKKy0tIAorMi4y OC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3RlbXBsYXRl IGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vdGVtcGxhdGUKaW5kZXggYTcwZTI4YmU1 ZmEuLmYyNTQ1OWVjZTgyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1v bi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQpA QCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2V0dGluZ3MtZGFl bW9uJwogcGtnbmFtZT1nbm9tZS1zZXR0aW5ncy1kYWVtb24KLXZlcnNpb249My4zNC4xCi1yZXZp c2lvbj0yCit2ZXJzaW9uPTMuMzcuMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNv bmZpZ3VyZV9hcmdzKz0iLURzeXN0ZW1kPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBk b2Nib29rLXhzbCBnbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlieHNsdCBwZXJsIHBrZy1jb25m aWciCitob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGRvY2Jvb2steHNsIGdldHRleHQgZ2xpYi1kZXZl bCBsaWJnbGliLWRldmVsIGxpYnhzbHQKKyBwZXJsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0i TmV0d29ya01hbmFnZXItZGV2ZWwgYWxzYS1saWItZGV2ZWwgY29sb3JkLWRldmVsIGN1cHMtZGV2 ZWwgZ2NyLWRldmVsCiAgZ2VvY2x1ZTItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBpYnVzLWRl dmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdub21la2JkLWRldmVsCiAgbGliZ3dlYXRoZXItZGV2 ZWwgbGlibm90aWZ5LWRldmVsIGxpYnJzdmctZGV2ZWwgbGlid2Fjb20tZGV2ZWwgbnNzLWRldmVs CkBAIC0xMiwxMyArMTMsMTMgQEAgbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGFs c2EtbGliLWRldmVsIGNvbG9yZC1kZXZlbCBjdXBzLWRldmVsIGdjci1kZXYKICB4Zjg2LWlucHV0 LXdhY29tLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIHB1bHNlYXVkaW8iCiBj aGVja2RlcGVuZHM9ImVsb2dpbmQgbGlibm90aWZ5IHB5dGhvbjMtZGJ1c21vY2sgcHl0aG9uMy1n b2JqZWN0Ci0gcHl0aG9uMy1weWNvZGVzdHlsZSIKKyBweXRob24zLXB5Y29kZXN0eWxlIHdoaWNo IGh3aWRzIGV1ZGV2Igogc2hvcnRfZGVzYz0iR05PTUUgc2V0dGluZ3MgZGFlbW9uIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0z LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2du b21lLXNldHRpbmdzLWRhZW1vbiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTk5 ODFhMjBiYWJmOGRhNzc0NGI3ZmJlMTc1YjllMzYwNzhiZjA4ZjNiZjY1ZmU1YWVkZWI4MmNmZTI3 YWMxMWYKK2NoZWNrc3VtPWRmNzA5MzEzYjgwOTY4MDE2NTcwZjM0MWViYzMxZWVlODMyOWYzMTJj MDY4ZjY4MWMwYTE5NGFkOTRiMDBkZjAKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJ aG9zdG1ha2VkZXBlbmRzKz0iIHBvbGtpdCIKCkZyb20gMGY0Y2E5YjZlNDBhNTQ1MWRjMWFlZDI5 NmMxYmZmNzEyOTg3YzY1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEwLzgzXSBtdXR0ZXI6IHVwZGF0ZSB0byAzLjM3Ljkx CgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx OCArLQogLi4uL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoICAgICAgIHwgIDEx IC0KIHNyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNoICAgICB8IDUyMSAt LS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlICAgICAgICAgICAgICAg ICAgICAgICB8ICAzNCArLQogNCBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCA1NTUg ZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9m aXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211 dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxp YnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGVjM2YwZWUyNGExLi5lMTYyZjZhNzUzOSAxMDA2NDQK LS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0zMDA0LDE1ICszMDA0 LDE1IEBAIGxpYmRlY29yYXRpb24uc28uMCBjb21waXotY29yZS0wLjguMTRfMQogbGliY29tcGl6 Y29uZmlnLnNvLjAgbGliY29tcGl6Y29uZmlnLTAuOC4xNF8xCiBsaWJlbWVyYWxkZW5naW5lLnNv LjAgZW1lcmFsZC0wLjguMTRfMQogbGliaGFuZ3VsLnNvLjEgbGliaGFuZ3VsLTAuMS4wXzEKLWxp Ym11dHRlci01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY2x1dHRlci01LnNvIG11 dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNsdXR0ZXItNS5zby4wIG11dHRlci0zLjM0LjFfMQot bGlibXV0dGVyLWNvZ2wtcGF0aC01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wt cGF0aC01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY29nbC01LnNvIG11dHRlci0z LjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtNS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVy LWNvZ2wtcGFuZ28tNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLXBhbmdvLTUu c28uMCBtdXR0ZXItMy4zNC4xXzEKK2xpYm11dHRlci03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQor bGlibXV0dGVyLWNsdXR0ZXItNy5zbyBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY2x1dHRl ci03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGF0aC03LnNvIG11dHRl ci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhdGgtNy5zby4wIG11dHRlci0zLjM3LjkwXzEK K2xpYm11dHRlci1jb2dsLTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtNy5z by4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhbmdvLTcuc28gbXV0dGVyLTMu MzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zby4wIG11dHRlci0zLjM3LjkwXzEKIGxp Ymdlb2NsdWUtMi5zby4wIGdlb2NsdWUyLTIuNC40XzEKIGxpYmdlcHViLnNvLjAgbGliZ2VwdWIt MC40XzEKIGxpYnNsb3B5LnNvLjcuNSBzbG9wLTcuNV8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL211 dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRlcy5wYXRjaCBiL3NyY3BrZ3MvbXV0dGVy L3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBkOTA5ODg4ODdjMy4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXR0ZXIv cGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MSArMCwwIEBACi0tLS0gY29nbC9jb2dsL21lc29uLmJ1aWxkCTIwMTktMTAtMDggMTk6MTU6MTAu MDAwMDAwMDAwICswMjAwCi0rKysgY29nbC9jb2dsL21lc29uLmJ1aWxkCTIwMTktMTItMTYgMTU6 NDU6NDQuMDM3NjQwNTQ4ICswMTAwCi1AQCAtNDgsNyArNDgsNyBAQAotIGJ1aWx0X2hlYWRlcnMg Kz0gW2NvZ2xfZ2xfaGVhZGVyX2hdCi0gCi0gaWYgaGF2ZV9lZ2wKLS0gIGNvZ2xfZWdsX2luY2x1 ZGVzX3N0cmluZyA9ICcjaW5jbHVkZSA8RUdML2VnbC5oPlxuI2luY2x1ZGUgPEVHTC9lZ2xleHQu aD4nCi0rICBjb2dsX2VnbF9pbmNsdWRlc19zdHJpbmcgPSAnI2luY2x1ZGUgPEVHTC9lZ2wuaD5c biNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+XG4jaW5jbHVkZSA8RUdML2VnbG1lc2FleHQuaD4nCi0g ZWxzZQotICAgY29nbF9lZ2xfaW5jbHVkZXNfc3RyaW5nID0gJycKLSBlbmRpZgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2ggYi9zcmNwa2dzL211 dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZWJmZjY1ZmJhODUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNo ZXMvcGlwZXdpcmUtMC4zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIxICswLDAgQEAKLUJ1 aWxkIG11dHRlciBhZ2FpbnN0IHBpcGV3aXJlLTAuMywgYmFzZWQgb24gYSBwYXRjaCBhdDoKLWh0 dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tdXR0ZXIvLS9tZXJnZV9yZXF1ZXN0cy8xMDYy Ci0tLS0gbWVzb24uYnVpbGQKLSsrKyBtZXNvbi5idWlsZAotQEAgLTUwLDcgKzUwLDcgQEAgbGli aW5wdXRfcmVxID0gJz49IDEuNycKLSBnYm1fcmVxID0gJz49IDEwLjMnCi0KLSAjIHNjcmVlbiBj YXN0IHZlcnNpb24gcmVxdWlyZW1lbnRzCi0tbGlicGlwZXdpcmVfcmVxID0gJz49IDAuMi41Jwot K2xpYnBpcGV3aXJlX3JlcSA9ICc+PSAwLjMuMCcKLQotIGdub21lID0gaW1wb3J0KCdnbm9tZScp Ci0gcGtnID0gaW1wb3J0KCdwa2djb25maWcnKQotQEAgLTI0MSw3ICsyNDEsNyBAQCBlbmRpZgot Ci0gaGF2ZV9yZW1vdGVfZGVza3RvcCA9IGdldF9vcHRpb24oJ3JlbW90ZV9kZXNrdG9wJykKLSBp ZiBoYXZlX3JlbW90ZV9kZXNrdG9wCi0tICBsaWJwaXBld2lyZV9kZXAgPSBkZXBlbmRlbmN5KCds aWJwaXBld2lyZS0wLjInLCB2ZXJzaW9uOiBsaWJwaXBld2lyZV9yZXEpCi0rICBsaWJwaXBld2ly ZV9kZXAgPSBkZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0wLjMnLCB2ZXJzaW9uOiBsaWJwaXBld2ly ZV9yZXEpCi0gZW5kaWYKLQotIGhhdmVfaW50cm9zcGVjdGlvbiA9IGdldF9vcHRpb24oJ2ludHJv c3BlY3Rpb24nKQotZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0 cmVhbS1zcmMuYyBiL3NyYy9iYWNrZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0cmVhbS1zcmMuYwot aW5kZXggODJjNWNiYTQzNi4uYmExY2U5NGE3ZSAxMDA2NDQKLS0tLSBzcmMvYmFja2VuZHMvbWV0 YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLSsrKyBzcmMvYmFja2VuZHMvbWV0YS1zY3JlZW4t Y2FzdC1zdHJlYW0tc3JjLmMKLUBAIC0yOSw2ICsyOSw3IEBACi0gI2luY2x1ZGUgPHNwYS9wYXJh bS9wcm9wcy5oPgotICNpbmNsdWRlIDxzcGEvcGFyYW0vZm9ybWF0LXV0aWxzLmg+Ci0gI2luY2x1 ZGUgPHNwYS9wYXJhbS92aWRlby9mb3JtYXQtdXRpbHMuaD4KLSsjaW5jbHVkZSA8c3BhL3V0aWxz L3Jlc3VsdC5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAjaW5jbHVkZSA8c3lzL21tYW4uaD4K LQotQEAgLTYyLDE1ICs2Myw2IEBAIGVudW0KLQotIHN0YXRpYyBndWludCBzaWduYWxzW05fU0lH TkFMU107Ci0KLS10eXBlZGVmIHN0cnVjdCBfTWV0YVNwYVR5cGUKLS17Ci0tICBzdHJ1Y3Qgc3Bh X3R5cGVfbWVkaWFfdHlwZSBtZWRpYV90eXBlOwotLSAgc3RydWN0IHNwYV90eXBlX21lZGlhX3N1 YnR5cGUgbWVkaWFfc3VidHlwZTsKLS0gIHN0cnVjdCBzcGFfdHlwZV9mb3JtYXRfdmlkZW8gZm9y bWF0X3ZpZGVvOwotLSAgc3RydWN0IHNwYV90eXBlX3ZpZGVvX2Zvcm1hdCB2aWRlb19mb3JtYXQ7 Ci0tICB1aW50MzJfdCBtZXRhX2N1cnNvcjsKLS19IE1ldGFTcGFUeXBlOwotLQotIHR5cGVkZWYg c3RydWN0IF9NZXRhUGlwZVdpcmVTb3VyY2UKLSB7Ci0gICBHU291cmNlIGJhc2U7Ci1AQCAtODIs MTkgKzc0LDE5IEBAIHR5cGVkZWYgc3RydWN0IF9NZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZh dGUKLSB7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbSAqc3RyZWFtOwotCi0rICBzdHJ1Y3QgcHdf Y29udGV4dCAqcGlwZXdpcmVfY29udGV4dDsKLSAgIHN0cnVjdCBwd19jb3JlICpwaXBld2lyZV9j b3JlOwotLSAgc3RydWN0IHB3X3JlbW90ZSAqcGlwZXdpcmVfcmVtb3RlOwotLSAgc3RydWN0IHB3 X3R5cGUgKnBpcGV3aXJlX3R5cGU7Ci0gICBNZXRhUGlwZVdpcmVTb3VyY2UgKnBpcGV3aXJlX3Nv dXJjZTsKLS0gIHN0cnVjdCBzcGFfaG9vayBwaXBld2lyZV9yZW1vdGVfbGlzdGVuZXI7Ci0rICBz dHJ1Y3Qgc3BhX2hvb2sgcGlwZXdpcmVfY29yZV9saXN0ZW5lcjsKLQotICAgZ2Jvb2xlYW4gaXNf ZW5hYmxlZDsKLQotICAgc3RydWN0IHB3X3N0cmVhbSAqcGlwZXdpcmVfc3RyZWFtOwotICAgc3Ry dWN0IHNwYV9ob29rIHBpcGV3aXJlX3N0cmVhbV9saXN0ZW5lcjsKLSsgIHVpbnQzMl90IG5vZGVf aWQ7Ci0KLS0gIE1ldGFTcGFUeXBlIHNwYV90eXBlOwotICAgc3RydWN0IHNwYV92aWRlb19pbmZv X3JhdyB2aWRlb19mb3JtYXQ7Ci0rICBpbnQgdmlkZW9fc3RyaWRlOwotCi0gICB1aW50NjRfdCBs YXN0X2ZyYW1lX3RpbWVzdGFtcF91czsKLQotQEAgLTExMiw4ICsxMDQsNiBAQCBHX0RFRklORV9U WVBFX1dJVEhfQ09ERSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1f c3JjX2luaXRfaW5pdGFibGVfaWZhY2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEdfQURE X1BSSVZBVEUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjKSkKLQotLSNkZWZpbmUgUFJPUF9SQU5H RShtaW4sIG1heCkgMiwgKG1pbiksIChtYXgpCi0tCi0gc3RhdGljIHZvaWQKLSBtZXRhX3NjcmVl bl9jYXN0X3N0cmVhbV9zcmNfZ2V0X3NwZWNzIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3Jj LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAg ICAgICAgICAgICp3aWR0aCwKLUBAIC0yODYsOSArMjc2LDYgQEAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChNZXRhU2NyZWVuQ2Fz dFN0cmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICB4LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAg ICAgICAgICAgICAgICAgIHkpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRl ICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9w cml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBl OwotICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCAqc3BhX21ldGFfYml0bWFwOwotCi0gICBzcGFf bWV0YV9jdXJzb3ItPmlkID0gMTsKLUBAIC0zMDAsNyArMjg3LDcgQEAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChNZXRhU2NyZWVu Q2FzdFN0cmUKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQQV9NRU1CRVIgKHNwYV9tZXRhX2N1cnNv ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYV9tZXRhX2N1cnNvci0+Yml0 bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzcGFf bWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQgPSBzcGFfdHlwZS0+dmlk ZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1hdCA9IFNQQV9WSURFT19G T1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+b2Zmc2V0ID0gc2l6ZW9mIChzdHJ1Y3Qg c3BhX21ldGFfYml0bWFwKTsKLQotICAgc3BhX21ldGFfY3Vyc29yLT5ob3RzcG90LnggPSAwOwot QEAgLTMxNyw5ICszMDQsNiBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfc2V0X2N1cnNv cl9zcHJpdGVfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAg ICAgICAgICAgICAgeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZsb2F0ICAgICAgICAgICAgICAgICAgICBzY2FsZSkKLSB7Ci0tICBN ZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotLSAgICBtZXRhX3NjcmVlbl9j YXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBNZXRhU3BhVHlw ZSAqc3BhX3R5cGUgPSAmcHJpdi0+c3BhX3R5cGU7Ci0gICBDb2dsVGV4dHVyZSAqY3Vyc29yX3Rl eHR1cmU7Ci0gICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwICpzcGFfbWV0YV9iaXRtYXA7Ci0gICBp bnQgaG90c3BvdF94LCBob3RzcG90X3k7Ci1AQCAtMzQ2LDcgKzMzMCw3IEBAIG1ldGFfc2NyZWVu X2Nhc3Rfc3RyZWFtX3NyY19zZXRfY3Vyc29yX3Nwcml0ZV9tZXRhZGF0YSAoTWV0YVNjcmVlbkNh c3RTdHJlYW1TcmMKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQQV9NRU1CRVIgKHNwYV9tZXRhX2N1 cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYV9tZXRhX2N1cnNvci0+ Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBz cGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQgPSBzcGFfdHlwZS0+ dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1hdCA9IFNQQV9WSURF T19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+b2Zmc2V0ID0gc2l6ZW9mIChzdHJ1 Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgbWV0YV9jdXJzb3Jfc3ByaXRlX2dldF9ob3RzcG90 IChjdXJzb3Jfc3ByaXRlLCAmaG90c3BvdF94LCAmaG90c3BvdF95KTsKLUBAIC0zODIsMTIgKzM2 NiwxMCBAQCBzdGF0aWMgdm9pZAotIGFkZF9jdXJzb3JfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0 U3RyZWFtU3JjICpzcmMsCi0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNwYV9idWZmZXIg ICAgICAgKnNwYV9idWZmZXIpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRl ICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9w cml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBl OwotICAgc3RydWN0IHNwYV9tZXRhX2N1cnNvciAqc3BhX21ldGFfY3Vyc29yOwotCi0tICBzcGFf bWV0YV9jdXJzb3IgPSBzcGFfYnVmZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZlciwgc3BhX3R5cGUt Pm1ldGFfY3Vyc29yKTsKLSsgIHNwYV9tZXRhX2N1cnNvciA9IHNwYV9idWZmZXJfZmluZF9tZXRh X2RhdGEgKHNwYV9idWZmZXIsIFNQQV9NRVRBX0N1cnNvciwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoKnNwYV9tZXRhX2N1cnNvcikpOwot ICAgaWYgKHNwYV9tZXRhX2N1cnNvcikKLSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3Jj X3NldF9jdXJzb3JfbWV0YWRhdGEgKHNyYywgc3BhX21ldGFfY3Vyc29yKTsKLSB9Ci1AQCAtNDQ3 LDE0ICs0MjksMTQgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX21heWJlX3JlY29yZF9m cmFtZSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYykKLSAgICAgewotICAgICAgIGRhdGEg PSBzcGFfYnVmZmVyLT5kYXRhc1swXS5kYXRhOwotICAgICB9Ci0tICBlbHNlIGlmIChzcGFfYnVm ZmVyLT5kYXRhc1swXS50eXBlID09IHByaXYtPnBpcGV3aXJlX3R5cGUtPmRhdGEuTWVtRmQpCi0r ICBlbHNlIGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50eXBlID09IFNQQV9EQVRBX01lbUZkKQot ICAgICB7Ci0gICAgICAgbWFwID0gbW1hcCAoTlVMTCwgc3BhX2J1ZmZlci0+ZGF0YXNbMF0ubWF4 c2l6ZSArIHNwYV9idWZmZXItPmRhdGFzWzBdLm1hcG9mZnNldCwKLSAgICAgICAgICAgICAgICAg ICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELAotICAgICAgICAgICAgICAgICAg IHNwYV9idWZmZXItPmRhdGFzWzBdLmZkLCAwKTsKLSAgICAgICBpZiAobWFwID09IE1BUF9GQUlM RUQpCi0gICAgICAgICB7Ci0tICAgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBtbWFwIHBp cGV3aXJlIHN0cmVhbSBidWZmZXI6ICVzXG4iLAotKyAgICAgICAgICBnX3dhcm5pbmcgKCJGYWls ZWQgdG8gbW1hcCBwaXBld2lyZSBzdHJlYW0gYnVmZmVyOiAlcyIsCi0gICAgICAgICAgICAgICAg ICAgICAgc3RyZXJyb3IgKGVycm5vKSk7Ci0gICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0K LUBAIC00NjksMjggKzQ1MSwzMCBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbWF5YmVf cmVjb3JkX2ZyYW1lIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjKQotCi0gICBpZiAobWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3JlY29yZF9mcmFtZSAoc3JjLCBkYXRhKSkKLSAgICAg ewotLSAgICAgIHN0cnVjdCBzcGFfbWV0YV92aWRlb19jcm9wICpzcGFfbWV0YV92aWRlb19jcm9w OwotKyAgICAgIHN0cnVjdCBzcGFfbWV0YV9yZWdpb24gKnNwYV9tZXRhX3ZpZGVvX2Nyb3A7Ci0K LSAgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5jaHVuay0+c2l6ZSA9IHNwYV9idWZmZXItPmRh dGFzWzBdLm1heHNpemU7Ci0rICAgICAgc3BhX2J1ZmZlci0+ZGF0YXNbMF0uY2h1bmstPnN0cmlk ZSA9IHByaXYtPnZpZGVvX3N0cmlkZTsKLQotICAgICAgIC8qIFVwZGF0ZSBWaWRlb0Nyb3AgaWYg bmVlZGVkICovCi0gICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcCA9Ci0tICAgICAgICBzcGFfYnVm ZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZlciwgcHJpdi0+cGlwZXdpcmVfdHlwZS0+bWV0YS5WaWRl b0Nyb3ApOwotKyAgICAgICAgc3BhX2J1ZmZlcl9maW5kX21ldGFfZGF0YSAoc3BhX2J1ZmZlciwg U1BBX01FVEFfVmlkZW9Dcm9wLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mICgqc3BhX21ldGFfdmlkZW9fY3JvcCkpOwotICAgICAgIGlmIChzcGFfbWV0YV92aWRl b19jcm9wKQotICAgICAgICAgewotICAgICAgICAgICBpZiAobWV0YV9zY3JlZW5fY2FzdF9zdHJl YW1fc3JjX2dldF92aWRlb2Nyb3AgKHNyYywgJmNyb3BfcmVjdCkpCi0gICAgICAgICAgICAgewot LSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eCA9IGNyb3BfcmVjdC54OwotLSAg ICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eSA9IGNyb3BfcmVjdC55OwotLSAgICAg ICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+d2lkdGggPSBjcm9wX3JlY3Qud2lkdGg7Ci0t ICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5oZWlnaHQgPSBjcm9wX3JlY3QuaGVp Z2h0OwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnBvc2l0aW9u LnggPSBjcm9wX3JlY3QueDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJl Z2lvbi5wb3NpdGlvbi55ID0gY3JvcF9yZWN0Lnk7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92 aWRlb19jcm9wLT5yZWdpb24uc2l6ZS53aWR0aCA9IGNyb3BfcmVjdC53aWR0aDsKLSsgICAgICAg ICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdodCA9IGNyb3BfcmVj dC5oZWlnaHQ7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg ewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eCA9IDA7Ci0tICAgICAgICAg ICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT55ID0gMDsKLS0gICAgICAgICAgICAgIHNwYV9tZXRh X3ZpZGVvX2Nyb3AtPndpZHRoID0gcHJpdi0+c3RyZWFtX3dpZHRoOwotLSAgICAgICAgICAgICAg c3BhX21ldGFfdmlkZW9fY3JvcC0+aGVpZ2h0ID0gcHJpdi0+c3RyZWFtX2hlaWdodDsKLSsgICAg ICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi54ID0gMDsKLSsg ICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi55ID0gMDsK LSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLndpZHRoID0g cHJpdi0+c3RyZWFtX3dpZHRoOwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+ cmVnaW9uLnNpemUuaGVpZ2h0ID0gcHJpdi0+c3RyZWFtX2hlaWdodDsKLSAgICAgICAgICAgICB9 Ci0gICAgICAgICB9Ci0gICAgIH0KLUBAIC01NTUsNyArNTM5LDYgQEAgb25fc3RyZWFtX3N0YXRl X2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgTWV0YVNjcmVlbkNhc3RT dHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUg KnByaXYgPQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3By aXZhdGUgKHNyYyk7Ci0tICB1aW50MzJfdCBub2RlX2lkOwotCi0gICBzd2l0Y2ggKHN0YXRlKQot ICAgICB7Ci1AQCAtNTYzLDE0ICs1NDYsMTIgQEAgb25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZv aWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICAgIGdfd2FybmluZyAoInBpcGV3aXJlIHN0 cmVhbSBlcnJvcjogJXMiLCBlcnJvcl9tZXNzYWdlKTsKLSAgICAgICBtZXRhX3NjcmVlbl9jYXN0 X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLSAgICAgICBicmVhazsKLS0gICAgY2Fz ZSBQV19TVFJFQU1fU1RBVEVfQ09ORklHVVJFOgotLSAgICAgIG5vZGVfaWQgPSBwd19zdHJlYW1f Z2V0X25vZGVfaWQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSk7Ci0tICAgICAgZ19zaWduYWxfZW1p dCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVkIGludCkgbm9kZV9pZCk7Ci0tICAg ICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX1VOQ09OTkVDVEVEOgotLSAgICBj YXNlIFBXX1NUUkVBTV9TVEFURV9DT05ORUNUSU5HOgotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFU RV9SRUFEWToKLSAgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfUEFVU0VEOgotKyAgICAgIGlmIChw cml2LT5ub2RlX2lkID09IFNQQV9JRF9JTlZBTElEICYmIHByaXYtPnBpcGV3aXJlX3N0cmVhbSkK LSsgICAgICAgIHsKLSsgICAgICAgICAgcHJpdi0+bm9kZV9pZCA9IHB3X3N0cmVhbV9nZXRfbm9k ZV9pZCAocHJpdi0+cGlwZXdpcmVfc3RyZWFtKTsKLSsgICAgICAgICAgZ19zaWduYWxfZW1pdCAo c3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVkIGludCkgcHJpdi0+bm9kZV9pZCk7Ci0r ICAgICAgICB9Ci0gICAgICAgaWYgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19pc19lbmFi bGVkIChzcmMpKQotICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2Rpc2FibGUg KHNyYyk7Ci0gICAgICAgYnJlYWs7Ci1AQCAtNTc4LDY4ICs1NTksNjkgQEAgb25fc3RyZWFtX3N0 YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICAgIGlmICghbWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2lzX2VuYWJsZWQgKHNyYykpCi0gICAgICAgICBtZXRh X3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZW5hYmxlIChzcmMpOwotICAgICAgIGJyZWFrOwotKyAg ICBjYXNlIFBXX1NUUkVBTV9TVEFURV9VTkNPTk5FQ1RFRDoKLSsgICAgY2FzZSBQV19TVFJFQU1f U1RBVEVfQ09OTkVDVElORzoKLSsgICAgICBicmVhazsKLSAgICAgfQotIH0KLQotIHN0YXRpYyB2 b2lkCi0tb25fc3RyZWFtX2Zvcm1hdF9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0 YSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzcGFfcG9kICpmb3Jt YXQpCi0rb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRh LAotKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAgICAgICAgaWQsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzcGFfcG9kICpmb3JtYXQpCi0g ewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0gICBNZXRhU2NyZWVu Q2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVh bV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBzdHJ1Y3QgcHdfdHlwZSAqcGlw ZXdpcmVfdHlwZSA9IHByaXYtPnBpcGV3aXJlX3R5cGU7Ci0gICB1aW50OF90IHBhcmFtc19idWZm ZXJbMTAyNF07Ci0gICBpbnQzMl90IHdpZHRoLCBoZWlnaHQsIHN0cmlkZSwgc2l6ZTsKLSAgIHN0 cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXI7Ci0gICBjb25zdCBzdHJ1Y3Qgc3BhX3Bv ZCAqcGFyYW1zWzNdOwotICAgY29uc3QgaW50IGJwcCA9IDQ7Ci0KLS0gIGlmICghZm9ybWF0KQot LSAgICB7Ci0tICAgICAgcHdfc3RyZWFtX2ZpbmlzaF9mb3JtYXQgKHByaXYtPnBpcGV3aXJlX3N0 cmVhbSwgMCwgTlVMTCwgMCk7Ci0tICAgICAgcmV0dXJuOwotLSAgICB9Ci0rICBpZiAoIWZvcm1h dCB8fCBpZCAhPSBTUEFfUEFSQU1fRm9ybWF0KQotKyAgICByZXR1cm47Ci0KLSAgIHNwYV9mb3Jt YXRfdmlkZW9fcmF3X3BhcnNlIChmb3JtYXQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJnByaXYtPnZpZGVvX2Zvcm1hdCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm cHJpdi0+c3BhX3R5cGUuZm9ybWF0X3ZpZGVvKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmcHJpdi0+dmlkZW9fZm9ybWF0KTsKLQotICAgd2lkdGggPSBwcml2LT52aWRlb19mb3Jt YXQuc2l6ZS53aWR0aDsKLSAgIGhlaWdodCA9IHByaXYtPnZpZGVvX2Zvcm1hdC5zaXplLmhlaWdo dDsKLSAgIHN0cmlkZSA9IFNQQV9ST1VORF9VUF9OICh3aWR0aCAqIGJwcCwgNCk7Ci0gICBzaXpl ID0gaGVpZ2h0ICogc3RyaWRlOwotCi0rICBwcml2LT52aWRlb19zdHJpZGUgPSBzdHJpZGU7Ci0r Ci0gICBwb2RfYnVpbGRlciA9IFNQQV9QT0RfQlVJTERFUl9JTklUIChwYXJhbXNfYnVmZmVyLCBz aXplb2YgKHBhcmFtc19idWZmZXIpKTsKLQotLSAgcGFyYW1zWzBdID0gc3BhX3BvZF9idWlsZGVy X29iamVjdCAoCi0rICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCAoCi0g ICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRCdWZmZXJzLCBw aXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLkJ1ZmZlcnMsCi0tICAgICI6IiwgcGlwZXdpcmVf dHlwZS0+cGFyYW1fYnVmZmVycy5zaXplLCAiaSIsIHNpemUsCi0tICAgICI6IiwgcGlwZXdpcmVf dHlwZS0+cGFyYW1fYnVmZmVycy5zdHJpZGUsICJpIiwgc3RyaWRlLAotLSAgICAiOiIsIHBpcGV3 aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuYnVmZmVycywgImlydSIsIDE2LCBQUk9QX1JBTkdFICgy LCAxNiksCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5hbGlnbiwgImki LCAxNik7Ci0tCi0tICBwYXJhbXNbMV0gPSBzcGFfcG9kX2J1aWxkZXJfb2JqZWN0ICgKLSsgICAg U1BBX1RZUEVfT0JKRUNUX1BhcmFtQnVmZmVycywgU1BBX1BBUkFNX0J1ZmZlcnMsCi0rICAgIFNQ QV9QQVJBTV9CVUZGRVJTX2J1ZmZlcnMsIFNQQV9QT0RfQ0hPSUNFX1JBTkdFX0ludCAoMTYsIDIs IDE2KSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYmxvY2tzLCBTUEFfUE9EX0ludCAoMSksCi0r ICAgIFNQQV9QQVJBTV9CVUZGRVJTX3NpemUsIFNQQV9QT0RfSW50IChzaXplKSwKLSsgICAgU1BB X1BBUkFNX0JVRkZFUlNfc3RyaWRlLCBTUEFfUE9EX0ludCAoc3RyaWRlKSwKLSsgICAgU1BBX1BB UkFNX0JVRkZFUlNfYWxpZ24sIFNQQV9QT0RfSW50ICgxNikpOwotKwotKyAgcGFyYW1zWzFdID0g c3BhX3BvZF9idWlsZGVyX2FkZF9vYmplY3QgKAotICAgICAmcG9kX2J1aWxkZXIsCi0tICAgIHBp cGV3aXJlX3R5cGUtPnBhcmFtLmlkTWV0YSwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS5NZXRh LAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEudHlwZSwgIkkiLCBwaXBld2ly ZV90eXBlLT5tZXRhLlZpZGVvQ3JvcCwKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9t ZXRhLnNpemUsICJpIiwgc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfdmlkZW9fY3JvcCkpOwotKyAg ICBTUEFfVFlQRV9PQkpFQ1RfUGFyYW1NZXRhLCBTUEFfUEFSQU1fTWV0YSwKLSsgICAgU1BBX1BB UkFNX01FVEFfdHlwZSwgU1BBX1BPRF9JZCAoU1BBX01FVEFfVmlkZW9Dcm9wKSwKLSsgICAgU1BB X1BBUkFNX01FVEFfc2l6ZSwgU1BBX1BPRF9JbnQgKHNpemVvZiAoc3RydWN0IHNwYV9tZXRhX3Jl Z2lvbikpKTsKLQotLSAgcGFyYW1zWzJdID0gc3BhX3BvZF9idWlsZGVyX29iamVjdCAoCi0rICBw YXJhbXNbMl0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCAoCi0gICAgICZwb2RfYnVpbGRl ciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRNZXRhLCBwaXBld2lyZV90eXBlLT5wYXJh bV9tZXRhLk1ldGEsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS50eXBlLCAi SSIsIHByaXYtPnNwYV90eXBlLm1ldGFfY3Vyc29yLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUt PnBhcmFtX21ldGEuc2l6ZSwgImkiLCBDVVJTT1JfTUVUQV9TSVpFICg2NCwgNjQpKTsKLSsgICAg U1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BBUkFNX01ldGEsCi0rICAgIFNQQV9QQVJB TV9NRVRBX3R5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRVRBX0N1cnNvciksCi0rICAgIFNQQV9QQVJB TV9NRVRBX3NpemUsIFNQQV9QT0RfSW50IChDVVJTT1JfTUVUQV9TSVpFICg2NCwgNjQpKSk7Ci0K LS0gIHB3X3N0cmVhbV9maW5pc2hfZm9ybWF0IChwcml2LT5waXBld2lyZV9zdHJlYW0sIDAsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykp OwotKyAgcHdfc3RyZWFtX3VwZGF0ZV9wYXJhbXMgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSwgcGFy YW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotIH0KLQotIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg cHdfc3RyZWFtX2V2ZW50cyBzdHJlYW1fZXZlbnRzID0gewotICAgUFdfVkVSU0lPTl9TVFJFQU1f RVZFTlRTLAotICAgLnN0YXRlX2NoYW5nZWQgPSBvbl9zdHJlYW1fc3RhdGVfY2hhbmdlZCwKLS0g IC5mb3JtYXRfY2hhbmdlZCA9IG9uX3N0cmVhbV9mb3JtYXRfY2hhbmdlZCwKLSsgIC5wYXJhbV9j aGFuZ2VkID0gb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQsCi0gfTsKLQotIHN0YXRpYyBzdHJ1Y3Qg cHdfc3RyZWFtICoKLUBAIC02NTIsOCArNjM0LDYgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAo TWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gICB1aW50OF90IGJ1ZmZlclsxMDI0XTsK LSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXIgPQotICAgICBTUEFfUE9EX0JV SUxERVJfSU5JVCAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZlcikpOwotLSAgTWV0YVNwYVR5cGUgKnNw YV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotLSAgc3RydWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5 cGUgPSBwcml2LT5waXBld2lyZV90eXBlOwotICAgZmxvYXQgZnJhbWVfcmF0ZTsKLSAgIE1ldGFG cmFjdGlvbiBmcmFtZV9yYXRlX2ZyYWN0aW9uOwotICAgc3RydWN0IHNwYV9mcmFjdGlvbiBtYXhf ZnJhbWVyYXRlOwotQEAgLTY2MSw3ICs2NDEsOSBAQCBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChN ZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAgKnNyYywKLSAgIGNvbnN0IHN0cnVjdCBzcGFfcG9kICpw YXJhbXNbMV07Ci0gICBpbnQgcmVzdWx0OwotCi0tICBwaXBld2lyZV9zdHJlYW0gPSBwd19zdHJl YW1fbmV3IChwcml2LT5waXBld2lyZV9yZW1vdGUsCi0rICBwcml2LT5ub2RlX2lkID0gU1BBX0lE X0lOVkFMSUQ7Ci0rCi0rICBwaXBld2lyZV9zdHJlYW0gPSBwd19zdHJlYW1fbmV3IChwcml2LT5w aXBld2lyZV9jb3JlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1ldGEt c2NyZWVuLWNhc3Qtc3JjIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwpOwotICAgaWYgKCFwaXBld2lyZV9zdHJlYW0pCi1AQCAtNjgyLDE3ICs2NjQsMTcgQEAgY3Jl YXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gICBt YXhfZnJhbWVyYXRlID0gU1BBX0ZSQUNUSU9OIChmcmFtZV9yYXRlX2ZyYWN0aW9uLm51bSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3JhdGVfZnJhY3Rpb24uZGVub20p OwotCi0tICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfb2JqZWN0ICgKLSsgIHBhcmFtc1sw XSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgKLSAgICAgJnBvZF9idWlsZGVyLAotLSAg ICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZEVudW1Gb3JtYXQsIHBpcGV3aXJlX3R5cGUtPnNwYV9m b3JtYXQsCi0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlhX3R5cGUudmlkZW8sCi0tICAgICJJIiwg c3BhX3R5cGUtPm1lZGlhX3N1YnR5cGUucmF3LAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRf dmlkZW8uZm9ybWF0LCAiSSIsIHNwYV90eXBlLT52aWRlb19mb3JtYXQuQkdSeCwKLS0gICAgIjoi LCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLnNpemUsICJSIiwgJlNQQV9SRUNUQU5HTEUgKHByaXYt PnN0cmVhbV93aWR0aCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHByaXYtPnN0cmVhbV9oZWlnaHQpLAotLSAgICAiOiIsIHNwYV90 eXBlLT5mb3JtYXRfdmlkZW8uZnJhbWVyYXRlLCAiRiIsICZTUEFfRlJBQ1RJT04gKDAsIDEpLAot LSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8ubWF4X2ZyYW1lcmF0ZSwgIkZydSIsICZt YXhfZnJhbWVyYXRlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBST1BfUkFOR0UgKCZtaW5fZnJhbWVyYXRlLAotKyAgICBTUEFfVFlQRV9P QkpFQ1RfRm9ybWF0LCBTUEFfUEFSQU1fRW51bUZvcm1hdCwKLSsgICAgU1BBX0ZPUk1BVF9tZWRp YVR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9UWVBFX3ZpZGVvKSwKLSsgICAgU1BBX0ZPUk1B VF9tZWRpYVN1YnR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9TVUJUWVBFX3JhdyksCi0rICAg IFNQQV9GT1JNQVRfVklERU9fZm9ybWF0LCBTUEFfUE9EX0lkIChTUEFfVklERU9fRk9STUFUX0JH UngpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX3NpemUsIFNQQV9QT0RfUmVjdGFuZ2xlICgmU1BB X1JFQ1RBTkdMRSAocHJpdi0+c3RyZWFtX3dpZHRoLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+c3RyZWFtX2hlaWdo dCkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX2ZyYW1lcmF0ZSwgU1BBX1BPRF9GcmFjdGlvbiAo JlNQQV9GUkFDVElPTiAoMCwgMSkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX21heEZyYW1lcmF0 ZSwgU1BBX1BPRF9DSE9JQ0VfUkFOR0VfRnJhY3Rpb24gKCZtYXhfZnJhbWVyYXRlLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZtaW5fZnJhbWVyYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYXhfZnJhbWVyYXRlKSk7Ci0KLSAgIHB3 X3N0cmVhbV9hZGRfbGlzdGVuZXIgKHBpcGV3aXJlX3N0cmVhbSwKLUBAIC03MDIsNyArNjg0LDcg QEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMs Ci0KLSAgIHJlc3VsdCA9IHB3X3N0cmVhbV9jb25uZWN0IChwaXBld2lyZV9zdHJlYW0sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFdfRElSRUNUSU9OX09VVFBVVCwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNQQV9JRF9JTlZBTElELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQV19T VFJFQU1fRkxBR19EUklWRVIgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQV19T VFJFQU1fRkxBR19NQVBfQlVGRkVSUyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotQEAgLTcxNyw0MCArNjk5LDE4IEBAIGNy ZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICAqc3JjLAotIH0K LQotIHN0YXRpYyB2b2lkCi0tb25fc3RhdGVfY2hhbmdlZCAodm9pZCAgICAgICAgICAgICAgICAg KmRhdGEsCi0tICAgICAgICAgICAgICAgICAgZW51bSBwd19yZW1vdGVfc3RhdGUgIG9sZCwKLS0g ICAgICAgICAgICAgICAgICBlbnVtIHB3X3JlbW90ZV9zdGF0ZSAgc3RhdGUsCi0tICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgKmVycm9yX21lc3NhZ2UpCi0rb25fY29yZV9l cnJvciAodm9pZCAgICAgICAqZGF0YSwKLSsgICAgICAgICAgICAgICB1aW50MzJfdCAgICBpZCwK LSsJICAgICAgIGludCAgICAgICAgIHNlcSwKLSsJICAgICAgIGludCAgICAgICAgIHJlcywKLSsJ ICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1T cmMgKnNyYyA9IGRhdGE7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYg PQotLSAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUg KHNyYyk7Ci0tICBzdHJ1Y3QgcHdfc3RyZWFtICpwaXBld2lyZV9zdHJlYW07Ci0tICBHRXJyb3Ig KmVycm9yID0gTlVMTDsKLQotLSAgc3dpdGNoIChzdGF0ZSkKLS0gICAgewotLSAgICBjYXNlIFBX X1JFTU9URV9TVEFURV9FUlJPUjoKLS0gICAgICBnX3dhcm5pbmcgKCJwaXBld2lyZSByZW1vdGUg ZXJyb3I6ICVzXG4iLCBlcnJvcl9tZXNzYWdlKTsKLS0gICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0 cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBQ V19SRU1PVEVfU1RBVEVfQ09OTkVDVEVEOgotLSAgICAgIHBpcGV3aXJlX3N0cmVhbSA9IGNyZWF0 ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgJmVycm9yKTsKLS0gICAgICBpZiAoIXBpcGV3aXJlX3N0 cmVhbSkKLS0gICAgICAgIHsKLS0gICAgICAgICAgZ193YXJuaW5nICgiQ291bGQgbm90IGNyZWF0 ZSBwaXBld2lyZSBzdHJlYW06ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwotLSAgICAgICAgICBnX2Vy cm9yX2ZyZWUgKGVycm9yKTsKLS0gICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3Jj X25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0tICAgICAgICB9Ci0tICAgICAgZWxzZQotLSAgICAgICAg ewotLSAgICAgICAgICBwcml2LT5waXBld2lyZV9zdHJlYW0gPSBwaXBld2lyZV9zdHJlYW07Ci0t ICAgICAgICB9Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfUkVNT1RFX1NUQVRFX1VOQ09O TkVDVEVEOgotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9DT05ORUNUSU5HOgotLSAgICAgIGJy ZWFrOwotLSAgICB9Ci0rICBnX3dhcm5pbmcgKCJwaXBld2lyZSByZW1vdGUgZXJyb3I6IGlkOiV1 ICVzIiwgaWQsIG1lc3NhZ2UpOwotKwotKyAgaWYgKGlkID09IFBXX0lEX0NPUkUgJiYgcmVzID09 IC1FUElQRSkKLSsgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQg KHNyYyk7Ci0gfQotCi0gc3RhdGljIGdib29sZWFuCi1AQCAtNzkzLDE3ICs3NTMsNiBAQCBzdGF0 aWMgR1NvdXJjZUZ1bmNzIHBpcGV3aXJlX3NvdXJjZV9mdW5jcyA9Ci0gICBwaXBld2lyZV9sb29w X3NvdXJjZV9maW5hbGl6ZQotIH07Ci0KLS1zdGF0aWMgdm9pZAotLWluaXRfc3BhX3R5cGUgKE1l dGFTcGFUeXBlICAgICAgICAgKnR5cGUsCi0tICAgICAgICAgICAgICAgc3RydWN0IHNwYV90eXBl X21hcCAqbWFwKQotLXsKLS0gIHNwYV90eXBlX21lZGlhX3R5cGVfbWFwIChtYXAsICZ0eXBlLT5t ZWRpYV90eXBlKTsKLS0gIHNwYV90eXBlX21lZGlhX3N1YnR5cGVfbWFwIChtYXAsICZ0eXBlLT5t ZWRpYV9zdWJ0eXBlKTsKLS0gIHNwYV90eXBlX2Zvcm1hdF92aWRlb19tYXAgKG1hcCwgJnR5cGUt PmZvcm1hdF92aWRlbyk7Ci0tICBzcGFfdHlwZV92aWRlb19mb3JtYXRfbWFwIChtYXAsICZ0eXBl LT52aWRlb19mb3JtYXQpOwotLSAgdHlwZS0+bWV0YV9jdXJzb3IgPSBzcGFfdHlwZV9tYXBfZ2V0 X2lkKG1hcCwgU1BBX1RZUEVfTUVUQV9fQ3Vyc29yKTsKLS19Ci0tCi0gc3RhdGljIE1ldGFQaXBl V2lyZVNvdXJjZSAqCi0gY3JlYXRlX3BpcGV3aXJlX3NvdXJjZSAodm9pZCkKLSB7Ci1AQCAtODI5 LDkgKzc3OCw5IEBAIGNyZWF0ZV9waXBld2lyZV9zb3VyY2UgKHZvaWQpCi0gICByZXR1cm4gcGlw ZXdpcmVfc291cmNlOwotIH0KLQotLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcHdfcmVtb3RlX2V2ZW50 cyByZW1vdGVfZXZlbnRzID0gewotLSAgUFdfVkVSU0lPTl9SRU1PVEVfRVZFTlRTLAotLSAgLnN0 YXRlX2NoYW5nZWQgPSBvbl9zdGF0ZV9jaGFuZ2VkLAotK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdf Y29yZV9ldmVudHMgY29yZV9ldmVudHMgPSB7Ci0rICBQV19WRVJTSU9OX0NPUkVfRVZFTlRTLAot KyAgLmVycm9yID0gb25fY29yZV9lcnJvciwKLSB9OwotCi0gc3RhdGljIGdib29sZWFuCi1AQCAt ODUxLDM3ICs4MDAsMzEgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2luaXRhYmxlX2lu aXQgKEdJbml0YWJsZSAgICAgKmluaXRhYmxlLAotICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAg fQotCi0tICBwcml2LT5waXBld2lyZV9jb3JlID0gcHdfY29yZV9uZXcgKHByaXYtPnBpcGV3aXJl X3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCk7Ci0tICBpZiAoIXByaXYtPnBpcGV3aXJlX2NvcmUpCi0rICBwcml2LT5waXBl d2lyZV9jb250ZXh0ID0gcHdfY29udGV4dF9uZXcgKHByaXYtPnBpcGV3aXJlX3NvdXJjZS0+cGlw ZXdpcmVfbG9vcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCwgMCk7Ci0rICBpZiAoIXByaXYtPnBpcGV3aXJlX2NvbnRleHQpCi0gICAgIHsKLSAgICAg ICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfRkFJTEVELAotLSAg ICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSBwaXBld2lyZSBjb3JlIik7Ci0rICAg ICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gY3JlYXRlIHBpcGV3aXJlIGNvbnRleHQiKTsKLSAg ICAgICByZXR1cm4gRkFMU0U7Ci0gICAgIH0KLQotLSAgcHJpdi0+cGlwZXdpcmVfcmVtb3RlID0g cHdfcmVtb3RlX25ldyAocHJpdi0+cGlwZXdpcmVfY29yZSwgTlVMTCwgMCk7Ci0tICBpZiAoIXBy aXYtPnBpcGV3aXJlX3JlbW90ZSkKLSsgIHByaXYtPnBpcGV3aXJlX2NvcmUgPSBwd19jb250ZXh0 X2Nvbm5lY3QgKHByaXYtPnBpcGV3aXJlX2NvbnRleHQsIE5VTEwsIDApOwotKyAgaWYgKCFwcml2 LT5waXBld2lyZV9jb3JlKQotICAgICB7Ci0gICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLCBHX0lP X0VSUk9SLCBHX0lPX0VSUk9SX0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAgICAgIkNvdWxkbid0 IGNyZWF0IHBpcGV3aXJlIHJlbW90ZSIpOwotKyAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3Qg Y29ubmVjdCBwaXBld2lyZSBjb250ZXh0Iik7Ci0gICAgICAgcmV0dXJuIEZBTFNFOwotICAgICB9 Ci0KLS0gIHB3X3JlbW90ZV9hZGRfbGlzdGVuZXIgKHByaXYtPnBpcGV3aXJlX3JlbW90ZSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT5waXBld2lyZV9yZW1vdGVfbGlzdGVuZXIs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVtb3RlX2V2ZW50cywKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgIHNyYyk7Ci0rICBwd19jb3JlX2FkZF9saXN0ZW5lciAocHJpdi0+cGlw ZXdpcmVfY29yZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+cGlwZXdpcmVfY29y ZV9saXN0ZW5lciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAmY29yZV9ldmVudHMsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgc3JjKTsKLQotLSAgcHJpdi0+cGlwZXdpcmVfdHlwZSA9IHB3 X2NvcmVfZ2V0X3R5cGUgKHByaXYtPnBpcGV3aXJlX2NvcmUpOwotLSAgaW5pdF9zcGFfdHlwZSAo JnByaXYtPnNwYV90eXBlLCBwcml2LT5waXBld2lyZV90eXBlLT5tYXApOwotLQotLSAgaWYgKHB3 X3JlbW90ZV9jb25uZWN0IChwcml2LT5waXBld2lyZV9yZW1vdGUpICE9IDApCi0tICAgIHsKLS0g ICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfRkFJTEVELAot LSAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgY29ubmVjdCBwaXBld2lyZSByZW1vdGUiKTsK LS0gICAgICByZXR1cm4gRkFMU0U7Ci0tICAgIH0KLSsgIHByaXYtPnBpcGV3aXJlX3N0cmVhbSA9 IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgZXJyb3IpOwotKyAgaWYgKCFwcml2LT5waXBl d2lyZV9zdHJlYW0pCi0rICAgIHJldHVybiBGQUxTRTsKLQotICAgcmV0dXJuIFRSVUU7Ci0gfQot QEAgLTkxMiw4ICs4NTUsOCBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZmluYWxpemUg KEdPYmplY3QgKm9iamVjdCkKLSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2Rpc2Fi bGUgKHNyYyk7Ci0KLSAgIGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX3N0cmVhbSwg cHdfc3RyZWFtX2Rlc3Ryb3kpOwotLSAgZ19jbGVhcl9wb2ludGVyICgmcHJpdi0+cGlwZXdpcmVf cmVtb3RlLCBwd19yZW1vdGVfZGVzdHJveSk7Ci0tICBnX2NsZWFyX3BvaW50ZXIgKCZwcml2LT5w aXBld2lyZV9jb3JlLCBwd19jb3JlX2Rlc3Ryb3kpOwotKyAgZ19jbGVhcl9wb2ludGVyICgmcHJp di0+cGlwZXdpcmVfY29yZSwgcHdfY29yZV9kaXNjb25uZWN0KTsKLSsgIGdfY2xlYXJfcG9pbnRl ciAoJnByaXYtPnBpcGV3aXJlX2NvbnRleHQsIHB3X2NvbnRleHRfZGVzdHJveSk7Ci0gICBnX3Nv dXJjZV9kZXN0cm95ICgmcHJpdi0+cGlwZXdpcmVfc291cmNlLT5iYXNlKTsKLQotICAgR19PQkpF Q1RfQ0xBU1MgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19wYXJlbnRfY2xhc3MpLT5maW5h bGl6ZSAob2JqZWN0KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlIGIvc3Jj cGtncy9tdXR0ZXIvdGVtcGxhdGUKaW5kZXggODA2YTNiZWY5ZjAuLjM3ZWM5NjNhYTVlIDEwMDY0 NAotLS0gYS9zcmNwa2dzL211dHRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL211dHRlci90ZW1w bGF0ZQpAQCAtMSwzNCArMSw0MCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbXV0dGVyJwogcGtn bmFtZT1tdXR0ZXIKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzcuOTEK K3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZp Z3VyZV9hcmdzPSItRGVnbF9kZXZpY2U9dHJ1ZSAtRHVkZXY9dHJ1ZSAtRG5hdGl2ZV9iYWNrZW5k PXRydWUKLSAtRHByb2ZpbGVyPWZhbHNlIC1EaW50cm9zcGVjdGlvbj10cnVlIC1EeHdheWxhbmRf cGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZCIKKyAtRHByb2ZpbGVyPWZhbHNlIC1EaW50cm9zcGVjdGlv bj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZAorIC1EeHdheWxhbmRfaW5p dGZkPWRpc2FibGVkIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgcGtnLWNv bmZpZyB6ZW5pdHkgd2F5bGFuZC1kZXZlbCB4b3JnLXNlcnZlciIKLW1ha2VkZXBlbmRzPSJlbG9n aW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBqc29uLWdsaWItZGV2ZWwK LSBsaWJnbGliLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2 ZWwgbGliaW5wdXQtZGV2ZWwKLSBNZXNhTGliLWRldmVsIHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAt bm90aWZpY2F0aW9uLWRldmVsIHdheWxhbmQtcHJvdG9jb2xzCi0gZ25vbWUtc2V0dGluZ3MtZGFl bW9uLWRldmVsIgotZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIHplbml0eSIKK21ha2VkZXBl bmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBncmFwaGVu ZS1kZXZlbAorIGpzb24tZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0 c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwKKyBsaWJpbnB1dC1kZXZlbCBNZXNhTGliLWRldmVs IHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsCisgd2F5bGFuZC1wcm90 b2NvbHMgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIgorZGVwZW5kcz0iZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcyBkZXNrdG9wLWZpbGUtdXRpbHMgemVuaXR5Igogc2hvcnRfZGVzYz0iTGln aHR3ZWlnaHQgR1RLKzMgd2luZG93IG1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL011dHRlci8iCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1iYTE4MjZjZjg4YmRiODFlNjM5NDNjYWMwMTRhOGU4YmNm MzVlYzE3OGM1MzI2NDQwMWY5YzcyZmRlYWI3NThlCi1zaGxpYl9wcm92aWRlcz0ibGlibXV0dGVy LWNsdXR0ZXItNS5zbyBsaWJtdXR0ZXItY29nbC01LnNvCi0gbGlibXV0dGVyLWNvZ2wtcGFuZ28t NS5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTUuc28iCitjaGVja3N1bT04YjA4N2IyMmViZDBiZDk5 OTVlNjBlYTRmZDVlZjRlZTFhNjU0MmU1NzgzOWRjNDIzMzNlNGQxOWQ0MzNhNTVkCitzaGxpYl9w cm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNy5zbyBsaWJtdXR0ZXItY29nbC03LnNvCisgbGli bXV0dGVyLWNvZ2wtcGFuZ28tNy5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTcuc28iCisKKyMgbmVl ZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQogCiBtdXR0ZXItZGV2ZWxfcGFja2FnZSgpIHsKLQlk ZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGd0ayszLWRldmVsIGNsdXR0ZXItZGV2 ZWwgbGliWDExLWRldmVsCi0JIGxpYlh0c3QtZGV2ZWwgbXV0dGVyLSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCisJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3JhcGhlbmUtZGV2ZWwgY2x1dHRlci1kZXZl bAorCSBsaWJYMTEtZGV2ZWwgbGliWHRzdC1kZXZlbCBtdXR0ZXItJHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2luc3RhbGwo KSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCi0JCXZt b3ZlICJ1c3IvbGliL211dHRlci01LyouZ2lyIgorCQl2bW92ZSAidXNyL2xpYi9tdXR0ZXItNy8q LmdpciIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAl9CiB9CgpGcm9tIDAzNTJhZGQwNzk2Mjdl NTFkOGI2MjYzNmMxOWEzZGRlNDk4ZjhlNTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAy MDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMS84M10gZ25vbWUtbWVudXM6IHVw ZGF0ZSB0byAzLjM2LjAKCi0tLQogc3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZSB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLW1l bnVzL3RlbXBsYXRlCmluZGV4IDI5MTAyMTI5YzM4Li5lNzg3ZmI4ZGU2YiAxMDA2NDQKLS0tIGEv c3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLW1lbnVzL3Rl bXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbWVudXMn CiBwa2duYW1lPWdub21lLW1lbnVzCi12ZXJzaW9uPTMuMzIuMAotcmV2aXNpb249MgordmVyc2lv bj0zLjM2LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hl bHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMiCkBAIC0xMiw3ICsx Miw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtbWVudXMiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT1jODUwYzY0YjIwNzQyNjVmZTU5ZTA5OWEzNDBiODY4OWNmM2Rk NDY1OGRjOWZlZGRkMmFiNWU5NWYxYTc0Yjc0CitjaGVja3N1bT1kOTM0OGYzOGJkZTk1NmZjMzI3 NTNiMjhjMWNkZTE5YzE3NWJmZGJmMWY0ZDViMDYwMDNiM2FhMDkxNTNiYjFmCiAKIGJ1aWxkX29w dGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSAzYTE3M2Y2OWFm ZDFiNTg0YzBhZGIzMDcwMjI4ZjM2NzI3ZjljZDUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIvODNdIGNoZWVzZTogYnVt cAoKLS0tCiBzcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hlZXNl L3RlbXBsYXRlIGIvc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUKaW5kZXggN2E1NmJhMDM5ZmIuLjAz N2NkYTQ5Yzk4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2NoZWVzZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2NoZWVzZScKIHBrZ25hbWU9Y2hlZXNlCiB2ZXJzaW9uPTMuMzQuMAotcmV2aXNpb249MQorcmV2 aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJl X2FyZ3M9Ii1EZ3RrX2RvYz0kKHZvcHRfaWYgZ3RrX2RvYyAndHJ1ZScgJ2ZhbHNlJykKCkZyb20g OGFlZjJiNWRkOWY4N2Q4ZmZmYjQ5NDcxYzcxMzVlZGU5ZmZiM2NmNiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEzLzgzXSBl dm9sdXRpb24tZGF0YS1zZXJ2ZXI6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIGNvbW1vbi9zaGxp YnMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvZXZvbHV0aW9uLWRh dGEtc2VydmVyL3RlbXBsYXRlIHwgMjUgKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBlMTYyZjZhNzUzOS4uY2MyYjY3 NjA2MjIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAt NjI4LDcgKzYyOCw3IEBAIGxpYmljYWxzc19jeHguc28uMyBsaWJpY2FsLTMuMC40XzEKIGxpYmlj YWx2Y2FsLnNvLjMgbGliaWNhbC0zLjAuNF8xCiBsaWJpY2FsLWdsaWIuc28uMyBsaWJpY2FsLTMu MC40XzEKIGxpYmNhbWVsLTEuMi5zby42MiBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zMC4wXzEK LWxpYmVkYXRhc2VydmVyLTEuMi5zby4yNCBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zMi4wXzEK K2xpYmVkYXRhc2VydmVyLTEuMi5zby4yNSBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zNy45MF8x CiBsaWJlYmFja2VuZC0xLjIuc28uMTAgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMTcuOTBfMQog bGliZWRhdGFzZXJ2ZXJ1aS0xLjIuc28uMiBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yOC4wXzEK IGxpYmVib29rLWNvbnRhY3RzLTEuMi5zby4zIGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjM0LjBf MQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUgYi9z cmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZQppbmRleCA0YWU4MjBiZTA2OC4u NTIwNjlhZDk5M2IgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlCkBAIC0x LDI5ICsxLDM0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24tZGF0YS1zZXJ2ZXIn CiBwa2duYW1lPWV2b2x1dGlvbi1kYXRhLXNlcnZlcgotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9u PTIKK3ZlcnNpb249My4zNy45MAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKLWJ1aWxk X2hlbHBlcj1naXIKK2J1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCiBjb25maWd1cmVfYXJncz0iLURF TkFCTEVfVU9BPU9GRgotICQodm9wdF9pZiBnaXIgJy1ERU5BQkxFX0lOVFJPU1BFQ1RJT049T04g LURFTkFCTEVfVkFMQV9CSU5ESU5HUz1PTicgJy1ERU5BQkxFX1dFQVRIRVI9T0ZGJykiCi1ob3N0 bWFrZWRlcGVuZHM9ImZsZXggZ2xpYi1kZXZlbCBncGVyZiBpbnRsdG9vbCBwa2ctY29uZmlnIGxp YmdsaWItZGV2ZWwKLSAkKHZvcHRfaWYgZ2lyICdnb2JqZWN0LWludHJvc3BlY3Rpb24nKSIKLW1h a2VkZXBlbmRzPSJib29zdC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJnZGF0YS1kZXZlbCAk KHZvcHRfaWYgZ2lyIGxpYmd3ZWF0aGVyLWRldmVsKQotIGxpYmljYWwtZGV2ZWwgbGlic2VjcmV0 LWRldmVsIG1pdC1rcmI1LWRldmVsICQodm9wdF9pZiBnaXIgJ3ZhbGEtZGV2ZWwnKSB3ZWJraXQy Z3RrLWRldmVsIgotZGVwZW5kcz0iJCh2b3B0X2lmIGdpciBsaWJnd2VhdGhlcikgbGlic291cC1n bm9tZSIKKyAkKHZvcHRfaWYgZ2lyICctREVOQUJMRV9JTlRST1NQRUNUSU9OPU9OIC1ERU5BQkxF X1ZBTEFfQklORElOR1M9T04nKSIKK2hvc3RtYWtlZGVwZW5kcz0iZmxleCBnbGliLWRldmVsIGdw ZXJmIGludGx0b29sIHBrZy1jb25maWcgbGliZ2xpYi1kZXZlbCIKK21ha2VkZXBlbmRzPSJib29z dC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJnZGF0YS1kZXZlbCBsaWJpY2FsLWRldmVsCisg bGlic2VjcmV0LWRldmVsIG1pdC1rcmI1LWRldmVsIHdlYmtpdDJndGstZGV2ZWwgbGliZ3dlYXRo ZXItZGV2ZWwKKyAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgorZGVwZW5kcz0ibGliZ3dlYXRo ZXIgbGlic291cC1nbm9tZSIKIHNob3J0X2Rlc2M9IkNlbnRyYWxpemVkIGFjY2VzcyB0byBhcHBv aW50bWVudHMgYW5kIGNvbnRhY3RzIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6 Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2b2x1dGlvbiIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcu Z2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2V2b2x1dGlvbi1kYXRhLXNlcnZlci9nbm9tZS0z LTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xMzEyMmIyZWRkZGI5 ODMwNjIwN2QyYTM1ZDVjY2FlMjVhOTA3MDI3NjljYTBhMGI1MTY1M2I1OTg0OTg2Nzk2CitjaGVj a3N1bT02Y2Q3MWVkZjQyZTY5OWFiOGU4YmQ0OTA4YWViMTMxMjEwYjU5NGNlOTYxYmRlNjhmZDI3 MzMzYjJhZWQ0NDMwCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGlmIFsgLXogIiRDUk9TU19CVUlM RCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogZmkKIAorIyBwcm9ibGVt YXRpYworZG9fY2hlY2soKSB7CisJOgorfQorCiAjIGNtYWtlIHBlcmZvbXJtcyAyIGNoZWNrcyB1 c2luZyBiaW5hcnkgcnVudGltZSwgYWJvdXQgaWNvbnYgYW5kIHNmcnRpbWUuCiAjIG11c2wgKDEu MS4xNikgZG9lcyBub3Qgc3VwcG9ydCAiSVNPLTIwMjItSlAiIGVuY29kaW5nIChzZWUgaXRzIHJv YWRtYXApLAogIyBhbHRob3VnaCBldm9sdXRpb24tZGF0YS1zZXJ2ZXIgaXMgZmluZSB3aXRoIG11 c2wuCgpGcm9tIGNmNGM5YzhhZWI3OGI5MzFhM2Y1ZjZiNzdjYTE3Y2NiZDg0NWMyYWYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxNC84M10gZ25vbWUtY29udHJvbC1jZW50ZXI6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNy Y3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvdGVtcGxhdGUgfCAyMiArKysrKysrKysrKysrLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZQppbmRleCBiZTU4NTJmM2IyMS4uMWUx NmU3YWJiNmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZQpAQCAtMSwyMiAr MSwyMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtY29udHJvbC1jZW50ZXInCiBwa2du YW1lPWdub21lLWNvbnRyb2wtY2VudGVyCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3Ljkw CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25m aWd1cmVfYXJncz0iLURjaGVlc2U9JCh2b3B0X2lmIGNoZWVzZSB0cnVlIGZhbHNlKSIKLWhvc3Rt YWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGlu dGx0b29sIHBrZy1jb25maWcgcG9sa2l0Ci0gcHl0aG9uMyIKK2hvc3RtYWtlZGVwZW5kcz0iZ2xp Yi1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGludGx0b29sIHBrZy1jb25m aWcKKyBwb2xraXQgcHl0aG9uMyIKIG1ha2VkZXBlbmRzPSJNb2RlbU1hbmFnZXItZGV2ZWwgYWNj b3VudHNzZXJ2aWNlLWRldmVsIGFsc2EtcGx1Z2lucwogIGNvbG9yZC1ndGstZGV2ZWwgZ25vbWUt Ymx1ZXRvb3RoLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgZ25vbWUtbWVudXMtZGV2ZWwKICBn bm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2ZWwgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIGdy aWxvLWRldmVsIGlidXMtZGV2ZWwKLSBsaWJTTS1kZXZlbCBsaWJYeGY4Nm1pc2MtZGV2ZWwgbGli Z25vbWVrYmQtZGV2ZWwgbGliZ3RvcC1kZXZlbAorIGxpYlNNLWRldmVsIGxpYlh4Zjg2bWlzYy1k ZXZlbCBsaWJnbm9tZWtiZC1kZXZlbCBsaWJndG9wLWRldmVsIGxpYmhhbmR5MS1kZXZlbAogIGxp YnB3cXVhbGl0eS1kZXZlbCBtaXQta3JiNS1kZXZlbCBuZXR3b3JrLW1hbmFnZXItYXBwbGV0LWRl dmVsIHBvbGtpdC1kZXZlbAogIHB1bHNlYXVkaW8tZGV2ZWwgc2FtYmEtZGV2ZWwgdHpkYXRhIHVw b3dlci1kZXZlbCB2YWxhLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsCiAgbGlieG1sMi1kZXZlbCBs aWJYMTEtZGV2ZWwgZ3RrKzMtZGV2ZWwgY3Vwcy1kZXZlbCBsaWJndWRldi1kZXZlbCBsaWJ3YWNv bS1kZXZlbAogIGNsdXR0ZXItZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYmNhbmJlcnJhLWRldmVs IHVkaXNrczItZGV2ZWwgZ3NvdW5kLWRldmVsCiAgJCh2b3B0X2lmIGNoZWVzZSBjaGVlc2UtZGV2 ZWwpIgotZGVwZW5kcz0iYWxzYS1wbHVnaW5zLXB1bHNlYXVkaW8gZGVza3RvcC1maWxlLXV0aWxz CitkZXBlbmRzPSJhbHNhLXBsdWdpbnMtcHVsc2VhdWRpbyBkZXNrdG9wLWZpbGUtdXRpbHMgdXBv d2VyIGNvbG9yZCBjdXBzLXBrLWhlbHBlcgogIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgaGlj b2xvci1pY29uLXRoZW1lIGlzby1jb2RlcyBzb3VuZC10aGVtZS1mcmVlZGVza3RvcAogIGNyYWNr bGliIgogc2hvcnRfZGVzYz0iR05PTUUgY29udHJvbCBjZW50ZXIiCkBAIC0yNCwxMyArMjQsMTcg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL2dub21lLWNvbnRyb2wtY2VudGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09NWY4MmVjZDU1NTQxMzZjNDYyMjQ4ZWM1MzYzYjgyZDk1MzU4YjM5ZGZkNjc4NzAwNmQ4 MzA3YjQ1MDRlNTE1ZQorY2hlY2tzdW09YjBiYjFkYzM2NGYyYWU3YTQ5NmY5MDIyM2E2Zjg3NDgw ZWU2NDRjNzU5YTc2NDczOTY1OWViNDM3NTQ2ZjVkNQogCiBidWlsZF9vcHRpb25zPSJjaGVlc2Ui CitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImNoZWVzZSIKKwogZGVzY19vcHRpb25fY2hlZXNlPSJB ZGQgc3VwcG9ydCBmb3IgYWRkaW5nIHVzZXIgYWNjb3VudCBpbWFnZXMgd2l0aCB5b3VyIHdlYmNh bSIKLWlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCWJ1aWxkX29wdGlvbnNfZGVmYXVs dCs9IiBjaGVlc2UiCi1maQorCisjIG5lZWRzIFgxMSBhbmQgcmVxdWlyZXMgYWx0ZXJlZCBmaWxl c3lzdGVtCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIENGTEFHUz0iLWZjb21tb24iCiAKCkZyb20g NTBkMDFmNzBiMDI2MTk3ZGMzODU3M2JmNTlkYzZiNmM1ZjBiYWI0ZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE1LzgzXSB0 cmFja2VyOiB1cGRhdGUgdG8gMi4zLjQKCi0tLQogc3JjcGtncy90cmFja2VyL3RlbXBsYXRlIHwg OSArKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyL3RlbXBsYXRlIGIvc3JjcGtncy90cmFj a2VyL3RlbXBsYXRlCmluZGV4IDM3MDc0Y2IzNDhkLi4xOTMzOGRiNDVlMSAxMDA2NDQKLS0tIGEv c3JjcGtncy90cmFja2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZQpA QCAtMSwyMiArMSwyMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndHJhY2tlcicKIHBrZ25hbWU9 dHJhY2tlcgotdmVyc2lvbj0yLjMuMQotcmV2aXNpb249MgordmVyc2lvbj0yLjMuNAorcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2Fy Z3M9Ii1EZG9jcz1mYWxzZSAtRGZ0cz10cnVlIC1EZnVuY3Rpb25hbF90ZXN0cz1mYWxzZQogIC1E am91cm5hbD10cnVlIC1EbWFuPXRydWUgLURuZXR3b3JrX21hbmFnZXI9ZW5hYmxlZCAtRHN0ZW1t ZXI9ZGlzYWJsZWQKICAtRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyIKLWhvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQg cGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0iZGJ1cy1kZXZlbCBsaWJn bGliLWRldmVsIGljdS1kZXZlbCBqc29uLWdsaWItZGV2ZWwKICBsaWJzb3VwLWRldmVsIGxpYnht bDItZGV2ZWwgc3FsaXRlLWRldmVsIE5ldHdvcmtNYW5hZ2VyLWRldmVsCiAgYmFzaC1jb21wbGV0 aW9uIgorY2hlY2tkZXBlbmRzPSJ0YXIiCiBzaG9ydF9kZXNjPSJQZXJzb25hbCBzZWFyY2ggdG9v bCBhbmQgc3RvcmFnZSBzeXN0ZW0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L2xpdmUuZ25vbWUub3JnL1RyYWNrZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdHJhY2tl ci8ke3ZlcnNpb24lLip9L3RyYWNrZXItJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iNjc0 ODcyNmU0NjVhZDJmNGQ5OTE1NjA2MzRiMWZkMGRmODg0MWYzZDk4MWIzYjgzN2M0MTYyYWJlZGYw OGExCitjaGVja3N1bT01Nzc5NTIyNDRhYjk3N2M3OGIwYjg4ZTJmNjNjNDE5N2VhYmExNmU0ZDY2 YmZmNjkyYjdmNTg5OTNlMDY1MTZkCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWhv c3RtYWtlZGVwZW5kcys9IiBkYnVzIgoKRnJvbSBkNTgxZGM0YzlkZTkyOTRlOWMwOTVhZmY4MTkz Zjg1MDM1ZmRlODBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYvODNdIGZvbGtzOiB1cGRhdGUgdG8gMC4xNC4wCgotLS0K IGNvbW1vbi9zaGxpYnMgICAgICAgICAgfCAgNyArKysrLS0tCiBzcmNwa2dzL2ZvbGtzL3RlbXBs YXRlIHwgMjggKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAy MiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hs aWJzIGIvY29tbW9uL3NobGlicwppbmRleCBjYzJiNjc2MDYyMi4uOGYzYjYwZGQ2MmEgMTAwNjQ0 Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtODMzLDkgKzgzMywx MCBAQCBsaWJkbXIuc28uMC4xIGRlZXBpbi1tb3ZpZS1yZWJvcm4tMy4yLjVfMQogbGliZ2pzLnNv LjAgZ2pzLTEuNjUuMl8xCiBsaWJ0ZWxlcGF0aHktZ2xpYi5zby4wIHRlbGVwYXRoeS1nbGliLTAu MTUuNV8xCiBsaWJhY2NvdW50c3NlcnZpY2Uuc28uMCBhY2NvdW50c3NlcnZpY2UtMC42LjRfMQot bGliZm9sa3Muc28uMjUgZm9sa3MtMC45LjVfMQotbGliZm9sa3MtdGVsZXBhdGh5LnNvLjI1IGZv bGtzLTAuOS41XzEKLWxpYmZvbGtzLWVkcy5zby4yNSBmb2xrcy0wLjkuNV8xCitsaWJmb2xrcy5z by4yNSBmb2xrcy0wLjE0LjBfMQorbGliZm9sa3MtZHVtbXkuc28uMjUgZm9sa3MtMC4xNC4wXzEK K2xpYmZvbGtzLXRlbGVwYXRoeS5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGliZm9sa3MtZWRzLnNv LjI1IGZvbGtzLTAuMTQuMF8xCiBsaWJuaWNlLnNvLjEwIGxpYm5pY2UtMC4xLjBfMQogbGliZ3Vw bnAtaWdkLTEuMC5zby40IGd1cG5wLWlnZC0wLjIuMF8xCiBsaWJ0ZWxlcGF0aHktbG9nZ2VyLnNv LjMgdGVsZXBhdGh5LWxvZ2dlci0wLjYuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZvbGtzL3Rl bXBsYXRlIGIvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQppbmRleCAzMzEwYzU0ZmFkZC4uYjA3NmI5 NGJlYTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9m b2xrcy90ZW1wbGF0ZQpAQCAtMSwyMSArMSwyNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZm9s a3MnCiBwa2duYW1lPWZvbGtzCi12ZXJzaW9uPTAuMTMuMQotcmV2aXNpb249MgordmVyc2lvbj0w LjE0LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1idWlsZF9oZWxwZXI9Z2lyCi1j b25maWd1cmVfYXJncz0iLURiX2x0bz1mYWxzZSAtRGxpYnNvY2lhbHdlYi1iYWNrZW5kPWZhbHNl IgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwgdmFsYSBw eXRob24gZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0gZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVs IgorYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKK2NvbmZpZ3VyZV9hcmdzPSItRGJfbHRvPWZhbHNl IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwgcHl0aG9u MyBweXRob24zLWRidXNtb2NrCisgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsICQodm9wdF9p ZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0icmVhZGxpbmUtZGV2ZWwgdGVsZXBhdGh5LWdsaWIt ZGV2ZWwgemVpdGdlaXN0LWRldmVsCi0gbGliZ2VlMDgtZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2Vy dmVyLWRldmVsIHRyYWNrZXItZGV2ZWwiCisgbGliZ2VlMDgtZGV2ZWwgZXZvbHV0aW9uLWRhdGEt c2VydmVyLWRldmVsIHRyYWNrZXItZGV2ZWwKKyAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgog ZGVwZW5kcz0iemVpdGdlaXN0Igogc2hvcnRfZGVzYz0iR09iamVjdCBMaWJyYXJ5IHRvIGFnZ3Jl Z2F0ZSBwZW9wbGUgaW50byBtZXRhY29udGFjdHMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Gb2xrcyIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTNkZjFjNjYzYjgyZmUyMTFhZWFkMmIzMWNhZTFmYzQxZDEy NGU4NTQzNjM3NTc2MmY2NzQ1YzQ1YmE0NmFhNWQKK2NoZWNrc3VtPWQ2ZTc3OGRhNjM3ZDNiMzNm ZDlhNmI0NTExNWU4MTU3ZDg4NjgyMTFkYzA4Yjk0M2QxMDc1YjVlYjcyODJiYjkKKworYnVpbGRf b3B0aW9ucz0iZ2lyIgoraWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJYnVpbGRfb3B0 aW9uc19kZWZhdWx0PSJnaXIiCitmaQogCiBmb2xrcy1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVu ZHM9IiR7bWFrZWRlcGVuZHN9ICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK QEAgLTI0LDcgKzMwLDkgQEAgZm9sa3MtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgdXNyL2lu Y2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgInVzci9saWIvKi5zbyIK LQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKLQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKKwkJaWYg WyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KKwkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4w CisJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQorCQlmaQogCX0KIH0KCkZyb20gYzUzOGE0YWMyZWZh ODhmOTIyMmY5YmFhMGY1NGM3ZTI4NmM1M2MyMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE3LzgzXSBkY29uZi1lZGl0b3I6 IHVwZGF0ZSB0byAzLjM2LjQKCi0tLQogc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUgfCA2 ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZGNv bmYtZWRpdG9yL3RlbXBsYXRlCmluZGV4IGRlMjUwYmJjOGE5Li44ODllNzk0ZTZiMiAxMDA2NDQK LS0tIGEvc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9kY29uZi1l ZGl0b3IvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Rj b25mLWVkaXRvcicKIHBrZ25hbWU9ZGNvbmYtZWRpdG9yCi12ZXJzaW9uPTMuMzYuMAordmVyc2lv bj0zLjM2LjQKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1ob3N0bWFrZWRlcGVuZHM9 ImRvY2Jvb2steHNsIGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEiCitob3N0bWFr ZWRlcGVuZHM9ImRvY2Jvb2steHNsIGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEg Z2V0dGV4dCIKIG1ha2VkZXBlbmRzPSJkY29uZi1kZXZlbCBndGsrMy1kZXZlbCIKIHNob3J0X2Rl c2M9Ikxvdy1sZXZlbCBjb25maWd1cmF0aW9uIHN5c3RlbSAtIEdUSysgZWRpdG9yIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0z LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9k Y29uZiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTcyZWVkMDU2NzA5MTdmOGU0 MzIwMGU0MGNjYzZiZTYwMjExZjBhODdiMDE3NTM0ZWFjMWZkNmM3MTczYTA2OTMKK2NoZWNrc3Vt PTNlYzMwOWJiYzkyMGIxNWMyYTU2ODNlMWE0OTYyYWJmNjkxMWE4NzYyYzhhMTEzYzRkNzk0Zjdl MGVhNTNlNzkKCkZyb20gZDhkNDY4NzRhZTIyODIzM2RhYmIwOTUzOTRmNTM2NTE4MzY5MDRiNyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDE4LzgzXSBkZXZoZWxwOiB1cGRhdGUgdG8gMy4zNy4xCgotLS0KIHNyY3BrZ3MvZGV2 aGVscC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2RldmhlbHAvdGVtcGxhdGUgYi9z cmNwa2dzL2RldmhlbHAvdGVtcGxhdGUKaW5kZXggYTFjMmRjYmI3NjIuLjljNWM0MDc2M2M5IDEw MDY0NAotLS0gYS9zcmNwa2dzL2RldmhlbHAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9kZXZoZWxw L3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZGV2aGVscCcK IHBrZ25hbWU9ZGV2aGVscAotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy4xCiByZXZpc2lv bj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCkBAIC0xMSw3ICsxMSw3 IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcv QXBwcy9EZXZoZWxwIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGNmOGVjOTMw MmJjNGE3OWUwMWFjNTNiZDljOGI5NWE1OTZmNzFmMzUzNTFmNDhiNjMyNjMyMjdmMDlhOGEzZAor Y2hlY2tzdW09ODFmZmJiOWUxMzdjZDAwMzFhNGY0MzA0YTEyNDRkMGI0MzI4ZTRhN2MwMGQ3NDlh OGZjMGUyYmJhYTMwMDVmOQogCiBkZXZoZWxwLWRldmVsX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVz Yys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgoKRnJvbSAyZjQxN2IwMzQwNjM3MmY5ZTMwYmZkMjU5 YzM5YmE4ZmNiMzY2NTk4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvODNdIGdub21lLXNoZWxsOiB1cGRhdGUgdG8gMy4z Ny45MQoKLS0tCiBzcmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRlIHwgMTEgKysrKysrKystLS0K IDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc2hlbGwv dGVtcGxhdGUKaW5kZXggOTZjNWI4MGExOTQuLjViMTg2ODVlN2IyIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLXNoZWxsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2hlbGwvdGVtcGxh dGUKQEAgLTEsMTIgKzEsMTIgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNoZWxsJwog cGtnbmFtZT1nbm9tZS1zaGVsbAotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4zNy45MQogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj1naXIKIGNvbmZpZ3VyZV9h cmdzPSItRHN5c3RlbWQ9ZmFsc2UiCiBob3N0bWFrZWRlcGVuZHM9ImdvYmplY3QtaW50cm9zcGVj dGlvbiBndGstZG9jIGxpYnhzbHQgcGtnLWNvbmZpZyBweXRob24zIHNhc3NjCi0gYXNjaWlkb2Mg cGVybCBnbGliLWRldmVsIG11dHRlci1kZXZlbCIKKyBhc2NpaWRvYyBwZXJsIGdsaWItZGV2ZWwg bXV0dGVyLWRldmVsIGdldHRleHQgZ2pzLWRldmVsIgogbWFrZWRlcGVuZHM9ImF0LXNwaTItYXRr IGNhcmlib3UtZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIGZvbGtzLWRldmVsCiAg Z2NyLWRldmVsIGdqcy1kZXZlbCBnbm9tZS1ibHVldG9vdGgtZGV2ZWwgZ25vbWUtY29udHJvbC1j ZW50ZXItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbAogIGdub21lLW1lbnVzLWRldmVsIGdzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwgZ3N0cmVhbWVyMS1kZXZlbCBndGsrMy1kZXZlbApA QCAtMjEsNCArMjEsOSBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVTaGVsbCIKIGNoYW5nZWxvZz0iaHR0 cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2dub21lLXNoZWxsL2dub21lLTMt MzAvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWNjZDg2NTU5YjljODk3 YzIxOWQyZDJlYmZkYjg0MTNlZmE0YzFiZWU4NDY0MjdjNzUwY2I4YTMwMWIzZjZkMWUKK2NoZWNr c3VtPTdhMjhiOWY4NDczNTk0NWNhNzFiY2ViZDlmZjU1YTAxY2MxNDdmZTE3MjIxOGFhODM1ZDU4 N2RjOGQ0NmNhMDcKKworIyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CgpGcm9tIDViNzMz OGYzZWMxMzNlMTMzYjBhNDY5NmU3NWYzNzVhYmY5ZmMwZTQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMC84M10gZ2RtOiB1 cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2dkbS90ZW1wbGF0ZSB8IDMxICsrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dkbS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ2RtL3RlbXBsYXRlCmluZGV4IGJiNWI0ODY5MmQ0Li5kOTQ5OWIzMzYxNyAxMDA2NDQK LS0tIGEvc3JjcGtncy9nZG0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZG0vdGVtcGxhdGUKQEAg LTEsMjcgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dkbScKIHBrZ25hbWU9Z2RtCi12 ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9 ImdpciIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKLWNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRf ZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQotIC0tZGlzYWJsZS1zY2hlbWFzLWNvbXBpbGUgLS1k aXNhYmxlLXN0YXRpYyAtLXdpdGgtZGVmYXVsdC1wYW0tY29uZmlnPWFyY2gKLSAtLXdpdGgtYXQt c3BpLXJlZ2lzdHJ5ZC1kaXJlY3Rvcnk9L3Vzci9saWJleGVjIC0td2l0aG91dC10Y3Atd3JhcHBl cnMKLSAtLXdpdGgtc2NyZWVuc2hvdC1kaXI9L3Zhci9saWIvZ2RtL2dyZWV0ZXIgLS1zYmluZGly PS91c3IvYmluIC0td2l0aG91dC1wbHltb3V0aAotIC0td2l0aC14YXV0aC1kaXI9L3J1bi9nZG0g LS13aXRoLXBpZC1maWxlPS9ydW4vZ2RtL2dkbS5waWQKLSAtLWRpc2FibGUtc3lzdGVtZC1qb3Vy bmFsIC0td2l0aC1pbml0aWFsLXZ0PTcgLS1lbmFibGUtd2F5bGFuZC1zdXBwb3J0IgorYnVpbGRf c3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSIKKyAtRGRlZmF1bHQtcGFtLWNvbmZpZz1hcmNo IC1EYXQtc3BpLXJlZ2lzdHJ5ZC1kaXI9L3Vzci9saWJleGVjCisgLUR0Y3Atd3JhcHBlcnM9ZmFs c2UgLURzY3JlZW5zaG90LWRpcj0vdmFyL2xpYi9nZG0vZ3JlZXRlcgorIC1EcGx5bW91dGg9ZGlz YWJsZWQgLUR4YXV0aC1kaXI9L3J1bi9nZG0gLURwaWQtZmlsZT0vcnVuL2dkbS9nZG0ucGlkCisg LURzeXN0ZW1kLWpvdXJuYWw9ZmFsc2UgLURpbml0aWFsLXZ0PTcgLUR3YXlsYW5kLXN1cHBvcnQ9 dHJ1ZQorIC1Ec2VsaW51eD1kaXNhYmxlZCAtRGxpYmF1ZGl0PWRpc2FibGVkCisgLURzeXN0ZW1k c3lzdGVtdW5pdGRpcj0vdG1wIC1Ec3lzdGVtZHVzZXJ1bml0ZGlyPS90bXAiCiBob3N0bWFrZWRl cGVuZHM9ImRjb25mIGdldHRleHQgaXRzdG9vbCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImFj Y291bnRzc2VydmljZS1kZXZlbCBlbG9naW5kLWRldmVsIGdldHRleHQtZGV2ZWwgZ2xpYi1kZXZl bAogIGlzby1jb2RlcyBsaWJTTS1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBuc3MtZGV2ZWwgcGFt LWRldmVsIHVwb3dlci1kZXZlbCIKLWRlcGVuZHM9Imdub21lLXNldHRpbmdzLWRhZW1vbiBnbm9t ZS1zaGVsbCB4b3JnLXNlcnZlciB4b3JnLXNlcnZlci14d2F5bGFuZAotIHhyZGIiCitkZXBlbmRz PSJnbm9tZS1zZXR0aW5ncy1kYWVtb24gZ25vbWUtc2hlbGwgZ25vbWUtc2Vzc2lvbiBnbm9tZS10 aGVtZXMtZXh0cmEKKyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIHhvcmctc2VydmVyIHhvcmct c2VydmVyLXh3YXlsYW5kIHhyZGIiCiBjaGVja2RlcGVuZHM9ImNoZWNrLWRldmVsIgogc2hvcnRf ZGVzYz0iR05PTUUgRGlzcGxheSBNYW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9HRE0iCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1lODVkZjY1N2FhOGQ5MzYxYWY0ZmIxMjIwMTRkOGYxMjNhOTNiZmU0 NWE3NjYyZmJhMmIzNzNkODM5ZGJkOGQzCitjaGVja3N1bT01M2MyOTExZThiNzI5ODY0MmY0MWJi ZDU3MTlmMzg1ZTRmZjczNDQwNjEyN2EwMDJiM2YxNTczMjE2YTg0ZTEyCiAKIGNvbmZfZmlsZXM9 IgogCS9ldGMvZ2RtL2N1c3RvbS5jb25mCkBAIC00MywxMCArNDQsMTYgQEAgaWYgWyAiJENST1NT X0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIGdsaWItZGV2ZWwgcGFtLWRldmVs IgogZmkKIAorcHJlX2NvbmZpZ3VyZSgpIHsKKwkjIG9ubHkgdXNlZCB0byBndWVzcyB1bml0IGZp bGUgaW5zdGFsbGF0aW9uIHBhdGgKKwl2c2VkIC1pICdzLF5zeXN0ZW1kX2RlcCwjc3lzdGVtZF9k ZXAsJyBtZXNvbi5idWlsZAorfQorCiBwb3N0X2luc3RhbGwoKSB7CiAJdmluc3RhbGwgJEZJTEVT RElSL1hzZXNzaW9uIDc1NSBldGMvZ2RtCiAKIAl2c2VkIC1pICJzL3BhbV9zeXN0ZW1kXC5zby9w YW1fZWxvZ2luZC5zby8iICRERVNURElSL2V0Yy9wYW0uZC8qCisJcm0gLXJmICR7REVTVERJUn0v dG1wCiAKIAkjIHJ1bml0IHNlcnZpY2UKIAl2c3YgZ2RtCkBAIC02MCw3ICs2Nyw3IEBAIGxpYmdk bV9wYWNrYWdlKCkgewogfQogCiBnZG0tZGV2ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRzPSJsaWJn ZG0+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0ibGliZ2RtPj0ke3ZlcnNpb259 XyR7cmV2aXNpb259IGVsb2dpbmQtZGV2ZWwiCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50 IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQoKRnJvbSA4YjEx NmFhZDA0ZjE3MjE1ODFiNzI3NWZkYmFhNmY0OTgwNTZkZTdmIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjEvODNdIGdub21l LXNlc3Npb246IHVwZGF0ZSB0byAzLjM3LjAKCi0tLQogc3JjcGtncy9nbm9tZS1zZXNzaW9uL3Bh dGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2ggfCAxNCArKysrKysrKysrKysrKwogc3JjcGtncy9n bm9tZS1zZXNzaW9uL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrKysrLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1k ZXAucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hlcy9uby1z eXN0ZW1kLWRlcC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3Rl bWQtZGVwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZTU1 YTBmNzk4NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVz L25vLXN5c3RlbWQtZGVwLnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKKy0tLSBtZXNvbi5idWlsZAor KysrIG1lc29uLmJ1aWxkCitAQCAtMTMwLDEwICsxMzAsNyBAQCBpZiBlbmFibGVfc3lzdGVtZCBv ciBlbmFibGVfY29uc29sZWtpdAorIAorICAgIyBDaGVjayBmb3Igc3lzdGVtZAorICAgaWYgZW5h YmxlX3N5c3RlbWQKKy0gICAgc3lzdGVtZF9kZXAgPSBkZXBlbmRlbmN5KCdzeXN0ZW1kJywgdmVy c2lvbjogJz49IDI0MicsIHJlcXVpcmVkOiB0cnVlKQorLSAgICBzeXN0ZW1kX3VzZXJ1bml0ZGly ID0gc3lzdGVtZF9kZXAuZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgnc3lzdGVtZHVzZXJ1bml0ZGly JywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVmaW5lX3ZhcmlhYmxlOiBbJ3ByZWZpeCcsIHByZWZpeF0pCistCisrICAgIHN5 c3RlbWRfdXNlcnVuaXRkaXIgPSAnL3RtcCcKKyAgICAgbGlic3lzdGVtZF9kZXAgPSBkZXBlbmRl bmN5KCdsaWJzeXN0ZW1kJywgdmVyc2lvbjogJz49IDIwOScsIHJlcXVpcmVkOiBmYWxzZSkKKyAg ICAgc2Vzc2lvbl9iaW5fZGVwcyArPSBsaWJzeXN0ZW1kX2RlcAorIApkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBs YXRlCmluZGV4IDQ0NDRmMTYyYmYxLi4wN2NhNzYyNjIyOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9n bm9tZS1zZXNzaW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi90ZW1wbGF0 ZQpAQCAtMSw5ICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNlc3Npb24nCiBw a2duYW1lPWdub21lLXNlc3Npb24KLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzcuMAogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWRfam91 cm5hbD1mYWxzZSIKK2NvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWRfam91cm5hbD1mYWxzZSAtRHN5 c3RlbWRfc2Vzc2lvbj1kaXNhYmxlIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGludGx0 b29sIHBrZy1jb25maWcgeG1sdG8iCiBtYWtlZGVwZW5kcz0iZWxvZ2luZC1kZXZlbCBnbm9tZS1k ZXNrdG9wLWRldmVsIGd0ayszLWRldmVsIGpzb24tZ2xpYi1kZXZlbAogIGxpYmdsaWItZGV2ZWwg bGliSUNFLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRp b24tZGV2ZWwKQEAgLTE1LDQgKzE1LDggQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRv eEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1z ZXNzaW9uIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDc4MDFmZTJkNWE3NTFi MTljYjU4MDgxNzcxMzE2YTc2YWFiZDVjNTUwY2Q1OGQ0ZTRjNmE1YTRlZDM1NjY2MAorY2hlY2tz dW09Y2IxNDBmMmI4ZWU3NjhmZjhiM2RjZTNkZGI0NzllNzFlOTUxMzhlOTA0YzgzNDNhMzhjNjBh MmQxZTg1Zjk4ZgorCitwb3N0X2luc3RhbGwoKSB7CisJcm0gLXJmICR7REVTVERJUn0vdG1wCit9 CgpGcm9tIDk1ZTA3ZWUwZGI5NDMxMjYyZDk1YmFjNjkwMTUxNzI4ZDk1ZjA1ZmEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAy Mi84M10gZ25vbWUtb25saW5lLWFjY291bnRzOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNw a2dzL2dub21lLW9ubGluZS1hY2NvdW50cy90ZW1wbGF0ZSB8IDEyICsrKysrLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLW9ubGluZS1hY2NvdW50cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUt b25saW5lLWFjY291bnRzL3RlbXBsYXRlCmluZGV4IGQ2YTIyZDlkYTcyLi4yOTk4MGQ0MzQyNCAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1vbmxpbmUtYWNjb3VudHMnCiBwa2duYW1lPWdub21l LW9ubGluZS1hY2NvdW50cwotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNy45MAogcmV2aXNp b249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogYnVpbGRfaGVscGVyPSJnaXIiCkBAIC0x MSw3ICsxMSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0 aW9uKQogIC0tZW5hYmxlLW93bmNsb3VkIC0tZW5hYmxlLXdpbmRvd3MtbGl2ZSAtLWVuYWJsZS1w b2NrZXQKICAtLWVuYWJsZS1sYXN0Zm0gLS1lbmFibGUtbWVkaWEtc2VydmVyIgogaG9zdG1ha2Vk ZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0LWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtY29tbW9u Ci0gbGlieHNsdCBwa2ctY29uZmlnICQodm9wdF9pZiB2YWxhIHZhbGEpIgorIGxpYnhzbHQgcGtn LWNvbmZpZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imdjci1kZXZlbCBndGsr My1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnNlY3JldC1kZXZlbAog IGxpYnNvdXAtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgcmVzdC1kZXZlbCB0ZWxlcGF0aHktZ2xpYi1k ZXZlbCB3ZWJraXQyZ3RrLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIgpAQCAt MjAsMTAgKzIwLDEwIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21lT25saW5lQWNjb3VudHMiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT0xYzhmNjI5OTA4MzNjYTQxMTg4ZGJiODBjNWU5OWQ5OWI1N2E2 MjYwOGNhNjc1YmJjZDM3YmMyMjQ0NzQyZjJlCitjaGVja3N1bT05ZjY5ODJjODk2ZTYyMzVhMmU4 NWI4YTQ5N2M3YmY2M2E0YTI4OGI1Njc4ZGI0MGRjMzczNTE1ZWZiZWRiMWJiCiAKLWJ1aWxkX29w dGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxk X29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBnbm9tZS1vbmxp bmUtYWNjb3VudHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1kZXZlbCAke3Nv dXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0zNSw4ICszNSw2IEBAIGdub21l LW9ubGluZS1hY2NvdW50cy1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvbGliL2dvYS0x LjAKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFy ZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJ dm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDk5YTI4NzY2N2QyOGRhZTY5NGJk NjJkNmQ1OTg2ZWRmNDg3NTRlMjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMy84M10gZ25vbWUtaW5pdGlhbC1zZXR1cDog dXBkYXRlIHRvIDMuMzcuOTEuMQoKLS0tCiBzcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVt cGxhdGUgfCAxMyArKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1 cC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1cC90ZW1wbGF0ZQppbmRleCBh YmE1YTA5NGMyOC4uOTc0YzlmZGE3ZTkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtaW5pdGlh bC1zZXR1cC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxh dGUKQEAgLTEsMTAgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWluaXRpYWwt c2V0dXAnCiBwa2duYW1lPWdub21lLWluaXRpYWwtc2V0dXAKLXZlcnNpb249My4zNC4xCi1yZXZp c2lvbj0yCit2ZXJzaW9uPTMuMzcuOTEuMQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24K LWNvbmZpZ3VyZV9hcmdzPSItRHNvZnR3YXJlLXNvdXJjZXM9ZGlzYWJsZWQgLURzeXN0ZW1kPWZh bHNlIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwiCitjb25maWd1cmVf YXJncz0iLURzb2Z0d2FyZS1zb3VyY2VzPWRpc2FibGVkIC1EcGFyZW50YWxfY29udHJvbHM9ZGlz YWJsZWQKKyAtRHN5c3RlbWQ9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xp Yi1kZXZlbCBnZXR0ZXh0IgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGFjY291 bnRzc2VydmljZS1kZXZlbCBsaWJnbGliLWRldmVsCiAgZ25vbWUtZGVza3RvcC1kZXZlbCBjaGVl c2UtZGV2ZWwgbGliZ3dlYXRoZXItZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbAogIGdub21lLW9ubGlu ZS1hY2NvdW50cy1kZXZlbCBnZG0tZGV2ZWwgbGlicHdxdWFsaXR5LWRldmVsCkBAIC0xNiw1ICsx Nyw1IEBAIHNob3J0X2Rlc2M9IkdOT01FIGluaXRpYWwgc2V0dXAiCiBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0Rlc2lnbi9PUy9Jbml0aWFsU2V0 dXAiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lNzFmMTBlZjZiNjMxY2Q5MmZm ZGU3NzRlNDEzMGIzMmIyNDk0YjRkZjVlZjI4ODM3NWQ4YjE5NTdlZWFiZmExCitkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLiouKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKK2NoZWNrc3VtPWVlNmUwNGE0OWNhM2FkNWY1Mzg1OGVmNjZjYjY5NDlm NjhjYTkyMDUwOWExNjdhOTdhOWZhY2NkZTI3ZWFhZWYKCkZyb20gZWIwMGE4ZmE3YzUyNmE3YTE0 YTc4MjZlNjhjOWYxMDEyZDY3OWFjNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI0LzgzXSB4ZGctZGVza3RvcC1wb3J0YWwt Z3RrOiBidW1wCgotLS0KIHNyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0ZSBiL3NyY3Br Z3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0ZQppbmRleCBkZWUwZTQ2MzM4Ni4uNTU4 Yzc1ZjUzOWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd4ZGctZGVza3RvcC1wb3J0YWwtZ3RrJwog cGtnbmFtZT14ZGctZGVza3RvcC1wb3J0YWwtZ3RrCiB2ZXJzaW9uPTEuNi4wCi1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgbGlieHNsdCBnbGliLWRldmVsIHhkZy1kZXNrdG9wLXBvcnRhbCBnZXR0ZXh0 IgogbWFrZWRlcGVuZHM9ImZsYXRwYWstZGV2ZWwgZ3RrKzMtZGV2ZWwgbGlieHNsdC1kZXZlbCBs aWJnbGliLWRldmVsCgpGcm9tIDNjOWFhM2UzZTg5NjlhNzdhOTNkNjk2ZGM2ODNkNTMxMDU0ZGZm OTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAyNS84M10gZ25vbWUtc2hlbGwtZXh0ZW5zaW9uczogdXBkYXRlIHRvIDMuMzcu OTEKCi0tLQogc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRlIHwgNiArKyst LS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRlIGIvc3JjcGtn cy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRlCmluZGV4IDk3MTY4YjQwZjY2Li5kYjg4 OTgwY2Q0YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZQpAQCAtMSwx NSArMSwxNSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucycK IHBrZ25hbWU9Z25vbWUtc2hlbGwtZXh0ZW5zaW9ucwotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249 My4zNy45MQogcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1EZXh0ZW5zaW9uX3NldD1hbGwiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWciCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2V0dGV4dCIKIGRlcGVuZHM9Imdu b21lLXNoZWxsPj0ke3ZlcnNpb259IG5hdXRpbHVzIHVuemlwIgogc2hvcnRfZGVzYz0iRXh0ZW5z aW9ucyBmb3IgR05PTUUgc2hlbGwsIGluY2x1ZGluZyBjbGFzc2ljIG1vZGUiCiBtYWludGFpbmVy PSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21l U2hlbGwvRXh0ZW5zaW9ucyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWIwYWQ1 MTE0M2IxYmY0MGRlZjRhMTBmOGZkMGFiMGZmYjQ3MjE4MzA0ODAwNzk0ZTYyY2FkZDI5ZDBhY2M3 NWIKK2NoZWNrc3VtPThkNjJjNjdhMzk1Y2E1NjNmYzMzYzNhMjEwZGVjNDZhNmM4MTE1MTAzOTUy Y2MwZDkyMDdmM2QyZWZkYjk0NTEKCkZyb20gYmIwNzQ3MGUxZDE2M2E5ZmZjOTZiMzdkM2FkYzI1 Njc1NTE3M2Q3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAy MDAKU3ViamVjdDogW1BBVENIIDI2LzgzXSBuYXV0aWx1czogdXBkYXRlIHRvIDMuMzcuOTEKCi0t LQogc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbmF1 dGlsdXMvdGVtcGxhdGUgYi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCmluZGV4IDUzN2E4NTE5 NzNmLi5kOWVlYmM1ZjU3YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbmF1dGlsdXMnCiBwa2duYW1lPW5hdXRpbHVzCi12ZXJzaW9uPTMuMzYuMS4x Cit2ZXJzaW9uPTMuMzcuOTEKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9o ZWxwZXI9ImdpciIKQEAgLTExLDEzICsxMSwxMyBAQCBtYWtlZGVwZW5kcz0iZXhlbXBpLWRldmVs IGdub21lLWF1dG9hci1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGd0ayszLWRldmVsCiAgbGli WDExLWRldmVsIGxpYnhtbDItZGV2ZWwgdHJhY2tlci1kZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1k ZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBnc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzIGhpY29sb3ItaWNvbi10aGVtZQogIHRyYWNrZXItbWluZXJzIHRyYWNrZXIiCi1jaGVja2Rl cGVuZHM9InRyYWNrZXIiCitjaGVja2RlcGVuZHM9InRyYWNrZXIgdHJhY2tlci1taW5lcnMiCiBz aG9ydF9kZXNjPSJHTk9NRSBmaWxlIG1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0y LjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9OYXV0aWx1cyIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbjo6NH0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWY5MjUyZjUwODIxMWQ5ZjM2OGE0OWRi Njk3ODkwZjg5NWQwODBmMDk1OTBhZWNhZjMzODAzYTUxOWRlZjdiZGUKK2NoZWNrc3VtPWY3OTM4 YmE3MDMwMWZiOTNlNGI4NGZjOWQwMGY3YjkxNzg0ZDI5NTcyOWU0MjQyYzIyYzg5YTdlYWM4Njdj NmYKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpG cm9tIGQxNmYyMjU1YmMxYTM1MGExYTRjMjI3YTdkYzZlM2U2MDliZjRlNDQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNy84 M10gZ25vbWUtbWFwczogdXBkYXRlIHRvIDMuMzcuOTEKCi0tLQogc3JjcGtncy9nbm9tZS1tYXBz L3RlbXBsYXRlIHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUKaW5kZXggMDMwMGJlNjA1OTkuLjI2MjBk MjZlZjM1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlCkBAIC0xLDE2ICsxLDE2IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS1tYXBzJwogcGtnbmFtZT1nbm9tZS1tYXBzCi12ZXJzaW9uPTMuMzYuMQor dmVyc2lvbj0zLjM3LjkxCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotaG9zdG1ha2Vk ZXBlbmRzPSJnbGliLWRldmVsIGdvYmplY3QtaW50cm9zcGVjdGlvbiBpbnRsdG9vbCBwa2ctY29u ZmlnIEFwcFN0cmVhbSIKK2J1aWxkX2hlbHBlcj0iZ2lyIgoraG9zdG1ha2VkZXBlbmRzPSJnbGli LWRldmVsIGludGx0b29sIHBrZy1jb25maWcgQXBwU3RyZWFtIgogbWFrZWRlcGVuZHM9ImZvbGtz LWRldmVsIGdlb2NsdWUyLWRldmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnanMtZGV2ZWwKLSBnbm9t ZS1kZXNrdG9wLWRldmVsIGxpYmNoYW1wbGFpbi1kZXZlbCByZXN0LWRldmVsIgorIGdub21lLWRl c2t0b3AtZGV2ZWwgbGliY2hhbXBsYWluLWRldmVsIHJlc3QtZGV2ZWwgbGliaGFuZHkxLWRldmVs IgogZGVwZW5kcz0iZ2VvY2x1ZTIgZ2ZiZ3JhcGggZ2pzIgogc2hvcnRfZGVzYz0iR05PTUUgbWFw cyBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvQXBwcy9NYXBzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MWEzMmVmZDk2YWQ4OThmNzdhNjM2ZDJkMDQ2M2Q3NTcwMDliNGI4MTIyNTljODlmZmRjYjkxZDZh ZmMwNTJmOQotbm9jcm9zcz0iZXZvbHV0aW9uLWRhdGFzZXJ2ZXIgY3Jvc3MgZ2lyIGRvZXNuJ3Qg d29yayIKK2NoZWNrc3VtPTc0Yjc4MjVkMDZlNjk0YTNlYzBmM2ExZmFhYTQ1OTJlNmY3YWM1YTVi MTQ1ZDgzNTU3NDg0MmNkNmJiMzAzNGIKCkZyb20gZmFmNmMwMTA0NzEzMTExODRlOGQzMzFiZDAx MTMxYWQ3NDU0ZDg3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDI4LzgzXSBldm9sdXRpb246IHVwZGF0ZSB0byAzLjM3Ljkw CgotLS0KIC4uLi9ldm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSB8IDQ1 IC0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2ljb252LWRldGVj dC5oICAgICAgICB8ICA1IC0tLQogc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgIHwgMzMgKysrLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRp b25zKCspLCA3NyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2V2b2x1 dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmgKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlIGIvc3JjcGtncy9l dm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZQpkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggOGJlNTViNDIwNzAuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZXZv bHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UKKysrIC9kZXYvbnVsbApAQCAt MSw0NSArMCwwIEBACi0jIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IENNYWtlIGJlY2F1c2Ug aXQgZGV0ZWN0ZWQgVFJZX1JVTigpIGNvbW1hbmRzCi0jIGluIGNyb3NzY29tcGlsaW5nIG1vZGUu IEl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQgQ01ha2UgcnVuLgotIyBDb3B5IGl0 IHRvIGEgc2FmZSBsb2NhdGlvbiwgc2V0IHRoZSB2YXJpYWJsZXMgdG8gYXBwcm9wcmlhdGUgdmFs dWVzCi0jIGFuZCB1c2UgaXQgdGhlbiB0byBwcmVzZXQgdGhlIENNYWtlIGNhY2hlICh1c2luZyAt QykuCi0KLQotIyBfY29ycmVjdF9pY29udl9FWElUQ09ERQotIyAgICBpbmRpY2F0ZXMgd2hldGhl ciB0aGUgZXhlY3V0YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBydW4gb24gaXRzCi0jICAg IHRhcmdldCBwbGF0Zm9ybS4gSWYgc28sIHNldCBfY29ycmVjdF9pY29udl9FWElUQ09ERSB0bwot IyAgICB0aGUgZXhpdCBjb2RlIChpbiBtYW55IGNhc2VzIDAgZm9yIHN1Y2Nlc3MpLCBvdGhlcndp c2UgZW50ZXIgIkZBSUxFRF9UT19SVU4iLgotIyBUaGUgX2NvcnJlY3RfaWNvbnZfQ09NUElMRUQg dmFyaWFibGUgaG9sZHMgdGhlIGJ1aWxkIHJlc3VsdCBmb3IgdGhpcyBUUllfUlVOKCkuCi0jIAot IyBTb3VyY2UgZmlsZSAgIDogL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAv YnVpbGQvQ01ha2VGaWxlcy9DTWFrZVRtcC9zcmMuYwotIyBFeGVjdXRhYmxlICAgIDogL2J1aWxk ZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvYnVpbGQvQ01ha2VGaWxlcy9jbVRDXzMx NWVlLV9jb3JyZWN0X2ljb252X0VYSVRDT0RFCi0jIFJ1biBhcmd1bWVudHMgOiAKLSMgICAgQ2Fs bGVkIGZyb206IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1bGVzL0NoZWNrQ1NvdXJjZVJ1 bnMuY21ha2UKLSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEt c2VydmVyLTMuMjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIF9jb3JyZWN0X2ljb252X0VYSVRD T0RFIAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBG T1JDRSkKLXNldChfY29ycmVjdF9pY29udl9FWElUQ09ERV9fVFJZUlVOX09VVFBVVAotICAgICAw Ci0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JDRSkKLQotCi0j IEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERQotIyAgICBpbmRpY2F0ZXMgd2hldGhlciB0aGUgZXhl Y3V0YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBydW4gb24gaXRzCi0jICAgIHRhcmdldCBw bGF0Zm9ybS4gSWYgc28sIHNldCBIQVZFX0xLU1RSRlRJTUVfRVhJVENPREUgdG8KLSMgICAgdGhl IGV4aXQgY29kZSAoaW4gbWFueSBjYXNlcyAwIGZvciBzdWNjZXNzKSwgb3RoZXJ3aXNlIGVudGVy ICJGQUlMRURfVE9fUlVOIi4KLSMgVGhlIEhBVkVfTEtTVFJGVElNRV9DT01QSUxFRCB2YXJpYWJs ZSBob2xkcyB0aGUgYnVpbGQgcmVzdWx0IGZvciB0aGlzIFRSWV9SVU4oKS4KLSMgCi0jIFNvdXJj ZSBmaWxlICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9D TWFrZUZpbGVzL0NNYWtlVG1wL3NyYy5jCi0jIEV4ZWN1dGFibGUgICAgOiAvYnVpbGRkaXIvZXZv bHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL2NtVENfZDI4OTctSEFW RV9MS1NUUkZUSU1FX0VYSVRDT0RFCi0jIFJ1biBhcmd1bWVudHMgOiAKLSMgICAgQ2FsbGVkIGZy b206IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1bGVzL0NoZWNrQ1NvdXJjZVJ1bnMuY21h a2UKLSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVy LTMuMjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERSAK LSAgICAgMAotICAgICBDQUNIRSBJTlRFUk5BTCAiUmVzdWx0IGZyb20gVFJZX1JVTiIgRk9SQ0Up Ci1zZXQoIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERV9fVFJZUlVOX09VVFBVVAotICAgICAwCi0g ICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JDRSkKLQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmggYi9zcmNwa2dzL2V2 b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggNDZmNDc2ZDViYzkuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVz L2ljb252LWRldGVjdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0vKiBUaGlzIGlz IGFuIGF1dG8tZ2VuZXJhdGVkIGhlYWRlciwgRE8gTk9UIEVESVQhICovCi0KLSNkZWZpbmUgSUNP TlZfSVNPX0RfRk9STUFUICJpc28tJWQtJWQiCi0jZGVmaW5lIElDT05WX0lTT19TX0ZPUk1BVCAi aXNvLSVkLSVzIgotI2RlZmluZSBJQ09OVl8xMDY0NiAiaXNvLTEwNjQ2IgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUgYi9zcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0ZQpp bmRleCA1NjBlZDkzZGEwMi4uY2M3MzU1OTk0M2IgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0 aW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlCkBAIC0xLDE2ICsx LDE2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24nCiBwa2duYW1lPWV2b2x1dGlv bgotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Y21ha2UKK2J1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCiBjb25maWd1cmVfYXJncz0iLURFTkFC TEVfQVVUT0FSPU9GRiAtREVOQUJMRV9MSUJDUllQVFVJPU9GRiAtREVOQUJMRV9HVEtTUEVMTD1P RkYKLSAtREVOQUJMRV9URVhUX0hJR0hMSUdIVD1PRkYgLURFTkFCTEVfUFNUX0lNUE9SVD1PRkYK LSAtREVOQUJMRV9XRUFUSEVSPSQodm9wdF9pZiBnaXIgT04gT0ZGKSIKKyAtREVOQUJMRV9URVhU X0hJR0hMSUdIVD1PRkYgLURFTkFCTEVfUFNUX0lNUE9SVD1PRkYgLURFTkFCTEVfV0VBVEhFUj1P TiIKIGhvc3RtYWtlZGVwZW5kcz0iZ25vbWUtZG9jLXV0aWxzIGdvYmplY3QtaW50cm9zcGVjdGlv biBpbnRsdG9vbCBpdHN0b29sCi0gcGtnLWNvbmZpZyIKKyBwa2ctY29uZmlnIGdsaWItZGV2ZWwi CiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgY2x1dHRlci1ndGstZGV2ZWwgZW5j aGFudDItZGV2ZWwKICBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgZ3NwZWxsLWRldmVsIGd0 a2h0bWwtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwKLSAkKHZvcHRfaWYgZ2lyIGxpYmd3ZWF0aGVy LWRldmVsKSBsaWJub3RpZnktZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB5dG5lZi1kZXZlbAorIGxp Ymd3ZWF0aGVyLWRldmVsIGxpYm5vdGlmeS1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIHl0bmVmLWRl dmVsCiAgZ25vbWUtZGVza3RvcC1kZXZlbCIKIGRlcGVuZHM9Imdub21lLWtleXJpbmciCiBzaG9y dF9kZXNjPSJJbnRlZ3JhdGVkIG1haWwsIGFkZHJlc3Nib29rIGFuZCBjYWxlbmRhcmluZyBmb3Ig R05PTUUiCkBAIC0xOSwzNiArMTksMTUgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIsIExH UEwtMy4wLW9yLWxhdGVyLCBHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvQXBwcy9Fdm9sdXRpb24iCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1 YnVzZXJjb250ZW50LmNvbS9HTk9NRS9ldm9sdXRpb24vZ25vbWUtMy0zNi9ORVdTIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODczYWNmMWRiZWMzOGU2N2UxNjkwNjQ2NDVhYzNh OWI5YTk0NGJkMmI2MzMxNjFkZjZlNWYwNTcwMGUzNmNiOAorY2hlY2tzdW09MGEzNWE2NjE0YTEz MGE1MTc2ODExNDBkMzc4YjE1YzYyOTAwYjg0YTE4YzM5ZGJmMjZkOWY5NmY0MjhiZDRlYgogc2hs aWJfcHJvdmlkZXM9ImxpYmV2b2x1dGlvbi1jYWxlbmRhci5zbyBsaWJldm9sdXRpb24tdXRpbC5z byBsaWJlbWFpbC1lbmdpbmUuc28KICBsaWJldm9sdXRpb24tbWFpbC5zbyBsaWJldm9sdXRpb24t c2hlbGwuc28iCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGlmIFsgLXogIiRDUk9TU19CVUlMRCIg XTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgotZWxzZQotCWhvc3RtYWtlZGVw ZW5kcys9IiBnbGliLWRldmVsIgogZmkKIAotIyBjbWFrZSBwZXJmb21ybXMgMiBjaGVja3MgdXNp bmcgYmluYXJ5IHJ1bnRpbWUsIGFib3V0IGljb252IGFuZCBzZnJ0aW1lLgotIyBtdXNsICgxLjEu MTYpIGRvZXMgbm90IHN1cHBvcnQgIklTTy0yMDIyLUpQIiBlbmNvZGluZyAoc2VlIGl0cyByb2Fk bWFwKSwKLSMgYWx0aG91Z2ggZXZvbHV0aW9uLWRhdGEtc2VydmVyIGlzIGZpbmUgd2l0aCBtdXNs LgotIyBJZiBjcm9zc2J1aWxkLCBjbWFrZSBsZXQgZGlzYWJsaW5nIHJ1bnRpbWUgY2hlY2tzIHZp YSBzcGVjaWZpYyBkaXJlY3RpdmVzLgotIyB0ZXN0IGljb252LWRldGVjdC5jIGFsc28gZ2VuZXJh dGVzIGljb252LWRldGVjdC5oIHRoYXQgaXMgcmVxdWlyZWQgZm9yIGJ1aWxkLgotIyBTbyBjb21w bGV0bHkgZGlzYWJsZSB0ZXN0IGZyb20gaWNvbnYtZGV0ZWN0LmMgKGNtYWtlLnBhdGNoIGZpbGUp IGFuZAotIyB1c2UgYSBjbWFrZSBjYWNoZSBmaWxlIG9uIGNyb3NzYnVpbGQgdG8gZGlzYWJsZSBz ZnJ0aW1lIHJ1bm5pbmcgdGVzdC4KLWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCWNvbmZp Z3VyZV9hcmdzKz0iIC1DIGRpc2FibGVSdW50aW1lVGVzdHMuY21ha2UiCi1maQotCi1wcmVfY29u ZmlndXJlKCkgewotCW1rZGlyIC1wIGJ1aWxkCi0JY3AgJHtGSUxFU0RJUn0vaWNvbnYtZGV0ZWN0 LmggJHt3cmtzcmN9L2J1aWxkLy4KLQlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQkJY3Ag JHtGSUxFU0RJUn0vZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSAke3dya3NyY30vYnVpbGQvLgot CWZpCi19Ci0KIGV2b2x1dGlvbi1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IndlYmtpdDJn dGstZGV2ZWwgZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBldm9sdXRpb24tZGF0YS1zZXJ2ZXIt ZGV2ZWwKIAkgZ3RraHRtbC1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0iCgpGcm9tIDBjY2JlYTgwZTljZmE2YjZjZmZhYmNlMTE1ZjU5MGEwNjI2MGJiZjcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAyOS84M10gZXZvbHV0aW9uLWV3czogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9l dm9sdXRpb24tZXdzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZvbHV0aW9uLWV3 cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZQppbmRleCA0ZmY4MTE2 NDY2Yy4uNzJjZWQ1MjAwMTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24tZXdzJwogcGtnbmFtZT1ldm9sdXRpb24t ZXdzCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ETElCRVhFQ19JTlNUQUxMX0RJUj0vdXNyL2xp Yi9ldm9sdXRpb24iCkBAIC0xMiw0ICsxMiw0IEBAIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Fdm9sdXRpb24iCiBjaGFu Z2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9ldm9sdXRpb24t ZXdzL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWQw ODgzYzdkMjI3ODI3Y2M1YzQ0NjhiN2UzMWEzZWUzNzBiY2Q3ZDQxYTRkYmI5NTBhYjVkYjM2Yzk1 NTFhYzEKK2NoZWNrc3VtPWJlOTE2MDVkZmY1ZTI3NDg3ZmNiY2NlZmM5MTNjMDI3ZDJkNjYxMDQw ZTA5NGZiZDgxZjk1MWRjOWE4NjE4MTUKCkZyb20gOGViZmJlMWNiNGZmNTg5MzkwMTY0NTgzODJl NWNiYTVjNmIwMzQwYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDMwLzgzXSBweXRob24zLWF0c3BpOiB1cGRhdGUgdG8gMi4z Ny45MAoKLS0tCiBzcmNwa2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUgYi9zcmNwa2dzL3B5dGhvbjMtYXRzcGkv dGVtcGxhdGUKaW5kZXggYTMzYTM3NGZlMTguLjI5OTA3N2Q0NzFlIDEwMDY0NAotLS0gYS9zcmNw a2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9weXRob24zLWF0c3BpL3Rl bXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uMy1hdHNw aScKIHBrZ25hbWU9cHl0aG9uMy1hdHNwaQotdmVyc2lvbj0yLjMyLjEKLXJldmlzaW9uPTQKK3Zl cnNpb249Mi4zNy45MAorcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiB3cmtzcmM9InB5YXRzcGkt JHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTEzLDQgKzEzLDQgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dO T01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3B5YXRzcGkvJHt2ZXJzaW9u JS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODQ5NTRhNWJiZWFjYzgz NjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIzOWIyNDYzN2I0YzRkZDFmODYyMDM4OQorY2hlY2tz dW09NGUxN2FjZTU5YzZjODNhYzk0MWQ3NGY3NmFjYjk0YzAwZmIyMmI1NmJhYTZlYWFiMzEzZjVl MWFhYjcyZmMzOAoKRnJvbSAwNzU5NWJmMzJiODNhMzM3MzUxMGRjODM3YWY1ODM2ZTU1YzMyMjAx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMzEvODNdIHB5dGhvbi1hdHNwaTogdXBkYXRlIHRvIDIuMzcuOTAKCi0tLQogc3Jj cGtncy9weXRob24tYXRzcGkvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhv bi1hdHNwaS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlCmluZGV4IDAx NDFkOTdmODVkLi5jNTQ0NTIzZjlkNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24tYXRzcGkv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9weXRob24tYXRzcGkvdGVtcGxhdGUKQEAgLTEsOCArMSw4 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24tYXRzcGknCiAjIEtlZXAgcHl0aG9uMy1h dHNwaSBpbiBzeW5jCiBwa2duYW1lPXB5dGhvbi1hdHNwaQotdmVyc2lvbj0yLjMyLjEKLXJldmlz aW9uPTQKK3ZlcnNpb249Mi4zNy45MAorcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiB3cmtzcmM9 InB5YXRzcGktJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTE0LDQg KzE0LDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25v bWUub3JnL0dOT01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3B5YXRzcGkv JHt2ZXJzaW9uJS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODQ5NTRh NWJiZWFjYzgzNjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIzOWIyNDYzN2I0YzRkZDFmODYyMDM4 OQorY2hlY2tzdW09NGUxN2FjZTU5YzZjODNhYzk0MWQ3NGY3NmFjYjk0YzAwZmIyMmI1NmJhYTZl YWFiMzEzZjVlMWFhYjcyZmMzOAoKRnJvbSA0ZGEyYWE1ODUxYWZhMjZhNDZmNDAwMmY5MmFhNzc2 MmRkYWI0M2Q3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMzIvODNdIG9yY2E6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNy Y3BrZ3Mvb3JjYS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29yY2EvdGVtcGxhdGUg Yi9zcmNwa2dzL29yY2EvdGVtcGxhdGUKaW5kZXggZjcwMjAyZTZkNzYuLjJiMjk2NWJmYmFjIDEw MDY0NAotLS0gYS9zcmNwa2dzL29yY2EvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcmNhL3RlbXBs YXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3JjYScKIHBrZ25hbWU9 b3JjYQotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYXJjaHM9 bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMyw3ICsxMyw3IEBAIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMv T3JjYSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWMxYWM2NDhiNmJlMzE0ODhj MjZmZjk1OTExNDI4Nzg2OWRmOWNlM2NhMjE5OTllNDBkZWQ4Nzc0MWM5ODgzMWYKK2NoZWNrc3Vt PTFhYjJlYjViZThjMzYzM2EyYjYxYzI2YzVlM2M5ZTFhNWIxMTE0YmFmMTQ4ZmFlODljZWMzNWRm YmE0Y2I2NGIKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRz Kz0iIHB5dGhvbjMtZ29iamVjdC1kZXZlbCIKCkZyb20gZDcyYjM3MTVmNGRjOWFjYjdjNzllMGEx YjRlNGVjYzQyOGIyZTA2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDMzLzgzXSBnbm9tZS13ZWF0aGVyOiBidW1wCgotLS0K IHNyY3BrZ3MvZ25vbWUtd2VhdGhlci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt d2VhdGhlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtd2VhdGhlci90ZW1wbGF0ZQppbmRleCBk MzBiZTliZjE5Mi4uYzAyOGU0NmJhNjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtd2VhdGhl ci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS13ZWF0aGVyJwogcGtnbmFtZT1nbm9t ZS13ZWF0aGVyCiB2ZXJzaW9uPTMuMzYuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRf aGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0 IHBrZy1jb25maWcgaXRzdG9vbCBnbGliLWRldmVsIGdqcyIKCkZyb20gY2JmZTViOGYwMTQxODM5 OTNlNjFmNjQ5MWNkODk4NWYzYjhmOWJlYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDM0LzgzXSB2dGUzOiB1cGRhdGUgdG8g MC42MS45MAoKLS0tCiBzcmNwa2dzL3Z0ZTMvdGVtcGxhdGUgfCAxOSArKysrKysrKy0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUgYi9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUK aW5kZXggNjExNmIzY2M2MjEuLmYxYmExYzZmMWEyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3Z0ZTMv dGVtcGxhdGUKKysrIGIvc3JjcGtncy92dGUzL3RlbXBsYXRlCkBAIC0xLDI5ICsxLDI4IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICd2dGUzJwogcGtnbmFtZT12dGUzCi12ZXJzaW9uPTAuNjAuMwor dmVyc2lvbj0wLjYxLjkwCiByZXZpc2lvbj0xCiB3cmtzcmM9InZ0ZS0ke3ZlcnNpb259IgogYnVp bGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EYl9u ZGVidWc9ZmFsc2UgLURnaXI9JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKQotIC1EdmFwaT0kKHZv cHRfaWYgdmFsYSB0cnVlIGZhbHNlKSAtRGJfbHRvPWZhbHNlIC1EX3N5c3RlbWQ9ZmFsc2UiCitj b25maWd1cmVfYXJncz0iLURiX25kZWJ1Zz1mYWxzZSAtRGJfbHRvPWZhbHNlIC1EX3N5c3RlbWQ9 ZmFsc2UKKyAkKHZvcHRfYm9vbCBnaXIgZ2lyKSAkKHZvcHRfYm9vbCBnaXIgdmFwaSkiCiBob3N0 bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ25vbWUtZG9jLXV0aWxzIGdwZXJmIGludGx0b29sIHBr Zy1jb25maWcKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKLW1ha2VkZXBlbmRzPSJnbnV0bHMtZGV2 ZWwgZ3RrKzMtZGV2ZWwgcGNyZTItZGV2ZWwgJCh2b3B0X2lmIHZhbGEgdmFsYS1kZXZlbCkiCi1k ZXBlbmRzPSJ2dGUiCisgJCh2b3B0X2lmIGdpciB2YWxhKSIKK21ha2VkZXBlbmRzPSJnbnV0bHMt ZGV2ZWwgZ3RrKzMtZGV2ZWwgcGNyZTItZGV2ZWwgJCh2b3B0X2lmIGdpciB2YWxhLWRldmVsKSIK IHNob3J0X2Rlc2M9IlRlcm1pbmFsIHdpZGdldCB3aXRoIGltcHJvdmVkIGFjY2Vzc2liaWxpdHkg YW5kIEkxOE4gc3VwcG9ydCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciwg TEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBz L1Rlcm1pbmFsL1ZURSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS92dGUvJHt2ZXJzaW9uJS4q fS92dGUtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mZWI3NmUxMTgxYTM1N2Q4NjExMmQ0 NDdhMDhkMTI3ZTIwODE0MzhkZjc2ZWNlODMyNDNiMTg2MDlkZDk4MjJhCitjaGVja3N1bT1kOTlk NzBjYTEzZTFhMTNjNzI5ZGUyMTk4NDM0YjcxYTgzOWExODA4ZDgxYTBiMWVhOGNlYjAyMmQ2MTll NDg3CiAKICMgU3VwcHJlc3Mgd2FybmluZ3MgYXMgZXJyb3JzIGZvciBOVUxMIGZvcm1hdCBzdHJp bmdzIChtdXNsIGxpYmMpCiBDWFhGTEFHUz0iLVduby1lcnJvcj1mb3JtYXQ9IgogCiAjIFBhY2th Z2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1idWlsZF9vcHRpb25z X2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVpbGRfb3B0aW9uc19k ZWZhdWx0PSJnaXIiCiAKIHByZV9idWlsZCgpIHsKIAlleHBvcnQgR0lSX0VYVFJBX0xJQlNfUEFU SD0iJHt3cmtzcmN9L3NyYy8ubGlicyIKQEAgLTM4LDggKzM3LDYgQEAgdnRlMy1kZXZlbF9wYWNr YWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dp ciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1 aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQog CX0KCkZyb20gOWEwOTg4YjY1ZjA5ZjdkZjI2NTg1NTllNTA4ZmI4ZmYxNzg2YzQxZiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDM1LzgzXSBnbm9tZS10ZXJtaW5hbDogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9n bm9tZS10ZXJtaW5hbC90ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS10 ZXJtaW5hbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKaW5kZXgg YmYzZDViY2RkNDIuLjkyNjZmNDNhNjFlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXRlcm1p bmFsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKQEAgLTEs MTEgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXRlcm1pbmFsJwogcGtnbmFt ZT1nbm9tZS10ZXJtaW5hbAotdmVyc2lvbj0zLjM2LjEuMQordmVyc2lvbj0zLjM3LjkwCiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNh YmxlLXN0YXRpYyAtLXdpdGgtbmF1dGlsdXMtZXh0ZW5zaW9uIgogaG9zdG1ha2VkZXBlbmRzPSJh cHBkYXRhLXRvb2xzIGdsaWItZGV2ZWwgaW50bHRvb2wgaXRzdG9vbAotIHBrZy1jb25maWciCisg cGtnLWNvbmZpZyBkb2Nib29rLXhzbCIKIG1ha2VkZXBlbmRzPSJkY29uZi1kZXZlbCBnbm9tZS1z aGVsbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsCiAgbmF1dGlsdXMtZGV2ZWwgdnRl My1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyIKQEAgLTEzLDggKzEzLDggQEAg c2hvcnRfZGVzYz0iR05PTUUgdGVybWluYWwgZW11bGF0b3IgYXBwbGljYXRpb24iCiBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciwgR0ZETC0xLjMtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL0FwcHMvVGVybWluYWwiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb246MDo0fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZjNk NzA4YTFlNzZkNzdjMWM4NWIxMjZmNmUwMDMyMjBhMTVkNGE0NmE1MGZkODA3MGUxYTNhYWJlNjc4 YTM3NgorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09ZDZkYTBmNDk5MTM0NWQ0N2Q3 MzBmOWNhYWRmNDZlOGU0MTA1OTcwMTdlNmM2MTQ3NWU5MmY3YzIzYWQ5YzJhNAogbGliMzJkaXNh YmxlZD15ZXMKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCgpGcm9tIGMyOGNkYzIwM2U3 MzRhMzgyMTViMjc5OTVkNTJjODU5MWQ5YWQ5ZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNi84M10gZ25vbWUtZ2V0dGlu Zy1zdGFydGVkLWRvY3M6IHVwZGF0ZSB0byAzLjM2LjIKCi0tLQogc3JjcGtncy9nbm9tZS1nZXR0 aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWdl dHRpbmctc3RhcnRlZC1kb2NzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0 ZWQtZG9jcy90ZW1wbGF0ZQppbmRleCA1YmVjOTM0OTBiYS4uYmVkOWI2OTYxNjIgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzJwogcGtnbmFt ZT1nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcwotdmVyc2lvbj0zLjM0LjAKK3ZlcnNpb249My4z Ni4yCiByZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUK QEAgLTExLDQgKzExLDQgQEAgbGljZW5zZT0iQ0MtQlktU0EtMy4wIgogaG9tZXBhZ2U9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcyIKICNj aGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0 YXJ0ZWQtZG9jcy9yYXcvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtw a2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT1mNzBjZTJjYTIzYWQ3ODYyMTVmM2M5MmVjODU3ODNlM2FhYmVkMDdlNGY3ODcwMGZhMjdm OWIyY2Y3NmUwM2RiCitjaGVja3N1bT0wNDk0Yjg5MTNhOTQ2YjY0NTA1MzZlMTIwYzE1NGFiZDI5 MjM4ZWJiYTJmNTI3MzQ1OTJiMWY2NDVlNTIxZGM2CgpGcm9tIGFlOGE4ZjdhM2NjOGUyMzhhZTEx NDNmZTI0ZmI2MDBhYzc1NmNiNGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNy84M10gZ25vbWUtdXNlci1kb2NzOiB1cGRh dGUgdG8gMy4zNi4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlIHwgNCAr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9t ZS11c2VyLWRvY3MvdGVtcGxhdGUKaW5kZXggNGNiNTUzOTZlMzcuLjJlOGFmZTlmOTNkIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLXVzZXItZG9jcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLXVzZXItZG9jcycKIHBrZ25hbWU9Z25vbWUtdXNlci1kb2NzCi12ZXJzaW9uPTMu MzQuMAordmVyc2lvbj0zLjM2LjIKIHJldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTMsNCArMTMsNCBAQCBsaWNlbnNlPSJDQy1CWS0zLjAiCiBo b21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL0dOT01FL2dub21lLXVzZXItZG9jcyIKICNjaGFu Z2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9tZS11c2Vy LWRvY3MvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04Zjk5 MDdmZjE1ZmZmOTdkYTc1ZWNlNjQ1Y2M4Njc2NjcwM2FjNTRkNzE2ZDI1NTYzYmE2N2ZmZWQxYWYy NGVkCitjaGVja3N1bT0xOThmZTRjODM2Nzc1YTVkYzI1NDNhNmE1MjBkZmIwYWM1YmYyOTJjZGNi MzU4YTU3Yzg2ZjM1ZjcwNWU5OTU4CgpGcm9tIDg0OWI5Mjg3Njc4MzQ1NzA3NmU2N2Q3ZThlOWU2 YzU2NjUyMmM5NzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAzOC84M10gZ25vbWUtZXB1Yi10aHVtYm5haWxlcjogdXBkYXRl IHRvIDEuNgoKLS0tCiBzcmNwa2dzL2dub21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlCmluZGV4IGIxNmU3MDU0NzVmLi5j NmUxYzAyYjlkMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWVwdWItdGh1bWJuYWlsZXIn CiBwa2duYW1lPWdub21lLWVwdWItdGh1bWJuYWlsZXIKLXZlcnNpb249MS41Cit2ZXJzaW9uPTEu NgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRz PSJwa2ctY29uZmlnIgpAQCAtMTAsNCArMTAsNCBAQCBtYWludGFpbmVyPSJBbGlmIFJhY2htYXdh ZGkgPGFyY2hAc3Vib3NpdG8uY29tPiIKIGxpY2Vuc2U9IkdQTC0zIgogaG9tZXBhZ2U9Imh0dHBz Oi8vZ2l0Lmdub21lLm9yZy9icm93c2UvZ25vbWUtZXB1Yi10aHVtYm5haWxlciIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTMwODIxMGY1ODAwMjE5ZjY0Y2FlNDgyOGU1OWJiOGU2ZTRj NTNiODg4MDQ4Y2Y0ODcyMjFhZWI0MzM3ZDc5MWEKK2NoZWNrc3VtPWI1MDI0MjBkOWIwMmVhMGIw ZmM3OTg2ZWY1YTA5MWExMmIyMjg2YmUxNGZlZDllNDc1OTRmZTlmYTBjNTg5OGUKCkZyb20gYzBm NTlhYzg5NGY4OTdlOWI2YzM2YmZlMzc1ZWY4OGE0ZmRhMzA1YSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDM5LzgzXSBnbm9t ZS1ib29rczogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVt cGxhdGUKaW5kZXggMTE0YjllMDM0YzIuLjFkNDk3NGZlMTgzIDEwMDY0NAotLS0gYS9zcmNwa2dz L2dub21lLWJvb2tzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1ib29rcycKIHBrZ25h bWU9Z25vbWUtYm9va3MKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBi dWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgdmFsYSBnbGliLWRldmVsIGxpYnJzdmcgZG9jYm9vay14c2wgbGlieHNsdAoKRnJv bSA1OGYyY2I4YWY3ZTBhMzE2ZDNiNjc0NTRiMDY4MDc5ZTU4YWMzNDFkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDAvODNd IGdub21lLWNoYXJhY3RlcnM6IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3Rl bXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlCmluZGV4IDg5ODY4ZjRiYzA0Li5hYzI2NGU1 MWE2YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2dub21lLWNoYXJhY3RlcnMnCiBwa2duYW1lPWdub21lLWNoYXJhY3Rl cnMKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1t ZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2pzIGds aWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIgoKRnJvbSBhZDI3ZDUxOTNiMzNmYWI0NjY4Mjc0 NDU2NWU4ZTk1OWMzYjIxZTMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0 ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDEvODNdIGdub21lLWRvY3VtZW50czogYnVtcAoK LS0tCiBzcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxh dGUKaW5kZXggOTdiNTNkNjM1ZDcuLjdlNDViODI1ZTcxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2du b21lLWRvY3VtZW50cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWRvY3VtZW50 cycKIHBrZ25hbWU9Z25vbWUtZG9jdW1lbnRzCiB2ZXJzaW9uPTMuMzQuMAotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1h a2VkZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0IGl0c3Rvb2wgcGtnLWNvbmZpZyBnbGliLWRl dmVsIGxpYnhzbHQgZ2RrLXBpeGJ1ZgoKRnJvbSA1MTYwNzI5ZWYyMTA3OWI0MWI4YWY2YzZiZjkz NWRlNjJmNjlhZTIyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggNDIvODNdIGdub21lLWZvbnQtdmlld2VyOiBidW1wCgotLS0K IHNyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLWZvbnQtdmlld2VyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mb250LXZpZXdlci90ZW1w bGF0ZQppbmRleCA2ZDAzNTM2NmQ0NC4uZjc0ZmNiY2IwMDAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1mb250LXZpZXdl ci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWZv bnQtdmlld2VyJwogcGtnbmFtZT1nbm9tZS1mb250LXZpZXdlcgogdmVyc2lvbj0zLjM0LjAKLXJl dmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJmb250Y29uZmlnLWRldmVsIGZy ZWV0eXBlLWRldmVsIGdsaWItZGV2ZWwgZ3RrKzMtZGV2ZWwKCkZyb20gNWJiZWU5MDk2YTcxODhj ZTVmZDE4YTdkM2Q2MDJiNGFlNDg1ZGI5NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDQzLzgzXSB0b3RlbTogYnVtcCwgZHJv cCB2YWxhIG9wdGlvbgoKLS0tCiBzcmNwa2dzL3RvdGVtL3RlbXBsYXRlIHwgMTQgKysrKysrKysr LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy90b3RlbS90ZW1wbGF0ZSBiL3NyY3BrZ3MvdG90ZW0vdGVtcGxh dGUKaW5kZXggODE1MjJiMzE0ODguLmE4Y2ZiMDAwMWE0IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Rv dGVtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdG90ZW0vdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTQg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RvdGVtJwogcGtnbmFtZT10b3RlbQogdmVyc2lvbj0z LjM0LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9o ZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZS1weXRob249bm8gLURlbmFibGUt bmF1dGlsdXM9eWVzCiAgLURlbmFibGUtaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHllcyBu bykKLSAtRGVuYWJsZS12YWxhPSQodm9wdF9pZiB2YWxhIHllcyBubykiCisgLURlbmFibGUtdmFs YT0kKHZvcHRfaWYgZ2lyIHllcyBubykiCiBob3N0bWFrZWRlcGVuZHM9Imdub21lLWRvYy11dGls cyBpbnRsdG9vbCBpdHN0b29sIHBrZy1jb25maWcKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSBnc3Ry ZWFtZXIxIGdzdC1wbHVnaW5zLWJhc2UxIGdzdC1wbHVnaW5zLWdvb2QxCisgJCh2b3B0X2lmIGdp ciB2YWxhKSBnc3RyZWFtZXIxIGdzdC1wbHVnaW5zLWJhc2UxIGdzdC1wbHVnaW5zLWdvb2QxCiAg Z2xpYi1kZXZlbCIKICMgWFhYIG1pc3NpbmcgbGlyYyBwbHVnaW4uCiBtYWtlZGVwZW5kcz0iY2x1 dHRlci1nc3QzLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsIGRidXMtZ2xpYi1kZXZlbApAQCAtMjcs MTAgKzI3LDE0IEBAIGNoZWNrc3VtPTZiZjg5YWIwOTZkZmM1NjRmMjYwOTc2ZTQ4NDE2NWYwOWJk ODg2NDM0ZDE4NDQxMGQyZjk0NGJmYmE2MTFhMDkKICMgWFhYIHJlZW5hYmxlIHB5dGhvbiBwbHVn aW4gaWYgcHlsaW50IHBrZyBleGlzdHMuCiAjcHljb21waWxlX2RpcnM9InVzci9saWIvdG90ZW0v cGx1Z2lucyIKIAorZG9fY2hlY2soKSB7CisJOgorfQorCiBkaXNhYmxlX3BhcmFsbGVsX2J1aWxk PXllcwogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0i Z2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9Imdp ciIKIAogbGlidG90ZW1fcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gcnVudGltZSBsaWJy YXJ5IgoKRnJvbSBhZWZiNzMzMjI0NzAzOGMzNGIyMDFhZmZlY2ViMTFhMzg5NjQwODg2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggNDQvODNdIGdub21lLXNjcmVlbnNhdmVyOiBidW1wICsgZml4IGJ1aWxkCgotLS0KIHNyY3Br Z3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRjaCB8IDEyICsrKysrKysrKysr Kwogc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci90ZW1wbGF0ZSAgICAgICAgICAgIHwgIDIgKy0K IDIgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5w YXRjaCBiL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmRjZGJlN2RkN2UKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gK QEAgLTAsMCArMSwxMiBAQAorLS0tIHNyYy9ncy1tYW5hZ2VyLmMKKysrKyBzcmMvZ3MtbWFuYWdl ci5jCitAQCAtODIwLDggKzgyMCw3IEBAIGFwcGx5X2JhY2tncm91bmRfdG9fd2luZG93IChHU01h bmFnZXIgKm1hbmFnZXIsCisgICAgICAgICBzdXJmYWNlID0gZ25vbWVfYmdfY3JlYXRlX3N1cmZh Y2UgKG1hbmFnZXItPnByaXYtPmJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnZGtfd2luZG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB3aWR0aCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaGVpZ2h0LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGQUxTRSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl aWdodCk7CisgICAgICAgICBnc193aW5kb3dfc2V0X2JhY2tncm91bmRfc3VyZmFjZSAod2luZG93 LCBzdXJmYWNlKTsKKyAgICAgICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveSAoc3VyZmFjZSk7Cisg fQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUKaW5kZXggMzYzZmNmMTJlMTAuLmMzYTcwY2Zl ZjdjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zY3JlZW5zYXZlcicKIHBrZ25hbWU9Z25vbWUtc2NyZWVu c2F2ZXIKIHZlcnNpb249My42LjEKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxl PWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1jb21waWxlLXdhcm5pbmdz PW1pbmltdW0iCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b21ha2UgaW50bHRvb2wg Z2xpYi1kZXZlbCIKCkZyb20gYzg5YjM3N2MyZTM2ZmQ4OWUwMTRhNGUwMmVmYmYxNzljZWE3OTM1 ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVj dDogW1BBVENIIDQ1LzgzXSBnbm9tZS1jbG9ja3M6IHVwZGF0ZSB0byAzLjM3LjkxCgotLS0KIHNy Y3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1jbG9ja3MvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0ZQppbmRleCAz ZTA0OWI0MmZiMS4uMGU0N2RiYWRmZTEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY2xvY2tz L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlCkBAIC0xLDEyICsx LDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1jbG9ja3MnCiBwa2duYW1lPWdub21l LWNsb2NrcwotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNy45MQogcmV2aXNpb249MQogYnVp bGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGludGx0b29sIGl0c3Rvb2wgZ2xpYi1kZXZlbCB2YWxhIgogbWFrZWRlcGVuZHM9Imds aWItZGV2ZWwgdmFsYS1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsCi0gbGliZ3dlYXRoZXItZGV2 ZWwgbGliaGFuZHktZGV2ZWwgbGlibm90aWZ5LWRldmVsIGdzb3VuZC1kZXZlbAorIGxpYmd3ZWF0 aGVyLWRldmVsIGxpYmhhbmR5MS1kZXZlbCBsaWJub3RpZnktZGV2ZWwgZ3NvdW5kLWRldmVsCiAg Z2VvY29kZS1nbGliLWRldmVsIGRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUK ICBnZW9jbHVlMi1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWlj b24tdGhlbWUiCkBAIC0xNSw0ICsxNSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9DbG9ja3MiCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT00Yzk3OGIwYzdmN2I5ZGFlYmQyNzJkMDE3NWY4YTU0NDE1ZTIwNzhmMTM0 ZjQ4YWRkNWNmMjQzNjJlZWY0OWM2CitjaGVja3N1bT0zNGRlODI0YjNmZWU2OGM1NTU0YjY5MDRi MDJiY2RjN2U0YjkyMWY5YThlOTFhNzgwZjQzZTI4OThkYmZiMzZjCgpGcm9tIGI2NzI5YTI1ZGM4 NWM1NGVjNDNlODQ5YzY1YmU3OTgzZmQwMmUxMDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0Ni84M10gZ25vbWUtY29udGFj dHM6IHVwZGF0ZSB0byAzLjM3LjIKCi0tLQogc3JjcGtncy9nbm9tZS1jb250YWN0cy90ZW1wbGF0 ZSB8IDEzICsrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jb250YWN0cy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUKaW5kZXggMmE4MjEzYTcyNDAuLmFh NGVmOTQwMTM2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNvbnRhY3RzL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUKQEAgLTEsMTYgKzEsMTUgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNvbnRhY3RzJwogcGtnbmFtZT1nbm9tZS1jb250YWN0 cwotdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTIKLXdya3NyYz0iZ25vbWUtY29udGFjdHMtJHt2 ZXJzaW9uJS4qfSIKK3ZlcnNpb249My4zNy4yCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNv bgotaG9zdG1ha2VkZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0IGdsaWItZGV2ZWwgbGlieHNs dCBwa2ctY29uZmlnIHZhbGEiCitob3N0bWFrZWRlcGVuZHM9ImRvY2Jvb2steHNsIGZvbGtzLWRl dmVsIGdldHRleHQgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSIKIG1ha2VkZXBl bmRzPSJjaGVlc2UtZGV2ZWwgZm9sa3MtZGV2ZWwgZ2VvY29kZS1nbGliLWRldmVsIGdub21lLWRl c2t0b3AtZGV2ZWwKLSBsaWJjaGFtcGxhaW4tZGV2ZWwgbGlibm90aWZ5LWRldmVsIHZhbGEtZGV2 ZWwgbGliaGFuZHktZGV2ZWwiCisgbGliY2hhbXBsYWluLWRldmVsIGxpYm5vdGlmeS1kZXZlbCB2 YWxhLWRldmVsIGxpYmhhbmR5MS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyIK IHNob3J0X2Rlc2M9IkdOT01FIGNvbnRhY3RzIG1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQ29udGFjdHMiCi1kaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9uJS4qfS50YXIueHoiCi1jaGVja3N1bT05OTYwMmVjOGQ2NjBjMWYzYzkyY2FlNjM1NmY2 NGY3MmZiNmRiNThlNTViY2UyN2E1OTkzMzBiZjdiNjIyZjEyCitkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCitjaGVja3N1bT0xZDM0NjlkNWU5MGYyM2QxMjlkMTI3NmIyZjliODg1NDU5ZjNkN2I0MzA1 NGNkMDk3NTliODVhYzc2YzkxOGI0CgpGcm9tIGM5ZWNhMjI0YjliZjM0M2E1ZTUxNmYwZWRjZTU0 YmZiNjEyMGFhYzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCA0Ny84M10gbGliZGF6emxlOiB1cGRhdGUgdG8gMy4zNy4xCgot LS0KIHNyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlIHwgMjIgKysrKysrKysrKysrKy0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmRhenpsZS90 ZW1wbGF0ZQppbmRleCA1YWMwOWZlZWZjOS4uZmJhYTQxMTRiZGMgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvbGliZGF6emxlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlCkBA IC0xLDEyICsxLDEzIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJkYXp6bGUnCiBwa2duYW1l PWxpYmRhenpsZQotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNy4xCiByZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURl bmFibGVfZ3RrX2RvYz1mYWxzZSAtRHdpdGhfdmFwaT0kKHZvcHRfaWYgdmFsYSB0cnVlIGZhbHNl KQotIC1Ed2l0aF9pbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCi1ob3N0 bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZpZyAkKHZvcHRfaWYgdmFsYSAndmFsYScp IgorY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlX2d0a19kb2M9ZmFsc2UKKyAkKHZvcHRfYm9vbCBn aXIgd2l0aF92YXBpKQorICQodm9wdF9ib29sIGdpciB3aXRoX2ludHJvc3BlY3Rpb24pIgoraG9z dG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWcgJCh2b3B0X2lmIGdpciB2YWxhKSIK IG1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIgogc2hvcnRfZGVzYz0iTGli cmFyeSB0byBkZWxpZ2h0IHlvdXIgdXNlcnMgd2l0aCBmYW5jeSBmZWF0dXJlcyIKIG1haW50YWlu ZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCkBAIC0xNCwxMCArMTUsMTUg QEAgbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvbGliZGF6emxlIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1 c2VyY29udGVudC5jb20vR05PTUUvbGliZGF6emxlL2xpYmRhenpsZS0zLTMyL05FV1MiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vbGliZGF6emxlLyR7dmVyc2lvbiUuKn0vbGliZGF6emxlLSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODJiMzFiYmY1NTBmYzYyOTcwYzc4YmY3ZjlkNTVl NWZhZTViOGVhMTNiMjRmZTJkMTNjOGM2MDM5NDA5ZDk1OAorY2hlY2tzdW09ZmRmMGUzOTgwNjk4 NDhiOTBmZGRmMzE4NGI2Mzg0NTkyYTNhZWFiYjhiMjQzMzE0MGUwM2IwMTY0MjY2MjUwZgogCi1i dWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEi CitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKKworIyBu ZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIGxpYmRhenpsZS1kZXZlbF9wYWNrYWdlKCkg ewogCWRlcGVuZHM9IiR7c291cmNlcGtnfS0ke3ZlcnNpb259XyR7cmV2aXNpb259IGd0ayszLWRl dmVsIgpAQCAtMjgsOCArMzQsNiBAQCBsaWJkYXp6bGUtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1v dmUgInVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJ CXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFs YSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDc0MDdj Mzk5NTEwMGQzMzZlN2Q1YjI0ZTA5MjlmMWE0NzY4NTJlNmYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0OC84M10gZXBpcGhh bnk6IHVwZGF0ZSB0byAzLjM3LjkxCgotLS0KIHNyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUgfCA4 ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUgYi9zcmNwa2dzL2VwaXBo YW55L3RlbXBsYXRlCmluZGV4IDVkNmFjNmE2MzdkLi4xMTIzZTU4YTU2ZCAxMDA2NDQKLS0tIGEv c3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2VwaXBoYW55L3RlbXBsYXRl CkBAIC0xLDE5ICsxLDE5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdlcGlwaGFueScKIHBrZ25h bWU9ZXBpcGhhbnkKLXZlcnNpb249My4zNi4yCit2ZXJzaW9uPTMuMzcuOTEKIHJldmlzaW9uPTEK IGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSIt RGRpc3RyaWJ1dG9yX25hbWU9Vm9pZExpbnV4IC1EdW5pdF90ZXN0cz1kaXNhYmxlZCIKIGhvc3Rt YWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKIG1ha2Vk ZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1kZXZlbCBhdmFoaS1nbGliLWxpYnMtZGV2ZWwgZ2NyLWRl dmVsCi0gZ25vbWUtZGVza3RvcC1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGliZGF6emxlLWRldmVs IGxpYmhhbmR5LWRldmVsCisgZ25vbWUtZGVza3RvcC1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGli ZGF6emxlLWRldmVsIGxpYmhhbmR5MS1kZXZlbAogIGxpYm5vdGlmeS1kZXZlbCBsaWJzZWNyZXQt ZGV2ZWwgbGlic291cC1nbm9tZS1kZXZlbCBsaWJ3bmNrLWRldmVsIGxpYnhzbHQtZGV2ZWwKLSBu ZXR0bGUtZGV2ZWwgbnNzLWRldmVsIHdlYmtpdDJndGstZGV2ZWwiCisgbmV0dGxlLWRldmVsIG5z cy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIGxpYnBvcnRhbC1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0 b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUgaXNvLWNvZGVzIHdlYmtpdDJndGsiCiBz aG9ydF9kZXNjPSJJbnR1aXRpdmUgR05PTUUgd2ViIGJyb3dzZXIiCiBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvV2ViIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzJlNjc2YWEwZmUyMTE4MDlhNWU3ZThhN2U0NjFkMTgy ODkwZjI1M2M1M2Y0NjEwZjI2MTAwOTRiNmZiZmI1ZQorY2hlY2tzdW09ZGZjNWRiOTgxY2IzOTJk OGYwOTZkNTRkMjhiYzFiMWMxODlhNGI4Yjc1MzRkODcwNTRmMjAyODQzZjAwYmQ4MwoKRnJvbSA2 NDdlMmFjMGZkNzAzNzFhMjA2ODA3Nzg3MmUzZjMzZWZlNzc1NmI3IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDkvODNdIGdu b21lLXBob3RvczogdXBkYXRlIHRvIDMuMzcuOTEuMQoKLS0tCiBzcmNwa2dzL2dub21lLXBob3Rv cy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRl IGIvc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUKaW5kZXggMWVkOGI5ODYxZWMuLjNhNzJk OWE1M2JlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2dub21lLXBob3RvcycKIHBrZ25hbWU9Z25vbWUtcGhvdG9zCi12ZXJzaW9uPTMu MzQuMgordmVyc2lvbj0zLjM3LjkxLjEKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgog YnVpbGRfc3R5bGU9bWVzb24KQEAgLTE1LDggKzE1LDggQEAgc2hvcnRfZGVzYz0iQWNjZXNzLCBv cmdhbml6ZSwgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FIgogbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1Bob3RvcyIKLWRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS9nbm9tZS1waG90b3MvJHt2ZXJzaW9uJS4qfS9nbm9tZS1waG90 b3MtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zYzU5Yzc2ZWYyODYxOGVjMDU1YTE3OTlk MTA0MDI4N2I5MGEwYjAyMWZlYjBhMDJiMWVhYzI4ZTljMmViNDFhCitkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vZ25vbWUtcGhvdG9zLyR7dmVyc2lvbiUuKi4qfS9nbm9tZS1waG90b3MtJHt2ZXJz aW9ufS50YXIueHoiCitjaGVja3N1bT0yNzhkYTIzMjM0ZTI3YzU0MzAyMGRhZTk0M2FkNTIwODZi OWVjYWE1ZWUzYWFkMGIwMzFiODZlZTA0ZDM5NGFhCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1 aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSA0ZDNiOGFhMzM5YjFiNzFiYmY1NGEzZTI4 ODJkYmY3MGU1MzEzOWRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTAvODNdIGVvZzogdXBkYXRlIHRvIDMuMzcuOTAKCi0t LQogc3JjcGtncy9lb2cvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VvZy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZW9nL3RlbXBsYXRlCmluZGV4IGU0Y2FjYjcwNzllLi45MWVlNTRlZGM0 MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9lb2cvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9lb2cvdGVt cGxhdGUKQEAgLTEsMjAgKzEsMjAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2VvZycKIHBrZ25h bWU9ZW9nCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWls ZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURpbnRy b3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iZXhlbXBp LWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgbGliZXhpZi1kZXZlbCBsaWJwZWFzLWRldmVsCi0g bGlicnN2Zy1kZXZlbCBsY21zMi1kZXZlbCIKKyBsaWJyc3ZnLWRldmVsIGxjbXMyLWRldmVsIGxp YnBvcnRhbC1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24t dGhlbWUgc2hhcmVkLW1pbWUtaW5mbyIKIHNob3J0X2Rlc2M9IkV5ZSBvZiBHTk9NRSBncmFwaGlj cyB2aWV3ZXIgcHJvZ3JhbSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d2lraS5nbm9tZS5vcmcvQXBwcy9FeWVPZkdub21lIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 L2VvZy8ke3ZlcnNpb24lLip9L2VvZy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU0NTRh MWE3YWE1ZTNhMzMyMWVhYjAxMTY3NzgxMTBlNWE3YTdiNjNiY2YyMTY3NmVkYTFhN2JlMTg3Yzlj OTUKK2NoZWNrc3VtPTRhOGE2NzYzMzgwNTI5MmFkMWFmNTQ5ZTMxOWFhM2Y3YjZkNzc2ZjMzZGFj MjBmZDE5NWNlNDZiYmRkMDI2NmEKIHNobGliX3Byb3ZpZGVzPSJsaWJlb2cuc28iCiBsaWIzMmRp c2FibGVkPXllcwogCgpGcm9tIGM2ZjA4MmY1NDNiODJhYjNiZjc2N2Y0OGJhZWI2MTM4MjVlZjQ5 OGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCA1MS84M10gZXZpbmNlOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dz L2V2aW5jZS90ZW1wbGF0ZSB8IDE0ICsrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZpbmNl L3RlbXBsYXRlIGIvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUKaW5kZXggNDAzNWYxNWM2OTAuLmUx N2YyZDg5MGY2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2V2aW5jZS90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnZXZpbmNlJwogcGtnbmFtZT1ldmluY2UKLXZlcnNpb249My4zNi43Cit2ZXJzaW9uPTMuMzcu OTAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgotYnVpbGRfc3R5bGU9Z251LWNvbmZp Z3VyZQotY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pIC0t ZGlzYWJsZS1zY2hlbWFzLWNvbXBpbGUKLSAtLWVuYWJsZS1jb21pY3MgLS1kaXNhYmxlLXN0YXRp YyAtLWVuYWJsZS14cHMgLS1kaXNhYmxlLXQxbGliCi0gLS1kaXNhYmxlLWJyb3dzZXItcGx1Z2lu IC0tZW5hYmxlLXBzIgotaG9zdG1ha2VkZXBlbmRzPSJhZHdhaXRhLWljb24tdGhlbWUgZ2V0dGV4 dCBnbGliLWRldmVsIGdub21lLWRvYy11dGlscworYnVpbGRfc3R5bGU9bWVzb24KK2NvbmZpZ3Vy ZV9hcmdzPSIkKHZvcHRfYm9vbCBnaXIgaW50cm9zcGVjdGlvbikKKyAtRGNvbWljcz1lbmFibGVk IC1EcHM9ZW5hYmxlZCAtRHhwcz1lbmFibGVkIC1EZHZpPWRpc2FibGVkCisgLUR0MWxpYj1kaXNh YmxlZCAtRGJyb3dzZXJfcGx1Z2luPWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJhZHdhaXRhLWlj b24tdGhlbWUgZ2V0dGV4dCBndGstZG9jIGdsaWItZGV2ZWwgZ25vbWUtZG9jLXV0aWxzCiAgaXRz dG9vbCBwa2ctY29uZmlnIHBlcmwtWE1MLVBhcnNlciBhcHBzdHJlYW0tZ2xpYiIKICMgWFhYIG1p c3NpbmcgcGFja2FnZXMgZm9yIERWSSBiYWNrZW5kLgogbWFrZWRlcGVuZHM9ImFkd2FpdGEtaWNv bi10aGVtZSBkanZ1bGlicmUtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJTTS1kZXZlbApA QCAtMTksNyArMTksNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL0FwcHMvRXZpbmNlIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtn bmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tz dW09NjVkNjFhNDIzZTNmYmJlMDcwMDFmNjVlODc0MjJkZmI3ZDJlNDJiOWVkZjBjYTZhMWQ0Mjdh ZjlhMDRiOGYzMgorY2hlY2tzdW09MmE4NzgwNDNiOTIxMGFkN2FiNzA4MDVmODNlNDAwNjU0ZTIx NGUxZjVlZjk2MDEwMGFkZjkzODgzMmQwMmVhZgogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWls ZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gMGQ2OGQxNjA0NzdiZmI2OGUxYTZhMTRkMGQx YzEwNDNlNDc1NmFiYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDUyLzgzXSBmaWxlLXJvbGxlcjogdXBkYXRlIHRvIDMuMzcu OTAKCi0tLQogc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2ZpbGUtcm9sbGVyL3RlbXBsYXRlIGIvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZQpp bmRleCAwMzYyMmEyMjMxMy4uMTZlZTVlYWRlMWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmlsZS1y b2xsZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZQpAQCAtMSw2 ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2ZpbGUtcm9sbGVyJwogcGtnbmFtZT1maWxl LXJvbGxlcgotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rv b2wgcGtnLWNvbmZpZyIKQEAgLTEyLDYgKzEyLDYgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0ZpbGVSb2xsZXIiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1iOTE0NGRlOGY1MzZmNTgzZWMyOWQ3MDNjMmMxNzBiZjJk MDBjNmMxNjZjZDVlM2Y3ZWZhYmRhNTUxZjEwNDc4CitjaGVja3N1bT1kNzg0YjliMzE1YmE5Mzg2 MjM1ZTZkZTZlMjYyYWVkMTRhYzg5YmMwZTZlZjNhODQ4ZGQzYjBmMjkzNzNjM2ExCiAKIENGTEFH Uz0iLWZjb21tb24iCgpGcm9tIGU2YzMxMjdjYzk4Y2VhOGIwMjkwMDhhNDBjZDdiNTNjNDVmZjk5 YTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCA1My84M10gZ25vbWUtY2FsZW5kYXI6IGJ1bXAKCltjaSBza2lwXQotLS0KIHNy Y3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNh bGVuZGFyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZQppbmRleCA5 YzkxYzhiNWY0ZC4uMzc0ZjQ1NTZmZjggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY2FsZW5k YXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNhbGVuZGFyJwogcGtnbmFtZT1n bm9tZS1jYWxlbmRhcgogdmVyc2lvbj0zLjM2LjIKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1 aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBwa2ct Y29uZmlnICQodm9wdF9pZiBnaXIgJ2dvYmplY3QtaW50cm9zcGVjdGlvbicpIgogbWFrZWRlcGVu ZHM9ImV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCBnZW9jbHVlMi1kZXZlbCBnZW9jb2RlLWds aWItZGV2ZWwKCkZyb20gM2Q4YzVlZmE4ZmRkYWVmYTc3YTE5MWZjNzRmODdlOTBiNDk0YWY2MiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMTY6NTE6NTUgKzAyMDAKU3ViamVjdDog W1BBVENIIDU0LzgzXSBnbm9tZS1tdXNpYzogdXBkYXRlIHRvIDMuMzcuMwoKW2NpIHNraXBdCi0t LQogc3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVzL3BhbmdvMTQyLnBhdGNoIHwgMjggKysrKysr KysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZSAgICAgICAgICAg ICAgIHwgIDcgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVz L3BhbmdvMTQyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVz L3BhbmdvMTQyLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVzL3BhbmdvMTQyLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYTk4Y2Q5MGIyYgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtbXVzaWMvcGF0Y2hlcy9wYW5nbzE0Mi5w YXRjaApAQCAtMCwwICsxLDI4IEBACitGcm9tIGRjMGY1MWI2M2U0YTdiMDhlMTFlOGVkMDE2NDg0 ZWE2ZjViMjA1NzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMTY6NTA6Mjgg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gbWVzb246IHJlbW92ZSBwYW5nbyBkZXBlbmRlbmN5CisK K1RoaXMgd2FzIGFkZGVkIGJlY2F1c2Ugb2YgYSBmZWF0dXJlIG1pc3NpbmcgaW4gcGFuZ28gb2xk ZXIgdGhhbgorMS40NCwgYnV0IHdlIGhhdmUgdGhpcyBiYWNrcG9ydGVkLCBzbyB3ZSdyZSBva2F5 LgorCitodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvcHlnb2JqZWN0Ly0vaXNzdWVzLzMx MgorLS0tCisgbWVzb24uYnVpbGQgfCAxIC0KKyAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigt KQorCitkaWZmIC0tZ2l0IG1lc29uLmJ1aWxkIG1lc29uLmJ1aWxkCitpbmRleCAwZWY1YjliLi41 MmI4N2E2IDEwMDY0NAorLS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BAIC00Myw3 ICs0Myw2IEBAIGRlcGVuZGVuY3koJ2xpYmRhenpsZS0xLjAnLCB2ZXJzaW9uOiAnPj0gMy4yOC4w JykKKyBkZXBlbmRlbmN5KCdsaWJtZWRpYWFydC0yLjAnLCB2ZXJzaW9uOiAnPj0gMS45LjEnKQor IGRlcGVuZGVuY3koJ2xpYnNvdXAtMi40JykKKyBkZXBlbmRlbmN5KCd0cmFja2VyLXNwYXJxbC0y LjAnLCB2ZXJzaW9uOiAnPj0gMi4zLjAnKQorLWRlcGVuZGVuY3koJ3BhbmdvJywgdmVyc2lvbjog Jz49IDEuNDQuMCcpCisgZGVwZW5kZW5jeSgncHlnb2JqZWN0LTMuMCcsIHZlcnNpb246ICc+PSAz LjM2LjEnKQorIGRlcGVuZGVuY3koJ3B5M2NhaXJvJywgdmVyc2lvbjogJz49IDEuMTQuMCcpCisg ZGVwZW5kZW5jeSgnZ3JpbG8tMC4zJywgdmVyc2lvbjogJz49IDAuMy4xMicsIGZhbGxiYWNrOiBb J2dyaWxvJywgJ2xpYmdybF9kZXAnXSkKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlCmlu ZGV4IDEyNTExNzM2NDA3Li41YjcyMzkyNzM4MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1t dXNpYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlCkBAIC0xLDYg KzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbXVzaWMnCiBwa2duYW1lPWdub21l LW11c2ljCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjMKIHJldmlzaW9uPTEKIGJ1aWxk X2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KQEAgLTksMTEgKzksMTIgQEAgbWFrZWRl cGVuZHM9Imdub21lLWRlc2t0b3AtZGV2ZWwgZ3JpbG8tZGV2ZWwgbGlibWVkaWFhcnQtZGV2ZWwK ICBweXRob24zLWdvYmplY3QtZGV2ZWwgcHl0aG9uMy1kYnVzIHRyYWNrZXItZGV2ZWwgZ25vbWUt b25saW5lLWFjY291bnRzLWRldmVsCiAgbGliZGF6emxlLWRldmVsIGdyaWxvLXBsdWdpbnMgcHl0 aG9uMy1jYWlyby1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBweXRob24zLWRi dXMgcHl0aG9uMy1nb2JqZWN0IHB5dGhvbjMtcmVxdWVzdHMKLSB0cmFja2VyIHRyYWNrZXItbWlu ZXJzIGdzdC1wbHVnaW5zLWdvb2QxIGdyaWxvLXBsdWdpbnMgbGliZGF6emxlIgorIHRyYWNrZXIg dHJhY2tlci1taW5lcnMgZ3N0LXBsdWdpbnMtZ29vZDEgZ3JpbG8tcGx1Z2lucyBsaWJkYXp6bGUK KyBsaWJtZWRpYWFydCIKIHNob3J0X2Rlc2M9IkdOT01FIG11c2ljIHBsYXlpbmcgYXBwbGljYXRp b24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvTXVzaWMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03YjgwZjYzMGQx NTgzMzQ5MzVhODc2MDI5NjU1MGNjOTFiNTBkNjA0ZmE2OGI0MDJmZTUxNjViMTUzMWVjMzMyCitj aGVja3N1bT0yNDhiYzg1ODU5NjMyNzFhNGQyZmY3ZjI0OWM5Zjc5MmFhZjBiNGRmZGUxZTk0YWJi NjhjOTE1MDEwMTVjZWJlCiBsaWIzMmRpc2FibGVkPXllcwoKRnJvbSAyNWUyNGRjNWFiZjBlZGFj YWM2NDcwYjBjYzBlNjIwZWUzMjEwNTliIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAxNCBBdWcgMjAy MCAyMzoyMjozNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTUvODNdIGdub21lLXBhbmVsOiB1cGRh dGUgdG8gMy4zNy4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgfCAyICstCiBz cmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlIHwgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxp YnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDhmM2I2MGRkNjJhLi5jMGZmNjFkMDdkYSAxMDA2NDQK LS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC01NjQsNyArNTY0LDcg QEAgbGlicGFja2FnZWtpdC1nbGliMi5zby4xOCBQYWNrYWdlS2l0LTEuMS4xMl8xCiBsaWJwc2wu c28uNSBsaWJwc2wtMC4yMC4yXzEKIGxpYnNvdXAtMi40LnNvLjEgbGlic291cC0yLjM0LjBfMQog bGlic291cC1nbm9tZS0yLjQuc28uMSBsaWJzb3VwLWdub21lLTIuMzQuMF8xCi1saWJwYW5lbC1h cHBsZXQuc28uMyBnbm9tZS1wYW5lbC0zLjMwLjBfMQorbGliZ25vbWUtcGFuZWwuc28uMCBnbm9t ZS1wYW5lbC0zLjM3LjFfMQogbGlidW5pbnVtLnNvLjUgbGlidW5pbnVtLTIuN18xCiBsaWJ1bmlx dWUtMy4wLnNvLjAgbGlidW5pcXVlLTIuOTEuNF8xCiBsaWJ3ZWJraXQyZ3RrLTQuMC5zby4zNyB3 ZWJraXQyZ3RrLTIuNi4yXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtcGFuZWwvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlCmluZGV4IDcwZjIzYjhiNTUxLi4yNGQ5 ZDJiOWViNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtcGFuZWwnCiBwa2duYW1lPWdub21lLXBhbmVsCi12ZXJzaW9uPTMuMzQu MQotcmV2aXNpb249MwordmVyc2lvbj0zLjM3LjEKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSJheF9jdl96b25laW5mb190emRpcj0vdXNyL3No YXJlL3pvbmVpbmZvIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0LWRldmVsIGdsaWItZGV2ZWwg aXRzdG9vbCBwa2ctY29uZmlnIHR6ZGF0YSBnZXR0ZXh0IgpAQCAtMTQsNyArMTQsNyBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciwgR0ZETC0xLjEtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVQYW5lbCIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWE2YmMwMjU1MjUyZWViNGI5NjRiY2JlNTVmZDc5 MDhiNjlmOTE0YzA2MmM1ZWM4ZGZmNWFjMDI2MmQyOWI5MGQKK2NoZWNrc3VtPTFkNTk4ZmQ2ODkz M2U3NjAxOGYyZmIxMTZhNzg3MWNiYzAwMzNjMWYxMDliZmJmZTA4YTFlY2I1NjA2N2QxNTIKIHBh dGNoX2FyZ3M9Ii1OcDEiCiAKIGdub21lLXBhbmVsLWRldmVsX3BhY2thZ2UoKSB7CgpGcm9tIDMw NjRiYTc4M2FiNTA3NjYxZGE4MDlmNjY0ZDQxZDI5MjcwNDQwZTcgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBG cmksIDE0IEF1ZyAyMDIwIDIzOjI0OjUxICswMjAwClN1YmplY3Q6IFtQQVRDSCA1Ni84M10gbWV0 YWNpdHk6IHVwZGF0ZSB0byAzLjM3LjEKCi0tLQogc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZSB8 IDkgKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUgYi9zcmNwa2dzL21l dGFjaXR5L3RlbXBsYXRlCmluZGV4IDVhYTIzMTQ5MmU3Li40MzA5Nzc2YmQ1NCAxMDA2NDQKLS0t IGEvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21ldGFjaXR5L3RlbXBs YXRlCkBAIC0xLDE4ICsxLDE3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXRhY2l0eScKIHBr Z25hbWU9bWV0YWNpdHkKLXJldmVydHM9IjMuMzcuMV8xIgotdmVyc2lvbj0zLjM0LjEKK3ZlcnNp b249My4zNy4xCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFr ZWRlcGVuZHM9ImdldHRleHQgZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNv bmZpZyB5ZWxwLXRvb2xzIHplbml0eSIKIG1ha2VkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1z Y2hlbWFzLWRldmVsIGd0ayszLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsCiAgbGliZ2xpYi1kZXZl bCBsaWJndG9wLWRldmVsIGxpYlNNLWRldmVsIGxpYlhjb21wb3NpdGUtZGV2ZWwgbGliWGRhbWFn ZS1kZXZlbAotIGxpYlhmaXhlcy1kZXZlbCBsaWJYaW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVyLWRl dmVsIGxpYlgxMS1kZXZlbCBwYW5nby1kZXZlbAotIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVs IFZ1bGthbi1IZWFkZXJzIHZ1bGthbi1sb2FkZXIiCisgbGliWGZpeGVzLWRldmVsIGxpYlhpbmVy YW1hLWRldmVsIGxpYlhyZW5kZXItZGV2ZWwgbGliWDExLWRldmVsIGxpYlhyZXMtZGV2ZWwKKyBw YW5nby1kZXZlbCBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbCBWdWxrYW4tSGVhZGVycyB2dWxr YW4tbG9hZGVyIgogZGVwZW5kcz0iemVuaXR5Igogc2hvcnRfZGVzYz0iV2luZG93IE1hbmFnZXIg Zm9yIHRoZSBHTk9NRSBlbnZpcm9ubWVudCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tZXRhY2l0eSIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPTMxYzdkMTA0NWMzOTBhZmIzYmY0MDU3MzViMGIyNmM0NTkxOTdj YmY0M2FmMzdjNDY5ZWI4OTE4Y2UzYTQ1M2QKK2NoZWNrc3VtPTgwZDZmM2Q5NWE0MzI4ZmIyNmQw YTY0NzFmNTc1Yjc0MmIzNmI4ZjI3MjFmOGYzYzE4MDcxOTdmYTkwMGExMjYKCkZyb20gNmRhOTg0 OTkxMjk2YzY3NmFkODVjMmQ2M2M1NDk1YWI4YTc4MjdhYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwg MTQgQXVnIDIwMjAgMjM6NDA6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDU3LzgzXSBnbm9tZS1m bGFzaGJhY2s6IHVwZGF0ZSB0byAzLjM3LjIKCkFkZGVkIFBBTSBjb25maWcgYXMgc3VnZ2VzdGVk IGJ5IG1uYWJpZC4KLS0tCiAuLi4vZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFj ay5wYW0gfCAgNiArKysrCiBzcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZSAgICAgICAg ICAgICAgfCAzNCArKysrKysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMxIGluc2Vy dGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9t ZS1mbGFzaGJhY2svZmlsZXMvZ25vbWUtZmxhc2hiYWNrLnBhbQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0gYi9zcmNwa2dzL2du b21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNzc2ZjBiMzYzMgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0KQEAgLTAsMCAr MSw2IEBACisjJVBBTS0xLjAKK2F1dGggICAgIGluY2x1ZGUgIHN5c3RlbS1hdXRoCithdXRoICAg ICBvcHRpb25hbCBwYW1fZ25vbWVfa2V5cmluZy5zbworYWNjb3VudCAgaW5jbHVkZSAgc3lzdGVt LWF1dGgKK3Bhc3N3b3JkIGluY2x1ZGUgIHN5c3RlbS1hdXRoCitzZXNzaW9uICBpbmNsdWRlICBz eXN0ZW0tYXV0aApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZQppbmRleCBkMzIxMjBjYWI2Zi4uNjhh MWE2NzRhY2YgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3RlbXBsYXRlCkBAIC0xLDIwICsxLDM2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1mbGFzaGJhY2snCiBwa2duYW1lPWdub21lLWZsYXNo YmFjawotdmVyc2lvbj0zLjM0LjIKK3ZlcnNpb249My4zNy4yCiByZXZpc2lvbj0xCiBidWlsZF9o ZWxwZXI9Z2lyCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCi1jb25maWd1cmVfYXJncz0iLS1l bmFibGUtY29tcGlsZS13YXJuaW5ncz1taW5pbXVtIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29u ZmlnIGF1dG9tYWtlIGdsaWItZGV2ZWwgZ2V0dGV4dCIKLW1ha2VkZXBlbmRzPSJndGsrMy1kZXZl bCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsCi0gbGliZ2xpYi1kZXZlbCBnZGstcGl4 YnVmLWRldmVsIHVwb3dlci1kZXZlbCBpYnVzLWRldmVsIHBvbGtpdC1kZXZlbAotIHB1bHNlYXVk aW8tZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGlieGNiLWRldmVsIGxpYlgxMS1kZXZlbCBwYW5n by1kZXZlbAotIGxpYnhrYmZpbGUtZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVsIGdub21lLWRl c2t0b3AtZGV2ZWwiCitjb25maWd1cmVfYXJncz0iLS13aXRoLWNvbXBpei1zZXNzaW9uIC0tZW5h YmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBnZXR0ZXh0IGdldHRleHQtZGV2ZWwgYXV0b21ha2UgbGlidG9vbCBnbGliLWRldmVsIgorbWFr ZWRlcGVuZHM9InBhbS1kZXZlbCBlbG9naW5kLWRldmVsIHVwb3dlci1kZXZlbCBpYnVzLWRldmVs IHBvbGtpdC1kZXZlbAorIHB1bHNlYXVkaW8tZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGlieGNi LWRldmVsIGxpYlgxMS1kZXZlbCBsaWJ4a2JmaWxlLWRldmVsCisgbGliY29tcGl6Y29uZmlnLWRl dmVsIGxpYmdsaWItZGV2ZWwgcGFuZ28tZGV2ZWwgZ3RrKzMtZGV2ZWwgZ2RrLXBpeGJ1Zi1kZXZl bAorIGdkbS1kZXZlbCBnbm9tZS1ibHVldG9vdGgtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBn bm9tZS1wYW5lbC1kZXZlbAorIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwiCiBkZXBl bmRzPSJnbm9tZS1ibHVldG9vdGggZ25vbWUtc2Vzc2lvbiBnbm9tZS1zZXR0aW5ncy1kYWVtb24K LSBnbm9tZS1wYW5lbCBnbm9tZS10aGVtZXMtc3RhbmRhcmQgbWV0YWNpdHkiCisgZ25vbWUtcGFu ZWwgZ25vbWUtdGhlbWVzLWV4dHJhIG1ldGFjaXR5Igogc2hvcnRfZGVzYz0iR05PTUUgMyBzZXNz aW9uIHdpdGggc2ltaWxhciB1c2VyIGV4cGVyaWVuY2UgdG8gdGhlIEdOT01FIDIueCBzZXJpZXMi CiBtYWludGFpbmVyPSJzaGl6b25pYyA8cmVhbHRpYXpAZ21haWwuY29tPiIKIGxpY2Vuc2U9IkdQ TC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0 cy9Hbm9tZUZsYXNoYmFjayIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTNiZTY1 Mzg4Y2QyYzhmMzk3NDFiY2MwNWRhODdlZjQwMDM1MTgzYTlhMzk1MDJkNjc2OTYyNDJjMmFlYjQ2 OWMKK2NoZWNrc3VtPWFiMGRlMDBiMGY2YzliZjMwYzE5NjUxNTY0YmQ5YTc0YmJkZmI3ZDc2ZGQy MTE5YjI2MzFhMzY3MWY4YmU2NTMKKworcG9zdF9leHRyYWN0KCkgeworCXZzZWQgLWkgJ3MvbGli Y29tcGl6Y29uZmlnID49IDBcLjlcLjE0XC4wL2xpYmNvbXBpemNvbmZpZyA+PSAwLjguMTYuMC8n IFwKKwkJY29uZmlndXJlLmFjCit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJYXV0b3JlY29uZiAt aWYKK30KKworcG9zdF9pbnN0YWxsKCkgeworCXZpbnN0YWxsICR7RklMRVNESVJ9L2dub21lLWZs YXNoYmFjay5wYW0gNjQ0IC9ldGMvcGFtLmQgZ25vbWUtZmxhc2hiYWNrCisJdnNlZCAtaSAtZSAi cy8gLS1zeXN0ZW1kLy9nIiBcCisJCSR7REVTVERJUn0vdXNyL2xpYmV4ZWMvZ25vbWUtZmxhc2hi YWNrLXtjb21waXosbWV0YWNpdHl9Cit9CgpGcm9tIGQ4ODYxOWIwZWQwNGM3YjQ1MjZjODBlMDI3 YjUwNDAxZGIxNDc2YWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjEyOjE2 ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1OC84M10gdGVwbDogdXBkYXRlIHRvIDQuOTkuMwoKLS0t CiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy90ZXBs L3BhdGNoZXMvbm8tZ2lyLnBhdGNoIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwogc3JjcGtncy90ZXBsL3RlbXBsYXRlICAgICAgICAgICAgIHwgMTAgKysrLS0tLQogMyBmaWxl cyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvdGVwbC9wYXRjaGVzL25vLWdpci5wYXRjaAoKZGlmZiAtLWdpdCBhL2Nv bW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGMwZmY2MWQwN2RhLi45ZmIzNjg4NjA4 YSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0zNTU2 LDcgKzM1NTYsNyBAQCBsaWJ3eF9ndGszdV9tZWRpYS0zLjAuc28uMCB3eFdpZGdldHMtZ3RrMy0z LjAuNF8xCiBsaWJ3eF9ndGszdV9yaWJib24tMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4wLjRf MQogbGlid3hfZ3RrM3VfZ2wtMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4wLjRfMQogbGlid3hf Z3RrM3Vfc3RjLTMuMC5zby4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEKLWxpYnRlcGwtNC5zby4w IHRlcGwtNC4yLjBfMQorbGlidGVwbC01LnNvLjAgdGVwbC00LjIuMF8xCiBsaWJub21hY3NDb3Jl LnNvLjMgbm9tYWNzLTMuMTAuMl80CiBsaWJhdWRpdC5zby4xIGxpYmF1ZGl0LTIuOC40XzEKIGxp YmF1cGFyc2Uuc28uMCBsaWJhdXBhcnNlLTIuOC40XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGVw bC9wYXRjaGVzL25vLWdpci5wYXRjaCBiL3NyY3BrZ3MvdGVwbC9wYXRjaGVzL25vLWdpci5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTM0MDAyN2I3ZjEKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2gKQEAgLTAs MCArMSw0NSBAQAorRnJvbSAxN2U1N2VkMTU2NDUwZmU1OTAwMWNiMGExNGY4ZDg3YzQwZDZiZjc3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CitEYXRlOiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjA5OjE1ICswMjAwCitTdWJq ZWN0OiBbUEFUQ0hdIEFsbG93IGRpc2FibGluZyBnaXIKKworLS0tCisgbWVzb25fb3B0aW9ucy50 eHQgfCA1ICsrKysrCisgdGVwbC9tZXNvbi5idWlsZCAgfCA0ICsrKysKKyAyIGZpbGVzIGNoYW5n ZWQsIDkgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IG1lc29uX29wdGlvbnMudHh0IG1lc29u X29wdGlvbnMudHh0CitpbmRleCBjYWQ5N2RkLi41ZTk5MDg0IDEwMDY0NAorLS0tIG1lc29uX29w dGlvbnMudHh0CisrKysgbWVzb25fb3B0aW9ucy50eHQKK0BAIC0zLDMgKzMsOCBAQCBvcHRpb24o CisgICB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiBmYWxzZSwKKyAgIGRlc2NyaXB0aW9uOiAnQnVp bGQgQVBJIHJlZmVyZW5jZSAocmVxdWlyZXMgZ3RrLWRvYyknCisgKQorK29wdGlvbigKKysgICdn aXInLAorKyAgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwKKysgIGRlc2NyaXB0aW9uOiAn QnVpbGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uJworKykKK2RpZmYgLS1naXQgdGVwbC9tZXNvbi5i dWlsZCB0ZXBsL21lc29uLmJ1aWxkCitpbmRleCAyMjZkOTEzLi5iMzVkZDNhIDEwMDY0NAorLS0t IHRlcGwvbWVzb24uYnVpbGQKKysrKyB0ZXBsL21lc29uLmJ1aWxkCitAQCAtMTY0LDYgKzE2NCw4 IEBAIFBLR19DT05GSUcuZ2VuZXJhdGUodGVwbF9saWIsCisgICBsaWJyYXJpZXM6IFRFUExfUFVC TElDX0RFUFMsCisgKQorIAorK2lmIGdldF9vcHRpb24oJ2dpcicpCisrCisgR05PTUUuZ2VuZXJh dGVfZ2lyKAorICAgdGVwbF9saWIsCisgICBleHBvcnRfcGFja2FnZXM6ICd0ZXBsLUAwQCcuZm9y bWF0KFRFUExfQVBJX1ZFUlNJT04pLAorQEAgLTE4MiwzICsxODQsNSBAQCBHTk9NRS5nZW5lcmF0 ZV9naXIoCisgICAjIFN1cHBvcnQgZm9yIGRlcHMgYmVpbmcgYnVpbHQgYXMgc3VicHJvamVjdHM6 CisgICBkZXBlbmRlbmNpZXM6IFRFUExfREVQUywKKyApCisrCisrZW5kaWYKKy0tIAorMi4yOC4w CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGVwbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvdGVwbC90ZW1w bGF0ZQppbmRleCBmNGQzNzFkNjAzZC4uODkzMzNjNzdhMTkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv dGVwbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RlcGwvdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RlcGwnCiBwa2duYW1lPXRlcGwKLXZlcnNpb249NC40 LjAKK3ZlcnNpb249NC45OS4zCiByZXZpc2lvbj0xCi1idWlsZF9zdHlsZT1nbnUtY29uZmlndXJl Ci1idWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBp bnRyb3NwZWN0aW9uKSIKK2J1aWxkX3N0eWxlPW1lc29uCitidWlsZF9oZWxwZXI9Z2lyCitjb25m aWd1cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ2lyIGdpcikiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWIt ZGV2ZWwgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJhbXRrLWRldmVsIGxpYmdsaWItZGV2ZWwg Z3Rrc291cmNldmlldzQtZGV2ZWwgZ3RrKzMtZGV2ZWwKICBsaWJ4bWwyLWRldmVsIHVjaGFyZGV0 LWRldmVsIgpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL1RlcGwiCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT1lNmY2NjczYThhMjdlOGYyODA3MjVkYjhmYmFjZWM3OWIyMDY3NmFlMDU1 ODc1NTIzOWQxNWE5ODA4ZmFhMjU2CitjaGVja3N1bT1lNGFmZTYzNGYwMGM1NTMwYWU1MmQ3MDZk OWMzYTliZGYyZGJjNzRiMDQ1OWEzNjM3MDNhMGE5YjRhNWUzMTU3CiAKIGJ1aWxkX29wdGlvbnM9 ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSBlY2FjYTVlMjVmMzQwYzRi NjI2ZjcyOGMwZTY1Mzg0ZTRhNWQ5NTk5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAy MCAwMDoxNTo1MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTkvODNdIGdlZGl0OiB1cGRhdGUgdG8g My4zNy4zCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9nZWRp dC90ZW1wbGF0ZSB8IDIxICsrKysrKysrKystLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAx MSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hs aWJzIGIvY29tbW9uL3NobGlicwppbmRleCA5ZmIzNjg4NjA4YS4uNjlhMTIxMzYzZmUgMTAwNjQ0 Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzY4Myw3ICszNjgz LDcgQEAgbGlicWh0dHBlbmdpbmUuc28uMSBxaHR0cGVuZ2luZS0xLjAuMV8xCiBsaWJxbWRuc2Vu Z2luZS5zby4wIHFtZG5zZW5naW5lLTAuMS4wXzEKIGxpYnlhbmcuc28uMSBsaWJ5YW5nLTEuMHI1 XzEKIGxpYmh0cC5zby4yIGxpYmh0cC0wLjUuMzBfMQotbGliZ2VkaXQtMy4zNi5zbyBnZWRpdC0z LjM2LjFfMQorbGliZ2VkaXQtMy4zOC5zbyBnZWRpdC0zLjM3LjNfMQogbGliY2hld2luZy5zby4z IGxpYmNoZXdpbmctMC41LjFfMQogbGliZHdhcnZlcy5zby4xIHBhaG9sZS0xLjEyXzEKIGxpYmR3 YXJ2ZXNfZW1pdC5zby4xIHBhaG9sZS0xLjEyXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2VkaXQv dGVtcGxhdGUgYi9zcmNwa2dzL2dlZGl0L3RlbXBsYXRlCmluZGV4IDRlMjczYWFmMTgyLi5hMTNl OTFmNWZjMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2dlZGl0L3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn ZWRpdCcKIHBrZ25hbWU9Z2VkaXQKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzcuMwogcmV2 aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogcHljb21waWxl X2RpcnM9InVzci9saWIvZ2VkaXQvcGx1Z2lucyIKLWNvbmZpZ3VyZV9hcmdzPSItRHBsdWdpbnM9 dHJ1ZSAtRHZhcGk9JCh2b3B0X2lmIHZhbGEgdHJ1ZSBmYWxzZSkKLSAtRGludHJvc3BlY3Rpb249 JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKK2NvbmZpZ3VyZV9hcmdzPSItRHBsdWdpbnM9dHJ1 ZQorICQodm9wdF9ib29sIGdpciB2YXBpKSAkKHZvcHRfYm9vbCBnaXIgaW50cm9zcGVjdGlvbiki CiBob3N0bWFrZWRlcGVuZHM9Iml0c3Rvb2wgcGtnLWNvbmZpZyBnbGliLWRldmVsIGdkay1waXhi dWYgcGVybCBnZXR0ZXh0Ci0gJCh2b3B0X2lmIHZhbGEgdmFsYSkiCisgJCh2b3B0X2lmIGdpciB2 YWxhKSIKIG1ha2VkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGdzcGVs bC1kZXZlbCBndGtzb3VyY2V2aWV3NC1kZXZlbAogIGxpYnBlYXMtZGV2ZWwgbGlic291cC1kZXZl bCB0ZXBsLWRldmVsICQodm9wdF9pZiBnaXIgJ3B5dGhvbjMtZ29iamVjdC1kZXZlbCcpIgogZGVw ZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgaXNvLWNv ZGVzIgpAQCAtMTcsMjMgKzE3LDIyIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9HZWRpdCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRF fS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPTZkYzM4ZWRhMjI3ZDFjMzY4ZTAzOWU5YmZmNDg1ZDBiZWU5YTQ5ZDVmOTU2MGMz ODdlZTA4ZjU4MThhNGUzODcKLXNobGliX3Byb3ZpZGVzPSJsaWJnZWRpdC0zLjM2LnNvIgorY2hl Y2tzdW09ODEzN2M3ZDk2YTE5NDUyZWUwNGM5MTVjYjI1YmE0ZGExMzQ2YWY4ZmUwNDk3NDU2NDE3 Y2NmYTYyOGYxMDZkMworc2hsaWJfcHJvdmlkZXM9ImxpYmdlZGl0LTMuMzguc28iCiBweXRob25f dmVyc2lvbj0zCiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZh dWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIgogCiBnZWRpdC1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9IiR7c291cmNlcGtn fT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBndGtzb3VyY2V2aWV3LWRldmVsIGxpYnBlYXMtZGV2 ZWwiCisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IGd0a3Nv dXJjZXZpZXc0LWRldmVsCisJIGxpYnBlYXMtZGV2ZWwgdGVwbC1kZXZlbCIKIAlzaG9ydF9kZXNj Kz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9p bmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCWlmIFsgIiRidWlsZF9vcHRpb25f Z2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2VkaXQvZ2lyLTEuMAotCQlmaQotCQlp ZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxh CiAJCWZpCiAJfQoKRnJvbSA5N2FiOThkZmI3ZGFmMjNhNDhhOTg5YzM5YWQ5NzcyNTU3NDllZWZj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDoxODo0OSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNjAvODNdIGdlZGl0LXBsdWdpbnM6IHJlYnVpbGQgYWdhaW5zdCBnZWRpdC0zLjM3 LjMKCi0tLQogc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlIGIvc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRl CmluZGV4IGYyZjk0ZTYzZjU5Li5mMTZjMzA3ZTA1OSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nZWRp dC1wbHVnaW5zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dlZGl0LXBsdWdpbnMnCiBwa2du YW1lPWdlZGl0LXBsdWdpbnMKIHZlcnNpb249My4zNi4yCi1yZXZpc2lvbj0xCityZXZpc2lvbj0y CiBidWlsZF9zdHlsZT1tZXNvbgogcHljb21waWxlX2RpcnM9InVzci9saWIvZ2VkaXQvcGx1Z2lu cyIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZp ZyB2YWxhIGFwcHN0cmVhbS1nbGliIHB5dGhvbjMtZ29iamVjdAoKRnJvbSAxYTIxMWQwMTU1ODcx MmE0OTMyZmVjOTdhYmU0MjAxZmE1NGJhMDlhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcg MjAyMCAwMDozMzo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNjEvODNdIGdub21lLWxhdGV4OiB1 cGRhdGUgdG8gMy4zNy4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUgfCA2ICsr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1s YXRleC90ZW1wbGF0ZQppbmRleCA5MGQ2MGJlODYwYS4uZTRlMmY2MjYyOTYgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1sYXRleC90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWxhdGV4 JwogcGtnbmFtZT1nbm9tZS1sYXRleAotdmVyc2lvbj0zLjMyLjAKLXJldmlzaW9uPTIKK3ZlcnNp b249My4zNy4yCityZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtYXBwc3RyZWFtLXV0aWwgLS1k aXNhYmxlLWRjb25mLW1pZ3JhdGlvbgpAQCAtMTUsNyArMTUsNyBAQCBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvR05PTUUtTGFUZVgiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wZjA2OWM3YjRjNjc1NDI1NWExYzdlM2Uz YjA1MDkyNWQ4MDc2ZjU1NDU4NTI2YTMwYWI1OWUwYTdkNTJhY2M5CitjaGVja3N1bT1hMzUyMWUy MWQ0Y2M1YmM2MGZmNjk0ZjUyMDlmNDk5Y2FhODBmMzk1Y2U1ZDYyY2I2MzJlNDI0M2FkMjdiYWQw CiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJv bSBhZWUxZjI3OTY3NWJlNWFmN2Y2NzVhZDQwMTZkYzI5MzhkYWNmOWNhIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogU3VuLCAxNiBBdWcgMjAyMCAwNDoyMzozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNjIvODNd IGJhb2JhYjogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUg fCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUgYi9zcmNwa2dzL2Jhb2JhYi90 ZW1wbGF0ZQppbmRleCBhMDI4YmU0Y2Q1Yi4uNjA4M2E3OGY1NGYgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvYmFvYmFiL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYmFvYmFiL3RlbXBsYXRlCkBAIC0xLDYg KzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmFvYmFiJwogcGtnbmFtZT1iYW9iYWIKLXZl cnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1l c29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBpdHN0b29sIGdsaWItZGV2 ZWwgdmFsYSIKQEAgLTExLDQgKzExLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRv eEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdGREwtMS4xLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvYWN0aW9uL3Nob3cvQXBw cy9EaXNrVXNhZ2VBbmFseXplciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTdm OTgxZDRmMTM1ZTRmODBmYmEzZjY2ZTg2YjBlZWVkYzk0YTI0MzQ2NDkyNjJmZjAxYTVmMGNiMDI3 YjIwYzUKK2NoZWNrc3VtPTQxYmUzOGU0M2ZhYWZiMzkyNzY5Yzg3OWUxZTc2MmNhMzhlMmQ3NTFj MTcxYmVhMWY5MDQ3MjkwYTg4M2ZlZmUKCkZyb20gMjcwYzRhYmY5NjM3NGM2ZDlhOTZhYzFiMjBh OGFiYmRlYTJhYmY1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6MzE6NTMg KzAyMDAKU3ViamVjdDogW1BBVENIIDYzLzgzXSBnbm9tZS1ib3hlczogdXBkYXRlIHRvIDMuMzcu OTAKCi0tLQogc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZSB8IDcgKysrKy0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0 ZQppbmRleCAwZmEyYWU3NmM3Mi4uZmQ4ZmViY2JjZDggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25v bWUtYm94ZXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJveGVzJwogcGtnbmFtZT1n bm9tZS1ib3hlcwotdmVyc2lvbj0zLjM2LjUKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQog YnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtOCw3ICs4LDggQEAgaG9z dG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIGdsaWItZGV2ZWwi CiBtYWtlZGVwZW5kcz0iY2x1dHRlci1ndGstZGV2ZWwgZnJlZXJkcC1kZXZlbCBndGstdm5jLWRl dmVsIGxpYmFyY2hpdmUtZGV2ZWwKICBsaWJnbGliLWRldmVsIGxpYmd1ZGV2LWRldmVsIGxpYm9z aW5mby1kZXZlbCBsaWJzZWNyZXQtZGV2ZWwgbGlic291cC1kZXZlbAogIGxpYnVzYi1kZXZlbCBs aWJ2aXJ0LWdsaWItZGV2ZWwgbGlieG1sMi1kZXZlbCBzcGljZS1ndGstZGV2ZWwgc3BpY2UtcHJv dG9jb2wKLSB0cmFja2VyLWRldmVsIHZhbGEtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB2dGUzLWRl dmVsIgorIHRyYWNrZXItZGV2ZWwgdmFsYS1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIHZ0ZTMtZGV2 ZWwgZ3Rrc291cmNldmlldzQtZGV2ZWwKKyBsaWJoYW5keS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0 b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUgbGlib3NpbmZvIGxpYnZpcnQtZ2xpYiBx ZW11IHRyYWNrZXIiCiBzaG9ydF9kZXNjPSJHTk9NRSAzIGFwcGxpY2F0aW9uIHRvIGFjY2VzcyBy ZW1vdGUgb3IgdmlydHVhbCBzeXN0ZW1zIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRv eEB2b2lkbGludXgub3JnPiIKQEAgLTE2LDQgKzE3LDQgQEAgbGljZW5zZT0iTEdQTC0yLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0JveGVzIgogY2hh bmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZ25vbWUtYm94 ZXMvZ25vbWUtMy0zNi9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGM1 NGNhYmUzNTVlODc4ZDA0NTc1MTczNDZlNDI0N2E4NjBiNjg4MzQxM2QzYmY3NzY4MWRjZDExZWY0 MWJjZQorY2hlY2tzdW09MTIyZGEzOTEzMWFjYjk3MWIzZTc2NDAwNmM1YzM2OTg0NDdhNWQ5MjIw YWFiMzM4M2RiNjNjMDkyOWRlOTE1ZAoKRnJvbSAxNmM5NWYxMTFiZTE0ZjE2MDBmNDEwN2UwNDli MWUzMDk2NTFmY2M2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNDozNToyNCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggNjQvODNdIGdub21lLWNhbGN1bGF0b3I6IHVwZGF0ZSB0byAz LjM3LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZSB8IDYgKysrLS0t CiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUt Y2FsY3VsYXRvci90ZW1wbGF0ZQppbmRleCAwNjIxNGIwOGQ5Yi4uODExMTI4NDRhNGUgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLWNhbGN1bGF0b3IvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdnbm9tZS1jYWxjdWxhdG9yJwogcGtnbmFtZT1nbm9tZS1jYWxjdWxhdG9yCi12ZXJzaW9u PTMuMzYuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM3LjkwCityZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGdl dHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSIKQEAgLTE0LDQgKzE0LDQg QEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25v bWUub3JnL0FwcHMvQ2FsY3VsYXRvciIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNl cmNvbnRlbnQuY29tL0dOT01FL2dub21lLWNhbGN1bGF0b3IvZ25vbWUtMy0zMi9ORVdTIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YTJlODMwZjljOTg1NmZhZDY1ZGFkMWQ2YzBh ZTZhYmFkMGYwYjQ5NmM5OTg0YWMwMDUzMTVjNWNjNDIyMGRiMworY2hlY2tzdW09Yjg5NWI1ZWM2 MmI5NDk1ODEwYjBhNmNiOTAxNThlNmQxNjA3MDk2ZDE1MGI0YWM1Y2RjZjhhZWZjZWRlZDRjMQoK RnJvbSA5N2JhM2E3YzBjN2M1NWZiY2M1MWM1MzYwZDhlMDdlODM4ZDk0NDljIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNDo0NDo1OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNjUv ODNdIGdub21lLWRpc2stdXRpbGl0eTogdXBkYXRlIHRvIDMuMzcuMgoKLS0tCiBzcmNwa2dzL2du b21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt ZGlzay11dGlsaXR5L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxh dGUKaW5kZXggZGM2N2JiYmE3ODUuLjE5NTU2MTE4NTBiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2du b21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRpc2stdXRpbGl0 eS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWRp c2stdXRpbGl0eScKIHBrZ25hbWU9Z25vbWUtZGlzay11dGlsaXR5Ci12ZXJzaW9uPTMuMzYuMQot cmV2aXNpb249MgordmVyc2lvbj0zLjM3LjIKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29u CiBjb25maWd1cmVfYXJncz0iLURsb2dpbmQ9bm9uZSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1k ZXZlbCBndGstZG9jIGludGx0b29sIHBrZy1jb25maWcgbGlieHNsdCIKQEAgLTEzLDUgKzEzLDUg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9B cHBzL0Rpc2tzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9u JS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzkxYjE4ZjIzMWJj YmM2ZDk0MWFmMzgzN2NhNWJlMTRmMjE1N2U1Y2UzZDMyYmRjNWI5ZWI4OTQ3ZTEyYjQxNAorY2hl Y2tzdW09MWM5OThmNTU0ZGZlYzhiNDIzYzY4NTg3MjM1M2E1ZGJjZjY1OGM5ZjdiYTQ3N2NhYzc2 OGE5MjU2MzY0MzMwOAogbGliMzJkaXNhYmxlZD15ZXMKCkZyb20gYzlkN2Q0NDkwZjgxZjEwZDk0 NTdkYjA0NmFlZWUzOTE5ZjEyNWY4MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAg MDQ6NDk6MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDY2LzgzXSBnbm9tZS1zY3JlZW5zaG90OiB1 cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUg fCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZQppbmRleCA5OWNhYjYyZWVlMS4uNTQxMTZh YTgxZWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTQgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNjcmVlbnNob3QnCiBwa2duYW1lPWdub21lLXNjcmVl bnNob3QKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuOTAKK3Jldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImFwcGRhdGEtdG9vbHMg Z2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJsaWJj YW5iZXJyYS1kZXZlbCIKK21ha2VkZXBlbmRzPSJsaWJjYW5iZXJyYS1kZXZlbCBsaWJoYW5keTEt ZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJTY3JlZW5z aG90IGNhcHR1cmUgdXRpbGl0eSBmb3IgR05PTUUiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2NyZWVuc2hvdCIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTMzNDk1ZDg5MjcwNzE3OTI1NGI3NDNmOGY3 MGM5YTgyY2RlNWM1ZjJjN2VhM2RiNjM0YTJiYTdlYTczMzEyNjYKK2NoZWNrc3VtPTdhMzljYzc4 NDdhNDgyZmE5YWFkOTg5Y2U2NWRmMGVmNWVlOWVmNzlhY2VkNzVkMTkzMWI3ZTllODZjMTBmMTMK CkZyb20gYmM0Njg1ODhlOTJkMGI0ZWRjMzZhYTc1Y2ZmOGVjMDE3MDZlNjZlNCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTE6MDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDY3 LzgzXSBnbm9tZS1zeXN0ZW0tbW9uaXRvcjogdXBkYXRlIHRvIDMuMzcuOTEKCi0tLQogc3JjcGtn cy9nbm9tZS1zeXN0ZW0tbW9uaXRvci90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLXN5c3RlbS1tb25pdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zeXN0ZW0tbW9uaXRv ci90ZW1wbGF0ZQppbmRleCBmZjExYjM1OTBhNC4uY2EwMTg3YzdlYWMgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1z eXN0ZW0tbW9uaXRvci90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLXN5c3RlbS1tb25pdG9yJwogcGtnbmFtZT1nbm9tZS1zeXN0ZW0tbW9uaXRvcgot dmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45MQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWQ9ZmFsc2UiCkBAIC0xMSw0ICsxMSw0IEBA IG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNl PSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBw cy9TeXN0ZW1Nb25pdG9yIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODY2YjQ3 YWIwZjRjNzViMGVjNTdkNjMwMDMzN2E3MzczNDYzYWFhZDVkZjk1ZWRkZmU1MzU0YzIyYmU3YmNh MQorY2hlY2tzdW09MGQ3OWExOGRlNWU4Y2Y0YmM0OTQ2Y2VkNWZmNzhmYTY1ZmNjMmUyZGQ2MzM4 MmIwOGUzMTRjNmY5NGRmMWU5NQoKRnJvbSBiZjhjNTM4NzE1Mjc5ZmQ2YjliOTFkZjY5ODhhOTdl ZDNkMWY1NTNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNDo1NjozNCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggNjgvODNdIGd0a3NvdXJjZXZpZXc0OiB1cGRhdGUgdG8gNC43Ljkw CgotLS0KIHNyY3BrZ3MvZ3Rrc291cmNldmlldzQvdGVtcGxhdGUgfCAyOSArKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDEzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3Rrc291cmNldmlldzQvdGVtcGxhdGUg Yi9zcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlCmluZGV4IDY4NDg3MTY3NzNjLi45MjZh MzlmZDIzOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlCkBAIC0xLDMyICsxLDM3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdndGtzb3VyY2V2aWV3NCcKIHBrZ25hbWU9Z3Rrc291cmNldmlldzQK LXZlcnNpb249NC4yLjAKLXJldmlzaW9uPTIKK3ZlcnNpb249NC43LjkwCityZXZpc2lvbj0xCiB3 cmtzcmM9Imd0a3NvdXJjZXZpZXctJHt2ZXJzaW9ufSIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKK2J1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdz PSItLWVuYWJsZS1nbGFkZS1jYXRhbG9nICQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24p Ci0gJCh2b3B0X2VuYWJsZSB2YWxhKSAkKHZvcHRfZW5hYmxlIGd0a19kb2MgZ3RrLWRvYykiCitj b25maWd1cmVfYXJncz0iLURnbGFkZV9jYXRhbG9nPXRydWUgJCh2b3B0X2Jvb2wgZ2lyIGdpcikK KyAkKHZvcHRfYm9vbCBnaXIgdmFwaSkgJCh2b3B0X2Jvb2wgZ3RrX2RvYyBndGtfZG9jKSIKIGhv c3RtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIGxpYnhzbHQgcGtn LWNvbmZpZwotICQodm9wdF9pZiB2YWxhIHZhbGEpICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2Mp IgorICQodm9wdF9pZiBnaXIgdmFsYSkgJCh2b3B0X2lmIGd0a19kb2MgZ3RrLWRvYykiCiBtYWtl ZGVwZW5kcz0iZ2xhZGUzLWRldmVsIGd0ayszLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlieG1sMi1k ZXZlbAotICQodm9wdF9pZiB2YWxhIHZhbGEpIgorICQodm9wdF9pZiBnaXIgdmFsYSkiCiBzaG9y dF9kZXNjPSJUZXh0IHdpZGdldCB0aGF0IGV4dGVuZHMgR1RLKyBHdGtUZXh0VmlldyB3aWRnZXQi CiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1By b2plY3RzL0d0a1NvdXJjZVZpZXciCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ3Rrc291cmNl dmlldy8ke3ZlcnNpb24lLip9L2d0a3NvdXJjZXZpZXctJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT1jNDMxZWIyMzRkYzgzYzc4MTllNThmNzdkZDJhZjk3MzI1MmM3NzUwZGExYzlkMTI1ZGRj OTQyNjhmOTRmNjc1CitjaGVja3N1bT05ODNiZGNiODhmOTgyODViM2I5OTdjOTMzNTA1N2M4ZmJj NDVhYWQwYTdjMTNjYjY1ZWIzNjU1NjdlMjZiYWFmCiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25z Ci1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSBndGtfZG9jIgorYnVpbGRfb3B0aW9ucz0iZ2lyIGd0 a19kb2MiCiBkZXNjX29wdGlvbl9ndGtfZG9jPSJCdWlsZCBBUEkgZG9jcyB2aWEgZ3RrLWRvYyIK LWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImdpciIKIAogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJYnVpbGRfb3B0aW9uc19k ZWZhdWx0Kz0iIGd0a19kb2MiCiBmaQogCisjIE5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30K KwogZ3Rrc291cmNldmlldzQtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1kZXZl bCBsaWJnbGliLWRldmVsIGxpYnhtbDItZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKQEAgLTM2LDEx ICs0MSw5IEBAIGd0a3NvdXJjZXZpZXc0LWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlICJ1c3Iv bGliLyouc28iCiAJCXZtb3ZlIHVzci9zaGFyZS9nbGFkZQogCQl2bW92ZSB1c3Ivc2hhcmUvZ3Rr LWRvYwotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KLQkJCXZtb3ZlIHVzci9z aGFyZS92YWxhCi0JCWZpCiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2 bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAorCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9 CiB9CgpGcm9tIDM2NDhjYWE2YzkwN2U0OGQzZjc1ZDMyNGE3NzBkZTg2MDZhYjdlMTcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA1OjI4OjE0ICswMjAwClN1YmplY3Q6IFtQQVRD SCA2OS84M10gc3lzcHJvZjogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogY29tbW9uL3NobGlicyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIC4uLi9wYXRj aGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaCAgICAgICAgfCAxMiAtLS0tLS0t LS0tLS0KIHNyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNoICAgICAgICAgICAgICAg ICAgfCAxMCArKysrKysrKysrCiBzcmNwa2dzL3N5c3Byb2YvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKystLQogNCBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25z KCspLCAxNiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3N5c3Byb2Yv cGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaAoKZGlmZiAtLWdpdCBhL2Nv bW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDY5YTEyMTM2M2ZlLi5mZmJhMjE4Mzg2 NyAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0zMTU2 LDggKzMxNTYsOCBAQCBsaWJtaXJhZ2Uuc28uMTEgbGlibWlyYWdlLTMuMS4wXzEKIGxpYndraHRt bHRveC5zby4wIGxpYndraHRtbHRvcGRmLTAuMTIuNV8xCiBsaWJpeG1sLnNvLjEwIGxpYnVwbnAx LjgtMS44LjJfMQogbGlidXBucC5zby4xMyBsaWJ1cG5wMS44LTEuOC40XzEKLWxpYnN5c3Byb2Yt My5zbyBzeXNwcm9mLTMuMzQuMF8xCi1saWJzeXNwcm9mLXVpLTMuc28gc3lzcHJvZi0zLjM0LjBf MQorbGlic3lzcHJvZi00LnNvIHN5c3Byb2YtMy4zNy45MF8xCitsaWJzeXNwcm9mLXVpLTQuc28g c3lzcHJvZi0zLjM3LjkwXzEKIGxpYm1vempzLTUyLnNvIG1vempzNTItNTIuMy4wXzEKIGxpYm1v empzLTUyLnNvLjAgbW96anM1Mi01Mi4zLjBfMQogbGlidmFsYS0wLjQ4LnNvLjAgbGlidmFsYS0w LjQ4LjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYWxsb2NzLWJ5LXNp emUtZ3NpemUtZm9ybWF0LnBhdGNoIGIvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYWxsb2NzLWJ5 LXNpemUtZ3NpemUtZm9ybWF0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh ZmVlMDdlYmJjMi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYWxs b2NzLWJ5LXNpemUtZ3NpemUtZm9ybWF0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAs MCBAQAotZGlmZiAtcmF1TiBzcmMvdGVzdHMvYWxsb2NzLWJ5LXNpemUuYyBzcmMvdGVzdHMvYWxs b2NzLWJ5LXNpemUuYwotLS0tIHNyYy90ZXN0cy9hbGxvY3MtYnktc2l6ZS5jCTIwMjAtMDMtMjIg MjA6MDA6MTIuNjc3MDQ4ODIyICswMTAwCi0rKysgc3JjL3Rlc3RzL2FsbG9jcy1ieS1zaXplLmMJ MjAyMC0wMy0yMiAyMDowMTowNy4wMDA0MTgzNjEgKzAxMDAKLUBAIC0xMDksNyArMTA5LDcgQEAK LSAgICAgewotICAgICAgIGNvbnN0IEl0ZW0gKml0ZW0gPSAmZ19hcnJheV9pbmRleCAoYXIsIEl0 ZW0sIGkpOwotIAotLSAgICAgIGdfcHJpbnQgKCIlIkdfR1VJTlQ2NF9GT1JNQVQiLCUiR19HVUlO VDY0X0ZPUk1BVCIsJSJHX0dVSU5UNjRfRk9STUFUIlxuIiwKLSsgICAgICBnX3ByaW50ICgiJSJH X0dTSVpFX0ZPUk1BVCIsJSJHX0dTSVpFX0ZPUk1BVCIsJSJHX0dTSVpFX0ZPUk1BVCJcbiIsCi0g ICAgICAgICAgICAgICAgaXRlbS0+c2l6ZSwgaXRlbS0+Y21wLCBpdGVtLT5jb3VudCk7Ci0gICAg IH0KLSB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaCBi L3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5hYjdjMmMxYzE2NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3Mvc3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBzcmMv bGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jb25kaXRpb24uYworKysrIHNyYy9s aWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWNvbmRpdGlvbi5jCitAQCAtMjY5LDYg KzI2OSw3IEBAIHN5c3Byb2ZfY2FwdHVyZV9jb25kaXRpb25fY29weSAoY29uc3QgU3lzcHJvZkNh cHR1cmVDb25kaXRpb24gKnNlbGYpCisgICAgIH0KKyAKKyAgIHN5c3Byb2ZfYXNzZXJ0X25vdF9y ZWFjaGVkICgpOworKyAgcmV0dXJuIE5VTEw7CisgfQorIAorIHN0YXRpYyB2b2lkCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3N5c3Byb2YvdGVtcGxhdGUgYi9zcmNwa2dzL3N5c3Byb2YvdGVtcGxhdGUK aW5kZXggNjhiY2E2MDI1NTMuLjE1MTY2ZTI4ZTFhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3N5c3By b2YvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnc3lzcHJvZicKIHBrZ25hbWU9c3lzcHJvZgotdmVyc2lv bj0zLjM2LjAKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24K IGNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZV9ndGs9dHJ1ZSAtRHN5c3RlbWR1bml0ZGlyPWRlbGV0 ZW1lIgpAQCAtMTEsNyArMTEsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwOi8vc3lzcHJvZi5jb20vIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6 IgotY2hlY2tzdW09ODY3MGRiNGRhY2Y3YjIxOWQzMGM1NzVjNDY1YjE3YzhlZDY3MjRkYmFkZTM0 N2YyY2RlOTU0OGJmZjAzOTEwOAorY2hlY2tzdW09NjE4MTBjMzZiYzBiZmI1Y2U4ODA4ZTZiMmZi ZWZjM2NlMGM1MTBjNTdiMWQyNmJiYTY2Y2M2MzZmNzViODA0MQogCiAjIGZvciBJVFMgcnVsZXMK IGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJvbSBjODQxNGY4MThkZThkMzlmMDU0MjNl MjY3MDg3MTZjYTRmYmViNDI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNjoy MzowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNzAvODNdIE5ldyBwYWNrYWdlOiBtb3pqczc4LTc4 LjEuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDEgKwogc3JjcGtncy9tb3pqczc4LWRldmVsICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIC4uLi8wMDEtc2lsZW5jZS1zYW5kYm94LXZpb2xhdGlvbnMucGF0Y2ggICAgICB8ICAy NyArKysrKwogc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAyLWZpeC1zb25hbWUucGF0Y2ggIHwg IDIyICsrKysKIC4uLi9tb3pqczc4L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5wYXRjaCAgICB8 ICAxNiArKysKIC4uLi9tb3pqczc4L3BhdGNoZXMvMDA0LWZpeC1tdXNsLWJ1aWxkLnBhdGNoICB8 ICAxNyArKysKIC4uLi8wMDUtc3BpZGVybW9ua2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoICAgICB8 ICAxMiArKwogLi4uLzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5c3Jvb3QucGF0Y2ggICAgICAgIHwg IDEwICsrCiAuLi4vcGF0Y2hlcy8wMDctZml4LW1pcHMtc2dpZGVmc19oLnBhdGNoICAgICAgfCAg MTEgKysKIHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRjaCAgICB8IDEw NyArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvbW96anM3OC90ZW1wbGF0ZSAgICAgICAgICAg ICAgICAgICAgICB8ICA3MyArKysrKysrKysrKysKIHNyY3BrZ3MvbW96anM3OC91cGRhdGUgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiAxMiBmaWxlcyBjaGFuZ2VkLCAyOTggaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbW96anM3OC1kZXZlbAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMS1zaWxlbmNlLXNhbmRib3gt dmlvbGF0aW9ucy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRj aGVzLzAwMi1maXgtc29uYW1lLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pq czc4L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgtbXVzbC1idWlsZC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNS1zcGlkZXJtb25rZXktY2hlY2tz LWRpc2FibGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hl cy8wMDYtbW96anM3OC5wYy1ob25vci1zeXNyb290LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA3LWZpeC1taXBzLXNnaWRlZnNfaC5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC90ZW1wbGF0ZQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC91cGRhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hs aWJzIGIvY29tbW9uL3NobGlicwppbmRleCBmZmJhMjE4Mzg2Ny4uY2NkNWJiYjQwM2YgMTAwNjQ0 Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzU0MSw2ICszNTQx LDcgQEAgbGliS0Y1U3luZGljYXRpb24uc28uNSBzeW5kaWNhdGlvbi01LjUwLjBfMQogbGlibHFy LTEuc28uMCBsaWJscXItMC40LjJfMQogbGlibW96anMtNjAuc28uMCBtb3pqczYwLTYwLjAuMl8x CiBsaWJtb3pqcy02OC5zby4wIG1vempzNjgtNjguOC4wXzEKK2xpYm1vempzLTc4LnNvLjAgbW96 anM3OC03OC4xLjBfMQogbGliZWJ1cjEyOC5zby4xIGxpYmVidXIxMjgtMS4yLjRfMQogbGliZ3Rr c291cmNldmlldy00LnNvLjAgZ3Rrc291cmNldmlldzQtNC4wLjJfMQogbGlid3hfZ3RrM3VfcHJv cGdyaWQtMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4wLjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9tb3pqczc4LWRldmVsIGIvc3JjcGtncy9tb3pqczc4LWRldmVsCm5ldyBmaWxlIG1vZGUgMTIw MDAwCmluZGV4IDAwMDAwMDAwMDAwLi43NzEzNTk5MzU2ZgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbW96anM3OC1kZXZlbApAQCAtMCwwICsxIEBACittb3pqczc4ClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAxLXNp bGVuY2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMv MDAxLXNpbGVuY2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5kYzAxMTk0YjY0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbW96anM3OC9wYXRjaGVzLzAwMS1zaWxlbmNlLXNhbmRib3gtdmlvbGF0aW9ucy5wYXRjaApA QCAtMCwwICsxLDI3IEBACisiQ2FycmllZCBvdmVyICsgdXBkYXRlZCBmcm9tIG1vempzNjgiCitV cHN0cmVhbTogbm8KK0Zyb20gOWFkMTA1NjllMTFhMmZiOTYzNzcxODhmODk1YmM2NmFiY2M5NTEx ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcmMtQW50b2luZSBQZXJlbm5vdSA8 TWFyYy1BbnRvaW5lQFBlcmVubm91LmNvbT4KK0RhdGU6IFdlZCwgNSBTZXAgMjAxOCAxNTowNToy NCArMDIwMAorU3ViamVjdDogW1BBVENIXSBzaWxlbmNlIHNhbmRib3ggdmlvbGF0aW9ucworCitT aWduZWQtb2ZmLWJ5OiBNYXJjLUFudG9pbmUgUGVyZW5ub3UgPE1hcmMtQW50b2luZUBQZXJlbm5v dS5jb20+CistLS0KKyBweXRob24vbW96YnVpbGQvbW96YnVpbGQvZnJvbnRlbmQvZW1pdHRlci5w eSB8IDUgLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBkZWxldGlvbnMoLSkKKworLS0tIGEvcHl0 aG9uL21vemJ1aWxkL21vemJ1aWxkL2Zyb250ZW5kL2VtaXR0ZXIucHkKKysrKyBiL3B5dGhvbi9t b3pidWlsZC9tb3pidWlsZC9mcm9udGVuZC9lbWl0dGVyLnB5CitAQCAtMTIzOSwxMiArMTIzOSw2 IEBAIGNsYXNzIFRyZWVNZXRhZGF0YUVtaXR0ZXIoTG9nZ2luZ01peGluKToKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzIGEgZmlsZW5hbWUsIGJ1 dCBhIGRpcmVjdG9yeSBpcyByZXF1aXJlZDogJXMgJworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnKHJlc29sdmVkIHRvICVzKScgJSAobG9jYWxfaW5j bHVkZSwgZnVsbF9wYXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGV4dCkKKy0gICAgICAgICAgICBpZiAoZnVsbF9wYXRoID09IGNvbnRl eHQuY29uZmlnLnRvcHNyY2RpciBvcgorLSAgICAgICAgICAgICAgICAgICAgZnVsbF9wYXRoID09 IGNvbnRleHQuY29uZmlnLnRvcG9iamRpcik6CistICAgICAgICAgICAgICAgIHJhaXNlIFNhbmRi b3hWYWxpZGF0aW9uRXJyb3IoCistICAgICAgICAgICAgICAgICAgICAnUGF0aCBzcGVjaWZpZWQg aW4gTE9DQUxfSU5DTFVERVMgJworLSAgICAgICAgICAgICAgICAgICAgJyglcykgcmVzb2x2ZXMg dG8gdGhlIHRvcHNyY2RpciBvciB0b3BvYmpkaXIgKCVzKSwgd2hpY2ggaXMgJworLSAgICAgICAg ICAgICAgICAgICAgJ25vdCBhbGxvd2VkJyAlIChsb2NhbF9pbmNsdWRlLCBmdWxsX3BhdGgpLCBj b250ZXh0KQorICAgICAgICAgICAgIGluY2x1ZGVfb2JqID0gTG9jYWxJbmNsdWRlKGNvbnRleHQs IGxvY2FsX2luY2x1ZGUpCisgICAgICAgICAgICAgbG9jYWxfaW5jbHVkZXMuYXBwZW5kKGluY2x1 ZGVfb2JqLnBhdGguZnVsbF9wYXRoKQorICAgICAgICAgICAgIHlpZWxkIGluY2x1ZGVfb2JqCmRp ZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDItZml4LXNvbmFtZS5wYXRjaCBi L3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMi1maXgtc29uYW1lLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jYzU0MzEwOTM5OAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMi1maXgtc29uYW1lLnBhdGNoCkBAIC0wLDAg KzEsMjIgQEAKKyJDYXJyaWVkIG92ZXIgZnJvbSBtb3pqczY4IgorLS0tIGEvanMvc3JjL2J1aWxk L01ha2VmaWxlLmluCisrKysgYi9qcy9zcmMvYnVpbGQvTWFrZWZpbGUuaW4KK0BAIC03OCw2ICs3 OCw4IEBACisgZW5kaWYKKyBpZm5lcSAoLCQoU0hBUkVEX0xJQlJBUlkpKQorIAkkKFNZU0lOU1RB TEwpICQoU0hBUkVEX0xJQlJBUlkpICQoREVTVERJUikkKGxpYmRpcikKKysJbXYgLWYgJChERVNU RElSKSQobGliZGlyKS8kKFNIQVJFRF9MSUJSQVJZKSAkKERFU1RESVIpJChsaWJkaXIpLyQoU0hB UkVEX0xJQlJBUlkpLjAKKysJbG4gLXMgJChTSEFSRURfTElCUkFSWSkuMCAkKERFU1RESVIpJChs aWJkaXIpLyQoU0hBUkVEX0xJQlJBUlkpCisgaWZlcSAoJChPU19BUkNIKSxEYXJ3aW4pCisgCWlu c3RhbGxfbmFtZV90b29sIC1pZCAkKGFic3BhdGggJChsaWJkaXIpLyQoU0hBUkVEX0xJQlJBUlkp KSAkKERFU1RESVIpJChsaWJkaXIpLyQoU0hBUkVEX0xJQlJBUlkpCisgZW5kaWYKKy0tLSBhL2pz L3NyYy9idWlsZC9tb3ouYnVpbGQKKysrKyBiL2pzL3NyYy9idWlsZC9tb3ouYnVpbGQKK0BAIC0y NSw2ICsyNSw3IEBACisgaWYgQ09ORklHWydKU19TSEFSRURfTElCUkFSWSddOgorICAgICBHZWNr b1NoYXJlZExpYnJhcnkoJ2pzJywgbGlua2FnZT1Ob25lKQorICAgICBTSEFSRURfTElCUkFSWV9O QU1FID0gQ09ORklHWydKU19MSUJSQVJZX05BTUUnXQorKyAgICBMREZMQUdTICs9IFsnLVdsLC1z b25hbWUsbGlie30uc28uMCcuZm9ybWF0KFNIQVJFRF9MSUJSQVJZX05BTUUpXQorIAorICAgICAj IEVuc3VyZSBzeW1ib2wgdmVyc2lvbnMgb2Ygc2hhcmVkIGxpYnJhcnkgb24gTGludXggZG8gbm90 IGNvbmZsaWN0CisgICAgICMgd2l0aCB0aG9zZSBpbiBsaWJ4dWwuCmRpZmYgLS1naXQgYS9zcmNw a2dzL21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJtLnBhdGNoIGIvc3JjcGtncy9tb3pq czc4L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uODkxYTc2NTIwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJtLnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAK KyJUYWtlbiBmcm9tIGZpcmVmb3gtZXNyIgorLS0tIGEvanMvc3JjL3dhc20vV2FzbVNpZ25hbEhh bmRsZXJzLmNwcAorKysrIGIvanMvc3JjL3dhc20vV2FzbVNpZ25hbEhhbmRsZXJzLmNwcAorQEAg LTI0Myw5ICsyNDMsOSBAQAorIC8vIElmIHlvdSBydW4gaW50byBjb21waWxlIHByb2JsZW1zIG9u IGEgdGllci0zIHBsYXRmb3JtLCB5b3UgY2FuIGRpc2FibGUgdGhlCisgLy8gZW11bGF0aW9uIGhl cmUuCisgCistI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fYXJtX18pCistIyAg ZGVmaW5lIFdBU01fRU1VTEFURV9BUk1fVU5BTElHTkVEX0ZQX0FDQ0VTUworLSNlbmRpZgorKy8v ICNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX2FybV9fKQorKy8vICMgIGRlZmlu ZSBXQVNNX0VNVUxBVEVfQVJNX1VOQUxJR05FRF9GUF9BQ0NFU1MKKysvLyAjZW5kaWYKKyAKKyAj aWZkZWYgV0FTTV9FTVVMQVRFX0FSTV9VTkFMSUdORURfRlBfQUNDRVNTCisgIyAgaW5jbHVkZSA8 c3lzL3VzZXIuaD4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgt bXVzbC1idWlsZC5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgtbXVzbC1i dWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjYyOWZh MmFjMzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDQtZml4 LW11c2wtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorIkNhcnJpZWQgb3ZlciBmcm9tIG1v empzNjAiCitVcHN0cmVhbTogTm8KK1JlYXNvbjogbW96anM2OCBtaXNjb21waWxlcyBvbiBtdXNs IGlmIGJ1aWx0IHdpdGggSEFWRV9USFJFQURfVExTX0tFWVdPUkQ6CitodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3Vlcy8yNTk4CitkaWZmIC0tZ2l0IGEvanMv c3JjL29sZC1jb25maWd1cmUuaW4gYi9qcy9zcmMvb2xkLWNvbmZpZ3VyZS5pbgorLS0tIGEvanMv c3JjL29sZC1jb25maWd1cmUuaW4KKysrKyBiL2pzL3NyYy9vbGQtY29uZmlndXJlLmluCitAQCAt MTI3Miw2ICsxMjcyLDkgQEAKKyAgICAgKi1hbmRyb2lkKnwqLWxpbnV4YW5kcm9pZCopCisgICAg ICAgOgorICAgICAgIDs7CisrICAgICotbXVzbCopCisrICAgICAgOgorKyAgICAgIDs7CisgICAg ICopCisgICAgICAgQUNfREVGSU5FKEhBVkVfVEhSRUFEX1RMU19LRVlXT1JEKQorICAgICAgIDs7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDUtc3BpZGVybW9ua2V5LWNo ZWNrcy1kaXNhYmxlLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA1LXNwaWRlcm1v bmtleS1jaGVja3MtZGlzYWJsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uZjZlYWJhYmQxZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgv cGF0Y2hlcy8wMDUtc3BpZGVybW9ua2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoCkBAIC0wLDAgKzEs MTIgQEAKK1NvdXJjZTpGZWRvcmEKK1JlYXNvbjogQ2hlY2tzIGZhaWxlZChUb2RvOiBGaWd1cmUg b3V0IHdoeSkKKysrKyBhL2NvbmZpZy9ydW5fc3BpZGVybW9ua2V5X2NoZWNrcy5weQorKysrIGIv Y29uZmlnL3J1bl9zcGlkZXJtb25rZXlfY2hlY2tzLnB5CitAQCAtMTEsNSArMTEsNSBAQAorICAg ICBmb3Igc2NyaXB0IGluIHNjcmlwdHM6CisgICAgICAgICByZXRjb2RlID0gc3VicHJvY2Vzcy5j YWxsKAorICAgICAgICAgICAgIFtzeXMuZXhlY3V0YWJsZSwgc2NyaXB0XSwgY3dkPWJ1aWxkY29u ZmlnLnRvcHNyY2RpcikKKy0gICAgICAgIGlmIHJldGNvZGUgIT0gMDoKKy0gICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oc2NyaXB0ICsgIiBmYWlsZWQiKQorKyAgICAgICAgI2lmIHJldGNvZGUg IT0gMDoKKysgICAgICAgICMgICAgcmFpc2UgRXhjZXB0aW9uKHNjcmlwdCArICIgZmFpbGVkIikK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNi1tb3pqczc4LnBjLWhvbm9y LXN5c3Jvb3QucGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDYtbW96anM3OC5wYy1o b25vci1zeXNyb290LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li43MTIxNGI4ZWNjZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVz LzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5c3Jvb3QucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorIkNh cnJpZWQgb3ZlciBmcm9tIG1vempzNjAiCitSZWFzb246IEZpeCB0aGUgJy1pbmNsdWRlJyBkaXJl Y3RpdmUsIG90aGVyd2lzZSBpdCB0cmllcyB0byB1c2UgdGhlIGhvc3QncyBoZWFkZXIKKy0tLSBh L2pzL3NyYy9idWlsZC9qcy5wYy5pbgorKysrIGIvanMvc3JjL2J1aWxkL2pzLnBjLmluCitAQCAt MTEsNCArMTEsNCBAQAorICMgVXNlIC1pc3lzdGVtIGZvciBpbmNsdWRlcyByYXRoZXIgdGhhbiAt SSwgdG8gbWFyayB0aGVtIGFzICJzeXN0ZW0gaGVhZGVycyIKKyAjIHRoYXQgZG9uJ3QgZ2VuZXJh dGUgd2FybmluZyBkaWFnbm9zdGljcy4gRm9yIGp1c3RpZmljYXRpb24sIHNlZQorICMgaHR0cHM6 Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzOTAzNgorLUNmbGFnczog LWluY2x1ZGUgJHtpbmNsdWRlZGlyfS9ASlNfTElCUkFSWV9OQU1FQC9qcy9SZXF1aXJlZERlZmlu ZXMuaCAtaXN5c3RlbSAke2luY2x1ZGVkaXJ9L0BKU19MSUJSQVJZX05BTUVACisrQ2ZsYWdzOiAt aW5jbHVkZSAke3BjX3N5c3Jvb3RkaXJ9JHtpbmNsdWRlZGlyfS9ASlNfTElCUkFSWV9OQU1FQC9q cy9SZXF1aXJlZERlZmluZXMuaCAtaXN5c3RlbSAke2luY2x1ZGVkaXJ9L0BKU19MSUJSQVJZX05B TUVACmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDctZml4LW1pcHMtc2dp ZGVmc19oLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA3LWZpeC1taXBzLXNnaWRl ZnNfaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWJiMTQw MjMzYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDctZml4 LW1pcHMtc2dpZGVmc19oLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL21mYnQvUmFuZG9t TnVtLmNwcAkyMDIwLTA0LTI5IDIzOjQ5OjQwLjAwMDAwMDAwMCArMDIwMAorKysrIGIvbWZidC9S YW5kb21OdW0uY3BwCTIwMjAtMDgtMDQgMTk6Mjk6MzYuMTI3NDcxMzAxICswMjAwCitAQCAtNTIs NyArNTIsNyBAQAorICMgIGVsaWYgZGVmaW5lZChfX3MzOTBfXykKKyAjICAgIGRlZmluZSBHRVRS QU5ET01fTlIgMzQ5CisgIyAgZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorLSMgICAgaW5jbHVkZSA8 c2dpZGVmcy5oPgorKyMgICAgaW5jbHVkZSA8YXNtL3NnaWRlZnMuaD4KKyAjICAgIGlmIF9NSVBT X1NJTSA9PSBfTUlQU19TSU1fQUJJMzIKKyAjICAgICAgZGVmaW5lIEdFVFJBTkRPTV9OUiA0MzUz CisgIyAgICBlbGlmIF9NSVBTX1NJTSA9PSBfTUlQU19TSU1fQUJJNjQKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbW96anM3OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRjaCBiL3NyY3BrZ3MvbW96anM3 OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uNTNlOTQ3NTYxY2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempz NzgvcGF0Y2hlcy9jb3ZlcmFnZS1hcGkucGF0Y2gKQEAgLTAsMCArMSwxMDcgQEAKK0Zyb20gZTVh MmViOTlmNjUzYWUwM2M2N2U1MzZkZjFkNTVkMjY1YTBhMTYwNSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IEV2YW4gV2Vsc2ggPGNvbnRhY3RAZXZhbndlbHNoLmNvbT4KK0RhdGU6IE1v biwgMTAgQXVnIDIwMjAgMTM6MTc6MzYgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gQnVnIDE2NTQ2 OTYgLSBJbXBsZW1lbnQgY29kZSBjb3ZlcmFnZSBKU0FQSS4KKyByPW5icCxwdG9tYXRvLGp3YWxk ZW4KKworLS0tCisganMvcHVibGljL2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaCB8IDI1ICsr KysrKysrKysrKysrKysrKysrKysrKysKKyBqcy9zcmMvanNmcmllbmRhcGkuY3BwICAgICAgICAg ICAgICAgIHwgIDMgKysrCisganMvc3JjL21vei5idWlsZCAgICAgICAgICAgICAgICAgICAgICB8 ICAxICsKKyBqcy9zcmMvc2hlbGwvanMuY3BwICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKysr LS0tLS0KKyA0IGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0p CisgY3JlYXRlIG1vZGUgMTAwNjQ0IGpzL3B1YmxpYy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdl LmgKKworZGlmZiAtLWdpdCBhL2pzL3B1YmxpYy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmgg Yi9qcy9wdWJsaWMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFnZS5oCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMDAwLi4wNmNjMGM5Y2EKKy0tLSAvZGV2L251bGwKKysrKyBiL2pz L3B1YmxpYy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmgKK0BAIC0wLDAgKzEsMjUgQEAKKysv KiAtKi0gTW9kZTogQysrOyB0YWItd2lkdGg6IDg7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgYy1i YXNpYy1vZmZzZXQ6IDIgLSotCisrICogdmltOiBzZXQgdHM9OCBzdHM9MiBldCBzdz0yIHR3PTgw OgorKyAqIFRoaXMgU291cmNlIENvZGUgRm9ybSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0 aGUgTW96aWxsYSBQdWJsaWMKKysgKiBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUg TVBMIHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzCisrICogZmlsZSwgWW91IGNhbiBvYnRh aW4gb25lIGF0IGh0dHA6Ly9tb3ppbGxhLm9yZy9NUEwvMi4wLy4gKi8KKysKKysjaWZuZGVmIGpz X2V4cGVyaW1lbnRhbF9Db2RlQ292ZXJhZ2VfaAorKyNkZWZpbmUganNfZXhwZXJpbWVudGFsX0Nv ZGVDb3ZlcmFnZV9oCisrCisrI2luY2x1ZGUgImpzdHlwZXMuaCIgICAgIC8vIEpTX0ZSSUVORF9B UEkKKysKKytzdHJ1Y3QgSlNfUFVCTElDX0FQSSBKU0NvbnRleHQ7CisrCisrbmFtZXNwYWNlIGpz IHsKKysKKysvKioKKysgKiBFbmFibGUgdGhlIGNvbGxlY3Rpb24gb2YgbGNvdiBjb2RlIGNvdmVy YWdlIG1ldHJpY3MuCisrICogTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGEgcnVudGltZSBpcyBjcmVh dGVkIGFuZCBiZWZvcmUgYW55IGNhbGxzIHRvCisrICogR2V0Q29kZUNvdmVyYWdlU3VtbWFyeS4K KysgKi8KKytleHRlcm4gSlNfRlJJRU5EX0FQSSB2b2lkIEVuYWJsZUNvZGVDb3ZlcmFnZSgpOwor KworK30gIC8vIG5hbWVzcGFjZSBqcworKworKyNlbmRpZiAgLy8ganNfZXhwZXJpbWVudGFsX0Nv ZGVDb3ZlcmFnZV9oCitkaWZmIC0tZ2l0IGEvanMvc3JjL2pzZnJpZW5kYXBpLmNwcCBiL2pzL3Ny Yy9qc2ZyaWVuZGFwaS5jcHAKK2luZGV4IGFmN2EwM2JkNC4uNWYyMGM2NTc2IDEwMDY0NAorLS0t IGEvanMvc3JjL2pzZnJpZW5kYXBpLmNwcAorKysrIGIvanMvc3JjL2pzZnJpZW5kYXBpLmNwcAor QEAgLTIwLDYgKzIwLDcgQEAKKyAjaW5jbHVkZSAiZ2MvUHVibGljSXRlcmF0b3JzLmgiCisgI2lu Y2x1ZGUgImdjL1dlYWtNYXAuaCIKKyAjaW5jbHVkZSAianMvQ2hhcmFjdGVyRW5jb2RpbmcuaCIK KysjaW5jbHVkZSAianMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFnZS5oIiAgLy8ganM6OkVuYWJs ZUNvZGVDb3ZlcmFnZQorICNpbmNsdWRlICJqcy9QcmludGYuaCIKKyAjaW5jbHVkZSAianMvUHJv eHkuaCIKKyAjaW5jbHVkZSAianMvV3JhcHBlci5oIgorQEAgLTE0NjUsNiArMTQ2Niw4IEBAIEpT X0ZSSUVORF9BUEkgdm9pZCBqczo6RW5hYmxlQWNjZXNzVmFsaWRhdGlvbihKU0NvbnRleHQqIGN4 LCBib29sIGVuYWJsZWQpIHsKKyAgIGN4LT5lbmFibGVBY2Nlc3NWYWxpZGF0aW9uID0gZW5hYmxl ZDsKKyB9CisgCisrSlNfRlJJRU5EX0FQSSB2b2lkIGpzOjpFbmFibGVDb2RlQ292ZXJhZ2UoKSB7 IGpzOjpjb3ZlcmFnZTo6RW5hYmxlTENvdigpOyB9CisrCisgSlNfRlJJRU5EX0FQSSB2b2lkIGpz OjpTZXRSZWFsbVZhbGlkQWNjZXNzUHRyKEpTQ29udGV4dCogY3gsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTOjpIYW5kbGVPYmplY3QgZ2xvYmFsLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiBhY2Nl c3NwKSB7CitkaWZmIC0tZ2l0IGEvanMvc3JjL21vei5idWlsZCBiL2pzL3NyYy9tb3ouYnVpbGQK K2luZGV4IGRlYjE1ZDgzYS4uYjRlOWUyYjAyIDEwMDc1NQorLS0tIGEvanMvc3JjL21vei5idWls ZAorKysrIGIvanMvc3JjL21vei5idWlsZAorQEAgLTIxMCw2ICsyMTAsNyBAQCBFWFBPUlRTLmpz ICs9IFsKKyBdCisgCisgRVhQT1JUUy5qcy5leHBlcmltZW50YWwgKz0gWworKyAgICAnLi4vcHVi bGljL2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaCcsCisgICAgICcuLi9wdWJsaWMvZXhwZXJp bWVudGFsL1NvdXJjZUhvb2suaCcsCisgXQorIAorZGlmZiAtLWdpdCBhL2pzL3NyYy9zaGVsbC9q cy5jcHAgYi9qcy9zcmMvc2hlbGwvanMuY3BwCitpbmRleCA0YjNmNTQ1ZTYuLjI1MmRkMjRmMCAx MDA2NDQKKy0tLSBhL2pzL3NyYy9zaGVsbC9qcy5jcHAKKysrKyBiL2pzL3NyYy9zaGVsbC9qcy5j cHAKK0BAIC0xMDQsMTAgKzEwNCwxMSBAQAorICNpbmNsdWRlICJqcy9Db21waWxlT3B0aW9ucy5o IgorICNpbmNsdWRlICJqcy9Db250ZXh0T3B0aW9ucy5oIiAgLy8gSlM6OkNvbnRleHRPcHRpb25z eyxSZWZ9CisgI2luY2x1ZGUgImpzL0RlYnVnLmgiCistI2luY2x1ZGUgImpzL0VxdWFsaXR5Lmgi ICAgICAgICAgICAgICAgICAvLyBKUzo6U2FtZVZhbHVlCistI2luY2x1ZGUgImpzL0Vycm9yUmVw b3J0LmgiICAgICAgICAgICAgICAvLyBKUzo6UHJpbnRFcnJvcgorLSNpbmNsdWRlICJqcy9FeGNl cHRpb24uaCIgICAgICAgICAgICAgICAgLy8gSlM6OlN0ZWFsUGVuZGluZ0V4Y2VwdGlvblN0YWNr CistI2luY2x1ZGUgImpzL2V4cGVyaW1lbnRhbC9Tb3VyY2VIb29rLmgiICAvLyBqczo6e1NldCxG b3JnZXQsfVNvdXJjZUhvb2sKKysjaW5jbHVkZSAianMvRXF1YWxpdHkuaCIgICAgICAgICAgICAg ICAgICAgLy8gSlM6OlNhbWVWYWx1ZQorKyNpbmNsdWRlICJqcy9FcnJvclJlcG9ydC5oIiAgICAg ICAgICAgICAgICAvLyBKUzo6UHJpbnRFcnJvcgorKyNpbmNsdWRlICJqcy9FeGNlcHRpb24uaCIg ICAgICAgICAgICAgICAgICAvLyBKUzo6U3RlYWxQZW5kaW5nRXhjZXB0aW9uU3RhY2sKKysjaW5j bHVkZSAianMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFnZS5oIiAgLy8ganM6OkVuYWJsZUNvZGVD b3ZlcmFnZQorKyNpbmNsdWRlICJqcy9leHBlcmltZW50YWwvU291cmNlSG9vay5oIiAgICAvLyBq czo6e1NldCxGb3JnZXQsfVNvdXJjZUhvb2sKKyAjaW5jbHVkZSAianMvR0NWZWN0b3IuaCIKKyAj aW5jbHVkZSAianMvSW5pdGlhbGl6YXRpb24uaCIKKyAjaW5jbHVkZSAianMvSlNPTi5oIgorQEAg LTExNDE2LDcgKzExNDE3LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2LCBjaGFy KiogZW52cCkgeworIAorICAgZW5hYmxlQ29kZUNvdmVyYWdlID0gb3AuZ2V0Qm9vbE9wdGlvbigi Y29kZS1jb3ZlcmFnZSIpOworICAgaWYgKGVuYWJsZUNvZGVDb3ZlcmFnZSkgeworLSAgICBjb3Zl cmFnZTo6RW5hYmxlTENvdigpOworKyAgICBqczo6RW5hYmxlQ29kZUNvdmVyYWdlKCk7CisgICB9 CisgCisgI2lmZGVmIEpTX1dJVEhPVVRfTlNQUgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4 L3RlbXBsYXRlIGIvc3JjcGtncy9tb3pqczc4L3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi41YWFmMDdiZDdkYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbW96anM3OC90ZW1wbGF0ZQpAQCAtMCwwICsxLDczIEBACisjIFRlbXBsYXRlIGZpbGUgZm9y ICdtb3pqczc4JworcGtnbmFtZT1tb3pqczc4Cit2ZXJzaW9uPTc4LjEuMAorcmV2aXNpb249MQor d3Jrc3JjPSJmaXJlZm94LSR7dmVyc2lvbn0iCitidWlsZF93cmtzcmM9anMvc3JjCitidWlsZF9z dHlsZT1nbnUtY29uZmlndXJlCitob3N0bWFrZWRlcGVuZHM9InBlcmwgcHl0aG9uIHBrZy1jb25m aWcgYXV0b21ha2UgYXV0b2NvbmYyMTMgYXV0b2NvbmYtYXJjaGl2ZQorIGNhcmdvIHJ1c3QgbGx2 bSBjbGFuZyB3aGljaCBweXRob24zIgorbWFrZWRlcGVuZHM9ImljdS1kZXZlbCBsaWJmZmktZGV2 ZWwgbnNwci1kZXZlbCBweXRob24tZGV2ZWwgcmVhZGxpbmUtZGV2ZWwKKyB6bGliLWRldmVsIHB5 dGhvbjMtZGV2ZWwgcnVzdC1zdGQiCitkZXBlbmRzPSJuc3ByPj00LjE5Igorc2hvcnRfZGVzYz0i TW96aWxsYSBKYXZhU2NyaXB0IGludGVycHJldGVyIGFuZCBsaWJyYXJ5ICg3OC54IHNlcmllcyki CittYWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPiIKK2xpY2Vuc2U9Ik1QTC0y LjAiCitob21lcGFnZT0iaHR0cHM6Ly93d3cubW96aWxsYS5vcmcvanMvIgorZGlzdGZpbGVzPSIk e01PWklMTEFfU0lURX0vZmlyZWZveC9yZWxlYXNlcy8ke3ZlcnNpb259ZXNyL3NvdXJjZS9maXJl Zm94LSR7dmVyc2lvbn1lc3Iuc291cmNlLnRhci54eiIKK2NoZWNrc3VtPTM2MDBhMzk2ZDkzMTJj NWU5ZjYzN2IyNjc5MjZjYTQ3NzFkODRhNTZiMjZiOTYwY2M3ZDcyZTk4NjgzYjY0YTIKK3BhdGNo X2FyZ3M9Ii1OcDEiCisKK0NYWEZMQUdTKz0iIC1Xbm8tY2xhc3MtbWVtYWNjZXNzIgorTERGTEFH Uys9IiAtV2wsLXosc3RhY2stc2l6ZT0xMDQ4NTc2IgorCitpZiBbICIkWEJQU19UQVJHRVRfTk9f QVRPTUlDOCIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0iIGxpYmF0b21pYy1kZXZlbCIKKwlMREZM QUdTKz0iIC1sYXRvbWljIgorZmkKKworZG9fY29uZmlndXJlKCkgeworCWxvY2FsIF9hcmdzCisJ IyB1c2UgZ2NjIGFzIGFzc2VtYmxlciB0byBhdm9pZCBlcnJvcnMKKwl1bnNldCBBUworCisJaWYg WyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWV4cG9ydCBIT1NUX0NDPWNjCisJCWV4cG9ydCBU QVJHRVRfQ0M9IiR7Q0N9IgorCQlleHBvcnQgSE9TVF9DRkxBR1M9Ii1PcyIKKwkJZXhwb3J0IEhP U1RfQ1hYRkxBR1M9Ii1PcyIKKwkJX2FyZ3MrPSIgLS10YXJnZXQ9JFhCUFNfQ1JPU1NfVFJJUExF VCAtLWVuYWJsZS1saW5rZXI9YmZkIgorCWZpCisKKwlhdXRvY29uZi0yLjEzIG9sZC1jb25maWd1 cmUuaW4gPiBvbGQtY29uZmlndXJlCisKKwl0b3VjaCAke3dya3NyY30vanMvc3JjL2NvbmZpZ3Vy ZQorCXRvdWNoICR7d3Jrc3JjfS9qcy9zcmMvb2xkLWNvbmZpZ3VyZQorCVNIRUxMPS9iaW4vYmFz aCBQWVRIT049L3Vzci9iaW4vcHl0aG9uMiAuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIFwKKwkJ LS1kaXNhYmxlLWplbWFsbG9jIC0tZGlzYWJsZS1vcHRpbWl6ZSAtLWVuYWJsZS1jdHlwZXMgXAor CQktLWVuYWJsZS1yZWFkbGluZSAtLWVuYWJsZS1zaGFyZWQtanMgLS1lbmFibGUtc3lzdGVtLWZm aSBcCisJCS0tZW5hYmxlLXRlc3RzIC0td2l0aC1pbnRsLWFwaSAtLXdpdGgtc3lzdGVtLWljdSAt LXdpdGgtc3lzdGVtLW5zcHIgXAorCQktLWVuYWJsZS1oYXJkZW5pbmcgLS1lbmFibGUtcmVsZWFz ZSAtLXdpdGgtc3lzdGVtLXpsaWIgXAorCQktLXRhcmdldD0ke1hCUFNfVFJJUExFVH0gLS1ob3N0 PSR7WEJQU19UUklQTEVUfSBcCisJCSR7X2FyZ3N9Cit9CisKK2RvX2NoZWNrKCkgeworCWRpc3Qv YmluL2pzYXBpLXRlc3RzIC0tZm9ybWF0PW5vbmUgLS1leGNsdWRlLXJhbmRvbSBiYXNpYworfQor Citwb3N0X2luc3RhbGwoKSB7CisJIyBSZW1vdmUgdW5uZWVkZWQgc3RhdGljIGxpYnJhcnkKKwly bSAtZiAiJHtERVNURElSfSIvdXNyL2xpYi8qLmFqcworfQorCittb3pqczc4LWRldmVsX3BhY2th Z2UoKSB7CisJZGVwZW5kcz0ibnNwci1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCisJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBrZ19pbnN0 YWxsKCkgeworCQl2bW92ZSB1c3IvYmluL2pzNzgtY29uZmlnCisJCXZtb3ZlIHVzci9pbmNsdWRl CisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCisJfQor fQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3VwZGF0ZSBiL3NyY3BrZ3MvbW96anM3OC91 cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5NDdlMTkyMTdm Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3VwZGF0ZQpAQCAtMCwwICsxIEBA Citwa2duYW1lPSdtb3pqcycKCkZyb20gMDNlYWZmMjg0NWJmM2Q0NWU1N2UzNTM1MmY4ZWQzOGU4 ZjIyMDI3ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDY6NDI6MDIgKzAyMDAK U3ViamVjdDogW1BBVENIIDcxLzgzXSBnanM6IHVwZGF0ZSB0byAxLjY1LjkxCgotLS0KIHNyY3Br Z3MvZ2pzL3RlbXBsYXRlIHwgMTMgKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dqcy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ2pzL3RlbXBsYXRlCmluZGV4IGVjNDhiYWRkZjExLi5lNGUxZmFmZWRj MiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nanMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nanMvdGVt cGxhdGUKQEAgLTEsMjcgKzEsMzIgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dqcycKIHBrZ25h bWU9Z2pzCi12ZXJzaW9uPTEuNjUuMgordmVyc2lvbj0xLjY1LjkxCiByZXZpc2lvbj0xCiBidWls ZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSIt RHNraXBfZGJ1c190ZXN0cz10cnVlIC1Ec2tpcF9ndGtfdGVzdHM9dHJ1ZQogIC1EcHJvZmlsZXI9 ZGlzYWJsZWQgLURpbnN0YWxsZWRfdGVzdHM9ZmFsc2UiICMgRGlzYWJsZSB0ZXN0cyBiZWNhdXNl IHRoZXkgbmVlZCBkYnVzLCBYIGFuZCBHVEsuCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwg cGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJkYnVzLWdsaWItZGV2ZWwgbW96anM2OC1kZXZlbCBy ZWFkbGluZS1kZXZlbCBzeXNwcm9mLWRldmVsIgorbWFrZWRlcGVuZHM9ImRidXMtZ2xpYi1kZXZl bCBtb3pqczc4LWRldmVsIHJlYWRsaW5lLWRldmVsIHN5c3Byb2YtZGV2ZWwiCiBzaG9ydF9kZXNj PSJNb3ppbGxhLWJhc2VkIGphdmFzY3JpcHQgYmluZGluZ3MgZm9yIHRoZSBHTk9NRSBwbGF0Zm9y bSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJNSVQsIExHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9t ZS5vcmcvYWN0aW9uL3Nob3cvUHJvamVjdHMvR2pzIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxh Yi5nbm9tZS5vcmcvR05PTUUvZ2pzL2Jsb2IvZ25vbWUtMy0zMC9ORVdTIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09YTY2ZWRhZDhhNWYxMDAyN2Y5YjE4MmQ4OGFmODRiODFmMTNl NWFkNTg0MDMxOWNmYTc0N2Q2NmU3N2UwMjE0ZgorY2hlY2tzdW09NjNmMzVmNmE1N2QwMTNkNDJk NGU0NGJhNWVmYThhMzY4MmQ4ZmVlNmVhZDY1Y2VkYTgyY2E1N2ZkNjJhNjUwMworCisjIEEgZmV3 IHRlc3RzIG15c3RlcmlvdXNseSBmYWlsIGZvciBub3cKK2RvX2NoZWNrKCkgeworCToKK30KIAog cG9zdF9pbnN0YWxsKCkgewogCXZsaWNlbnNlIENPUFlJTkcKIH0KIAogZ2pzLWRldmVsX3BhY2th Z2UoKSB7Ci0JZGVwZW5kcz0ibGliZ2lyZXBvc2l0b3J5LWRldmVsIG1vempzNjgtZGV2ZWwgJHtz b3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCWRlcGVuZHM9ImxpYmdpcmVwb3Np dG9yeS1kZXZlbCBtb3pqczc4LWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2luc3RhbGwo KSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCgpGcm9tIGIwMTU2MzM5ZDI2ZDNhZmYxOGFiOWQwZjI1 NTJhMGQzYTM5Y2Y0NTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA1OjIzOjM4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCA3Mi84M10gZ25vbWUtYnVpbGRlcjogdXBkYXRlIHRvIDMu MzcuOTAKCltjaSBza2lwXQotLS0KIC4uLi9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0x LjAuMC5wYXRjaCB8ICAyMiAtLQogc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbWVzb24w NTIucGF0Y2ggIHwgMzM0IC0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9nbm9tZS1idWlsZGVy L3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgIDE1ICstCiAzIGZpbGVzIGNoYW5nZWQsIDEwIGlu c2VydGlvbnMoKyksIDM2MSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbWVzb24wNTIucGF0Y2gKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNo IGIvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I5YjRhMmJmMWEuLjAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1jb21taXQgNDQxMzZhMmU1YzUyNjIzYjBlNjJjMzg4 NDZmNTExZjMwNzYxNWNlMgotQXV0aG9yOiBxNjYgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgotRGF0 ZTogICBTdW4gTWF5IDMgMTk6NTI6MDkgMjAyMCArMDIwMAotCi0gICAgZml4IGJ1aWxkIHdpdGgg bGliZ2l0Mi0xLjAuMAotCi1kaWZmIC0tZ2l0IGEvc3JjL3BsdWdpbnMvZ2l0L2RhZW1vbi9pcGMt Z2l0LXJlcG9zaXRvcnktaW1wbC5jIGIvc3JjL3BsdWdpbnMvZ2l0L2RhZW1vbi9pcGMtZ2l0LXJl cG9zaXRvcnktaW1wbC5jCi1pbmRleCA3ZjAxMDQyLi4yY2NjNGRmIDEwMDY0NAotLS0tIGEvc3Jj L3BsdWdpbnMvZ2l0L2RhZW1vbi9pcGMtZ2l0LXJlcG9zaXRvcnktaW1wbC5jCi0rKysgYi9zcmMv cGx1Z2lucy9naXQvZGFlbW9uL2lwYy1naXQtcmVwb3NpdG9yeS1pbXBsLmMKLUBAIC0zMywxMSAr MzMsNyBAQAotICNpbmNsdWRlICJpcGMtZ2l0LXR5cGVzLmgiCi0gI2luY2x1ZGUgImlwYy1naXQt dXRpbC5oIgotIAotLSNpZiBMSUJHSVQyX1NPVkVSU0lPTiA+PSAyOAotIEdfREVGSU5FX0FVVE9f Q0xFQU5VUF9DTEVBUl9GVU5DIChnaXRfYnVmLCBnaXRfYnVmX2Rpc3Bvc2UpCi0tI2Vsc2UKLS1H X0RFRklORV9BVVRPX0NMRUFOVVBfQ0xFQVJfRlVOQyAoZ2l0X2J1ZiwgZ2l0X2J1Zl9mcmVlKQot LSNlbmRpZgotIAotIHR5cGVkZWYgZW51bQotIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt YnVpbGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1idWlsZGVyL3Bh dGNoZXMvbWVzb24wNTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4YzI4 ZTgyYzFlLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9t ZXNvbjA1Mi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzNCArMCwwIEBACi1Gcm9tIGM4Yjg2 MmI0OTFjZmJiYjRmNzliMjRkN2NkOTBlNGZiMWYzN2NiOWYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBEaWVnbyBFc2NhbGFudGUgVXJyZWxvIDxkaWVnb2VAZ25vbWUub3JnPgotRGF0 ZTogRnJpLCAyNSBPY3QgMjAxOSAwNDo0OToxNSAtMDUwMAotU3ViamVjdDogW1BBVENIXSBXSVA6 IGJ1aWxkOiBGaXggbGlua193aG9sZSB1c2FnZSBmb3IgbWVzb24gMC41Mi4wCi0KLU1lc29uIDAu NTIuMCBjaGFuZ2VkIGhvdyBsaW5rX3dob2xlIGJlaGF2ZXMgYW5kIGluIGRvaW5nIHNvIGJyb2tl IG91cgotdXNhZ2Ugb2YgbGlua193aG9sZSBpbnRlcm5hbGx5LgotCi1BIHF1aWNrIGdsYW5jZSBv dmVyIG1lc29uYnVpbGQvYmFja2VuZC9uaW5qYWJhY2tlbmQucHkgc2VlbXMgdG8gY29uZmlybQot Q2hyaXN0aWFuJ3Mgc3VzcGljaW9uIHRoYXQgbGlua193aXRoIGlzIHdoYXQgd2Ugd2FudCBmb3Ig aW50ZXJuYWwgdXNlLAotYW5kIGxpbmtfd2hvbGUgZm9yIHRoZSBmaW5hbCBiaW5hcnkuCi0KLVlv dSBjYW4gc2VlIHNvbWUgbW9yZSByZWZlcmVuY2VzIHRvIHRoaXMgYW5kIHNpbWlsYXIgaXNzdWVz IGluIHRoZQotZm9sbG93aW5nIGpoYnVpbGQgY29tbWl0OgotaHR0cHM6Ly9naXRsYWIuZ25vbWUu b3JnL0dOT01FL2poYnVpbGQvY29tbWl0L2RiZTY3OTA0NWZmNTk4MjU3N2YyMmU3YWY4ZGM4ZmRm YmQxYzYzMTEKLQotRml4ZXM6IGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1i dWlsZGVyL2lzc3Vlcy8xMDU3Ci0tLS0KLSBzcmMvbGliaWRlL2NvZGUvbWVzb24uYnVpbGQgICAg ICAgfCAgMiArLQotIHNyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZCAgICAgICB8ICAyICstCi0g c3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZCAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2Vk aXRvci9tZXNvbi5idWlsZCAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5i dWlsZCAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9ncmVldGVyL21lc29uLmJ1aWxkICAgIHwgIDIg Ky0KLSBzcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZCAgICAgICAgfCAgMiArLQotIHNyYy9saWJp ZGUvaW8vbWVzb24uYnVpbGQgICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9sc3AvbWVzb24u YnVpbGQgICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQgICAg fCAgMiArLQotIHNyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQgICB8ICAyICstCi0gc3Jj L2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3NvdXJj ZXZpZXcvbWVzb24uYnVpbGQgfCAgMiArLQotIHNyYy9saWJpZGUvdGVybWluYWwvbWVzb24uYnVp bGQgICB8ICAyICstCi0gc3JjL2xpYmlkZS90aGVtZXMvbWVzb24uYnVpbGQgICAgIHwgIDIgKy0K LSBzcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZCAgfCAgMiArLQotIHNyYy9saWJpZGUv dHJlZS9tZXNvbi5idWlsZCAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVp bGQgICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZCAgICAgfCAg MiArLQotIHNyYy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICB8IDI2ICsrKysrKysrKysr KysrKysrKysrKysrKystCi0gMjAgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMjAg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2NvZGUvbWVzb24uYnVpbGQg Yi9zcmMvbGliaWRlL2NvZGUvbWVzb24uYnVpbGQKLWluZGV4IGRkYWNkYzE2Mi4uMWE0ZmM1ZDI2 IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGli aWRlL2NvZGUvbWVzb24uYnVpbGQKLUBAIC0xNzUsNyArMTc1LDcgQEAgbGliaWRlX2NvZGUgPSBz dGF0aWNfbGlicmFyeSgnaWRlLWNvZGUtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVf Y29kZV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBs aWJpZGVfY29kZV9wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfY29kZV9nZW5lcmF0ZWRfaGVhZGVy cywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9jb2RlX2RlcHMsCi0tICAgICAgICAg ICBsaW5rX3dob2xlOiBsaWJpZGVfY29kZSwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlk ZV9jb2RlLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicp LAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2NvcmUvbWVzb24uYnVpbGQgYi9zcmMv bGliaWRlL2NvcmUvbWVzb24uYnVpbGQKLWluZGV4IDFmYTgyZmFkOS4uYmI3NWNiZjI2IDEwMDY0 NAotLS0tIGEvc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2Nv cmUvbWVzb24uYnVpbGQKLUBAIC0xMTcsNyArMTE3LDcgQEAgbGliaWRlX2NvcmUgPSBzdGF0aWNf bGlicmFyeSgnaWRlLWNvcmUtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX2NvcmVfc291 cmMKLSBsaWJpZGVfY29yZV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAg ICBzb3VyY2VzOiBsaWJpZGVfY29yZV9wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfY29yZV9nZW5l cmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9jb3JlX2RlcHMs Ci0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfY29yZSwKLSsgICAgICAgICAgICBsaW5r X3dpdGg6IGxpYmlkZV9jb3JlLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJl Y3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2RlYnVnZ2VyL21l c29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZAotaW5kZXggZGZmY2Ey MGNhLi5iNWU3MmQ1YzAgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1 aWxkCi0rKysgYi9zcmMvbGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1aWxkCi1AQCAtODQsNyArODQs NyBAQCBsaWJpZGVfZGVidWdnZXIgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWRlYnVnZ2VyLScgKyBs aWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX2RlYnVnZ2VyX2RlcCA9IGRlY2xhcmVfZGVwZW5k ZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9kZWJ1Z2dlcl9wcml2YXRlX2hl YWRlcnMgKyBsaWJpZGVfZGVidWdnZXJfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVw ZW5kZW5jaWVzOiBsaWJpZGVfZGVidWdnZXJfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6 IGxpYmlkZV9kZWJ1Z2dlciwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9kZWJ1Z2dl ciwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAp Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9lZGl0b3IvbWVzb24uYnVpbGQgYi9zcmMvbGli aWRlL2VkaXRvci9tZXNvbi5idWlsZAotaW5kZXggMjgzODQyNWI3Li44MDhlZDc4NGYgMTAwNjQ0 Ci0tLS0gYS9zcmMvbGliaWRlL2VkaXRvci9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9l ZGl0b3IvbWVzb24uYnVpbGQKLUBAIC0xMDcsNyArMTA3LDcgQEAgbGliaWRlX2VkaXRvciA9IHN0 YXRpY19saWJyYXJ5KCdpZGUtZWRpdG9yLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9l ZGl0b3IKLSAKLSBsaWJpZGVfZWRpdG9yX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAg ICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9lZGl0b3JfZGVwcywKLS0gICAgICAgICAgIGxpbmtf d2hvbGU6IGxpYmlkZV9lZGl0b3IsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZWRp dG9yLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAot ICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2VkaXRvcl9nZW5lcmF0ZWRfaGVhZGVycywK LSApCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9mb3VuZHJ5L21lc29uLmJ1aWxkIGIvc3JjL2xp YmlkZS9mb3VuZHJ5L21lc29uLmJ1aWxkCi1pbmRleCAyMjYzOTdjMTUuLmQ0ODc4YWExMSAxMDA2 NDQKLS0tLSBhL3NyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlk ZS9mb3VuZHJ5L21lc29uLmJ1aWxkCi1AQCAtMTc4LDcgKzE3OCw3IEBAIGxpYmlkZV9mb3VuZHJ5 ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1mb3VuZHJ5LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0g Ci0gbGliaWRlX2ZvdW5kcnlfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgIGRl cGVuZGVuY2llczogbGliaWRlX2ZvdW5kcnlfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6 IGxpYmlkZV9mb3VuZHJ5LAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2ZvdW5kcnks Ci0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gICAg ICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZm91bmRyeV9nZW5lcmF0ZWRfaGVhZGVycywKLSAp Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9ncmVldGVyL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlk ZS9ncmVldGVyL21lc29uLmJ1aWxkCi1pbmRleCAzOTY4Y2E0MWUuLjEyMWQ0OThkMCAxMDA2NDQK LS0tLSBhL3NyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9n cmVldGVyL21lc29uLmJ1aWxkCi1AQCAtODMsNyArODMsNyBAQCBsaWJpZGVfZ3JlZXRlciA9IHN0 YXRpY19saWJyYXJ5KCdpZGUtZ3JlZXRlci0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlk ZV9ncmVldGVyX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJj ZXM6IGxpYmlkZV9ncmVldGVyX3ByaXZhdGVfaGVhZGVycyArIGxpYmlkZV9ncmVldGVyX2dlbmVy YXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2dyZWV0ZXJfZGVw cywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9ncmVldGVyLAotKyAgICAgICAgICAg IGxpbmtfd2l0aDogbGliaWRlX2dyZWV0ZXIsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNs dWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZ3Vp L21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQKLWluZGV4IDlmNDY5ZDJm YS4uOTQzMTEyODJmIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQKLSsr KyBiL3NyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkCi1AQCAtMjA0LDcgKzIwNCw3IEBAIGxpYmlk ZV9ndWkgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWd1aS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBs aWJpZGVfZ3VpX3NvdXJjZXMsCi0gbGliaWRlX2d1aV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3ko Ci0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZ3VpX3ByaXZhdGVfaGVhZGVycyArIGxp YmlkZV9ndWlfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJp ZGVfZ3VpX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZ3VpLAotKyAgICAg ICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2d1aSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGlu Y2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9p by9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQKLWluZGV4IGI1YjZmNGM2 OC4uZjQ4YjNiZDhkIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9pby9tZXNvbi5idWlsZAotKysr IGIvc3JjL2xpYmlkZS9pby9tZXNvbi5idWlsZAotQEAgLTYzLDcgKzYzLDcgQEAgbGliaWRlX2lv ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1pby0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVf aW9fc291cmNlcywKLSAKLSBsaWJpZGVfaW9fZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAg ICAgICAgIGRlcGVuZGVuY2llczogWyBsaWJnaW9fZGVwLCBsaWJpZGVfY29yZV9kZXAsIGxpYmlk ZV90aHJlYWRpbmdfZGVwIF0sCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfaW8sCi0r ICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfaW8sCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVz OiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJp ZGUvbHNwL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9sc3AvbWVzb24uYnVpbGQKLWluZGV4IDIz YWJhNzRmYS4uYzgxNDBjYTAzIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9sc3AvbWVzb24uYnVp bGQKLSsrKyBiL3NyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxkCi1AQCAtODQsNyArODQsNyBAQCBs aWJpZGVfbHNwID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1sc3AtJyArIGxpYmlkZV9hcGlfdmVyc2lv biwgbGliaWRlX2xzcF9zb3VyY2VzLAotIGxpYmlkZV9sc3BfZGVwID0gZGVjbGFyZV9kZXBlbmRl bmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2xzcF9wcml2YXRlX2hlYWRlcnMs Ci0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfbHNwX2RlcHMsCi0tICAgICAgICAgICBs aW5rX3dob2xlOiBsaWJpZGVfbHNwLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2xz cCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAp Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9wbHVnaW5zL21lc29uLmJ1aWxkIGIvc3JjL2xp YmlkZS9wbHVnaW5zL21lc29uLmJ1aWxkCi1pbmRleCBhMzNjNTI4YzkuLmZmZjU5OWRiMyAxMDA2 NDQKLS0tLSBhL3NyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlk ZS9wbHVnaW5zL21lc29uLmJ1aWxkCi1AQCAtNTEsNyArNTEsNyBAQCBsaWJpZGVfcGx1Z2lucyA9 IHN0YXRpY19saWJyYXJ5KCdpZGUtcGx1Z2lucy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxp YmlkZV9wbHVnaW5zX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNv dXJjZXM6IGxpYmlkZV9wbHVnaW5zX3ByaXZhdGVfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRl bmNpZXM6IGxpYmlkZV9wbHVnaW5zX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJp ZGVfcGx1Z2lucywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9wbHVnaW5zLAotICAg aW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRp ZmYgLS1naXQgYS9zcmMvbGliaWRlL3Byb2plY3RzL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9w cm9qZWN0cy9tZXNvbi5idWlsZAotaW5kZXggNDYzZmYwNmJjLi4zY2M5NzI1YzYgMTAwNjQ0Ci0t LS0gYS9zcmMvbGliaWRlL3Byb2plY3RzL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3By b2plY3RzL21lc29uLmJ1aWxkCi1AQCAtNzksNyArNzksNyBAQCBsaWJpZGVfcHJvamVjdHMgPSBz dGF0aWNfbGlicmFyeSgnaWRlLXByb2plY3RzLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlk ZV9wcgotIGxpYmlkZV9wcm9qZWN0c19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAg ICAgICAgICBzb3VyY2VzOiBsaWJpZGVfcHJvamVjdHNfcHJpdmF0ZV9oZWFkZXJzLAotICAgICAg ICAgIGRlcGVuZGVuY2llczogbGliaWRlX3Byb2plY3RzX2RlcHMsCi0tICAgICAgICAgICBsaW5r X3dob2xlOiBsaWJpZGVfcHJvamVjdHMsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVf cHJvamVjdHMsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcu JyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkIGIv c3JjL2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQKLWluZGV4IGU1YjNiNDNhYi4uY2Y3M2FhOTFk IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9s aWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkCi1AQCAtNTEsNyArNTEsNyBAQCBsaWJpZGVfc2VhcmNo ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1zZWFyY2gtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGli aWRlX3NlYXJjaAotIAotIGxpYmlkZV9zZWFyY2hfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAot ICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3NlYXJjaF9kZXBzLAotLSAgICAgICAgICAg bGlua193aG9sZTogbGliaWRlX3NlYXJjaCwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlk ZV9zZWFyY2gsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcu JyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvc291cmNldmlldy9tZXNvbi5idWls ZCBiL3NyYy9saWJpZGUvc291cmNldmlldy9tZXNvbi5idWlsZAotaW5kZXggYzRiYTEyZDFmLi45 OTY0MTI5OGIgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQK LSsrKyBiL3NyYy9saWJpZGUvc291cmNldmlldy9tZXNvbi5idWlsZAotQEAgLTE1OCw3ICsxNTgs NyBAQCBsaWJpZGVfc291cmNldmlldyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtc291cmNldmlldy0n ICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV9zb3VyY2V2aWV3X2RlcCA9IGRlY2xhcmVf ZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9zb3VyY2V2aWV3X3By aXZhdGVfaGVhZGVycyArIGxpYmlkZV9zb3VyY2V2aWV3X2dlbmVyYXRlZF9oZWFkZXJzLAotICAg ICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3NvdXJjZXZpZXdfZGVwcywKLS0gICAgICAgICAg IGxpbmtfd2hvbGU6IGxpYmlkZV9zb3VyY2V2aWV3LAotKyAgICAgICAgICAgIGxpbmtfd2l0aDog bGliaWRlX3NvdXJjZXZpZXcsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVj dG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdGVybWluYWwvbWVz b24uYnVpbGQgYi9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkCi1pbmRleCAxZDdjOWY3 MjcuLjZhZmZjYWUxNCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdGVybWluYWwvbWVzb24uYnVp bGQKLSsrKyBiL3NyYy9saWJpZGUvdGVybWluYWwvbWVzb24uYnVpbGQKLUBAIC05Myw3ICs5Myw3 IEBAIGxpYmlkZV90ZXJtaW5hbCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdGVybWluYWwtJyArIGxp YmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfdGVybWluYWxfZGVwID0gZGVjbGFyZV9kZXBlbmRl bmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3Rlcm1pbmFsX2dlbmVyYXRlZF9o ZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3Rlcm1pbmFsX2RlcHMsCi0t ICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfdGVybWluYWwsCi0rICAgICAgICAgICAgbGlu a193aXRoOiBsaWJpZGVfdGVybWluYWwsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRl X2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdGhlbWVz L21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS90aGVtZXMvbWVzb24uYnVpbGQKLWluZGV4IDlkNmM4 ZTI0Ny4uZDg4M2E0Yjg2IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS90aGVtZXMvbWVzb24uYnVp bGQKLSsrKyBiL3NyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkCi1AQCAtNDYsNyArNDYsNyBA QCBsaWJpZGVfdGhlbWVzID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10aGVtZXMtJyArIGxpYmlkZV9h cGlfdmVyc2lvbiwKLSBsaWJpZGVfdGhlbWVzX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAg ICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90aGVtZXNfcmVzb3VyY2VzWzFdLAotICAgICAg ICAgIGRlcGVuZGVuY2llczogbGliaWRlX3RoZW1lc19kZXBzLAotLSAgICAgICAgICAgbGlua193 aG9sZTogbGliaWRlX3RoZW1lcywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV90aGVt ZXMsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0g KQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkIGIvc3Jj L2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQKLWluZGV4IGQzOGRkZmI2NC4uZDYyOGJlMmZm IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQKLSsrKyBiL3Ny Yy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi1AQCAtNjYsNyArNjYsNyBAQCBsaWJpZGVf dGhyZWFkaW5nID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10aHJlYWRpbmctJyArIGxpYmlkZV9hcGlf dmVyc2lvbiwgbGliaWRlXwotIGxpYmlkZV90aHJlYWRpbmdfZGVwID0gZGVjbGFyZV9kZXBlbmRl bmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3RocmVhZGluZ19wcml2YXRlX2hl YWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdGhyZWFkaW5nX2RlcHMsCi0t ICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfdGhyZWFkaW5nLAotKyAgICAgICAgICAgIGxp bmtfd2l0aDogbGliaWRlX3RocmVhZGluZywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1 ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90cmVl L21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS90cmVlL21lc29uLmJ1aWxkCi1pbmRleCA3Yjk5MjI4 MjguLjVhNTkxMTA2YyAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZAot KysrIGIvc3JjL2xpYmlkZS90cmVlL21lc29uLmJ1aWxkCi1AQCAtNjEsNyArNjEsNyBAQCBsaWJp ZGVfdHJlZSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdHJlZS0nICsgbGliaWRlX2FwaV92ZXJzaW9u LCBsaWJpZGVfdHJlZV9zb3VyYwotIGxpYmlkZV90cmVlX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5j eSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90cmVlX3ByaXZhdGVfaGVhZGVycywK LSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90cmVlX2RlcHMsCi0tICAgICAgICAgICBs aW5rX3dob2xlOiBsaWJpZGVfdHJlZSwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV90 cmVlLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAot ICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZCBiL3NyYy9saWJp ZGUvdmNzL21lc29uLmJ1aWxkCi1pbmRleCA2YjBlMTU3YzQuLmM3NjJhZmI2NCAxMDA2NDQKLS0t LSBhL3NyYy9saWJpZGUvdmNzL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3Zjcy9tZXNv bi5idWlsZAotQEAgLTg0LDcgKzg0LDcgQEAgbGliaWRlX3ZjcyA9IHN0YXRpY19saWJyYXJ5KCdp ZGUtdmNzLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gCi0gbGliaWRlX3Zjc19kZXAgPSBkZWNs YXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdmNzX2RlcHMs Ci0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfdmNzLAotKyAgICAgICAgICAgIGxpbmtf d2l0aDogbGliaWRlX3ZjcywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0 b3JpZXMoJy4nKSwKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV92Y3NfZ2VuZXJhdGVk X2hlYWRlcnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxk IGIvc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQKLWluZGV4IGUxNzY3YWU0Ni4uZmNlNDc3 YjM2IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQKLSsrKyBiL3Ny Yy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkCi1AQCAtMzksNyArMzksNyBAQCBsaWJpZGVfd2Vi a2l0ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS13ZWJraXQtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwg bGliaWRlX3dlYmtpdAotIAotIGxpYmlkZV93ZWJraXRfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5 KAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3dlYmtpdF9kZXBzLAotLSAgICAgICAg ICAgbGlua193aG9sZTogbGliaWRlX3dlYmtpdCwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxp YmlkZV93ZWJraXQsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVz KCcuJyksCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfd2Via2l0X2dlbmVyYXRlZF9o ZWFkZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMvbWVzb24uYnVpbGQgYi9zcmMvbWVzb24uYnVp bGQKLWluZGV4IDNlYjliYTUzNS4uMTEzYTE0MmFkIDEwMDY0NAotLS0tIGEvc3JjL21lc29uLmJ1 aWxkCi0rKysgYi9zcmMvbWVzb24uYnVpbGQKLUBAIC00OCw2ICs0OCwzMCBAQCBnbm9tZV9idWls ZGVyX2RlcHMgPSBbCi0gICBsaWJpZGVfdHJlZV9kZXAsCi0gXQotIAotK2dub21lX2J1aWxkZXJf c3RhdGljID0gWwotKyAgbGliaWRlX2NvZGUsCi0rICBsaWJpZGVfY29yZSwKLSsgIGxpYmlkZV9k ZWJ1Z2dlciwKLSsgIGxpYmlkZV9lZGl0b3IsCi0rICBsaWJpZGVfZm91bmRyeSwKLSsgIGxpYmlk ZV9ncmVldGVyLAotKyAgbGliaWRlX2d1aSwKLSsgIGxpYmlkZV9pbywKLSsgIGxpYmlkZV9sc3As Ci0rICBsaWJpZGVfcGx1Z2lucywKLSsgIGxpYmlkZV9wcm9qZWN0cywKLSsgIGxpYmlkZV9zZWFy Y2gsCi0rICBsaWJpZGVfc291cmNldmlldywKLSsgIGxpYmlkZV90ZXJtaW5hbCwKLSsgIGxpYmlk ZV90aGVtZXMsCi0rICBsaWJpZGVfdGhyZWFkaW5nLAotKyAgbGliaWRlX3RyZWUsCi0rICBsaWJp ZGVfdmNzLAotKyAgbGliaWRlX3dlYmtpdCwKLSsKLSsgIHBsdWdpbnMsCi0rXQotKwotIGlmIGxp YnN5c3Byb2ZfY2FwdHVyZS5mb3VuZCgpCi0gICBnbm9tZV9idWlsZGVyX2RlcHMgKz0gbGlic3lz cHJvZl9jYXB0dXJlCi0gZW5kaWYKLUBAIC03Nyw3ICsxMDEsNyBAQCBnbm9tZV9idWlsZGVyID0g ZXhlY3V0YWJsZSgnZ25vbWUtYnVpbGRlcicsICdtYWluLmMnLCAnYnVnLWJ1ZGR5LmMnLAotICAg ICAgICAgICAgIGNfYXJnczogbGliaWRlX2FyZ3MgKyBleGVfY19hcmdzICsgcmVsZWFzZV9hcmdz LAotICAgICAgICAgIGxpbmtfYXJnczogZXhlX2xpbmtfYXJncywKLSAgICAgICAgICAgICAgICBw aWU6IHRydWUsCi0tICAgICAgICBsaW5rX3dob2xlOiBwbHVnaW5zLAotKyAgICAgICAgbGlua193 aG9sZTogZ25vbWVfYnVpbGRlcl9zdGF0aWMsCi0gICAgICBpbnN0YWxsX3JwYXRoOiBwa2dsaWJk aXJfYWJzLAotICAgICAgIGRlcGVuZGVuY2llczogZ25vbWVfYnVpbGRlcl9kZXBzLAotICkKLS0t IAotMi4yNC4xCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQppbmRleCA4YzhjMDE1ZDhhMy4uMDk2ODAy N2E2N2IgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1idWlsZGVyJwogcGtnbmFtZT1nbm9tZS1idWlsZGVyCi12ZXJzaW9u PTMuMzQuMQotcmV2aXNpb249NgordmVyc2lvbj0zLjM3LjkwCityZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPXFlbXUKIGNvbmZpZ3VyZV9hcmdzPSItRHdpdGhfd2Vi a2l0PXRydWUgLUR3aXRoX3N5c3Byb2Y9dHJ1ZSAtRGhlbHA9dHJ1ZSIKQEAgLTExLDE1ICsxMSwx NSBAQCBtYWtlZGVwZW5kcz0iY2Fpcm8tZGV2ZWwgY2xhbmcgZGV2aGVscC1kZXZlbCBlbmNoYW50 Mi1kZXZlbCBmbGF0cGFrLWRldmVsCiAgZ3NwZWxsLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVs IGd0ayszLWRldmVsIGpzb24tZ2xpYi1kZXZlbCBqc29ucnBjLWdsaWItZGV2ZWwKICBsaWJkYXp6 bGUtZGV2ZWwgbGliZ2l0Mi1nbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlib3N0cmVlLWRldmVs IGxpYnBlYXMtZGV2ZWwKICBsaWJ4bWwyLWRldmVsIHRlbXBsYXRlLWdsaWItZGV2ZWwgdmFsYS1k ZXZlbCB2dGUzLWRldmVsIHdlYmtpdDJndGstZGV2ZWwKLSBweXRob24zLWdvYmplY3QtZGV2ZWwg c3lzcHJvZi1kZXZlbCBnbGFkZTMtZGV2ZWwiCisgcHl0aG9uMy1nb2JqZWN0LWRldmVsIHN5c3By b2YtZGV2ZWwgZ2xhZGUzLWRldmVsIGxpYnBvcnRhbC1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3At ZmlsZS11dGlscyBmbGF0cGFrLWJ1aWxkZXIgcHl0aG9uMy1seG1sIGRldmhlbHAgcHl0aG9uMy1n b2JqZWN0Igogc2hvcnRfZGVzYz0iSURFIGZvciBHTk9NRSIKIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9CdWlsZGVyIgotY2hhbmdlbG9n PSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYnVpbGRlci9yYXcvZ25vbWUt YnVpbGRlci0zLTM0L05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H Tk9NRS9nbm9tZS1idWlsZGVyL3Jhdy9nbm9tZS1idWlsZGVyLTMtMzYvTkVXUyIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPTBiNmU0NjEwNTdlYTgxNTFlODA1MjRjMGVhN2VmMWNi OTQ4ZTkyYWZkYTlkYzZiZDMzYWUzMzkyZjA0NTAxYTQKK2NoZWNrc3VtPTc4MDg5Y2YzOWRkZTRl Y2YxYjUxMjczMGJkZjRjNzY5MTA0NzY0OTVjNGRhYjcwYzE0MDg2YmFmN2FiOGVmYzIKIHBhdGNo X2FyZ3M9Ii1OcDEiCiAKIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgpAQCAtMjgsMyAr MjgsOCBAQCBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAkJTElCUys9IiAtbGV4ZWNp bmZvIgogCQk7OwogZXNhYworCitwcmVfY29uZmlndXJlKCkgeworCSMgdGhpcyB0ZXN0IG5lZWRz IFgKKwl2c2VkIC1pICJzL3Rlc3QoJ3Rlc3QtdGV4dC1pdGVyJy8jJi8iIHNyYy90ZXN0cy9tZXNv bi5idWlsZAorfQoKRnJvbSBhODUwNTQxYjRmNGMwZTY5NjY5NjliYzRhZjFmNzliMzg5ODFjYzMw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAxODoyNDowMiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNzMvODNdIGFkd2FpdGEtaWNvbi10aGVtZTogdXBkYXRlIHRvIDMuMzcuMgoKLS0t CiBzcmNwa2dzL2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlIGIvc3JjcGtncy9hZHdhaXRhLWljb24t dGhlbWUvdGVtcGxhdGUKaW5kZXggZmViZDI5MTViZTYuLjZjZDJiZGJlNzBmIDEwMDY0NAotLS0g YS9zcmNwa2dzL2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Fkd2Fp dGEtaWNvbi10aGVtZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2Fkd2FpdGEtaWNvbi10aGVtZScKIHBrZ25hbWU9YWR3YWl0YS1pY29uLXRoZW1lCi12ZXJz aW9uPTMuMzYuMQotcmV2aXNpb249MgordmVyc2lvbj0zLjM3LjIKK3JldmlzaW9uPTEKIGFyY2hz PW5vYXJjaAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIgpAQCAtMTEsNCArMTEsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0zLjAtb3ItbGF0ZXIsIENDLUJZLVNBLTMu MCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvYWR3YWl0YS1pY29u LXRoZW1lIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTQ5ODUxODYyNzA0NGRm ZDdkYjdkNzlhNWIzZDQzNzg0OGNhZjE5OTFlZjRlZjAzNmEyZDNhMmFjMmMxZjE0ZAorY2hlY2tz dW09YTU5NGU3NDQwOTcxZjg2MGNjNjFiMWI4MjkxYmUxNWZmYzFiOGRkMDZhOWYxMTQ4NWE1YTdm YWYxODliY2Y2YgoKRnJvbSA3MTgzMTQyNTM5NDEyZWQxOTNiM2E0NjdjNjQwZmMxYzM5OWZhMjc0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAxOTo1Nzo0MyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNzQvODNdIGdub21lLWJhY2tncm91bmRzOiB1cGRhdGUgdG8gMy4zNy4yCgotLS0K IHNyY3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNo YW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2dub21lLWJhY2tncm91bmRzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5k cy90ZW1wbGF0ZQppbmRleCAwYjFlZTQyNzM1My4uZjFmNDlkYTkzOGUgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1iYWNr Z3JvdW5kcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2du b21lLWJhY2tncm91bmRzJwogcGtnbmFtZT1nbm9tZS1iYWNrZ3JvdW5kcwotdmVyc2lvbj0zLjM2 LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy4yCityZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gK IGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9Z2V0dGV4dApAQCAtMTAsNCArMTAs NCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgQ0MtQlktMi4wLCBDQy1CWS1TQS0yLjAsIENDLUJZLVNB LTMuMCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYmFj a2dyb3VuZHMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iOGNiODFlNGNmOWQw ODVmYmIyMzU0MDYzNWI0OTJkNWMxMjRhMWY4NjExYzJhYTlhYzYzODQxMTFkNzdiYjBiCitjaGVj a3N1bT00YTJjYjg2ZmY5NmE2NTBlYjA0MTAxYzJhMWJiMGFlZmMwM2IzNTg3N2Y0MjMxMzEzNzhm NGMwZmRmMDNkYjY4CgpGcm9tIGIyZWE3NzMwM2QyODRmN2IzYjMyNmNmNDU2NWZjMWE2MDFjMTJh MDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjA1OjExICswMjAwClN1Ympl Y3Q6IFtQQVRDSCA3NS84M10gcG9sYXJpOiB1cGRhdGUgdG8gMy4zNy4zCgotLS0KIHNyY3BrZ3Mv cG9sYXJpL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9sYXJpL3RlbXBsYXRlIGIv c3JjcGtncy9wb2xhcmkvdGVtcGxhdGUKaW5kZXggMDc2N2JhYzk3YjguLjQxZDA4ZWU4MWI1IDEw MDY0NAotLS0gYS9zcmNwa2dzL3BvbGFyaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3BvbGFyaS90 ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BvbGFyaScKIHBr Z25hbWU9cG9sYXJpCi12ZXJzaW9uPTMuMzYuMwordmVyc2lvbj0zLjM3LjMKIHJldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgaXRzdG9vbCBn b2JqZWN0LWludHJvc3BlY3Rpb24gZ2V0dGV4dCIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5l cj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1BvbGFyaSIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRmMjY2NDdlOTgxYzVkMGJmNDJkZjU4MmFk YWMyMGJiZmRhY2RmZThjNGZlMTUwYWYwY2EwM2QyZTBjZWY1M2EKK2NoZWNrc3VtPTc5MDViOWRk YjNmODExZGNjMjNiMzA3NTAxMTg3ZWFkNGRkYzc4ZWQwYTY1MjlhZmNkZGNiOTQ0M2JhMTI5MDgK IAogaWYgWyAiJENST1NTX0JVSUxEIiBdIDsgdGhlbgogCWhvc3RtYWtlZGVwZW5kcys9IiBnbGli LWRldmVsIHByZWxpbmstY3Jvc3MgcWVtdS11c2VyLXN0YXRpYyIKCkZyb20gNDUxZmE0ZjhmNTA3 ZDNhNDVkMGI2ZWYxYmFlYjdkNTAwNzJmNDMyNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVn IDIwMjAgMjE6MTA6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDc2LzgzXSBndmZzOiB1cGRhdGUg dG8gMS40NS45MAoKLS0tCiBzcmNwa2dzL2d2ZnMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9ndmZzL3RlbXBsYXRlIGIvc3JjcGtncy9ndmZzL3RlbXBsYXRlCmluZGV4IDEyN2EwNTc3 OTAxLi4xNjkxZDUzNmQxYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9ndmZzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2d2ZnMnCiBwa2duYW1lPWd2ZnMKLXZlcnNpb249MS40NC4xCit2ZXJzaW9uPTEuNDUuOTAK IHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1k dXNlcnVuaXRkaXI9bm8gLUR0bXBmaWxlc2Rpcj1ubyAtRGxvZ2luZD1mYWxzZQpAQCAtMjAsNyAr MjAsNyBAQCBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL1Byb2plY3RzL2d2ZnMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9ndmZzL3Jhdy9nbm9tZS0zLTM0L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT01MGVmMzI0NWQxYjAzNjY2YTQwNDU1MTA5MTY5YTJhMWJkNTE0MTlm ZDJkNTFmOWZhNmNmZDRmODlmMDRmYjQ2CitjaGVja3N1bT1kZTFmNTZhYzRiY2JjZWI3NzdhYTcy ZjY3ZWU1ZjU3NGFmNjM2MjE4MmFiMWM4MDk3ZGE2NTdlM2RkZWFkZTg3CiAKICMgTWFudWFsbHkg ZGVjbGFyZSBzaGxpYnMgdXNlZCBieSB0aGUgc3VicGtncy4KIHNobGliX3Byb3ZpZGVzPSJsaWJn dmZzY29tbW9uLnNvIGxpYmd2ZnNkYWVtb24uc28iCgpGcm9tIDI1MzhlZTgxNDY4ZjVjNTA2MWI0 OWU5YjhjM2UyMzM2MDhmMjQzYzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIx OjE2OjQ1ICswMjAwClN1YmplY3Q6IFtQQVRDSCA3Ny84M10gbGlic291cDogdXBkYXRlIHRvIDIu NzEuMAoKLS0tCiBzcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUgfCAyMyArKysrKysrKysrKysrLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlic291cC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlic291 cC90ZW1wbGF0ZQppbmRleCBmN2E5ODM3M2FjOC4uZmRjZTFkYjMxNmUgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvbGlic291cC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUKQEAg LTEsMTYgKzEsMTYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYnNvdXAnCiBwa2duYW1lPWxp YnNvdXAKLXZlcnNpb249Mi43MC4wCit2ZXJzaW9uPTIuNzEuMAogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBp PWRpc2FibGVkIC1EbnRsbT1kaXNhYmxlZAorY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2Fi bGVkIC1EbnRsbT1kaXNhYmxlZCAtRHRsc19jaGVjaz1mYWxzZQogIC1EaW50cm9zcGVjdGlvbj0k KHZvcHRfaWYgZ2lyIGVuYWJsZWQgZGlzYWJsZWQpCi0gLUR2YXBpPSQodm9wdF9pZiB2YWxhIGVu YWJsZWQgZGlzYWJsZWQpIC1EdGxzX2NoZWNrPWZhbHNlIgorIC1EdmFwaT0kKHZvcHRfaWYgZ2ly IGVuYWJsZWQgZGlzYWJsZWQpIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0LWRldmVsIGdsaWIt ZGV2ZWwgcGtnLWNvbmZpZyBnZXR0ZXh0Ci0gJCh2b3B0X2lmIHZhbGEgJ3ZhbGEnKSIKKyAkKHZv cHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGlieG1sMi1kZXZl bCBzcWxpdGUtZGV2ZWwgbGlicHNsLWRldmVsCi0gYnJvdGxpLWRldmVsICQodm9wdF9pZiB2YWxh ICd2YWxhLWRldmVsJykiCisgYnJvdGxpLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCki CiBkZXBlbmRzPSJnbGliLW5ldHdvcmtpbmciCiBzaG9ydF9kZXNjPSJIVFRQIGxpYnJhcnkgaW1w bGVtZW50YXRpb24gaW4gQyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCkBAIC0xOCwxMSArMTgsMTYgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9saWJzb3VwIgogY2hh bmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvbGlic291cC9n bm9tZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01NGIwMjBm NzRhZWZhNDM4OTE4ZDhlNTNjZmY2MmUyYjFlNTllZmUyZGU1M2UwNmIxOWE0YjA3YjFmNGQ1MzQy CitjaGVja3N1bT04OGUyNGZhZDcyZDE2ZTFjYjY5MmM4NzgyNjg4ZGJlZTRiZjQ0MTUxZWZiMGQ5 ZWQyNWIxNGYzODQ5ZDk4OTZlCiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWlsZF9vcHRp b25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9v cHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKKworIyBnaW8gdGVzdHMg Y2FuJ3QgcnVuIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQogCiBsaWJzb3VwLWRldmVs X3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gbGlic291cD49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKQEAgLTMxLDggKzM2LDYgQEAgbGlic291cC1kZXZlbF9wYWNrYWdlKCkg ewogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZy9saWJzb3VwLTIuNC5wYwogCQlpZiBbICIkYnVp bGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAvU291cC0y LjQuZ2lyCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1v dmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAkJdm1vdmUgdXNyL2luY2x1ZGUvbGlic291cC0yLjQK CkZyb20gNThkMDZmMDNmNWViYjc5YWE1NmVkMjg3MDkwYTU0Y2RjOGEzM2VkMyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MjA6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDc4 LzgzXSByeWdlbDogdXBkYXRlIHRvIDAuMzkuMgoKLS0tCiBzcmNwa2dzL3J5Z2VsL3RlbXBsYXRl IHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3J5Z2VsL3RlbXBsYXRlIGIvc3JjcGtncy9yeWdl bC90ZW1wbGF0ZQppbmRleCBkMjhkYmMyY2UwOC4uYmRlZGQzYzZjODcgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvcnlnZWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3J5Z2VsJwogcGtnbmFtZT1yeWdlbAotdmVy c2lvbj0wLjM4LjMKLXJldmlzaW9uPTIKK3ZlcnNpb249MC4zOS4yCityZXZpc2lvbj0xCiBidWls ZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iLURleGFt cGxlcz1mYWxzZSAtRHRlc3RzPWZhbHNlCkBAIC05LDE0ICs5LDE0IEBAIGNvbmZpZ3VyZV9hcmdz PSItRGV4YW1wbGVzPWZhbHNlIC1EdGVzdHM9ZmFsc2UKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNv bmZpZyBnbGliLWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0ic3FsaXRlLWRldmVsIGd0ayszLWRl dmVsIGxpYnNvdXAtZGV2ZWwgbGliZ2VlMDgtZGV2ZWwKICBndXBucC1hdi1kZXZlbCBndXBucC1k bG5hLWRldmVsIHRyYWNrZXItZGV2ZWwgbGlibWVkaWFhcnQtZGV2ZWwKLSBnc3NkcC1kZXZlbCIK KyBnc3NkcC1kZXZlbCBnc3QxLWVkaXRpbmctc2VydmljZXMtZGV2ZWwiCiBkZXBlbmRzPSJoaWNv bG9yLWljb24tdGhlbWUgZGVza3RvcC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0iR05PTUUgaG9t ZSBtZWRpYSBzb2x1dGlvbiIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL1Byb2plY3RzL1J5Z2VsIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09MDhjMjFhNTc3ZjdiZGFkMjY0NDZhNzVmZmEzMjc3OGIyNjg0MmMzYjExODgxNjVmMGIx OTgxODU1OTc0N2QwMAorY2hlY2tzdW09NDUzZjFjZTc4MmE1MWJhZThmNzc2YTkyZjcwZDIzMzYy NWM5OGExYzRjZDJlYzNiNDU0NWNiN2U3NzczMzY2NAogCiBjb25mX2ZpbGVzPSIvZXRjL3J5Z2Vs LmNvbmYiCiAKCkZyb20gNjM2YWZkZWNlYzllODIyNWQ4NzM2NmQ1M2FlZGEzNDhjMzBiZDY2NyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MjM6MjQgKzAyMDAKU3ViamVjdDog W1BBVENIIDc5LzgzXSBzaW1wbGUtc2NhbjogdXBkYXRlIHRvIDMuMzcuMwoKLS0tCiBzcmNwa2dz L3NpbXBsZS1zY2FuL3RlbXBsYXRlIHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2ltcGxlLXNj YW4vdGVtcGxhdGUgYi9zcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlCmluZGV4IDRhZTNiODY0 M2ZkLi42ZTE3YTZlZmI0YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlCkBAIC0xLDcgKzEsNiBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnc2ltcGxlLXNjYW4nCiBwa2duYW1lPXNpbXBsZS1zY2FuCi1fZ25v bWVfdmVyc2lvbj0zLjM2Ci12ZXJzaW9uPTMuMzYuNAordmVyc2lvbj0zLjM3LjMKIHJldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZl bCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSIKQEAgLTExLDUgKzEwLDUgQEAgc2hvcnRfZGVzYz0i R1RLIFNpbXBsZSBzY2FubmluZyB1dGlsaXR5IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3NpbXBsZS1zY2FuIgotZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHtfZ25vbWVfdmVyc2lvbn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTU2YWYxODI5MWE3NzYzZjc2M2RhNWYwZWRlZDI0 N2QyZjhlYmY5MTEyYzI4NmVmODkwMTMzNzQ5NjlmZWY1MjUKK2Rpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKK2NoZWNrc3VtPWY1ZDg5NzNjNmI0ODNkNTBkOWFjMDhhZTZjMDgwMmE3YTZiYjI1ODUzOGE4 MTQ3MjY2ZTczYWE0NTFlZWQ5NTIKCkZyb20gNzYxZTIwOWI4ZTRhNDg2MDIyODEwOGQ2YTBhZDRm N2IyZDZlMmU2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MjU6MTUgKzAy MDAKU3ViamVjdDogW1BBVENIIDgwLzgzXSB5ZWxwLXhzbDogdXBkYXRlIHRvIDMuMzcuOTAKCi0t LQogc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3llbHAt eHNsL3RlbXBsYXRlIGIvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZQppbmRleCBmNzRhN2ZiYTY3 Yy4uMTA3NGU2YzMxOTAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveWVscC14c2wvdGVtcGxhdGUKKysr IGIvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3llbHAteHNsJwogcGtnbmFtZT15ZWxwLXhzbAotdmVyc2lvbj0zLjM2LjAKK3Zl cnNpb249My4zNy45MAogcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUt Y29uZmlndXJlCkBAIC0xMSw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9ZZWxwL1hzbCIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTRmZTUxYzAyMzNiNzlhNGMyMDRjNjg0OThkNDVmMDliMzQyYzMwZWQw MmM0ZTQxODUwNmMwZTM1ZjA5MDRlYzMKK2NoZWNrc3VtPWU4Y2E5Y2FmNTcyOWY4ZGU1MDM0OWZl ZmEyZjJhNjY4MGUwNDkyOThiN2FiODQ5ZDRlZmU0OTgzYzQzYTk0ZjQKCkZyb20gMWJmNGJhNWNj NDhiMzAyZjQyNWViZjRmMWM0ZjhkMjExOWU3NWUyMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYg QXVnIDIwMjAgMjE6MjU6MzMgKzAyMDAKU3ViamVjdDogW1BBVENIIDgxLzgzXSB5ZWxwOiB1cGRh dGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL3llbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy95ZWxwL3RlbXBsYXRlIGIvc3JjcGtncy95ZWxwL3RlbXBsYXRlCmluZGV4IDYzY2E3 YzIyNWM4Li41YTQ3YThlMmJkYiAxMDA2NDQKLS0tIGEvc3JjcGtncy95ZWxwL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MveWVscC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ3llbHAnCiBwa2duYW1lPXllbHAKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzcu OTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdz PSItLWRpc2FibGUtc2NoZW1hcy1jb21waWxlIC0tZGlzYWJsZS1zdGF0aWMiCkBAIC0xMyw3ICsx Myw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvQXBwcy9ZZWxwIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmQ0YjNlMjNk MzFhZDJiZWJlNDJhYzhmODAyNDJiMmQ5YmVmNTE0MThiZjYyYjU5YWNkZjI0NDBiZDk0ZWQyNAor Y2hlY2tzdW09ZGFjM2QyYjE0ZmJmY2VlNDczMmQ0ZThhN2Y4YTEwOGE4OGU4NTNjYTA1ZjA3MWQ5 ODhhNWE4ZTE4NWU1YWJkMgogCiB5ZWxwLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0ieWVs cC0ke3ZlcnNpb259XyR7cmV2aXNpb259IgoKRnJvbSBmYWVmOTE1OTk0ZThkMzA0MmVlNGQ3OGU4 YWVmOGYwMGQ0NTRmZGNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMToyNjo0 NyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggODIvODNdIHllbHAtdG9vbHM6IHVwZGF0ZSB0byAzLjM3 LjkwCgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUgfCA0ICsrLS0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBsYXRlIGIvc3JjcGtncy95ZWxwLXRvb2xzL3Rl bXBsYXRlCmluZGV4IDllOGE2NzBlNmIwLi5hMWVjOWY3ZTZlZCAxMDA2NDQKLS0tIGEvc3JjcGtn cy95ZWxwLXRvb2xzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVscC10b29scy90ZW1wbGF0ZQpA QCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3llbHAtdG9vbHMnCiBwa2duYW1l PXllbHAtdG9vbHMKLXZlcnNpb249My4zMi4yCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEK IGFyY2hzPW5vYXJjaAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTIsNCArMTIsNCBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwOi8vd3d3Lmdub21lLm9yZyIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTE4Mzg1NmI1ZWQwYjBiYjJjMDVkZDEyMDRh ZjAyMzk0NmVkNDM2OTQzZTM1ZTc4OWFmYjAyOTVlNWU3MWU4ZjkKK2NoZWNrc3VtPWQwNzAyNTg5 YzgyMzhhMjE1OTU0Y2FjYTk0YTk2NGIzYTBkMTY0NjY3OThhOGMxZDY0NGRkNjZjMjQ5MmYyYmIK CkZyb20gNmVlZjBlYTkyYzc4NGRkNDE3NmY3NzRmZTE2NDkwMjAxMmFjOTQyMiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFR1ZSwgMTggQXVnIDIwMjAgMDU6MzU6MDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDgz LzgzXSBidWRnaWUtZGVza3RvcDogcmVidWlsZCBmb3IgbXV0dGVyLTcKCltjaSBza2lwXQotLS0K IC4uLi9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaCAgICB8IDEzNDcyICsr KysrKysrKysrKysrKysKIHNyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUgICAgICAgICAg ICAgICB8ICAgICAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDEzNDczIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3Bh dGNoZXMvZ25vbWUtMzM4LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9idWRnaWUtZGVza3Rv cC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaCBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hl cy9nbm9tZS0zMzgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjkyZmE3NmExN2IwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC9w YXRjaGVzL2dub21lLTMzOC5wYXRjaApAQCAtMCwwICsxLDEzNDcyIEBACitGcm9tIDMwYmEwYjVh NDk4NmQ2YmUzNjg3YTFkN2ZiNDgyOTA2MTg1ZWE4YzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBEYXZpZCBNb2hhbW1lZCA8Zm9zc2ZyZWVkb21AdXNlcnMubm9yZXBseS5naXRodWIu Y29tPgorRGF0ZTogVHVlLCAxOCBGZWIgMjAyMCAwNjo0MDoxMiArMDAwMAorU3ViamVjdDogW1BB VENIXSBnbm9tZSAzLjM4IGNvbXBhdGliaWxpdHkKKworU3F1YXNoZWQgYnkgQHE2NiBmcm9tOgor CitodHRwczovL2dpdGh1Yi5jb20vc29sdXMtcHJvamVjdC9idWRnaWUtZGVza3RvcC9wdWxsLzE5 ODcKKworcGx1cyBhbiBhc3NvcnRtZW50IG9mIG9sZGVyIG11dHRlciB1cGRhdGVzIGZyb20gZ2l0 IG1hc3RlcgorLS0tCisgbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAxNiArLQorIG1lc29uX29wdGlvbnMudHh0ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgIDEgLQorIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYSAgICAg ICAgICB8ICAgIDYgLQorIHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZCAgICAgICAgICAg ICAgICB8ICAgMTMgKy0KKyBzcmMvd20vYmFja2dyb3VuZC52YWxhICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDE1ICstCisgc3JjL3dtL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAzMCArLQorIHNyYy93bS9zaGltLnZhbGEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMTAgKy0KKyBzcmMvd20vd20udmFsYSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDEwICstCisgLi4ue0NsdXR0ZXItNS5tZXRhZGF0YSA9PiBDbHV0dGVyLTYu bWV0YWRhdGF9IHwgICAgMAorIC4uLntDbHV0dGVyLTQubWV0YWRhdGEgPT4gQ2x1dHRlci03Lm1l dGFkYXRhfSB8ICAgNDMgLQorIHZhcGkve0NvZ2wtNC5tZXRhZGF0YSA9PiBDb2dsLTYubWV0YWRh dGF9ICAgICB8ICAgIDAKKyB2YXBpL3tDb2dsLTUubWV0YWRhdGEgPT4gQ29nbC03Lm1ldGFkYXRh fSAgICAgfCAgICAyIC0KKyB2YXBpL01ldGEtMy5tZXRhZGF0YSAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDY2IC0KKyB2YXBpL3tNZXRhLTUubWV0YWRhdGEgPT4gTWV0YS02Lm1ldGFkYXRh fSAgICAgfCAgICAwCisgdmFwaS97TWV0YS00Lm1ldGFkYXRhID0+IE1ldGEtNy5tZXRhZGF0YX0g ICAgIHwgICAyNSArLQorIHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2ggICAgICAgICAgICAg ICAgICB8ICAgIDIgKy0KKyB2YXBpL2dyYXBoZW5lLWdvYmplY3QtMS4wLnZhcGkgICAgICAgICAg ICAgICAgfCAgNjkxICsrKysrKysKKyB2YXBpL2xpYm11dHRlci0yLmRlcHMgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICA5IC0KKyB2YXBpL2xpYm11dHRlci0yLnZhcGkgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxMzI1IC0tLS0tLS0tLS0tLS0tCisgdmFwaS9saWJtdXR0ZXItMy1jdXN0 b20udmFsYSAgICAgICAgICAgICAgICAgIHwgICAgNiAtCisgdmFwaS9saWJtdXR0ZXItMy5kZXBz ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSAtCisgdmFwaS9saWJtdXR0ZXItNC5kZXBz ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCAtCisgdmFwaS9saWJtdXR0ZXItNC52YXBp ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQyNSAtLS0tLS0tLS0tLS0tLS0KKyB2YXBpL3ts aWJtdXR0ZXItNS5kZXBzID0+IGxpYm11dHRlci02LmRlcHN9ICAgfCAgICAzICstCisgdmFwaS97 bGlibXV0dGVyLTUudmFwaSA9PiBsaWJtdXR0ZXItNi52YXBpfSAgIHwgICA0NSArLQorIHZhcGkv bGlibXV0dGVyLTctY3VzdG9tLnZhbGEgICAgICAgICAgICAgICAgICB8ICAgIDcgKworIHZhcGkv bGlibXV0dGVyLTcuZGVwcyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKworIHZhcGkv e2xpYm11dHRlci0zLnZhcGkgPT4gbGlibXV0dGVyLTcudmFwaX0gICB8ICAzOTAgKystLQorIHZh cGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpICAgICAgICAgICAgICAgICAgICB8IDEyNzIgLS0tLS0t LS0tLS0tLQorIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYSAgICAgICAgICAgICB8 ICAxNTggLS0KKyAuLi5zdG9tLnZhbGEgPT4gbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYX0g fCAgIDExIC0KKyAuLi5yLWNsdXR0ZXItNS5kZXBzID0+IG11dHRlci1jbHV0dGVyLTYuZGVwc30g fCAgICAyICstCisgLi4uci1jbHV0dGVyLTUudmFwaSA9PiBtdXR0ZXItY2x1dHRlci02LnZhcGl9 IHwgIDgwNiArKy0tLS0tLQorIC4uLnItY2x1dHRlci00LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXIt Ny5kZXBzfSB8ICAgIDMgKy0KKyAuLi5yLWNsdXR0ZXItNC52YXBpID0+IG11dHRlci1jbHV0dGVy LTcudmFwaX0gfCAxNjE1ICsrKystLS0tLS0tLS0tLS0tCisgLi4uLWN1c3RvbS52YWxhID0+IG11 dHRlci1jb2dsLTYtY3VzdG9tLnZhbGF9IHwgICAgMAorIC4uLnttdXR0ZXItY29nbC00LmRlcHMg PT4gbXV0dGVyLWNvZ2wtNi5kZXBzfSB8ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wtNS52YXBpID0+ IG11dHRlci1jb2dsLTYudmFwaX0gfCAgNDIyICstLS0tCisgLi4uLWN1c3RvbS52YWxhID0+IG11 dHRlci1jb2dsLTctY3VzdG9tLnZhbGF9IHwgICAyMCArLQorIC4uLnttdXR0ZXItY29nbC01LmRl cHMgPT4gbXV0dGVyLWNvZ2wtNy5kZXBzfSB8ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wtNC52YXBp ID0+IG11dHRlci1jb2dsLTcudmFwaX0gfCAgNjcxICsrKy0tLS0KKyB2YXBpL3BvbGtpdC1nb2Jq ZWN0LTEudmFwaSAgICAgICAgICAgICAgICAgICAgfCAgIDMxICstCisgNDIgZmlsZXMgY2hhbmdl ZCwgMTkyMCBpbnNlcnRpb25zKCspLCA3MjU0IGRlbGV0aW9ucygtKQorIHJlbmFtZSB2YXBpL3tD bHV0dGVyLTUubWV0YWRhdGEgPT4gQ2x1dHRlci02Lm1ldGFkYXRhfSAoMTAwJSkKKyByZW5hbWUg dmFwaS97Q2x1dHRlci00Lm1ldGFkYXRhID0+IENsdXR0ZXItNy5tZXRhZGF0YX0gKDc4JSkKKyBy ZW5hbWUgdmFwaS97Q29nbC00Lm1ldGFkYXRhID0+IENvZ2wtNi5tZXRhZGF0YX0gKDEwMCUpCisg cmVuYW1lIHZhcGkve0NvZ2wtNS5tZXRhZGF0YSA9PiBDb2dsLTcubWV0YWRhdGF9ICg5MSUpCisg ZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvTWV0YS0zLm1ldGFkYXRhCisgcmVuYW1lIHZhcGkve01l dGEtNS5tZXRhZGF0YSA9PiBNZXRhLTYubWV0YWRhdGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tN ZXRhLTQubWV0YWRhdGEgPT4gTWV0YS03Lm1ldGFkYXRhfSAoNzYlKQorIGNyZWF0ZSBtb2RlIDEw MDY0NCB2YXBpL2dyYXBoZW5lLWdvYmplY3QtMS4wLnZhcGkKKyBkZWxldGUgbW9kZSAxMDA2NDQg dmFwaS9saWJtdXR0ZXItMi5kZXBzCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVy LTIudmFwaQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxh CisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTMuZGVwcworIGRlbGV0ZSBtb2Rl IDEwMDY0NCB2YXBpL2xpYm11dHRlci00LmRlcHMKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9s aWJtdXR0ZXItNC52YXBpCisgcmVuYW1lIHZhcGkve2xpYm11dHRlci01LmRlcHMgPT4gbGlibXV0 dGVyLTYuZGVwc30gKDUwJSkKKyByZW5hbWUgdmFwaS97bGlibXV0dGVyLTUudmFwaSA9PiBsaWJt dXR0ZXItNi52YXBpfSAoOTclKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci03 LWN1c3RvbS52YWxhCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTcuZGVwcwor IHJlbmFtZSB2YXBpL3tsaWJtdXR0ZXItMy52YXBpID0+IGxpYm11dHRlci03LnZhcGl9ICg3NSUp CisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpCisgZGVsZXRl IG1vZGUgMTAwNjQ0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYQorIHJlbmFtZSB2 YXBpL3ttdXR0ZXItY2x1dHRlci00LWN1c3RvbS52YWxhID0+IG11dHRlci1jbHV0dGVyLTYtY3Vz dG9tLnZhbGF9ICg5MiUpCisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVyLTUuZGVwcyA9PiBt dXR0ZXItY2x1dHRlci02LmRlcHN9ICg2MyUpCisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVy LTUudmFwaSA9PiBtdXR0ZXItY2x1dHRlci02LnZhcGl9ICg5MyUpCisgcmVuYW1lIHZhcGkve211 dHRlci1jbHV0dGVyLTQuZGVwcyA9PiBtdXR0ZXItY2x1dHRlci03LmRlcHN9ICg1NCUpCisgcmVu YW1lIHZhcGkve211dHRlci1jbHV0dGVyLTQudmFwaSA9PiBtdXR0ZXItY2x1dHRlci03LnZhcGl9 ICg4NiUpCisgcmVuYW1lIHZhcGkve211dHRlci1jb2dsLTUtY3VzdG9tLnZhbGEgPT4gbXV0dGVy LWNvZ2wtNi1jdXN0b20udmFsYX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve211dHRlci1jb2dsLTQu ZGVwcyA9PiBtdXR0ZXItY29nbC02LmRlcHN9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXIt Y29nbC01LnZhcGkgPT4gbXV0dGVyLWNvZ2wtNi52YXBpfSAoNjglKQorIHJlbmFtZSB2YXBpL3tt dXR0ZXItY29nbC00LWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTctY3VzdG9tLnZhbGF9ICg4 MSUpCisgcmVuYW1lIHZhcGkve211dHRlci1jb2dsLTUuZGVwcyA9PiBtdXR0ZXItY29nbC03LmRl cHN9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC00LnZhcGkgPT4gbXV0dGVyLWNv Z2wtNy52YXBpfSAoNTklKQorCitkaWZmIC0tZ2l0IG1lc29uLmJ1aWxkIG1lc29uLmJ1aWxkCitp bmRleCAyYTBlMDMxNi4uM2M0YzZhYzEgMTAwNjQ0CistLS0gbWVzb24uYnVpbGQKKysrKyBtZXNv bi5idWlsZAorQEAgLTMyLDE2ICszMiwxNiBAQCBhbV9jZmxhZ3MgPSBbCisgYWRkX2dsb2JhbF9h cmd1bWVudHMoYW1fY2ZsYWdzLCBsYW5ndWFnZTogJ2MnKQorIG1lc29uLmFkZF9pbnN0YWxsX3Nj cmlwdCgnbWVzb25fcG9zdF9pbnN0YWxsLnNoJykKKyAKKy0jIEJ1ZGdpZSBuZWVkcyBhIG1pbmlt dW0gMy4yMiBHTk9NRSBzdGFjaworLWdub21lX21pbmltdW1fdmVyc2lvbiA9ICc+PSAzLjIyLjAn CisrIyBCdWRnaWUgbmVlZHMgYSBtaW5pbXVtIDMuMjQgR05PTUUgc3RhY2sKKytnbm9tZV9taW5p bXVtX3ZlcnNpb24gPSAnPj0gMy4yNC4wJworIAorIGRlcF9ndGszID0gZGVwZW5kZW5jeSgnZ3Rr Ky0zLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pCistZGVwX2dsaWIgPSBkZXBl bmRlbmN5KCdnbGliLTIuMCcsIHZlcnNpb246ICc+PSAyLjQ2LjAnKQorLWRlcF9naW91bml4ID0g ZGVwZW5kZW5jeSgnZ2lvLXVuaXgtMi4wJywgdmVyc2lvbjogJz49IDIuNDYuMCcpCistZGVwX3Bl YXMgPSBkZXBlbmRlbmN5KCdsaWJwZWFzLTEuMCcsIHZlcnNpb246ICc+PSAxLjguMCcpCisrZGVw X2dsaWIgPSBkZXBlbmRlbmN5KCdnbGliLTIuMCcsIHZlcnNpb246ICc+PSAyLjYyLjAnKQorK2Rl cF9naW91bml4ID0gZGVwZW5kZW5jeSgnZ2lvLXVuaXgtMi4wJywgdmVyc2lvbjogJz49IDIuNjIu MCcpCisrZGVwX3BlYXMgPSBkZXBlbmRlbmN5KCdsaWJwZWFzLTEuMCcsIHZlcnNpb246ICc+PSAx LjI0LjAnKQorIGRlcF9nZGt4MTEgPSBkZXBlbmRlbmN5KCdnZGsteDExLTMuMCcsIHZlcnNpb246 IGdub21lX21pbmltdW1fdmVyc2lvbikKKyBkZXBfbGlidXVpZCA9IGRlcGVuZGVuY3koJ3V1aWQn KQorLWRlcF92YWxhID0gZGVwZW5kZW5jeSgndmFwaWdlbicsIHZlcnNpb246ICc+PSAwLjQwLjAn KQorK2RlcF92YWxhID0gZGVwZW5kZW5jeSgndmFwaWdlbicsIHZlcnNpb246ICc+PSAwLjQ2LjAn KQorIAorICMgTmVlZGVkIGZvciBrZXlib2FyZHkgYml0cworIGRlcF9pYnVzID0gZGVwZW5kZW5j eSgnaWJ1cy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS41LjEwJykKK0BAIC01MSwxMCArNTEsMTAgQEAg ZGVwX2dzZXR0aW5ncyA9IGRlcGVuZGVuY3koJ2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMnLCB2 ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3YKKyBkZXBfZ3NkID0gZGVwZW5kZW5jeSgnZ25vbWUtc2V0 dGluZ3MtZGFlbW9uJywgdmVyc2lvbjogJz49My4yOC4wJykKKyAKKyAjIHduY2sgdXNlZCBhbGwg b3ZlciB0aGUgcGxhY2UuLgorLWRlcF93bmNrID0gZGVwZW5kZW5jeSgnbGlid25jay0zLjAnLCB2 ZXJzaW9uOiAnPj0gMy4xNC4wJykKKytkZXBfd25jayA9IGRlcGVuZGVuY3koJ2xpYnduY2stMy4w JywgdmVyc2lvbjogJz49IDMuMzIuMCcpCisgCisgIyBhY2NvdW50c3NlcnZpY2UgaW4gbXVsdGlw bGUgYXBwbGV0cworLWRlcF9hY2NvdW50c3NlcnZpY2UgPSBkZXBlbmRlbmN5KCdhY2NvdW50c3Nl cnZpY2UnLCB2ZXJzaW9uOiAnPj0gMC42LjQwJykKKytkZXBfYWNjb3VudHNzZXJ2aWNlID0gZGVw ZW5kZW5jeSgnYWNjb3VudHNzZXJ2aWNlJywgdmVyc2lvbjogJz49IDAuNi41NScpCisgCisgIyBD cmVhdGUgY29uZmlnLmgKKyBjZGF0YSA9IGNvbmZpZ3VyYXRpb25fZGF0YSgpCitkaWZmIC0tZ2l0 IG1lc29uX29wdGlvbnMudHh0IG1lc29uX29wdGlvbnMudHh0CitpbmRleCBkNzFiMDliNS4uZGNh OTEyOTYgMTAwNjQ0CistLS0gbWVzb25fb3B0aW9ucy50eHQKKysrKyBtZXNvbl9vcHRpb25zLnR4 dAorQEAgLTEsNSArMSw0IEBACisgb3B0aW9uKCd3aXRoLXN0YXRlbGVzcycsIHR5cGU6ICdib29s ZWFuJywgdmFsdWU6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBzdGF0ZWxlc3MgWERHIHBh dGhzJykKKyBvcHRpb24oJ3dpdGgtcG9sa2l0JywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1 ZSwgZGVzY3JpcHRpb246ICdFbmFibGUgUG9sS2l0IHN1cHBvcnQnKQorLW9wdGlvbignd2l0aC1i bHVldG9vdGgnLCB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0Vu YWJsZSBnbm9tZS1ibHVldG9vdGggc3VwcG9ydCcpCisgb3B0aW9uKCd3aXRoLWd0ay1kb2MnLCB0 eXBlOiAnYm9vbGVhbicsIHZhbHVlOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0J1aWxkIGd0ay1kb2Mg ZG9jdW1lbnRhdGlvbicpCisgb3B0aW9uKCd3aXRoLWRlc2t0b3AtaWNvbnMnLCB0eXBlOiAnY29t Ym8nLCBjaG9pY2VzOiBbJ25hdXRpbHVzJywgJ25vbmUnXSwgdmFsdWU6ICduYXV0aWx1cycsIGRl c2NyaXB0aW9uOiAnRGVza3RvcCBpY29uIGhhbmRsaW5nJykKK2RpZmYgLS1naXQgc3JjL2FwcGxl dHMvc3RhdHVzL1N0YXR1c0FwcGxldC52YWxhIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBs ZXQudmFsYQoraW5kZXggYjk4MjYzOTQuLjcxZjI4N2M5IDEwMDY0NAorLS0tIHNyYy9hcHBsZXRz L3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYQorKysrIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNB cHBsZXQudmFsYQorQEAgLTIwLDkgKzIwLDcgQEAgcHVibGljIGNsYXNzIFN0YXR1c0FwcGxldCA6 IEJ1ZGdpZS5BcHBsZXQKKyB7CisgCisgICAgIHByb3RlY3RlZCBHdGsuQm94IHdpZGdldDsKKy0j aWYgV0lUSF9CTFVFVE9PVEgKKyAgICAgcHJvdGVjdGVkIEJsdWV0b290aEluZGljYXRvciBibHVl OworLSNlbmRpZgorICAgICBwcm90ZWN0ZWQgU291bmRJbmRpY2F0b3Igc291bmQ7CisgICAgIHBy b3RlY3RlZCBQb3dlckluZGljYXRvciBwb3dlcjsKKyAgICAgcHJvdGVjdGVkIEd0ay5FdmVudEJv eD8gd3JhcDsKK0BAIC02OCwxMiArNjYsMTAgQEAgcHVibGljIGNsYXNzIFN0YXR1c0FwcGxldCA6 IEJ1ZGdpZS5BcHBsZXQKKyAgICAgICAgIHRoaXMuc2V0dXBfcG9wb3Zlcihwb3dlci5lYm94LCBw b3dlci5wb3BvdmVyKTsKKyAgICAgICAgIHRoaXMuc2V0dXBfcG9wb3Zlcihzb3VuZC5lYm94LCBz b3VuZC5wb3BvdmVyKTsKKyAKKy0jaWYgV0lUSF9CTFVFVE9PVEgKKyAgICAgICAgIGJsdWUgPSBu ZXcgQmx1ZXRvb3RoSW5kaWNhdG9yKCk7CisgICAgICAgICB3aWRnZXQucGFja19zdGFydChibHVl LCBmYWxzZSwgZmFsc2UsIDIpOworICAgICAgICAgYmx1ZS5zaG93X2FsbCgpOworICAgICAgICAg dGhpcy5zZXR1cF9wb3BvdmVyKGJsdWUuZWJveCwgYmx1ZS5wb3BvdmVyKTsKKy0jZW5kaWYKKyAg ICAgfQorIAorICAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBwYW5lbF9wb3NpdGlvbl9jaGFuZ2Vk KEJ1ZGdpZS5QYW5lbFBvc2l0aW9uIHBvc2l0aW9uKQorQEAgLTkxLDkgKzg3LDcgQEAgcHVibGlj IGNsYXNzIFN0YXR1c0FwcGxldCA6IEJ1ZGdpZS5BcHBsZXQKKyAgICAgICAgIHRoaXMubWFuYWdl ciA9IG1hbmFnZXI7CisgICAgICAgICBtYW5hZ2VyLnJlZ2lzdGVyX3BvcG92ZXIocG93ZXIuZWJv eCwgcG93ZXIucG9wb3Zlcik7CisgICAgICAgICBtYW5hZ2VyLnJlZ2lzdGVyX3BvcG92ZXIoc291 bmQuZWJveCwgc291bmQucG9wb3Zlcik7CistI2lmIFdJVEhfQkxVRVRPT1RICisgICAgICAgICBt YW5hZ2VyLnJlZ2lzdGVyX3BvcG92ZXIoYmx1ZS5lYm94LCBibHVlLnBvcG92ZXIpOworLSNlbmRp ZgorICAgICB9CisgfSAvLyBFbmQgY2xhc3MKKyAKK2RpZmYgLS1naXQgc3JjL2FwcGxldHMvc3Rh dHVzL21lc29uLmJ1aWxkIHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZAoraW5kZXggNjk5 ZmI4ZjQuLmI0ZDI3MDZjIDEwMDY0NAorLS0tIHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWls ZAorKysrIHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZAorQEAgLTEwLDYgKzEwLDcgQEAg Y3VzdG9tX3RhcmdldCgncGx1Z2luLWZpbGUtc3RhdHVzJywKKyAgICAgaW5zdGFsbF9kaXIgOiBh cHBsZXRfc3RhdHVzX2RpcikKKyAKKyBhcHBsZXRfc3RhdHVzX3NvdXJjZXMgPSBbCisrICAgICdC bHVldG9vdGhJbmRpY2F0b3IudmFsYScsCisgICAgICdTdGF0dXNBcHBsZXQudmFsYScsCisgICAg ICdQb3dlckluZGljYXRvci52YWxhJywKKyAgICAgJ1NvdW5kSW5kaWNhdG9yLnZhbGEnLAorQEAg LTIwLDIyICsyMSwxMyBAQCBhcHBsZXRfc3RhdHVzX2RlcHMgPSBbCisgICAgIGRlcF9ndGszLAor ICAgICBkZXBfcGVhcywKKyAgICAgZGVwX2FjY291bnRzc2VydmljZSwKKysgICAgZGVwZW5kZW5j eSgnZ25vbWUtYmx1ZXRvb3RoLTEuMCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiks CisgICAgIGRlcGVuZGVuY3koJ3Vwb3dlci1nbGliJywgdmVyc2lvbjogJz49IDAuOTkuMCcpLAor ICAgICBsaW5rX2xpYnBsdWdpbiwKKyAgICAgZ3ZjLmdldF92YXJpYWJsZSgnbGliZ3ZjX2RlcCcp LAorICAgICBtZXNvbi5nZXRfY29tcGlsZXIoJ2MnKS5maW5kX2xpYnJhcnkoJ20nLCByZXF1aXJl ZDogZmFsc2UpLAorIF0KKyAKKy0jIEJsdWV0b290aCBpcyBvcHRpb25hbCB0byBhbGxvdyBzbWFs bGVyIGJ1aWxkcworLXdpdGhfYmx1ZXRvb3RoID0gZ2V0X29wdGlvbignd2l0aC1ibHVldG9vdGgn KQorLWFwcGxldF9zdGF0dXNfdmFsYV9hcmdzID0gW10KKy0KKy1pZiB3aXRoX2JsdWV0b290aCA9 PSB0cnVlCistICAgIGFwcGxldF9zdGF0dXNfZGVwcyArPSBkZXBlbmRlbmN5KCdnbm9tZS1ibHVl dG9vdGgtMS4wJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uKQorLSAgICBhcHBsZXRf c3RhdHVzX3NvdXJjZXMgKz0gJ0JsdWV0b290aEluZGljYXRvci52YWxhJworLSAgICBhcHBsZXRf c3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ1dJVEhfQkxVRVRPT1RIJ10KKy1lbmRpZgorLQor IHNoYXJlZF9saWJyYXJ5KAorICAgICAnc3RhdHVzYXBwbGV0JywKKyAgICAgYXBwbGV0X3N0YXR1 c19zb3VyY2VzLAorQEAgLTUwLDcgKzQyLDYgQEAgc2hhcmVkX2xpYnJhcnkoCisgICAgICAgICAn LS1wa2cnLCAnZ3ZjLTEuMCcsCisgICAgICAgICAnLS1wa2cnLCAnZ2lvLXVuaXgtMi4wJywKKyAg ICAgICAgICctLXZhcGlkaXInLCBqb2luX3BhdGhzKG1lc29uLnNvdXJjZV9yb290KCksICd2YXBp JyksCistICAgICAgICBhcHBsZXRfc3RhdHVzX3ZhbGFfYXJncywKKyAgICAgXSwKKyAgICAgaW5z dGFsbDogdHJ1ZSwKKyAgICAgaW5zdGFsbF9kaXI6IGFwcGxldF9zdGF0dXNfZGlyLAorZGlmZiAt LWdpdCBzcmMvd20vYmFja2dyb3VuZC52YWxhIHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEKK2luZGV4 IDA4NGFhOWFiLi5iMzMxZTBjNCAxMDA2NDQKKy0tLSBzcmMvd20vYmFja2dyb3VuZC52YWxhCisr Kysgc3JjL3dtL2JhY2tncm91bmQudmFsYQorQEAgLTIwNCw4ICsyMDQsMTMgQEAgcHVibGljIGNs YXNzIEJ1ZGdpZUJhY2tncm91bmQgOiBDbHV0dGVyLkFjdG9yCisgCisgICAgICAgICB2YXIgYWN0 b3IgPSBuZXcgTWV0YS5CYWNrZ3JvdW5kQWN0b3IoZGlzcGxheSwgaW5kZXgpOworICAgICAgICAg dmFyIGJhY2tncm91bmQgPSBuZXcgTWV0YS5CYWNrZ3JvdW5kKGRpc3BsYXkpOworKyNpZiBIQVZF X01VVFRFUl82CisgICAgICAgICBhY3Rvci5zZXRfYmFja2dyb3VuZChiYWNrZ3JvdW5kKTsKKy0K KysjZWxzZQorKyAgICAgICAgdmFyIGNvbnRlbnQgPSBhY3Rvci5nZXRfY29udGVudCgpOworKyAg ICAgICAgdW5vd25lZCBNZXRhLkJhY2tncm91bmRDb250ZW50IGJhY2tncm91bmRfY29udGVudCA9 IChNZXRhLkJhY2tncm91bmRDb250ZW50KSBjb250ZW50OworKyAgICAgICAgYmFja2dyb3VuZF9j b250ZW50LnNldF9iYWNrZ3JvdW5kKGJhY2tncm91bmQpOworKyNlbmRpZgorICAgICAgICAgcmVj dCA9IGRpc3BsYXkuZ2V0X21vbml0b3JfZ2VvbWV0cnkoaW5kZXgpOworICAgICAgICAgYWN0b3Iu c2V0X3NpemUocmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpOworICAgICAgICAgYWN0b3Iuc2V0KCJv cGFjaXR5IiwgMCk7CitAQCAtMjIxLDEzICsyMjYsMjEgQEAgcHVibGljIGNsYXNzIEJ1ZGdpZUJh Y2tncm91bmQgOiBDbHV0dGVyLkFjdG9yCisgICAgICAgICBzaGFkaW5nX2RpcmVjdGlvbiA9IChH RGVza3RvcC5CYWNrZ3JvdW5kU2hhZGluZylzZXR0aW5ncy5nZXRfZW51bShDT0xPUl9TSEFESU5H X1RZUEVfS0VZKTsKKyAgICAgICAgIHZhciBjb2xvcl9zdHIgPSBzZXR0aW5ncy5nZXRfc3RyaW5n KFBSSU1BUllfQ09MT1JfS0VZKTsKKyAgICAgICAgIGlmIChjb2xvcl9zdHIgIT0gbnVsbCAmJiBj b2xvcl9zdHIgIT0gIiIpIHsKKysjaWYgSEFWRV9NVVRURVJfNgorICAgICAgICAgICAgIHByaW1h cnlfY29sb3IgPSBDbHV0dGVyLkNvbG9yLmZyb21fc3RyaW5nKGNvbG9yX3N0cik7CisrI2Vsc2UK KysgICAgICAgICAgICBDbHV0dGVyLkNvbG9yLmZyb21fc3RyaW5nKG91dCBwcmltYXJ5X2NvbG9y LCBjb2xvcl9zdHIpOworKyNlbmRpZgorICAgICAgICAgICAgIGNvbG9yX3N0ciA9IG51bGw7Cisg ICAgICAgICB9CisgCisgICAgICAgICBjb2xvcl9zdHIgPSBzZXR0aW5ncy5nZXRfc3RyaW5nKFNF Q09OREFSWV9DT0xPUl9LRVkpOworICAgICAgICAgaWYgKGNvbG9yX3N0ciAhPSBudWxsICYmIGNv bG9yX3N0ciAhPSAiIikgeworKyNpZiBIQVZFX01VVFRFUl82CisgICAgICAgICAgICAgc2Vjb25k YXJ5X2NvbG9yID0gQ2x1dHRlci5Db2xvci5mcm9tX3N0cmluZyhjb2xvcl9zdHIpOworKyNlbHNl CisrICAgICAgICAgICAgQ2x1dHRlci5Db2xvci5mcm9tX3N0cmluZyhvdXQgc2Vjb25kYXJ5X2Nv bG9yLCBjb2xvcl9zdHIpOworKyNlbmRpZgorICAgICAgICAgICAgIGNvbG9yX3N0ciA9IG51bGw7 CisgICAgICAgICB9CisgCitkaWZmIC0tZ2l0IHNyYy93bS9tZXNvbi5idWlsZCBzcmMvd20vbWVz b24uYnVpbGQKK2luZGV4IGUzOWI4Njc4Li41ODNjZTc5MCAxMDA2NDQKKy0tLSBzcmMvd20vbWVz b24uYnVpbGQKKysrKyBzcmMvd20vbWVzb24uYnVpbGQKK0BAIC0xNywyMCArMTcsMTggQEAgYnVk Z2llX3dtX3NvdXJjZXMgPSBbCisgCisgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgPSBbXQor IAorLXZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci0zJworLWRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5 KCdsaWJtdXR0ZXItMycsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6 IGZhbHNlKQorLWlmIG5vdCBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgZGVwX211dHRlciA9IGRl cGVuZGVuY3koJ2xpYm11dHRlci00JywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uLCBy ZXF1aXJlZDogZmFsc2UpCisrZGVwX2dyYXBoZW5lID0gZGVwZW5kZW5jeSgnZ3JhcGhlbmUtZ29i amVjdC0xLjAnLCB2ZXJzaW9uOiAnPj0gMS4xMCcpCisrZGVwX211dHRlciA9IGRlcGVuZGVuY3ko J2xpYm11dHRlci03JywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uLCByZXF1aXJlZDog ZmFsc2UpCisraWYgZGVwX211dHRlci5mb3VuZCgpCisrICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFs YV9hcmdzICs9IFsnLUQnLCAnSEFWRV9NVVRURVJfNyddCisrICAgIG1lc3NhZ2UoJ1VzaW5nIG5l dyBsaWJtdXR0ZXItNyBBQkkgZnJvbSBHTk9NRSAzLjM4JykKKysgICAgdmFwaV9tdXR0ZXIgPSAn bGlibXV0dGVyLTcnCisrZWxzZQorKyAgICBkZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0 dGVyLTYnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pCisrICAgIGJ1ZGdpZV93bV9z dGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAnSEFWRV9NVVRURVJfNiddCisgICAgIGlmIGRlcF9t dXR0ZXIuZm91bmQoKQorLSAgICAgICAgbWVzc2FnZSgnVXNpbmcgbmV3IGxpYm11dHRlci00IEFC SSBmcm9tIEdOT01FIDMuMzInKQorLSAgICAgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTQn CistICAgIGVsc2UKKy0gICAgICAgIGRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXIt NScsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbikKKy0gICAgICAgIGlmIGRlcF9tdXR0 ZXIuZm91bmQoKQorLSAgICAgICAgICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNSBB QkkgZnJvbSBHTk9NRSAzLjM0JykKKy0gICAgICAgICAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0 ZXItNScKKy0gICAgICAgICAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywg J0hBVkVfTVVUVEVSXzUnXQorLSAgICAgICAgZW5kaWYKKysgICAgICAgIG1lc3NhZ2UoJ1VzaW5n IG5ldyBsaWJtdXR0ZXItNiBBQkkgZnJvbSBHTk9NRSAzLjM2JykKKysgICAgICAgIHZhcGlfbXV0 dGVyID0gJ2xpYm11dHRlci02JworICAgICBlbmRpZgorIGVuZGlmCisgCitAQCAtNDIsOCArNDAs OCBAQCBidWRnaWVfd21fZGVwcyA9IFsKKyAgICAgZGVwX2lidXMsCisgXQorIAorLWlmIGRlcF9n c2QudmVyc2lvbigpLnZlcnNpb25fY29tcGFyZSgnPj0zLjMxLjkxJykKKy0gICAgYnVkZ2llX3dt X3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX0dTRF8zMzInXQorK2lmIGRlcF9nc2Qu dmVyc2lvbigpLnZlcnNpb25fY29tcGFyZSgnPj0zLjM2LjAnKQorKyAgICBidWRnaWVfd21fc3Rh dHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfR1NEX1NVUFBPUlRFRCddCisgZW5kaWYKKyAK KyBidWRnaWVfd21fdmFsYV9hcmdzID0gIFsKK0BAIC02MCw3ICs1OCw3IEBAIGJ1ZGdpZV93bV92 YWxhX2FyZ3MgPSAgWworIAorIHJwYXRoID0gJycKKyAKKy1pZiBkZXBfbXV0dGVyLnZlcnNpb24o KS52ZXJzaW9uX2NvbXBhcmUoJz49My4yOC4wJykKKytpZiBkZXBfbXV0dGVyLnZlcnNpb24oKS52 ZXJzaW9uX2NvbXBhcmUoJz49My4zNi4wJykKKyAgICAgcnBhdGggPSBkZXBfbXV0dGVyLmdldF9w a2djb25maWdfdmFyaWFibGUoJ3R5cGVsaWJkaXInKQorICAgICBidWRnaWVfd21fdmFsYV9hcmdz ICs9IFsnLS1naXJkaXInLCBycGF0aF0KKyBlbmRpZgorZGlmZiAtLWdpdCBzcmMvd20vc2hpbS52 YWxhIHNyYy93bS9zaGltLnZhbGEKK2luZGV4IDRjZGZhMGIwLi5mYzI0YjI4OSAxMDA2NDQKKy0t LSBzcmMvd20vc2hpbS52YWxhCisrKysgc3JjL3dtL3NoaW0udmFsYQorQEAgLTE0LDcgKzE0LDcg QEAgbmFtZXNwYWNlIEJ1ZGdpZSB7CisgcHVibGljIHN0cnVjdCBHc2RBY2NlbCB7CisgICAgIHN0 cmluZyBhY2NlbGVyYXRvcjsKKyAgICAgdWludCBmbGFnczsKKy0jaWYgSEFWRV9HU0RfMzMyCisr I2lmIEhBVkVfR1NEX1NVUFBPUlRFRAorICAgICBNZXRhLktleUJpbmRpbmdGbGFncyBncmFiX2Zs YWdzOworICNlbmRpZgorIH0KK0BAIC0xOTMsMTEgKzE5Myw3IEBAIHB1YmxpYyBjbGFzcyBTaGVs bFNoaW0gOiBHTGliLk9iamVjdAorICAgICAgICAgb3NkX3Byb3h5ID0gbnVsbDsKKyAgICAgfQor IAorLSNpZiBIQVZFX01VVFRFUl81CisgICAgIHByaXZhdGUgdm9pZCBvbl9hY2NlbGVyYXRvcl9h Y3RpdmF0ZWQodWludCBhY3Rpb24sIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2LCB1aW50IGRldmlj ZV9pZCkKKy0jZWxzZQorLSAgICBwcml2YXRlIHZvaWQgb25fYWNjZWxlcmF0b3JfYWN0aXZhdGVk KHVpbnQgYWN0aW9uLCB1aW50IGRldmljZV9pZCkKKy0jZW5kaWYKKyAgICAgeworICAgICAgICAg SGFzaFRhYmxlPHN0cmluZyxWYXJpYW50PiBwYXJhbXMgPSBuZXcgSGFzaFRhYmxlPHN0cmluZyxW YXJpYW50PihzdHJfaGFzaCwgc3RyX2VxdWFsKTsKKyAKK0BAIC0yMzAsNyArMjI2LDcgQEAgcHVi bGljIGNsYXNzIFNoZWxsU2hpbSA6IEdMaWIuT2JqZWN0CisgICAgICAgICB9CisgICAgIH0KKyAK Ky0jaWYgSEFWRV9HU0RfMzMyCisrI2lmIEhBVkVfR1NEX1NVUFBPUlRFRAorICAgICBwcml2YXRl IHVpbnQgX2dyYWIoc3RyaW5nIHNlbmRlciwgc3RyaW5nIHNlcSwgdWludCBmbGFnLCBNZXRhLktl eUJpbmRpbmdGbGFncyBncmFiX2ZsYWdzKQorICAgICB7CisgICAgICAgICB2YXIgcmV0ID0gZGlz cGxheS5ncmFiX2FjY2VsZXJhdG9yKHNlcSwgZ3JhYl9mbGFncyk7CitAQCAtMjczLDcgKzI2OSw3 IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0gOiBHTGliLk9iamVjdAorICAgICAgICAgICAgIG9u X2J1c19hY3F1aXJlZCwgbnVsbCwgbnVsbCk7CisgICAgIH0KKyAKKy0jaWYgSEFWRV9HU0RfMzMy CisrI2lmIEhBVkVfR1NEX1NVUFBPUlRFRAorICAgICBwdWJsaWMgdWludCBHcmFiQWNjZWxlcmF0 b3IoQnVzTmFtZSBzZW5kZXIsIHN0cmluZyBhY2NlbGVyYXRvciwgdWludCBmbGFncywgTWV0YS5L ZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFncykKKyAgICAgeworICAgICAgICAgcmV0dXJuIF9ncmFi KHNlbmRlciwgYWNjZWxlcmF0b3IsIGZsYWdzLCBncmFiX2ZsYWdzKTsKK2RpZmYgLS1naXQgc3Jj L3dtL3dtLnZhbGEgc3JjL3dtL3dtLnZhbGEKK2luZGV4IGZlZTg5NDQzLi5iY2NmM2I5NSAxMDA2 NDQKKy0tLSBzcmMvd20vd20udmFsYQorKysrIHNyYy93bS93bS52YWxhCitAQCAtMTM3LDggKzEz Nyw4IEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisgICAgIHB1YmxpYyBz dGF0aWMgc3RyaW5nW10/IG9sZF9hcmdzOworICAgICBwdWJsaWMgc3RhdGljIGJvb2wgd2F5bGFu ZCA9IGZhbHNlOworIAorLSAgICBzdGF0aWMgQ2x1dHRlci5Qb2ludCBQVl9DRU5URVI7CistICAg IHN0YXRpYyBDbHV0dGVyLlBvaW50IFBWX05PUk07CisrICAgIHN0YXRpYyBHcmFwaGVuZS5Qb2lu dCBQVl9DRU5URVI7CisrICAgIHN0YXRpYyBHcmFwaGVuZS5Qb2ludCBQVl9OT1JNOworIAorICAg ICBwcml2YXRlIE1ldGEuQmFja2dyb3VuZEdyb3VwPyBiYWNrZ3JvdW5kX2dyb3VwOworIAorQEAg LTE3MSwxMCArMTcxLDEwIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisg ICAgICAgICAgICAgbGljZW5zZSA9ICJHUEwtMi4wIiwKKyAgICAgICAgICAgICBkZXNjcmlwdGlv biA9ICJCdWRnaWUgV2luZG93IE1hbmFnZXIiCisgICAgICAgICB9OworLSAgICAgICAgUFZfQ0VO VEVSID0gQ2x1dHRlci5Qb2ludC5hbGxvYygpOworKyAgICAgICAgUFZfQ0VOVEVSID0gR3JhcGhl bmUuUG9pbnQoKTsKKysgICAgICAgIFBWX05PUk0gPSBHcmFwaGVuZS5Qb2ludCgpOworICAgICAg ICAgUFZfQ0VOVEVSLnggPSAwLjVmOworICAgICAgICAgUFZfQ0VOVEVSLnkgPSAwLjVmOworLSAg ICAgICAgUFZfTk9STSA9IENsdXR0ZXIuUG9pbnQuYWxsb2MoKTsKKyAgICAgICAgIFBWX05PUk0u eCA9IDAuMGY7CisgICAgICAgICBQVl9OT1JNLnkgPSAwLjBmOworICAgICB9CitAQCAtMTAwMSw3 ICsxMDAxLDcgQEAgcHVibGljIGNsYXNzIEJ1ZGdpZVdNIDogTWV0YS5QbHVnaW4KKyAgICAgICAg IHRpbGVfcHJldmlldy5zZXQoInNjYWxlLXgiLCBOT1RJRklDQVRJT05fTUFQX1NDQUxFX1gsICJz Y2FsZS15IiwgTk9USUZJQ0FUSU9OX01BUF9TQ0FMRV9ZLAorICAgICAgICAgICAgICJwaXZvdC1w b2ludCIsIFBWX0NFTlRFUik7CisgCistICAgICAgICB0aWxlX3ByZXZpZXcubG93ZXIod2luX2Fj dG9yKTsKKysgICAgICAgIC8vdGlsZV9wcmV2aWV3Lmxvd2VyKHdpbl9hY3Rvcik7CisgICAgICAg ICB0aWxlX3ByZXZpZXcudGlsZV9yZWN0ID0gdGlsZV9yZWN0OworIAorICAgICAgICAgdGlsZV9w cmV2aWV3LnNob3coKTsKK2RpZmYgLS1naXQgdmFwaS9DbHV0dGVyLTUubWV0YWRhdGEgdmFwaS9D bHV0dGVyLTYubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFw aS9DbHV0dGVyLTUubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL0NsdXR0ZXItNi5tZXRhZGF0YQor ZGlmZiAtLWdpdCB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0YSB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0 YQorc2ltaWxhcml0eSBpbmRleCA3OCUKK3JlbmFtZSBmcm9tIHZhcGkvQ2x1dHRlci00Lm1ldGFk YXRhCityZW5hbWUgdG8gdmFwaS9DbHV0dGVyLTcubWV0YWRhdGEKK2luZGV4IDVjMjEyZTg1Li4x ODU1Mjc0ZCAxMDA2NDQKKy0tLSB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0YQorKysrIHZhcGkvQ2x1 dHRlci03Lm1ldGFkYXRhCitAQCAtMSwxMyArMSwxMCBAQAorIC8vIE5vbiBtaW5pLW9iamVjdAor IEFjdG9yQm94IHN0cnVjdAorIENvbG9yIHN0cnVjdAorLUZvZyBzdHJ1Y3QKKy1HZW9tZXRyeSBz dHJ1Y3QKKyBLbm90IHN0cnVjdAorIFBhdGhOb2RlIHN0cnVjdAorIFBlcnNwZWN0aXZlIHN0cnVj dAorIFVuaXRzIHN0cnVjdAorLVZlcnRleCBzdHJ1Y3QKKyAKKyAqLnJlZiB1bm93bmVkCisgCitA QCAtMTcsNyArMTQsNiBAQCBpbml0X3dpdGhfYXJncworIEFjdG9yCisgCS5hcHBseV90cmFuc2Zv cm0ubWF0cml4IHJlZgorIAkuZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzLnZlcnRzIG91dD1m YWxzZQorLQkuZ2V0X2FsbG9jYXRpb25fdmVydGljZXMudmVydHMgb3V0PWZhbHNlCisgQ2FudmFz CisgCS5uZXcgc3ltYm9sX3R5cGU9ImNvbnN0cnVjdG9yIgorIEV2ZW50LnR5cGUjbWV0aG9kIG5h bWU9ImdldF90eXBlIgorQEAgLTI3LDcgKzIzLDYgQEAgSW1hZ2UKKyAvLyA/Pz8KKyBBY3Rvci5o YXNfcG9pbnRlciNtZXRob2QgbmFtZT0iZ2V0X2hhc19wb2ludGVyIgorIEluaXRFcnJvciBlcnJv cmRvbWFpbj1mYWxzZQorLXJlZHJhdyBza2lwCisgCisgLy8gTm90IGFsbCBiYWNraW5nIHN5bWJv bHMgYXJlIGRlcHJlY2F0ZWQKKyBBY3Rvci5waWNrIGRlcHJlY2F0ZWQ9ZmFsc2UKK0BAIC01NSw3 ICs1MCw2IEBAIENvbnRhaW5lcgorIAkubG93ZXIgdmlydHVhbAorIAkucmFpc2UgdmlydHVhbAor IAkuKl9jaGlsZF9tZXRhI3ZpcnR1YWxfbWV0aG9kIHZpcnR1YWwKKy0JLmZvcmVhY2hfd2l0aF9p bnRlcm5hbHMjdmlydHVhbF9tZXRob2QgdmlydHVhbAorIAorIC8vIERlZmF1bHQgdmFsdWVzCisg Q29udGFpbmVyCitAQCAtNzAsMzIgKzY0LDIxIEBAIFRleHQKKyAvLyBSZXBhcmVudGVkIGZ1bmNz IG1ldGhvZHMgY2FuJ3QgYmUgaW5zdGFuY2UgbWV0aG9kcworIGZlYXR1cmVfYXZhaWxhYmxlIHNr aXAKKyBmZWF0dXJlX2dldF9hbGwgc2tpcAorLUZlYXR1cmVGbGFncy50ZXh0dXJlX25wb3Qgc2tp cAorIAorIC8vIFNraXBwZWQgYnkgZy1pIGZvciB1bmtub3duIHJlYXNvbnMKKyBMYXlvdXRNYW5h Z2VyCisgCS5jcmVhdGVfY2hpbGRfbWV0YSBza2lwPWZhbHNlCistTW9kZWwKKy0JLmluc2VydF9y b3cgc2tpcD1mYWxzZQorIAorIC8vIFZhcmlhZGljIGFyZ3VtZW50cworLUFjdG9yCistCS5hbmlt YXRlIHNraXA9ZmFsc2UKKy0JLmFuaW1hdGVfd2l0aF9hbHBoYSBza2lwPWZhbHNlCistCS5hbmlt YXRlX3dpdGhfdGltZWxpbmUgc2tpcD1mYWxzZQorLUFuaW1hdG9yCistCS5zZXQgc2tpcD1mYWxz ZQorIEJveAorIAkucGFjayBza2lwPWZhbHNlCisgCS5wYWNrX2FmdGVyIHNraXA9ZmFsc2UKKyAJ LnBhY2tfYXQgc2tpcD1mYWxzZQorIAkucGFja19iZWZvcmUgc2tpcD1mYWxzZQorIENvbnRhaW5l cgorLQkuYWRkX3ZhbGlzdCBza2lwPWZhbHNlCisgCS5jaGlsZF9nZXQgc2tpcD1mYWxzZQorIAku Y2hpbGRfc2V0IHNraXA9ZmFsc2UKKyAJLnJlbW92ZSBza2lwPWZhbHNlCistCS5yZW1vdmVfdmFs aXN0IHNraXA9ZmFsc2UKKyBJbnRlcnZhbAorIAkubmV3IHNraXA9ZmFsc2UKKyAJLmdldF9pbnRl cnZhbCBza2lwPWZhbHNlCitAQCAtMTA1LDE1ICs4OCw2IEBAIEludGVydmFsCisgTGF5b3V0TWFu YWdlcgorIAkuY2hpbGRfZ2V0IHNraXA9ZmFsc2UKKyAJLmNoaWxkX3NldCBza2lwPWZhbHNlCist TGlzdE1vZGVsCistCS5uZXcgc2tpcD1mYWxzZQorLU1vZGVsCistCS5hcHBlbmQgc2tpcD1mYWxz ZQorLQkuaW5zZXJ0IHNraXA9ZmFsc2UKKy0JLnByZXBlbmQgc2tpcD1mYWxzZQorLU1vZGVsSXRl cgorLQkuZ2V0IHNraXA9ZmFsc2UKKy0JLnNldCBza2lwPWZhbHNlCisgU2NyaXB0CisgCS5nZXRf b2JqZWN0cyBza2lwPWZhbHNlCisgCitAQCAtMTIyLDE3ICs5NiwxMSBAQCBUZXh0dXJlCisgCS5u ZXdfZnJvbV9maWxlIHRocm93cz0iQ2x1dHRlci5UZXh0dXJlRXJyb3IiCisgCisgLy8gU2tpcHBl ZCB1cHN0cmVhbSBmb3IgdW5rbm93biByZWFzb25zCistQWxwaGEucmVnaXN0ZXJfZnVuYyBza2lw PWZhbHNlCistVGltZW91dFBvb2wgc2tpcD1mYWxzZQorIEludGVydmFsLnJlZ2lzdGVyX3Byb2dy ZXNzX2Z1bmMgc2tpcD1mYWxzZQorLWZyYW1lX3NvdXJjZV8qIHNraXA9ZmFsc2UKKyBnZXRfb3B0 aW9uX2dyb3VwIHNraXA9ZmFsc2UKKyBnZXRfb3B0aW9uX2dyb3VwX3dpdGhvdXRfaW5pdCBza2lw PWZhbHNlCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNlIHNraXA9ZmFsc2UKKy10aHJlYWRzX2Fk ZF9mcmFtZV9zb3VyY2VfZnVsbCBza2lwPWZhbHNlCisgdGhyZWFkc19hZGRfaWRsZSBza2lwPWZh bHNlCisgdGhyZWFkc19hZGRfaWRsZV9mdWxsIHNraXA9ZmFsc2UKKy10aHJlYWRzX3NldF9sb2Nr X2Z1bmN0aW9ucyBza2lwPWZhbHNlCisgdGhyZWFkc19hZGRfdGltZW91dCBza2lwPWZhbHNlCisg dGhyZWFkc19hZGRfdGltZW91dF9mdWxsIHNraXA9ZmFsc2UKKyAKK0BAIC0xNDMsMTUgKzExMSwx MiBAQCBBY3RvckJveAorIFVuaXRzLmZyb21fKiBza2lwCisgQ29sb3IKKyAJLm5ldyBza2lwCist VmVydGV4Lm5ldyBza2lwCisgCisgLy8gQ2xhc3MgbWV0aG9kcworIGNvbnRhaW5lcl9jbGFzc19m aW5kX2NoaWxkX3Byb3BlcnR5IHNraXAKKyBjb250YWluZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9w ZXJ0aWVzIHNraXAKKyAKKyAvLyBNb3ZlIHN5bWJvbHMKKy1nZXRfYWN0b3JfYnlfZ2lkIHBhcmVu dD0iQ2x1dHRlci5BY3RvciIgbmFtZT0iZ2V0X2J5X2dpZCIKKy1nZXRfaW5wdXRfZGV2aWNlX2Zv cl9pZCBwYXJlbnQ9IkNsdXR0ZXIuSW5wdXREZXZpY2UiIG5hbWU9ImdldF9mb3JfaWQiCisgdW5p dHNfZnJvbV8qIHNraXAKKyAKKyAvLyBDbGFzc2VzIG1hcmtlZCBhcyBvdXQgYnV0IG5vdCBkb3Vi bGUgcHRyCitAQCAtMjAyLDIzICsxNjcsMTUgQEAgUEFUSF9SRUxBVElWRSBza2lwPWZhbHNlCisg UFJJT1JJVFlfUkVEUkFXIHNraXA9ZmFsc2UKKyAKKyAvLyBDbHV0dGVyIGRldnMgZG9uJ3QgbGlr ZSB1cyBjcmVhdGluZyBuZXN0ZWQgbmFtZXNwYWNlcworLWZyYW1lX3NvdXJjZV8qIG5hbWU9ImZy YW1lX3NvdXJjZV8oLispIiBwYXJlbnQ9IkNsdXR0ZXIuRnJhbWVTb3VyY2UiCisgdmFsdWVfKiBu YW1lPSJ2YWx1ZV8oLispIiBwYXJlbnQ9IkNsdXR0ZXIuVmFsdWUiCisgdGhyZWFkc18qIG5hbWU9 InRocmVhZHNfKC4rKSIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMiCistdGhyZWFkc19hZGRfZnJh bWVfc291cmNlIG5hbWU9ImFkZCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuRnJhbWVTb3VyY2Ui CistdGhyZWFkc19hZGRfZnJhbWVfc291cmNlX2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0i Q2x1dHRlci5UaHJlYWRzLkZyYW1lU291cmNlIgorIHRocmVhZHNfYWRkX2lkbGUgbmFtZT0iYWRk IiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5JZGxlIgorIHRocmVhZHNfYWRkX2lkbGVfZnVsbCBu YW1lPSJhZGRfZnVsbCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuSWRsZSIKKyB0aHJlYWRzX2Fk ZF90aW1lb3V0IG5hbWU9ImFkZCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuVGltZW91dCIKKyB0 aHJlYWRzX2FkZF90aW1lb3V0X2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5U aHJlYWRzLlRpbWVvdXQiCistdXRpbF9uZXh0X3AyIG5hbWU9Im5leHRfcG93ZXJfb2ZfMiIgcGFy ZW50PSJDbHV0dGVyLlV0aWwiCisgCisgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKyBDb2xv ci5hbGxvYyBzeW1ib2xfdHlwZT0iZnVuY3Rpb24iCistUG9pbnQuYWxsb2Mgc3ltYm9sX3R5cGU9 ImZ1bmN0aW9uIgorLVJlY3QuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorLVNpemUuYWxs b2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorLVZlcnRleC5hbGxvYyBzeW1ib2xfdHlwZT0iZnVu Y3Rpb24iCisgCisgQmluQWxpZ25tZW50IGRlcHJlY2F0ZWQ9ZmFsc2UgZGVwcmVjYXRlZF9zaW5j ZT1udWxsCisgQmluQWxpZ25tZW50LiogZGVwcmVjYXRlZAorZGlmZiAtLWdpdCB2YXBpL0NvZ2wt NC5tZXRhZGF0YSB2YXBpL0NvZ2wtNi5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCAxMDAlCity ZW5hbWUgZnJvbSB2YXBpL0NvZ2wtNC5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvQ29nbC02Lm1l dGFkYXRhCitkaWZmIC0tZ2l0IHZhcGkvQ29nbC01Lm1ldGFkYXRhIHZhcGkvQ29nbC03Lm1ldGFk YXRhCitzaW1pbGFyaXR5IGluZGV4IDkxJQorcmVuYW1lIGZyb20gdmFwaS9Db2dsLTUubWV0YWRh dGEKK3JlbmFtZSB0byB2YXBpL0NvZ2wtNy5tZXRhZGF0YQoraW5kZXggMDkyYjVlMjkuLmU1MmJm YTM1IDEwMDY0NAorLS0tIHZhcGkvQ29nbC01Lm1ldGFkYXRhCisrKysgdmFwaS9Db2dsLTcubWV0 YWRhdGEKK0BAIC05LDEyICs5LDEwIEBAIGNyZWF0ZV9zaGFkZXIgc2tpcAorIAorIAorIGlzX2Jp dG1hcCBza2lwCistaXNfbWF0ZXJpYWwgc2tpcAorIGlzX29mZnNjcmVlbiBza2lwCisgaXNfcHJv Z3JhbSBza2lwCisgaXNfc2hhZGVyIHNraXAKKyBpc190ZXh0dXJlIHNraXAKKy1pc192ZXJ0ZXhf YnVmZmVyIHNraXAKKyAKKyBNYXRyaXggc3RydWN0CisgICAuZ2V0X2FycmF5IGFycmF5PXRydWUg YXJyYXlfbGVuZ3RoX2lkeD0tMQorZGlmZiAtLWdpdCB2YXBpL01ldGEtMy5tZXRhZGF0YSB2YXBp L01ldGEtMy5tZXRhZGF0YQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAzNzBkNDk5 Ni4uMDAwMDAwMDAKKy0tLSB2YXBpL01ldGEtMy5tZXRhZGF0YQorKysrIC9kZXYvbnVsbAorQEAg LTEsNjYgKzAsMCBAQAorLUJhY2tlbmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tl bmQuaCIKKy1CYWNrZ3JvdW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgiCistQmFja2dyb3VuZEFjdG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgiCistQmFja2dyb3VuZEdyb3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgiCistQmFja2dyb3VuZEltYWdlQ2FjaGUgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIKKy1EaXNwbGF5IGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvZGlzcGxheS5oIgorLU1ldGEgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tYWlu LmgiCistTW9uaXRvck1hbmFnZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oIgorLVJlY3RhbmdsZSBzdHJ1Y3QKKy1QbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0i bWV0YS9tZXRhLXBsdWdpbi5oIgorLVBsdWdpbkluZm8gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9t ZXRhLXBsdWdpbi5oIgorLXByZWZzXyogY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIiBw YXJlbnQ9Ik1ldGEuUHJlZnMiCistYWRkX3ZlcmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWJ1ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZGVidWdfc3Bld19yZWFsIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1lbXB0eV9zdGFnZV9p bnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLXgxMV9lcnJvcl90cmFwX3BvcCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCisteDExX2Vycm9yX3RyYXBfcHVzaCBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisteDExX2Vycm9yX3RyYXBfcG9wX3dp dGhfcmV0dXJuIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKy1leHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRz IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nX3V0 Zjhfc3RybmR1cCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGls LmgiCistZ2V0X2xvY2FsZV9kaXJlY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9vdmVybGF5X3dpbmRvdyBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ3Jhdml0eV90b19zdHJpbmcgcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX2RlYnVn Z2luZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCist aXNfc3luY2luZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGls LmgiCistaXNfdmVyYm9zZSBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistaXNfd2F5bGFuZF9jb21wb3NpdG9yIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1sYXRlcl9hZGQgcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWxhdGVyX3JlbW92ZSBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistcG9wX25vX21zZ19wcmVm aXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXB1 c2hfbm9fbXNnX3ByZWZpeCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistcmVjdCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistcmVtb3ZlX3ZlcmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNldF9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNob3dfZGlhbG9n IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy10b3Bp Y19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky11bnNpZ25lZF9sb25nX2VxdWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy11bnNpZ25lZF9sb25nX2hhc2ggcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXZlcmJvc2VfcmVhbCBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistd2FybmluZyBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistc2hvd19kaWFsb2cgcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9zdGFn ZV9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF93aW5kb3dfYWN0b3JzIHBhcmVudD0iTWV0 YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi CistZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF90b3Bfd2lu ZG93X2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zv cl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBh cmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiCistZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNv bXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1z ZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVn aW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiCistZm9jdXNfc3RhZ2Vfd2luZG93IHBhcmVudD0iTWV0YS5Db21wb3Np dG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc3RhZ2Vf aXNfZm9jdXNlZCBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWtleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciBw YXJlbnQ9Ik1ldGEuS2V5QmluZGluZyIgbmFtZT0ic2V0X2N1c3RvbV9oYW5kbGVyIgorLUtleUhh bmRsZXJGdW5jLmV2ZW50IHR5cGU9IkNsdXR0ZXIuS2V5RXZlbnQ/IgorLWdldF9iYWNrZW5kIHBh cmVudD0iTWV0YS5CYWNrZW5kIgorLVdpbmRvdy5mb2N1cyNzaWduYWwgc2tpcD10cnVlCistV2lu ZG93LmdldF94d2luZG93IHNraXA9ZmFsc2UKKy1nZXRfb3B0aW9uX2NvbnRleHQgc2tpcD1mYWxz ZQorLXNldF9nbm9tZV93bV9rZXliaW5kaW5ncyBza2lwPWZhbHNlCistc2V0X3dtX25hbWUgc2tp cD1mYWxzZQorLWluaXQgc2tpcD1mYWxzZQorLXJ1biBza2lwPWZhbHNlCistc2hvd19kaWFsb2cg c2tpcD1mYWxzZQorLWdldF9iYWNrZW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNr ZW5kLmgiCitkaWZmIC0tZ2l0IHZhcGkvTWV0YS01Lm1ldGFkYXRhIHZhcGkvTWV0YS02Lm1ldGFk YXRhCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvTWV0YS01Lm1ldGFk YXRhCityZW5hbWUgdG8gdmFwaS9NZXRhLTYubWV0YWRhdGEKK2RpZmYgLS1naXQgdmFwaS9NZXRh LTQubWV0YWRhdGEgdmFwaS9NZXRhLTcubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggNzYlCity ZW5hbWUgZnJvbSB2YXBpL01ldGEtNC5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvTWV0YS03Lm1l dGFkYXRhCitpbmRleCBhZTJhNzgxNy4uNzI2MjlmYmEgMTAwNjQ0CistLS0gdmFwaS9NZXRhLTQu bWV0YWRhdGEKKysrKyB2YXBpL01ldGEtNy5tZXRhZGF0YQorQEAgLTEsMjYgKzEsMjEgQEAKKyBC YWNrZW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCisgQmFja2dyb3Vu ZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC5oIgorIEJhY2tncm91bmRB Y3RvciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIgorK0Jh Y2tncm91bmRDb250ZW50IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWNv bnRlbnQuaCIKKyBCYWNrZ3JvdW5kR3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCIKKyBCYWNrZ3JvdW5kSW1hZ2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIKKyBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIgorIEJhcnJpZXIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9iYXJyaWVyLmgiCisgQmFycmllckV2ZW50IGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvYmFycmllci5oIgorLUJveGVzIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYm94ZXMu aCIKKyBDbG9zZURpYWxvZyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgiCistQ29tcG9zaXRvciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3IuaCIKKy1D b21wb3NpdG9yTXV0dGVyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIKKyBDdXJzb3JUcmFja2VyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oIgorIERpc3BsYXkgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9kaXNwbGF5LmgiCisgRG5k IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1kbmQuaCIKKy1Hcm91cCBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL2dyb3VwLmgiCisgSWRsZU1vbml0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oIgorIEluaGliaXRTaG9ydGN1dHNEaWFsb2cgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oIgorLUtleWJpbmRpbmdz IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEva2V5YmluZGluZ3MuaCIKKyBMYXVuY2hDb250ZXh0IGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oIgorIE1ldGEgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9tYWluLmgiCisgTW9uaXRvck1hbmFnZXIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIgorLVBsdWdpbiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL21ldGEtcGx1Z2luLmgiCisgUHJlZmVyZW5jZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3ByZWZzLmgiCisgUmVtb3RlQWNjZXNzQ29udHJvbGxlciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgiCisgUmVtb3RlQWNjZXNzSGFuZGxlIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCIKK0BA IC0zMSw5ICsyNiw3IEBAIFNvdW5kUGxheWVyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCIKKyBTdGFnZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc3RhZ2Uu aCIKKyBTdGFydHVwTm90aWZpY2F0aW9uIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oIgorIFRoZW1lIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdGhlbWUu aCIKKy1UeXBlcyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3R5cGVzLmgiCistVXRpbCBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1WZXJzaW9uIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv bWV0YS12ZXJzaW9uLmgiCisrV2F5bGFuZENsaWVudCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtd2F5bGFuZC1jbGllbnQuaCIKKyBXaW5kb3cgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS93aW5k b3cuaCIKKyBXaW5kb3dBY3RvciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtd2luZG93LWFj dG9yLmgiCisgV2luZG93R3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oIgorQEAgLTQ2LDE3ICszOSwxMSBAQCBQbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS9tZXRhLXBsdWdpbi5oIgorIFBsdWdpbkluZm8gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRh LXBsdWdpbi5oIgorIHByZWZzXyogY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIiBwYXJl bnQ9Ik1ldGEuUHJlZnMiCisgYWRkX3ZlcmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWJ1ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZGVidWdfc3Bld19yZWFsIHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1lbXB0eV9zdGFnZV9pbnB1 dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorIHgxMV9lcnJvcl90cmFwX3BvcCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS91dGlsLmgiCisgeDExX2Vycm9yX3RyYXBfcHVzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgeDExX2Vycm9yX3RyYXBfcG9wX3dpdGhf cmV0dXJuIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK KyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIHBh cmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nX3V0Zjhf c3RybmR1cCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CisgZ2V0X2xvY2FsZV9kaXJlY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLWdldF9vdmVybGF5X3dpbmRvdyBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZ3Jhdml0eV90b19zdHJpbmcgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGlzX2RlYnVnZ2lu ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgaXNf c3luY2luZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CitAQCAtNjgsMTMgKzU1LDggQEAgcG9wX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHB1c2hfbm9fbXNnX3ByZWZpeCBwYXJl bnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgcmVjdCBwYXJl bnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgcmVtb3ZlX3Zl cmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLXNldF9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy10b3BpY19yZWFsIHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB1bnNpZ25lZF9sb25nX2VxdWFs IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB1bnNp Z25lZF9sb25nX2hhc2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLXZlcmJvc2VfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS91dGlsLmgiCistd2FybmluZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCisgc2hvd19kaWFsb2cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGdldF9zdGFnZV9mb3JfZGlzcGxheSBwYXJlbnQ9 Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIgorIGdldF93aW5kb3dfYWN0b3JzIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCitAQCAtODMsMTAgKzY1LDcgQEAg Z2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3Ii IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEKKyBnZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX2Rpc3BsYXkg cGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIKKyBkaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRh LkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIK KyBlbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLXNldF9zdGFnZV9p bnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50 PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIKKyBmb2N1c19zdGFnZV93aW5kb3cgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zdGFnZV9pc19mb2N1c2Vk IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgiCisga2V5YmluZGluZ3Nfc2V0X2N1c3RvbV9oYW5kbGVyIHBhcmVudD0iTWV0 YS5LZXlCaW5kaW5nIiBuYW1lPSJzZXRfY3VzdG9tX2hhbmRsZXIiCisgS2V5SGFuZGxlckZ1bmMu ZXZlbnQgdHlwZT0iQ2x1dHRlci5LZXlFdmVudD8iCisgZ2V0X2JhY2tlbmQgcGFyZW50PSJNZXRh LkJhY2tlbmQiCitkaWZmIC0tZ2l0IHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2ggdmFwaS9n ZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaAoraW5kZXggNmIwNzAyNDAuLmIyMzNlNTg2IDEwMDc1NQor LS0tIHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2gKKysrKyB2YXBpL2dlbmVyYXRlLW11dHRl ci12YXBpLnNoCitAQCAtMSw3ICsxLDcgQEAKKyAjIS9iaW4vYmFzaAorIHNldCAteGUKKyAKKy12 ZXJzaW9uPSR7MS00fQorK3ZlcnNpb249JHs2LTd9CisgZ2lyZGlyPSQocGtnLWNvbmZpZyBsaWJt dXR0ZXItJHZlcnNpb24gLS12YXJpYWJsZT1naXJkaXIpCisgCisgY2QgJChkaXJuYW1lICQwKQor ZGlmZiAtLWdpdCB2YXBpL2dyYXBoZW5lLWdvYmplY3QtMS4wLnZhcGkgdmFwaS9ncmFwaGVuZS1n b2JqZWN0LTEuMC52YXBpCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjY5 ODAxNTM1CistLS0gL2Rldi9udWxsCisrKysgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBp CitAQCAtMCwwICsxLDY5MSBAQAorKy8qIGdyYXBoZW5lLWdvYmplY3QtMS4wLnZhcGkgZ2VuZXJh dGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrCisrW0NDb2RlIChjcHJlZml4ID0g IkdyYXBoZW5lIiwgZ2lyX25hbWVzcGFjZSA9ICJHcmFwaGVuZSIsIGdpcl92ZXJzaW9uID0gIjEu MCIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJncmFwaGVuZV8iKV0KKytuYW1lc3BhY2UgR3JhcGhl bmUgeworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwg Y25hbWUgPSAiZ3JhcGhlbmVfYm94X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX2JveF9nZXRfdHlw ZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgQm94 IHsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX2JveCAoR3JhcGhlbmUuQm94IGIpOworKwkJcHVi bGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVi bGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gZW1wdHkgKCk7CisrCQlwdWJsaWMgYm9v bCBlcXVhbCAoR3JhcGhlbmUuQm94IGIpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCBleHBhbmQg KEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCBleHBhbmRf c2NhbGFyIChmbG9hdCBzY2FsYXIpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCBleHBhbmRfdmVj MyAoR3JhcGhlbmUuVmVjMyB2ZWMpOworKwkJcHVibGljIEdyYXBoZW5lLlNwaGVyZSBnZXRfYm91 bmRpbmdfc3BoZXJlICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X2NlbnRlciAo KTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfZGVwdGggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2hl aWdodCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9tYXggKCk7CisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfbWluICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMg Z2V0X3NpemUgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfdmVydGljZXMgKFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSByZWYgR3JhcGhlbmUuVmVjMyB2ZXJ0aWNlc1s4XSk7CisrCQlwdWJs aWMgZmxvYXQgZ2V0X3dpZHRoICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5l LkJveD8gaW5maW5pdGUgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXQg KEdyYXBoZW5lLlBvaW50M0Q/IG1pbiwgR3JhcGhlbmUuUG9pbnQzRD8gbWF4KTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5pdF9mcm9tX2JveCAoR3JhcGhlbmUuQm94IHNyYyk7 CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXRfZnJvbV9wb2ludHMgKFtDQ29k ZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcG9pbnRzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAu NSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuUG9pbnQzRFtdIHBvaW50 cyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXRfZnJvbV92ZWMzIChHcmFw aGVuZS5WZWMzPyBtaW4sIEdyYXBoZW5lLlZlYzM/IG1heCk7CisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5Cb3g/IGluaXRfZnJvbV92ZWN0b3JzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFt ZSA9ICJuX3ZlY3RvcnMiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhfdHlw ZSA9ICJndWludCIpXSBHcmFwaGVuZS5WZWMzW10gdmVjdG9ycyk7CisrCQlwdWJsaWMgYm9vbCBp bnRlcnNlY3Rpb24gKEdyYXBoZW5lLkJveCBiLCBvdXQgR3JhcGhlbmUuQm94IHJlcyk7CisrCQlw dWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBtaW51c19vbmUgKCk7CisrCQlwdWJs aWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBvbmUgKCk7CisrCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR3JhcGhlbmUuQm94PyBvbmVfbWludXNfb25lICgpOworKwkJcHVibGljIEdyYXBo ZW5lLkJveCB1bmlvbiAoR3JhcGhlbmUuQm94IGIpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdyYXBoZW5lLkJveD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfZXVsZXJfdCIsIHR5cGVf aWQgPSAiZ3JhcGhlbmVfZXVsZXJfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEV1bGVyIHsKKysJCXB1YmxpYyBib29sIGVxdWFsIChH cmFwaGVuZS5FdWxlciBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJs aWMgZmxvYXQgZ2V0X2FscGhhICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJ CXB1YmxpYyBmbG9hdCBnZXRfYmV0YSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2dhbW1hICgpOworKwkJcHVibGljIEdyYXBoZW5lLkV1bGVy T3JkZXIgZ2V0X29yZGVyICgpOworKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJcHVibGlj IGZsb2F0IGdldF95ICgpOworKwkJcHVibGljIGZsb2F0IGdldF96ICgpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9ldWxlciAoR3JhcGhl bmUuRXVsZXI/IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9m cm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4PyBtLCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVy KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fcXVhdGVybmlv biAoR3JhcGhlbmUuUXVhdGVybmlvbj8gcSwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu RXVsZXI/IGluaXRfZnJvbV9yYWRpYW5zIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBHcmFw aGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVy PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMz8gdiwgR3JhcGhlbmUuRXVsZXJPcmRlciBv cmRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF93aXRoX29yZGVy IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsK KysJCXB1YmxpYyBHcmFwaGVuZS5FdWxlciByZW9yZGVyIChHcmFwaGVuZS5FdWxlck9yZGVyIG9y ZGVyKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggdG9fbWF0cml4ICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIHRvX3F1 YXRlcm5pb24gKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyB0b192ZWMzICgpOworKwl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9 ICJncmFwaGVuZV9mcnVzdHVtX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX2ZydXN0dW1fZ2V0X3R5 cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEZy dXN0dW0geworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0Qg cG9pbnQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorKwkJcHVibGljIGJvb2wgZXF1 YWwgKEdyYXBoZW5lLkZydXN0dW0gYik7CisrCQlwdWJsaWMgdm9pZCBnZXRfcGxhbmVzIChbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIEdyYXBoZW5lLlBsYW5lIHBsYW5lc1s2XSk7 CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5GcnVzdHVtPyBpbml0IChHcmFwaGVuZS5QbGFu ZSBwMCwgR3JhcGhlbmUuUGxhbmUgcDEsIEdyYXBoZW5lLlBsYW5lIHAyLCBHcmFwaGVuZS5QbGFu ZSBwMywgR3JhcGhlbmUuUGxhbmUgcDQsIEdyYXBoZW5lLlBsYW5lIHA1KTsKKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLkZydXN0dW0/IGluaXRfZnJvbV9mcnVzdHVtIChHcmFwaGVuZS5GcnVz dHVtIHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5GcnVzdHVtPyBpbml0X2Zyb21f bWF0cml4IChHcmFwaGVuZS5NYXRyaXggbWF0cml4KTsKKysJCXB1YmxpYyBib29sIGludGVyc2Vj dHNfYm94IChHcmFwaGVuZS5Cb3ggYm94KTsKKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfc3Bo ZXJlIChHcmFwaGVuZS5TcGhlcmUgc3BoZXJlKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfbWF0cml4X3Qi LCB0eXBlX2lkID0gImdyYXBoZW5lX21hdHJpeF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgc3Ry dWN0IE1hdHJpeCB7CisrCQlwdWJsaWMgYm9vbCBkZWNvbXBvc2UgKG91dCBHcmFwaGVuZS5WZWMz IHRyYW5zbGF0ZSwgb3V0IEdyYXBoZW5lLlZlYzMgc2NhbGUsIG91dCBHcmFwaGVuZS5RdWF0ZXJu aW9uIHJvdGF0ZSwgb3V0IEdyYXBoZW5lLlZlYzMgc2hlYXIsIG91dCBHcmFwaGVuZS5WZWM0IHBl cnNwZWN0aXZlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9h dCBkZXRlcm1pbmFudCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJs aWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuTWF0cml4IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsX2Zhc3QgKEdyYXBoZW5lLk1hdHJpeCBiKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdl dF9yb3cgKHVpbnQgaW5kZXhfKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBmbG9hdCBnZXRfdmFsdWUgKHVpbnQgcm93LCB1aW50IGNvbCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3hfc2NhbGUgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94X3RyYW5zbGF0aW9u ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95 X3NjYWxlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBmbG9h dCBnZXRfeV90cmFuc2xhdGlvbiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBmbG9hdCBnZXRfel9zY2FsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3pfdHJhbnNsYXRpb24gKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRf ZnJvbV8yZCAoZG91YmxlIHh4LCBkb3VibGUgeXgsIGRvdWJsZSB4eSwgZG91YmxlIHl5LCBkb3Vi bGUgeF8wLCBkb3VibGUgeV8wKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgdlsxNl0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fbWF0 cml4IChHcmFwaGVuZS5NYXRyaXggc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBo ZW5lLlZlYzQgdjAsIEdyYXBoZW5lLlZlYzQgdjEsIEdyYXBoZW5lLlZlYzQgdjIsIEdyYXBoZW5l LlZlYzQgdjMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2ZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0 LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5N YXRyaXg/IGluaXRfaWRlbnRpdHkgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfbG9va19hdCAoR3JhcGhlbmUu VmVjMyBleWUsIEdyYXBoZW5lLlZlYzMgY2VudGVyLCBHcmFwaGVuZS5WZWMzIHVwKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJp eD8gaW5pdF9vcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IHRvcCwgZmxvYXQg Ym90dG9tLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9wZXJzcGVj dGl2ZSAoZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFy KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLk1hdHJpeD8gaW5pdF9yb3RhdGUgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuTWF0cml4PyBpbml0X3NjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJp eD8gaW5pdF9za2V3IChmbG9hdCB4X3NrZXcsIGZsb2F0IHlfc2tldyk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRf dHJhbnNsYXRlIChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuTWF0 cml4IGIsIGRvdWJsZSBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIGJvb2wgaW52ZXJzZSAob3V0IEdyYXBoZW5lLk1hdHJpeCByZXMpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfMmQgKCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCBpc19iYWNrZmFjZV92aXNpYmxlICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfaWRlbnRp dHkgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCBpc19z aW5ndWxhciAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5NYXRyaXggbXVsdGlwbHkgKEdyYXBoZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5NYXRyaXggYiwg ZmxvYXQgZXBzaWxvbik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg R3JhcGhlbmUuTWF0cml4IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggcGVyc3BlY3RpdmUgKGZsb2F0IGRlcHRoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHByaW50ICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHBy b2plY3RfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YWQgcHJvamVjdF9yZWN0IChHcmFwaGVuZS5SZWN0 IHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJl Y3QgcHJvamVjdF9yZWN0X2JvdW5kcyAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIEdyYXBo ZW5lLlZlYzMgYXhpcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMg dm9pZCByb3RhdGVfZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGUpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1 YXRlcm5pb24gcSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9p ZCByb3RhdGVfeCAoZmxvYXQgYW5nbGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHZvaWQgcm90YXRlX3kgKGZsb2F0IGFuZ2xlKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV96IChmbG9hdCBhbmdsZSk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgZmFj dG9yX3gsIGZsb2F0IGZhY3Rvcl95LCBmbG9hdCBmYWN0b3Jfeik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBza2V3X3h5IChmbG9hdCBmYWN0b3IpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgc2tld194eiAoZmxvYXQg ZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHNr ZXdfeXogKGZsb2F0IGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgYm9vbCB0b18yZCAob3V0IGRvdWJsZSB4eCwgb3V0IGRvdWJsZSB5eCwgb3V0IGRvdWJs ZSB4eSwgb3V0IGRvdWJsZSB5eSwgb3V0IGRvdWJsZSB4XzAsIG91dCBkb3VibGUgeV8wKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHRvX2Zsb2F0IChbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIGZsb2F0IHZbMTZdKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHRyYW5zZm9ybV9ib3Vu ZHMgKEdyYXBoZW5lLlJlY3Qgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlw dWJsaWMgR3JhcGhlbmUuQm94IHRyYW5zZm9ybV9ib3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCB0cmFuc2Zv cm1fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgdHJhbnNmb3JtX3BvaW50M2QgKEdyYXBoZW5l LlBvaW50M0QgcCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3Jh cGhlbmUuUmF5IHRyYW5zZm9ybV9yYXkgKEdyYXBoZW5lLlJheSByKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWFkIHRyYW5zZm9ybV9yZWN0IChH cmFwaGVuZS5SZWN0IHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlNwaGVyZSB0cmFuc2Zvcm1fc3BoZXJlIChHcmFwaGVuZS5TcGhlcmUgcyk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyB0cmFu c2Zvcm1fdmVjMyAoR3JhcGhlbmUuVmVjMyB2KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHRyYW5zZm9ybV92ZWM0IChHcmFwaGVuZS5WZWM0 IHYpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdHJhbnNs YXRlIChHcmFwaGVuZS5Qb2ludDNEIHBvcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IHRyYW5zcG9zZSAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHVucHJvamVjdF9wb2lu dDNkIChHcmFwaGVuZS5NYXRyaXggbW9kZWx2aWV3LCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHVu dHJhbnNmb3JtX2JvdW5kcyAoR3JhcGhlbmUuUmVjdCByLCBHcmFwaGVuZS5SZWN0IGJvdW5kcyk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCB1bnRyYW5zZm9y bV9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcCwgR3JhcGhlbmUuUmVjdCBib3VuZHMsIG91dCBHcmFw aGVuZS5Qb2ludCByZXMpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFw aGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9wbGFuZV90IiwgdHlwZV9pZCA9ICJn cmFwaGVuZV9wbGFuZV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisrCXB1YmxpYyBzdHJ1Y3QgUGxhbmUgeworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFw aGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5QbGFu ZSBiKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfY29uc3RhbnQgKCk7CisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjMyBnZXRfbm9ybWFsICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUGxhbmU/ IGluaXQgKEdyYXBoZW5lLlZlYzM/IG5vcm1hbCwgZmxvYXQgY29uc3RhbnQpOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuUGxhbmU/IGluaXRfZnJvbV9wbGFuZSAoR3JhcGhlbmUuUGxhbmUg c3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zyb21fcG9pbnQg KEdyYXBoZW5lLlZlYzMgbm9ybWFsLCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zyb21fcG9pbnRzIChHcmFwaGVuZS5Qb2lu dDNEIGEsIEdyYXBoZW5lLlBvaW50M0QgYiwgR3JhcGhlbmUuUG9pbnQzRCBjKTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zyb21fdmVjNCAoR3JhcGhlbmUuVmVjNCBz cmMpOworKwkJcHVibGljIEdyYXBoZW5lLlBsYW5lIG5lZ2F0ZSAoKTsKKysJCXB1YmxpYyBHcmFw aGVuZS5QbGFuZSBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlBsYW5lIHRyYW5zZm9ybSAoR3JhcGhlbmUuTWF0cml4IG1hdHJp eCwgR3JhcGhlbmUuTWF0cml4PyBub3JtYWxfbWF0cml4KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcG9p bnRfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcG9pbnRfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFBvaW50IHsKKysJCXB1YmxpYyBm bG9hdCB4OworKwkJcHVibGljIGZsb2F0IHk7CisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdy YXBoZW5lLlBvaW50IGIsIG91dCBmbG9hdCBkX3gsIG91dCBmbG9hdCBkX3kpOworKwkJcHVibGlj IGJvb2wgZXF1YWwgKEdyYXBoZW5lLlBvaW50IGIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuUG9pbnQ/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHkpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuUG9pbnQ/IGluaXRfZnJvbV9wb2ludCAoR3JhcGhlbmUuUG9pbnQgc3JjKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50 PyBpbml0X2Zyb21fdmVjMiAoR3JhcGhlbmUuVmVjMiBzcmMpOworKwkJcHVibGljIEdyYXBoZW5l LlBvaW50IGludGVycG9sYXRlIChHcmFwaGVuZS5Qb2ludCBiLCBkb3VibGUgZmFjdG9yKTsKKysJ CXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlBvaW50IGIsIGZsb2F0IGVwc2lsb24pOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgdG9fdmVj MiAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8gemVybyAoKTsK KysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwg Y25hbWUgPSAiZ3JhcGhlbmVfcG9pbnQzZF90IiwgbG93ZXJfY2FzZV9jc3VmZml4ID0gInBvaW50 M2QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3BvaW50M2RfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFBvaW50M0QgeworKwkJcHVibGlj IGZsb2F0IHg7CisrCQlwdWJsaWMgZmxvYXQgeTsKKysJCXB1YmxpYyBmbG9hdCB6OworKwkJcHVi bGljIEdyYXBoZW5lLlBvaW50M0QgY3Jvc3MgKEdyYXBoZW5lLlBvaW50M0QgYik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5l LlBvaW50M0QgYiwgb3V0IEdyYXBoZW5lLlZlYzMgZGVsdGEpOworKwkJcHVibGljIGZsb2F0IGRv dCAoR3JhcGhlbmUuUG9pbnQzRCBiKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5Q b2ludDNEIGIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gaW5pdCAoZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2lu dDNEPyBpbml0X2Zyb21fcG9pbnQgKEdyYXBoZW5lLlBvaW50M0Qgc3JjKTsKKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzIHYp OworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlBvaW50 M0QgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJcHVi bGljIGJvb2wgbmVhciAoR3JhcGhlbmUuUG9pbnQzRCBiLCBmbG9hdCBlcHNpbG9uKTsKKysJCXB1 YmxpYyBHcmFwaGVuZS5Qb2ludDNEIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIG5vcm1hbGl6ZV92aWV3cG9ydCAo R3JhcGhlbmUuUmVjdCB2aWV3cG9ydCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlw dWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyBH cmFwaGVuZS5WZWMzIHRvX3ZlYzMgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhl bmUuUG9pbnQzRD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Z3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcXVhZF90IiwgdHlwZV9pZCA9 ICJncmFwaGVuZV9xdWFkX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJcHVibGljIHN0cnVjdCBRdWFkIHsKKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGJvdW5k cyAoKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zIChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBnZXRfcG9pbnQgKHVpbnQgaW5kZXhfKTsKKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGluaXQgKEdyYXBoZW5lLlBvaW50IHAxLCBH cmFwaGVuZS5Qb2ludCBwMiwgR3JhcGhlbmUuUG9pbnQgcDMsIEdyYXBoZW5lLlBvaW50IHA0KTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlF1YWQ/IGluaXRfZnJvbV9wb2ludHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBH cmFwaGVuZS5Qb2ludCBwb2ludHNbNF0pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVh ZD8gaW5pdF9mcm9tX3JlY3QgKEdyYXBoZW5lLlJlY3Qgcik7CisrCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3F1 YXRlcm5pb25fdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcXVhdGVybmlvbl9nZXRfdHlwZSAoKSIp XQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUXVhdGVybmlv biB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1 YXRlcm5pb24gYWRkIChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIpOworKwkJcHVibGljIGZsb2F0IGRv dCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVu ZS5RdWF0ZXJuaW9uIGIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8g aW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgdyk7CisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fYW5nbGVfdmVjMyAoZmxvYXQgYW5n bGUsIEdyYXBoZW5lLlZlYzMgYXhpcyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0 ZXJuaW9uPyBpbml0X2Zyb21fYW5nbGVzIChmbG9hdCBkZWdfeCwgZmxvYXQgZGVnX3ksIGZsb2F0 IGRlZ196KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZSk7 CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fbWF0cml4 IChHcmFwaGVuZS5NYXRyaXggbSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJu aW9uPyBpbml0X2Zyb21fcXVhdGVybmlvbiAoR3JhcGhlbmUuUXVhdGVybmlvbiBzcmMpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX3JhZGlhbnMgKGZs b2F0IHJhZF94LCBmbG9hdCByYWRfeSwgZmxvYXQgcmFkX3opOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsK KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfaWRlbnRpdHkgKCk7 CisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBpbnZlcnQgKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gbXVsdGlwbHkg KEdyYXBoZW5lLlF1YXRlcm5pb24gYik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBu b3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlF1YXRlcm5pb24gc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhl bmUuUXVhdGVybmlvbiBzbGVycCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiLCBmbG9hdCBmYWN0b3Ip OworKwkJcHVibGljIHZvaWQgdG9fYW5nbGVfdmVjMyAob3V0IGZsb2F0IGFuZ2xlLCBvdXQgR3Jh cGhlbmUuVmVjMyBheGlzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1Ymxp YyB2b2lkIHRvX2FuZ2xlcyAob3V0IGZsb2F0IGRlZ194LCBvdXQgZmxvYXQgZGVnX3ksIG91dCBm bG9hdCBkZWdfeik7CisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IHRvX21hdHJpeCAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHRvX3JhZGlhbnMgKG91 dCBmbG9hdCByYWRfeCwgb3V0IGZsb2F0IHJhZF95LCBvdXQgZmxvYXQgcmFkX3opOworKwkJcHVi bGljIEdyYXBoZW5lLlZlYzQgdG9fdmVjNCAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcmF5X3QiLCB0 eXBlX2lkID0gImdyYXBoZW5lX3JheV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisrCXB1YmxpYyBzdHJ1Y3QgUmF5IHsKKysJCXB1YmxpYyBib29sIGVxdWFsIChH cmFwaGVuZS5SYXkgYik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfY2xvc2VzdF9w b2ludF90b19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5W ZWMzIGdldF9kaXJlY3Rpb24gKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2Rpc3RhbmNlX3RvX3Bs YW5lIChHcmFwaGVuZS5QbGFuZSBwKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfZGlzdGFuY2VfdG9f cG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBn ZXRfb3JpZ2luICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X3Bvc2l0aW9uX2F0 IChmbG9hdCB0KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJheT8gaW5pdCAoR3JhcGhl bmUuUG9pbnQzRD8gb3JpZ2luLCBHcmFwaGVuZS5WZWMzPyBkaXJlY3Rpb24pOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuUmF5PyBpbml0X2Zyb21fcmF5IChHcmFwaGVuZS5SYXkgc3JjKTsK KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJheT8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5l LlZlYzM/IG9yaWdpbiwgR3JhcGhlbmUuVmVjMz8gZGlyZWN0aW9uKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9uS2luZCBp bnRlcnNlY3RfYm94IChHcmFwaGVuZS5Cb3ggYiwgb3V0IGZsb2F0IHRfb3V0KTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9u S2luZCBpbnRlcnNlY3Rfc3BoZXJlIChHcmFwaGVuZS5TcGhlcmUgcywgb3V0IGZsb2F0IHRfb3V0 KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5 SW50ZXJzZWN0aW9uS2luZCBpbnRlcnNlY3RfdHJpYW5nbGUgKEdyYXBoZW5lLlRyaWFuZ2xlIHQs IG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVi bGljIGJvb2wgaW50ZXJzZWN0c19ib3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3NwaGVyZSAoR3JhcGhl bmUuU3BoZXJlIHMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBi b29sIGludGVyc2VjdHNfdHJpYW5nbGUgKEdyYXBoZW5lLlRyaWFuZ2xlIHQpOworKwl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJn cmFwaGVuZV9yZWN0X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3JlY3RfZ2V0X3R5cGUgKCkiKV0K KysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFJlY3QgeworKwkJ cHVibGljIEdyYXBoZW5lLlBvaW50IG9yaWdpbjsKKysJCXB1YmxpYyBHcmFwaGVuZS5TaXplIHNp emU7CisrCQlwdWJsaWMgc3RhdGljIEdyYXBoZW5lLlJlY3Q/IGFsbG9jICgpOworKwkJcHVibGlj IGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHApOworKwkJcHVibGljIGJvb2wg Y29udGFpbnNfcmVjdCAoR3JhcGhlbmUuUmVjdCBiKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChH cmFwaGVuZS5SZWN0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlJlY3QgZXhwYW5kIChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisrCQlwdWJsaWMg R3JhcGhlbmUuUG9pbnQgZ2V0X2JvdHRvbV9sZWZ0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBv aW50IGdldF9ib3R0b21fcmlnaHQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X2Nl bnRlciAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworKwkJcHVibGljIEdyYXBo ZW5lLlBvaW50IGdldF90b3BfbGVmdCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRf dG9wX3JpZ2h0ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIHZv aWQgZ2V0X3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIEdyYXBo ZW5lLlZlYzIgdmVydGljZXNbNF0pOworKwkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKysJ CXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8g aW5pdF9mcm9tX3JlY3QgKEdyYXBoZW5lLlJlY3Qgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLlJlY3Q/IGluc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBpbnNldF9yIChmbG9hdCBk X3gsIGZsb2F0IGRfeSk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBpbnRlcnBvbGF0ZSAoR3Jh cGhlbmUuUmVjdCBiLCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyBib29sIGludGVyc2VjdGlv biAoR3JhcGhlbmUuUmVjdCBiLCBvdXQgR3JhcGhlbmUuUmVjdCByZXMpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuUmVjdD8gbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3Qgbm9ybWFsaXplX3IgKCk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBvZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IG9m ZnNldF9yIChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuNCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlJlY3Qgcm91bmQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3Qgcm91bmRfZXh0ZW50cyAoKTsKKysJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IHJvdW5kX3RvX3BpeGVsICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0 IHNjYWxlIChmbG9hdCBzX2gsIGZsb2F0IHNfdik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB1 bmlvbiAoR3JhcGhlbmUuUmVjdCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyB6ZXJvICgpOworKwl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJn cmFwaGVuZV9zaW1kNGZfdCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0 IFNpbWQ0RiB7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdv YmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3NpbWQ0eDRmX3QiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKysJcHVibGljIHN0cnVjdCBTaW1kNFg0RiB7CisrCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3NpemVf dCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfc2l6ZV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgU2l6ZSB7CisrCQlwdWJsaWMgZmxvYXQg d2lkdGg7CisrCQlwdWJsaWMgZmxvYXQgaGVpZ2h0OworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdy YXBoZW5lLlNpemUgYik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyBpbml0IChm bG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNp emU/IGluaXRfZnJvbV9zaXplIChHcmFwaGVuZS5TaXplIHNyYyk7CisrCQlwdWJsaWMgR3JhcGhl bmUuU2l6ZSBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuU2l6ZSBiLCBkb3VibGUgZmFjdG9yKTsKKysJ CXB1YmxpYyBHcmFwaGVuZS5TaXplIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIHN0 YXRpYyB1bm93bmVkIEdyYXBoZW5lLlNpemU/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3Nw aGVyZV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9zcGhlcmVfZ2V0X3R5cGUgKCkiKV0KKysJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFNwaGVyZSB7CisrCQlwdWJs aWMgYm9vbCBjb250YWluc19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJs aWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIGJv b2wgZXF1YWwgKEdyYXBoZW5lLlNwaGVyZSBiKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZ2V0 X2JvdW5kaW5nX2JveCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9jZW50ZXIg KCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3JhZGl1cyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLlNwaGVyZT8gaW5pdCAoR3JhcGhlbmUuUG9pbnQzRD8gY2VudGVyLCBmbG9hdCByYWRp dXMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuU3BoZXJlPyBpbml0X2Zyb21fcG9pbnRz IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3BvaW50cyIsIGFycmF5X2xlbmd0aF9w b3MgPSAwLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50IildIEdyYXBoZW5lLlBvaW50M0Rb XSBwb2ludHMsIEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5TcGhlcmU/IGluaXRfZnJvbV92ZWN0b3JzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9j bmFtZSA9ICJuX3ZlY3RvcnMiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhf dHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5WZWMzW10gdmVjdG9ycywgR3JhcGhlbmUuUG9pbnQz RD8gY2VudGVyKTsKKysJCXB1YmxpYyBib29sIGlzX2VtcHR5ICgpOworKwkJcHVibGljIEdyYXBo ZW5lLlNwaGVyZSB0cmFuc2xhdGUgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJn cmFwaGVuZV90cmlhbmdsZV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV90cmlhbmdsZV9nZXRfdHlw ZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgVHJp YW5nbGUgeworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0Qg cCk7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuVHJpYW5nbGUgYik7CisrCQlwdWJs aWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfYmFyeWNvb3JkcyAoR3Jh cGhlbmUuUG9pbnQzRD8gcCwgb3V0IEdyYXBoZW5lLlZlYzIgcmVzKTsKKysJCXB1YmxpYyBHcmFw aGVuZS5Cb3ggZ2V0X2JvdW5kaW5nX2JveCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNE IGdldF9taWRwb2ludCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9ub3JtYWwgKCk7 CisrCQlwdWJsaWMgR3JhcGhlbmUuUGxhbmUgZ2V0X3BsYW5lICgpOworKwkJcHVibGljIHZvaWQg Z2V0X3BvaW50cyAob3V0IEdyYXBoZW5lLlBvaW50M0QgYSwgb3V0IEdyYXBoZW5lLlBvaW50M0Qg Yiwgb3V0IEdyYXBoZW5lLlBvaW50M0QgYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwkJcHVibGljIGJvb2wgZ2V0X3V2IChHcmFwaGVuZS5Qb2ludDNEPyBwLCBHcmFwaGVuZS5W ZWMyIHV2X2EsIEdyYXBoZW5lLlZlYzIgdXZfYiwgR3JhcGhlbmUuVmVjMiB1dl9jLCBvdXQgR3Jh cGhlbmUuVmVjMiByZXMpOworKwkJcHVibGljIHZvaWQgZ2V0X3ZlcnRpY2VzIChvdXQgR3JhcGhl bmUuVmVjMyBhLCBvdXQgR3JhcGhlbmUuVmVjMyBiLCBvdXQgR3JhcGhlbmUuVmVjMyBjKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5U cmlhbmdsZT8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g ZmxvYXQgYVszXSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IGJbM10sIFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBjWzNdKTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLlRyaWFuZ2xlPyBpbml0X2Zyb21fcG9pbnQzZCAoR3JhcGhlbmUuUG9pbnQz RD8gYSwgR3JhcGhlbmUuUG9pbnQzRD8gYiwgR3JhcGhlbmUuUG9pbnQzRD8gYyk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5UcmlhbmdsZT8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZl YzM/IGEsIEdyYXBoZW5lLlZlYzM/IGIsIEdyYXBoZW5lLlZlYzM/IGMpOworKwl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFw aGVuZV92ZWMyX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3ZlYzJfZ2V0X3R5cGUgKCkiKV0KKysJ cHVibGljIHN0cnVjdCBWZWMyIHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWMyIGFkZCAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIGRpdmlkZSAoR3JhcGhlbmUu VmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBk b3QgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlw dWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuVmVjMiB2Mik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBpbml0IChmbG9hdCB4 LCBmbG9hdCB5KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLlZlYzI/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSldIGZsb2F0IHNyY1syXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBpbml0X2Zyb21fdmVjMiAoR3JhcGhlbmUu VmVjMiBzcmMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5WZWMyIGludGVycG9sYXRlIChHcmFwaGVuZS5WZWMyIHYyLCBkb3VibGUgZmFjdG9yKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBt YXggKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgR3JhcGhlbmUuVmVjMiBtaW4gKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBtdWx0aXBseSAoR3JhcGhl bmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29s IG5lYXIgKEdyYXBoZW5lLlZlYzIgdjIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbmVnYXRlICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbm9ybWFsaXpl ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93 bmVkIEdyYXBoZW5lLlZlYzI/IG9uZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgc3VidHJhY3QgKEdy YXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCBk ZXN0WzJdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBHcmFwaGVuZS5WZWMyPyB4X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8geV9heGlzICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdyYXBoZW5lLlZlYzI/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3ZlYzNfdCIsIHR5cGVf aWQgPSAiZ3JhcGhlbmVfdmVjM19nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgc3RydWN0IFZlYzMg eworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMg YWRkIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzMgY3Jvc3MgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBkaXZpZGUgKEdyYXBo ZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxv YXQgZG90IChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor KwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZlYzMgdjIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgZ2V0X3h5ICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3h5MCAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0 IGdldF94eXowICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzQgZ2V0X3h5ejEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfeHl6dyAoZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ogKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyBpbml0IChm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IHNyY1szXSk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyBpbml0X2Zyb21f dmVjMyAoR3JhcGhlbmUuVmVjMyBzcmMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGludGVycG9sYXRlIChHcmFwaGVuZS5WZWMzIHYyLCBk b3VibGUgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBm bG9hdCBsZW5ndGggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg R3JhcGhlbmUuVmVjMyBtYXggKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBtaW4gKEdyYXBoZW5lLlZlYzMgYik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBt dWx0aXBseSAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlZlYzMgdjIsIGZsb2F0IGVwc2lsb24pOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbmVn YXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzMgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IG9uZSAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHNjYWxlIChmbG9hdCBmYWN0 b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZl YzMgc3VidHJhY3QgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIHJlZiBmbG9hdCBkZXN0WzNdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyB4X2F4aXMgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUu VmVjMz8geV9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IHpfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyB6 ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2Jq ZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV92ZWM0X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3Zl YzRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBWZWM0IHsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGFkZCAoR3JhcGhlbmUuVmVj NCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5W ZWM0IGRpdmlkZSAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuVmVjNCB2Mik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3cgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBn ZXRfeHkgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjMyBnZXRfeHl6ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGZsb2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGZsb2F0IGdldF96ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg eiwgZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBmbG9hdCBzcmNbNF0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5l LlZlYzIgc3JjLCBmbG9hdCB6LCBmbG9hdCB3KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IGluaXRfZnJvbV92ZWMzIChHcmFw aGVuZS5WZWMzIHNyYywgZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fdmVjNCAoR3JhcGhlbmUu VmVjNCBzcmMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5WZWM0IGludGVycG9sYXRlIChHcmFwaGVuZS5WZWM0IHYyLCBkb3VibGUgZmFjdG9yKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBt YXggKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgR3JhcGhlbmUuVmVjNCBtaW4gKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBtdWx0aXBseSAoR3JhcGhl bmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29s IG5lYXIgKEdyYXBoZW5lLlZlYzQgdjIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbmVnYXRlICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbm9ybWFsaXpl ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93 bmVkIEdyYXBoZW5lLlZlYzQ/IG9uZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgc3VidHJhY3QgKEdy YXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCBk ZXN0WzRdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBHcmFwaGVuZS5WZWM0PyB3X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8geF9heGlzICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdyYXBoZW5lLlZlYzQ/IHlfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB6X2F4aXMgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhl bmUuVmVjND8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3Jh cGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfZXVsZXJfb3JkZXJfdCIsIGNwcmVm aXggPSAiR1JBUEhFTkVfRVVMRVJfT1JERVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIGVudW0gRXVsZXJPcmRlciB7CisrCQlE RUZBVUxULAorKwkJWFlaLAorKwkJWVpYLAorKwkJWlhZLAorKwkJWFpZLAorKwkJWVhaLAorKwkJ WllYLAorKwkJU1hZWiwKKysJCVNYWVgsCisrCQlTWFpZLAorKwkJU1haWCwKKysJCVNZWlgsCisr CQlTWVpZLAorKwkJU1lYWiwKKysJCVNZWFksCisrCQlTWlhZLAorKwkJU1pYWiwKKysJCVNaWVgs CisrCQlTWllaLAorKwkJUlpZWCwKKysJCVJYWVgsCisrCQlSWVpYLAorKwkJUlhaWCwKKysJCVJY WlksCisrCQlSWVpZLAorKwkJUlpYWSwKKysJCVJZWFksCisrCQlSWVhaLAorKwkJUlpYWiwKKysJ CVJYWVosCisrCQlSWllaCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBo ZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3JheV9pbnRlcnNlY3Rpb25fa2luZF90 IiwgY3ByZWZpeCA9ICJHUkFQSEVORV9SQVlfSU5URVJTRUNUSU9OX0tJTkRfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBlbnVt IFJheUludGVyc2VjdGlvbktpbmQgeworKwkJTk9ORSwKKysJCUVOVEVSLAorKwkJTEVBVkUKKysJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25h bWUgPSAiR1JBUEhFTkVfSEFTX0dDQyIpXQorKwlwdWJsaWMgY29uc3QgaW50IEhBU19HQ0M7Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9 ICJHUkFQSEVORV9IQVNfU0NBTEFSIildCisrCXB1YmxpYyBjb25zdCBpbnQgSEFTX1NDQUxBUjsK KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1l ID0gIkdSQVBIRU5FX0hBU19TU0UiKV0KKysJcHVibGljIGNvbnN0IGludCBIQVNfU1NFOworKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAi R1JBUEhFTkVfUEkiKV0KKysJcHVibGljIGNvbnN0IGRvdWJsZSBQSTsKKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1BJ XzIiKV0KKysJcHVibGljIGNvbnN0IGRvdWJsZSBQSV8yOworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfU0lNRF9TIild CisrCXB1YmxpYyBjb25zdCBzdHJpbmcgU0lNRF9TOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfVkVDMl9MRU4iKV0K KysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgY29uc3QgaW50IFZFQzJfTEVO OworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25h bWUgPSAiR1JBUEhFTkVfVkVDM19MRU4iKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwlwdWJsaWMgY29uc3QgaW50IFZFQzNfTEVOOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfVkVDNF9MRU4iKV0KKysJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgY29uc3QgaW50IFZFQzRfTEVOOwor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUg PSAiZmFsc2UiKV0KKysJcHVibGljIGNvbnN0IGludCBAZmFsc2U7CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJ0cnVlIildCisrCXB1 YmxpYyBjb25zdCBpbnQgQHRydWU7CisrfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0yLmRl cHMgdmFwaS9saWJtdXR0ZXItMi5kZXBzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDFmM2M5MDc5Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTIuZGVwcworKysrIC9kZXYv bnVsbAorQEAgLTEsOSArMCwwIEBACistY2Fpcm8KKy1nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFz CistZ2RrLTMuMAorLWdkay1waXhidWYtMi4wCistZ3RrKy0zLjAKKy14MTEKKy14Zml4ZXMtNC4w CistY2x1dHRlci0xLjAKKy1jb2dsLTEuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0yLnZh cGkgdmFwaS9saWJtdXR0ZXItMi52YXBpCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDBhNmM0MzU3Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTIudmFwaQorKysrIC9kZXYv bnVsbAorQEAgLTEsMTMyNSArMCwwIEBACistLyogbGlibXV0dGVyLnZhcGkgZ2VuZXJhdGVkIGJ5 IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCistCistW0NDb2RlIChjcHJlZml4ID0gIk1ldGEi LCBnaXJfbmFtZXNwYWNlID0gIk1ldGEiLCBnaXJfdmVyc2lvbiA9ICIzLjAiLCBsb3dlcl9jYXNl X2NwcmVmaXggPSAibWV0YV8iKV0KKy1uYW1lc3BhY2UgTWV0YSB7CistCW5hbWVzcGFjZSBQcmVm cyB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgYWRkX2xpc3RlbmVyIChNZXRhLlByZWZzQ2hhbmdlZEZ1bmMgZnVu Yyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlw dWJsaWMgc3RhdGljIGJvb2wgYmVsbF9pc19hdWRpYmxlICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGNoYW5n ZV93b3Jrc3BhY2VfbmFtZSAoaW50IGksIHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3Au VGl0bGViYXJBY3Rpb24gZ2V0X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3Rh dGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIGdldF9hY3Rpb25fbWlkZGxlX2NsaWNrX3RpdGxl YmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQor LQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBnZXRfYWN0aW9uX3JpZ2h0 X2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9hdHRhY2hfbW9kYWxfZGlhbG9n cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYXV0b19tYXhpbWl6ZSAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBn ZXRfYXV0b19yYWlzZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9hdXRvX3JhaXNlX2RlbGF5ICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGlj IHN0YXRpYyBNZXRhLkJ1dHRvbkxheW91dCBnZXRfYnV0dG9uX2xheW91dCAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Ym9vbCBnZXRfY2VudGVyX25ld193aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9jb21wb3Np dGluZ19tYW5hZ2VyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X2N1cnNvcl9zaXplICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIHN0cmluZyBnZXRfY3Vyc29yX3RoZW1lICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9k aXNhYmxlX3dvcmthcm91bmRzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X2RyYWdfdGhyZXNob2xkICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVi bGljIHN0YXRpYyBpbnQgZ2V0X2RyYWdnYWJsZV9ib3JkZXJfd2lkdGggKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgZ2V0X2R5bmFtaWNfd29ya3NwYWNlcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZWRnZV90aWxp bmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2ZvY3VzX2NoYW5nZV9vbl9wb2ludGVyX3Jlc3QgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJs aWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTW9kZSBnZXRfZm9jdXNfbW9kZSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg R0Rlc2t0b3AuRm9jdXNOZXdXaW5kb3dzIGdldF9mb2N1c19uZXdfd2luZG93cyAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgYm9vbCBnZXRfZm9yY2VfZnVsbHNjcmVlbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZ25vbWVf YWNjZXNzaWJpbGl0eSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZ25vbWVfYW5pbWF0aW9ucyAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBnZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgTWV0YS5LZXlCaW5kaW5nQWN0aW9uIGdldF9rZXliaW5kaW5nX2FjdGlvbiAoc3RyaW5nIG5h bWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJ cHVibGljIHN0YXRpYyBpbnQgZ2V0X21vdXNlX2J1dHRvbl9tZW51ICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRh LlZpcnR1YWxNb2RpZmllciBnZXRfbW91c2VfYnV0dG9uX21vZHMgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGludCBn ZXRfbW91c2VfYnV0dG9uX3Jlc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9udW1fd29ya3NwYWNl cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfcmFpc2Vfb25fY2xpY2sgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wg Z2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9u dERlc2NyaXB0aW9uIGdldF90aXRsZWJhcl9mb250ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF92aXN1 YWxfYmVsbCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVmlzdWFsQmVsbFR5cGUgZ2V0X3Zpc3VhbF9i ZWxsX3R5cGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdldF93b3Jrc3BhY2VfbmFtZSAo aW50IGkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQor LQkJcHVibGljIHN0YXRpYyBib29sIGdldF93b3Jrc3BhY2VzX29ubHlfb25fcHJpbWFyeSAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBpbml0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIG92ZXJyaWRlX3ByZWZlcmVuY2Vf c2NoZW1hIChzdHJpbmcga2V5LCBzdHJpbmcgc2NoZW1hKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVf bGlzdGVuZXIgKE1ldGEuUHJlZnNDaGFuZ2VkRnVuYyBmdW5jKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf Zm9yY2VfZnVsbHNjcmVlbiAoYm9vbCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfaWdub3Jl X3JlcXVlc3RfaGlkZV90aXRsZWJhciAoYm9vbCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf bnVtX3dvcmtzcGFjZXMgKGludCBuX3dvcmtzcGFjZXMpOworLQl9CistCW5hbWVzcGFjZSBVdGls IHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0g Im1ldGFfYWRkX3ZlcmJvc2VfdG9waWMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfdmVy Ym9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRvcGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfYnVnIildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgYnVnIChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9kZWJ1Z19zcGV3X3JlYWwi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19zcGV3X3JlYWwgKHN0cmluZyBmb3JtYXQs IC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVl bik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuU2NyZWVuIHNjcmVl bik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9zY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBlbmFibGVfdW5yZWRpcmVjdF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0 YV9lcnJvcl90cmFwX3BvcCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVycm9yX3RyYXBfcG9w IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2Vycm9yX3RyYXBfcHVzaCIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkIGVycm9yX3RyYXBfcHVzaCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9l cnJvcl90cmFwX3B1c2hfd2l0aF9yZXR1cm4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJv cl90cmFwX3B1c2hfd2l0aF9yZXR1cm4gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXh0ZXJu YWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGV4 dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uICh1aW50IGtleWJpbmRpbmdfYWN0aW9uKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1l dGFfZmF0YWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBmYXRhbCAoc3RyaW5nIGZvcm1hdCwg Li4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIm1ldGFfZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIChHTGliLlNMaXN0PHZvaWQqPiBsaXN0X3RvX2Rl ZXBfZnJlZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj bmFtZSA9ICJtZXRhX2dfdXRmOF9zdHJuZHVwIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBn X3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVj dGlvbiIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxl X2RpcmVjdGlvbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIm1ldGFfZ2V0X292ZXJsYXlfd2luZG93IildCistCQlwdWJsaWMgc3RhdGlj IFguV2luZG93IGdldF9vdmVybGF5X3dpbmRvdyAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZ3Jh dml0eV90b19zdHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0 eV90b19zdHJpbmcgKGludCBncmF2aXR5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfaXNfZGVidWdnaW5nIildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9pc19zeW5jaW5nIildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgaXNfc3luY2luZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfaXNfdmVyYm9zZSIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIGlzX3ZlcmJvc2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3dheWxhbmRfY29tcG9zaXRvciIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIGlzX3dheWxhbmRfY29tcG9zaXRvciAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJfYWRk IildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgbGF0ZXJfYWRkIChNZXRhLkxhdGVyVHlwZSB3aGVu LCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX3JlbW92ZSIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIGxhdGVyX3JlbW92ZSAodWludCBsYXRlcl9pZCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3BvcF9ub19t c2dfcHJlZml4IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX25vX21zZ19wcmVmaXggKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJt ZXRhX3B1c2hfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbm9f bXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIm1ldGFfcmVjdCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLlJlY3Rhbmds ZT8gcmVjdCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9yZW1vdmVf dmVyYm9zZV90b3BpYyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV92ZXJib3NlX3Rv cGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lu cHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdp b24gKE1ldGEuU2NyZWVuIHNjcmVlbiwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Nob3df ZGlhbG9nIildCistCQlwdWJsaWMgc3RhdGljIEdMaWIuUGlkIHNob3dfZGlhbG9nIChzdHJpbmcg dHlwZSwgc3RyaW5nIG1lc3NhZ2UsIHN0cmluZz8gdGltZW91dCA9IG51bGwsIHN0cmluZz8gZGlz cGxheSA9IG51bGwsIHN0cmluZz8gb2tfdGV4dCA9IG51bGwsIHN0cmluZz8gY2FuY2VsX3RleHQg PSBudWxsLCBzdHJpbmc/IGljb25fbmFtZSA9IG51bGwsIGludCB0cmFuc2llbnRfZm9yID0gMCwg R0xpYi5TTGlzdDxzdHJpbmc+PyBjb2x1bW5zID0gbnVsbCwgR0xpYi5TTGlzdDxzdHJpbmc+PyBl bnRyaWVzID0gbnVsbCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJtZXRhX3RvcGljX3JlYWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB0 b3BpY19yZWFsIChNZXRhLkRlYnVnVG9waWMgdG9waWMsIHN0cmluZyBmb3JtYXQsIC4uLik7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X3Vuc2lnbmVkX2xvbmdfZXF1YWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHVuc2lnbmVkX2xv bmdfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Vuc2lnbmVkX2xvbmdfaGFzaCIpXQor LQkJcHVibGljIHN0YXRpYyB1aW50IHVuc2lnbmVkX2xvbmdfaGFzaCAodm9pZCogdik7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Zl cmJvc2VfcmVhbCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHZlcmJvc2VfcmVhbCAoc3RyaW5n IGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIm1ldGFfd2FybmluZyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHdhcm5p bmcgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tlbmRfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGFic3RyYWN0IGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2Vu ZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2VuZC5o IiwgY25hbWUgPSAibWV0YV9nZXRfYmFja2VuZCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IE1ldGEuQmFja2VuZCBnZXRfYmFja2VuZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QWN0b3IgZ2V0X3N0YWdlICgpOworLQkJcHVibGljIHZvaWQgbG9ja19sYXlvdXRfZ3JvdXAgKHVp bnQgaWR4KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9rZXltYXAgKHN0cmluZyBsYXlvdXRzLCBzdHJp bmcgdmFyaWFudHMsIHN0cmluZyBvcHRpb25zKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXlt YXBfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3Vw X2NoYW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2Rldmlj ZV9jaGFuZ2VkIChpbnQgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kIDogR0xpYi5PYmplY3Qgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEJh Y2tncm91bmQgKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVm cmVzaF9hbGwgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwg R0xpYi5GaWxlIGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5k U3R5bGUgc3R5bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNv bG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3Au QmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rl c2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3Ig Y29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIE1ldGEuU2NyZWVuIG1ldGFfc2NyZWVuIHsgb3duZWQgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIiwgdHlwZV9p ZCA9ICJtZXRhX2JhY2tncm91bmRfYWN0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNz IEJhY2tncm91bmRBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRl ci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJB Y3RvcioiKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kQWN0b3IgKE1ldGEuU2NyZWVuIHNjcmVlbiwg aW50IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmQgKE1ldGEuQmFja2dy b3VuZCBiYWNrZ3JvdW5kKTsKKy0JCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFi bGVkLCBkb3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgYnJpZ2h0 bmVzcyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRh LlNjcmVlbiBtZXRhX3NjcmVlbiB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgbW9uaXRvciB7IGdldDsgY29uc3RydWN0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHZpZ25ldHRlIHsgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSB2aWduZXR0ZV9zaGFy cG5lc3MgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRf Z3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRHcm91cCA6IENs dXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVy LkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBC YWNrZ3JvdW5kR3JvdXAgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9p bWFnZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEltYWdlIDogR0xp Yi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHJvdGVjdGVkIEJhY2tncm91bmRJbWFnZSAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9zdWNj ZXNzICgpOworLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOwor LQkJcHVibGljIGJvb2wgaXNfbG9hZGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxvYWRl ZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2NhY2hlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSA6IEdMaWIu T2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBNZXRhLkJhY2tncm91bmRJbWFnZUNhY2hlIGdldF9kZWZhdWx0ICgpOworLQkJcHVibGlj IE1ldGEuQmFja2dyb3VuZEltYWdlIGxvYWQgKEdMaWIuRmlsZSBmaWxlKTsKKy0JCXB1YmxpYyB2 b2lkIHB1cmdlIChHTGliLkZpbGUgZmlsZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIEJhcnJpZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFycmllciAo KTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUg KCk7CistCQlwdWJsaWMgdm9pZCByZWxlYXNlIChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhcnJpZXJEaXJlY3Rpb24gZGly ZWN0aW9ucyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDEgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHgyIHsgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MSB7IGdldDsgY29uc3Ry dWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTIgeyBnZXQ7IGNv bnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGhpdCAoTWV0YS5CYXJyaWVyRXZlbnQg ZXZlbnQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxlZnQgKE1ldGEuQmFycmllckV2ZW50IGV2 ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj b3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9m cmVlIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZXZlbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW0Nv bXBhY3RdCistCXB1YmxpYyBjbGFzcyBCYXJyaWVyRXZlbnQgeworLQkJcHVibGljIGludCBkdDsK Ky0JCXB1YmxpYyBkb3VibGUgZHg7CistCQlwdWJsaWMgZG91YmxlIGR5OworLQkJcHVibGljIGlu dCBldmVudF9pZDsKKy0JCXB1YmxpYyBib29sIGdyYWJiZWQ7CistCQlwdWJsaWMgYm9vbCByZWxl YXNlZDsKKy0JCXB1YmxpYyB1aW50MzIgdGltZTsKKy0JCXB1YmxpYyBkb3VibGUgeDsKKy0JCXB1 YmxpYyBkb3VibGUgeTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21wb3NpdG9yLmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBDb21wb3NpdG9yIHsK Ky0JCXB1YmxpYyB2b2lkIGFkZF93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlwdWJs aWMgdm9pZCBkZXN0cm95ICgpOworLQkJcHVibGljIGJvb2wgZmlsdGVyX2tleWJpbmRpbmcgKE1l dGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JCXB1YmxpYyB2b2lkIGZsYXNoX3NjcmVlbiAoTWV0 YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQor LQkJcHVibGljIHN0YXRpYyB2b2lkIGZvY3VzX3N0YWdlX3dpbmRvdyAoTWV0YS5TY3JlZW4gc2Ny ZWVuLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9mZWVkYmFja19ncm91 cF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBn ZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFt ZSA9ICJtZXRhX2dldF9zdGFnZV9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgQ2x1dHRlci5BY3Rvcj8gZ2V0X3N0YWdlX2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVl bik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9nZXRfdG9wX3dpbmRvd19ncm91cF9mb3Jfc2NyZWVuIildCist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3Rvcj8gZ2V0X3RvcF93aW5kb3dfZ3Jv dXBfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93 aW5kb3dfYWN0b3JzIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5MaXN0PHdlYWsg TWV0YS5XaW5kb3dBY3Rvcj4/IGdldF93aW5kb3dfYWN0b3JzIChNZXRhLlNjcmVlbiBzY3JlZW4p OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91cF9mb3Jfc2NyZWVuIildCistCQlwdWJs aWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3Rvcj8gZ2V0X3dpbmRvd19ncm91cF9mb3Jfc2Ny ZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJcHVibGljIHZvaWQgaGlkZV90aWxlX3ByZXZp ZXcgKCk7CistCQlwdWJsaWMgdm9pZCBoaWRlX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBN ZXRhLkNvbXBFZmZlY3QgZWZmZWN0KTsKKy0JCXB1YmxpYyB2b2lkIG1hbmFnZSAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIE1ldGEuQ29tcG9zaXRvciBAbmV3IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7Cist CQlwdWJsaWMgdm9pZCBxdWV1ZV9mcmFtZV9kcmF3biAoTWV0YS5XaW5kb3cgd2luZG93LCBib29s IG5vX2RlbGF5X2ZyYW1lKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV93aW5kb3cgKE1ldGEuV2lu ZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCBzaG93X3RpbGVfcHJldmlldyAoTWV0YS5XaW5k b3cgd2luZG93LCBNZXRhLlJlY3RhbmdsZSB0aWxlX3JlY3QsIGludCB0aWxlX21vbml0b3JfbnVt YmVyKTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIE1l dGEuQ29tcEVmZmVjdCBlZmZlY3QpOworLQkJcHVibGljIHZvaWQgc2hvd193aW5kb3dfbWVudSAo TWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIGludCB4LCBpbnQg eSk7CistCQlwdWJsaWMgdm9pZCBzaG93X3dpbmRvd19tZW51X2Zvcl9yZWN0IChNZXRhLldpbmRv dyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7 CistCQlwdWJsaWMgdm9pZCBzaXplX2NoYW5nZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywg TWV0YS5TaXplQ2hhbmdlIHdoaWNoX2NoYW5nZSwgTWV0YS5SZWN0YW5nbGUgb2xkX2ZyYW1lX3Jl Y3QsIE1ldGEuUmVjdGFuZ2xlIG9sZF9idWZmZXJfcmVjdCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9zdGFn ZV9pc19mb2N1c2VkIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgc3RhZ2VfaXNfZm9jdXNlZCAo TWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2UgKE1l dGEuV29ya3NwYWNlIGZyb20sIE1ldGEuV29ya3NwYWNlIHRvLCBNZXRhLk1vdGlvbkRpcmVjdGlv biBkaXJlY3Rpb24pOworLQkJcHVibGljIHZvaWQgc3luY19zdGFjayAoR0xpYi5MaXN0PE1ldGEu V2luZG93QWN0b3I+IHN0YWNrKTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNfdXBkYXRlc19mcm96ZW4g KE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCBzeW5jX3dpbmRvd19nZW9tZXRy eSAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIGRpZF9wbGFjZW1lbnQpOworLQkJcHVibGljIHZv aWQgdW5tYW5hZ2UgKCk7CistCQlwdWJsaWMgdm9pZCB3aW5kb3dfb3BhY2l0eV9jaGFuZ2VkIChN ZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgd2luZG93X3NoYXBlX2NoYW5nZWQg KE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCB3aW5kb3dfc3VyZmFjZV9jaGFu Z2VkIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3Jf dHJhY2tlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQ3Vyc29yVHJhY2tlciA6IEdM aWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBDdXJzb3JUcmFja2VyICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IE1ldGEuQ3Vyc29yVHJhY2tlciBnZXRfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsK Ky0JCXB1YmxpYyB2b2lkIGdldF9ob3QgKG91dCBpbnQgeCwgb3V0IGludCB5KTsKKy0JCXB1Ymxp YyB2b2lkIGdldF9wb2ludGVyIChpbnQgeCwgaW50IHksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1v ZHMpOworLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7CistCQlw dWJsaWMgdm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29sIHZpc2libGUpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90 eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBEaXNwbGF5IDogR0xpYi5PYmplY3QgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERpc3Bs YXkgKCk7CistCQlwdWJsaWMgdm9pZCBhZGRfaWdub3JlZF9jcm9zc2luZ19zZXJpYWwgKHVsb25n IHNlcmlhbCk7CistCQlwdWJsaWMgdWludCBhZGRfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUsIEdM aWIuU2V0dGluZ3Mgc2V0dGluZ3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzLCBvd25lZCBN ZXRhLktleUhhbmRsZXJGdW5jIGhhbmRsZXIpOworLQkJcHVibGljIGJvb2wgYmVnaW5fZ3JhYl9v cCAoTWV0YS5TY3JlZW4gc2NyZWVuLCBNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuR3JhYk9wIG9w LCBib29sIHBvaW50ZXJfYWxyZWFkeV9ncmFiYmVkLCBib29sIGZyYW1lX2FjdGlvbiwgaW50IGJ1 dHRvbiwgdWxvbmcgbW9kbWFzaywgdWludDMyIHRpbWVzdGFtcCwgaW50IHJvb3RfeCwgaW50IHJv b3RfeSk7CistCQlwdWJsaWMgdm9pZCBjbGVhcl9tb3VzZV9tb2RlICgpOworLQkJcHVibGljIHZv aWQgZW5kX2dyYWJfb3AgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9jdXNf dGhlX25vX2ZvY3VzX3dpbmRvdyAoTWV0YS5TY3JlZW4gc2NyZWVuLCB1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyB2b2lkIGZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgdW5vd25lZCBNZXRhLkNvbXBvc2l0b3IgZ2V0X2NvbXBvc2l0b3IgKCk7CistCQlw dWJsaWMgdWludDMyIGdldF9jdXJyZW50X3RpbWUgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9j dXJyZW50X3RpbWVfcm91bmR0cmlwICgpOworLQkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50 X2Jhc2UgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfZm9jdXNfd2luZG93 ICgpOworLQkJcHVibGljIE1ldGEuR3JhYk9wIGdldF9ncmFiX29wICgpOworLQkJcHVibGljIHVp bnQgZ2V0X2tleWJpbmRpbmdfYWN0aW9uICh1aW50IGtleWNvZGUsIHVsb25nIG1hc2spOworLQkJ cHVibGljIHVpbnQzMiBnZXRfbGFzdF91c2VyX3RpbWUgKCk7CistCQlwdWJsaWMgaW50IGdldF9z aGFwZV9ldmVudF9iYXNlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3Rh Yl9jdXJyZW50IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsK Ky0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gZ2V0X3RhYl9saXN0IChNZXRh LlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2U/IHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX25leHQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldv cmtzcGFjZSB3b3Jrc3BhY2UsIE1ldGEuV2luZG93PyB3aW5kb3csIGJvb2wgYmFja3dhcmQpOwor LQkJcHVibGljIHVub3duZWQgWC5EaXNwbGF5IGdldF94ZGlzcGxheSAoKTsKKy0JCXB1YmxpYyBp bnQgZ2V0X3hpbnB1dF9vcGNvZGUgKCk7CistCQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJhdG9y IChzdHJpbmcgYWNjZWxlcmF0b3IpOworLQkJcHVibGljIGJvb2wgaGFzX3NoYXBlICgpOworLQkJ cHVibGljIGJvb2wgaXNfcG9pbnRlcl9lbXVsYXRpbmdfc2VxdWVuY2UgKENsdXR0ZXIuRXZlbnRT ZXF1ZW5jZT8gc2VxdWVuY2UpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Hcm91cCBsb29rdXBf Z3JvdXAgKFguV2luZG93IGdyb3VwX2xlYWRlcik7CistCQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5 YmluZGluZyAoc3RyaW5nIG5hbWUpOworLQkJcHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3VzX3dp bmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIGZvY3VzX2ZyYW1lLCB1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IHNvcnRfd2luZG93 c19ieV9zdGFja2luZyAoR0xpYi5TTGlzdDxNZXRhLldpbmRvdz4gd2luZG93cyk7CistCQlwdWJs aWMgYm9vbCBzdXBwb3J0c19leHRlbmRlZF9iYXJyaWVycyAoKTsKKy0JCXB1YmxpYyB2b2lkIHVu ZnJlZXplX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHVuZ3Jh Yl9hY2NlbGVyYXRvciAodWludCBhY3Rpb25faWQpOworLQkJcHVibGljIHZvaWQgdW5ncmFiX2tl eWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFuYWdlX3NjcmVl biAoTWV0YS5TY3JlZW4gc2NyZWVuLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29s IHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVpbnQzMiB0aW1lMSwgdWludDMyIHRpbWUyKTsKKy0J CXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2luZG93IHh3aW5k b3cpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBv YmplY3QsIHVpbnQgcDAsIHVpbnQgcDEpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3Bf YmVnaW4gKE1ldGEuU2NyZWVuIG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAx KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2VuZCAoTWV0YS5TY3JlZW4gb2JqZWN0 LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworLQkJcHVibGljIHNpZ25hbCBib29s IG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgb3ZlcmxheV9rZXkgKCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgcmVzdGFydCAoKTsKKy0J CXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc2l6ZV9wb3B1cCAoYm9vbCBvYmplY3QsIE1ldGEu UmVjdGFuZ2xlIHAwLCBpbnQgcDEsIGludCBwMik7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hv d19yZXN0YXJ0X21lc3NhZ2UgKHN0cmluZz8gbWVzc2FnZSk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgd2luZG93X2NyZWF0ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgd2luZG93X2RlbWFuZHNfYXR0ZW50aW9uIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19tYXJrZWRfdXJnZW50IChNZXRhLldpbmRvdyBvYmpl Y3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIild CistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRnJhbWUgeworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2dyb3VwLmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBj bGFzcyBHcm91cCB7CistCQlwdWJsaWMgaW50IGdldF9zaXplICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBN ZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGljIGJvb2wgcHJvcGVydHlfbm90 aWZ5IChYLkV2ZW50IGV2ZW50KTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9sYXllcnMgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCIsIHR5cGVfaWQgPSAibWV0YV9pZGxlX21vbml0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIElkbGVNb25pdG9yIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIElkbGVNb25pdG9yICgpOworLQkJ cHVibGljIHVpbnQgYWRkX2lkbGVfd2F0Y2ggKHVpbnQ2NCBpbnRlcnZhbF9tc2VjLCBvd25lZCBN ZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CistCQlwdWJsaWMgdWludCBhZGRf dXNlcl9hY3RpdmVfd2F0Y2ggKG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxi YWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9jb3Jl ICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2Zvcl9k ZXZpY2UgKGludCBkZXZpY2VfaWQpOworLQkJcHVibGljIGludDY0IGdldF9pZGxldGltZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIHJlbW92ZV93YXRjaCAodWludCBpZCk7CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBpbnQgZGV2aWNlX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9rZXliaW5kaW5ncy5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0K Ky0JcHVibGljIGNsYXNzIEtleUJpbmRpbmcgeworLQkJcHVibGljIHVpbnQgZ2V0X21hc2sgKCk7 CistCQlwdWJsaWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIgZ2V0X21vZGlmaWVycyAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2J1aWx0 aW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19yZXZlcnNlZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2tleWJpbmRpbmdzLmgiLCBjbmFtZSA9ICJtZXRhX2tleWJpbmRp bmdzX3NldF9jdXN0b21faGFuZGxlciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHNldF9jdXN0 b21faGFuZGxlciAoc3RyaW5nIG5hbWUsIG93bmVkIE1ldGEuS2V5SGFuZGxlckZ1bmM/IGhhbmRs ZXIpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgp IildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBNb25pdG9yTWFuYWdlciA6IEdMaWIuREJ1c0lu dGVyZmFjZVNrZWxldG9uLCBHTGliLkRCdXNJbnRlcmZhY2UgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE1vbml0b3JNYW5hZ2VyICgp OworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuTW9uaXRvck1hbmFnZXIgQGdldCAoKTsK Ky0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfZm9yX291dHB1dCAodWludCBpZCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgY29uZmlybV9kaXNwbGF5X2NoYW5nZSAoKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRh X3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIDog R0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHJvdGVjdGVkIFBsdWdpbiAoKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX21vZGFsIChN ZXRhLk1vZGFsT3B0aW9ucyBvcHRpb25zLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2 b2lkIGNvbXBsZXRlX2Rpc3BsYXlfY2hhbmdlIChib29sIG9rKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95IChNZXRhLldpbmRvd0FjdG9y IGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3lfY29tcGxldGVkIChNZXRhLldpbmRvd0Fj dG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9tb2RhbCAodWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IGdldF9pbmZvICgpOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5TY3JlZW4gZ2V0X3NjcmVlbiAoKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVfdGlsZV9wcmV2aWV3ICgpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wga2V5YmluZGluZ19maWx0ZXIgKE1ldGEuS2V5Qmlu ZGluZyBiaW5kaW5nKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtp bGxfc3dpdGNoX3dvcmtzcGFjZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIGtpbGxfd2luZG93X2VmZmVjdHMgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJ cHVibGljIHN0YXRpYyB2b2lkIG1hbmFnZXJfc2V0X3BsdWdpbl90eXBlIChHTGliLlR5cGUgZ3R5 cGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWFwIChNZXRhLldp bmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIG1hcF9jb21wbGV0ZWQgKE1ldGEuV2lu ZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg bWluaW1pemUgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgbWluaW1p emVfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIE1ldGEuUGx1Z2luSW5mbz8gcGx1Z2luX2luZm8gKCk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3RpbGVfcHJldmll dyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLlJlY3RhbmdsZSB0aWxlX3JlY3QsIGludCB0aWxl X21vbml0b3JfbnVtYmVyKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lk IHNob3dfd2luZG93X21lbnUgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlw ZSBtZW51LCBpbnQgeCwgaW50IHkpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgc2hvd193aW5kb3dfbWVudV9mb3JfcmVjdCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRh LldpbmRvd01lbnVUeXBlIG1lbnUsIE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2l6ZV9jaGFuZ2UgKE1ldGEuV2luZG93QWN0b3Ig YWN0b3IsIE1ldGEuU2l6ZUNoYW5nZSB3aGljaF9jaGFuZ2UsIE1ldGEuUmVjdGFuZ2xlIG9sZF9m cmFtZV9yZWN0LCBNZXRhLlJlY3RhbmdsZSBvbGRfYnVmZmVyX3JlY3QpOworLQkJcHVibGljIHZv aWQgc2l6ZV9jaGFuZ2VfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0YXJ0ICgpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3dpdGNoX3dvcmtzcGFjZSAoaW50IGZyb20sIGlu dCB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN3 aXRjaF93b3Jrc3BhY2VfY29tcGxldGVkICgpOworLSAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIHVubWluaW1pemUgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVi bGljIHZvaWQgdW5taW5pbWl6ZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgeGV2ZW50X2ZpbHRlciAoWC5F dmVudCBldmVudCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvc2Ny ZWVuLmgiLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVuX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBTY3JlZW4gOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU2NyZWVuICgpOworLQkJcHVibGljIHVub3du ZWQgTWV0YS5Xb3Jrc3BhY2U/IGFwcGVuZF9uZXdfd29ya3NwYWNlIChib29sIGFjdGl2YXRlLCB1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX2RlZmF1bHRfd2luZG93ICh1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9h Y3RpdmVfd29ya3NwYWNlICgpOworLQkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9p bmRleCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1Ymxp YyBpbnQgZ2V0X2N1cnJlbnRfbW9uaXRvcl9mb3JfcG9zIChpbnQgeCwgaW50IHkpOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgpOworLQkJcHVibGljIE1ldGEu UmVjdGFuZ2xlIGdldF9tb25pdG9yX2dlb21ldHJ5IChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMg Ym9vbCBnZXRfbW9uaXRvcl9pbl9mdWxsc2NyZWVuIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMg aW50IGdldF9tb25pdG9yX2luZGV4X2Zvcl9yZWN0IChNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0J CXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfbmVpZ2hib3JfaW5kZXggKGludCB3aGljaF9tb25pdG9y LCBNZXRhLlNjcmVlbkRpcmVjdGlvbiBkaXIpOworLQkJcHVibGljIGludCBnZXRfbl9tb25pdG9y cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBpbnQg Z2V0X3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIg KCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWln aHQpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlf aW5kZXggKGludCBpbmRleCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8TWV0YS5Xb3Jr c3BhY2U+IGdldF93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94cm9vdCAo KTsKKy0JCXB1YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuU2NyZWVu Q29ybmVyIHN0YXJ0aW5nX2Nvcm5lciwgYm9vbCB2ZXJ0aWNhbF9sYXlvdXQsIGludCBuX3Jvd3Ms IGludCBuX2NvbHVtbnMpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlX3dvcmtzcGFjZSAoTWV0YS5X b3Jrc3BhY2Ugd29ya3NwYWNlLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9jbV9zZWxlY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNv ciBjdXJzb3IpOworLQkJcHVibGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBpbl9mdWxsc2NyZWVuX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXN0YWNr ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhcnR1cF9zZXF1ZW5jZV9jaGFuZ2VkICh2 b2lkKiBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19lbnRlcmVkX21vbml0 b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3 aW5kb3dfbGVmdF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgd29ya2FyZWFzX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3 b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29y a3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90aW9uRGlyZWN0aW9u IHAxKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9 ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93 X3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKy0JCXB1Ymxp YyB2b2lkIGdldF9ib3VuZHMgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93 X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7Cist CQlwdWJsaWMgdm9pZCBwYWludCAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5k b3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/ IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAo KTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFk b3dfZmFjdG9yeV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhZG93RmFjdG9yeSA6 IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXB1YmxpYyBTaGFkb3dGYWN0b3J5ICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IE1ldGEuU2hhZG93RmFjdG9yeSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRv d1BhcmFtcyBnZXRfcGFyYW1zIChzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0J CXB1YmxpYyBNZXRhLlNoYWRvdyBnZXRfc2hhZG93IChNZXRhLldpbmRvd1NoYXBlIHNoYXBlLCBp bnQgd2lkdGgsIGludCBoZWlnaHQsIHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQpOwor LQkJcHVibGljIHZvaWQgc2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNl ZCwgTWV0YS5TaGFkb3dQYXJhbXMgQHBhcmFtcyk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hh bmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhcGVkX3RleHR1cmVfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsu SW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0 ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgU2hhcGVkVGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBDYWlyby5TdXJm YWNlIGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50IGNsaXApOworLQkJcHVibGljIHVub3du ZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NyZWF0 ZV9taXBtYXBzIChib29sIGNyZWF0ZV9taXBtYXBzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9tYXNr X3RleHR1cmUgKENvZ2wuVGV4dHVyZSBtYXNrX3RleHR1cmUpOworLQkJcHVibGljIHZvaWQgc2V0 X29wYXF1ZV9yZWdpb24gKG93bmVkIENhaXJvLlJlZ2lvbiBvcGFxdWVfcmVnaW9uKTsKKy0JCXB1 YmxpYyBib29sIHVwZGF0ZV9hcmVhIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdo dCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3RoZW1lLmgiKV0KKy0JW0NvbXBhY3RdCistCXB1 YmxpYyBjbGFzcyBUaGVtZSB7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgTWV0YS5UaGVtZSBnZXRfZGVmYXVsdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuVGhlbWUg QG5ldyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cu aCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3Ry YWN0IGNsYXNzIFdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXaW5kb3cgKCk7CistCQlwdWJsaWMg dm9pZCBhY3RpdmF0ZSAodWludDMyIGN1cnJlbnRfdGltZSk7CistCQlwdWJsaWMgdm9pZCBhY3Rp dmF0ZV93aXRoX3dvcmtzcGFjZSAodWludDMyIGN1cnJlbnRfdGltZSwgTWV0YS5Xb3Jrc3BhY2Ug d29ya3NwYWNlKTsKKy0JCXB1YmxpYyBib29sIGFsbG93c19tb3ZlICgpOworLQkJcHVibGljIGJv b2wgYWxsb3dzX3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGJlZ2luX2dyYWJfb3AgKE1ldGEu R3JhYk9wIG9wLCBib29sIGZyYW1lX2FjdGlvbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJs aWMgYm9vbCBjYW5fY2xvc2UgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5fbWF4aW1pemUgKCk7Cist CQlwdWJsaWMgYm9vbCBjYW5fbWluaW1pemUgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5fc2hhZGUg KCk7CistCQlwdWJsaWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jr c3BhY2UpOworLQkJcHVibGljIHZvaWQgY2hhbmdlX3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IHNw YWNlX2luZGV4LCBib29sIGFwcGVuZCk7CistCQlwdWJsaWMgdm9pZCBjaGVja19hbGl2ZSAodWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgY2xpZW50X3JlY3RfdG9f ZnJhbWVfcmVjdCAoTWV0YS5SZWN0YW5nbGUgY2xpZW50X3JlY3QpOworLQkJcHVibGljIHZvaWQg Y29tcHV0ZV9ncm91cCAoKTsKKy0JCXB1YmxpYyB2b2lkIEBkZWxldGUgKHVpbnQzMiB0aW1lc3Rh bXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZmluZF9yb290X2FuY2VzdG9yICgp OworLQkJcHVibGljIHZvaWQgZm9jdXMgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZv aWQgZm9yZWFjaF9hbmNlc3RvciAoTWV0YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1 YmxpYyB2b2lkIGZvcmVhY2hfdHJhbnNpZW50IChNZXRhLldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMp OworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3RfdG9fY2xpZW50X3JlY3QgKE1l dGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3QpOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGhfcG9zID0g MC4xLCBhcnJheV9sZW5ndGhfdHlwZSA9ICJnc2l6ZSIpXQorLQkJcHVibGljIGludFtdIGdldF9h bGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0 ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9jbGllbnRfbWFjaGluZSAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9jb21wb3NpdG9yX3ByaXZhdGUgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgpOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5GcmFtZSBnZXRfZnJhbWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24/IGdl dF9mcmFtZV9ib3VuZHMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2ZyYW1lX3Jl Y3QgKCk7CistCQlwdWJsaWMgTWV0YS5GcmFtZVR5cGUgZ2V0X2ZyYW1lX3R5cGUgKCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLkdyb3VwIGdldF9ncm91cCAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRpb25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X2d0a19hcHBsaWNhdGlvbl9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfZ3RrX21lbnViYXJfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X2d0a190aGVtZV92YXJpYW50ICgpOworLQkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF9ndGtfdW5pcXVlX2J1c19uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9ndGtfd2luZG93X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2lj b25fZ2VvbWV0cnkgKG91dCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlN0 YWNrTGF5ZXIgZ2V0X2xheWVyICgpOworLQkJcHVibGljIE1ldGEuTWF4aW1pemVGbGFncyBnZXRf bWF4aW1pemVkICgpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfbXV0dGVyX2hpbnRzICgpOworLQkJcHVibGljIGludCBnZXRfcGlk ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9yb2xlICgpOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5TY3JlZW4gZ2V0X3NjcmVlbiAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9zdGFi bGVfc2VxdWVuY2UgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXJ0dXBfaWQg KCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdz8gZ2V0X3RpbGVfbWF0Y2ggKCk7Cist CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RpdGxlICgpOworLQkJcHVibGljIHVub3duZWQg TWV0YS5XaW5kb3cgZ2V0X3RyYW5zaWVudF9mb3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF91 c2VyX3RpbWUgKCk7CistCQlwdWJsaWMgTWV0YS5XaW5kb3dUeXBlIGdldF93aW5kb3dfdHlwZSAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21fY2xhc3MgKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X3dtX2NsYXNzX2luc3RhbmNlICgpOworLQkJcHVibGljIE1ldGEu UmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfYWxsX21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEu UmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfY3VycmVudF9tb25pdG9yICgpOworLQkJcHVibGljIE1l dGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9y KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2UgKCk7Cist CQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3h3aW5kb3cgKCk7CistCQlwdWJsaWMgdm9pZCBncm91cF9s ZWFkZXJfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBib29sIGhhc19mb2N1cyAoKTsKKy0JCXB1Ymxp YyBib29sIGlzX2Fib3ZlICgpOworLQkJcHVibGljIGJvb2wgaXNfYWx3YXlzX29uX2FsbF93b3Jr c3BhY2VzICgpOworLQkJcHVibGljIGJvb2wgaXNfYW5jZXN0b3Jfb2ZfdHJhbnNpZW50IChNZXRh LldpbmRvdyB0cmFuc2llbnQpOworLQkJcHVibGljIGJvb2wgaXNfYXR0YWNoZWRfZGlhbG9nICgp OworLQkJcHVibGljIGJvb2wgaXNfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2hp ZGRlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX21vbml0b3Jfc2l6ZWQgKCk7CistCQlwdWJsaWMg Ym9vbCBpc19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX29uX3ByaW1h cnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIGlzX292ZXJyaWRlX3JlZGlyZWN0ICgpOwor LQkJcHVibGljIGJvb2wgaXNfcmVtb3RlICgpOworLQkJcHVibGljIGJvb2wgaXNfc2NyZWVuX3Np emVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2hhZGVkICgpOworLQkJcHVibGljIGJvb2wgaXNf c2tpcF90YXNrYmFyICgpOworLQkJcHVibGljIHZvaWQga2lsbCAoKTsKKy0JCXB1YmxpYyBib29s IGxvY2F0ZWRfb25fd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVi bGljIHZvaWQgbG93ZXIgKCk7CistCQlwdWJsaWMgdm9pZCBtYWtlX2Fib3ZlICgpOworLQkJcHVi bGljIHZvaWQgbWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgbWF4aW1pemUgKE1l dGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplICgp OworLQkJcHVibGljIHZvaWQgbW92ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253 LCBpbnQgcm9vdF95X253KTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChib29s IHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBpbnQgaCk7Cist CQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2 b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3NpdG9y ICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBwcml2 KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7CistCQlwdWJsaWMg dm9pZCBzaGFkZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzaG92ZV90aXRs ZWJhcl9vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIHNob3dpbmdfb25faXRzX3dvcmtzcGFj ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNodXRkb3duX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQg c3RpY2sgKCk7CistCQlwdWJsaWMgYm9vbCB0aXRsZWJhcl9pc19vbnNjcmVlbiAoKTsKKy0JCXB1 YmxpYyB2b2lkIHVubWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9mdWxsc2Ny ZWVuICgpOworLQkJcHVibGljIHZvaWQgdW5tYXhpbWl6ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRp cmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQgdW5taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lk IHVuc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJcHVibGljIHZvaWQgdW5zaGFkZSAodWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCB1bnN0aWNrICgpOworLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhYm92ZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgYm9vbCBhcHBlYXJzX2ZvY3VzZWQgeyBnZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVjb3JhdGVkIHsgZ2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRlbWFuZHNfYXR0ZW50aW9uIHsgZ2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW4geyBnZXQ7 IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoIHsgZ2V0OyB9Cist CQlwdWJsaWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9pZCB7IGdldDsgfQorLQkJcHVibGljIHN0 cmluZyBndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJp bmcgZ3RrX21lbnViYXJfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3Rr X3VuaXF1ZV9idXNfbmFtZSB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfd2luZG93X29i amVjdF9wYXRoIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDYWly by5TdXJmYWNlIGljb24geyBvd25lZCBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGJvb2wgbWF4aW1pemVkX2hvcml6b250YWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBtYXhpbWl6ZWRfdmVydGljYWxseSB7IGdldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBtaW5pX2ljb24g eyBvd25lZCBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWlu aW1pemVkIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIG11dHRlcl9oaW50cyB7IGdldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBvbl9hbGxfd29ya3NwYWNlcyB7 IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXNpemVhYmxl IHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHNraXBfdGFz a2JhciB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyB0aXRsZSB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCB1cmdlbnQgeyBnZXQ7IH0KKy0JCXB1YmxpYyB1 aW50IHVzZXJfdGltZSB7IGdldDsgfQorLQkJcHVibGljIE1ldGEuV2luZG93VHlwZSB3aW5kb3df dHlwZSB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyB3bV9jbGFzcyB7IGdldDsgfQorLQkJW0ND b2RlIChjbmFtZSA9ICJmb2N1cyIpXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGZvY3VzZWQgKCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcG9zaXRpb25fY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCByYWlzZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2Vk ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRv d19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0 dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5D b250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93QWN0b3IgKCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIFguV2luZG93IGdl dF94X3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHN0cmluZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2Rl IHNoYWRvd19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9m cmFtZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhX3dp bmRvd19zaGFwZS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfd2luZG93X3NoYXBlX3JlZiIsIHR5 cGVfaWQgPSAibWV0YV93aW5kb3dfc2hhcGVfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9 ICJtZXRhX3dpbmRvd19zaGFwZV91bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNz IFdpbmRvd1NoYXBlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXB1YmxpYyBXaW5kb3dTaGFwZSAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7CistCQlwdWJs aWMgYm9vbCBlcXVhbCAoTWV0YS5XaW5kb3dTaGFwZSBzaGFwZV9iKTsKKy0JCXB1YmxpYyB2b2lk IGdldF9ib3JkZXJzIChpbnQgYm9yZGVyX3RvcCwgaW50IGJvcmRlcl9yaWdodCwgaW50IGJvcmRl cl9ib3R0b20sIGludCBib3JkZXJfbGVmdCk7CistCQlwdWJsaWMgdWludCBoYXNoICgpOworLQkJ cHVibGljIE1ldGEuV2luZG93U2hhcGUgQHJlZiAoKTsKKy0JCXB1YmxpYyBDYWlyby5SZWdpb24g dG9fcmVnaW9uIChpbnQgY2VudGVyX3dpZHRoLCBpbnQgY2VudGVyX2hlaWdodCk7CistCQlwdWJs aWMgdm9pZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93b3Jrc3BhY2VfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIFdvcmtzcGFjZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXb3Jrc3BhY2UgKCk7 CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg dm9pZCBhY3RpdmF0ZV93aXRoX2ZvY3VzIChNZXRhLldpbmRvdyBmb2N1c190aGlzLCB1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9uZWlnaGJv ciAoTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1l dGEuU2NyZWVuIGdldF9zY3JlZW4gKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dv cmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dv cmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0b3IpOworLQkJcHVibGljIGludCBp bmRleCAoKTsKKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5k b3dzICgpOworLQkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1l dGEuU3RydXQ+IHN0cnV0cyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50 IG5fd2luZG93cyB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWlu dCB3b3Jrc3BhY2VfaW5kZXggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3df YWRkZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93 X3JlbW92ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGlj IHN0cnVjdCBCdXR0b25MYXlvdXQgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwg YXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRv bkZ1bmN0aW9uW10gbGVmdF9idXR0b25zOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBib29sW10g bGVmdF9idXR0b25zX2hhc19zcGFjZXI7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl LCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0 dG9uRnVuY3Rpb25bXSByaWdodF9idXR0b25zOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBib29s W10gcmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0 cnVjdCBFZGdlIHsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworLQkJcHVibGljIE1l dGEuU2lkZSBzaWRlX3R5cGU7CistCQlwdWJsaWMgTWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBGcmFtZUJvcmRlcnMgeworLQkJcHVibGlj IEd0ay5Cb3JkZXIgdmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIGludmlzaWJsZTsKKy0J CXB1YmxpYyBHdGsuQm9yZGVyIHRvdGFsOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBsdWdpbkluZm8geworLQkJcHVibGlj IHdlYWsgc3RyaW5nIG5hbWU7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgdmVyc2lvbjsKKy0JCXB1 YmxpYyB3ZWFrIHN0cmluZyBhdXRob3I7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbGljZW5zZTsK Ky0JCXB1YmxpYyB3ZWFrIHN0cmluZyBkZXNjcmlwdGlvbjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7CistCQlwdWJsaWMgdWludCB2ZXJzaW9u X21ham9yOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9taW5vcjsKKy0JCXB1YmxpYyB1aW50IHZl cnNpb25fbWljcm87CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX2FwaTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1Ymxp YyBpbnQgeTsKKy0JCXB1YmxpYyBpbnQgd2lkdGg7CistCQlwdWJsaWMgaW50IGhlaWdodDsKKy0J CXB1YmxpYyBpbnQgYXJlYSAoKTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKE1ldGEu UmVjdGFuZ2xlIGlubmVyX3JlY3QpOworLQkJcHVibGljIGJvb2wgY291bGRfZml0X3JlY3QgKE1l dGEuUmVjdGFuZ2xlIGlubmVyX3JlY3QpOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuUmVj dGFuZ2xlIHNyYzIpOworLQkJcHVibGljIGJvb2wgaG9yaXpfb3ZlcmxhcCAoTWV0YS5SZWN0YW5n bGUgcmVjdDIpOworLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0IChNZXRhLlJlY3RhbmdsZSBzcmMy LCBvdXQgTWV0YS5SZWN0YW5nbGUgZGVzdCk7CistCQlwdWJsaWMgYm9vbCBvdmVybGFwIChNZXRh LlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgdW5pb24gKE1ldGEu UmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBib29sIHZlcnRfb3ZlcmxhcCAoTWV0YS5SZWN0 YW5nbGUgcmVjdDIpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3Ry dWN0IFNoYWRvd1BhcmFtcyB7CistCQlwdWJsaWMgaW50IHJhZGl1czsKKy0JCXB1YmxpYyBpbnQg dG9wX2ZhZGU7CistCQlwdWJsaWMgaW50IHhfb2Zmc2V0OworLQkJcHVibGljIGludCB5X29mZnNl dDsKKy0JCXB1YmxpYyB1aW50OCBvcGFjaXR5OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0 cnVjdCBTdHJ1dCB7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBN ZXRhLlNpZGUgc2lkZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9 ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVi bGljIGVudW0gQmFycmllckRpcmVjdGlvbiB7CistCQlQT1NJVElWRV9YLAorLQkJUE9TSVRJVkVf WSwKKy0JCU5FR0FUSVZFX1gsCistCQlORUdBVElWRV9ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNU SU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24geworLQkJTUVOVSwKKy0JCU1JTklNSVpFLAorLQkJ TUFYSU1JWkUsCistCQlDTE9TRSwKKy0JCVNIQURFLAorLQkJQUJPVkUsCistCQlTVElDSywKKy0J CVVOU0hBREUsCistCQlVTkFCT1ZFLAorLQkJVU5TVElDSywKKy0JCUFQUE1FTlUsCistCQlMQVNU CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIiwg Y3ByZWZpeCA9ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21wX2VmZmVj dF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBDb21wRWZmZWN0IHsKKy0JCUNSRUFURSwK Ky0JCVVOTUlOSU1JWkUsCistCQlERVNUUk9ZLAorLQkJTUlOSU1JWkUsCistCQlOT05FCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0g Ik1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gQ3Vyc29yIHsKKy0JCU5PTkUsCistCQlERUZBVUxULAorLQkJTk9SVEhfUkVT SVpFLAorLQkJU09VVEhfUkVTSVpFLAorLQkJV0VTVF9SRVNJWkUsCistCQlFQVNUX1JFU0laRSwK Ky0JCVNFX1JFU0laRSwKKy0JCVNXX1JFU0laRSwKKy0JCU5FX1JFU0laRSwKKy0JCU5XX1JFU0la RSwKKy0JCU1PVkVfT1JfUkVTSVpFX1dJTkRPVywKKy0JCUJVU1ksCistCQlETkRfSU5fRFJBRywK Ky0JCURORF9NT1ZFLAorLQkJRE5EX0NPUFksCistCQlETkRfVU5TVVBQT1JURURfVEFSR0VULAor LQkJUE9JTlRJTkdfSEFORCwKKy0JCUNST1NTSEFJUiwKKy0JCUlCRUFNLAorLQkJTEFTVAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAi TUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0K Ky0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBEZWJ1Z1RvcGljIHsKKy0JCVZFUkJPU0UsCistCQlG T0NVUywKKy0JCVdPUktBUkVBLAorLQkJU1RBQ0ssCistCQlUSEVNRVMsCistCQlTTSwKKy0JCUVW RU5UUywKKy0JCVdJTkRPV19TVEFURSwKKy0JCVdJTkRPV19PUFMsCistCQlHRU9NRVRSWSwKKy0J CVBMQUNFTUVOVCwKKy0JCVBJTkcsCistCQlYSU5FUkFNQSwKKy0JCUtFWUJJTkRJTkdTLAorLQkJ U1lOQywKKy0JCUVSUk9SUywKKy0JCVNUQVJUVVAsCistCQlQUkVGUywKKy0JCUdST1VQUywKKy0J CVJFU0laSU5HLAorLQkJU0hBUEVTLAorLQkJQ09NUE9TSVRPUiwKKy0JCUVER0VfUkVTSVNUQU5D RSwKKy0JCURCVVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVj dGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7 CistCQlMRUZULAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RUT00sCistCQlVUCwKKy0JCURP V04sCistCQlIT1JJWk9OVEFMLAorLQkJVkVSVElDQUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0VER0VfIiwgdHlwZV9p ZCA9ICJtZXRhX2VkZ2VfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBFZGdlVHlw ZSB7CistCQlXSU5ET1csCistCQlNT05JVE9SLAorLQkJU0NSRUVOCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0VYSVRfIiwg dHlwZV9pZCA9ICJtZXRhX2V4aXRfY29kZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBF eGl0Q29kZSB7CistCQlTVUNDRVNTLAorLQkJRVJST1IKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBl X2lkID0gIm1ldGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJs aWMgZW51bSBGcmFtZUZsYWdzIHsKKy0JCUFMTE9XU19ERUxFVEUsCistCQlBTExPV1NfTUVOVSwK Ky0JCUFMTE9XU19BUFBNRU5VLAorLQkJQUxMT1dTX01JTklNSVpFLAorLQkJQUxMT1dTX01BWElN SVpFLAorLQkJQUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwKKy0JCUFMTE9XU19IT1JJWk9OVEFMX1JF U0laRSwKKy0JCUhBU19GT0NVUywKKy0JCVNIQURFRCwKKy0JCVNUVUNLLAorLQkJTUFYSU1JWkVE LAorLQkJQUxMT1dTX1NIQURFLAorLQkJQUxMT1dTX01PVkUsCistCQlGVUxMU0NSRUVOLAorLQkJ SVNfRkxBU0hJTkcsCistCQlBQk9WRSwKKy0JCVRJTEVEX0xFRlQsCistCQlUSUxFRF9SSUdIVAor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZp eCA9ICJNRVRBX0ZSQU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRnJhbWVUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURJQUxP RywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVVUSUxJVFksCistCQlNRU5VLAorLQkJQk9SREVSLAor LQkJQVRUQUNIRUQsCistCQlMQVNUOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAo TWV0YS5GcmFtZVR5cGUgdHlwZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfR1JBQl9PUF8iLCB0eXBlX2lkID0gIm1l dGFfZ3JhYl9vcF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBHcmFiT3AgeworLQkJTk9O RSwKKy0JCUNPTVBPU0lUT1IsCistCQlXQVlMQU5EX1BPUFVQLAorLQkJV0lORE9XX0JBU0UsCist CQlGUkFNRV9CVVRUT04sCistCQlNT1ZJTkcsCistCQlSRVNJWklOR19OVywKKy0JCVJFU0laSU5H X04sCistCQlSRVNJWklOR19ORSwKKy0JCVJFU0laSU5HX0UsCistCQlSRVNJWklOR19TVywKKy0J CVJFU0laSU5HX1MsCistCQlSRVNJWklOR19TRSwKKy0JCVJFU0laSU5HX1csCistCQlLRVlCT0FS RF9NT1ZJTkcsCistCQlLRVlCT0FSRF9SRVNJWklOR19VTktOT1dOLAorLQkJS0VZQk9BUkRfUkVT SVpJTkdfTlcsCistCQlLRVlCT0FSRF9SRVNJWklOR19OLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdf TkUsCistCQlLRVlCT0FSRF9SRVNJWklOR19FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU1csCist CQlLRVlCT0FSRF9SRVNJWklOR19TLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU0UsCistCQlLRVlC T0FSRF9SRVNJWklOR19XCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElPTl8iLCB0eXBlX2lkID0g Im1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEtl eUJpbmRpbmdBY3Rpb24geworLQkJTk9ORSwKKy0JCVdPUktTUEFDRV8xLAorLQkJV09SS1NQQUNF XzIsCistCQlXT1JLU1BBQ0VfMywKKy0JCVdPUktTUEFDRV80LAorLQkJV09SS1NQQUNFXzUsCist CQlXT1JLU1BBQ0VfNiwKKy0JCVdPUktTUEFDRV83LAorLQkJV09SS1NQQUNFXzgsCistCQlXT1JL U1BBQ0VfOSwKKy0JCVdPUktTUEFDRV8xMCwKKy0JCVdPUktTUEFDRV8xMSwKKy0JCVdPUktTUEFD RV8xMiwKKy0JCVdPUktTUEFDRV9MRUZULAorLQkJV09SS1NQQUNFX1JJR0hULAorLQkJV09SS1NQ QUNFX1VQLAorLQkJV09SS1NQQUNFX0RPV04sCistCQlXT1JLU1BBQ0VfTEFTVCwKKy0JCVNXSVRD SF9BUFBMSUNBVElPTlMsCistCQlTV0lUQ0hfQVBQTElDQVRJT05TX0JBQ0tXQVJELAorLQkJU1dJ VENIX0dST1VQLAorLQkJU1dJVENIX0dST1VQX0JBQ0tXQVJELAorLQkJU1dJVENIX1dJTkRPV1Ms CistCQlTV0lUQ0hfV0lORE9XU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9QQU5FTFMsCistCQlTV0lU Q0hfUEFORUxTX0JBQ0tXQVJELAorLQkJQ1lDTEVfR1JPVVAsCistCQlDWUNMRV9HUk9VUF9CQUNL V0FSRCwKKy0JCUNZQ0xFX1dJTkRPV1MsCistCQlDWUNMRV9XSU5ET1dTX0JBQ0tXQVJELAorLQkJ Q1lDTEVfUEFORUxTLAorLQkJQ1lDTEVfUEFORUxTX0JBQ0tXQVJELAorLQkJU0hPV19ERVNLVE9Q LAorLQkJUEFORUxfTUFJTl9NRU5VLAorLQkJUEFORUxfUlVOX0RJQUxPRywKKy0JCVRPR0dMRV9S RUNPUkRJTkcsCistCQlTRVRfU1BFV19NQVJLLAorLQkJQUNUSVZBVEVfV0lORE9XX01FTlUsCist CQlUT0dHTEVfRlVMTFNDUkVFTiwKKy0JCVRPR0dMRV9NQVhJTUlaRUQsCistCQlUT0dHTEVfVElM RURfTEVGVCwKKy0JCVRPR0dMRV9USUxFRF9SSUdIVCwKKy0JCVRPR0dMRV9BQk9WRSwKKy0JCU1B WElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0JCVRPR0dMRV9TSEFERUQsCistCQlNSU5JTUlaRSwK Ky0JCUNMT1NFLAorLQkJQkVHSU5fTU9WRSwKKy0JCUJFR0lOX1JFU0laRSwKKy0JCVRPR0dMRV9P Tl9BTExfV09SS1NQQUNFUywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEsCistCQlNT1ZFX1RPX1dP UktTUEFDRV8yLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMywKKy0JCU1PVkVfVE9fV09SS1NQQUNF XzQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV81LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNiwKKy0J CU1PVkVfVE9fV09SS1NQQUNFXzcsCistCQlNT1ZFX1RPX1dPUktTUEFDRV84LAorLQkJTU9WRV9U T19XT1JLU1BBQ0VfOSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEwLAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfMTEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMiwKKy0JCU1PVkVfVE9fV09SS1NQQUNF X0xFRlQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9SSUdIVCwKKy0JCU1PVkVfVE9fV09SS1NQQUNF X1VQLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfRE9XTiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xB U1QsCistCQlNT1ZFX1RPX01PTklUT1JfTEVGVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9SSUdIVCwK Ky0JCU1PVkVfVE9fTU9OSVRPUl9VUCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9ET1dOLAorLQkJUkFJ U0VfT1JfTE9XRVIsCistCQlSQUlTRSwKKy0JCUxPV0VSLAorLQkJTUFYSU1JWkVfVkVSVElDQUxM WSwKKy0JCU1BWElNSVpFX0hPUklaT05UQUxMWSwKKy0JCU1PVkVfVE9fQ09STkVSX05XLAorLQkJ TU9WRV9UT19DT1JORVJfTkUsCistCQlNT1ZFX1RPX0NPUk5FUl9TVywKKy0JCU1PVkVfVE9fQ09S TkVSX1NFLAorLQkJTU9WRV9UT19TSURFX04sCistCQlNT1ZFX1RPX1NJREVfUywKKy0JCU1PVkVf VE9fU0lERV9FLAorLQkJTU9WRV9UT19TSURFX1csCistCQlNT1ZFX1RPX0NFTlRFUiwKKy0JCU9W RVJMQVlfS0VZLAorLQkJSVNPX05FWFRfR1JPVVAsCistCQlBTFdBWVNfT05fVE9QLAorLQkJTEFT VAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJl Zml4ID0gIk1FVEFfS0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2Zs YWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gS2V5QmluZGluZ0Zs YWdzIHsKKy0JCU5PTkUsCistCQlQRVJfV0lORE9XLAorLQkJQlVJTFRJTiwKKy0JCUlTX1JFVkVS U0VECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3By ZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0YV9sYXRlcl90eXBlX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIExhdGVyVHlwZSB7CistCQlSRVNJWkUsCistCQlDQUxDX1NI T1dJTkcsCistCQlDSEVDS19GVUxMU0NSRUVOLAorLQkJU1lOQ19TVEFDSywKKy0JCUJFRk9SRV9S RURSQVcsCistCQlJRExFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv dXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0xPQ0FMRV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJt ZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTG9jYWxl RGlyZWN0aW9uIHsKKy0JCUxUUiwKKy0JCVJUTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVf aWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1 YmxpYyBlbnVtIE1heGltaXplRmxhZ3MgeworLQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FMLAor LQkJQk9USAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1 Z2luLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29w dGlvbnNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNb2RhbE9wdGlv bnMgeworLQkJUE9JTlRFUl9BTFJFQURZX0dSQUJCRUQsCistCQlLRVlCT0FSRF9BTFJFQURZX0dS QUJCRUQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNwcmVmaXggPSAiTUVUQV9NT1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKy0JCVVQ LAorLQkJRE9XTiwKKy0JCUxFRlQsCistCQlSSUdIVCwKKy0JCVVQX0xFRlQsCistCQlVUF9SSUdI VCwKKy0JCURPV05fTEVGVCwKKy0JCURPV05fUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX1BSRUZfIiwgdHlwZV9p ZCA9ICJtZXRhX3ByZWZlcmVuY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUHJlZmVy ZW5jZSB7CistCQlNT1VTRV9CVVRUT05fTU9EUywKKy0JCUZPQ1VTX01PREUsCistCQlGT0NVU19O RVdfV0lORE9XUywKKy0JCUFUVEFDSF9NT0RBTF9ESUFMT0dTLAorLQkJUkFJU0VfT05fQ0xJQ0ss CistCQlBQ1RJT05fRE9VQkxFX0NMSUNLX1RJVExFQkFSLAorLQkJQUNUSU9OX01JRERMRV9DTElD S19USVRMRUJBUiwKKy0JCUFDVElPTl9SSUdIVF9DTElDS19USVRMRUJBUiwKKy0JCUFVVE9fUkFJ U0UsCistCQlBVVRPX1JBSVNFX0RFTEFZLAorLQkJRk9DVVNfQ0hBTkdFX09OX1BPSU5URVJfUkVT VCwKKy0JCVRJVExFQkFSX0ZPTlQsCistCQlOVU1fV09SS1NQQUNFUywKKy0JCURZTkFNSUNfV09S S1NQQUNFUywKKy0JCUtFWUJJTkRJTkdTLAorLQkJRElTQUJMRV9XT1JLQVJPVU5EUywKKy0JCUJV VFRPTl9MQVlPVVQsCistCQlXT1JLU1BBQ0VfTkFNRVMsCistCQlWSVNVQUxfQkVMTCwKKy0JCUFV RElCTEVfQkVMTCwKKy0JCVZJU1VBTF9CRUxMX1RZUEUsCistCQlHTk9NRV9BQ0NFU1NJQklMSVRZ LAorLQkJR05PTUVfQU5JTUFUSU9OUywKKy0JCUNVUlNPUl9USEVNRSwKKy0JCUNVUlNPUl9TSVpF LAorLQkJUkVTSVpFX1dJVEhfUklHSFRfQlVUVE9OLAorLQkJRURHRV9USUxJTkcsCistCQlGT1JD RV9GVUxMU0NSRUVOLAorLQkJV09SS1NQQUNFU19PTkxZX09OX1BSSU1BUlksCistCQlEUkFHR0FC TEVfQk9SREVSX1dJRFRILAorLQkJQVVUT19NQVhJTUlaRSwKKy0JCUNFTlRFUl9ORVdfV0lORE9X UywKKy0JCURSQUdfVEhSRVNIT0xEOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAo TWV0YS5QcmVmZXJlbmNlIHByZWYpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3NjcmVlbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NDUkVFTl8iLCB0eXBlX2lkID0gIm1l dGFfc2NyZWVuX2Nvcm5lcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTY3JlZW5Db3Ju ZXIgeworLQkJVE9QTEVGVCwKKy0JCVRPUFJJR0hULAorLQkJQk9UVE9NTEVGVCwKKy0JCUJPVFRP TVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1lbnVt LXR5cGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfU0NSRUVOXyIsIHR5cGVfaWQgPSAibWV0YV9zY3Jl ZW5fZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNjcmVlbkRpcmVjdGlv biB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAorLQkJUklHSFQKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWVudW0tdHlwZXMuaCIsIGNwcmVmaXggPSAi TUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGVudW0gU2hhZG93TW9kZSB7CistCQlBVVRPLAorLQkJRk9SQ0VEX09G RiwKKy0JCUZPUkNFRF9PTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2lkZSB7CistCQlMRUZULAorLQkJUklHSFQs CistCQlUT1AsCistCQlCT1RUT00KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLWVudW0tdHlwZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0 eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g U2l6ZUNoYW5nZSB7CistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1JWkUsCistCQlGVUxMU0NSRUVO LAorLQkJVU5GVUxMU0NSRUVOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZRVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0 YWNrX2xheWVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFN0YWNrTGF5ZXIgeworLQkJ REVTS1RPUCwKKy0JCUJPVFRPTSwKKy0JCU5PUk1BTCwKKy0JCVRPUCwKKy0JCURPQ0ssCistCQlG VUxMU0NSRUVOLAorLQkJRk9DVVNFRF9XSU5ET1csCistCQlPVkVSUklERV9SRURJUkVDVCwKKy0J CUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5Lmgi LCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYkxpc3QgeworLQkJTk9STUFMLAorLQkJRE9D S1MsCistCQlHUk9VUCwKKy0JCU5PUk1BTF9BTEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlw ZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g VGFiU2hvd1R5cGUgeworLQkJSUNPTiwKKy0JCUlOU1RBTlRMWQorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxf IiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW0Zs YWdzXQorLQlwdWJsaWMgZW51bSBWaXJ0dWFsTW9kaWZpZXIgeworLQkJU0hJRlRfTUFTSywKKy0J CUNPTlRST0xfTUFTSywKKy0JCUFMVF9NQVNLLAorLQkJTUVUQV9NQVNLLAorLQkJU1VQRVJfTUFT SywKKy0JCUhZUEVSX01BU0ssCistCQlNT0QyX01BU0ssCistCQlNT0QzX01BU0ssCistCQlNT0Q0 X01BU0ssCistCQlNT0Q1X01BU0sKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlw ZV9pZCA9ICJtZXRhX3dpbmRvd19jbGllbnRfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBXaW5kb3dDbGllbnRUeXBlIHsKKy0JCVdBWUxBTkQsCistCQlYMTEKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9X SU5ET1dfTUVOVV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dNZW51VHlwZSB7CistCQlXTSwKKy0JCUFQUAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9 ICJNRVRBX1dJTkRPV18iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3R5cGVfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gV2luZG93VHlwZSB7CistCQlOT1JNQUwsCistCQlERVNLVE9QLAor LQkJRE9DSywKKy0JCURJQUxPRywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVRPT0xCQVIsCistCQlN RU5VLAorLQkJVVRJTElUWSwKKy0JCVNQTEFTSFNDUkVFTiwKKy0JCURST1BET1dOX01FTlUsCist CQlQT1BVUF9NRU5VLAorLQkJVE9PTFRJUCwKKy0JCU5PVElGSUNBVElPTiwKKy0JCUNPTUJPLAor LQkJRE5ELAorLQkJT1ZFUlJJREVfT1RIRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0J cHVibGljIGRlbGVnYXRlIHZvaWQgSWRsZU1vbml0b3JXYXRjaEZ1bmMgKE1ldGEuSWRsZU1vbml0 b3IgbW9uaXRvciwgdWludCB3YXRjaF9pZCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSA1LjkpXQorLQlwdWJsaWMgZGVsZWdhdGUg dm9pZCBLZXlIYW5kbGVyRnVuYyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIE1ldGEuU2NyZWVuIHNj cmVlbiwgTWV0YS5XaW5kb3c/IHdpbmRvdywgQ2x1dHRlci5LZXlFdmVudD8gZXZlbnQsIE1ldGEu S2V5QmluZGluZyBiaW5kaW5nKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFBy ZWZzQ2hhbmdlZEZ1bmMgKE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJs aWMgZGVsZWdhdGUgYm9vbCBXaW5kb3dGb3JlYWNoRnVuYyAoTWV0YS5XaW5kb3cgd2luZG93KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVU QV9ERUZBVUxUX0lDT05fTkFNRSIpXQorLQlwdWJsaWMgY29uc3Qgc3RyaW5nIERFRkFVTFRfSUNP Tl9OQU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJNRVRBX0lDT05fSEVJR0hUIildCistCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1F VEFfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMgY29uc3QgaW50IElDT05fV0lEVEg7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUFKT1Jf VkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1BSk9SX1ZFUlNJT047CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVS U0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hF SUdIVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09O X1dJRFRIIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlOSV9JQ09OX1dJRFRIOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZF UlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BMVUdJTl9BUElf VkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBMVUdJTl9BUElfVkVSU0lPTjsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklP UklUWV9CRUZPUkVfUkVEUkFXIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfQkVGT1JF X1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKy0JcHVibGljIGNvbnN0IGludCBQ UklPUklUWV9QUkVGU19OT1RJRlk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFXIildCistCXB1YmxpYyBjb25z dCBpbnQgUFJJT1JJVFlfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFU0laRSIpXQorLQlwdWJsaWMgY29u c3QgaW50IFBSSU9SSVRZX1JFU0laRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKy0J cHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JF X1BPSU5URVJfSUQiKV0KKy0JcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfUE9JTlRFUl9J RDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1Ymxp YyBzdGF0aWMgYm9vbCBhY3RpdmF0ZV9zZXNzaW9uICgpOworLSAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2lu aXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgZXhpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBHTGliLk9wdGlvbkNvbnRleHQgZ2V0X29wdGlvbl9jb250ZXh0ICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdl dF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBp c19yZXN0YXJ0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHF1aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgpOworLSAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJp bmcgbWVzc2FnZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIp XQorLQlwdWJsaWMgc3RhdGljIGludCBydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2dub21lX3dtX2tl eWJpbmRpbmdzIChzdHJpbmcgd21fa2V5YmluZGluZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF93bV9uYW1l IChzdHJpbmcgd21fbmFtZSk7CistfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0zLWN1c3Rv bS52YWxhIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMjllNTk3N2QuLjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXItMy1jdXN0 b20udmFsYQorKysrIC9kZXYvbnVsbAorQEAgLTEsNiArMCwwIEBACistbmFtZXNwYWNlIE1ldGEg eworLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBNZXRhLkRCdXNEaXNw bGF5Q29uZmlnU2tlbGV0b24sIEdMaWIuREJ1c0ludGVyZmFjZSB7CistCQkvKiBub3QgZXhwb3J0 ZWQgKi8KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkICgpOworLQl9Cist fQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0zLmRlcHMgdmFwaS9saWJtdXR0ZXItMy5kZXBz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDFmM2M5MDc5Li4wMDAwMDAwMAorLS0t IHZhcGkvbGlibXV0dGVyLTMuZGVwcworKysrIC9kZXYvbnVsbAorQEAgLTEsOSArMCwwIEBACist Y2Fpcm8KKy1nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzCistZ2RrLTMuMAorLWdkay1waXhidWYt Mi4wCistZ3RrKy0zLjAKKy14MTEKKy14Zml4ZXMtNC4wCistY2x1dHRlci0xLjAKKy1jb2dsLTEu MAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci00LmRlcHMgdmFwaS9saWJtdXR0ZXItNC5kZXBz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDM2N2MzNWI5Li4wMDAwMDAwMAorLS0t IHZhcGkvbGlibXV0dGVyLTQuZGVwcworKysrIC9kZXYvbnVsbAorQEAgLTEsOCArMCwwIEBACist Z2RrLTMuMAorLWdkay1waXhidWYtMi4wCistZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcworLWd0 aystMy4wCistbXV0dGVyLWNsdXR0ZXItNAorLW11dHRlci1jb2dsLTQKKy14MTEKKy14Zml4ZXMt NC4wCitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTQudmFwaSB2YXBpL2xpYm11dHRlci00LnZh cGkKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggZTBkMzU2YTAuLjAwMDAwMDAwCist LS0gdmFwaS9saWJtdXR0ZXItNC52YXBpCisrKysgL2Rldi9udWxsCitAQCAtMSwxNDI1ICswLDAg QEAKKy0vKiBsaWJtdXR0ZXItNC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9k aWZ5LiAqLworLQorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJN ZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNCIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQor LW5hbWVzcGFjZSBNZXRhIHsKKy0JbmFtZXNwYWNlIENvbXBvc2l0b3IgeworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1l dGFfZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBz dGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5 KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIGZvY3VzX3N0YWdlX3dpbmRvdyAoTWV0YS5EaXNwbGF5IGRpc3Bs YXksIHVpbnQzMiB0aW1lc3RhbXApOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2ZlZWRiYWNrX2dyb3Vw X2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBn ZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBj bmFtZSA9ICJtZXRhX2dldF9zdGFnZV9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkg ZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfdG9wX3dpbmRvd19ncm91cF9mb3JfZGlzcGxh eSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RvcF93aW5k b3dfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJt ZXRhX2dldF93aW5kb3dfYWN0b3JzIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5M aXN0PENsdXR0ZXIuQWN0b3I+IGdldF93aW5kb3dfYWN0b3JzIChNZXRhLkRpc3BsYXkgZGlzcGxh eSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IildCistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfd2luZG93X2dyb3VwX2Zvcl9k aXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9zZXRfc3RhZ2Vf aW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3Jl Z2lvbiAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworLQl9 CistCW5hbWVzcGFjZSBQcmVmcyB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19iZWxsX2lzX2F1ZGlibGUiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19iZWxsX2lzX2F1ZGlibGUgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19jaGFu Z2Vfd29ya3NwYWNlX25hbWUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19jaGFuZ2Vf d29ya3NwYWNlX25hbWUgKGludCBpLCBzdHJpbmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYWN0aW9u X2RvdWJsZV9jbGlja190aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRs ZWJhckFjdGlvbiBwcmVmc19nZXRfYWN0aW9uX2RvdWJsZV9jbGlja190aXRsZWJhciAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRh X3ByZWZzX2dldF9hY3Rpb25fbWlkZGxlX2NsaWNrX3RpdGxlYmFyIildCistCQlwdWJsaWMgc3Rh dGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIHByZWZzX2dldF9hY3Rpb25fbWlkZGxlX2NsaWNr X3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciIp XQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBwcmVmc19nZXRfYWN0 aW9uX3JpZ2h0X2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F0dGFjaF9tb2RhbF9k aWFsb2dzIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2F0dGFjaF9tb2RhbF9k aWFsb2dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F1dG9fbWF4aW1pemUiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgYm9vbCBwcmVmc19nZXRfYXV0b19tYXhpbWl6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdXRvX3Jh aXNlIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2F1dG9fcmFpc2UgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19nZXRfYXV0b19yYWlzZV9kZWxheSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJl ZnNfZ2V0X2F1dG9fcmFpc2VfZGVsYXkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYnV0dG9uX2xheW91dCIp XQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkJ1dHRvbkxheW91dCBwcmVmc19nZXRfYnV0dG9uX2xh eW91dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jZW50ZXJfbmV3X3dpbmRvd3MiKV0KKy0JCXB1YmxpYyBz dGF0aWMgYm9vbCBwcmVmc19nZXRfY2VudGVyX25ld193aW5kb3dzICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0 X2NvbXBvc2l0aW5nX21hbmFnZXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRf Y29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jdXJzb3Jfc2l6ZSIpXQorLQkJ cHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2N1cnNvcl9zaXplICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0 X2N1cnNvcl90aGVtZSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBwcmVmc19n ZXRfY3Vyc29yX3RoZW1lICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2Rpc2FibGVfd29ya2Fyb3VuZHMiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZGlzYWJsZV93b3JrYXJvdW5kcyAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX2dldF9kcmFnX3RocmVzaG9sZCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJl ZnNfZ2V0X2RyYWdfdGhyZXNob2xkICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2RyYWdnYWJsZV9ib3JkZXJf d2lkdGgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9kcmFnZ2FibGVfYm9yZGVy X3dpZHRoICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2R5bmFtaWNfd29ya3NwYWNlcyIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIHByZWZzX2dldF9keW5hbWljX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19n ZXRfZWRnZV90aWxpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZWRnZV90 aWxpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19nZXRfZm9jdXNfY2hhbmdlX29uX3BvaW50ZXJfcmVzdCIpXQor LQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9mb2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9y ZXN0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvY3VzX21vZGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rl c2t0b3AuRm9jdXNNb2RlIHByZWZzX2dldF9mb2N1c19tb2RlICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2Zv Y3VzX25ld193aW5kb3dzIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTmV3V2lu ZG93cyBwcmVmc19nZXRfZm9jdXNfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZm9yY2Vf ZnVsbHNjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9mb3JjZV9mdWxs c2NyZWVuICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9nbm9tZV9hbmltYXRpb25zIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0 X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24iKV0K Ky0JCXB1YmxpYyBzdGF0aWMgTWV0YS5LZXlCaW5kaW5nQWN0aW9uIHByZWZzX2dldF9rZXliaW5k aW5nX2FjdGlvbiAoc3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51 IildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfbW91c2VfYnV0dG9uX21lbnUgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfbW91c2VfYnV0dG9uX21vZHMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0 YS5WaXJ0dWFsTW9kaWZpZXIgcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tb2RzICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X21vdXNlX2J1dHRvbl9yZXNpemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZz X2dldF9tb3VzZV9idXR0b25fcmVzaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X251bV93b3Jrc3BhY2Vz IildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfbnVtX3dvcmtzcGFjZXMgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19nZXRfcmFpc2Vfb25fY2xpY2siKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVm c19nZXRfcmFpc2Vfb25fY2xpY2sgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfc2hvd19mYWxsYmFja19hcHBf bWVudSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9zaG93X2ZhbGxiYWNrX2Fw cF9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3RpdGxlYmFyX2ZvbnQiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBQYW5nby5Gb250RGVzY3JpcHRpb24gcHJlZnNfZ2V0X3RpdGxlYmFyX2ZvbnQg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19nZXRfdmlzdWFsX2JlbGwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBw cmVmc19nZXRfdmlzdWFsX2JlbGwgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfdmlzdWFsX2JlbGxfdHlwZSIp XQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5WaXN1YWxCZWxsVHlwZSBwcmVmc19nZXRfdmlz dWFsX2JlbGxfdHlwZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF93b3Jrc3BhY2VfbmFtZSIpXQorLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBwcmVmc19nZXRfd29ya3NwYWNlX25hbWUgKGludCBp KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9 ICJtZXRhX3ByZWZzX2dldF93b3Jrc3BhY2VzX29ubHlfb25fcHJpbWFyeSIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIHByZWZzX2dldF93b3Jrc3BhY2VzX29ubHlfb25fcHJpbWFyeSAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRh X3ByZWZzX2luaXQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19pbml0ICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVm c19zZXRfZm9yY2VfZnVsbHNjcmVlbiAoYm9vbCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9udW1f d29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9udW1fd29ya3Nw YWNlcyAoaW50IG5fd29ya3NwYWNlcyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfc2hvd19mYWxsYmFja19hcHBf bWVudSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9zaG93X2ZhbGxiYWNrX2Fw cF9tZW51IChib29sIHdoZXRoZXIpOworLQl9CistCW5hbWVzcGFjZSBVdGlsIHsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfYWRkX3Zl cmJvc2VfdG9waWMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfdmVyYm9zZV90b3BpYyAo TWV0YS5EZWJ1Z1RvcGljIHRvcGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rp b24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGV4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3Jf YWN0aW9uICh1aW50IGtleWJpbmRpbmdfYWN0aW9uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZ191dGY4X3N0cm5kdXAiKV0KKy0J CXB1YmxpYyBzdGF0aWMgc3RyaW5nIGdfdXRmOF9zdHJuZHVwIChzdHJpbmcgc3JjLCBzaXplX3Qg bik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9 ICJtZXRhX2dldF9sb2NhbGVfZGlyZWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuTG9j YWxlRGlyZWN0aW9uIGdldF9sb2NhbGVfZGlyZWN0aW9uICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9ncmF2aXR5X3RvX3N0cmlu ZyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBncmF2aXR5X3RvX3N0cmluZyAo aW50IGdyYXZpdHkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5o IiwgY25hbWUgPSAibWV0YV9pc19kZWJ1Z2dpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBp c19kZWJ1Z2dpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjbmFtZSA9ICJtZXRhX2lzX3N5bmNpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBp c19zeW5jaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5o IiwgY25hbWUgPSAibWV0YV9pc192ZXJib3NlIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNf dmVyYm9zZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNuYW1lID0gIm1ldGFfaXNfd2F5bGFuZF9jb21wb3NpdG9yIildCistCQlwdWJsaWMgc3RhdGlj IGJvb2wgaXNfd2F5bGFuZF9jb21wb3NpdG9yICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9sYXRlcl9hZGQiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdWludCBsYXRlcl9hZGQgKE1ldGEuTGF0ZXJUeXBlIHdoZW4sIG93bmVkIEdMaWIu U291cmNlRnVuYyBmdW5jKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0 aWwuaCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJfcmVtb3ZlIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgbGF0ZXJfcmVtb3ZlICh1aW50IGxhdGVyX2lkKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcG9wX25vX21zZ19wcmVmaXgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfbm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcHVzaF9ub19t c2dfcHJlZml4IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9ub19tc2dfcHJlZml4ICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAi bWV0YV9yZWN0IildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuUmVjdGFuZ2xlPyByZWN0IChpbnQg eCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3JlbW92ZV92ZXJib3NlX3RvcGlj IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVi dWdUb3BpYyB0b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjbmFtZSA9ICJtZXRhX3Nob3dfZGlhbG9nIildCistCQlwdWJsaWMgc3RhdGljIEdMaWIu UGlkIHNob3dfZGlhbG9nIChzdHJpbmcgdHlwZSwgc3RyaW5nIG1lc3NhZ2UsIHN0cmluZyB0aW1l b3V0LCBzdHJpbmcgZGlzcGxheSwgc3RyaW5nIG9rX3RleHQsIHN0cmluZyBjYW5jZWxfdGV4dCwg c3RyaW5nIGljb25fbmFtZSwgaW50IHRyYW5zaWVudF9mb3IsIEdMaWIuU0xpc3Q8dm9pZCo+IGNv bHVtbnMsIEdMaWIuU0xpc3Q8dm9pZCo+IGVudHJpZXMpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2VxdWFs IildCistCQlwdWJsaWMgc3RhdGljIGludCB1bnNpZ25lZF9sb25nX2VxdWFsICh2b2lkKiB2MSwg dm9pZCogdjIpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwg Y25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2hhc2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWlu dCB1bnNpZ25lZF9sb25nX2hhc2ggKHZvaWQqIHYpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV94MTFfZXJyb3JfdHJhcF9wb3AiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFfZXJyb3JfdHJhcF9wb3AgKE1ldGEuWDExRGlzcGxh eSB4MTFfZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjbmFtZSA9ICJtZXRhX3gxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiIpXQorLQkJ cHVibGljIHN0YXRpYyBpbnQgeDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIChNZXRhLlgx MURpc3BsYXkgeDExX2Rpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV94MTFfZXJyb3JfdHJhcF9wdXNoIildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgeDExX2Vycm9yX3RyYXBfcHVzaCAoTWV0YS5YMTFEaXNwbGF5IHgxMV9k aXNwbGF5KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJh Y2tlbmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZW5kX2dldF90eXBlICgpIildCistCXB1Ymxp YyBhYnN0cmFjdCBjbGFzcyBCYWNrZW5kIDogR0xpYi5PYmplY3QsIEdMaWIuSW5pdGFibGUgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IEJhY2tlbmQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJh Y2tlbmQuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2JhY2tlbmQiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBNZXRhLkJhY2tlbmQgZ2V0X2JhY2tlbmQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLkRuZCBnZXRfZG5kICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5SZW1vdGVBY2Nlc3ND b250cm9sbGVyIGdldF9yZW1vdGVfYWNjZXNzX2NvbnRyb2xsZXIgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFnZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGxvY2tfbGF5 b3V0X2dyb3VwICh1aW50IGlkeCk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2V5bWFwIChzdHJpbmcg bGF5b3V0cywgc3RyaW5nIHZhcmlhbnRzLCBzdHJpbmcgb3B0aW9ucyk7CistCQlwdWJsaWMgdm9p ZCBzZXRfbnVtbG9jayAoYm9vbCBudW1sb2NrX3N0YXRlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBrZXltYXBfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0 X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0 X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsaWRf aXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNr Z3JvdW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kIDogR0xpYi5P YmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJ cHVibGljIEJhY2tncm91bmQgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCByZWZyZXNoX2FsbCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5G aWxlIGZpbGUxLCBHTGliLkZpbGUgZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9w LkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0 ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxl LCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2dy YWRpZW50IChHRGVza3RvcC5CYWNrZ3JvdW5kU2hhZGluZyBzaGFkaW5nX2RpcmVjdGlvbiwgQ2x1 dHRlci5Db2xvciBjb2xvciwgQ2x1dHRlci5Db2xvciBzZWNvbmRfY29sb3IpOworLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93bmVk IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2FjdG9yX2dldF90eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVt ZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEFjdG9yIChNZXRhLkRp c3BsYXkgZGlzcGxheSwgaW50IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91 bmQgKE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFk aWVudCAoYm9vbCBlbmFibGVkLCBpbnQgaGVpZ2h0LCBkb3VibGUgdG9uZV9zdGFydCk7CistCQlw dWJsaWMgdm9pZCBzZXRfbW9uaXRvciAoaW50IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgc2V0 X3ZpZ25ldHRlIChib29sIGVuYWJsZWQsIGRvdWJsZSBicmlnaHRuZXNzLCBkb3VibGUgc2hhcnBu ZXNzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFja2dyb3VuZCBi YWNrZ3JvdW5kIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGRvdWJsZSBicmlnaHRuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgZ3JhZGllbnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgaW50IGdyYWRpZW50X2hlaWdodCB7IGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgZ3JhZGllbnRfbWF4X2Rhcmtu ZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEu RGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCB2aWduZXR0ZSB7IGdldDsgc2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgdmlnbmV0dGVfc2hh cnBuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5k X2dyb3VwX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kR3JvdXAgOiBD bHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRl ci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMg QmFja2dyb3VuZEdyb3VwICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRf aW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZSA6IEdM aWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBCYWNrZ3JvdW5kSW1hZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfc3Vj Y2VzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsK Ky0JCXB1YmxpYyBib29sIGlzX2xvYWRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsb2Fk ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9jYWNoZV9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEltYWdlQ2FjaGUgOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgQmFja2dyb3VuZEltYWdlQ2FjaGUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgTWV0YS5CYWNrZ3JvdW5kSW1hZ2VDYWNoZSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1Ymxp YyBNZXRhLkJhY2tncm91bmRJbWFnZSBsb2FkIChHTGliLkZpbGUgZmlsZSk7CistCQlwdWJsaWMg dm9pZCBwdXJnZSAoR0xpYi5GaWxlIGZpbGUpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFf YmFycmllcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFycmllciA6IEdMaWIuT2Jq ZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBCYXJyaWVyICgpOworLQkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKy0JCXB1Ymxp YyBib29sIGlzX2FjdGl2ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHJlbGVhc2UgKE1ldGEuQmFycmll ckV2ZW50IGV2ZW50KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFy cmllckRpcmVjdGlvbiBkaXJlY3Rpb25zIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBj b25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4MSB7IGdl dDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDIg eyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50 IHkxIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGludCB5MiB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaGl0IChN ZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGVmdCAoTWV0 YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9m dW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9ldmVudF9n ZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEJhcnJpZXJFdmVudCB7 CistCQlwdWJsaWMgaW50IGR0OworLQkJcHVibGljIGRvdWJsZSBkeDsKKy0JCXB1YmxpYyBkb3Vi bGUgZHk7CistCQlwdWJsaWMgaW50IGV2ZW50X2lkOworLQkJcHVibGljIGJvb2wgZ3JhYmJlZDsK Ky0JCXB1YmxpYyBib29sIHJlbGVhc2VkOworLQkJcHVibGljIHVpbnQzMiB0aW1lOworLQkJcHVi bGljIGRvdWJsZSB4OworLQkJcHVibGljIGRvdWJsZSB5OworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0g Im1ldGFfY3Vyc29yX3RyYWNrZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEN1cnNv clRyYWNrZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQ3Vyc29yVHJhY2tlciAoKTsKKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBNZXRhLkN1cnNvclRyYWNrZXIgZ2V0X2Zvcl9kaXNwbGF5IChNZXRhLkRp c3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMgdm9pZCBnZXRfaG90IChvdXQgaW50IHgsIG91dCBp bnQgeSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlciAoaW50IHgsIGludCB5LCBDbHV0dGVy Lk1vZGlmaWVyVHlwZSBtb2RzKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRf c3ByaXRlICgpOworLQkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNp YmxlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBjdXJzb3JfbW92ZWQgKGZsb2F0IG9iamVjdCwgZmxvYXQgcDApOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQg PSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBEaXNwbGF5IDog R0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHJvdGVjdGVkIERpc3BsYXkgKCk7CistCQlwdWJsaWMgdm9pZCBhZGRfaWdub3JlZF9j cm9zc2luZ19zZXJpYWwgKHVsb25nIHNlcmlhbCk7CistCQlwdWJsaWMgdWludCBhZGRfa2V5Ymlu ZGluZyAoc3RyaW5nIG5hbWUsIEdMaWIuU2V0dGluZ3Mgc2V0dGluZ3MsIE1ldGEuS2V5QmluZGlu Z0ZsYWdzIGZsYWdzLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jIGhhbmRsZXIpOworLQkJcHVi bGljIGJvb2wgYmVnaW5fZ3JhYl9vcCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkdyYWJPcCBv cCwgYm9vbCBwb2ludGVyX2FscmVhZHlfZ3JhYmJlZCwgYm9vbCBmcmFtZV9hY3Rpb24sIGludCBi dXR0b24sIHVsb25nIG1vZG1hc2ssIHVpbnQzMiB0aW1lc3RhbXAsIGludCByb290X3gsIGludCBy b290X3kpOworLQkJcHVibGljIHZvaWQgY2xlYXJfbW91c2VfbW9kZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIGNsb3NlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9ncmFiX29w ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX2RlZmF1bHRfd2luZG93 ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWV6ZV9rZXlib2FyZCAodWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X21vbml0b3IgKCk7Cist CQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50X3RpbWUgKCk7CistCQlwdWJsaWMgdWludDMyIGdl dF9jdXJyZW50X3RpbWVfcm91bmR0cmlwICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5k b3cgZ2V0X2ZvY3VzX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBNZXRhLkdyYWJPcCBnZXRfZ3JhYl9v cCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9rZXliaW5kaW5nX2FjdGlvbiAodWludCBrZXljb2Rl LCB1bG9uZyBtYXNrKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2xhc3RfdXNlcl90aW1lICgpOwor LQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9tb25pdG9yX2dlb21ldHJ5IChpbnQgbW9uaXRv cik7CistCQlwdWJsaWMgYm9vbCBnZXRfbW9uaXRvcl9pbl9mdWxsc2NyZWVuIChpbnQgbW9uaXRv cik7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2luZGV4X2Zvcl9yZWN0IChNZXRhLlJlY3Rh bmdsZSByZWN0KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfbmVpZ2hib3JfaW5kZXggKGlu dCB3aGljaF9tb25pdG9yLCBNZXRhLkRpc3BsYXlEaXJlY3Rpb24gZGlyKTsKKy0JCXB1YmxpYyBp bnQgZ2V0X25fbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgc3RyaW5nIGdldF9wYWRfYWN0aW9uX2xh YmVsIChDbHV0dGVyLklucHV0RGV2aWNlIHBhZCwgTWV0YS5QYWRBY3Rpb25UeXBlIGFjdGlvbl90 eXBlLCB1aW50IGFjdGlvbl9udW1iZXIpOworLQkJcHVibGljIGludCBnZXRfcHJpbWFyeV9tb25p dG9yICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQg aGVpZ2h0KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU291bmRQbGF5ZXIgZ2V0X3NvdW5kX3Bs YXllciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfY3VycmVudCAo TWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMg R0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGdldF90YWJfbGlzdCAoTWV0YS5UYWJMaXN0IHR5 cGUsIE1ldGEuV29ya3NwYWNlPyB3b3Jrc3BhY2UpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5X aW5kb3cgZ2V0X3RhYl9uZXh0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29y a3NwYWNlLCBNZXRhLldpbmRvdz8gd2luZG93LCBib29sIGJhY2t3YXJkKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuV29ya3NwYWNlTWFuYWdlciBnZXRfd29ya3NwYWNlX21hbmFnZXIgKCk7Cist CQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcgYWNjZWxlcmF0b3IsIE1ldGEu S2V5QmluZGluZ0ZsYWdzIGZsYWdzKTsKKy0JCXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0 aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKy0JCXB1Ymxp YyBib29sIHJlbW92ZV9rZXliaW5kaW5nIChzdHJpbmcgbmFtZSk7CistCQlwdWJsaWMgdm9pZCBy ZXF1ZXN0X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBib29sIGVkaXRpb25fbW9k ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3IpOworLQkJ cHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldpbmRvdz4gc29ydF93aW5kb3dzX2J5X3N0YWNr aW5nIChHTGliLlNMaXN0PE1ldGEuV2luZG93PiB3aW5kb3dzKTsKKy0JCXB1YmxpYyBib29sIHN1 cHBvcnRzX2V4dGVuZGVkX2JhcnJpZXJzICgpOworLQkJcHVibGljIHZvaWQgdW5mcmVlemVfa2V5 Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgdW5ncmFiX2FjY2VsZXJh dG9yICh1aW50IGFjdGlvbl9pZCk7CistCQlwdWJsaWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9yZSAo dWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIpOworLQkJcHVibGljIE1ldGEuV2luZG93IGZvY3Vz X3dpbmRvdyB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2 YXRlZCAodWludCBvYmplY3QsIHVpbnQgcDAsIHVpbnQgcDEpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIGN1cnNvcl91cGRhdGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGdsX3ZpZGVvX21l bW9yeV9wdXJnZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9iZWdpbiAoTWV0 YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2VuZCAoTWV0YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5X aW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBpbl9mdWxs c2NyZWVuX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgbW9kaWZpZXJzX2FjY2Vs ZXJhdG9yX2FjdGl2YXRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBvdmVybGF5X2tleSAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwYWRfbW9kZV9zd2l0Y2ggKENsdXR0ZXIuSW5wdXRE ZXZpY2Ugb2JqZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBy ZXN0YWNrZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgcmVzdGFydCAoKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBzaG93X29zZCAoaW50IG9iamVjdCwgc3RyaW5nIHAwLCBzdHJpbmcgcDEp OworLQkJcHVibGljIHNpZ25hbCB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IHNob3dfcGFkX29zZCAo Q2x1dHRlci5JbnB1dERldmljZSBwYWQsIEdMaWIuU2V0dGluZ3Mgc2V0dGluZ3MsIHN0cmluZyBs YXlvdXRfcGF0aCwgYm9vbCBlZGl0aW9uX21vZGUsIGludCBtb25pdG9yX2lkeCk7CistCQlwdWJs aWMgc2lnbmFsIGJvb2wgc2hvd19yZXNpemVfcG9wdXAgKGJvb2wgb2JqZWN0LCBNZXRhLlJlY3Rh bmdsZSBwMCwgaW50IHAxLCBpbnQgcDIpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVz dGFydF9tZXNzYWdlIChzdHJpbmc/IG1lc3NhZ2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNo b3dpbmdfZGVza3RvcF9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19j cmVhdGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRv d19kZW1hbmRzX2F0dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBw MCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2xlZnRfbW9uaXRvciAoaW50IG9iamVj dCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19tYXJrZWRf dXJnZW50IChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmth cmVhc19jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X2Nsb3Np bmcgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfb3BlbmVkICgpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfZG5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFz cyBEbmQgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCistCQlwcm90ZWN0ZWQgRG5kICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRu ZF9lbnRlciAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfbGVhdmUgKCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgZG5kX3Bvc2l0aW9uX2NoYW5nZSAoaW50IG9iamVjdCwgaW50IHAwKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMg Y2xhc3MgRnJhbWUgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfaWRsZV9tb25pdG9yX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBJZGxlTW9uaXRvciA6IEdMaWIuT2JqZWN0IHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBJZGxlTW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50NjQg aW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2sp OworLQkJcHVibGljIHVpbnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklkbGVN b25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0 YS5JZGxlTW9uaXRvciBnZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRh LklkbGVNb25pdG9yIGdldF9mb3JfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1YmxpYyBp bnQ2NCBnZXRfaWRsZXRpbWUgKCk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQg aWQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7IGdl dDsgY29uc3RydWN0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2Jp bmRpbmdfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBLZXlCaW5k aW5nIHsKKy0JCXB1YmxpYyB1aW50IGdldF9tYXNrICgpOworLQkJcHVibGljIE1ldGEuVmlydHVh bE1vZGlmaWVyIGdldF9tb2RpZmllcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X25hbWUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19idWlsdGluICgpOworLQkJcHVibGljIGJvb2wg aXNfcmV2ZXJzZWQgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gIm1ldGFfa2V5YmluZGluZ3Nfc2V0 X2N1c3RvbV9oYW5kbGVyIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgc2V0X2N1c3RvbV9oYW5k bGVyIChzdHJpbmcgbmFtZSwgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYz8gaGFuZGxlcik7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9sYXVuY2hfY29udGV4dF9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgTGF1bmNoQ29udGV4dCA6IEdMaWIuQXBwTGF1bmNoQ29udGV4dCB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQg TGF1bmNoQ29udGV4dCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF90aW1lc3RhbXAgKHVpbnQzMiB0 aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgc2V0X3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ug d29ya3NwYWNlKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxh eSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIHVpbnQgdGltZXN0YW1wIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSB7IG93bmVkIGdldDsg c2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9tb25pdG9yX21hbmFnZXJfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE1v bml0b3JNYW5hZ2VyICgpOworLQkJcHVibGljIGJvb2wgY2FuX3N3aXRjaF9jb25maWcgKCk7Cist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5Nb25pdG9yTWFuYWdlciBAZ2V0ICgpOworLQkJ cHVibGljIHN0YXRpYyBpbnQgZ2V0X2Rpc3BsYXlfY29uZmlndXJhdGlvbl90aW1lb3V0ICgpOwor LQkJcHVibGljIGJvb2wgZ2V0X2lzX2J1aWx0aW5fZGlzcGxheV9vbiAoKTsKKy0JCXB1YmxpYyBp bnQgZ2V0X21vbml0b3JfZm9yX2Nvbm5lY3RvciAoc3RyaW5nIGNvbm5lY3Rvcik7CistCQlwdWJs aWMgTWV0YS5Nb25pdG9yU3dpdGNoQ29uZmlnVHlwZSBnZXRfc3dpdGNoX2NvbmZpZyAoKTsKKy0J CXB1YmxpYyB2b2lkIHN3aXRjaF9jb25maWcgKE1ldGEuTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUg Y29uZmlnX3R5cGUpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYWNr ZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2 b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9u aXRvcnNfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBtb25pdG9yc19jaGFuZ2Vk X2ludGVybmFsICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHBvd2VyX3NhdmVfbW9kZV9jaGFu Z2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1 Z2luLmgiLCB0eXBlX2lkID0gIm1ldGFfcGx1Z2luX2dldF90eXBlICgpIildCistCXB1YmxpYyBh YnN0cmFjdCBjbGFzcyBQbHVnaW4gOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGx1Z2luICgpOworLQkJcHVi bGljIGJvb2wgYmVnaW5fbW9kYWwgKE1ldGEuTW9kYWxPcHRpb25zIG9wdGlvbnMsIHVpbnQzMiB0 aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgY29tcGxldGVfZGlzcGxheV9jaGFuZ2UgKGJvb2wg b2spOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29uZmlybV9kaXNw bGF5X2NoYW5nZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRl c3Ryb3kgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgZGVzdHJveV9j b21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgZW5kX21v ZGFsICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBn ZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuUGx1Z2luSW5mbz8gZ2V0X2lu Zm8gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX3RpbGVf cHJldmlldyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWJp bmRpbmdfZmlsdGVyIChNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3N3aXRjaF93b3Jrc3BhY2UgKCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3dpbmRvd19lZmZlY3RzIChNZXRh LldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBtYW5hZ2VyX3NldF9w bHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9p ZCBtYXBfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1pbmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9y KTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBh Y3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBNZXRhLlBs dWdpbkluZm8/IHBsdWdpbl9pbmZvICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0 YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51IChNZXRhLldpbmRvdyB3 aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgaW50IHgsIGludCB5KTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnVfZm9yX3JlY3Qg KE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBNZXRhLlJlY3Rh bmdsZSByZWN0KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNpemVf Y2hhbmdlIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yLCBNZXRhLlNpemVDaGFuZ2Ugd2hpY2hfY2hh bmdlLCBNZXRhLlJlY3RhbmdsZSBvbGRfZnJhbWVfcmVjdCwgTWV0YS5SZWN0YW5nbGUgb2xkX2J1 ZmZlcl9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNpemVfY2hhbmdlX2NvbXBsZXRlZCAoTWV0YS5X aW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBzaXplX2NoYW5nZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RhcnQgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBzd2l0Y2hfd29ya3NwYWNlIChpbnQgZnJvbSwgaW50IHRvLCBNZXRh Lk1vdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pOworLQkJcHVibGljIHZvaWQgc3dpdGNoX3dvcmtz cGFjZV9jb21wbGV0ZWQgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCB1bm1pbmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHVu bWluaW1pemVfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIHhldmVudF9maWx0ZXIgKFguRXZlbnQgZXZlbnQp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfcmVtb3RlX2FjY2Vzc19jb250cm9sbGVyX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBSZW1vdGVBY2Nlc3NDb250cm9sbGVyIDogR0xp Yi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgbmV3X2hhbmRsZSAoTWV0YS5SZW1vdGVBY2Nlc3NIYW5kbGUgb2JqZWN0KTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlbW90ZV9hY2Nlc3NfaGFuZGxlX2dldF90eXBlICgpIild CistCXB1YmxpYyBjbGFzcyBSZW1vdGVBY2Nlc3NIYW5kbGUgOiBHTGliLk9iamVjdCB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUmVt b3RlQWNjZXNzSGFuZGxlICgpOworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzdG9wICgpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHN0b3BwZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFNldHRpbmdzIHsKKy0JCXB1Ymxp YyBpbnQgZ2V0X2ZvbnRfZHBpICgpOworLQkJcHVibGljIGludCBnZXRfdWlfc2NhbGluZ19mYWN0 b3IgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd19yZWYiLCB0eXBl X2lkID0gIm1ldGFfc2hhZG93X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV9z aGFkb3dfdW5yZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBTaGFkb3cgeworLQkJ cHVibGljIHZvaWQgZ2V0X2JvdW5kcyAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3 aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgYm91bmRz KTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyLCBp bnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19o ZWlnaHQsIHVpbnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9vbCBjbGlwX3N0cmlj dGx5KTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvdyBAcmVmICgpOworLQkJcHVibGljIHZvaWQgdW5y ZWYgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZmFjdG9yeV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhZG93RmFjdG9yeSA6IEdMaWIuT2JqZWN0IHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBTaGFk b3dGYWN0b3J5ICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuU2hhZG93RmFjdG9y eSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvd1BhcmFtcyBnZXRfcGFyYW1z IChzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRv dyBnZXRfc2hhZG93IChNZXRhLldpbmRvd1NoYXBlIHNoYXBlLCBpbnQgd2lkdGgsIGludCBoZWln aHQsIHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQpOworLQkJcHVibGljIHZvaWQgc2V0 X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCwgTWV0YS5TaGFkb3dQYXJh bXMgQHBhcmFtcyk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBD bHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFNoYXBlZFRleHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2Ug KENhaXJvLlJlY3RhbmdsZUludCBjbGlwKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVy ZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9v bCBjcmVhdGVfbWlwbWFwcyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2ds LlRleHR1cmUgbWFza190ZXh0dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9u IChvd25lZCBDYWlyby5SZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRh dGVfYXJlYSAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRh X3NvdW5kX3BsYXllcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU291bmRQbGF5ZXIg OiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgU291bmRQbGF5ZXIgKCk7CistCQlwdWJsaWMgdm9pZCBwbGF5X2Zy b21fZmlsZSAoR0xpYi5GaWxlIGZpbGUsIHN0cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxs YWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKy0JCXB1YmxpYyB2b2lkIHBsYXlfZnJvbV90aGVt ZSAoc3RyaW5nIG5hbWUsIHN0cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2Fu Y2VsbGFibGUgPSBudWxsKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWdlX2dldF90 eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuU3RhZ2UsIEF0ay5JbXBs ZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBTdGFnZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mb2N1c2Vk IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWN0b3JzX3Bh aW50ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFydHVwX25vdGlmaWNhdGlv bl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU3RhcnR1cE5vdGlmaWNhdGlvbiA6IEdM aWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBTdGFydHVwTm90aWZpY2F0aW9uICgpOworLQkJcHVibGljIE1ldGEuTGF1 bmNoQ29udGV4dCBjcmVhdGVfbGF1bmNoZXIgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAodm9pZCogb2JqZWN0KTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg dHlwZV9pZCA9ICJtZXRhX3N0YXJ0dXBfc2VxdWVuY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIFN0YXJ0dXBTZXF1ZW5jZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTdGFydHVwU2VxdWVuY2Ug KCk7CistCQlwdWJsaWMgdm9pZCBjb21wbGV0ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfYXBwbGljYXRpb25faWQgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfY29tcGxldGVkICgp OworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pY29uX25hbWUgKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9u YW1lICgpOworLQkJcHVibGljIHVpbnQ2NCBnZXRfdGltZXN0YW1wICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF93bWNsYXNzICgpOworLQkJcHVibGljIGludCBnZXRfd29ya3NwYWNl ICgpOworLQkJcHVibGljIHN0cmluZyBhcHBsaWNhdGlvbl9pZCB7IGdldDsgY29uc3RydWN0OyB9 CistCQlwdWJsaWMgc3RyaW5nIGljb25fbmFtZSB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJs aWMgc3RyaW5nIGlkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzdHJpbmcgbmFtZSB7 IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgdWludDY0IHRpbWVzdGFtcCB7IGdldDsgY29u c3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5nIHdtY2xhc3MgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJcHVibGljIGludCB3b3Jrc3BhY2UgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBUaGVtZSB7 CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd2lu ZG93X2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3cgOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgV2luZG93ICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiBj dXJyZW50X3RpbWUpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF93b3Jrc3BhY2UgKHVp bnQzMiBjdXJyZW50X3RpbWUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMg Ym9vbCBhbGxvd3NfbW92ZSAoKTsKKy0JCXB1YmxpYyBib29sIGFsbG93c19yZXNpemUgKCk7Cist CQlwdWJsaWMgdm9pZCBiZWdpbl9ncmFiX29wIChNZXRhLkdyYWJPcCBvcCwgYm9vbCBmcmFtZV9h Y3Rpb24sIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgY2FuX2Nsb3NlICgpOwor LQkJcHVibGljIGJvb2wgY2FuX21heGltaXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX21pbmlt aXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX3NoYWRlICgpOworLQkJcHVibGljIHZvaWQgY2hh bmdlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lk IGNoYW5nZV93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBzcGFjZV9pbmRleCwgYm9vbCBhcHBlbmQp OworLQkJcHVibGljIHZvaWQgY2hlY2tfYWxpdmUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0X3RvX2ZyYW1lX3JlY3QgKE1ldGEuUmVjdGFu Z2xlIGNsaWVudF9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIGNvbXB1dGVfZ3JvdXAgKCk7CistCQlw dWJsaWMgdm9pZCBAZGVsZXRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVk IE1ldGEuV2luZG93IGZpbmRfcm9vdF9hbmNlc3RvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3Vz ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfYW5jZXN0b3IgKE1l dGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX3RyYW5z aWVudCAoTWV0YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rh bmdsZSBmcmFtZV9yZWN0X3RvX2NsaWVudF9yZWN0IChNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0 KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfYnVmZmVyX3JlY3QgKCk7CistCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X2NsaWVudF9tYWNoaW5lICgpOworLQkJcHVibGljIE1ldGEu V2luZG93Q2xpZW50VHlwZSBnZXRfY2xpZW50X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBH TGliLk9iamVjdCBnZXRfY29tcG9zaXRvcl9wcml2YXRlICgpOworLQkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF9kZXNjcmlwdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxh eSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENhaXJvLlJlZ2lvbj8gZ2V0X2Zy YW1lX2JvdW5kcyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfZnJhbWVfcmVjdCAo KTsKKy0JCXB1YmxpYyBNZXRhLkZyYW1lVHlwZSBnZXRfZnJhbWVfdHlwZSAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRpb25faWQgKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBsaWNhdGlvbl9vYmplY3RfcGF0aCAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX21lbnViYXJfb2JqZWN0X3BhdGggKCk7CistCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a190aGVtZV92YXJpYW50ICgpOworLQkJcHVibGlj IHVub3duZWQgc3RyaW5nIGdldF9ndGtfdW5pcXVlX2J1c19uYW1lICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9ndGtfd2luZG93X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIGJv b2wgZ2V0X2ljb25fZ2VvbWV0cnkgKG91dCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1Ymxp YyB1aW50NjQgZ2V0X2lkICgpOworLQkJcHVibGljIE1ldGEuU3RhY2tMYXllciBnZXRfbGF5ZXIg KCk7CistCQlwdWJsaWMgTWV0YS5NYXhpbWl6ZUZsYWdzIGdldF9tYXhpbWl6ZWQgKCk7CistCQlw dWJsaWMgaW50IGdldF9tb25pdG9yICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9t dXR0ZXJfaGludHMgKCk7CistCQlwdWJsaWMgaW50IGdldF9waWQgKCk7CistCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X3JvbGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Nh bmRib3hlZF9hcHBfaWQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfc3RhYmxlX3NlcXVlbmNlICgp OworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgpOworLQkJcHVibGlj IHVub3duZWQgTWV0YS5XaW5kb3c/IGdldF90aWxlX21hdGNoICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF90aXRsZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdl dF90cmFuc2llbnRfZm9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfdXNlcl90aW1lICgpOwor LQkJcHVibGljIE1ldGEuV2luZG93VHlwZSBnZXRfd2luZG93X3R5cGUgKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X3dtX2NsYXNzICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF93bV9jbGFzc19pbnN0YW5jZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRf d29ya19hcmVhX2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRf d29ya19hcmVhX2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBn ZXRfd29ya19hcmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMg dW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlICgpOworLQkJcHVibGljIFguV2lu ZG93IGdldF94d2luZG93ICgpOworLQkJcHVibGljIHZvaWQgZ3JvdXBfbGVhZGVyX2NoYW5nZWQg KCk7CistCQlwdWJsaWMgYm9vbCBoYXNfZm9jdXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hYm92 ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fsd2F5c19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0J CXB1YmxpYyBib29sIGlzX2FuY2VzdG9yX29mX3RyYW5zaWVudCAoTWV0YS5XaW5kb3cgdHJhbnNp ZW50KTsKKy0JCXB1YmxpYyBib29sIGlzX2F0dGFjaGVkX2RpYWxvZyAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX2NsaWVudF9kZWNvcmF0ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19mdWxsc2NyZWVu ICgpOworLQkJcHVibGljIGJvb2wgaXNfaGlkZGVuICgpOworLQkJcHVibGljIGJvb2wgaXNfbW9u aXRvcl9zaXplZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX29uX2FsbF93b3Jrc3BhY2VzICgpOwor LQkJcHVibGljIGJvb2wgaXNfb25fcHJpbWFyeV9tb25pdG9yICgpOworLQkJcHVibGljIGJvb2wg aXNfb3ZlcnJpZGVfcmVkaXJlY3QgKCk7CistCQlwdWJsaWMgYm9vbCBpc19yZW1vdGUgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19zY3JlZW5fc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19zaGFk ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19za2lwX3Rhc2tiYXIgKCk7CistCQlwdWJsaWMgdm9p ZCBraWxsICgpOworLQkJcHVibGljIGJvb2wgbG9jYXRlZF9vbl93b3Jrc3BhY2UgKE1ldGEuV29y a3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdm9pZCBsb3dlciAoKTsKKy0JCXB1YmxpYyB2 b2lkIG1ha2VfYWJvdmUgKCk7CistCQlwdWJsaWMgdm9pZCBtYWtlX2Z1bGxzY3JlZW4gKCk7Cist CQlwdWJsaWMgdm9pZCBtYXhpbWl6ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlvbnMpOwor LQkJcHVibGljIHZvaWQgbWluaW1pemUgKCk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX2ZyYW1lIChi b29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncpOworLQkJcHVibGljIHZv aWQgbW92ZV9yZXNpemVfZnJhbWUgKGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJv b3RfeV9udywgaW50IHcsIGludCBoKTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfdG9fbW9uaXRvciAo aW50IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgcmFpc2UgKCk7CistCQlwdWJsaWMgYm9vbCBy ZXF1ZXN0ZWRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRf ZG9udF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb21wb3NpdG9y X3ByaXZhdGUgKEdMaWIuT2JqZWN0IHByaXYpOworLQkJcHVibGljIHZvaWQgc2V0X2RlbWFuZHNf YXR0ZW50aW9uICgpOworLQkJcHVibGljIHZvaWQgc2V0X2ljb25fZ2VvbWV0cnkgKE1ldGEuUmVj dGFuZ2xlPyByZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNoYWRlICh1aW50MzIgdGltZXN0YW1wKTsK Ky0JCXB1YmxpYyB2b2lkIHNob3ZlX3RpdGxlYmFyX29uc2NyZWVuICgpOworLQkJcHVibGljIGJv b2wgc2hvd2luZ19vbl9pdHNfd29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgc2h1dGRvd25f Z3JvdXAgKCk7CistCQlwdWJsaWMgdm9pZCBzdGljayAoKTsKKy0JCXB1YmxpYyBib29sIHRpdGxl YmFyX2lzX29uc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgdW5tYWtlX2Fib3ZlICgpOworLQkJ cHVibGljIHZvaWQgdW5tYWtlX2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1heGlt aXplIChNZXRhLk1heGltaXplRmxhZ3MgZGlyZWN0aW9ucyk7CistCQlwdWJsaWMgdm9pZCB1bm1p bmltaXplICgpOworLQkJcHVibGljIHZvaWQgdW5zZXRfZGVtYW5kc19hdHRlbnRpb24gKCk7Cist CQlwdWJsaWMgdm9pZCB1bnNoYWRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lk IHVuc3RpY2sgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGFib3Zl IHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGFwcGVhcnNf Zm9jdXNlZCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBk ZWNvcmF0ZWQgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wg ZGVtYW5kc19hdHRlbnRpb24geyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGJvb2wgZnVsbHNjcmVlbiB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwX21l bnVfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9u X2lkIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9vYmplY3RfcGF0 aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfbWVudWJhcl9vYmplY3RfcGF0aCB7IGdl dDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfdW5pcXVlX2J1c19uYW1lIHsgZ2V0OyB9CistCQlw dWJsaWMgc3RyaW5nIGd0a193aW5kb3dfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIHZvaWQqIGljb24geyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4aW1pemVkX2hvcml6b250YWxseSB7IGdldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBtYXhpbWl6ZWRfdmVydGljYWxs eSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdm9pZCogbWluaV9p Y29uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1pbmlt aXplZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBtdXR0ZXJfaGludHMgeyBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgb25fYWxsX3dvcmtzcGFjZXMgeyBn ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVzaXplYWJsZSB7 IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBza2lwX3Rhc2ti YXIgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgdXJnZW50IHsgZ2V0OyB9CistCQlwdWJsaWMgdWlu dCB1c2VyX3RpbWUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgd2luZG93X3R5 cGUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgd21fY2xhc3MgeyBnZXQ7IH0KKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBwb3NpdGlvbl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHJhaXNlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93biAoKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5h Z2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9jaGFuZ2VkICgpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2FjdG9yX2dldF90eXBlICgpIildCistCXB1 YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBs ZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBXaW5kb3dBY3RvciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2lu ZG93IGdldF9tZXRhX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Ig Z2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3hfd2luZG93ICgpOworLQkJ cHVibGljIGJvb2wgaXNfZGVzdHJveWVkICgpOworLQkJcHVibGljIHZvaWQgc3luY192aXNpYmls aXR5ICgpOworLQkJcHVibGljIE1ldGEuV2luZG93IG1ldGFfd2luZG93IHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHN0cmluZyBzaGFkb3dfY2xh c3MgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg TWV0YS5TaGFkb3dNb2RlIHNoYWRvd19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBlZmZlY3RzX2NvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJz dF9mcmFtZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19ncm91cF9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgV2luZG93R3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBB dGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENs dXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93R3JvdXAgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHJlZl9mdW5j dGlvbiA9ICJtZXRhX3dpbmRvd19zaGFwZV9yZWYiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3No YXBlX2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfdW5y ZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBXaW5kb3dTaGFwZSB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgV2luZG93U2hh cGUgKENhaXJvLlJlZ2lvbiByZWdpb24pOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuV2lu ZG93U2hhcGUgc2hhcGVfYik7CistCQlwdWJsaWMgdm9pZCBnZXRfYm9yZGVycyAoaW50IGJvcmRl cl90b3AsIGludCBib3JkZXJfcmlnaHQsIGludCBib3JkZXJfYm90dG9tLCBpbnQgYm9yZGVyX2xl ZnQpOworLQkJcHVibGljIHVpbnQgaGFzaCAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1NoYXBl IEByZWYgKCk7CistCQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIHRvX3JlZ2lvbiAoaW50IGNlbnRlcl93 aWR0aCwgaW50IGNlbnRlcl9oZWlnaHQpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIHR5cGVfaWQgPSAibWV0YV93b3Jrc3BhY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIFdvcmtzcGFjZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXb3Jrc3BhY2UgKCk7CistCQlwdWJs aWMgdm9pZCBhY3RpdmF0ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBhY3Rp dmF0ZV93aXRoX2ZvY3VzIChNZXRhLldpbmRvdyBmb2N1c190aGlzLCB1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9uZWlnaGJvciAoTWV0YS5Nb3Rpb25EaXJl Y3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVh X2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVh X2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgaW50IGluZGV4ICgp OworLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBsaXN0X3dpbmRvd3MgKCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRpbl9zdHJ1dHMgKEdMaWIuU0xpc3Q8TWV0YS5TdHJ1 dD8+IHN0cnV0cyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG5fd2lu ZG93cyB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCB3b3Jr c3BhY2VfaW5kZXggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfYWRkZWQg KE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X3JlbW92 ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93b3Jr c3BhY2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgV29ya3NwYWNlTWFu YWdlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXb3Jrc3BhY2VNYW5hZ2VyICgpOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5Xb3Jrc3BhY2UgYXBwZW5kX25ld193b3Jrc3BhY2UgKGJvb2wgYWN0aXZhdGUs IHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0 X2FjdGl2ZV93b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgaW50IGdldF9hY3RpdmVfd29ya3NwYWNl X2luZGV4ICgpOworLQkJcHVibGljIGludCBnZXRfbl93b3Jrc3BhY2VzICgpOworLQkJcHVibGlj IHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IGluZGV4 KTsKKy0JCXB1YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuRGlzcGxh eUNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dz LCBpbnQgbl9jb2x1bW5zKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEu V29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgaW50IG5f d29ya3NwYWNlcyB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjdGl2ZV93b3Jrc3Bh Y2VfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hh bmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfYWRkZWQgKGludCBvYmpl Y3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9yZW1vdmVkIChpbnQgb2JqZWN0 KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2Vfc3dpdGNoZWQgKGludCBvYmplY3Qs IGludCBwMCwgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gcDEpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0g Im1ldGFfeDExX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFgxMURpc3Bs YXkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgWDExRGlzcGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3Vz X3RoZV9ub19mb2N1c193aW5kb3cgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGludCBn ZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CistCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVy ICgpOworLQkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKy0JCXB1YmxpYyBi b29sIGhhc19zaGFwZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7Cist CQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9jdXNfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cs IGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgeHdp bmRvd19pc19hX25vX2ZvY3VzX3dpbmRvdyAoWC5XaW5kb3cgeHdpbmRvdyk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IHR5cGVfY25hbWUgPSAiTWV0YUNsb3NlRGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRh X2Nsb3NlX2RpYWxvZ19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIENsb3NlRGlh bG9nIDogR0xpYi5PYmplY3QgeworLQkJcHVibGljIGFic3RyYWN0IHZvaWQgZm9jdXMgKCk7Cist CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoaWRlICgpOworLQkJcHVibGljIGJvb2wgaXNfdmlzaWJs ZSAoKTsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNob3cgKCk7CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBhYnN0cmFjdCBNZXRhLldpbmRvdyB3aW5kb3cgeyBvd25lZCBnZXQ7 IGNvbnN0cnVjdDsgfQorLQkJW0hhc0VtaXR0ZXJdCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVz cG9uc2UgKE1ldGEuQ2xvc2VEaWFsb2dSZXNwb25zZSByZXNwb25zZSk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5 cGVfY25hbWUgPSAiTWV0YUluaGliaXRTaG9ydGN1dHNEaWFsb2dJbnRlcmZhY2UiLCB0eXBlX2lk ID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX2dldF90eXBlICgpIildCistCXB1Ymxp YyBpbnRlcmZhY2UgSW5oaWJpdFNob3J0Y3V0c0RpYWxvZyA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1 YmxpYyBhYnN0cmFjdCB2b2lkIGhpZGUgKCk7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93 ICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYWJzdHJhY3QgTWV0YS5XaW5k b3cgd2luZG93IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtIYXNFbWl0dGVyXQorLQkJ cHVibGljIHNpZ25hbCB2b2lkIHJlc3BvbnNlIChNZXRhLkluaGliaXRTaG9ydGN1dHNEaWFsb2dS ZXNwb25zZSByZXNwb25zZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlw dWJsaWMgc3RydWN0IEJ1dHRvbkxheW91dCB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzRd OworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29s IGxlZnRfYnV0dG9uc19oYXNfc3BhY2VyWzRdOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNb NF07CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJv b2wgcmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyWzRdOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBFZGdlIHsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rhbmds ZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lkZSBzaWRlX3R5cGU7CistCQlwdWJsaWMgTWV0YS5F ZGdlVHlwZSBlZGdlX3R5cGU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlw dWJsaWMgc3RydWN0IEZyYW1lQm9yZGVycyB7CistCQlwdWJsaWMgR3RrLkJvcmRlciB2aXNpYmxl OworLQkJcHVibGljIEd0ay5Cb3JkZXIgaW52aXNpYmxlOworLQkJcHVibGljIEd0ay5Cb3JkZXIg dG90YWw7CistCQlwdWJsaWMgdm9pZCBjbGVhciAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CXB1YmxpYyBzdHJ1Y3QgUGx1Z2luSW5mbyB7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbmFtZTsK Ky0JCXB1YmxpYyB3ZWFrIHN0cmluZyB2ZXJzaW9uOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGF1 dGhvcjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBsaWNlbnNlOworLQkJcHVibGljIHdlYWsgc3Ry aW5nIGRlc2NyaXB0aW9uOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVi bGljIHN0cnVjdCBQbHVnaW5WZXJzaW9uIHsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWFqb3I7 CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pbm9yOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9t aWNybzsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fYXBpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0g Im1ldGFfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCistCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xl IHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyBpbnQgd2lk dGg7CistCQlwdWJsaWMgaW50IGhlaWdodDsKKy0JCXB1YmxpYyBpbnQgYXJlYSAoKTsKKy0JCXB1 YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVyX3JlY3QpOworLQkJ cHVibGljIE1ldGEuUmVjdGFuZ2xlPyBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgY291bGRfZml0 X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVyX3JlY3QpOworLQkJcHVibGljIGJvb2wgZXF1YWwg KE1ldGEuUmVjdGFuZ2xlIHNyYzIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1Ymxp YyBib29sIGhvcml6X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBi b29sIGludGVyc2VjdCAoTWV0YS5SZWN0YW5nbGUgc3JjMiwgb3V0IE1ldGEuUmVjdGFuZ2xlIGRl c3QpOworLQkJcHVibGljIGJvb2wgb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJ cHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlw dWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgU2hhZG93UGFyYW1zIHsK Ky0JCXB1YmxpYyBpbnQgcmFkaXVzOworLQkJcHVibGljIGludCB0b3BfZmFkZTsKKy0JCXB1Ymxp YyBpbnQgeF9vZmZzZXQ7CistCQlwdWJsaWMgaW50IHlfb2Zmc2V0OworLQkJcHVibGljIHVpbnQ4 IG9wYWNpdHk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3Ry dWN0IFN0cnV0IHsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworLQkJcHVibGljIE1l dGEuU2lkZSBzaWRlOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJ T05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90eXBlICgpIildCist CVtGbGFnc10KKy0JcHVibGljIGVudW0gQmFycmllckRpcmVjdGlvbiB7CistCQlQT1NJVElWRV9Y LAorLQkJUE9TSVRJVkVfWSwKKy0JCU5FR0FUSVZFX1gsCistCQlORUdBVElWRV9ZCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGNwcmVmaXggPSAiTUVUQV9CVVRUT05fRlVOQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2J1 dHRvbl9mdW5jdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBCdXR0b25GdW5jdGlv biB7CistCQlNRU5VLAorLQkJTUlOSU1JWkUsCistCQlNQVhJTUlaRSwKKy0JCUNMT1NFLAorLQkJ TEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNFXyIs IHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gQ2xvc2VEaWFsb2dSZXNwb25zZSB7CistCQlXQUlULAorLQkJRk9SQ0VfQ0xP U0UKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAi bWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBDb21wRWZmZWN0 IHsKKy0JCUNSRUFURSwKKy0JCVVOTUlOSU1JWkUsCistCQlERVNUUk9ZLAorLQkJTUlOSU1JWkUs CistCQlOT05FCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9DVVJTT1JfIiwgdHlwZV9pZCA9 ICJtZXRhX2N1cnNvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBDdXJzb3IgeworLQkJ Tk9ORSwKKy0JCURFRkFVTFQsCistCQlOT1JUSF9SRVNJWkUsCistCQlTT1VUSF9SRVNJWkUsCist CQlXRVNUX1JFU0laRSwKKy0JCUVBU1RfUkVTSVpFLAorLQkJU0VfUkVTSVpFLAorLQkJU1dfUkVT SVpFLAorLQkJTkVfUkVTSVpFLAorLQkJTldfUkVTSVpFLAorLQkJTU9WRV9PUl9SRVNJWkVfV0lO RE9XLAorLQkJQlVTWSwKKy0JCURORF9JTl9EUkFHLAorLQkJRE5EX01PVkUsCistCQlETkRfQ09Q WSwKKy0JCURORF9VTlNVUFBPUlRFRF9UQVJHRVQsCistCQlQT0lOVElOR19IQU5ELAorLQkJQ1JP U1NIQUlSLAorLQkJSUJFQU0sCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9E RUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKy0JW0Zs YWdzXQorLQlwdWJsaWMgZW51bSBEZWJ1Z1RvcGljIHsKKy0JCVZFUkJPU0UsCistCQlGT0NVUywK Ky0JCVdPUktBUkVBLAorLQkJU1RBQ0ssCistCQlUSEVNRVMsCistCQlTTSwKKy0JCUVWRU5UUywK Ky0JCVdJTkRPV19TVEFURSwKKy0JCVdJTkRPV19PUFMsCistCQlHRU9NRVRSWSwKKy0JCVBMQUNF TUVOVCwKKy0JCVBJTkcsCistCQlYSU5FUkFNQSwKKy0JCUtFWUJJTkRJTkdTLAorLQkJU1lOQywK Ky0JCUVSUk9SUywKKy0JCVNUQVJUVVAsCistCQlQUkVGUywKKy0JCUdST1VQUywKKy0JCVJFU0la SU5HLAorLQkJU0hBUEVTLAorLQkJQ09NUE9TSVRPUiwKKy0JCUVER0VfUkVTSVNUQU5DRSwKKy0J CURCVVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0g Im1ldGFfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0g RGlyZWN0aW9uIHsKKy0JCUxFRlQsCistCQlSSUdIVCwKKy0JCVRPUCwKKy0JCUJPVFRPTSwKKy0J CVVQLAorLQkJRE9XTiwKKy0JCUhPUklaT05UQUwsCistCQlWRVJUSUNBTAorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj cHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRGlzcGxheUNvcm5lciB7CistCQlUT1BMRUZU LAorLQkJVE9QUklHSFQsCistCQlCT1RUT01MRUZULAorLQkJQk9UVE9NUklHSFQKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZGly ZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIERpc3BsYXlEaXJlY3Rpb24gewor LQkJVVAsCistCQlET1dOLAorLQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXgg PSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gRWRnZVR5cGUgeworLQkJV0lORE9XLAorLQkJTU9OSVRPUiwKKy0JCVND UkVFTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRVhJVF8iLCB0eXBlX2lkID0gIm1ldGFf ZXhpdF9jb2RlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEV4aXRDb2RlIHsKKy0JCVNV Q0NFU1MsCistCQlFUlJPUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlw ZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVi bGljIGVudW0gRnJhbWVGbGFncyB7CistCQlBTExPV1NfREVMRVRFLAorLQkJQUxMT1dTX01FTlUs CistCQlBTExPV1NfTUlOSU1JWkUsCistCQlBTExPV1NfTUFYSU1JWkUsCistCQlBTExPV1NfVkVS VElDQUxfUkVTSVpFLAorLQkJQUxMT1dTX0hPUklaT05UQUxfUkVTSVpFLAorLQkJSEFTX0ZPQ1VT LAorLQkJU0hBREVELAorLQkJU1RVQ0ssCistCQlNQVhJTUlaRUQsCistCQlBTExPV1NfU0hBREUs CistCQlBTExPV1NfTU9WRSwKKy0JCUZVTExTQ1JFRU4sCistCQlJU19GTEFTSElORywKKy0JCUFC T1ZFLAorLQkJVElMRURfTEVGVCwKKy0JCVRJTEVEX1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXgg PSAiTUVUQV9GUkFNRV9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV90eXBlX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIEZyYW1lVHlwZSB7CistCQlOT1JNQUwsCistCQlESUFMT0cs CistCQlNT0RBTF9ESUFMT0csCistCQlVVElMSVRZLAorLQkJTUVOVSwKKy0JCUJPUkRFUiwKKy0J CUFUVEFDSEVELAorLQkJTEFTVDsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcg KCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0 YV9ncmFiX29wX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEdyYWJPcCB7CistCQlOT05F LAorLQkJV0lORE9XX0JBU0UsCistCQlDT01QT1NJVE9SLAorLQkJV0FZTEFORF9QT1BVUCwKKy0J CUZSQU1FX0JVVFRPTiwKKy0JCU1PVklORywKKy0JCVJFU0laSU5HX05XLAorLQkJUkVTSVpJTkdf TiwKKy0JCVJFU0laSU5HX05FLAorLQkJUkVTSVpJTkdfRSwKKy0JCVJFU0laSU5HX1NXLAorLQkJ UkVTSVpJTkdfUywKKy0JCVJFU0laSU5HX1NFLAorLQkJUkVTSVpJTkdfVywKKy0JCUtFWUJPQVJE X01PVklORywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1VOS05PV04sCistCQlLRVlCT0FSRF9SRVNJ WklOR19OVywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX04sCistCQlLRVlCT0FSRF9SRVNJWklOR19O RSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19TVywKKy0J CUtFWUJPQVJEX1JFU0laSU5HX1MsCistCQlLRVlCT0FSRF9SRVNJWklOR19TRSwKKy0JCUtFWUJP QVJEX1JFU0laSU5HX1cKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0lOSElCSVRfU0hPUlRD VVRTX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNf ZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEluaGliaXRTaG9y dGN1dHNEaWFsb2dSZXNwb25zZSB7CistCQlBTExPVywKKy0JCURFTlkKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX0tFWUJJTkRJTkdfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmlu ZGluZ19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gS2V5QmluZGluZ0FjdGlv biB7CistCQlOT05FLAorLQkJV09SS1NQQUNFXzEsCistCQlXT1JLU1BBQ0VfMiwKKy0JCVdPUktT UEFDRV8zLAorLQkJV09SS1NQQUNFXzQsCistCQlXT1JLU1BBQ0VfNSwKKy0JCVdPUktTUEFDRV82 LAorLQkJV09SS1NQQUNFXzcsCistCQlXT1JLU1BBQ0VfOCwKKy0JCVdPUktTUEFDRV85LAorLQkJ V09SS1NQQUNFXzEwLAorLQkJV09SS1NQQUNFXzExLAorLQkJV09SS1NQQUNFXzEyLAorLQkJV09S S1NQQUNFX0xFRlQsCistCQlXT1JLU1BBQ0VfUklHSFQsCistCQlXT1JLU1BBQ0VfVVAsCistCQlX T1JLU1BBQ0VfRE9XTiwKKy0JCVdPUktTUEFDRV9MQVNULAorLQkJU1dJVENIX0FQUExJQ0FUSU9O UywKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlNfQkFDS1dBUkQsCistCQlTV0lUQ0hfR1JPVVAsCist CQlTV0lUQ0hfR1JPVVBfQkFDS1dBUkQsCistCQlTV0lUQ0hfV0lORE9XUywKKy0JCVNXSVRDSF9X SU5ET1dTX0JBQ0tXQVJELAorLQkJU1dJVENIX1BBTkVMUywKKy0JCVNXSVRDSF9QQU5FTFNfQkFD S1dBUkQsCistCQlDWUNMRV9HUk9VUCwKKy0JCUNZQ0xFX0dST1VQX0JBQ0tXQVJELAorLQkJQ1lD TEVfV0lORE9XUywKKy0JCUNZQ0xFX1dJTkRPV1NfQkFDS1dBUkQsCistCQlDWUNMRV9QQU5FTFMs CistCQlDWUNMRV9QQU5FTFNfQkFDS1dBUkQsCistCQlTSE9XX0RFU0tUT1AsCistCQlQQU5FTF9N QUlOX01FTlUsCistCQlQQU5FTF9SVU5fRElBTE9HLAorLQkJVE9HR0xFX1JFQ09SRElORywKKy0J CVNFVF9TUEVXX01BUkssCistCQlBQ1RJVkFURV9XSU5ET1dfTUVOVSwKKy0JCVRPR0dMRV9GVUxM U0NSRUVOLAorLQkJVE9HR0xFX01BWElNSVpFRCwKKy0JCVRPR0dMRV9USUxFRF9MRUZULAorLQkJ VE9HR0xFX1RJTEVEX1JJR0hULAorLQkJVE9HR0xFX0FCT1ZFLAorLQkJTUFYSU1JWkUsCistCQlV Tk1BWElNSVpFLAorLQkJVE9HR0xFX1NIQURFRCwKKy0JCU1JTklNSVpFLAorLQkJQ0xPU0UsCist CQlCRUdJTl9NT1ZFLAorLQkJQkVHSU5fUkVTSVpFLAorLQkJVE9HR0xFX09OX0FMTF9XT1JLU1BB Q0VTLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzIsCist CQlNT1ZFX1RPX1dPUktTUEFDRV8zLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNCwKKy0JCU1PVkVf VE9fV09SS1NQQUNFXzUsCistCQlNT1ZFX1RPX1dPUktTUEFDRV82LAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfNywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzgsCistCQlNT1ZFX1RPX1dPUktTUEFDRV85 LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTAsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMSwKKy0J CU1PVkVfVE9fV09SS1NQQUNFXzEyLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfTEVGVCwKKy0JCU1P VkVfVE9fV09SS1NQQUNFX1JJR0hULAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfVVAsCistCQlNT1ZF X1RPX1dPUktTUEFDRV9ET1dOLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfTEFTVCwKKy0JCU1PVkVf VE9fTU9OSVRPUl9MRUZULAorLQkJTU9WRV9UT19NT05JVE9SX1JJR0hULAorLQkJTU9WRV9UT19N T05JVE9SX1VQLAorLQkJTU9WRV9UT19NT05JVE9SX0RPV04sCistCQlSQUlTRV9PUl9MT1dFUiwK Ky0JCVJBSVNFLAorLQkJTE9XRVIsCistCQlNQVhJTUlaRV9WRVJUSUNBTExZLAorLQkJTUFYSU1J WkVfSE9SSVpPTlRBTExZLAorLQkJTU9WRV9UT19DT1JORVJfTlcsCistCQlNT1ZFX1RPX0NPUk5F Ul9ORSwKKy0JCU1PVkVfVE9fQ09STkVSX1NXLAorLQkJTU9WRV9UT19DT1JORVJfU0UsCistCQlN T1ZFX1RPX1NJREVfTiwKKy0JCU1PVkVfVE9fU0lERV9TLAorLQkJTU9WRV9UT19TSURFX0UsCist CQlNT1ZFX1RPX1NJREVfVywKKy0JCU1PVkVfVE9fQ0VOVEVSLAorLQkJT1ZFUkxBWV9LRVksCist CQlJU09fTkVYVF9HUk9VUCwKKy0JCUFMV0FZU19PTl9UT1AsCistCQlTV0lUQ0hfTU9OSVRPUiwK Ky0JCVJPVEFURV9NT05JVE9SLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFf S0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2ZsYWdzX2dldF90eXBl ICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gS2V5QmluZGluZ0ZsYWdzIHsKKy0JCU5P TkUsCistCQlQRVJfV0lORE9XLAorLQkJQlVJTFRJTiwKKy0JCUlTX1JFVkVSU0VELAorLQkJTk9O X01BU0tBQkxFLAorLQkJSUdOT1JFX0FVVE9SRVBFQVQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIExhdGVyVHlwZSB7CistCQlSRVNJWkUsCistCQlDQUxDX1NIT1dJTkcsCist CQlDSEVDS19GVUxMU0NSRUVOLAorLQkJU1lOQ19TVEFDSywKKy0JCUJFRk9SRV9SRURSQVcsCist CQlJRExFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5 cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBl bnVtIExvY2FsZURpcmVjdGlvbiB7CistCQlMVFIsCistCQlSVEwKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19nZXRf dHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIE1heGltaXplRmxhZ3MgeworLQkJ SE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FMLAorLQkJQk9USAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0g Ik1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCki KV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNb2RhbE9wdGlvbnMgeworLQkJUE9JTlRFUl9B TFJFQURZX0dSQUJCRUQsCistCQlLRVlCT0FSRF9BTFJFQURZX0dSQUJCRUQKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y3ByZWZpeCA9ICJNRVRBX01PTklUT1JfU1dJVENIX0NPTkZJR18iLCB0eXBlX2lkID0gIm1ldGFf bW9uaXRvcl9zd2l0Y2hfY29uZmlnX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g TW9uaXRvclN3aXRjaENvbmZpZ1R5cGUgeworLQkJQUxMX01JUlJPUiwKKy0JCUFMTF9MSU5FQVIs CistCQlFWFRFUk5BTCwKKy0JCUJVSUxUSU4sCistCQlVTktOT1dOCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVm aXggPSAiTUVUQV9NT1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJ RE9XTiwKKy0JCUxFRlQsCistCQlSSUdIVCwKKy0JCVVQX0xFRlQsCistCQlVUF9SSUdIVCwKKy0J CURPV05fTEVGVCwKKy0JCURPV05fUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1BB RF9BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX3BhZF9hY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBQYWRBY3Rpb25UeXBlIHsKKy0JCUJVVFRPTiwKKy0JCVJJTkcsCist CQlTVFJJUAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfUFJFRl8iLCB0eXBlX2lkID0gIm1l dGFfcHJlZmVyZW5jZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBQcmVmZXJlbmNlIHsK Ky0JCU1PVVNFX0JVVFRPTl9NT0RTLAorLQkJRk9DVVNfTU9ERSwKKy0JCUZPQ1VTX05FV19XSU5E T1dTLAorLQkJQVRUQUNIX01PREFMX0RJQUxPR1MsCistCQlSQUlTRV9PTl9DTElDSywKKy0JCUFD VElPTl9ET1VCTEVfQ0xJQ0tfVElUTEVCQVIsCistCQlBQ1RJT05fTUlERExFX0NMSUNLX1RJVExF QkFSLAorLQkJQUNUSU9OX1JJR0hUX0NMSUNLX1RJVExFQkFSLAorLQkJQVVUT19SQUlTRSwKKy0J CUFVVE9fUkFJU0VfREVMQVksCistCQlGT0NVU19DSEFOR0VfT05fUE9JTlRFUl9SRVNULAorLQkJ VElUTEVCQVJfRk9OVCwKKy0JCU5VTV9XT1JLU1BBQ0VTLAorLQkJRFlOQU1JQ19XT1JLU1BBQ0VT LAorLQkJS0VZQklORElOR1MsCistCQlESVNBQkxFX1dPUktBUk9VTkRTLAorLQkJQlVUVE9OX0xB WU9VVCwKKy0JCVdPUktTUEFDRV9OQU1FUywKKy0JCVZJU1VBTF9CRUxMLAorLQkJQVVESUJMRV9C RUxMLAorLQkJVklTVUFMX0JFTExfVFlQRSwKKy0JCUdOT01FX0FDQ0VTU0lCSUxJVFksCistCQlH Tk9NRV9BTklNQVRJT05TLAorLQkJQ1VSU09SX1RIRU1FLAorLQkJQ1VSU09SX1NJWkUsCistCQlS RVNJWkVfV0lUSF9SSUdIVF9CVVRUT04sCistCQlFREdFX1RJTElORywKKy0JCUZPUkNFX0ZVTExT Q1JFRU4sCistCQlXT1JLU1BBQ0VTX09OTFlfT05fUFJJTUFSWSwKKy0JCURSQUdHQUJMRV9CT1JE RVJfV0lEVEgsCistCQlBVVRPX01BWElNSVpFLAorLQkJQ0VOVEVSX05FV19XSU5ET1dTLAorLQkJ RFJBR19USFJFU0hPTEQ7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfU0hBRE9XX01PREVfIiwgdHlwZV9pZCA9ICJtZXRh X3NoYWRvd19tb2RlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNoYWRvd01vZGUgewor LQkJQVVUTywKKy0JCUZPUkNFRF9PRkYsCistCQlGT1JDRURfT04KKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gU2lkZSB7CistCQlMRUZULAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RU T00KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJWkVfQ0hBTkdFXyIsIHR5cGVfaWQgPSAi bWV0YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTaXplQ2hhbmdl IHsKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0JCUZVTExTQ1JFRU4sCistCQlVTkZV TExTQ1JFRU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAi bWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTdGFja0xheWVy IHsKKy0JCURFU0tUT1AsCistCQlCT1RUT00sCistCQlOT1JNQUwsCistCQlUT1AsCistCQlET0NL LAorLQkJT1ZFUlJJREVfUkVESVJFQ1QsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAi TUVUQV9UQUJfTElTVF8iLCB0eXBlX2lkID0gIm1ldGFfdGFiX2xpc3RfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gVGFiTGlzdCB7CistCQlOT1JNQUwsCistCQlET0NLUywKKy0JCUdST1VQ LAorLQkJTk9STUFMX0FMTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwg dHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gVGFiU2hvd1R5cGUgeworLQkJSUNPTiwKKy0JCUlOU1RBTlRMWQorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJl Zml4ID0gIk1FVEFfVklSVFVBTF8iLCB0eXBlX2lkID0gIm1ldGFfdmlydHVhbF9tb2RpZmllcl9n ZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIFZpcnR1YWxNb2RpZmllciB7 CistCQlTSElGVF9NQVNLLAorLQkJQ09OVFJPTF9NQVNLLAorLQkJQUxUX01BU0ssCistCQlNRVRB X01BU0ssCistCQlTVVBFUl9NQVNLLAorLQkJSFlQRVJfTUFTSywKKy0JCU1PRDJfTUFTSywKKy0J CU1PRDNfTUFTSywKKy0JCU1PRDRfTUFTSywKKy0JCU1PRDVfTUFTSworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJl Zml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3df Y2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93Q2xpZW50VHlw ZSB7CistCQlXQVlMQU5ELAorLQkJWDExCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5E T1dfTUVOVV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBXaW5kb3dNZW51VHlwZSB7CistCQlXTSwKKy0JCUFQUAorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlw ZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dUeXBlIHsKKy0JCU5PUk1BTCwK Ky0JCURFU0tUT1AsCistCQlET0NLLAorLQkJRElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAorLQkJ VE9PTEJBUiwKKy0JCU1FTlUsCistCQlVVElMSVRZLAorLQkJU1BMQVNIU0NSRUVOLAorLQkJRFJP UERPV05fTUVOVSwKKy0JCVBPUFVQX01FTlUsCistCQlUT09MVElQLAorLQkJTk9USUZJQ0FUSU9O LAorLQkJQ09NQk8sCistCQlETkQsCistCQlPVkVSUklERV9PVEhFUgorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0 YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBJZGxlTW9uaXRvcldhdGNo RnVuYyAoTWV0YS5JZGxlTW9uaXRvciBtb25pdG9yLCB1aW50IHdhdGNoX2lkKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGlu c3RhbmNlX3BvcyA9IDQuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEtleUhhbmRsZXJGdW5j IChNZXRhLkRpc3BsYXkgZGlzcGxheSwgTWV0YS5XaW5kb3cgd2luZG93LCBbQ0NvZGUgKHR5cGUg PSAiQ2x1dHRlcktleUV2ZW50KiIpXSBDbHV0dGVyLktleUV2ZW50PyBldmVudCwgTWV0YS5LZXlC aW5kaW5nIGJpbmRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRl bGVnYXRlIHZvaWQgUHJlZnNDaGFuZ2VkRnVuYyAoTWV0YS5QcmVmZXJlbmNlIHByZWYpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgV2luZG93Rm9y ZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0NVUlJF TlRfVElNRSIpXQorLQlwdWJsaWMgY29uc3QgaW50IENVUlJFTlRfVElNRTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1l ID0gIk1FVEFfREVGQVVMVF9JQ09OX05BTUUiKV0KKy0JcHVibGljIGNvbnN0IHN0cmluZyBERUZB VUxUX0lDT05fTkFNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9IRUlHSFQiKV0KKy0JcHVi bGljIGNvbnN0IGludCBJQ09OX0hFSUdIVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURU SCIpXQorLQlwdWJsaWMgY29uc3QgaW50IElDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRB X01BSk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNQUpPUl9WRVJTSU9OOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgY25hbWUgPSAiTUVUQV9NSUNST19WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlD Uk9fVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorLQlw dWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01J TklfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9XSURUSDsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1J Tk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BMVUdJTl9BUElfVkVSU0lPTiIpXQor LQlwdWJsaWMgY29uc3QgaW50IFBMVUdJTl9BUElfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1F VEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZ X0JFRk9SRV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1BSRUZTX05PVElG WSIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1BSRUZTX05PVElGWTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNu YW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFXIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJ VFlfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKy0JcHVi bGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJWkU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRV QUxfQ09SRV9LRVlCT0FSRF9JRCIpXQorLQlwdWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9L RVlCT0FSRF9JRDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQi KV0KKy0JcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfUE9JTlRFUl9JRDsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQor LQlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vzc2lvbiAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgZXhpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJs aWMgc3RhdGljIHVub3duZWQgR0xpYi5PcHRpb25Db250ZXh0IGdldF9vcHRpb25fY29udGV4dCAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3JlcGxhY2VfY3VycmVudF93bSAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJs aWMgc3RhdGljIGJvb2wgaXNfcmVzdGFydCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgcXVpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCByZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgaW50 IHJ1biAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2dub21lX3dtX2tleWJp bmRpbmdzIChzdHJpbmcgd21fa2V5YmluZGluZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0 aWMgYm9vbCB4MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy19Citk aWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTUuZGVwcyB2YXBpL2xpYm11dHRlci02LmRlcHMKK3Np bWlsYXJpdHkgaW5kZXggNTAlCityZW5hbWUgZnJvbSB2YXBpL2xpYm11dHRlci01LmRlcHMKK3Jl bmFtZSB0byB2YXBpL2xpYm11dHRlci02LmRlcHMKK2luZGV4IDQ4YWE3NTYzLi4yMjM1MjVlNCAx MDA2NDQKKy0tLSB2YXBpL2xpYm11dHRlci01LmRlcHMKKysrKyB2YXBpL2xpYm11dHRlci02LmRl cHMKK0BAIC0xLDUgKzEsNiBAQAorIGd0aystMy4wCisganNvbi1nbGliLTEuMAorLW11dHRlci1j bHV0dGVyLTUKKyttdXR0ZXItY2x1dHRlci02CisgeDExCisgeGZpeGVzLTQuMAorK2dyYXBoZW5l LWdvYmplY3QtMS4wCitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTUudmFwaSB2YXBpL2xpYm11 dHRlci02LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggOTclCityZW5hbWUgZnJvbSB2YXBpL2xpYm11 dHRlci01LnZhcGkKK3JlbmFtZSB0byB2YXBpL2xpYm11dHRlci02LnZhcGkKK2luZGV4IGI5NWEy OGU2Li5iMzZiZTFiNyAxMDA2NDQKKy0tLSB2YXBpL2xpYm11dHRlci01LnZhcGkKKysrKyB2YXBp L2xpYm11dHRlci02LnZhcGkKK0BAIC0xLDEyICsxLDEwIEBACistLyogbGlibXV0dGVyLTUudmFw aSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBsaWJtdXR0ZXIt Ni52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29k ZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24g PSAiNSIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9 ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNiIsIGxvd2Vy X2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorIG5hbWVzcGFjZSBNZXRhIHsKKyAJbmFtZXNwYWNl IENvbXBvc2l0b3IgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNw bGF5IildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNw bGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFnZV9p bnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9y ZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJl ZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVk aXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRh X2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorQEAgLTIxLDggKzE5LDYgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRf d2luZG93X2FjdG9ycyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0 X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENs dXR0ZXIuQWN0b3IgZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRp c3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNw bGF5LCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJfQorIAluYW1lc3BhY2UgUHJlZnMgewor IAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1l dGFfcHJlZnNfYmVsbF9pc19hdWRpYmxlIildCitAQCAtMTY0LDcgKzE2MCw3IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9udW1sb2NrIChib29sIG51bWxvY2tfc3RhdGUp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9jaGFuZ2VkICgpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIGtleW1hcF9sYXlvdXRfZ3JvdXBfY2hhbmdlZCAodWludCBvYmplY3QpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNlX2NoYW5nZWQgKGludCBvYmplY3QpOworKwkJ cHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNlX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZp Y2Ugb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQg KGJvb2wgb2JqZWN0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgp IildCitAQCAtMTc0LDcgKzE3MCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0 aWMgdm9pZCByZWZyZXNoX2FsbCAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5G aWxlIGZpbGUxLCBHTGliLkZpbGUgZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9w LkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0 ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxl LCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworKwkJcHVibGljIHZvaWQgc2V0X2Zp bGUgKEdMaWIuRmlsZT8gZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hh ZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25k X2NvbG9yKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIE1ldGEuRGlzcGxheSBt ZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorQEAgLTI3NSw3ICsyNzEsNyBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nw cml0ZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJs ZSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChmbG9hdCBvYmplY3QsIGZsb2F0IHAwKTsKKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbW92ZWQgKGZsb2F0IHgsIGZsb2F0IHkpOworIAkJcHVi bGljIHNpZ25hbCB2b2lkIHZpc2liaWxpdHlfY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxh eV9nZXRfdHlwZSAoKSIpXQorQEAgLTMyNyw2ICszMjMsNyBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVmb3JlICh1aW50MzIgdGltZTEsIHVpbnQz MiB0aW1lMik7CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cgZm9jdXNfd2luZG93IHsgZ2V0OyB9Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50IG9iamVjdCwg Q2x1dHRlci5JbnB1dERldmljZSBwMCwgdWludCBwMSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg Y2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfdXBkYXRlZCAoKTsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCBnbF92aWRlb19tZW1vcnlfcHVyZ2VkICgpOworIAkJcHVibGlj IHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2lu ZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CitAQCAtMzUwLDYgKzM0Nyw3IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFf ZGlzcGxheV9zZXR1cCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLWRuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgY2xhc3MgRG5kIDogR0xpYi5PYmplY3QgeworQEAgLTM3MCwxMSArMzY4LDEwIEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2 YWxfbXNlYywgb3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworIAkJ cHVibGljIHVpbnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25pdG9y V2F0Y2hGdW5jPyBjYWxsYmFjayk7CisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxl TW9uaXRvciBnZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVN b25pdG9yIGdldF9mb3JfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKyAJCXB1YmxpYyBpbnQ2NCBn ZXRfaWRsZXRpbWUgKCk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOwor IAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsgY29u c3RydWN0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9 ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCki KV0KKyAJW0NvbXBhY3RdCitAQCAtNTM2LDE1ICs1MzMsMTQgQEAgbmFtZXNwYWNlIE1ldGEgewor IAkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRh X3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0 dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUs IENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3Mg U2hhcGVkVGV4dHVyZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYXBlZFRl eHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3Rh bmdsZUludCBjbGlwKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJv LlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0 X3RleHR1cmUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3Jl YXRlX21pcG1hcHMpOworIAkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0 dXJlIG1hc2tfdGV4dHVyZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3du ZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2Fy ZWEgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9zb3VuZF9wbGF5 ZXJfZ2V0X3R5cGUgKCkiKV0KK0BAIC03NTYsMTcgKzc1MiwxNiBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0 ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1 dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXByb3RlY3RlZCBXaW5kb3dBY3RvciAoKTsKKysJCXB1YmxpYyBDYWlyby5TdXJm YWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5v d25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5TaGFw ZWRUZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVibGljIGJvb2wgaXNfZGVzdHJveWVkICgp OworIAkJcHVibGljIHZvaWQgc3luY192aXNpYmlsaXR5ICgpOworIAkJcHVibGljIE1ldGEuV2lu ZG93IG1ldGFfd2luZG93IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIHN0cmluZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRvd19tb2Rl IHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkYW1hZ2VkICgpOworIAkJcHVi bGljIHNpZ25hbCB2b2lkIGVmZmVjdHNfY29tcGxldGVkICgpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIGZpcnN0X2ZyYW1lICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHRoYXdlZCAoKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o IiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19ncm91cF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMg Y2xhc3MgV2luZG93R3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0 ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitA QCAtODEzLDcgKzgwOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIE1l dGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgpOworIAkJcHVibGljIGludCBnZXRf YWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNl cyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2VfYnlf aW5kZXggKGludCBpbmRleCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZT8gZ2V0 X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKyAJCXB1YmxpYyB2b2lkIG92ZXJyaWRl X3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuRGlzcGxheUNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJv b2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKyAJCXB1Ymxp YyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMy IHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgdm9pZCByZW9yZGVyX3dvcmtzcGFjZSAoTWV0YS5Xb3Jr c3BhY2Ugd29ya3NwYWNlLCBpbnQgbmV3X2luZGV4KTsKK0BAIC04MzMsMTEgKzgyOCwxMyBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBjbGFzcyBYMTFEaXNwbGF5IDogR0xpYi5PYmplY3Qg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVj dGVkIFgxMURpc3BsYXkgKCk7CisrCQlwdWJsaWMgdm9pZCBjbGVhcl9zdGFnZV9pbnB1dF9yZWdp b24gKCk7CisgCQlwdWJsaWMgaW50IGdldF9kYW1hZ2VfZXZlbnRfYmFzZSAoKTsKKyAJCXB1Ymxp YyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVu dF9iYXNlICgpOworIAkJcHVibGljIGJvb2wgaGFzX3NoYXBlICgpOworIAkJcHVibGljIHZvaWQg c2V0X2NtX3NlbGVjdGlvbiAoKTsKKysJCXB1YmxpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdp b24gKFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworIAkJcHVibGljIGJvb2wgeHdpbmRvd19pc19h X25vX2ZvY3VzX3dpbmRvdyAoWC5XaW5kb3cgeHdpbmRvdyk7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCIsIHR5cGVfY25hbWUgPSAi TWV0YUNsb3NlRGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19n ZXRfdHlwZSAoKSIpXQorQEAgLTg5OSw3ICs4OTYsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlw dWJsaWMgdWludCB2ZXJzaW9uX21pY3JvOworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9hcGk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9 ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CisgCQlwdWJsaWMgaW50IHg7 CisgCQlwdWJsaWMgaW50IHk7CitAQCAtMTQ0Myw2ICsxNDQwLDggQEAgbmFtZXNwYWNlIE1ldGEg eworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGlj IHN0YXRpYyBib29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX2NsdXR0ZXJf ZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBDbHV0dGVyLkRyYXdE ZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBpY2tfZmxhZ3MpOwor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0 YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhf c3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworQEAgLTE0NTksNiArMTQ1OCw4IEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3Rlcl93aXRoX3Nlc3Npb24gKCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGlj IHZvaWQgcmVtb3ZlX2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVn X2ZsYWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVi dWdGbGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHJlc3RhcnQgKHN0cmluZz8gbWVzc2FnZSk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMg c3RhdGljIGludCBydW4gKCk7CitAQCAtMTQ2Nyw1ICsxNDY4LDcgQEAgbmFtZXNwYWNlIE1ldGEg eworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGlj IHN0YXRpYyB2b2lkIHNldF93bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgdGVz dF9pbml0ICgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K KyAJcHVibGljIHN0YXRpYyBib29sIHgxMV9pbml0X2dka19kaXNwbGF5ICgpIHRocm93cyBHTGli LkVycm9yOworIH0KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYSB2YXBp L2xpYm11dHRlci03LWN1c3RvbS52YWxhCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAuLjFlMGI5MTdjCistLS0gL2Rldi9udWxsCisrKysgdmFwaS9saWJtdXR0ZXItNy1jdXN0 b20udmFsYQorQEAgLTAsMCArMSw3IEBACisrW0NDb2RlIChoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KytwdWJsaWMgc3RydWN0IGJlZm9yZV9mcmFtZSB7CisrfQorKworK1tDQ29kZSAoaGFzX3R5cGVf aWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBmcmFtZSB7CisrfQorZGlmZiAtLWdpdCB2YXBp L2xpYm11dHRlci03LmRlcHMgdmFwaS9saWJtdXR0ZXItNy5kZXBzCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMDAuLjJlZjkxOWVlCistLS0gL2Rldi9udWxsCisrKysgdmFwaS9s aWJtdXR0ZXItNy5kZXBzCitAQCAtMCwwICsxLDYgQEAKKytndGsrLTMuMAorK2pzb24tZ2xpYi0x LjAKKyttdXR0ZXItY2x1dHRlci03CisreDExCisreGZpeGVzLTQuMAorK2dyYXBoZW5lLWdvYmpl Y3QtMS4wCitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTMudmFwaSB2YXBpL2xpYm11dHRlci03 LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggNzUlCityZW5hbWUgZnJvbSB2YXBpL2xpYm11dHRlci0z LnZhcGkKK3JlbmFtZSB0byB2YXBpL2xpYm11dHRlci03LnZhcGkKK2luZGV4IDE3MTVhYThmLi45 MGM0MTU5MCAxMDA2NDQKKy0tLSB2YXBpL2xpYm11dHRlci0zLnZhcGkKKysrKyB2YXBpL2xpYm11 dHRlci03LnZhcGkKK0BAIC0xLDEyICsxLDEwIEBACistLyogbGlibXV0dGVyLTMudmFwaSBnZW5l cmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBsaWJtdXR0ZXItNy52YXBp IGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3By ZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiMyIs IGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJNZXRh IiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNyIsIGxvd2VyX2Nhc2Vf Y3ByZWZpeCA9ICJtZXRhXyIpXQorIG5hbWVzcGFjZSBNZXRhIHsKKyAJbmFtZXNwYWNlIENvbXBv c2l0b3IgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5Iild CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChN ZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9y ZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24g KE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0 X2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3Rf Zm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3Vz X3N0YWdlX3dpbmRvdyIpXQorQEAgLTIxLDggKzE5LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93 X2FjdG9ycyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRv d19ncm91cF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIu QWN0b3IgZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBY LlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJfQorIAluYW1lc3BhY2UgUHJlZnMgeworIAkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfYmVsbF9pc19hdWRpYmxlIildCitAQCAtNDcsNiArNDMsOCBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCQlwdWJsaWMgc3RhdGljIE1ldGEuQnV0dG9uTGF5b3V0IHByZWZzX2dldF9idXR0b25fbGF5 b3V0ICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NlbnRlcl9uZXdfd2luZG93cyIpXQorIAkJcHVibGljIHN0 YXRpYyBib29sIHByZWZzX2dldF9jZW50ZXJfbmV3X3dpbmRvd3MgKCk7CisrCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRf Y2hlY2tfYWxpdmVfdGltZW91dCIpXQorKwkJcHVibGljIHN0YXRpYyB1aW50IHByZWZzX2dldF9j aGVja19hbGl2ZV90aW1lb3V0ICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIi KV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY29tcG9zaXRpbmdfbWFuYWdlciAo KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9 ICJtZXRhX3ByZWZzX2dldF9jdXJzb3Jfc2l6ZSIpXQorQEAgLTc1LDggKzczLDYgQEAgbmFtZXNw YWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9nbm9tZV9hY2Nlc3Np YmlsaXR5ICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2dub21lX2FuaW1hdGlvbnMiKV0KKyAJCXB1YmxpYyBz dGF0aWMgYm9vbCBwcmVmc19nZXRfZ25vbWVfYW5pbWF0aW9ucyAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9p Z25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJl ZnNfZ2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKCk7CisgCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfa2V5 YmluZGluZ19hY3Rpb24iKV0KKyAJCXB1YmxpYyBzdGF0aWMgTWV0YS5LZXlCaW5kaW5nQWN0aW9u IHByZWZzX2dldF9rZXliaW5kaW5nX2FjdGlvbiAoc3RyaW5nIG5hbWUpOworIAkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0 X21vdXNlX2J1dHRvbl9tZW51IildCitAQCAtMTA1LDggKzEwMSw2IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19pbml0ICgpOworIAkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X2Zv cmNlX2Z1bGxzY3JlZW4iKV0KKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfZm9yY2Vf ZnVsbHNjcmVlbiAoYm9vbCB3aGV0aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9pZ25vcmVfcmVxdWVzdF9o aWRlX3RpdGxlYmFyIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2lnbm9yZV9y ZXF1ZXN0X2hpZGVfdGl0bGViYXIgKGJvb2wgd2hldGhlcik7CisgCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfbnVtX3dv cmtzcGFjZXMiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfbnVtX3dvcmtzcGFj ZXMgKGludCBuX3dvcmtzcGFjZXMpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X3Nob3dfZmFsbGJhY2tfYXBwX21l bnUiKV0KK0BAIC0xMTcsMTIgKzExMSwxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMg c3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7Cisg CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRh X2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIildCisgCQlwdWJsaWMgc3RhdGljIHN0 cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5nX2Fj dGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFt ZSA9ICJtZXRhX2dfdXRmOF9zdHJuZHVwIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0 Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworIAkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlv biIpXQorIAkJcHVibGljIHN0YXRpYyBNZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxlX2Rp cmVjdGlvbiAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90b19zdHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKGludCBncmF2aXR5KTsKKysJCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKE1ldGEuR3Jhdml0eSBncmF2 aXR5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfaXNfZGVidWdnaW5nIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVidWdn aW5nICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25h bWUgPSAibWV0YV9pc19zeW5jaW5nIildCitAQCAtMTY1LDEyICsxNTcsMTMgQEAgbmFtZXNwYWNl IE1ldGEgeworIAkJcHVibGljIHVub3duZWQgTWV0YS5EbmQgZ2V0X2RuZCAoKTsKKyAJCXB1Ymxp YyB1bm93bmVkIE1ldGEuUmVtb3RlQWNjZXNzQ29udHJvbGxlciBnZXRfcmVtb3RlX2FjY2Vzc19j b250cm9sbGVyICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfc3RhZ2Ug KCk7CisrCQlwdWJsaWMgYm9vbCBpc19yZW5kZXJpbmdfaGFyZHdhcmVfYWNjZWxlcmF0ZWQgKCk7 CisgCQlwdWJsaWMgdm9pZCBsb2NrX2xheW91dF9ncm91cCAodWludCBpZHgpOworIAkJcHVibGlj IHZvaWQgc2V0X2tleW1hcCAoc3RyaW5nIGxheW91dHMsIHN0cmluZyB2YXJpYW50cywgc3RyaW5n IG9wdGlvbnMpOworIAkJcHVibGljIHZvaWQgc2V0X251bWxvY2sgKGJvb2wgbnVtbG9ja19zdGF0 ZSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7Cisr CQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERl dmljZSBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGxpZF9pc19jbG9zZWRfY2hhbmdl ZCAoYm9vbCBvYmplY3QpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtYmFja2dyb3VuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ2V0X3R5cGUg KCkiKV0KK0BAIC0xODAsNyArMTczLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0 YXRpYyB2b2lkIHJlZnJlc2hfYWxsICgpOworIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kIChHTGli LkZpbGUgZmlsZTEsIEdMaWIuRmlsZSBmaWxlMiwgZG91YmxlIGJsZW5kX2ZhY3RvciwgR0Rlc2t0 b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1 dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlIGZp bGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRf ZmlsZSAoR0xpYi5GaWxlPyBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOwor IAkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50IChHRGVza3RvcC5CYWNrZ3JvdW5kU2hhZGluZyBz aGFkaW5nX2RpcmVjdGlvbiwgQ2x1dHRlci5Db2xvciBjb2xvciwgQ2x1dHRlci5Db2xvciBzZWNv bmRfY29sb3IpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgTWV0YS5EaXNwbGF5 IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CitAQCAtMTkwLDkgKzE4Mywx OCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBD bHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRl ci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlwdWJsaWMg QmFja2dyb3VuZEFjdG9yIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgaW50IG1vbml0b3IpOworKwkJ W05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7 IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1Ymxp YyBpbnQgbW9uaXRvciB7IGdldDsgY29uc3RydWN0OyB9CisrCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWNvbnRlbnQuaCIsIHR5cGVfaWQgPSAi bWV0YV9iYWNrZ3JvdW5kX2NvbnRlbnRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEJh Y2tncm91bmRDb250ZW50IDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CisrCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQmFja2dy b3VuZENvbnRlbnQgKCk7CisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQ29udGVudCBAbmV3IChN ZXRhLkRpc3BsYXkgZGlzcGxheSwgaW50IG1vbml0b3IpOworIAkJcHVibGljIHZvaWQgc2V0X2Jh Y2tncm91bmQgKE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9ncmFkaWVudCAoYm9vbCBlbmFibGVkLCBpbnQgaGVpZ2h0LCBkb3VibGUgdG9uZV9zdGFydCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfbW9uaXRvciAoaW50IG1vbml0b3IpOworIAkJcHVibGljIHZv aWQgc2V0X3ZpZ25ldHRlIChib29sIGVuYWJsZWQsIGRvdWJsZSBicmlnaHRuZXNzLCBkb3VibGUg c2hhcnBuZXNzKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIE1ldGEuQmFja2dy b3VuZCBiYWNrZ3JvdW5kIHsgb3duZWQgZ2V0OyBzZXQ7IH0KK0BAIC0yNzcsMTQgKzI3OSwxNCBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5DdXJzb3JU cmFja2VyIGdldF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJcHVibGlj IHZvaWQgZ2V0X2hvdCAob3V0IGludCB4LCBvdXQgaW50IHkpOworIAkJcHVibGljIHZvaWQgZ2V0 X3BvaW50ZXIgKGludCB4LCBpbnQgeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kcyk7CisrCQlw dWJsaWMgYm9vbCBnZXRfcG9pbnRlcl92aXNpYmxlICgpOworIAkJcHVibGljIHVub3duZWQgQ29n bC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl92aXNp YmxlIChib29sIHZpc2libGUpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0 YS5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHNp Z25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfZGJ1 c19kaXNwbGF5X2NvbmZpZ19za2VsZXRvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg REJ1c0Rpc3BsYXlDb25maWdTa2VsZXRvbiA6IEdMaWIuREJ1c0ludGVyZmFjZVNrZWxldG9uLCBH TGliLkRCdXNJbnRlcmZhY2UgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHJvdGVjdGVkIERCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24gKCk7CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChmbG9hdCB4LCBmbG9hdCB5KTsKKysJCXB1 YmxpYyBzaWduYWwgdm9pZCB2aXNpYmlsaXR5X2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3Bs YXlfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIERpc3BsYXkgOiBHTGliLk9iamVjdCB7 CitAQCAtMzA5LDMyICszMTEsMzkgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGJvb2wg Z2V0X21vbml0b3JfaW5fZnVsbHNjcmVlbiAoaW50IG1vbml0b3IpOworIAkJcHVibGljIGludCBn ZXRfbW9uaXRvcl9pbmRleF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CisgCQlwdWJs aWMgaW50IGdldF9tb25pdG9yX25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0 YS5EaXNwbGF5RGlyZWN0aW9uIGRpcik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X21vbml0b3Jfc2Nh bGUgKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMgKCk7CisgCQlw dWJsaWMgc3RyaW5nIGdldF9wYWRfYWN0aW9uX2xhYmVsIChDbHV0dGVyLklucHV0RGV2aWNlIHBh ZCwgTWV0YS5QYWRBY3Rpb25UeXBlIGFjdGlvbl90eXBlLCB1aW50IGFjdGlvbl9udW1iZXIpOwor IAkJcHVibGljIGludCBnZXRfcHJpbWFyeV9tb25pdG9yICgpOworKwkJcHVibGljIHVub3duZWQg TWV0YS5TZWxlY3Rpb24gZ2V0X3NlbGVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2b2lkIGdldF9zaXpl IChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRh LlNvdW5kUGxheWVyIGdldF9zb3VuZF9wbGF5ZXIgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRh LldpbmRvdyBnZXRfdGFiX2N1cnJlbnQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFj ZSB3b3Jrc3BhY2UpOworIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBnZXRf dGFiX2xpc3QgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZT8gd29ya3NwYWNlKTsK KyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfbmV4dCAoTWV0YS5UYWJMaXN0 IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgTWV0YS5XaW5kb3c/IHdpbmRvdywgYm9v bCBiYWNrd2FyZCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZU1hbmFnZXIgZ2V0 X3dvcmtzcGFjZV9tYW5hZ2VyICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAo c3RyaW5nIGFjY2VsZXJhdG9yKTsKKysJCXB1YmxpYyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0 cmluZyBhY2NlbGVyYXRvciwgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZmxhZ3MpOworIAkJcHVibGlj IGJvb2wgaXNfcG9pbnRlcl9lbXVsYXRpbmdfc2VxdWVuY2UgKENsdXR0ZXIuRXZlbnRTZXF1ZW5j ZT8gc2VxdWVuY2UpOworIAkJcHVibGljIGJvb2wgcmVtb3ZlX2tleWJpbmRpbmcgKHN0cmluZyBu YW1lKTsKKyAJCXB1YmxpYyB2b2lkIHJlcXVlc3RfcGFkX29zZCAoQ2x1dHRlci5JbnB1dERldmlj ZSBwYWQsIGJvb2wgZWRpdGlvbl9tb2RlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jdXJzb3IgKE1l dGEuQ3Vyc29yIGN1cnNvcik7CisrCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9jdXMgKE1ldGEu V2luZG93IHdpbmRvdywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CisgCQlw dWJsaWMgR0xpYi5TTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBzb3J0X3dpbmRvd3NfYnlfc3RhY2tp bmcgKEdMaWIuU0xpc3Q8TWV0YS5XaW5kb3c+IHdpbmRvd3MpOworIAkJcHVibGljIGJvb2wgc3Vw cG9ydHNfZXh0ZW5kZWRfYmFycmllcnMgKCk7CisgCQlwdWJsaWMgdm9pZCB1bmZyZWV6ZV9rZXli b2FyZCAodWludDMyIHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgYm9vbCB1bmdyYWJfYWNjZWxlcmF0 b3IgKHVpbnQgYWN0aW9uX2lkKTsKKyAJCXB1YmxpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAodWlu dDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCB1bnNldF9pbnB1dF9mb2N1cyAodWludDMy IHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVmb3JlICh1aW50 MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cgZm9jdXNfd2lu ZG93IHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVk ICh1aW50IG9iamVjdCwgdWludCBwMCwgdWludCBwMSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg YWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50IG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZSBw MCwgdWludCBwMSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2xvc2luZyAoKTsKKyAJCXB1Ymxp YyBzaWduYWwgdm9pZCBjdXJzb3JfdXBkYXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBn bF92aWRlb19tZW1vcnlfcHVyZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3Bf YmVnaW4gKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBw MSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9lbmQgKE1ldGEuRGlzcGxheSBvYmpl Y3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgaW5fZnVsbHNjcmVlbl9jaGFuZ2VkICgpOworKwkJcHVibGljIHNpZ25hbCBib29sIGluaXRf eHNlcnZlciAoR0xpYi5UYXNrIG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIGJvb2wgbW9kaWZp ZXJzX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBvdmVy bGF5X2tleSAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBwYWRfbW9kZV9zd2l0Y2ggKENsdXR0 ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKK0BAIC0zNDUsNyArMzU0 LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzaXpl X3BvcHVwIChib29sIG9iamVjdCwgTWV0YS5SZWN0YW5nbGUgcDAsIGludCBwMSwgaW50IHAyKTsK KyAJCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc3RhcnRfbWVzc2FnZSAoc3RyaW5nPyBtZXNz YWdlKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBzdGFydHVwX3NlcXVlbmNlX2NoYW5nZWQgKHZvaWQqIG9i amVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2NyZWF0ZWQgKE1ldGEuV2luZG93 IG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2RlbWFuZHNfYXR0ZW50aW9u IChNZXRhLldpbmRvdyBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19lbnRl cmVkX21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsKK0BAIC0zNTQsNiArMzYy LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19j aGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X2Nsb3NpbmcgKCk7 CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfb3BlbmVkICgpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X3NldHVwICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtZG5kLmgiLCB0eXBlX2lkID0gIm1ldGFfZG5kX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBEbmQgOiBHTGliLk9iamVjdCB7CitAQCAtMzYzLDcg KzM3Miw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfbGVh dmUgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX3Bvc2l0aW9uX2NoYW5nZSAoaW50IG9i amVjdCwgaW50IHAwKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisg CXB1YmxpYyBjbGFzcyBGcmFtZSB7CisgCX0KK0BAIC0zNzQsMTMgKzM4MywxMiBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlwdWJsaWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFs X21zZWMsIG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1 YmxpYyB1aW50IGFkZF91c2VyX2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldh dGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1v bml0b3IgZ2V0X2NvcmUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9u aXRvciBnZXRfZm9yX2RldmljZSAoaW50IGRldmljZV9pZCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0 X2lkbGV0aW1lICgpOworIAkJcHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlIHsgb3duZWQgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9r ZXliaW5kaW5ncy5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0 aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCisgCVtDb21wYWN0 XQorIAlwdWJsaWMgY2xhc3MgS2V5QmluZGluZyB7CisgCQlwdWJsaWMgdWludCBnZXRfbWFzayAo KTsKK0BAIC0zOTEsOCArMzk5LDIxIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCVtDQ29kZSAoY25h bWUgPSAibWV0YV9rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIiKV0KKyAJCXB1YmxpYyBz dGF0aWMgYm9vbCBzZXRfY3VzdG9tX2hhbmRsZXIgKHN0cmluZyBuYW1lLCBvd25lZCBNZXRhLktl eUhhbmRsZXJGdW5jPyBoYW5kbGVyKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgiLCB0eXBlX2lkID0gIm1ldGFfbGF1bmNoX2Nv bnRleHRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIExhdW5jaENvbnRleHQgOiBHTGli LkFwcExhdW5jaENvbnRleHQgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorKwkJcHJvdGVjdGVkIExhdW5jaENvbnRleHQgKCk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfdGltZXN0YW1wICh1aW50MzIgdGltZXN0YW1wKTsKKysJCXB1YmxpYyB2b2lkIHNldF93b3Jr c3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KysJCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9 CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyB1aW50IHRpbWVzdGFtcCB7IGdldDsg c2V0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLldvcmtzcGFjZSB3 b3Jrc3BhY2UgeyBvd25lZCBnZXQ7IHNldDsgfQorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfbW9u aXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBNb25p dG9yTWFuYWdlciA6IE1ldGEuREJ1c0Rpc3BsYXlDb25maWdTa2VsZXRvbiwgR0xpYi5EQnVzSW50 ZXJmYWNlLCBHTGliLkRCdXNJbnRlcmZhY2UgeworKwlwdWJsaWMgY2xhc3MgTW9uaXRvck1hbmFn ZXIgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCisgCQlwcm90ZWN0ZWQgTW9uaXRvck1hbmFnZXIgKCk7CisgCQlwdWJsaWMgYm9vbCBj YW5fc3dpdGNoX2NvbmZpZyAoKTsKK0BAIC00MDcsNiArNDI4LDcgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJcHVibGljIHNpZ25hbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBtb25pdG9yc19jaGFuZ2VkX2ludGVybmFsICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lk IHBvd2VyX3NhdmVfbW9kZV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCB0eXBlX2lkID0gIm1ldGFfcGx1Z2luX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQbHVnaW4gOiBHTGliLk9iamVjdCB7 CitAQCAtNDMwLDYgKzQ1Miw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQga2lsbF9zd2l0Y2hfd29ya3NwYWNlICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQga2lsbF93aW5kb3dfZWZmZWN0cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rv cik7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBsb2NhdGVfcG9pbnRl ciAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBtYW5hZ2VyX3NldF9wbHVnaW5fdHlwZSAoR0xp Yi5UeXBlIGd0eXBlKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1h cCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CitAQCAtNDY1LDI2ICs0ODksNTYgQEAgbmFtZXNw YWNlIE1ldGEgeworIAlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzQ29udHJvbGxlciA6IEdMaWIu T2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXByb3RlY3RlZCBSZW1vdGVBY2Nlc3NDb250cm9sbGVyICgpOworKwkJcHVibGljIHZvaWQgaW5o aWJpdF9yZW1vdGVfYWNjZXNzICgpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0X3JlbW90ZV9h Y2Nlc3MgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbmV3X2hhbmRsZSAoTWV0YS5SZW1vdGVB Y2Nlc3NIYW5kbGUgb2JqZWN0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oIiwgdHlwZV9pZCA9ICJtZXRhX3Jl bW90ZV9hY2Nlc3NfaGFuZGxlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBSZW1vdGVB Y2Nlc3NIYW5kbGUgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNzSGFuZGxlICgpOworKwkJ cHVibGljIGJvb2wgZ2V0X2Rpc2FibGVfYW5pbWF0aW9ucyAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgc3RvcCAoKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGJvb2wgaXNf cmVjb3JkaW5nIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzdG9w cGVkICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNz IFNlbGVjdGlvbiA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBTZWxlY3Rpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5 KTsKKysJCXB1YmxpYyBHTGliLkxpc3Q8c3RyaW5nPiBnZXRfbWltZXR5cGVzIChNZXRhLlNlbGVj dGlvblR5cGUgc2VsZWN0aW9uX3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0X293bmVyIChNZXRh LlNlbGVjdGlvblR5cGUgc2VsZWN0aW9uX3R5cGUsIE1ldGEuU2VsZWN0aW9uU291cmNlIG93bmVy KTsKKysJCXB1YmxpYyBhc3luYyBib29sIHRyYW5zZmVyX2FzeW5jIChNZXRhLlNlbGVjdGlvblR5 cGUgc2VsZWN0aW9uX3R5cGUsIHN0cmluZyBtaW1ldHlwZSwgc3NpemVfdCBzaXplLCBHTGliLk91 dHB1dFN0cmVhbSBvdXRwdXQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKysJCXB1YmxpYyB2b2lkIHVuc2V0X293bmVyIChNZXRhLlNlbGVjdGlvblR5 cGUgc2VsZWN0aW9uX3R5cGUsIE1ldGEuU2VsZWN0aW9uU291cmNlIG93bmVyKTsKKysJCXB1Ymxp YyBzaWduYWwgdm9pZCBvd25lcl9jaGFuZ2VkICh1aW50IG9iamVjdCwgTWV0YS5TZWxlY3Rpb25T b3VyY2UgcDApOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fc291cmNlX2dldF90eXBlICgpIildCisrCXB1 YmxpYyBjbGFzcyBTZWxlY3Rpb25Tb3VyY2UgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU2VsZWN0aW9uU291 cmNlICgpOworKwkJcHVibGljIHZpcnR1YWwgR0xpYi5MaXN0PHN0cmluZz4gZ2V0X21pbWV0eXBl cyAoKTsKKysJCXB1YmxpYyBib29sIGlzX2FjdGl2ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGFz eW5jIEdMaWIuSW5wdXRTdHJlYW0gcmVhZF9hc3luYyAoc3RyaW5nIG1pbWV0eXBlLCBHTGliLkNh bmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCBhY3RpdmF0ZWQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBkZWFjdGl2YXRlZCAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0aW9uX3NvdXJjZV9tZW1vcnlfZ2V0 X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFNlbGVjdGlvblNvdXJjZU1lbW9yeSA6IE1ldGEu U2VsZWN0aW9uU291cmNlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlLCB0eXBlID0gIk1ldGFTZWxlY3Rpb25Tb3VyY2UqIildCisrCQlwdWJsaWMgU2VsZWN0aW9u U291cmNlTWVtb3J5IChzdHJpbmcgbWltZXR5cGUsIEdMaWIuQnl0ZXMgY29udGVudCk7CisrCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zZXR0aW5ncy5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgU2V0dGluZ3Mg eworIAkJcHVibGljIGludCBnZXRfZm9udF9kcGkgKCk7CisgCQlwdWJsaWMgaW50IGdldF91aV9z Y2FsaW5nX2ZhY3RvciAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVm IiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0g Im1ldGFfc2hhZG93X3VucmVmIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd19yZWYiLCB0eXBlX2lkID0gIm1l dGFfc2hhZG93X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfdW5y ZWYiKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBTaGFkb3cgeworIAkJcHVibGljIHZv aWQgZ2V0X2JvdW5kcyAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lk dGgsIGludCB3aW5kb3dfaGVpZ2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgYm91bmRzKTsKKy0JCXB1 YmxpYyB2b2lkIHBhaW50IChpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193 aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIHVpbnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8gY2xp cCwgYm9vbCBjbGlwX3N0cmljdGx5KTsKKysJCXB1YmxpYyB2b2lkIHBhaW50IChDb2dsLkZyYW1l YnVmZmVyIGZyYW1lYnVmZmVyLCBpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRv d193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIHVpbnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8g Y2xpcCwgYm9vbCBjbGlwX3N0cmljdGx5KTsKKyAJCXB1YmxpYyBNZXRhLlNoYWRvdyBAcmVmICgp OworIAkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisgCX0KK0BAIC00OTksMjggKzU1Myw3NCBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgi LCB0eXBlX2lkID0gIm1ldGFfc2hhcGVkX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIFNoYXBlZFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENs dXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CisrCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29u dGVudCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlw cm90ZWN0ZWQgU2hhcGVkVGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9p bWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50IGNsaXApOworKwkJcHVibGljIENhaXJvLlN1cmZhY2U/ IGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKyAJCXB1YmxpYyB1bm93bmVk IENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVf bWlwbWFwcyAoYm9vbCBjcmVhdGVfbWlwbWFwcyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbWFza190 ZXh0dXJlIChDb2dsLlRleHR1cmUgbWFza190ZXh0dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9v cGFxdWVfcmVnaW9uIChvd25lZCBDYWlyby5SZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJs aWMgYm9vbCB1cGRhdGVfYXJlYSAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgdHlwZV9pZCA9 ICJtZXRhX3N0YWdlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtc291bmQtcGxheWVyLmgiLCB0eXBlX2lkID0gIm1ldGFfc291bmRfcGxheWVy X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTb3VuZFBsYXllciA6IEdMaWIuT2JqZWN0 IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3Rl Y3RlZCBTb3VuZFBsYXllciAoKTsKKysJCXB1YmxpYyB2b2lkIHBsYXlfZnJvbV9maWxlIChHTGli LkZpbGUgZmlsZSwgc3RyaW5nIGRlc2NyaXB0aW9uLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxs YWJsZSA9IG51bGwpOworKwkJcHVibGljIHZvaWQgcGxheV9mcm9tX3RoZW1lIChzdHJpbmcgbmFt ZSwgc3RyaW5nIGRlc2NyaXB0aW9uLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51 bGwpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc3RhZ2Uu aCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3Mg U3RhZ2UgOiBDbHV0dGVyLlN0YWdlLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJs ZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU3RhZ2UgKCk7Cisg CQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZm9jdXNlZCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIGFjdG9yc19wYWludGVkICgpOworKwl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCIsIHR5 cGVfaWQgPSAibWV0YV9zdGFydHVwX25vdGlmaWNhdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlwdWJs aWMgY2xhc3MgU3RhcnR1cE5vdGlmaWNhdGlvbiA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTdGFydHVwTm90 aWZpY2F0aW9uICgpOworKwkJcHVibGljIE1ldGEuTGF1bmNoQ29udGV4dCBjcmVhdGVfbGF1bmNo ZXIgKCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlz cGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hh bmdlZCAodm9pZCogb2JqZWN0KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9zZXF1ZW5jZV9nZXRfdHlwZSAo KSIpXQorKwlwdWJsaWMgY2xhc3MgU3RhcnR1cFNlcXVlbmNlIDogR0xpYi5PYmplY3QgeworKwkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFN0 YXJ0dXBTZXF1ZW5jZSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYXBwbGljYXRp b25faWQgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfY29tcGxldGVkICgpOworKwkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9pY29uX25hbWUgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2lkICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworKwkJcHVi bGljIHVpbnQ2NCBnZXRfdGltZXN0YW1wICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF93bWNsYXNzICgpOworKwkJcHVibGljIGludCBnZXRfd29ya3NwYWNlICgpOworKwkJcHVibGlj IHN0cmluZyBhcHBsaWNhdGlvbl9pZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3Ry aW5nIGljb25fbmFtZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIGlkIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgY29uc3RydWN0 OyB9CisrCQlwdWJsaWMgdWludDY0IHRpbWVzdGFtcCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlw dWJsaWMgc3RyaW5nIHdtY2xhc3MgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIGludCB3 b3Jrc3BhY2UgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW0hhc0VtaXR0ZXJdCisrCQlwdWJsaWMg c2lnbmFsIHZvaWQgY29tcGxldGUgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvdGhlbWUuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJ cHVibGljIGNsYXNzIFRoZW1lIHsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13YXlsYW5kLWNsaWVudC5oIiwgdHlw ZV9pZCA9ICJtZXRhX3dheWxhbmRfY2xpZW50X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFz cyBXYXlsYW5kQ2xpZW50IDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHVibGljIFdheWxhbmRDbGllbnQgKEdMaWIuU3VicHJv Y2Vzc0xhdW5jaGVyIGxhdW5jaGVyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyB2b2lk IGhpZGVfZnJvbV93aW5kb3dfbGlzdCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyBi b29sIG93bnNfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOworKwkJcHVibGljIHZvaWQgc2hv d19pbl93aW5kb3dfbGlzdCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyBHTGliLlN1 YnByb2Nlc3Mgc3Bhd252IChNZXRhLkRpc3BsYXkgZGlzcGxheSwgW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldIHN0cmluZ1tdIGFyZ3Yp IHRocm93cyBHTGliLkVycm9yOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3dpbmRvdy5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIpXQorIAlw dWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorQEAgLTU0Nyw2ICs2NDcsNyBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90b19jbGll bnRfcmVjdCAoTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdCk7CisgCQlwdWJsaWMgTWV0YS5SZWN0 YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9j bGllbnRfbWFjaGluZSAoKTsKKysJCXB1YmxpYyBNZXRhLldpbmRvd0NsaWVudFR5cGUgZ2V0X2Ns aWVudF90eXBlICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X2NvbXBvc2l0 b3JfcHJpdmF0ZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24g KCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CitAQCAt NTYxLDYgKzY2Miw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfZ3RrX3VuaXF1ZV9idXNfbmFtZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfZ3RrX3dpbmRvd19vYmplY3RfcGF0aCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9pY29uX2dl b21ldHJ5IChvdXQgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CisrCQlwdWJsaWMgdWludDY0IGdldF9p ZCAoKTsKKyAJCXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVyICgpOworIAkJcHVibGlj IE1ldGEuTWF4aW1pemVGbGFncyBnZXRfbWF4aW1pemVkICgpOworIAkJcHVibGljIGludCBnZXRf bW9uaXRvciAoKTsKK0BAIC02MTAsOCArNzEyLDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVi bGljIHZvaWQgbW92ZV9yZXNpemVfZnJhbWUgKGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywg aW50IHJvb3RfeV9udywgaW50IHcsIGludCBoKTsKKyAJCXB1YmxpYyB2b2lkIG1vdmVfdG9fbW9u aXRvciAoaW50IG1vbml0b3IpOworIAkJcHVibGljIHZvaWQgcmFpc2UgKCk7CistCQlwdWJsaWMg Ym9vbCByZXF1ZXN0ZWRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1 ZXN0ZWRfZG9udF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb21w b3NpdG9yX3ByaXZhdGUgKEdMaWIuT2JqZWN0IHByaXYpOworIAkJcHVibGljIHZvaWQgc2V0X2Rl bWFuZHNfYXR0ZW50aW9uICgpOworIAkJcHVibGljIHZvaWQgc2V0X2ljb25fZ2VvbWV0cnkgKE1l dGEuUmVjdGFuZ2xlPyByZWN0KTsKK0BAIC02NzIsMjQgKzc3MiwyNSBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd24gKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgc2l6ZV9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdlZCAoKTsK KysJCXB1YmxpYyBzaWduYWwgdm9pZCB1bm1hbmFnaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIHdvcmtzcGFjZV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtd2luZG93LWFjdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2Fj dG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIu QWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRh aW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKysJcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRv d0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFi bGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFdpbmRvd0FjdG9y ICgpOworKwkJcHVibGljIHZvaWQgZnJlZXplICgpOworKwkJcHVibGljIENhaXJvLlN1cmZhY2U/ IGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKyAJCXB1YmxpYyB1bm93bmVk IE1ldGEuV2luZG93IGdldF9tZXRhX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3hfd2luZG93 ICgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5TaGFwZWRUZXh0dXJlIGdldF90ZXh0dXJlICgp OworIAkJcHVibGljIGJvb2wgaXNfZGVzdHJveWVkICgpOworIAkJcHVibGljIHZvaWQgc3luY192 aXNpYmlsaXR5ICgpOworKwkJcHVibGljIHZvaWQgdGhhdyAoKTsKKyAJCXB1YmxpYyBNZXRhLldp bmRvdyBtZXRhX3dpbmRvdyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9k ZSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGFtYWdlZCAoKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBlZmZlY3RzX2NvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBmaXJzdF9mcmFtZSAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB0aGF3ZWQgKCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGlj IGNsYXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0 dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgewor QEAgLTcyMCw3ICs4MjEsOSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0 YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0b3IpOworIAkJ cHVibGljIGludCBpbmRleCAoKTsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRv dz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChH TGliLlNMaXN0PE1ldGEuU3RydXQ+IHN0cnV0cyk7CisrCQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRp bl9zdHJ1dHMgKEdMaWIuU0xpc3Q8TWV0YS5TdHJ1dD8+IHN0cnV0cyk7CisrCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKysJCXB1YmxpYyBib29sIGFjdGl2ZSB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCisgCQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29y TWV0aG9kXQorQEAgLTczNiwyNyArODM5LDMzIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1Ymxp YyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgpOworIAkJcHVi bGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0 X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93 b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLldv cmtzcGFjZT8gZ2V0X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKyAJCXB1YmxpYyB2 b2lkIG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuRGlzcGxheUNvcm5lciBzdGFydGlu Z19jb3JuZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5z KTsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtz cGFjZSwgdWludDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCByZW9yZGVyX3dvcmtzcGFj ZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBpbnQgbmV3X2luZGV4KTsKKysJCVtOb0FjY2Vz c29yTWV0aG9kXQorKwkJcHVibGljIGludCBsYXlvdXRfY29sdW1ucyB7IGdldDsgfQorKwkJW05v QWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgaW50IGxheW91dF9yb3dzIHsgZ2V0OyB9CisgCQlw dWJsaWMgaW50IG5fd29ya3NwYWNlcyB7IGdldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGFj dGl2ZV93b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5n X2Rlc2t0b3BfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfYWRk ZWQgKGludCBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9yZW1vdmVk IChpbnQgb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2Vfc3dpdGNoZWQg KGludCBvYmplY3QsIGludCBwMCwgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gcDEpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIHdvcmtzcGFjZXNfcmVvcmRlcmVkICgpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEteDExLWRpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0 YV94MTFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgWDExRGlzcGxheSA6 IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBYMTFEaXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQgZm9jdXNfdGhl X25vX2ZvY3VzX3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCBjbGVh cl9zdGFnZV9pbnB1dF9yZWdpb24gKCk7CisgCQlwdWJsaWMgaW50IGdldF9kYW1hZ2VfZXZlbnRf YmFzZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIgKCk7CisgCQlwdWJsaWMg aW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgpOworIAkJcHVibGljIGJvb2wgaGFzX3NoYXBlICgp OworIAkJcHVibGljIHZvaWQgc2V0X2NtX3NlbGVjdGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9pbnB1dF9mb2N1c193aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBmb2N1c19mcmFt ZSwgdWludDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVn aW9uIChYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJCXB1YmxpYyBib29sIHh3aW5kb3dfaXNf YV9ub19mb2N1c193aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiLCB0eXBlX2NuYW1lID0g Ik1ldGFDbG9zZURpYWxvZ0ludGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2df Z2V0X3R5cGUgKCkiKV0KK0BAIC03NzksMjQgKzg4OCwyNCBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCByZXNwb25zZSAoTWV0YS5Jbmhp Yml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgcmVzcG9uc2UpOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEJ1dHRvbkxheW91dCB7CisgCQlbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVm dF9idXR0b25zWzVdOworKwkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiBsZWZ0X2J1 dHRvbnNbNF07CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3 ZWFrIGJvb2wgbGVmdF9idXR0b25zX2hhc19zcGFjZXJbNV07CisrCQlwdWJsaWMgd2VhayBib29s IGxlZnRfYnV0dG9uc19oYXNfc3BhY2VyWzRdOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNb NV07CisrCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNF07 CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wg cmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyWzVdOworKwkJcHVibGljIHdlYWsgYm9vbCByaWdodF9i dXR0b25zX2hhc19zcGFjZXJbNF07CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGlj IHN0cnVjdCBFZGdlIHsKKyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworIAkJcHVibGlj IE1ldGEuU2lkZSBzaWRlX3R5cGU7CisgCQlwdWJsaWMgTWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgRnJhbWVCb3JkZXJz IHsKKyAJCXB1YmxpYyBHdGsuQm9yZGVyIHZpc2libGU7CisgCQlwdWJsaWMgR3RrLkJvcmRlciBp bnZpc2libGU7CitAQCAtODExLDE0ICs5MjAsMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVi bGljIHdlYWsgc3RyaW5nIGxpY2Vuc2U7CisgCQlwdWJsaWMgd2VhayBzdHJpbmcgZGVzY3JpcHRp b247CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4u aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBQbHVn aW5WZXJzaW9uIHsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25fbWFqb3I7CisgCQlwdWJsaWMgdWlu dCB2ZXJzaW9uX21pbm9yOworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNybzsKKyAJCXB1Ymxp YyB1aW50IHZlcnNpb25fYXBpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JveGVzLmgiLCB0eXBlX2lkID0gIm1ldGFfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNvcHlfZnVuY3Rpb24g PSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lk ID0gIm1ldGFfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgUmVjdGFu Z2xlIHsKKyAJCXB1YmxpYyBpbnQgeDsKKyAJCXB1YmxpYyBpbnQgeTsKK0BAIC04MzYsNyArOTQ1 LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChN ZXRhLlJlY3RhbmdsZSByZWN0Mik7CisgCQlwdWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEu UmVjdGFuZ2xlIHJlY3QyKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisgCXB1YmxpYyBzdHJ1Y3QgU2hhZG93UGFyYW1zIHsKKyAJCXB1YmxpYyBpbnQgcmFkaXVzOwor IAkJcHVibGljIGludCB0b3BfZmFkZTsKK0BAIC04NDQsMTIgKzk1MywxMiBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlwdWJsaWMgaW50IHlfb2Zmc2V0OworIAkJcHVibGljIHVpbnQ4IG9wYWNpdHk7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBTdHJ1dCB7CisgCQlw dWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKyAJCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCBjcHJlZml4 ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGly ZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9CQVJSSUVSX0RJUkVDVElPTl8iLCB0eXBlX2lkID0g Im1ldGFfYmFycmllcl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJs aWMgZW51bSBCYXJyaWVyRGlyZWN0aW9uIHsKKyAJCVBPU0lUSVZFX1gsCitAQCAtODU3LDIxICs5 NjYsMjAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJTkVHQVRJVkVfWCwKKyAJCU5FR0FUSVZFX1kK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVm aXggPSAiTUVUQV9CVVRUT05fRlVOQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2J1dHRvbl9mdW5j dGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0 YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gQnV0dG9uRnVu Y3Rpb24geworIAkJTUVOVSwKKyAJCU1JTklNSVpFLAorIAkJTUFYSU1JWkUsCisgCQlDTE9TRSwK Ky0JCUFQUE1FTlUsCisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCIsIGNwcmVmaXggPSAiTUVUQV9DTE9TRV9ESUFMT0df UkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJl Zml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9jbG9z ZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gQ2xvc2VEaWFs b2dSZXNwb25zZSB7CisgCQlXQUlULAorIAkJRk9SQ0VfQ0xPU0UKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLmgiLCBjcHJlZml4ID0gIk1FVEFfQ09N UF9FRkZFQ1RfIiwgdHlwZV9pZCA9ICJtZXRhX2NvbXBfZWZmZWN0X2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9DT01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGVudW0gQ29tcEVmZmVjdCB7CisgCQlDUkVBVEUsCisgCQlVTk1JTklNSVpF LAorQEAgLTg3OSw3ICs5ODcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlNSU5JTUlaRSwKKyAJ CU5PTkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNwcmVmaXggPSAiTUVUQV9DVVJTT1JfIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl9nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJl Zml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGVudW0gQ3Vyc29yIHsKKyAJCU5PTkUsCisgCQlERUZBVUxULAorQEAgLTkw MCw5ICsxMDA4LDEwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCVBPSU5USU5HX0hBTkQsCisgCQlD Uk9TU0hBSVIsCisgCQlJQkVBTSwKKysJCUJMQU5LLAorIAkJTEFTVAorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18i LCB0eXBlX2lkID0gIm1ldGFfZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RFQlVHXyIs IHR5cGVfaWQgPSAibWV0YV9kZWJ1Z190b3BpY19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisg CXB1YmxpYyBlbnVtIERlYnVnVG9waWMgeworIAkJVkVSQk9TRSwKK0BAIC05MjgsOSArMTAzNywx MCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlTSEFQRVMsCisgCQlDT01QT1NJVE9SLAorIAkJRURH RV9SRVNJU1RBTkNFLAorLQkJREJVUworKwkJREJVUywKKysJCUlOUFVUCisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRElS RUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJ UkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCVtG bGFnc10KKyAJcHVibGljIGVudW0gRGlyZWN0aW9uIHsKKyAJCUxFRlQsCitAQCAtOTQyLDIxICsx MDUyLDIxIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUhPUklaT05UQUwsCisgCQlWRVJUSUNBTAor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVm aXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2Nvcm5lcl9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj cHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJf Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gRGlzcGxheUNvcm5lciB7CisgCQlUT1BMRUZU LAorIAkJVE9QUklHSFQsCisgCQlCT1RUT01MRUZULAorIAkJQk9UVE9NUklHSFQKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1F VEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9kaXJlY3Rpb25fZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZp eCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dl dF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIERpc3BsYXlEaXJlY3Rpb24geworIAkJVVAsCisg CQlET1dOLAorIAkJTEVGVCwKKyAJCVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYm94ZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAi bWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0VER0VfIiwgdHlwZV9pZCA9ICJtZXRh X2VkZ2VfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBFZGdlVHlwZSB7CisgCQlX SU5ET1csCisgCQlNT05JVE9SLAorQEAgLTk2NywxMiArMTA3NywxMSBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlTVUNDRVNTLAorIAkJRVJST1IKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0g Im1ldGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAi bWV0YV9mcmFtZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVt IEZyYW1lRmxhZ3MgeworIAkJQUxMT1dTX0RFTEVURSwKKyAJCUFMTE9XU19NRU5VLAorLQkJQUxM T1dTX0FQUE1FTlUsCisgCQlBTExPV1NfTUlOSU1JWkUsCisgCQlBTExPV1NfTUFYSU1JWkUsCisg CQlBTExPV1NfVkVSVElDQUxfUkVTSVpFLAorQEAgLTk4NCwxMiArMTA5MywxMSBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlBTExPV1NfU0hBREUsCisgCQlBTExPV1NfTU9WRSwKKyAJCUZVTExTQ1JF RU4sCistCQlJU19GTEFTSElORywKKyAJCUFCT1ZFLAorIAkJVElMRURfTEVGVCwKKyAJCVRJTEVE X1JJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgi LCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlw ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVf dHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBGcmFtZVR5cGUgeworIAkJTk9STUFM LAorIAkJRElBTE9HLAorQEAgLTEwMDEsNyArMTEwOSw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJ CUxBU1Q7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dS QUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGlj IGVudW0gR3JhYk9wIHsKKyAJCU5PTkUsCisgCQlXSU5ET1dfQkFTRSwKK0BAIC0xMDI4LDEyICsx MTM2LDI2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUtFWUJPQVJEX1JFU0laSU5HX1NFLAorIAkJ S0VZQk9BUkRfUkVTSVpJTkdfVworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgiLCBjcHJlZml4ID0gIk1FVEFfSU5I SUJJVF9TSE9SVENVVFNfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9pbmhpYml0 X3Nob3J0Y3V0c19kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQVZJVFlfIiwg dHlwZV9pZCA9ICJtZXRhX2dyYXZpdHlfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gR3Jh dml0eSB7CisrCQlOT05FLAorKwkJTk9SVEhfV0VTVCwKKysJCU5PUlRILAorKwkJTk9SVEhfRUFT VCwKKysJCVdFU1QsCisrCQlDRU5URVIsCisrCQlFQVNULAorKwkJU09VVEhfV0VTVCwKKysJCVNP VVRILAorKwkJU09VVEhfRUFTVCwKKysJCVNUQVRJQworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9JTkhJQklUX1NIT1JUQ1VU U19ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2Rp YWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBJbmhpYml0U2hvcnRj dXRzRGlhbG9nUmVzcG9uc2UgeworIAkJQUxMT1csCisgCQlERU5ZCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5E SU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBl ICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVm aXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRp bmdfYWN0aW9uX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24g eworIAkJTk9ORSwKKyAJCVdPUktTUEFDRV8xLAorQEAgLTExMjIsMjIgKzEyNDQsMjUgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAkJTU9WRV9UT19TSURFX1csCisgCQlNT1ZFX1RPX0NFTlRFUiwKKyAJ CU9WRVJMQVlfS0VZLAorKwkJTE9DQVRFX1BPSU5URVJfS0VZLAorIAkJSVNPX05FWFRfR1JPVVAs CisgCQlBTFdBWVNfT05fVE9QLAorIAkJU1dJVENIX01PTklUT1IsCisgCQlST1RBVEVfTU9OSVRP UiwKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlf YmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9 ICJtZXRhX2tleV9iaW5kaW5nX2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVi bGljIGVudW0gS2V5QmluZGluZ0ZsYWdzIHsKKyAJCU5PTkUsCisgCQlQRVJfV0lORE9XLAorIAkJ QlVJTFRJTiwKKyAJCUlTX1JFVkVSU0VELAorLQkJTk9OX01BU0tBQkxFCisrCQlOT05fTUFTS0FC TEUsCisrCQlJR05PUkVfQVVUT1JFUEVBVCwKKysJCU5PX0FVVE9fR1JBQgorIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRF Ul8iLCB0eXBlX2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFURVJf IiwgdHlwZV9pZCA9ICJtZXRhX2xhdGVyX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVu dW0gTGF0ZXJUeXBlIHsKKyAJCVJFU0laRSwKKyAJCUNBTENfU0hPV0lORywKK0BAIC0xMTQ2LDI1 ICsxMjcxLDI1IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUJFRk9SRV9SRURSQVcsCisgCQlJRExF CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZp eCA9ICJNRVRBX0xPQ0FMRV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJl Y3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xPQ0FMRV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJt ZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTG9jYWxl RGlyZWN0aW9uIHsKKyAJCUxUUiwKKyAJCVJUTAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVf aWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTUFYSU1JWkVfIiwg dHlwZV9pZCA9ICJtZXRhX21heGltaXplX2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10K KyAJcHVibGljIGVudW0gTWF4aW1pemVGbGFncyB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElD QUwsCisgCQlCT1RICisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1wbHVnaW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT0RBTF8iLCB0eXBlX2lkID0gIm1ldGFfbW9k YWxfb3B0aW9uc19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21v ZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBNb2Rh bE9wdGlvbnMgeworIAkJUE9JTlRFUl9BTFJFQURZX0dSQUJCRUQsCisgCQlLRVlCT0FSRF9BTFJF QURZX0dSQUJCRUQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oIiwgY3ByZWZpeCA9ICJNRVRBX01PTklUT1JfU1dJVENIX0NPTkZJ R18iLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9zd2l0Y2hfY29uZmlnX3R5cGVfZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZp eCA9ICJNRVRBX01PTklUT1JfU1dJVENIX0NPTkZJR18iLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRv cl9zd2l0Y2hfY29uZmlnX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTW9uaXRv clN3aXRjaENvbmZpZ1R5cGUgeworIAkJQUxMX01JUlJPUiwKKyAJCUFMTF9MSU5FQVIsCitAQCAt MTE3Miw3ICsxMjk3LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJQlVJTFRJTiwKKyAJCVVOS05P V04KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNw cmVmaXggPSAiTUVUQV9NT1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX01PVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbW90aW9uX2RpcmVj dGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBNb3Rpb25EaXJlY3Rpb24geworIAkJ VVAsCisgCQlET1dOLAorQEAgLTExODMsNyArMTMwOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJ CURPV05fTEVGVCwKKyAJCURPV05fUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfUEFEX0FDVElPTl8iLCB0eXBl X2lkID0gIm1ldGFfcGFkX2FjdGlvbl90eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9QQURfQUNUSU9O XyIsIHR5cGVfaWQgPSAibWV0YV9wYWRfYWN0aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVi bGljIGVudW0gUGFkQWN0aW9uVHlwZSB7CisgCQlCVVRUT04sCisgCQlSSU5HLAorQEAgLTEyMjMs MzAgKzEzNDgsMzkgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJRFJBR0dBQkxFX0JPUkRFUl9XSURU SCwKKyAJCUFVVE9fTUFYSU1JWkUsCisgCQlDRU5URVJfTkVXX1dJTkRPV1MsCistCQlEUkFHX1RI UkVTSE9MRDsKKysJCURSQUdfVEhSRVNIT0xELAorKwkJTE9DQVRFX1BPSU5URVIsCisrCQlDSEVD S19BTElWRV9USU1FT1VUOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oIiwgY3ByZWZpeCA9ICJNRVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFk b3dfbW9kZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfIiwgdHlwZV9pZCA9ICJtZXRhX3NlbGVjdGlvbl90 eXBlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFNlbGVjdGlvblR5cGUgeworKwkJU0VM RUNUSU9OX1BSSU1BUlksCisrCQlTRUxFQ1RJT05fQ0xJUEJPQVJELAorKwkJU0VMRUNUSU9OX0RO RCwKKysJCU5fU0VMRUNUSU9OX1RZUEVTCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQg PSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTaGFkb3dN b2RlIHsKKyAJCUFVVE8sCisgCQlGT1JDRURfT0ZGLAorIAkJRk9SQ0VEX09OCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFf U0lERV8iLCB0eXBlX2lkID0gIm1ldGFfc2lkZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfU0lERV8iLCB0 eXBlX2lkID0gIm1ldGFfc2lkZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTaWRlIHsK KyAJCUxFRlQsCisgCQlSSUdIVCwKKyAJCVRPUCwKKyAJCUJPVFRPTQorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9T SVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJN RVRBX1NJWkVfQ0hBTkdFXyIsIHR5cGVfaWQgPSAibWV0YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAo KSIpXQorIAlwdWJsaWMgZW51bSBTaXplQ2hhbmdlIHsKKyAJCU1BWElNSVpFLAorIAkJVU5NQVhJ TUlaRSwKKyAJCUZVTExTQ1JFRU4sCisgCQlVTkZVTExTQ1JFRU4KKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8i LCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBWUVSXyIs IHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51 bSBTdGFja0xheWVyIHsKKyAJCURFU0tUT1AsCisgCQlCT1RUT00sCitAQCAtMTI1NiwxOSArMTM5 MCwxOSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlPVkVSUklERV9SRURJUkVDVCwKKyAJCUxBU1QK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJl Zml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBl ICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVm aXggPSAiTUVUQV9UQUJfTElTVF8iLCB0eXBlX2lkID0gIm1ldGFfdGFiX2xpc3RfZ2V0X3R5cGUg KCkiKV0KKyAJcHVibGljIGVudW0gVGFiTGlzdCB7CisgCQlOT1JNQUwsCisgCQlET0NLUywKKyAJ CUdST1VQLAorIAkJTk9STUFMX0FMTAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfU0hPV18iLCB0eXBlX2lkID0g Im1ldGFfdGFiX3Nob3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9p ZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gVGFi U2hvd1R5cGUgeworIAkJSUNPTiwKKyAJCUlOU1RBTlRMWQorIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwg dHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRV QUxfIiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKyAJ W0ZsYWdzXQorIAlwdWJsaWMgZW51bSBWaXJ0dWFsTW9kaWZpZXIgeworIAkJU0hJRlRfTUFTSywK K0BAIC0xMjgyLDE3ICsxNDE2LDE3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU1PRDRfTUFTSywK KyAJCU1PRDVfTUFTSworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dp bmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19DTElFTlRfVFlQRV8iLCB0eXBlX2lkID0g Im1ldGFfd2luZG93X2NsaWVudF90eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfQ0xJRU5U X1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19jbGllbnRfdHlwZV9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgZW51bSBXaW5kb3dDbGllbnRUeXBlIHsKKyAJCVdBWUxBTkQsCisgCQlYMTEK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVm aXggPSAiTUVUQV9XSU5ET1dfTUVOVV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X21lbnVfdHlw ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRv d19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gV2luZG93TWVudVR5cGUg eworIAkJV00sCisgCQlBUFAKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dp bmRvd190eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dp bmRvd190eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFdpbmRvd1R5cGUgeworIAkJ Tk9STUFMLAorIAkJREVTS1RPUCwKK0BAIC0xMzExLDUxICsxNDQ1LDU3IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCURORCwKKyAJCU9WRVJSSURFX09USEVSCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIsIGluc3RhbmNlX3BvcyA9IDIu OSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNl X3BvcyA9IDIuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIElkbGVNb25pdG9yV2F0Y2hGdW5j IChNZXRhLklkbGVNb25pdG9yIG1vbml0b3IsIHVpbnQgd2F0Y2hfaWQpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0g NC45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgS2V5SGFuZGxlckZ1bmMgKE1ldGEuRGlzcGxh eSBkaXNwbGF5LCBNZXRhLldpbmRvdyB3aW5kb3csIFtDQ29kZSAodHlwZSA9ICJDbHV0dGVyS2V5 RXZlbnQqIildIENsdXR0ZXIuS2V5RXZlbnQ/IGV2ZW50LCBNZXRhLktleUJpbmRpbmcgYmluZGlu Zyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5j ZV9wb3MgPSAxLjkpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBQcmVmc0NoYW5n ZWRGdW5jIChNZXRhLlByZWZlcmVuY2UgcHJlZik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3dpbmRvdy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVi bGljIGRlbGVnYXRlIGJvb2wgV2luZG93Rm9yZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAi TUVUQV9DVVJSRU5UX1RJTUUiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAiTUVUQV9DVVJSRU5UX1RJTUUiKV0KKyAJcHVibGljIGNvbnN0IGlu dCBDVVJSRU5UX1RJTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFNRSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRfSUNPTl9O QU1FIildCisgCXB1YmxpYyBjb25zdCBzdHJpbmcgREVGQVVMVF9JQ09OX05BTUU7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09O X0hFSUdIVCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj bmFtZSA9ICJNRVRBX0lDT05fSEVJR0hUIildCisgCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlH SFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUg PSAiTUVUQV9JQ09OX1dJRFRIIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQorIAlwdWJsaWMgY29uc3QgaW50 IElDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5o IiwgY25hbWUgPSAiTUVUQV9NQUpPUl9WRVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUFKT1JfVkVSU0lPTiIpXQorIAlw dWJsaWMgY29uc3QgaW50IE1BSk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSUNST19WRVJTSU9OIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlD Uk9fVkVSU0lPTiIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5J X0lDT05fSEVJR0hUIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorIAlwdWJsaWMgY29uc3QgaW50 IE1JTklfSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lE VEgiKV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fV0lEVEg7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5PUl9WRVJT SU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1JTk9SX1ZFUlNJ T047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUg PSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKyAJ cHVibGljIGNvbnN0IGludCBQTFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9CRUZPUkVf UkVEUkFXIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorIAlwdWJsaWMgY29uc3QgaW50 IFBSSU9SSVRZX0JFRk9SRV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9Q UklPUklUWV9QUkVGU19OT1RJRlkiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9QUkVG U19OT1RJRlk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg Y25hbWUgPSAiTUVUQV9QUklPUklUWV9SRURSQVciKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRURSQVciKV0KKyAJ cHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVU QV9QUklPUklUWV9SRVNJWkUiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJWkU7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAi TUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRf SUQiKV0KKyAJcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9W SVJUVUFMX0NPUkVfUE9JTlRFUl9JRCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCisg CXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgYWN0 aXZhdGVfc2Vzc2lvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfY2x1dHRlcl9kZWJ1Z19mbGFncyAoQ2x1 dHRlci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3MsIENsdXR0ZXIuRHJhd0RlYnVnRmxhZyBkcmF3X2Zs YWdzLCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlja19mbGFncyk7CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRl cl9pbml0ICgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K KyAJcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHN0 cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVk IEdMaWIuT3B0aW9uQ29udGV4dCBnZXRfb3B0aW9uX2NvbnRleHQgKCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0 X3JlcGxhY2VfY3VycmVudF93bSAoKTsKK0BAIC0xMzY4LDYgKzE1MDgsOCBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlw dWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHJl bW92ZV9jbHV0dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywg Q2x1dHRlci5EcmF3RGVidWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBw aWNrX2ZsYWdzKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIild CisgCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBp bnQgcnVuICgpOworQEAgLTEzNzUsNiArMTUxNywxNCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfZ25vbWVfd21fa2V5YmluZGluZ3MgKHN0cmluZyB3bV9rZXli aW5kaW5ncyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQor IAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3dtX25hbWUgKHN0cmluZyB3bV9uYW1lKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS14MTEtZGlzcGxheS5oIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGlj IHZvaWQgdGVzdF9pbml0ICgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIHgxMV9pbml0X2dka19kaXNwbGF5ICgpIHRo cm93cyBHTGliLkVycm9yOworIH0KKytbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibGlibXV0 dGVyLTctY3VzdG9tLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGJl Zm9yZV9mcmFtZSB7CisrfQorK1tDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJsaWJtdXR0ZXIt Ny1jdXN0b20uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorK3B1YmxpYyBzdHJ1Y3QgZnJhbWUg eworK30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItY29nbC00LnZhcGkgdmFwaS9saWJtdXR0 ZXItY29nbC00LnZhcGkKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggN2RjMTg0NzYu LjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXItY29nbC00LnZhcGkKKysrKyAvZGV2L251bGwK K0BAIC0xLDEyNzIgKzAsMCBAQAorLS8qIGxpYm11dHRlci1jb2dsLTQudmFwaSBnZW5lcmF0ZWQg YnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKy0KKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ29n bCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNl X2NwcmVmaXggPSAiY29nbF8iKV0KKy1uYW1lc3BhY2UgQ29nbCB7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0 eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQml0bWFw ICgpOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgQml0bWFwLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJv d3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg Q29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2hlaWdodCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF9yb3dzdHJpZGUgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfc2l6ZV9mcm9t X2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgb3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3dpZHRoICgp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEV1bGVyIHsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlw ZV9pZCA9ICJjb2dsX2ZyYW1lX2Nsb3N1cmVfZ2V0X2d0eXBlICgpIildCistCVtDb21wYWN0XQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQlwdWJsaWMgY2xhc3MgRnJhbWVDbG9zdXJl IHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJjb2dsX21hdGVyaWFsX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQor LQlwdWJsaWMgY2xhc3MgTWF0ZXJpYWwgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBNYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wuTWF0ZXJpYWxMYXllckNhbGxiYWNr IGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVu dCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29n bC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg Z2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29v cmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVi bGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXll cl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFw TW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9t b2RlX3QgKGludCBsYXllcl9pbmRleCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q29n bC5NYXRlcmlhbExheWVyPiBnZXRfbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBm bG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxv YXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBn ZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSBAcmVmIChDb2dsLkhhbmRsZSBtYXRlcmlh bCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9u IChDb2dsLk1hdGVyaWFsQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5j ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wu Q29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Ft YmllbnRfYW5kX2RpZmZ1c2UgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJv d3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYmxl bmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQg Z3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJs dWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf ZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhh bmRsZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNl dF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRo cm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9s YXllcl9jb21iaW5lX2NvbnN0YW50IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQ29sb3IgY29uc3Rh bnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9maWx0ZXJzIChpbnQgbGF5ZXJfaW5k ZXgsIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgbWluX2ZpbHRlciwgQ29nbC5NYXRlcmlhbEZpbHRlciBt YWdfZmlsdGVyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0cml4IChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuTWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQg bGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXll cl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBD b2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2Rl IG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXpl IChmbG9hdCBwb2ludF9zaXplKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJv Z3JhbSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENv Z2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1Ymxp YyBjbGFzcyBNYXRlcmlhbExheWVyIHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRl ciBnZXRfbWFnX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBn ZXRfbWluX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3Jh cF9tb2RlX3AgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxX cmFwTW9kZSBnZXRfd3JhcF9tb2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVj dF9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT2Jq ZWN0ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IHR5cGVfaWQgPSAiY29nbF9vZmZzY3JlZW5fZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBjbGFz cyBPZmZzY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT2Zmc2NyZWVu ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOwor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1Ymxp YyBPZmZzY3JlZW4udG9fdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIHVucmVmICh2b2lkKiBvZmZzY3JlZW4pOworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIE9mZnNjcmVlbi53aXRoX3Rl eHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5fZ2V0X2d0eXBl ICgpIildCistCXB1YmxpYyBjbGFzcyBPbnNjcmVlbiA6IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1l YnVmZmVyIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBPbnNjcmVlbiAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCist CQlwdWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtD Q29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxi YWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLk9uc2NyZWVuUmVzaXpl Q2xvc3VyZSBhZGRfcmVzaXplX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3Mg PSAxLjUpXSBDb2dsLk9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRh dGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdWludCBhZGRfc3dhcF9idWZmZXJzX2NhbGxiYWNrIChDb2dsLlN3YXBCdWZmZXJzTm90aWZ5 IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2JhY2tlbmRfc2V0X3Np emVfQ0xVVFRFUiAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE0IildCistCQlwdWJsaWMgaW50IGdldF9idWZmZXJfYWdlICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Jl c2l6YWJsZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IGhpZGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQg cmVtb3ZlX2RpcnR5X2NhbGxiYWNrIChDb2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGNsb3N1cmUp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9m cmFtZV9jYWxsYmFjayAoQ29nbC5GcmFtZUNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfcmVzaXplX2NhbGxiYWNrIChD b2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgcmVtb3ZlX3N3YXBfYnVmZmVyc19jYWxsYmFjayAodWludCBpZCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxl IChDb2dsLkJvb2wgcmVzaXphYmxlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNob3cgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgc3dhcF9idWZmZXJzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYi KV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3Rhbmds ZXMsIGludCBuX3JlY3RhbmdsZXMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChpbnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xl cyk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9kaXJ0eV9jbG9zdXJlX2dldF9ndHlwZSAoKSIp XQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIGNs YXNzIE9uc2NyZWVuRGlydHlDbG9zdXJlIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX29uc2NyZWVuX3Jlc2l6 ZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQlwdWJsaWMgY2xhc3MgT25zY3JlZW5SZXNpemVDbG9zdXJlIHsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNv Z2xfcGlwZWxpbmVfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENv Z2wuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBQaXBlbGluZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lIGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2xheWVyIChDb2dsLlBpcGVsaW5lTGF5ZXJD YWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgQ29nbC5QaXBlbGluZUFscGhhRnVuYyBnZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfdGVz dF9yZWZlcmVuY2UgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yTWFzayBnZXRfY29sb3Jf bWFzayAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLlBp cGVsaW5lQ3VsbEZhY2VNb2RlIGdldF9jdWxsX2ZhY2VfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRp ZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyBDb2dsLldpbmRpbmcgZ2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZp bHRlciBnZXRfbGF5ZXJfbWFnX2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRfbGF5 ZXJfbWluX2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNf ZW5hYmxlZCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBs YXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29n bC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5l V3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBn ZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9p bnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9h dCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3VuaWZvcm1fbG9j YXRpb24gKHN0cmluZyB1bmlmb3JtX25hbWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2xheWVyIChpbnQgbGF5 ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuUGlwZWxpbmVBbHBoYUZ1bmMgYWxwaGFfZnVu YywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2Rp ZmZ1c2UgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIENvZ2wuQm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93 cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5D b2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQg YWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBo YSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29s b3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY3VsbF9mYWNlX21vZGUgKENvZ2wuUGlwZWxp bmVDdWxsRmFjZU1vZGUgY3VsbF9mYWNlX21vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24g KENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoQ29nbC5XaW5kaW5nIGZyb250X3dp bmRpbmcpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9v bCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5n KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sYXllcl9jb21iaW5lX2NvbnN0YW50IChpbnQgbGF5ZXJfaW5kZXgsIENv Z2wuQ29sb3IgY29uc3RhbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sYXllcl9maWx0ZXJzIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxp bmVGaWx0ZXIgbWluX2ZpbHRlciwgQ29nbC5QaXBlbGluZUZpbHRlciBtYWdfZmlsdGVyKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0 cml4IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX251bGxfdGV4dHVyZSAo aW50IGxheWVyX2luZGV4LCBDb2dsLlRleHR1cmVUeXBlIHRleHR1cmVfdHlwZSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9wb2lu dF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Cb29sIGVuYWJs ZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfdGV4dHVyZSAo aW50IGxheWVyX2luZGV4LCBDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxh eWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBs YXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQg bGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRf c2l6ZSAoQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9p bnRfc2l6ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3Jt XzFmIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgZmxvYXQgdmFsdWUpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGludCB1bmlmb3Jt X2xvY2F0aW9uLCBpbnQgdmFsdWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3VuaWZvcm1fZmxvYXQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQg bl9jb21wb25lbnRzLCBpbnQgY291bnQsIGZsb2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX2ludCAoaW50IHVuaWZvcm1f bG9jYXRpb24sIGludCBuX2NvbXBvbmVudHMsIGludCBjb3VudCwgaW50IHZhbHVlKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX21hdHJp eCAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCBkaW1lbnNpb25zLCBpbnQgY291bnQsIENvZ2wu Qm9vbCB0cmFuc3Bvc2UsIGZsb2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0p OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFF1YXRlcm5pb24g eworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVf aWQgPSAiY29nbF9mcmFtZWJ1ZmZlcl9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGljIGludGVyZmFj ZSBGcmFtZWJ1ZmZlciA6IENvZ2wuT2JqZWN0IHsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBjbGVhciAodWxvbmcg YnVmZmVycywgQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgdm9pZCBjbGVhcjRmICh1bG9uZyBidWZmZXJzLCBmbG9hdCByZWQsIGZsb2F0 IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgdm9pZCBkaXNjYXJkX2J1ZmZlcnMgKHVsb25nIGJ1ZmZlcnMpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfbXVsdGl0 ZXh0dXJlZF9yZWN0YW5nbGUgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGZsb2F0IHhfMSwgZmxv YXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50IHRleF9jb29yZHNfbGVuKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X3JlY3RhbmdsZSAoQ29nbC5Q aXBlbGluZSBwaXBlbGluZSwgZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQg eV8yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3 X3JlY3RhbmdsZXMgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBmbG9hdFtdIGNvb3JkaW5hdGVzLCB1aW50IG5fcmVjdGFuZ2xlcyk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd190ZXh0dXJlZF9y ZWN0YW5nbGUgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBm bG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgc18xLCBmbG9hdCB0XzEsIGZsb2F0IHNfMiwgZmxv YXQgdF8yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBk cmF3X3RleHR1cmVkX3JlY3RhbmdsZXMgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIGNvb3JkaW5hdGVzLCB1aW50IG5fcmVjdGFu Z2xlcyk7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBmaW5pc2ggKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVm dCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZs b2F0IHpfZmFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQg Z2V0X2FscGhhX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgaW50IGdldF9ibHVlX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgaW50IGdldF9kZXB0aF9iaXRzICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBn ZXRfZGVwdGhfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlw dWJsaWMgQ29nbC5Cb29sIGdldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfd3JpdGVf ZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2ds LkJvb2wgZ2V0X2RpdGhlcl9lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIGludCBnZXRfZ3JlZW5fYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBDb2dsLkJv b2wgZ2V0X2lzX3N0ZXJlbyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuTWF0cml4IGdldF9wcm9qZWN0aW9uX21h dHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0 X3JlZF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBp bnQgZ2V0X3NhbXBsZXNfcGVyX3BpeGVsICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAi KV0KKy0JCXB1YmxpYyBDb2dsLlN0ZXJlb01vZGUgZ2V0X3N0ZXJlb19tb2RlICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3ZpZXdwb3J0NGZ2IChb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gb3V0IHVub3duZWQgZmxvYXQgdmlld3BvcnRb NF0pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92 aWV3cG9ydF9oZWlnaHQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgZmxvYXQgZ2V0X3ZpZXdwb3J0X3dpZHRoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9ydF94ICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9ydF95ICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfd2lkdGggKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgaWRlbnRpdHlfbWF0cml4 ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9ydGhv Z3JhcGhpYyAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9h dCBuZWFyLCBmbG9hdCBmYXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6 X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgdm9pZCBwb3BfY2xpcCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCBwb3BfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfcmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwg ZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgQ29nbC5Cb29sIHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwg aW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVs c19pbnRvX2JpdG1hcCAoaW50IHgsIGludCB5LCBDb2dsLlJlYWRQaXhlbHNGbGFncyBzb3VyY2Us IENvZ2wuQml0bWFwIGJpdG1hcCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlw dWJsaWMgdm9pZCByZXNvbHZlX3NhbXBsZXMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCQlwdWJsaWMgdm9pZCByZXNvbHZlX3NhbXBsZXNfcmVnaW9uIChpbnQgeCwgaW50IHks IGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3Rh dGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0 ZXJuaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBz Y2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29s b3JfbWFzayk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2RlcHRoX3RleHR1cmVfZW5hYmxlZCAoQ29nbC5Cb29sIGVuYWJsZWQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFi bGVkIChDb2dsLkJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKENvZ2wuQm9vbCBk aXRoZXJfZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0 cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3NhbXBsZXNfcGVyX3BpeGVsIChpbnQgc2FtcGxlc19wZXJfcGl4 ZWwpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9z dGVyZW9fbW9kZSAoQ29nbC5TdGVyZW9Nb2RlIHN0ZXJlb19tb2RlKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF92aWV3cG9ydCAoZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAo ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfZ2V0X2d0eXBlICgp IildCistCXB1YmxpYyBpbnRlcmZhY2UgVGV4dHVyZSA6IENvZ2wuT2JqZWN0IHsKKy0JCXB1Ymxp YyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgc3Rh dGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4Iild CistCQlwdWJsaWMgQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBnZXRfY29tcG9uZW50cyAoKTsKKy0J CXB1YmxpYyBpbnQgZ2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0 cmlkZSwgdWludDggZGF0YSk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9nbF90ZXh0dXJlIChv dXQgdWludCBvdXRfZ2xfaGFuZGxlLCBvdXQgdWludCBvdXRfZ2xfdGFyZ2V0KTsKKy0JCXB1Ymxp YyB1aW50IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tYXhfd2FzdGUgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcHJl bXVsdGlwbGllZCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBD b2dsLkJvb2wgaXNfc2xpY2VkICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgi LCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9t X2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENv Z2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwg aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGlj IHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRo cm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29n bC5UZXh0dXJlIG5ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3Rhcmdl dCwgdWludCB3aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rf d2FzdGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX3N1Yl90ZXh0dXJlIChpbnQgc3ViX3gsIGludCBz dWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld193aXRoX3NpemUgKHVpbnQgd2lkdGgs IHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBp bnRlcm5hbF9mb3JtYXQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9jb21wb25lbnRzIChDb2dsLlRleHR1cmVDb21wb25lbnRzIGNvbXBvbmVudHMp OworLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQs IGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEsIGludCBsZXZlbCkgdGhyb3dzIEdMaWIuRXJyb3I7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3ByZW11 bHRpcGxpZWQgKENvZ2wuQm9vbCBwcmVtdWx0aXBsaWVkKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wg c2V0X3JlZ2lvbiAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1 aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENv Z2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb25f ZnJvbV9iaXRtYXAgKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwg dWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgQ29nbC5CaXRtYXAgYml0bWFwKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1NpbXBs ZVR5cGVdCistCXB1YmxpYyBzdHJ1Y3QgQW5nbGUgOiBpbnQzMiB7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtTaW1wbGVUeXBlXQorLQlwdWJs aWMgc3RydWN0IEJvb2wgOiBpbnQgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9jb2xvcl9nZXRfZ3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RydWN0IENvbG9yIHsKKy0JCXB1 YmxpYyBDb2dsLkNvbG9yPyBjb3B5ICgpOworLQkJcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZXF1 YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhICgpOwor LQkJcHVibGljIHVpbnQ4IGdldF9hbHBoYV9ieXRlICgpOworLQkJcHVibGljIGZsb2F0IGdldF9h bHBoYV9mbG9hdCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYmx1ZSAoKTsKKy0JCXB1YmxpYyB1 aW50OCBnZXRfYmx1ZV9ieXRlICgpOworLQkJcHVibGljIGZsb2F0IGdldF9ibHVlX2Zsb2F0ICgp OworLQkJcHVibGljIGZsb2F0IGdldF9ncmVlbiAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfZ3Jl ZW5fYnl0ZSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfZ3JlZW5fZmxvYXQgKCk7CistCQlwdWJs aWMgZmxvYXQgZ2V0X3JlZCAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfcmVkX2J5dGUgKCk7Cist CQlwdWJsaWMgZmxvYXQgZ2V0X3JlZF9mbG9hdCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVl biwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tXzRmdiAoZmxvYXQgY29sb3JfYXJyYXkpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tXzR1YiAo dWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0X2Zyb21f aHNsIChvdXQgQ29nbC5Db2xvciBjb2xvciwgZmxvYXQgaHVlLCBmbG9hdCBzYXR1cmF0aW9uLCBm bG9hdCBsdW1pbmFuY2UpOworLQkJcHVibGljIHZvaWQgcHJlbXVsdGlwbHkgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKGZsb2F0IGFs cGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9h bHBoYV9ieXRlICh1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfZmxvYXQgKGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibHVlIChmbG9hdCBibHVlKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibHVlX2J5 dGUgKHVpbnQ4IGJsdWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2JsdWVfZmxvYXQgKGZsb2F0IGJsdWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2Zyb21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJs dWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9m cm9tXzR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2dyZWVu IChmbG9hdCBncmVlbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfZ3JlZW5fYnl0ZSAodWludDggZ3JlZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2dyZWVuX2Zsb2F0IChmbG9hdCBncmVlbik7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVkIChmbG9h dCByZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3JlZF9ieXRlICh1aW50OCByZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3JlZF9mbG9hdCAoZmxvYXQgcmVkKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCB0b19oc2wgKG91dCBmbG9hdCBodWUsIG91dCBm bG9hdCBzYXR1cmF0aW9uLCBvdXQgZmxvYXQgbHVtaW5hbmNlKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHVucHJlbXVsdGlwbHkgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0cnVjdCBEZWJ1Z09i amVjdFR5cGVJbmZvIHsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworLQkJcHVibGljIHVs b25nIGluc3RhbmNlX2NvdW50OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbU2ltcGxlVHlwZV0KKy0JcHVibGljIHN0cnVjdCBIYW5kbGUgewor LQkJcHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ2V0X3R5cGUgKCk7CistCQlwdWJsaWMgQ29nbC5I YW5kbGUgQHJlZiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9tYXRyaXhf Z2V0X2d0eXBlICgpIildCistCXB1YmxpYyBzdHJ1Y3QgTWF0cml4IHsKKy0JCXB1YmxpYyBmbG9h dCB4eDsKKy0JCXB1YmxpYyBmbG9hdCB5eDsKKy0JCXB1YmxpYyBmbG9hdCB6eDsKKy0JCXB1Ymxp YyBmbG9hdCB3eDsKKy0JCXB1YmxpYyBmbG9hdCB4eTsKKy0JCXB1YmxpYyBmbG9hdCB5eTsKKy0J CXB1YmxpYyBmbG9hdCB6eTsKKy0JCXB1YmxpYyBmbG9hdCB3eTsKKy0JCXB1YmxpYyBmbG9hdCB4 ejsKKy0JCXB1YmxpYyBmbG9hdCB5ejsKKy0JCXB1YmxpYyBmbG9hdCB6ejsKKy0JCXB1YmxpYyBm bG9hdCB3ejsKKy0JCXB1YmxpYyBmbG9hdCB4dzsKKy0JCXB1YmxpYyBmbG9hdCB5dzsKKy0JCXB1 YmxpYyBmbG9hdCB6dzsKKy0JCXB1YmxpYyBmbG9hdCB3dzsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdHJpeD8gY29weSAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGVxdWFsICh2b2lkKiB2 MSwgdm9pZCogdjIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZv aWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJp Z2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7 CistCQlwdWJsaWMgdW5vd25lZCBmbG9hdFtdIGdldF9hcnJheSAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2ludmVyc2UgKG91dCBDb2ds Lk1hdHJpeCBpbnZlcnNlKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoQ29nbC5F dWxlciBldWxlcik7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fcXVhdGVybmlvbiAoQ29nbC5R dWF0ZXJuaW9uIHF1YXRlcm5pb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgaW5pdF90cmFuc2xhdGlvbiAoZmxvYXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0 eik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGlz X2lkZW50aXR5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZv aWQgbG9va19hdCAoZmxvYXQgZXllX3Bvc2l0aW9uX3gsIGZsb2F0IGV5ZV9wb3NpdGlvbl95LCBm bG9hdCBleWVfcG9zaXRpb25feiwgZmxvYXQgb2JqZWN0X3gsIGZsb2F0IG9iamVjdF95LCBmbG9h dCBvYmplY3RfeiwgZmxvYXQgd29ybGRfdXBfeCwgZmxvYXQgd29ybGRfdXBfeSwgZmxvYXQgd29y bGRfdXBfeik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJp Z2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMg KGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwg ZmxvYXQgZmFyKTsKKy0JCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxv YXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JCXB1YmxpYyB2b2lkIHBy b2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBw b2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2lu dHMpOworLQkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQg eSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlv biBxdWF0ZXJuaW9uKTsKKy0JCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCBzeCwgZmxvYXQgc3ks IGZsb2F0IHN6KTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludCAocmVmIGZsb2F0IHgs IHJlZiBmbG9hdCB5LCByZWYgZmxvYXQgeiwgcmVmIGZsb2F0IHcpOworLQkJcHVibGljIHZvaWQg dHJhbnNmb3JtX3BvaW50cyAoaW50IG5fY29tcG9uZW50cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9p ZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwgdm9pZCogcG9pbnRzX291dCwgaW50IG5f cG9pbnRzKTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgdHJh bnNwb3NlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg dmlld18yZF9pbl9mcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9t LCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel8yZCwgZmxvYXQgd2lkdGhfMmQsIGZs b2F0IGhlaWdodF8yZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg dm9pZCB2aWV3XzJkX2luX3BlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBm bG9hdCB6X25lYXIsIGZsb2F0IHpfMmQsIGZsb2F0IHdpZHRoXzJkLCBmbG9hdCBoZWlnaHRfMmQp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RydWN0IE9uc2NyZWVuRGlydHlJbmZvIHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBp bnQgeTsKKy0JCXB1YmxpYyBpbnQgd2lkdGg7CistCQlwdWJsaWMgaW50IGhlaWdodDsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBUZXh0dXJlVmVydGV4IHsKKy0JCXB1YmxpYyBmbG9h dCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgZmxvYXQgejsKKy0JCXB1YmxpYyBm bG9hdCB0eDsKKy0JCXB1YmxpYyBmbG9hdCB0eTsKKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGNvbG9y OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBz dHJ1Y3QgVXNlckRhdGFLZXkgeworLQkJcHVibGljIGludCB1bnVzZWQ7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiX0NvZ2xDb2xvclNp emVDaGVjayIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IF9Db2xvclNp emVDaGVjayB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3 ZWFrIGNoYXJbXSBjb21waWxlX3RpbWVfYXNzZXJ0X0NvZ2xDb2xvcl9zaXplOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIl9Db2dsTWF0 cml4U2l6ZUNoZWNrIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgX01h dHJpeFNpemVDaGVjayB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1 YmxpYyB3ZWFrIGNoYXJbXSBjb21waWxlX3RpbWVfYXNzZXJ0X0NvZ2xNYXRyaXhfc2l6ZTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJf Q29nbFRleHR1cmVWZXJ0ZXhTaXplQ2hlY2siLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVi bGljIHN0cnVjdCBfVGV4dHVyZVZlcnRleFNpemVDaGVjayB7CistCQlbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGNoYXJbXSBjb21waWxlX3RpbWVfYXNzZXJ0 X0NvZ2xUZXh0dXJlVmVydGV4X3NpemU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0FUVFJJQlVURV9UWVBFXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBl bnVtIEF0dHJpYnV0ZVR5cGUgeworLQkJQllURSwKKy0JCVVOU0lHTkVEX0JZVEUsCistCQlTSE9S VCwKKy0JCVVOU0lHTkVEX1NIT1JULAorLQkJRkxPQVQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQklUTUFQX0VSUk9SXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1 YmxpYyBlbnVtIEJpdG1hcEVycm9yIHsKKy0JCUZBSUxFRCwKKy0JCVVOS05PV05fVFlQRSwKKy0J CUNPUlJVUFRfSU1BR0UKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQkxFTkRfU1RSSU5HX0VSUk9SXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEJs ZW5kU3RyaW5nRXJyb3IgeworLQkJUEFSU0VfRVJST1IsCistCQlBUkdVTUVOVF9QQVJTRV9FUlJP UiwKKy0JCUlOVkFMSURfRVJST1IsCistCQlHUFVfVU5TVVBQT1JURURfRVJST1I7CistCQlwdWJs aWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQlVGRkVSX0JJVF8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBlbnVtIEJ1ZmZlckJpdCB7CistCQlDT0xPUiwKKy0JCURFUFRILAorLQkJU1RFTkNJ TAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIEJ1ZmZlclRhcmdldCB7CistCQlXSU5E T1dfQlVGRkVSLAorLQkJT0ZGU0NSRUVOX0JVRkZFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9DT0xPUl9NQVNLXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIENvbG9yTWFzayB7 CistCQlOT05FLAorLQkJUkVELAorLQkJR1JFRU4sCistCQlCTFVFLAorLQkJQUxQSEEsCistCQlB TEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfREVQVEhfVEVTVF9GVU5DVElPTl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JcHVibGljIGVudW0gRGVwdGhUZXN0RnVuY3Rpb24geworLQkJTkVWRVIsCistCQlMRVNTLAor LQkJRVFVQUwsCistCQlMRVFVQUwsCistCQlHUkVBVEVSLAorLQkJTk9URVFVQUwsCistCQlHRVFV QUwsCistCQlBTFdBWVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIEZl YXR1cmVGbGFncyB7CistCQlURVhUVVJFX1JFQ1RBTkdMRSwKKy0JCVRFWFRVUkVfTlBPVCwKKy0J CVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKy0JCVNIQURFUlNfR0xTTCwK Ky0JCU9GRlNDUkVFTiwKKy0JCU9GRlNDUkVFTl9NVUxUSVNBTVBMRSwKKy0JCU9GRlNDUkVFTl9C TElULAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJVkJPUywK Ky0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdFLAorLQkJ VEVYVFVSRV9OUE9UX0JBU0lDLAorLQkJVEVYVFVSRV9OUE9UX01JUE1BUCwKKy0JCVRFWFRVUkVf TlBPVF9SRVBFQVQsCistCQlQT0lOVF9TUFJJVEUsCistCQlURVhUVVJFXzNELAorLQkJTUFQX0JV RkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5fTVVM VElQTEUsCistCQlERVBUSF9URVhUVVJFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JcHVibGljIGVudW0gRmlsdGVyUmV0dXJuIHsKKy0JCUNPTlRJTlVFLAorLQkJ UkVNT1ZFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX0ZPR19NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEZvZ01vZGUgeworLQkJTElORUFS LAorLQkJRVhQT05FTlRJQUwsCistCQlFWFBPTkVOVElBTF9TUVVBUkVECistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZSQU1F X0VWRU5UXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NCIpXQorLQlwdWJsaWMgZW51bSBGcmFtZUV2ZW50IHsKKy0JCVNZTkMsCistCQlDT01QTEVURQor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9GUkFNRUJVRkZFUl9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVi bGljIGVudW0gRnJhbWVidWZmZXJFcnJvciB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRlJB TUVCVUZGRVJfRVJST1JfQUxMT0NBVEUiKV0KKy0JCUZSQU1FQlVGRkVSX0VSUk9SX0FMTE9DQVRF OworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVhcmsgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0lORElDRVNfVFlQ RV9VTlNJR05FRF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gSW5kaWNl c1R5cGUgeworLQkJQllURSwKKy0JCVNIT1JULAorLQkJSU5UCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX0FM UEhBX0ZVTkNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIE1hdGVyaWFs QWxwaGFGdW5jIHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0JCUVRVUFMLAorLQkJTEVRVUFMLAor LQkJR1JFQVRFUiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFMLAorLQkJQUxXQVlTCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X01BVEVSSUFMX0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0g TWF0ZXJpYWxGaWx0ZXIgeworLQkJTkVBUkVTVCwKKy0JCUxJTkVBUiwKKy0JCU5FQVJFU1RfTUlQ TUFQX05FQVJFU1QsCistCQlMSU5FQVJfTUlQTUFQX05FQVJFU1QsCistCQlORUFSRVNUX01JUE1B UF9MSU5FQVIsCistCQlMSU5FQVJfTUlQTUFQX0xJTkVBUgorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9MQVlF Ul9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsTGF5ZXJUeXBlIHsKKy0JCVtDQ29kZSAoY25hbWUg PSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUiKV0KKy0JCU1BVEVSSUFMX0xBWUVS X1RZUEVfVEVYVFVSRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9XUkFQX01PREVfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gTWF0 ZXJpYWxXcmFwTW9kZSB7CistCQlSRVBFQVQsCistCQlDTEFNUF9UT19FREdFLAorLQkJQVVUT01B VElDCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX1BJUEVMSU5FX0FMUEhBX0ZVTkNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCXB1YmxpYyBlbnVtIFBpcGVsaW5lQWxwaGFGdW5jIHsKKy0JCU5FVkVSLAorLQkJTEVTUywK Ky0JCUVRVUFMLAorLQkJTEVRVUFMLAorLQkJR1JFQVRFUiwKKy0JCU5PVEVRVUFMLAorLQkJR0VR VUFMLAorLQkJQUxXQVlTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJUEVMSU5FX0NVTExfRkFDRV9NT0RFXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZUN1bGxGYWNlTW9kZSB7Cist CQlOT05FLAorLQkJRlJPTlQsCistCQlCQUNLLAorLQkJQk9USAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9G SUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFBpcGVsaW5lRmls dGVyIHsKKy0JCU5FQVJFU1QsCistCQlMSU5FQVIsCistCQlORUFSRVNUX01JUE1BUF9ORUFSRVNU LAorLQkJTElORUFSX01JUE1BUF9ORUFSRVNULAorLQkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAor LQkJTElORUFSX01JUE1BUF9MSU5FQVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElQRUxJTkVfV1JBUF9NT0RFXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1Ymxp YyBlbnVtIFBpcGVsaW5lV3JhcE1vZGUgeworLQkJUkVQRUFULAorLQkJTUlSUk9SRURfUkVQRUFU LAorLQkJQ0xBTVBfVE9fRURHRSwKKy0JCUFVVE9NQVRJQworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVhFTF9GT1JNQVRf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjAuOCIpXQorLQlwdWJsaWMgZW51bSBQaXhlbEZvcm1hdCB7CistCQlBTlksCistCQlBXzgsCist CQlSR0JfNTY1LAorLQkJUkdCQV80NDQ0LAorLQkJUkdCQV81NTUxLAorLQkJWVVWLAorLQkJR184 LAorLQkJUkdfODgsCistCQlSR0JfODg4LAorLQkJQkdSXzg4OCwKKy0JCVJHQkFfODg4OCwKKy0J CUJHUkFfODg4OCwKKy0JCUFSR0JfODg4OCwKKy0JCUFCR1JfODg4OCwKKy0JCVJHQkFfMTAxMDEw MiwKKy0JCUJHUkFfMTAxMDEwMiwKKy0JCUFSR0JfMjEwMTAxMCwKKy0JCUFCR1JfMjEwMTAxMCwK Ky0JCVJHQkFfODg4OF9QUkUsCistCQlCR1JBXzg4ODhfUFJFLAorLQkJQVJHQl84ODg4X1BSRSwK Ky0JCUFCR1JfODg4OF9QUkUsCistCQlSR0JBXzQ0NDRfUFJFLAorLQkJUkdCQV81NTUxX1BSRSwK Ky0JCVJHQkFfMTAxMDEwMl9QUkUsCistCQlCR1JBXzEwMTAxMDJfUFJFLAorLQkJQVJHQl8yMTAx MDEwX1BSRSwKKy0JCUFCR1JfMjEwMTAxMF9QUkUsCistCQlERVBUSF8xNiwKKy0JCURFUFRIXzMy LAorLQkJREVQVEhfMjRfU1RFTkNJTF84CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1JFQURfUElYRUxTX0NPTE9SXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIGVudW0gUmVhZFBpeGVsc0ZsYWdzIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAi Q09HTF9SRUFEX1BJWEVMU19DT0xPUl9CVUZGRVIiKV0KKy0JCVJFQURfUElYRUxTX0NPTE9SX0JV RkZFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9SRU5ERVJFUl9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J cHVibGljIGVudW0gUmVuZGVyZXJFcnJvciB7CistCQlYTElCX0RJU1BMQVlfT1BFTiwKKy0JCUJB RF9DT05TVFJBSU5UCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY3ByZWZpeCA9ICJDT0dMX1NIQURFUl9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFNoYWRlclR5cGUg eworLQkJVkVSVEVYLAorLQkJRlJBR01FTlQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfU1RFUkVPXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBTdGVyZW9Nb2RlIHsKKy0JCUJPVEgsCistCQlMRUZU LAorLQkJUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfU1lTVEVNX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIFN5c3RlbUVycm9y IHsKKy0JCVVOU1VQUE9SVEVELAorLQkJTk9fTUVNT1JZCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfQ09NUE9O RU5UU18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKy0JcHVibGljIGVudW0gVGV4dHVyZUNvbXBvbmVudHMgeworLQkJQSwKKy0JCVJHLAorLQkJ UkdCLAorLQkJUkdCQSwKKy0JCURFUFRICistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfRVJST1JfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIGVu dW0gVGV4dHVyZUVycm9yIHsKKy0JCVNJWkUsCistCQlGT1JNQVQsCistCQlCQURfUEFSQU1FVEVS LAorLQkJVFlQRTsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9U RVhUVVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gVGV4dHVyZUZsYWdzIHsKKy0JCU5PTkUsCist CQlOT19BVVRPX01JUE1BUCwKKy0JCU5PX1NMSUNJTkcsCistCQlOT19BVExBUworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9U RVhUVVJFX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBlbnVtIFRleHR1cmVUeXBlIHsKKy0JCUAyRCwKKy0JCUAzRCwK Ky0JCVJFQ1RBTkdMRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9WRVJUSUNFU19NT0RFXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFZlcnRpY2Vz TW9kZSB7CistCQlQT0lOVFMsCistCQlMSU5FUywKKy0JCUxJTkVfTE9PUCwKKy0JCUxJTkVfU1RS SVAsCistCQlUUklBTkdMRVMsCistCQlUUklBTkdMRV9TVFJJUCwKKy0JCVRSSUFOR0xFX0ZBTgor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9XSU5ESU5HXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBX aW5kaW5nIHsKKy0JCUNMT0NLV0lTRSwKKy0JCUNPVU5URVJfQ0xPQ0tXSVNFCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1dJ TlNZU19GRUFUVVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBXaW5z eXNGZWF0dXJlIHsKKy0JCU1VTFRJUExFX09OU0NSRUVOLAorLQkJU1dBUF9USFJPVFRMRSwKKy0J CVZCTEFOS19DT1VOVEVSLAorLQkJVkJMQU5LX1dBSVQsCistCQlURVhUVVJFX0ZST01fUElYTUFQ LAorLQkJU1dBUF9CVUZGRVJTX0VWRU5ULAorLQkJU1dBUF9SRUdJT04sCistCQlTV0FQX1JFR0lP Tl9USFJPVFRMRSwKKy0JCVNXQVBfUkVHSU9OX1NZTkNIUk9OSVpFRCwKKy0JCUJVRkZFUl9BR0Us CistCQlTWU5DX0FORF9DT01QTEVURV9FVkVOVCwKKy0JCU5fRkVBVFVSRVMKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIERl YnVnT2JqZWN0Rm9yZWFjaFR5cGVDYWxsYmFjayAoQ29nbC5EZWJ1Z09iamVjdFR5cGVJbmZvIGlu Zm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5j ZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgQ29nbC5C b29sIE1hdGVyaWFsTGF5ZXJDYWxsYmFjayAoQ29nbC5NYXRlcmlhbCBtYXRlcmlhbCwgaW50IGxh eWVyX2luZGV4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5EaXJ0eUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9u c2NyZWVuLCBDb2dsLk9uc2NyZWVuRGlydHlJbmZvIGluZm8pOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAzLjkpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXpl Q2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdodCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3Bv cyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxiYWNr IChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCist CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBQ aXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9p bmRleCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3Rh bmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5 IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKy0JcHVibGljIGRlbGVn YXRlIHZvaWQgVXNlckRhdGFEZXN0cm95Q2FsbGJhY2sgKHZvaWQqIGRhdGEpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0FGSVJTVF9C SVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBBRklSU1RfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0FfQklUIildCistCXB1Ymxp YyBjb25zdCBpbnQgQV9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNuYW1lID0gIkNPR0xfQkdSX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IEJHUl9C SVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0g IkNPR0xfREVQVEhfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgREVQVEhfQklUOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BSRU1V TFRfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJFTVVMVF9CSVQ7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfU1RFTkNJTF9CSVQi KV0KKy0JcHVibGljIGNvbnN0IGludCBTVEVOQ0lMX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9URVhUVVJFX01BWF9XQVNURSIp XQorLQlwdWJsaWMgY29uc3QgaW50IFRFWFRVUkVfTUFYX1dBU1RFOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIGJlZ2luX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjaGVja19leHRlbnNp b24gKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGVhciAoQ29nbC5D b2xvciBjb2xvciwgdWxvbmcgYnVmZmVycyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjbHV0dGVyX2NoZWNr X2V4dGVuc2lvbl9DTFVUVEVSIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wu Qm9vbCBjbHV0dGVyX3dpbnN5c19oYXNfZmVhdHVyZV9DTFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1 cmUgZmVhdHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1 Z19tYXRyaXhfcHJpbnQgKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19vYmplY3RfZm9yZWFjaF90eXBlIChDb2dsLkRlYnVn T2JqZWN0Rm9yZWFjaFR5cGVDYWxsYmFjayBmdW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIGRlYnVnX29iamVjdF9wcmludF9pbnN0YW5jZXMgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgZGlzYWJsZV9mb2cgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZW5kX2ds ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZmVhdHVyZXNfYXZhaWxhYmxlIChDb2dsLkZlYXR1cmVG bGFncyBmZWF0dXJlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBm bHVzaCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxl ZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBm bG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFi bGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X2JpdG1hc2tzIChvdXQgaW50IHJlZCwgb3V0IGludCBn cmVlbiwgb3V0IGludCBibHVlLCBvdXQgaW50IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdl dF9kZXB0aF90ZXN0X2VuYWJsZWQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9kcmF3X2ZyYW1lYnVmZmVyICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXAgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuTWF0cml4IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCogZ2V0X3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBvdXQgZmxvYXQgdls0XSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIEdM aWIuVHlwZSBndHlwZV9tYXRyaXhfZ2V0X3R5cGUgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX29uc2NyZWVuICh2 b2lkKiBvYmplY3QpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9v bCBpc19waXBlbGluZSAodm9pZCogb2JqZWN0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5Cb29sIGlzX3ZlcnRleF9idWZmZXJfaW5kaWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQs IGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVh ciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cG9seWdvbiAoQ29nbC5UZXh0dXJlVmVydGV4IHZlcnRpY2VzLCB1aW50IG5fdmVydGljZXMsIENv Z2wuQm9vbCB1c2VfY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvcF9tYXRyaXggKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX21h dHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX3NvdXJjZSAodm9pZCog bWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZSAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZs b2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHJlY3RhbmdsZV93aXRoX211bHRpdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5 MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxv YXRbXSB0ZXhfY29vcmRzLCBpbnQgdGV4X2Nvb3Jkc19sZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfdGV4dHVyZV9jb29yZHMgKGZsb2F0 IHgxLCBmbG9hdCB5MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBmbG9hdCB0eDEsIGZsb2F0IHR5MSwg ZmxvYXQgdHgyLCBmbG9hdCB0eTIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgcmVjdGFuZ2xlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10g dmVydHMsIHVpbnQgbl9yZWN0cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44LjYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHJlY3RhbmdsZXNfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNl dF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKENvZ2wuQm9vbCBzZXR0aW5nKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X2ZvZyAoQ29nbC5Db2xvciBmb2dfY29sb3IsIENvZ2wuRm9nTW9kZSBtb2RlLCBm bG9hdCBkZW5zaXR5LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfbW9kZWx2aWV3X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfcHJvamVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBm bG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVp bnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf c291cmNlX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF92aWV3cG9ydCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWln aHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9jb21waWxlIChDb2dsLkhhbmRsZSBoYW5kbGUpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyBzdHJpbmcgc2hhZGVyX2dldF9pbmZvX2xvZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgQ29nbC5TaGFkZXJUeXBlIHNoYWRlcl9nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIHNoYWRlcl9pc19jb21waWxlZCAoQ29nbC5IYW5kbGUg aGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUgc2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfc291cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0 cmluZyBzb3VyY2UpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zy b21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBD b2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdo dCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2ds LlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0g IjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2Zp bGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxG b3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1Ymxp YyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZm9yZWlnbiAodWludCBnbF9o YW5kbGUsIHVpbnQgZ2xfdGFyZ2V0LCB1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgdWludCB4X3Bv dF93YXN0ZSwgdWludCB5X3BvdF93YXN0ZSwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfd2l0aF9zaXplICh1 aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4 ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0 cmFuc2Zvcm0gKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNsYXRlIChm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Fk ZCAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUsIHVpbnQ4IG5fY29t cG9uZW50cywgQ29nbC5BdHRyaWJ1dGVUeXBlIHR5cGUsIENvZ2wuQm9vbCBub3JtYWxpemVkLCB1 aW50MTYgc3RyaWRlLCB2b2lkKiBwb2ludGVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVy X2RlbGV0ZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGlzYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJp bmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhdyAoQ29n bC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBpbnQgZmlyc3QsIGludCBj b3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3X2VsZW1lbnRzIChDb2dsLkhh bmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIENvZ2wuSGFuZGxlIGluZGljZXMs IGludCBtaW5faW5kZXgsIGludCBtYXhfaW5kZXgsIGludCBpbmRpY2VzX29mZnNldCwgaW50IGNv dW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2VuYWJsZSAoQ29nbC5IYW5kbGUgaGFu ZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50IHZlcnRleF9idWZmZXJf Z2V0X25fdmVydGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxl IHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfZm9yX3F1YWRzICh1aW50IG5faW5kaWNlcyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuSW5kaWNlc1R5cGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF90eXBlIChD b2dsLkhhbmRsZSBpbmRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9u ZXcgKHVpbnQgbl92ZXJ0aWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9y ZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9zdWJt aXQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3VucmVm IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuOCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2aWV3 cG9ydCAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVu X2dldF92aXN1YWxfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCistCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfd2luZG93X3hpZCAo Q29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB4MTFfb25zY3JlZW5fc2V0X2ZvcmVpZ25fd2luZG93X3hpZCAoQ29nbC5PbnNjcmVl biBvbnNjcmVlbiwgdWludDMyIHhpZCwgW0NDb2RlIChzY29wZSA9ICJhc3luYyIpXSBDb2dsLk9u c2NyZWVuWDExTWFza0NhbGxiYWNrIHVwZGF0ZSk7CistfQorZGlmZiAtLWdpdCB2YXBpL211dHRl ci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEgdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxh CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGI4ZDgzOGQwLi4wMDAwMDAwMAorLS0t IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYQorKysrIC9kZXYvbnVsbAorQEAgLTEs MTU4ICswLDAgQEAKKy1uYW1lc3BhY2UgQ2x1dHRlciB7CistICBbQ0NvZGUgKHR5cGVfaWQgPSAi Q0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0gIHB1YmxpYyBzdHJ1Y3QgQWN0b3JCb3ggeworLSAgICBbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfYWN0b3JfYm94X2Zyb21fdmVydGljZXMiKV0KKy0gICAgcHVibGljIEFjdG9y Qm94LmZyb21fdmVydGljZXMgKENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworLSAgfQorLQorLSAg cHVibGljIHN0cnVjdCBNYXRyaXggOiBDb2dsLk1hdHJpeCB7CistICB9CistCistICBwdWJsaWMg Y2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVi bGljIHZpcnR1YWwgdm9pZCBhZGRfb3B0aW9ucyAoR0xpYi5PcHRpb25Hcm91cCBncm91cCk7Cist ICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIGJvb2wgY3JlYXRlX2NvbnRleHQg KCkgdGhyb3dzIEdMaWIuRXJyb3I7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0 dWFsIHVub3duZWQgQ2x1dHRlci5TdGFnZVdpbmRvdyBjcmVhdGVfc3RhZ2UgKENsdXR0ZXIuU3Rh Z2Ugd3JhcHBlcikgdGhyb3dzIEdMaWIuRXJyb3I7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1 YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOwor LSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2 aWNlTWFuYWdlciBnZXRfZGV2aWNlX21hbmFnZXIgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAg IHB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKy0g ICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsK Ky0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2ZlYXR1cmVz ICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBib29sIHBvc3RfcGFy c2UgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2 aXJ0dWFsIGJvb2wgcHJlX3BhcnNlICgpIHRocm93cyBHTGliLkVycm9yOworLSAgICBbTm9XcmFw cGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2b2lkIHJlZHJhdyAoQ2x1dHRlci5TdGFnZSBzdGFn ZSk7CistICB9CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYm94X2dldF90eXBlICgpIildCistICBwdWJsaWMg Y2xhc3MgQm94IDogQ2x1dHRlci5BY3RvciB7CistICAgIHB1YmxpYyBDbHV0dGVyLkxheW91dE1h bmFnZXIgbGF5b3V0X21hbmFnZXIgeyBnZXQ7IHNldDsgfQorLSAgfQorLQorLSAgW0NDb2RlICh0 eXBlX2lkID0gIkNMVVRURVJfVFlQRV9DT0xPUiIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBzdHJ1Y3QgQ29sb3IgeworLSAgICBbQ0NvZGUgKGNu YW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9obHMiKV0KKy0gICAgcHVibGljIENvbG9yLmZyb21f aGxzIChmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistICAg IFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3BpeGVsIildCistICAgIHB1Ymxp YyBDb2xvci5mcm9tX3BpeGVsICh1aW50MzIgcGl4ZWwpOworLSAgICBbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmciKV0KKy0gICAgcHVibGljIENvbG9yLmZyb21fc3Ry aW5nIChzdHJpbmcgc3RyKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zy b21fc3RyaW5nIildCistICAgIHB1YmxpYyBib29sIHBhcnNlX3N0cmluZyAoc3RyaW5nIHN0cik7 CistICAgIHB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkNvbG9yPyBnZXRfc3RhdGljIChD bHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9yKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jb250YWlu ZXJfZ2V0X3R5cGUgKCkiKV0KKy0gIHB1YmxpYyBpbnRlcmZhY2UgQ29udGFpbmVyIDogR0xpYi5P YmplY3QgeworLSAgICBwdWJsaWMgdm9pZCBhZGQgKHBhcmFtcyBDbHV0dGVyLkFjdG9yW10gYWN0 b3JzKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19maW5k X2NoaWxkX3Byb3BlcnR5IildCistICAgIHB1YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1T cGVjIGZpbmRfY2hpbGRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0gICAgW0ND b2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19saXN0X2NoaWxkX3Byb3BlcnRp ZXMiKV0KKy0gICAgcHVibGljIGNsYXNzIHVub3duZWQgR0xpYi5QYXJhbVNwZWNbXSBsaXN0X2No aWxkX3Byb3BlcnRpZXMgKCk7CistICB9CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZy ZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2V2ZW50X2dl dF90eXBlICgpIildCistICBbQ29tcGFjdF0KKy0gIHB1YmxpYyBjbGFzcyBFdmVudCB7CistICAg IHB1YmxpYyBDbHV0dGVyLkFueUV2ZW50IGFueSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJB bnlFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuQnV0dG9uRXZlbnQgYnV0 dG9uIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckJ1dHRvbkV2ZW50ICopIildIGdldDsgfQor LSAgICBwdWJsaWMgQ2x1dHRlci5Dcm9zc2luZ0V2ZW50IGNyb3NzaW5nIHsgW0NDb2RlIChjbmFt ZSA9ICIoQ2x1dHRlckNyb3NzaW5nRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0 dGVyLktleUV2ZW50IGtleSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJLZXlFdmVudCAqKSIp XSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuTW90aW9uRXZlbnQgbW90aW9uIHsgW0NDb2Rl IChjbmFtZSA9ICIoQ2x1dHRlck1vdGlvbkV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMg Q2x1dHRlci5TY3JvbGxFdmVudCBzY3JvbGwgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyU2Ny b2xsRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlN0YWdlU3RhdGVFdmVu dCBzdGFnZV9zdGF0ZSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTdGFnZVN0YXRlRXZlbnQg KikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNoRXZlbnQgdG91Y2ggeyBbQ0Nv ZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGlj IENsdXR0ZXIuVG91Y2hwYWRQaW5jaEV2ZW50IHRvdWNocGFkX3BpbmNoIHsgW0NDb2RlIChjbmFt ZSA9ICIoQ2x1dHRlclRvdWNocGFkUGluY2hFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGlj IENsdXR0ZXIuVG91Y2hwYWRTd2lwZUV2ZW50IHRvdWNocGFkX3N3aXBlIHsgW0NDb2RlIChjbmFt ZSA9ICIoQ2x1dHRlclRvdWNocGFkU3dpcGVFdmVudCAqKSIpXSBnZXQ7IH0KKy0gIH0KKy0KKy0g IFtDQ29kZSAodHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX2dldF90eXBlICgpIiwgY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGNsYXNzIFN0YWdlIDog Q2x1dHRlci5Hcm91cCB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9yZWRyYXciKV0K Ky0gICAgcHVibGljIHZvaWQgcmVkcmF3ICgpOworLSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgaW50ZXJmYWNlIFN0 YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMg YWJzdHJhY3Qgdm9pZCBhZGRfcmVkcmF3X2NsaXAgKENsdXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVj dGFuZ2xlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0 X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKy0gICAgW05vV3JhcHBlcl0K Ky0gICAgcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKy0gICAgW05v V3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRf d3JhcHBlciAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wg aGFzX3JlZHJhd19jbGlwcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3Ry YWN0IHZvaWQgaGlkZSAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0 IGJvb2wgaWdub3JpbmdfcmVkcmF3X2NsaXBzICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBw dWJsaWMgYWJzdHJhY3QgYm9vbCByZWFsaXplICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBw dWJsaWMgYWJzdHJhY3Qgdm9pZCByZXNpemUgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CistICAg IFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9jdXJzb3JfdmlzaWJs ZSAoYm9vbCBjdXJzb3JfdmlzaWJsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBh YnN0cmFjdCB2b2lkIHNldF9mdWxsc2NyZWVuIChib29sIGlzX2Z1bGxzY3JlZW4pOworLSAgICBb Tm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0 aXRsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF91 c2VyX3Jlc2l6YWJsZSAoYm9vbCBpc19yZXNpemFibGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAg ICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93IChib29sIGRvX3JhaXNlKTsKKy0gICAgW05vV3Jh cHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgpOworLSAgfQorLQor LSAgW0NDb2RlICh0eXBlX2lkID0gImNsdXR0ZXJfdGV4dHVyZV9nZXRfdHlwZSAoKSIsIGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBUZXh0 dXJlIDogQ2x1dHRlci5BY3RvciB7CistICAgIHB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0 ZXJpYWwgeyBnZXQ7IHNldDsgfQorLSAgICBwdWJsaWMgQ29nbC5UZXh0dXJlIGNvZ2xfdGV4dHVy ZSB7IGdldDsgc2V0OyB9CistICB9CistCistICBbQ29tcGFjdF0KKy0gIFtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGNsYXNzIFRpbWVv dXRQb29sIHsKKy0gICAgW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LSAgICBwdWJsaWMgVGltZW91dFBvb2wgKGludCBwcmlvcml0eSk7CistICB9CistCistICBbQ0Nv ZGUgKGNwcmVmaXggPSAiQ0xVVFRFUl9GRUFUVVJFXyIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0gIFtGbGFnc10KKy0gIHB1YmxpYyBlbnVtIEZlYXR1cmVGbGFn cyB7CistICAgIFRFWFRVUkVfTlBPVDsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2Zl YXR1cmVfYXZhaWxhYmxlIildCistICAgIHB1YmxpYyBib29sIGlzX2F2YWlsYWJsZSAoKTsKKy0g ICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2ZlYXR1cmVfZ2V0X2FsbCIpXQorLSAgICBwdWJs aWMgc3RhdGljIENsdXR0ZXIuRmVhdHVyZUZsYWdzIEBnZXQgKCk7CistICB9CistCistICBbQ0Nv ZGUgKHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRTIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIHN0cnVjdCBVbml0cyB7CistICAgIFtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2NtIildCistICAgIHB1YmxpYyBVbml0cy5m cm9tX2NtIChmbG9hdCBjbSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19m cm9tX2VtIildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX2VtIChmbG9hdCBlbSk7CistICAgIFtD Q29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtX2Zvcl9mb250IildCistICAgIHB1 YmxpYyBVbml0cy5mcm9tX2VtX2Zvcl9mb250IChzdHJpbmcgZm9udF9uYW1lLCBmbG9hdCBlbSk7 CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX21tIildCistICAgIHB1 YmxpYyBVbml0cy5mcm9tX21tIChmbG9hdCBtbSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl91bml0c19mcm9tX3BpeGVscyIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9waXhlbHMg KGludCBweCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3B0Iild CistICAgIHB1YmxpYyBVbml0cy5mcm9tX3B0IChmbG9hdCBwdCk7CistICAgIFtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3N0cmluZyIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJv bV9zdHJpbmcgKHN0cmluZyBzdHIpOworLSAgfQorLX0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXIt Y2x1dHRlci00LWN1c3RvbS52YWxhIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQor c2ltaWxhcml0eSBpbmRleCA5MiUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1j dXN0b20udmFsYQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQor aW5kZXggYjhkODM4ZDAuLjg5MjI0YmU2IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXIt NC1jdXN0b20udmFsYQorKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi1jdXN0b20udmFsYQorQEAg LTEsOSArMSw0IEBACisgbmFtZXNwYWNlIENsdXR0ZXIgeworLSAgW0NDb2RlICh0eXBlX2lkID0g IkNMVVRURVJfVFlQRV9BQ1RPUl9CT1giLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistICBwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKy0gICAgW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRpY2VzIildCistICAgIHB1YmxpYyBBY3Rv ckJveC5mcm9tX3ZlcnRpY2VzIChDbHV0dGVyLlZlcnRleFtdIHZlcnRzKTsKKy0gIH0KKyAKKyAg IHB1YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5NYXRyaXggeworICAgfQorQEAgLTE4LDggKzEz LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworICAgICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMg dmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAgICAg W05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1h bmFnZXIgZ2V0X2RldmljZV9tYW5hZ2VyICgpOworLSAgICBbTm9XcmFwcGVyXQorICAgICBwdWJs aWMgdmlydHVhbCBDbHV0dGVyLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CisgICAgIFtO b1dyYXBwZXJdCisgICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7CitAQCAt ODMsMTAgKzc2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAorICAgW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgICBwdWJsaWMgaW50ZXJmYWNlIFN0 YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMg YWJzdHJhY3Qgdm9pZCBhZGRfcmVkcmF3X2NsaXAgKENsdXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVj dGFuZ2xlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0 X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKyAgICAgW05vV3JhcHBlcl0K KyAgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKyAgICAgW05v V3JhcHBlcl0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci01LmRlcHMgdmFwaS9tdXR0 ZXItY2x1dHRlci02LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggNjMlCityZW5hbWUgZnJvbSB2YXBp L211dHRlci1jbHV0dGVyLTUuZGVwcworcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5k ZXBzCitpbmRleCAzZjVhOTJhNi4uN2E3MGQ2ZGYgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1 dHRlci01LmRlcHMKKysrKyB2YXBpL211dHRlci1jbHV0dGVyLTYuZGVwcworQEAgLTEsNCArMSw0 IEBACisgYXRrCisgY2Fpcm8KKyBqc29uLWdsaWItMS4wCistbXV0dGVyLWNvZ2wtNQorK211dHRl ci1jb2dsLTYKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci01LnZhcGkgdmFwaS9tdXR0 ZXItY2x1dHRlci02LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggOTMlCityZW5hbWUgZnJvbSB2YXBp L211dHRlci1jbHV0dGVyLTUudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52 YXBpCitpbmRleCAyNGY3ZjZiMS4uMDEzMGE5M2MgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1 dHRlci01LnZhcGkKKysrKyB2YXBpL211dHRlci1jbHV0dGVyLTYudmFwaQorQEAgLTEsNiArMSw2 IEBACistLyogbXV0dGVyLWNsdXR0ZXItNS52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBu b3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1jbHV0dGVyLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFw aWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIs IGdpcl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNl X2NwcmVmaXggPSAiY2x1dHRlcl8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdp cl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9jYXNlX2Nw cmVmaXggPSAiY2x1dHRlcl8iKV0KKyBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCW5hbWVzcGFjZSBL ZXkgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y25hbWUgPSAiQ0xVVFRFUl9LRVlfMCIpXQorQEAgLTQ2NjEsMjIgKzQ2NjEsMTQgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgYWxsb2NhdGVfcHJlZmVycmVkX3NpemUgKENs dXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlICh1bG9uZyBtb2RlLCB1aW50IGR1 cmF0aW9uLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgLi4u KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlv biBhbmltYXRlX3dpdGhfYWxwaGF2IChDbHV0dGVyLkFscGhhIGFscGhhLCBbQ0NvZGUgKGFycmF5 X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41KV0g c3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9w ZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOwor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFu aW1hdGVfd2l0aF90aW1lbGluZSAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGlu ZSwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFu aW1hdGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmV2ICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVs aW5lIHRpbWVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMi LCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChh cnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIu NSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGV2ICh1bG9uZyBtb2RlLCB1aW50IGR1cmF0 aW9uLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9s ZW5ndGhfcG9zID0gMi41KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5n dGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIEdMaWIu VmFsdWVbXSB2YWx1ZXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IENsdXR0ZXIuVmVydGV4IGFwcGx5X3JlbGF0aXZlX3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRl ci5BY3Rvcj8gYW5jZXN0b3IsIENsdXR0ZXIuVmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2b2lk IGFwcGx5X3JlbGF0aXZlX3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0 b3IsIEdyYXBoZW5lLlBvaW50M0QgcG9pbnQsIG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Qg dmVydGV4KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X3Ry YW5zZm9ybSAocmVmIENsdXR0ZXIuTWF0cml4IG1hdHJpeCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggYXBwbHlfdHJhbnNmb3JtX3RvX3Bv aW50IChDbHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV90cmFuc2Zv cm1fdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQsIG91dCB1bm93bmVkIEdyYXBoZW5l LlBvaW50M0QgdmVydGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJs aWMgdm9pZCBiaW5kX21vZGVsIChHTGliLkxpc3RNb2RlbD8gbW9kZWwsIG93bmVkIENsdXR0ZXIu QWN0b3JDcmVhdGVDaGlsZEZ1bmMgY3JlYXRlX2NoaWxkX2Z1bmMpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorQEAgLTQ2ODgsMjAgKzQ2ODAsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgY29udGFpbnMg KENsdXR0ZXIuQWN0b3IgZGVzY2VuZGFudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoKTsKKysJCXB1YmxpYyB2b2lkIGNvbnRp bnVlX3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKysJCXB1Ymxp YyB2b2lkIGNvbnRpbnVlX3BpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5Db250ZXh0IGNy ZWF0ZV9wYW5nb19jb250ZXh0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIFBhbmdvLkxheW91dCBjcmVhdGVfcGFuZ29fbGF5b3V0IChzdHJpbmc/IHRleHQpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGRlc3Ryb3lfYWxs X2NoaWxkcmVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGRldGFjaF9h bmltYXRpb24gKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfZXZlbnQiKV0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIGVtaXRfZXZlbnQg KENsdXR0ZXIuRXZlbnQgZXZlbnQsIGJvb2wgY2FwdHVyZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7Cisr CQlwdWJsaWMgdm9pZCBnZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Qb2ludDNEIHZlcnRzWzRdKTsKKyAJCXB1YmxpYyB2 aXJ0dWFsIHVub3duZWQgQXRrLk9iamVjdCBnZXRfYWNjZXNzaWJsZSAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0aW9uIGdldF9h Y3Rpb24gKHN0cmluZyBuYW1lKTsKK0BAIC00NzA5LDE2ICs0NzAwLDEwIEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLkFjdGlvbj4gZ2V0X2Fj dGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRl ci5BY3RvckJveCBnZXRfYWxsb2NhdGlvbl9ib3ggKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJ cHVibGljIENsdXR0ZXIuR2VvbWV0cnkgZ2V0X2FsbG9jYXRpb25fZ2VvbWV0cnkgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxsb2NhdGlvbl92 ZXJ0aWNlcyAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2FuY2hvcl9wb2ludCAob3V0IGZsb2F0IGFuY2hvcl94LCBvdXQgZmxv YXQgYW5jaG9yX3kpOworKwkJcHVibGljIHZvaWQgZ2V0X2FsbG9jYXRpb25fdmVydGljZXMgKENs dXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3Jh cGhlbmUuUG9pbnQzRCB2ZXJ0c1s0XSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIENs dXR0ZXIuR3Jhdml0eSBnZXRfYW5jaG9yX3BvaW50X2dyYXZpdHkgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gZ2V0X2FuaW1hdGlvbiAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xv ciBnZXRfYmFja2dyb3VuZF9jb2xvciAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9n ZXRfYWN0b3JfYnlfZ2lkIildCitAQCAtNDc2OCw4ICs0NzUzLDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0X2ZpeGVkX3Bvc2l0aW9uX3NldCAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yRmxhZ3MgZ2V0X2Zs YWdzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHVpbnQzMiBnZXRfZ2lkICgpOwor IAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2hhc19wb2ludGVyIildCisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgYm9vbCBnZXRfaGFzX3BvaW50ZXIgKCk7 CitAQCAtNDg0OCw4ICs0ODMxLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENs dXR0ZXIuVGV4dERpcmVjdGlvbiBnZXRfdGV4dF9kaXJlY3Rpb24gKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zvcm0g KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuTWF0cml4IGdldF90cmFu c2Zvcm1hdGlvbl9tYXRyaXggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Vm9sdW1lIGdldF90cmFuc2Zvcm1lZF9wYWludF92 b2x1bWUgKENsdXR0ZXIuQWN0b3IgcmVsYXRpdmVfdG9fYW5jZXN0b3IpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorQEAgLTQ4OTIsNyArNDg3Myw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBib29sIGhhc19tYXBwZWRfY2xvbmVzICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgYm9vbCBoYXNfb3ZlcmxhcHMgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjAuMiIpXQorKwkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg aGlkZV9hbGwgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZv aWQgaW5zZXJ0X2NoaWxkX2Fib3ZlIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkFjdG9y PyBzaWJsaW5nKTsKK0BAIC00OTEyLDEwICs0ODkzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGJvb2wgaXNfc2NhbGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQi KV0KKyAJCXB1YmxpYyBib29sIGlzX3Zpc2libGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93 ZXIgKENsdXR0ZXIuQWN0b3I/IGFib3ZlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBsb3dlcl9ib3R0 b20gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdmlydHVhbCB2 b2lkIG1hcCAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCitAQCAtNDkyOCwxNyArNDkwNSwxMiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBuZWVkc19leHBhbmQgKENsdXR0ZXIu T3JpZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgcGFpbnRfbm9kZSAoQ2x1dHRlci5QYWludE5vZGUgcm9vdCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjEuMiIpXQorKwkJcHVibGljIHZvaWQgcGlja19ib3ggKENsdXR0ZXIuUGlja0NvbnRleHQgcGlj a19jb250ZXh0LCBDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlwdWJsaWMgdm9pZCBwb3BfaW50 ZXJuYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgcHVzaF9pbnRlcm5h bCAoKTsKKyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhdyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZWRyYXdfd2l0aF9jbGlwIChDYWly by5SZWN0YW5nbGVJbnQ/IGNsaXApOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJhaXNlIChDbHV0dGVy LkFjdG9yPyBiZWxvdyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmFpc2VfdG9wICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX2FjdGlvbiAoQ2x1 dHRlci5BY3Rpb24gYWN0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00 OTYwLDggKzQ5MzIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCByZW1v dmVfZWZmZWN0X2J5X25hbWUgKHN0cmluZyBuYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfdHJhbnNpdGlvbiAoc3RyaW5nIG5hbWUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHJlcGFyZW50IChDbHV0dGVyLkFjdG9y IG5ld19wYXJlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 b2lkIHJlcGxhY2VfY2hpbGQgKENsdXR0ZXIuQWN0b3Igb2xkX2NoaWxkLCBDbHV0dGVyLkFjdG9y IG5ld19jaGlsZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTUwNDYsOCAr NTAxNiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9zY2FsZSAo ZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfc2NhbGVfZnVsbCAoZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95 LCBmbG9hdCBjZW50ZXJfeCwgZmxvYXQgY2VudGVyX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9zY2FsZV93aXRoX2dyYXZpdHkgKGRvdWJsZSBzY2FsZV94LCBkb3Vi bGUgc2NhbGVfeSwgQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9zY2FsZV96IChkb3VibGUgc2NhbGVfeik7 CisgCQlwdWJsaWMgdm9pZCBzZXRfc2l6ZSAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CitA QCAtNTExMCwxMSArNTA3OCw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBjaGlsZF90cmFuc2Zvcm1fc2V0IHsgZ2V0 OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRy eSBjbGlwIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY2xpcF9yZWN0 IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGNsaXBfcmVjdCB7 IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgYm9vbCBjbGlwX3RvX2FsbG9jYXRpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCitAQCAtNTE5OSwxMiArNTE2NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgdWludCBvcGFjaXR5IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBp dm90X3BvaW50IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBw aXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorIAkJcHVibGljIGZsb2F0IHBpdm90X3BvaW50X3ogeyBnZXQ7IHNldDsgfQorIAkJW05v QWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IENsdXR0ZXIuUG9pbnQgcG9zaXRpb24geyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdy YXBoZW5lLlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIHJlYWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyMjUsMTMgKzUxOTAsMTMgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGRvdWJsZSByb3RhdGlvbl9hbmdsZV96IHsgZ2V0OyBzZXQ7IH0K KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQzRCByb3RhdGlvbl9jZW50ZXJfeCB7IG93bmVkIGdldDsgc2V0OyB9 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1 dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3kgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVi bGljIEdyYXBoZW5lLlBvaW50M0Qgcm90YXRpb25fY2VudGVyX3kgeyBvd25lZCBnZXQ7IHNldDsg fQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENs dXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl96IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1 YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHJvdGF0aW9uX2NlbnRlcl96IHsgb3duZWQgZ2V0OyBzZXQ7 IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBD bHV0dGVyLkdyYXZpdHkgcm90YXRpb25fY2VudGVyX3pfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CitA QCAtNTI1Nyw3ICs1MjIyLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wg c2hvd19vbl9zZXRfcGFyZW50IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgc2l6 ZSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplIHsgb3du ZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBD bHV0dGVyLlRleHREaXJlY3Rpb24gdGV4dF9kaXJlY3Rpb24geyBnZXQ7IHNldDsgfQorIAkJW05v QWNjZXNzb3JNZXRob2RdCitAQCAtNTMxOSwxMSArNTI4NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBtb3Rpb25fZXZlbnQgKENsdXR0ZXIu TW90aW9uRXZlbnQgZXZlbnQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQor LQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBwYXJlbnRfc2V0IChDbHV0dGVyLkFjdG9yPyBvbGRfcGFyZW50KTsKKysJCVtIYXNFbWl0 dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgcGljayAoQ2x1dHRlci5Db2xvciBjb2xvcik7CisrCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBwaWNrIChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlb SGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIHF1ZXVlX3JlbGF5b3V0ICgpOworQEAgLTUzNjEsNiArNTMyNywxMSBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlbmFibGVkIHsgZ2V0OyBzZXQ7 IH0KKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2FjdG9yX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEFjdG9yTm9kZSA6IENs dXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgQWN0b3JOb2RlIChD bHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxpZ25fY29uc3RyYWludF9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFz cyBBbGlnbkNvbnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0cmFpbnQgeworQEAgLTUzODgsMTkgKzUz NTksMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBj bG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dWxvbmcgcmVnaXN0ZXJfZnVuYyAoQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfY2xvc3VyZSAoR0xpYi5DbG9z dXJlIGNsb3N1cmUpOworIAkJcHVibGljIHZvaWQgc2V0X2Z1bmMgKG93bmVkIENsdXR0ZXIuQWxw aGFGdW5jIGZ1bmMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworIAkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChD bHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBB bHBoYS53aXRoX2Z1bmMgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIG93bmVkIENsdXR0ZXIu QWxwaGFGdW5jIGZ1bmMpOworIAkJcHVibGljIGRvdWJsZSBhbHBoYSB7IGdldDsgfQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldCBj b25zdHJ1Y3Q7IH0KK0BAIC01NDExLDM1ICs1Mzc1LDI2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJcHVibGljIGNsYXNzIEFuaW1hdGlvbiA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFi bGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVi bGljIEFuaW1hdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJp bmQgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJpbmRfaW50ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9u YW1lLCBvd25lZCBDbHV0dGVyLkludGVydmFsIGludGVydmFsKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFscGhhIGdldF9hbHBoYSAoKTsKKyAJCXB1Ymxp YyB1aW50IGdldF9kdXJhdGlvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW50ZXJ2 YWwgZ2V0X2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgYm9vbCBn ZXRfbG9vcCAoKTsKKyAJCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKyAJCXB1YmxpYyBib29sIGhhc19wcm9wZXJ0eSAo c3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZHVy YXRpb24gKHVpbnQgbXNlY3MpOworIAkJcHVibGljIHZvaWQgc2V0X2xvb3AgKGJvb2wgbG9vcCk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfbW9kZSAodWxvbmcgbW9kZSk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfb2JqZWN0IChHTGliLk9iamVjdCBvYmplY3QpOworIAkJcHVibGljIHZvaWQgc2V0X3RpbWVs aW5lIChDbHV0dGVyLlRpbWVsaW5lPyB0aW1lbGluZSk7CistCQlwdWJsaWMgdm9pZCB1bmJpbmRf cHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQW5pbWF0aW9uIHVwZGF0ZSAoc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgZmlu YWwpOworLQkJcHVibGljIHZvaWQgdXBkYXRlX2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFt ZSwgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0 OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IG93bmVkIGdldDsgc2V0OyB9Cisg CQlwdWJsaWMgdWludCBkdXJhdGlvbiB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgYm9vbCBsb29w IHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1bG9uZyBtb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1 YmxpYyBHTGliLk9iamVjdCBvYmplY3QgeyBnZXQ7IHNldDsgfQorKwkJW05vQWNjZXNzb3JNZXRo b2RdCisrCQlwdWJsaWMgR0xpYi5PYmplY3Qgb2JqZWN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJ CXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lIHsgZ2V0OyBzZXQ7IH0KKy0JCVtIYXNF bWl0dGVyXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY29tcGxldGVkICgpOworIAkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc3RhcnRlZCAoKTsKKyAJfQorQEAgLTU0NjAsMjEg KzU0MTUsMTggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7 CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfb3B0aW9ucyAoR0xp Yi5PcHRpb25Hcm91cCBncm91cCk7CistCQlwdWJsaWMgdm9pZCBiZWxsX25vdGlmeSAoKTsKKyAJ CVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgpIHRo cm93cyBHTGliLkVycm9yOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3du ZWQgQ2x1dHRlci5TdGFnZVdpbmRvdyBjcmVhdGVfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugd3JhcHBl cikgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg dm9pZCBlbnN1cmVfY29udGV4dCAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2Rl dmljZV9tYW5hZ2VyICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9kZWZh dWx0X3NlYXQgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5G ZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIp XQorIAkJcHVibGljIHVub3duZWQgQ2Fpcm8uRm9udE9wdGlvbnMgZ2V0X2ZvbnRfb3B0aW9ucyAo KTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW5wdXRNZXRob2QgZ2V0X2lucHV0X21ldGhv ZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuS2V5bWFwIGdldF9rZXltYXAgKCk7Cisg CQlwdWJsaWMgZG91YmxlIGdldF9yZXNvbHV0aW9uICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7CitAQCAtNTQ5Niw5NSArNTQ0OCwxMSBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgc2V0dGluZ3NfY2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf YmVoYXZpb3VyX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGFic3Ry YWN0IGNsYXNzIEJlaGF2aW91ciA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IEJlaGF2aW91ciAoKTsKKy0JCXB1YmxpYyB2b2lkIGFjdG9yc19mb3JlYWNoIChDbHV0dGVyLkJl aGF2aW91ckZvcmVhY2hGdW5jIGZ1bmMpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgYWxwaGFfbm90aWZ5IChkb3VibGUgYWxwaGFfdmFsdWUpOworLQkJcHVibGljIHZv aWQgYXBwbHkgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2Vh ayBDbHV0dGVyLkFjdG9yPiBnZXRfYWN0b3JzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5BbHBoYSBnZXRfYWxwaGEgKCk7CistCQlwdWJsaWMgaW50IGdldF9uX2FjdG9ycyAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X250aF9hY3RvciAoaW50IGluZGV4Xyk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBpc19hcHBsaWVk IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZSAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9p ZCByZW1vdmVfYWxsICgpOworLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChDbHV0dGVyLkFscGhh IGFscGhhKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IGFwcGxpZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVtb3ZlZCAoQ2x1dHRlci5BY3Rv ciBhY3Rvcik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9kZXB0aF9nZXRfdHlwZSAoKSIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42 Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJEZXB0aCA6IENsdXR0 ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJEZXB0aCAoQ2x1dHRl ci5BbHBoYT8gYWxwaGEsIGludCBkZXB0aF9zdGFydCwgaW50IGRlcHRoX2VuZCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgaW50 IGRlcHRoX3N0YXJ0LCBvdXQgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzIChpbnQgZGVwdGhfc3RhcnQsIGludCBk ZXB0aF9lbmQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBpbnQg ZGVwdGhfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfb3Bh Y2l0eV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhh dmlvdXJPcGFjaXR5IDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVy QmVoYXZpb3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91ck9wYWNpdHkgKENsdXR0ZXIuQWxwaGE/ IGFscGhhLCB1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgdWlu dDggb3BhY2l0eV9zdGFydCwgb3V0IHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKHVpbnQ4IG9wYWNpdHlf c3RhcnQsIHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIHVpbnQgb3BhY2l0eV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgdWludCBvcGFjaXR5X3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfYmVoYXZpb3VyX3NjYWxlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0J cHVibGljIGNsYXNzIEJlaGF2aW91clNjYWxlIDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIu U2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwg dHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91clNjYWxlIChD bHV0dGVyLkFscGhhPyBhbHBoYSwgZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxl X3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgZG91 YmxlIHhfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeV9zY2FsZV9zdGFydCwgb3V0IGRvdWJsZSB4 X3NjYWxlX2VuZCwgb3V0IGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzIChkb3VibGUgeF9zY2FsZV9zdGFy dCwgZG91YmxlIHlfc2NhbGVfc3RhcnQsIGRvdWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlfc2Nh bGVfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIGRvdWJsZSB4X3NjYWxlX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBk b3VibGUgeF9zY2FsZV9zdGFydCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2FsZV9l bmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsg fQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9iaW5fbGF5b3V0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGNsYXNzIEJpbkxheW91dCA6IENsdXR0ZXIuTGF5 b3V0TWFuYWdlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwg dHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBCaW5MYXlvdXQgKENs dXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCwg Q2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbiA9IENsdXR0ZXIuQmluQWxpZ25tZW50LlNUQVJU KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBhZGQgKENsdXR0ZXIuQWN0b3Ig Y2hpbGQsIENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxpZ25tZW50 IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1l bnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBvdXQgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGln biwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBDbHV0 dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsK KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0 dGVyLkJpbkFsaWdubWVudCB4X2FsaWduIHsgZ2V0OyBzZXQ7IH0KK0BAIC01NzU4LDM3ICs1NjI2 LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMg ZmxvYXQgeTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2Fpcm9fdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgY2xhc3MgQ2Fpcm9UZXh0dXJlIDogQ2x1dHRlci5U ZXh0dXJlLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250 YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQ2Fpcm9U ZXh0dXJlICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlwdWJsaWMgdm9pZCBjbGVhciAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDYWlyby5Db250ZXh0IGNyZWF0ZSAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDYWlyby5Db250ZXh0IGNyZWF0ZV9yZWdpb24g KGludCB4X29mZnNldCwgaW50IHlfb2Zmc2V0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2F1dG9fcmVzaXpl ICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3N1cmZhY2Vfc2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91 dCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg dm9pZCBpbnZhbGlkYXRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVi bGljIHZvaWQgaW52YWxpZGF0ZV9yZWN0YW5nbGUgKENhaXJvLlJlY3RhbmdsZUludD8gcmVjdCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19y ZXNpemUgKGJvb2wgdmFsdWUpOworLQkJcHVibGljIHZvaWQgc2V0X3N1cmZhY2Vfc2l6ZSAodWlu dCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIGJvb2wgYXV0b19yZXNpemUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgdWludCBzdXJmYWNlX2hlaWdodCB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHN1cmZhY2Vfd2lkdGggeyBnZXQ7IHNldDsg fQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFs IENhaXJvLlN1cmZhY2UgY3JlYXRlX3N1cmZhY2UgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBi b29sIGRyYXcgKENhaXJvLkNvbnRleHQgY3IpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jYW52YXNfZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNz IENhbnZhcyA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworQEAgLTU5MjAsNjIgKzU3 NTcsMjQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2ZhY3RvciAo ZG91YmxlIGZhY3Rvcik7CisgCQlwdWJsaWMgZG91YmxlIGZhY3RvciB7IGdldDsgc2V0OyB9Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2RldmljZV9tYW5hZ2VyX2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIERldmljZU1hbmFnZXIg OiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgRGV2aWNlTWFuYWdlciAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCB2b2lkIGFkZF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNl KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5 X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBjb21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZl bnQgZXZlbnQsIENsdXR0ZXIuRXZlbnQgdG9fZGlzY2FyZCk7CistCQlwdWJsaWMgdmlydHVhbCBD bHV0dGVyLlZpcnR1YWxJbnB1dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIu SW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQg Q2x1dHRlci5JbnB1dERldmljZSBnZXRfY29yZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VU eXBlIGRldmljZV90eXBlKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkRldmlj ZU1hbmFnZXIgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0 ZXIuSW5wdXREZXZpY2UgZ2V0X2RldmljZSAoaW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgdm9p ZCBnZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdz KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9p bnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZp cnR1YWxEZXZpY2VUeXBlIGdldF9zdXBwb3J0ZWRfdmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7Cist CQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNl cyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5JbnB1dERldmljZT4g cGVla19kZXZpY2VzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg cmVtb3ZlX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2VsZWN0X3N0YWdlX2V2ZW50cyAoQ2x1dHRlci5T dGFnZSBzdGFnZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0 ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludGVy X2ExMXlfZHdlbGxfY2xpY2tfdHlwZSAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBl IGNsaWNrX3R5cGUpOworLQkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAo Q2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25z dHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5w dXREZXZpY2UgZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAo Q2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9h MTF5X2ZsYWdzX2NoYW5nZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNr KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVp bnQgbGF0Y2hlZF9tYXNrLCB1aW50IGxvY2tlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBwdHJfYTExeV9kd2VsbF9jbGlja190eXBlX2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckExMXlE d2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTEx eV90aW1lb3V0X3N0YXJ0ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBv aW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlLCB1aW50IGRlbGF5KTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZp Y2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCB0b29sX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ug b2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlVG9vbCBwMCk7CistCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Ry YWdfYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ cHVibGljIGNsYXNzIERyYWdBY3Rpb24gOiBDbHV0dGVyLkFjdGlvbiB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQor IAkJcHVibGljIERyYWdBY3Rpb24gKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChD bHV0dGVyLlJlY3QgZHJhZ19hcmVhKTsKKysJCXB1YmxpYyBib29sIGdldF9kcmFnX2FyZWEgKEdy YXBoZW5lLlJlY3QgZHJhZ19hcmVhKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkRyYWdBeGlzIGdldF9k cmFnX2F4aXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9kcmFnX2hh bmRsZSAoKTsKKyAJCXB1YmxpYyB2b2lkIGdldF9kcmFnX3RocmVzaG9sZCAob3V0IHVpbnQgeF90 aHJlc2hvbGQsIG91dCB1aW50IHlfdGhyZXNob2xkKTsKKyAJCXB1YmxpYyB2b2lkIGdldF9tb3Rp b25fY29vcmRzIChvdXQgZmxvYXQgbW90aW9uX3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CisgCQlw dWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzIChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0 IHByZXNzX3kpOworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0PyBk cmFnX2FyZWEpOworKwkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXJlYSAoR3JhcGhlbmUuUmVjdD8g ZHJhZ19hcmVhKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9kcmFnX2F4aXMgKENsdXR0ZXIuRHJhZ0F4 aXMgYXhpcyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19oYW5kbGUgKENsdXR0ZXIuQWN0b3I/ IGhhbmRsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ190aHJlc2hvbGQgKGludCB4X3RocmVz aG9sZCwgaW50IHlfdGhyZXNob2xkKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgZHJhZ19hcmVhIHsg b3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGRyYWdfYXJlYSB7IG93 bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBkcmFnX2FyZWFfc2V0IHsgZ2V0OyB9CitAQCAt NjAxMSwxMyArNTgxMCwxMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQor IAkJcHVibGljIHZpcnR1YWwgYm9vbCBtb2RpZnlfcGFpbnRfdm9sdW1lIChDbHV0dGVyLlBhaW50 Vm9sdW1lIHZvbHVtZSk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBw YWludCAoQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQsIENsdXR0ZXIu RWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdm9pZCBwaWNrIChDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVibGlj IHZpcnR1YWwgdm9pZCBwaWNrIChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7Cisg CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwb3N0X3BhaW50ICgpOworKwkJ cHVibGljIHZpcnR1YWwgdm9pZCBwb3N0X3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWlu dF9jb250ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIHByZV9w YWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3BhaW50IChDbHV0dGVyLlBhaW50 Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJ CXB1YmxpYyB2b2lkIHF1ZXVlX3JlcGFpbnQgKCk7CisgCX0KK0BAIC02MDY4LDcgKzU4NjcsNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBnZXRfbW9kZV9ncm91cCAoKTsK KyAJCXB1YmxpYyBib29sIGdldF9wYWRfZXZlbnRfZGV0YWlscyAob3V0IHVpbnQgbnVtYmVyLCBv dXQgdWludCBtb2RlLCBvdXQgZG91YmxlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCistCQlwdWJsaWMgdm9pZCBnZXRfcG9zaXRpb24gKENsdXR0ZXIuUG9pbnQgcG9zaXRp b24pOworKwkJcHVibGljIHZvaWQgZ2V0X3Bvc2l0aW9uIChHcmFwaGVuZS5Qb2ludCBwb3NpdGlv bik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFjdG9yIGdldF9yZWxhdGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K K0BAIC02MzA4LDcgKzYxMDcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXhpc192YWx1ZSAoW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldIGRvdWJsZVtdIGF4ZXMsIENsdXR0ZXIuSW5wdXRBeGlzIGF4 aXMsIG91dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0J CXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2Us IENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRl ci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSwgR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGludCBnZXRfZGV2aWNlX2lkICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzMjIsNyArNjEyMSw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGdldF9lbmFibGVkICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X2dyYWJiZWRfYWN0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9ncm91cF9uX21vZGVzIChpbnQg Z3JvdXApOworKwkJcHVibGljIHZpcnR1YWwgaW50IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3Jv dXApOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hh c19jdXJzb3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjM0NCwxNiAr NjE0MywxNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LlN0YWdlIGdldF9wb2ludGVyX3N0YWdlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIi KV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcHJvZHVjdF9pZCAoKTsKKysJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuU2VhdCBnZXRfc2VhdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBn ZXRfc2xhdmVfZGV2aWNlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3ZlbmRvcl9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBncmFiIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsK Ky0JCXB1YmxpYyBib29sIGlzX2dyb3VwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2 aWNlKTsKKy0JCXB1YmxpYyBib29sIGlzX21vZGVfc3dpdGNoX2J1dHRvbiAodWludCBncm91cCwg dWludCBidXR0b24pOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBpc19ncm91cGVkIChDbHV0dGVy LklucHV0RGV2aWNlIG90aGVyX2RldmljZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX21v ZGVfc3dpdGNoX2J1dHRvbiAodWludCBncm91cCwgdWludCBidXR0b24pOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQg aGFyZHdhcmVfa2V5Y29kZSwgdWludCBldmRldl9rZXljb2RlKTsKKysJCXB1YmxpYyB2aXJ0dWFs IGJvb2wga2V5Y29kZV90b19ldmRldiAodWludCBoYXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2 X2tleWNvZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3Igc2VxdWVuY2VfZ2V0X2dyYWJiZWRfYWN0b3IgKENsdXR0ZXIuRXZl bnRTZXF1ZW5jZSBzZXF1ZW5jZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAg LTYzNjksMTIgKzYxNjksMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQg dW5ncmFiICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQg dXBkYXRlX2Zyb21fZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIGJvb2wgdXBkYXRlX3N0YWdl KTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9mcm9tX3Rv b2wgKENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHRvb2wpOworIAkJW05vQWNjZXNzb3JNZXRob2Rd CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5k IGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VN YW5hZ2VyIGRldmljZV9tYW5hZ2VyIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1Ymxp YyBDbHV0dGVyLklucHV0TW9kZSBkZXZpY2VfbW9kZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlw dWJsaWMgc3RyaW5nIGRldmljZV9ub2RlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KK0BAIC02Mzk3LDYgKzYxOTYsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgcHJvZHVjdF9pZCB7 IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5TZWF0IHNlYXQgeyBnZXQ7IGNv bnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyBzdHJp bmcgdmVuZG9yX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorQEAgLTY0MzQsNyArNjIzNCw3 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jYW5fc2hvd19wcmVl ZGl0IChib29sIGNhbl9zaG93X3ByZWVkaXQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRf aGludHMgKENsdXR0ZXIuSW5wdXRDb250ZW50SGludEZsYWdzIGhpbnQpOworIAkJcHVibGljIHZv aWQgc2V0X2NvbnRlbnRfcHVycG9zZSAoQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIHB1cnBv c2UpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJl Y3QpOworKwkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCBy ZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1 dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nIHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKK0BAIC02 NDUzLDcgKzYyNTMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJ cHVibGljIHZpcnR1YWwgdm9pZCByZXNldCAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCBy ZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1 dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJcHVibGljIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3Ry aW5nPyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CisgCQlbTm9XcmFwcGVyXQorQEAgLTY0NzAsNyAr NjI3MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0Q29u dGVudFB1cnBvc2UgY29udGVudF9wdXJwb3NlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtIYXNFbWl0dGVy XQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGNvbW1pdCAoc3RyaW5nIHRleHQpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVyLlJlY3Qgb2JqZWN0 KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25fY2hhbmdlZCAoR3JhcGhl bmUuUmVjdCBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg ZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50IG9mZnNldCwgdWludCBsZW4pOworIAkJcHVibGljIHNp Z25hbCB2b2lkIGlucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBvYmpl Y3QpOworQEAgLTY1NDYsMjcgKzYzNDYsMzEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEtleW1h cCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X2NhcHNfbG9ja19zdGF0ZSAoKTsKKysJ CXB1YmxpYyB2aXJ0dWFsIFBhbmdvLkRpcmVjdGlvbiBnZXRfZGlyZWN0aW9uICgpOworIAkJcHVi bGljIHZpcnR1YWwgYm9vbCBnZXRfbnVtX2xvY2tfc3RhdGUgKCk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgc3RhdGVfY2hhbmdlZCAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfbGF5ZXJfbm9kZV9nZXRf dHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgTGF5ZXJOb2RlIDogQ2x1dHRlci5QYWludE5vZGUg eworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBMYXllck5vZGUgKENvZ2wuTWF0cml4IHByb2pl Y3Rpb24sIENhaXJvLlJlY3RhbmdsZSB2aWV3cG9ydCwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo dCwgdWludDggb3BhY2l0eSk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2xheW91dF9tYW5hZ2VyX2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGFic3RyYWN0 IGNsYXNzIExheW91dE1hbmFnZXIgOiBHTGliLkluaXRpYWxseVVub3duZWQgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIExheW91dE1h bmFnZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkNvbnRh aW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbiwgQ2x1dHRlci5BbGxv Y2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFs IHVub3duZWQgQ2x1dHRlci5BbHBoYSBiZWdpbl9hbmltYXRpb24gKHVpbnQgZHVyYXRpb24sIHVs b25nIG1vZGUpOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkNvbnRhaW5lciBj b250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBjaGls ZF9nZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3Rv ciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJcHVi bGljIHZvaWQgY2hpbGRfc2V0IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIu QWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9zZXRfcHJvcGVydHkgKENs dXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHBy b3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1Ymxp YyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNZXRhIGNyZWF0ZV9jaGlsZF9tZXRhIChD bHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuZF9h bmltYXRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxk X3Byb3BlcnR5IChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorKwkJW05vV3JhcHBl cl0KKyAJCXB1YmxpYyB2aXJ0dWFsIGRvdWJsZSBnZXRfYW5pbWF0aW9uX3Byb2dyZXNzICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5M YXlvdXRNZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENs dXR0ZXIuQWN0b3IgYWN0b3IpOworQEAgLTY2MjMsMTIgKzY0MjcsMTIgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHJvdGVjdGVkIE9mZnNjcmVlbkVmZmVjdCAoKTsKKyAJCXB1YmxpYyB2aXJ0 dWFsIENvZ2wuSGFuZGxlIGNyZWF0ZV90ZXh0dXJlIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfdGFy Z2V0X3JlY3QgKG91dCB1bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyBib29s IGdldF90YXJnZXRfcmVjdCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2lu Y2UgPSAiMS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3NpemUgKG91dCBmbG9hdCB3 aWR0aCwgb3V0IGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMg dmlydHVhbCB2b2lkIHBhaW50X3RhcmdldCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFp bnRfdGFyZ2V0IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfcGFnZV90dXJuX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCitAQCAtNjY0NSw2ICs2NDQ5LDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBkb3VibGUgcGVyaW9kIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBmbG9hdCBy YWRpdXMgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRf cmVmIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJl Zl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3Rd CisrCXB1YmxpYyBjbGFzcyBQYWludENvbnRleHQgeworKwkJcHVibGljIHZvaWQgZGVzdHJveSAo KTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgp OworKwkJcHVibGljIHZvaWQgcG9wX2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcHVz aF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisrCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLlBhaW50Q29udGV4dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5y ZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFBhaW50Tm9k ZSB7CitAQCAtNjY1NCw3ICs2NDY4LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHZvaWQgYWRkX211bHRpdGV4dHVyZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwg ZmxvYXQgdGV4dF9jb29yZHMsIHVpbnQgdGV4dF9jb29yZHNfbGVuKTsKKyAJCXB1YmxpYyB2b2lk IGFkZF9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBh ZGRfdGV4dHVyZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgeF8xLCBm bG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50ICgp OworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7 CisrCQlwdWJsaWMgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4 dCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Tm9kZSBAcmVmICgpOworIAkJcHVi bGljIHZvaWQgc2V0X25hbWUgKHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVmICgp OworQEAgLTY2NzIsNyArNjQ4Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGdldF9vcmln aW4gKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfb3JpZ2luIChvdXQgdW5vd25lZCBHcmFwaGVuZS5Q b2ludDNEIHZlcnRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg ZmxvYXQgZ2V0X3dpZHRoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY2 ODIsNyArNjQ5Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9oZWlnaHQgKGZsb2F0IGhlaWdodCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdm9pZCBzZXRfb3JpZ2luIChDbHV0 dGVyLlZlcnRleCBvcmlnaW4pOworKwkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoR3JhcGhlbmUu UG9pbnQzRCBvcmlnaW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGlj IHZvaWQgc2V0X3dpZHRoIChmbG9hdCB3aWR0aCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCitAQCAtNjc2OSwyNiArNjU4NCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgQ2x1dHRlci5QYXRoIHBhdGggeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lk IG5vZGVfcmVhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgdWludCBpbmRleCk7CisgCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0 aW9uID0gImNsdXR0ZXJfcGlja19jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNr X2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29u dGV4dF91bnJlZiIpXQorKwlbQ29tcGFjdF0KKysJcHVibGljIGNsYXNzIFBpY2tDb250ZXh0IHsK KysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBp Y2tDb250ZXh0IEByZWYgKCk7CisrCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKysJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfcGlwZWxpbmVfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUGlwZWxpbmVOb2RlIDogQ2x1dHRlci5QYWludE5vZGUg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVj dGVkIFBpcGVsaW5lTm9kZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50X2dldF90 eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlw dWJsaWMgY2xhc3MgUG9pbnQgeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQg eTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5Qb2ludCBhbGxvYyAoKTsKKy0JCXB1YmxpYyBD bHV0dGVyLlBvaW50IGNvcHkgKCk7CistCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKENsdXR0ZXIu UG9pbnQgYiwgb3V0IGZsb2F0IHhfZGlzdGFuY2UsIG91dCBmbG9hdCB5X2Rpc3RhbmNlKTsKKy0J CXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5Qb2ludCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZy ZWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IGluaXQgKGZsb2F0IHgsIGZs b2F0IHkpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUG9pbnQgemVybyAoKTsK Ky0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfcHJvcGVydHlfdHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUHJvcGVydHlUcmFuc2l0 aW9uIDogQ2x1dHRlci5UcmFuc2l0aW9uLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTY3OTgs MzMgKzY2MDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfcHJv cGVydHlfbmFtZSAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKyAJCXB1YmxpYyBzdHJpbmcgcHJv cGVydHlfbmFtZSB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0X2dl dF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor LQlwdWJsaWMgY2xhc3MgUmVjdCB7CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlBvaW50IG9yaWdp bjsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuU2l6ZSBzaXplOworLQkJcHVibGljIHN0YXRpYyBD bHV0dGVyLlJlY3QgYWxsb2MgKCk7CistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsK Ky0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0J CXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyBD bHV0dGVyLlJlY3QgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5SZWN0 IGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9jZW50ZXIg KENsdXR0ZXIuUG9pbnQgY2VudGVyKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOwor LQkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsK Ky0JCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUmVj dCBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0J CXB1YmxpYyB2b2lkIGluc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgYm9v bCBpbnRlcnNlY3Rpb24gKENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3Q/IHJlcyk7CistCQlw dWJsaWMgQ2x1dHRlci5SZWN0IG5vcm1hbGl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG9mZnNldCAo ZmxvYXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNfeCwg ZmxvYXQgc195KTsKKy0JCXB1YmxpYyB2b2lkIHVuaW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRl ci5SZWN0IHJlcyk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5SZWN0IHplcm8g KCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBjbGFzcyBSZWN0YW5nbGUgOiBDbHV0dGVyLkFj dG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWlu ZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAtNjkwNyw4ICs2Njg4LDggQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5 cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJcHVibGljIFNjcm9sbEFjdG9yICgpOworIAkJcHVi bGljIENsdXR0ZXIuU2Nyb2xsTW9kZSBnZXRfc2Nyb2xsX21vZGUgKCk7CistCQlwdWJsaWMgdm9p ZCBzY3JvbGxfdG9fcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJcHVibGljIHZvaWQg c2Nyb2xsX3RvX3JlY3QgKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9s bF90b19wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgc2Nyb2xs X3RvX3JlY3QgKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2Nyb2xs X21vZGUgKENsdXR0ZXIuU2Nyb2xsTW9kZSBtb2RlKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9s bE1vZGUgc2Nyb2xsX21vZGUgeyBnZXQ7IHNldDsgfQorIAl9CitAQCAtNjkzMCw2ICs2NzExLDQ0 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZs b2F0IHk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NlYXRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGFi c3RyYWN0IGNsYXNzIFNlYXQgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU2VhdCAoKTsKKysJCVtOb1dyYXBw ZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0 dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGJl bGxfbm90aWZ5ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBjb21wcmVzc19tb3Rpb24gKENs dXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuRXZlbnQgdG9fZGlzY2FyZCk7CisrCQlbTm9XcmFw cGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBjb3B5X2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZl bnQgc3JjLCBDbHV0dGVyLkV2ZW50IGRlc3QpOworKwkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5W aXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2 aWNlVHlwZSBkZXZpY2VfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBlbnN1cmVfYTExeV9zdGF0ZSAo KTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGZyZWVfZXZlbnRfZGF0 YSAoQ2x1dHRlci5FdmVudCBldmVudCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0 dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfa2V5Ym9hcmQgKCk7CisrCQlwdWJs aWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuS2V5bWFwIGdldF9rZXltYXAgKCk7CisrCQlwdWJs aWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X3BvaW50ZXIgKCk7Cisr CQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJB MTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFs RGV2aWNlVHlwZSBnZXRfc3VwcG9ydGVkX3ZpcnR1YWxfZGV2aWNlX3R5cGVzICgpOworKwkJcHVi bGljIGJvb2wgZ2V0X3RvdWNoX21vZGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBHTGliLkxpc3Q8 d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBsaXN0X2RldmljZXMgKCk7CisrCQlwdWJsaWMgdm9p ZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdz KTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZSAoQ2x1 dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworKwkJcHVibGljIHZv aWQgc2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdz IHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgd2FycF9wb2ludGVyIChpbnQgeCwg aW50IHkpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5k IGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIGJvb2wgdG91Y2hf bW9kZSB7IGdldDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRl ci5JbnB1dERldmljZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1v dmVkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg a2JkX2ExMXlfZmxhZ3NfY2hhbmdlZCAodWludCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2Vk X21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdl ZCAodWludCBsYXRjaGVkX21hc2ssIHVpbnQgbG9ja2VkX21hc2spOworKwkJcHVibGljIHNpZ25h bCB2b2lkIHB0cl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGVfY2hhbmdlZCAoQ2x1dHRlci5Qb2ludGVy QTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0 cl9hMTF5X3RpbWVvdXRfc3RhcnRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0 ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIHVpbnQgZGVsYXkpOworKwkJ cHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RvcHBlZCAoQ2x1dHRlci5JbnB1 dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5 cGUsIGJvb2wgY2xpY2tlZCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChD bHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZVRvb2wgcDApOwor Kwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9zZXR0aW5nc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBTZXR0aW5ncyA6IEdMaWIuT2JqZWN0IHsKK0BA IC03MDAyLDE4ICs2ODIxLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYWRlck1hdHJpeCAo KTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hl ZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NpemVfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBh Y3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBjbGFzcyBTaXplIHsK Ky0JCXB1YmxpYyBmbG9hdCBoZWlnaHQ7CistCQlwdWJsaWMgZmxvYXQgd2lkdGg7CistCQlwdWJs aWMgc3RhdGljIENsdXR0ZXIuU2l6ZSBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUg Y29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5TaXplIGIpOworLQkJcHVi bGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2l6ZSBpbml0IChm bG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc25hcF9jb25zdHJh aW50X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJcHVibGlj IGNsYXNzIFNuYXBDb25zdHJhaW50IDogQ2x1dHRlci5Db25zdHJhaW50IHsKK0BAIC03MDUyLDE0 ICs2ODU5LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGZyZWV6ZV91 cGRhdGVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wg Z2V0X2FjY2VwdF9mb2N1cyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X2FjdG9yX2F0X3BvcyAoQ2x1dHRlci5QaWNrTW9kZSBwaWNrX21vZGUsIGludCB4LCBpbnQgeSk7 CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0 ZXIuUGlja01vZGUgcGlja19tb2RlLCBmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBib29s IGdldF9jYXB0dXJlX2ZpbmFsX3NpemUgKENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBpbnQgd2lk dGgsIGludCBoZWlnaHQsIGZsb2F0IHNjYWxlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xv ciBnZXRfY29sb3IgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuU3Rh Z2UgZ2V0X2RlZmF1bHQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIu Rm9nIGdldF9mb2cgKCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9rZXlfZm9jdXMgKCk7CitAQCAtNzA2NywxOSArNjg3MiwxNCBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBnZXRfbWluaW11bV9zaXplIChvdXQgdWludCB3aWR0 aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1 YmxpYyBib29sIGdldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfbm9fY2xlYXJfaGludCAoKTsKKyAJCXB1 YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIGdldF9wZXJzcGVjdGl2ZSAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgZ2V0X3JlZHJh d19jbGlwX2JvdW5kcyAoKTsKKysJCXB1YmxpYyBDYWlyby5SZWdpb24gZ2V0X3JlZHJhd19jbGlw ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3Ro cm90dGxlX21vdGlvbl9ldmVudHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisg CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RpdGxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3VzZV9hbHBoYSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2ZvZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyB2b2lkIGhpZGVfY3Vyc29yICgpOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjgiKV0KK0BAIC03MDk0LDE2ICs2ODk0LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyB2b2lkIHNldF9hY2NlcHRfZm9jdXMgKGJvb2wgYWNjZXB0X2ZvY3VzKTsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mb2cgKENsdXR0ZXIuRm9nIGZvZyk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfa2V5X2ZvY3VzIChDbHV0 dGVyLkFjdG9yPyBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJs aWMgdm9pZCBzZXRfbWluaW11bV9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbW90aW9uX2V2ZW50 c19lbmFibGVkIChib29sIGVuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZvaWQgc2V0X25vX2NsZWFyX2hpbnQgKGJvb2wgbm9fY2xlYXIpOworIAkJcHVi bGljIHZvaWQgc2V0X3BlcnNwZWN0aXZlIChDbHV0dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF90aHJv dHRsZV9tb3Rpb25fZXZlbnRzIChib29sIHRocm90dGxlKTsKK0BAIC03MTExLDggKzY5MDcsNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0 aXRsZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRf dXNlX2FscGhhIChib29sIHVzZV9hbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3VzZV9mb2cgKGJvb2wgZm9nKTsKKyAJCXB1YmxpYyB2b2lkIHNob3dfY3Vyc29y ICgpOworIAkJcHVibGljIHZvaWQgdGhhd191cGRhdGVzICgpOworIAkJcHVibGljIHZvaWQgdXBk YXRlX3Jlc291cmNlX3NjYWxlcyAoKTsKK0BAIC03MTIyLDIwICs2OTE2LDE0IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbG9yIHsgZ2V0OyBzZXQ7IH0K KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIGJvb2wgY3Vyc29yX3Zpc2libGUgeyBn ZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBmb2cg eyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIENs dXR0ZXIuQWN0b3Iga2V5X2ZvY3VzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIG5vX2NsZWFyX2hpbnQgeyBnZXQ7IHNldDsgfQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUg cGVyc3BlY3RpdmUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQor IAkJcHVibGljIHN0cmluZyB0aXRsZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisgCQlwdWJsaWMgYm9vbCB1c2VfYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9mb2cgeyBnZXQ7IHNldDsgfQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0 aXZhdGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMCIpXQorQEAgLTcxNTgsOCArNjk0 Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0K KyAJCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5TdGFnZT4gbGlzdF9zdGFnZXMgKCk7 CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLlNMaXN0PENsdXR0ZXIuU3RhZ2U+IHBlZWtfc3RhZ2Vz ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlZmF1bHRfc3RhZ2Ug KENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJ cHVibGljIENsdXR0ZXIuU3RhZ2UgZGVmYXVsdF9zdGFnZSB7IGdldDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorQEAgLTcyMDYsMTYgKzY5OTIsMTAgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1aW50IGdldF9kdXJhdGlvbiAoc3Ry aW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSk7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuU3RhdGVLZXk+ IGdldF9rZXlzIChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0 ZV9uYW1lLCBHTGliLk9iamVjdD8gb2JqZWN0LCBzdHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3RhdGUgKCk7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIHN0cmluZz4gZ2V0X3N0 YXRlcyAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRp bWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCByZW1vdmVfa2V5IChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9z dGF0ZV9uYW1lLCBHTGliLk9iamVjdD8gb2JqZWN0LCBzdHJpbmc/IHByb3BlcnR5X25hbWUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kdXJhdGlvbiAoc3RyaW5nPyBz b3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgdWludCBkdXJhdGlv bik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TdGF0ZSBz ZXRfa2V5IChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmcgdGFyZ2V0X3N0YXRlX25h bWUsIEdMaWIuT2JqZWN0IG9iamVjdCwgc3RyaW5nIHByb3BlcnR5X25hbWUsIHVpbnQgbW9kZSwg R0xpYi5WYWx1ZSB2YWx1ZSwgZG91YmxlIHByZV9kZWxheSwgZG91YmxlIHBvc3RfZGVsYXkpOwor QEAgLTcyMzYsMjQgKzcwMTYsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtDb21wYWN0XQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBTdGF0ZUtleSB7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGRvdWJsZSBnZXRfcG9zdF9kZWxheSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZG91YmxlIGdldF9wcmVfZGVsYXkgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9wZXJ0eV9uYW1l ICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBHTGliLlR5cGUgZ2V0X3Byb3BlcnR5 X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9zb3VyY2Vfc3RhdGVfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X3RhcmdldF9zdGF0ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBib29sIGdldF92YWx1ZSAoR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3N3aXBlX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCitAQCAtNzI2NSw1MyArNzAyOSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBz d2lwZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Td2lwZURpcmVjdGlvbiBkaXJlY3Rp b24pOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIFRhYmxlTGF5b3V0IDogQ2x1dHRlci5MYXlvdXRN YW5hZ2VyIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJMYXlvdXRNYW5hZ2VyKiIpXQorLQkJcHVibGljIFRhYmxlTGF5b3V0ICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIG91dCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0 dGVyLlRhYmxlQWxpZ25tZW50IHlfYWxpZ24pOworLQkJcHVibGljIGludCBnZXRfY29sdW1uX2Nv dW50ICgpOworLQkJcHVibGljIHVpbnQgZ2V0X2NvbHVtbl9zcGFjaW5nICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGdldF9lYXNpbmdfZHVyYXRpb24gKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25nIGdldF9lYXNpbmdfbW9kZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9y LCBvdXQgYm9vbCB4X2V4cGFuZCwgb3V0IGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9v bCB4X2ZpbGwsIG91dCBib29sIHlfZmlsbCk7CistCQlwdWJsaWMgaW50IGdldF9yb3dfY291bnQg KCk7CistCQlwdWJsaWMgdWludCBnZXRfcm93X3NwYWNpbmcgKCk7CistCQlwdWJsaWMgdm9pZCBn ZXRfc3BhbiAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGludCBjb2x1bW5fc3Bhbiwgb3V0IGlu dCByb3dfc3Bhbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZV9h bmltYXRpb25zICgpOworLQkJcHVibGljIHZvaWQgcGFjayAoQ2x1dHRlci5BY3RvciBhY3Rvciwg aW50IGNvbHVtbiwgaW50IHJvdyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5UYWJsZUFsaWdubWVu dCB4X2FsaWduLCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHlfYWxpZ24pOworLQkJcHVibGljIHZv aWQgc2V0X2NvbHVtbl9zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5B Y3RvciBhY3RvciwgYm9vbCB4X2V4cGFuZCwgYm9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wg eF9maWxsLCBib29sIHlfZmlsbCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcm93X3NwYWNpbmcgKHVp bnQgc3BhY2luZyk7CistCQlwdWJsaWMgdm9pZCBzZXRfc3BhbiAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgaW50IGNvbHVtbl9zcGFuLCBpbnQgcm93X3NwYW4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF91c2VfYW5pbWF0aW9ucyAoYm9vbCBhbmltYXRlKTsKKy0JCXB1Ymxp YyB1aW50IGNvbHVtbl9zcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdWludCBlYXNpbmdfZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBlYXNpbmdfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJs aWMgdWludCByb3dfc3BhY2luZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIGJvb2wgdXNlX2FuaW1hdGlvbnMgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl90YXBfYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CisgCXB1YmxpYyBjbGFzcyBUYXBBY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworQEAg LTczMzksNyArNzA1Niw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVy LkNvbG9yIGdldF9jdXJzb3JfY29sb3IgKCk7CisgCQlwdWJsaWMgaW50IGdldF9jdXJzb3JfcG9z aXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQg Z2V0X2N1cnNvcl9yZWN0IChvdXQgdW5vd25lZCBDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJs aWMgdm9pZCBnZXRfY3Vyc29yX3JlY3QgKG91dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7 CisgCQlwdWJsaWMgdWludCBnZXRfY3Vyc29yX3NpemUgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRf Y3Vyc29yX3Zpc2libGUgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfZWRpdGFibGUgKCk7CitAQCAt NzQ1OCw3ICs3MTc1LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2Vk ICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1 cnNvcl9ldmVudCAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CisrCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbSGFz RW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBkZWxldGVfdGV4dCAoaW50IHN0YXJ0X3BvcywgaW50IGVuZF9wb3MpOworQEAgLTc0OTcs OTIgKzcyMTQsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgVGV4dE5vZGUgKFBh bmdvLkxheW91dD8gbGF5b3V0LCBDbHV0dGVyLkNvbG9yPyBjb2xvcik7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQor LQlwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwg Q2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNs dXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgVGV4dHVyZSAoKTsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYWN0b3IgKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5 cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBUZXh0 dXJlLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgQ2x1dHRlci5UZXh0dXJlRXJy b3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Jhc2Vfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0 IGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wu SGFuZGxlIGdldF9jb2dsX21hdGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1Ymxp YyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZ2V0X2ZpbHRlcl9xdWFsaXR5 ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9rZWVwX2FzcGVjdF9y YXRpbyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9hc3lu YyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9kYXRhX2Fz eW5jICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X21heF90aWxlX3dh c3RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9waWNrX3dpdGhf YWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3JlcGVhdCAo b3V0IGJvb2wgcmVwZWF0X3gsIG91dCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgYm9vbCBnZXRfc3luY19zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyBib29sIHNldF9hcmVhX2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgeCwgaW50IHksIGlu dCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0 dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9jb2dsX21hdGVyaWFsIChDb2dsLkhhbmRsZSBjb2dsX21hdGVyaWFs KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF90ZXh0dXJlIChD b2dsLkhhbmRsZSBjb2dsX3RleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2ZpbHRlcl9xdWFsaXR5IChDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5 KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9maWxlIChzdHJp bmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1 YmxpYyBib29sIHNldF9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl KV0gdWludDhbXSBkYXRhLCBib29sIGhhc19hbHBoYSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBp bnQgcm93c3RyaWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dz IEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21f eXV2X2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGlu dCB3aWR0aCwgaW50IGhlaWdodCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBH TGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9rZWVwX2Fz cGVjdF9yYXRpbyAoYm9vbCBrZWVwX2FzcGVjdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2xvYWRfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xvYWRfZGF0YV9hc3luYyAoYm9vbCBsb2FkX2FzeW5j KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcGlja193aXRoX2FscGhh IChib29sIHBpY2tfd2l0aF9hbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3JlcGVhdCAoYm9vbCByZXBlYXRfeCwgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3N5bmNfc2l6ZSAoYm9vbCBzeW5jX3NpemUpOwor KwlwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IgeworIAkJcHVibGljIENvZ2wu TWF0ZXJpYWwgY29nbF9tYXRlcmlhbCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ29nbC5UZXh0 dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBib29sIGRpc2FibGVfc2xpY2luZyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3RyaW5nIGZpbGVuYW1lIHsgb3duZWQgZ2V0 OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5 IHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CistCQlwdWJsaWMgYm9vbCBrZWVwX2FzcGVjdF9yYXRp byB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9hZF9h c3luYyB7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfZGF0 YV9hc3luYyB7IHNldDsgfQorLQkJcHVibGljIGJvb2wgcGlja193aXRoX2FscGhhIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3ggeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBlYXRf eSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBzeW5jX3NpemUgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHRpbGVfd2FzdGUgeyBnZXQ7IH0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBsb2FkX2Zp bmlzaGVkIChHTGliLkVycm9yIGVycm9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBwaXhidWZfY2hhbmdlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IHNpemVfY2hhbmdlIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90 ZXh0dXJlX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K K0BAIC03NjA4LDcgKzcyNDIsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXZlcnNlICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jdWJpY19iZXpp ZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7CisrCQlw dWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEs IEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIGludCBnZXRfY3VycmVudF9yZXBlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCitAQCAtNzY0NSw3ICs3Mjc5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmV2ZXJzZSAo Ym9vbCByZXZlcnNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMg dm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0dGVyLlBvaW50IGNfMSwgQ2x1dHRl ci5Qb2ludCBjXzIpOworKwkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAo R3JhcGhlbmUuUG9pbnQgY18xLCBHcmFwaGVuZS5Qb2ludCBjXzIpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RlbGF5ICh1aW50IG1zZWNzKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KK0BAIC03NzQ0LDYgKzczNzgsMTEgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfdHJhbnNmb3JtX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNs YXNzIFRyYW5zZm9ybU5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQor KwkJcHVibGljIFRyYW5zZm9ybU5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24pOworKwl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl90cmFuc2l0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBUcmFuc2l0aW9uIDogQ2x1dHRlci5U aW1lbGluZSwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03NzgzLDcgKzc0MjIsNiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisgCQlwcm90ZWN0ZWQgVmlydHVhbElucHV0RGV2aWNlICgpOworIAkJcHVibGljIGludCBn ZXRfZGV2aWNlX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFn ZXIgZ2V0X21hbmFnZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9hYnNvbHV0 ZV9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGlj IHZpcnR1YWwgdm9pZCBub3RpZnlfYnV0dG9uICh1aW50NjQgdGltZV91cywgdWludDMyIGJ1dHRv biwgQ2x1dHRlci5CdXR0b25TdGF0ZSBidXR0b25fc3RhdGUpOworIAkJcHVibGljIHZpcnR1YWwg dm9pZCBub3RpZnlfZGlzY3JldGVfc2Nyb2xsICh1aW50NjQgdGltZV91cywgQ2x1dHRlci5TY3Jv bGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBDbHV0dGVyLlNjcm9sbFNvdXJjZSBzY3JvbGxfc291cmNl KTsKK0BAIC03Nzk0LDI1ICs3NDMyLDI1IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX2Rvd24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xv dCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3Rv dWNoX21vdGlvbiAodWludDY0IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkp OworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfdXAgKHVpbnQ2NCB0aW1lX3Vz LCBpbnQgc2xvdCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkRl dmljZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJ cHVibGljIENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0 IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfem9vbV9hY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJcHVibGljIGNs YXNzIFpvb21BY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJ CXB1YmxpYyBab29tQWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChD bHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2Nh bF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxf cG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zv cm1lZF9mb2NhbF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJcHVibGljIENsdXR0 ZXIuWm9vbUF4aXMgZ2V0X3pvb21fYXhpcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF96b29tX2F4 aXMgKENsdXR0ZXIuWm9vbUF4aXMgYXhpcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhpcyB6 b29tX2F4aXMgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9v bSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Qb2ludCBmb2NhbF9wb2ludCwgZG91Ymxl IGZhY3Rvcik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVyLkFj dG9yIGFjdG9yLCBHcmFwaGVuZS5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9jbmFtZSA9ICJDbHV0dGVyQW5pbWF0YWJsZUludGVyZmFjZSIsIHR5cGVfaWQgPSAiY2x1dHRl cl9hbmltYXRhYmxlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgQW5pbWF0YWJs ZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlw dWJsaWMgYWJzdHJhY3QgYm9vbCBhbmltYXRlX3Byb3BlcnR5IChDbHV0dGVyLkFuaW1hdGlvbiBh bmltYXRpb24sIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGluaXRpYWxfdmFsdWUs IEdMaWIuVmFsdWUgZmluYWxfdmFsdWUsIGRvdWJsZSBwcm9ncmVzcywgR0xpYi5WYWx1ZSB2YWx1 ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYWJzdHJhY3QgdW5v d25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7 CitAQCAtNzgzMCw4ICs3NDY4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlICh2 ZnVuY19uYW1lID0gImFkZCIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFj dCB2b2lkIGFkZF9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIHZvaWQgYWRkX3ZhbGlzdCAoQ2x1dHRlci5BY3RvciBmaXJzdF9hY3Rvciwg dmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgdm9pZCBjaGlsZF9nZXQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCitAQCAtNzg1MywxMCArNzQ4OSw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZmluZF9jaGlsZF9ieV9uYW1l IChzdHJpbmcgY2hpbGRfbmFtZSk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29udGFp bmVyX2NsYXNzX2ZpbmRfY2hpbGRfcHJvcGVydHkiKV0KKyAJCXB1YmxpYyBjbGFzcyB1bm93bmVk IEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1l KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBAZm9yZWFjaCAo Q2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBmb3JlYWNoX3dpdGhfaW50ZXJuYWxzIChDbHV0dGVyLkNhbGxiYWNrIGNh bGxiYWNrKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IHVub3duZWQgQ2x1dHRlci5DaGlsZE1ldGEgZ2V0X2NoaWxkX21ldGEgKENsdXR0ZXIuQWN0b3Ig YWN0b3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KK0BAIC03ODc0LDggKzc1MDYsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKHZmdW5jX25hbWUgPSAicmVtb3ZlIildCisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlX2FjdG9yIChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVf dmFsaXN0IChDbHV0dGVyLkFjdG9yIGZpcnN0X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzb3J0X2RlcHRoX29yZGVy ICgpOworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0b3JfYWRkZWQgKENsdXR0ZXIu QWN0b3IgYWN0b3IpOworQEAgLTc4OTIsNyArNzUyMiw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGludmFsaWRhdGUgKCk7CisgCQlwdWJsaWMgYWJzdHJh Y3Qgdm9pZCBpbnZhbGlkYXRlX3NpemUgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFi c3RyYWN0IHZvaWQgcGFpbnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Q YWludE5vZGUgbm9kZSk7CisrCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChD bHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBhaW50Tm9kZSBub2RlLCBDbHV0dGVyLlBhaW50 Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhdHRhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc5MDgsMTAgKzc1MzgsNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBpbnRlcmZhY2UgU3RhZ2VXaW5kb3cgOiBH TGliLk9iamVjdCB7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgYWRk X3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVyLkdl b21ldHJ5IGdlb21ldHJ5KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgYWJzdHJhY3QgaW50 IGdldF9wZW5kaW5nX3N3YXBzICgpOworIAkJW05vV3JhcHBlcl0KK0BAIC03OTM5LDE0ICs3NTY1 LDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgYWJz dHJhY3Qgdm9pZCB1bnJlYWxpemUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9Y IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNv cHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2Zy ZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3JfYm94X2dldF90eXBlICgpIildCisgCXB1Ymxp YyBzdHJ1Y3QgQWN0b3JCb3ggeworIAkJcHVibGljIGZsb2F0IHgxOworIAkJcHVibGljIGZsb2F0 IHkxOworIAkJcHVibGljIGZsb2F0IHgyOworIAkJcHVibGljIGZsb2F0IHkyOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJveD8g YWxsb2MgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBj bGFtcF90b19waXhlbCAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGFtcF90b19waXhlbCAo cmVmIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KK0BAIC03OTU1LDggKzc1ODMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5BY3RvckJveCBib3hfYik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0ND b2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRpY2VzIildCistCQlwdWJs aWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAoQ2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtODAwMiw3ICs3NjI4LDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHdlYWsgQ2Fpcm8uU3VyZmFjZSBpbWFnZTsKKyAJCXB1 YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgcmVjdDsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9DT0xP UiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj b3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9m cmVlIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiKV0KKyAJcHVibGljIHN0cnVjdCBD b2xvciB7CisgCQlwdWJsaWMgdWludDggcmVkOworIAkJcHVibGljIHVpbnQ4IGdyZWVuOworQEAg LTgwNDEsMjQgKzc2NjcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC4yIildCisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfZm9nX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdHJ1 Y3QgRm9nIHsKKy0JCXB1YmxpYyBmbG9hdCB6X25lYXI7CistCQlwdWJsaWMgZmxvYXQgel9mYXI7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2dlb21ldHJ5X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dHJ1Y3QgR2VvbWV0cnkgeworLQkJcHVibGljIGludCB4OworLQkJcHVibGljIGludCB5OworLQkJ cHVibGljIHVpbnQgd2lkdGg7CistCQlwdWJsaWMgdWludCBoZWlnaHQ7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzIChDbHV0dGVyLkdlb21l dHJ5IGdlb21ldHJ5MSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg Q2x1dHRlci5HZW9tZXRyeSB1bmlvbiAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeV9iKTsKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBLYmRBMTF5U2V0dGluZ3MgeworIAkJ cHVibGljIENsdXR0ZXIuS2V5Ym9hcmRBMTF5RmxhZ3MgY29udHJvbHM7CitAQCAtODA2OSw3ICs3 Njc3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGludCBtb3VzZWtleXNfbWF4 X3NwZWVkOworIAkJcHVibGljIGludCBtb3VzZWtleXNfYWNjZWxfdGltZTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfa25vdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RydWN0IEtu b3QgeworIAkJcHVibGljIGludCB4OworQEAgLTgxMjEsNyArNzcyOSw3IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgdmFsdWU7CisgCQlwdWJsaWMgdWludDMyIG1vZGU7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdf Ym94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCXB1YmxpYyBzdHJ1Y3QgUGF0aE5vZGUgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aE5v ZGVUeXBlIHR5cGU7CitAQCAtODEzMSw3ICs3NzM5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuUGF0aE5vZGUgbm9kZV9iKTsKKyAJCXB1Ymxp YyB2b2lkIGZyZWUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgp IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNv cHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2Zy ZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGVyc3BlY3RpdmVfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RydWN0IFBlcnNwZWN0aXZlIHsKKyAJ CXB1YmxpYyBmbG9hdCBmb3Z5OworQEAgLTgxNjIsNyArNzc3MCw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3Igc291cmNlOworIAkJcHVibGljIHdl YWsgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2U7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfVU5J VFMiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRTIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0cnVjdCBVbml0cyB7CisgCQlwdWJsaWMgQ2x1dHRlci5V bml0cz8gY29weSAoKTsKK0BAIC04MTg2LDIzICs3Nzk0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGZsb2F0IHRvX3BpeGVscyAoKTsKKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3Ry aW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl92ZXJ0ZXhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RydWN0IFZlcnRleCB7CistCQlwdWJsaWMg ZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJcHVibGljIGZsb2F0IHo7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlZlcnRleD8g YWxsb2MgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRl ci5WZXJ0ZXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5WZXJ0ZXggdmVydGV4X2IpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlZlcnRleD8gaW5pdCAoZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0FDVE9SX0FMSUdOXyIs IHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9hbGlnbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgZW51bSBBY3RvckFsaWduIHsKK0BAIC04MzQw LDYgKzc5MzEsMjcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWV9BWElTLAorIAkJQk9USAor IAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNw cmVmaXggPSAiQ0xVVFRFUl9ERUJVR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZGVidWdfZmxhZ19n ZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERlYnVnRmxhZyB7CisrCQlN SVNDLAorKwkJQUNUT1IsCisrCQlURVhUVVJFLAorKwkJRVZFTlQsCisrCQlQQUlOVCwKKysJCVBB TkdPLAorKwkJQkFDS0VORCwKKysJCVNDSEVEVUxFUiwKKysJCVNDUklQVCwKKysJCVNIQURFUiwK KysJCU1VTFRJU1RBR0UsCisrCQlBTklNQVRJT04sCisrCQlMQVlPVVQsCisrCQlQSUNLLAorKwkJ RVZFTlRMT09QLAorKwkJQ0xJUFBJTkcsCisrCQlPT0JfVFJBTlNGT1JNUworKwl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xV VFRFUl9EUkFHXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmFnX2F4aXNfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgZW51bSBEcmFnQXhpcyB7CitA QCAtODM0Nyw2ICs3OTU5LDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVhfQVhJUywKKyAJ CVlfQVhJUworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJh d19kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gRHJh d0RlYnVnRmxhZyB7CisrCQlESVNBQkxFX1NXQVBfRVZFTlRTLAorKwkJRElTQUJMRV9DTElQUEVE X1JFRFJBV1MsCisrCQlSRURSQVdTLAorKwkJUEFJTlRfVk9MVU1FUywKKysJCURJU0FCTEVfQ1VM TElORywKKysJCURJU0FCTEVfT0ZGU0NSRUVOX1JFRElSRUNULAorKwkJQ09OVElOVU9VU19SRURS QVcsCisrCQlQQUlOVF9ERUZPUk1fVElMRVMsCisrCQlQQUlOVF9EQU1BR0VfUkVHSU9OCisrCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZp eCA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF9BQ1RPUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZm ZWN0X3BhaW50X2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0g RWZmZWN0UGFpbnRGbGFncyB7CitAQCAtODM5OCw4ICs4MDIzLDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworIAkJVEVYVFVSRV9OUE9ULAorIAkJ U1dBUF9USFJPVFRMRSwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywK KyAJCVNUQUdFX1NUQVRJQywKKyAJCVNUQUdFX0NVUlNPUiwKKyAJCVNIQURFUlNfR0xTTCwKK0BA IC04NjU3LDYgKzgyODAsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJUkVMX0xJTkVfVE8s CisgCQlSRUxfQ1VSVkVfVE8KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfTk9QXyIsIHR5cGVfaWQg PSAiY2x1dHRlcl9waWNrX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlw dWJsaWMgZW51bSBQaWNrRGVidWdGbGFnIHsKKysJCVBJQ0tJTkcKKysJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf UElDS18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19tb2RlX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVudW0gUGlja01vZGUgeworQEAgLTg4 NTEsMTMgKzg0NzksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlMRUZULAorIAkJUklHSFQK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj cHJlZml4ID0gIkNMVVRURVJfVEFCTEVfQUxJR05NRU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90 YWJsZV9hbGlnbm1lbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMjIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGlj IGVudW0gVGFibGVBbGlnbm1lbnQgeworLQkJU1RBUlQsCistCQlDRU5URVIsCistCQlFTkQKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJl Zml4ID0gIkNMVVRURVJfVEVYVF9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHRf ZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJ cHVibGljIGVudW0gVGV4dERpcmVjdGlvbiB7CitAQCAtODkzMywyOCArODU1NCwxOSBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlWQUxVRTsKKyAJCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBx dWFyayAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVFVSRV9FUlJPUl8iKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgZXJyb3Jkb21haW4gVGV4dHVyZUVycm9yIHsKKy0J CU9VVF9PRl9NRU1PUlksCistCQlOT19ZVVYsCistCQlCQURfRk9STUFUOworLQkJcHVibGljIHN0 YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjI0IildCisgCXB1YmxpYyBkZWxlZ2F0ZSBDbHV0dGVyLkFjdG9yIEFjdG9y Q3JlYXRlQ2hpbGRGdW5jIChHTGliLk9iamVjdCBpdGVtKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIwLjIiKV0KKyAJcHVibGljIGRlbGVnYXRlIGRvdWJsZSBBbHBoYUZ1bmMgKENsdXR0ZXIu QWxwaGEgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBk ZWxlZ2F0ZSB2b2lkIEJlaGF2aW91ckZvcmVhY2hGdW5jIChDbHV0dGVyLkJlaGF2aW91ciBiZWhh dmlvdXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIEJpbmRpbmdBY3Rpb25GdW5j IChHTGliLk9iamVjdCBnb2JqZWN0LCBzdHJpbmcgYWN0aW9uX25hbWUsIHVpbnQga2V5X3ZhbCwg Q2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGlj IGRlbGVnYXRlIHZvaWQgQ2FsbGJhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdGFyZ2V0ID0gZmFs c2UpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBFbWl0SW5wdXREZXZpY2VFdmVudCAoQ2x1dHRl ci5FdmVudCBldmVudCwgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBF dmVudEZpbHRlckZ1bmMgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworQEAgLTg5ODUsOSArODU5Nyw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAlw dWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJveD8gYWN0b3JfYm94X2FsbG9jICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVi bGljIHN0YXRpYyB2b2lkIGJhc2VfaW5pdCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitA QCAtOTA1MSw5ICs4NjYwLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBQYW5nby5Gb250TWFwIGdldF9m b250X21hcCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2tleWJvYXJkX2dyYWIgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MC4yIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3Vw ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K K0BAIC05MDYxLDE3ICs4NjY3LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgc3Rh dGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cF93aXRob3V0X2luaXQgKCk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9wb2ludGVyX2dyYWIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ2V0X3NjcmlwdF9pZCAoR0xpYi5PYmplY3QgZ29iamVj dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX2tl eWJvYXJkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIGdyYWJfcG9pbnRlciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJs aWMgc3RhdGljIENsdXR0ZXIuSW5pdEVycm9yIGluaXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2Nu YW1lID0gImFyZ2MiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41KV0gcmVmIHVub3duZWQgc3RyaW5n W10/IGFyZ3YpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorQEAgLTkwODcsMjkgKzg2ODQsNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2N1c3RvbV9iYWNrZW5k X2Z1bmMgKHZvaWQqIGZ1bmMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHRlc3RfYWRkX2RhdGFfZnVsbCAoc3RyaW5nIHRlc3RfcGF0aCwgb3duZWQgR0xp Yi5UZXN0RGF0YUZ1bmMgdGVzdF9mdW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1 YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2FjdG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9y IHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1 dHRlci5BY3Rvcj8gcmVzdWx0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBz dGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2NvbG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdl LCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBvdXQgQ2x1dHRlci5D b2xvciByZXN1bHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgdGVzdF9nZXRfc3RhZ2UgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg dGVzdF9pbml0IChpbnQgYXJnYywgc3RyaW5nIGFyZ3YpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKy0JcHVibGljIHN0YXRpYyBpbnQgdGVzdF9ydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfcG9pbnRlciAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgdWludCB1bmljb2RlX3RvX2tl eXN5bSAodWludDMyIHdjKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC5k ZXBzIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDU0JQorcmVu YW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci00LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRl ci1jbHV0dGVyLTcuZGVwcworaW5kZXggOTUwOTQwMjYuLjZiZDFjY2Y3IDEwMDY0NAorLS0tIHZh cGkvbXV0dGVyLWNsdXR0ZXItNC5kZXBzCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci03LmRlcHMK K0BAIC0xLDUgKzEsNCBAQAorIGF0aworIGNhaXJvCisganNvbi1nbGliLTEuMAorLW11dHRlci1j b2dsLTQKKy1wYW5nbworK211dHRlci1jb2dsLTcKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1 dHRlci00LnZhcGkgdmFwaS9tdXR0ZXItY2x1dHRlci03LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXgg ODYlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTQudmFwaQorcmVuYW1lIHRvIHZh cGkvbXV0dGVyLWNsdXR0ZXItNy52YXBpCitpbmRleCBjOGExZDIzYi4uYWVhNmEzMWEgMTAwNjQ0 CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci00LnZhcGkKKysrKyB2YXBpL211dHRlci1jbHV0dGVy LTcudmFwaQorQEAgLTEsNiArMSw2IEBACistLyogbXV0dGVyLWNsdXR0ZXItNC52YXBpIGdlbmVy YXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1jbHV0dGVyLTcu dmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUg KGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJz aW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY2x1dHRlcl8iKV0KKytbQ0NvZGUgKGNw cmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9u ID0gIjciLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY2x1dHRlcl8iKV0KKyBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCW5hbWVzcGFjZSBLZXkgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY25hbWUgPSAiQ0xVVFRFUl9LRVlfMCIpXQorQEAgLTQ1NzYs MjAgKzQ1NzYsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIHN0YXRpYyB1aW50IGFkZF9yZXBhaW50X2Z1bmNfZnVsbCAoQ2x1 dHRlci5SZXBhaW50RmxhZ3MgZmxhZ3MsIG93bmVkIEdMaWIuU291cmNlRnVuYyBmdW5jKTsKKyAJ CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbnRlciAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIGxlYXZlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX3JlcGFpbnRfZnVuYyAodWludCBoYW5kbGVfaWQpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2xvY2tf ZnVuY3Rpb25zIChHTGliLkNhbGxiYWNrIGVudGVyX2ZuLCBHTGliLkNhbGxiYWNrIGxlYXZlX2Zu KTsKKyAJfQorIAluYW1lc3BhY2UgVmFsdWUgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtNDYzNiw3ICs0NjI0LDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIHRha2VfcGFpbnRfbm9kZSAoR0xpYi5W YWx1ZSB2YWx1ZSwgQ2x1dHRlci5QYWludE5vZGU/IG5vZGUpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9h Y3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJs aWMgYWJzdHJhY3QgY2xhc3MgQWN0aW9uIDogQ2x1dHRlci5BY3Rvck1ldGEgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEFjdGlvbiAo KTsKK0BAIC00NjY0LDMzICs0NjUxLDIzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBhZGRfdHJhbnNpdGlvbiAoc3Ry aW5nIG5hbWUsIENsdXR0ZXIuVHJhbnNpdGlvbiB0cmFuc2l0aW9uKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIu QWN0b3JCb3ggYm94LCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMg dmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hbGlnbl9maWxsIChD bHV0dGVyLkFjdG9yQm94IGJveCwgZG91YmxlIHhfYWxpZ24sIGRvdWJsZSB5X2FsaWduLCBib29s IHhfZmlsbCwgYm9vbCB5X2ZpbGwsIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKysJ CXB1YmxpYyB2b2lkIGFsbG9jYXRlX2FsaWduX2ZpbGwgKENsdXR0ZXIuQWN0b3JCb3ggYm94LCBk b3VibGUgeF9hbGlnbiwgZG91YmxlIHlfYWxpZ24sIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9h dmFpbGFibGVfc2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgYXZhaWxhYmxlX3dpZHRoLCBm bG9hdCBhdmFpbGFibGVfaGVpZ2h0LCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7Cisr CQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hdmFpbGFibGVfc2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgYXZhaWxhYmxlX3dpZHRoLCBmbG9hdCBhdmFpbGFibGVfaGVpZ2h0KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9z aXplIChDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZSAodWxvbmcgbW9kZSwg dWludCBkdXJhdGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxw aGEsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B bmltYXRpb24gYW5pbWF0ZV93aXRoX2FscGhhdiAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgW0NDb2Rl IChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9 IDEuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0g Im5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUpXSBHTGliLlZhbHVlW10gdmFs dWVzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1h dGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmUgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUg dGltZWxpbmUsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX3RpbWVsaW5ldiAodWxvbmcgbW9kZSwgQ2x1dHRl ci5UaW1lbGluZSB0aW1lbGluZSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9w ZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtD Q29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9w b3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRldiAodWxvbmcgbW9kZSwgdWlu dCBkdXJhdGlvbiwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwg YXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJy YXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUp XSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKysJCXB1YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJl ZF9zaXplIChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9p bnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBDbHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlw dWJsaWMgdm9pZCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0 b3I/IGFuY2VzdG9yLCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVu ZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9p ZCBhcHBseV90cmFuc2Zvcm0gKHJlZiBDbHV0dGVyLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGFwcGx5X3RyYW5z Zm9ybV90b19wb2ludCAoQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBw bHlfdHJhbnNmb3JtX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25l ZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIp XQorIAkJcHVibGljIHZvaWQgYmluZF9tb2RlbCAoR0xpYi5MaXN0TW9kZWw/IG1vZGVsLCBvd25l ZCBDbHV0dGVyLkFjdG9yQ3JlYXRlQ2hpbGRGdW5jIGNyZWF0ZV9jaGlsZF9mdW5jKTsKKysJCVtO b1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVfcmVzb3VyY2Vfc2Nh bGUgKGludCBwaGFzZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMg dm9pZCBjbGVhcl9hY3Rpb25zICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAg LTQ3MDAsMjAgKzQ2NzcsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgY29udGFpbnMgKENsdXR0ZXIuQWN0b3IgZGVz Y2VuZGFudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBj b250aW51ZV9wYWludCAoKTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BhaW50IChDbHV0dGVy LlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3Bp Y2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5Db250ZXh0IGNyZWF0ZV9wYW5nb19jb250ZXh0 ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIFBhbmdvLkxheW91 dCBjcmVhdGVfcGFuZ29fbGF5b3V0IChzdHJpbmc/IHRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGRlc3Ryb3lfYWxsX2NoaWxkcmVuICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGRldGFjaF9hbmltYXRpb24gKCk7CisgCQlb Q0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfZXZlbnQiKV0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIGVtaXRfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZl bnQsIGJvb2wgY2FwdHVyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJs aWMgdm9pZCBnZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CisrCQlwdWJsaWMgdm9pZCBnZXRf YWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBH cmFwaGVuZS5Qb2ludDNEIHZlcnRzWzRdKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQXRr Lk9iamVjdCBnZXRfYWNjZXNzaWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0aW9uIGdldF9hY3Rpb24gKHN0cmluZyBuYW1l KTsKK0BAIC00NzIxLDIxICs0Njk3LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuQWN0aW9uPiBnZXRfYWN0aW9ucyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94IGdldF9hbGxv Y2F0aW9uX2JveCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9t ZXRyeSBnZXRfYWxsb2NhdGlvbl9nZW9tZXRyeSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGxvY2F0aW9uX3ZlcnRpY2VzIChDbHV0dGVyLkFj dG9yPyBhbmNlc3RvciwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIENsdXR0ZXIuVmVy dGV4IHZlcnRzWzRdKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYW5j aG9yX3BvaW50IChvdXQgZmxvYXQgYW5jaG9yX3gsIG91dCBmbG9hdCBhbmNob3JfeSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBnZXRfYW5jaG9yX3BvaW50 X2dyYXZpdHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5BbmltYXRpb24gZ2V0X2FuaW1hdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfYmFja2dyb3VuZF9jb2xvciAoKTsKKy0J CVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9nZXRfYWN0b3JfYnlfZ2lkIildCistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYnlfZ2lk ICh1aW50MzIgaWRfKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9jaGlsZF9hdF9pbmRleCAoaW50IGluZGV4Xyk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTQ3NjIsOCArNDcyNSw2IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGdldF9jb250ZW50X3NjYWxpbmdfZmlsdGVy cyAob3V0IENsdXR0ZXIuU2NhbGluZ0ZpbHRlciBtaW5fZmlsdGVyLCBvdXQgQ2x1dHRlci5TY2Fs aW5nRmlsdGVyIG1hZ19maWx0ZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFpbnRWb2x1bWUgZ2V0X2RlZmF1bHRfcGFpbnRfdm9s dW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfZGVwdGggKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19kZWxheSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNDc3NiwxMiArNDczNywxMSBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5FZmZlY3Q+ IGdldF9lZmZlY3RzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZpcnN0X2NoaWxkICgpOworKwkJcHVibGljIGJv b2wgZ2V0X2ZpeGVkX3Bvc2l0aW9uIChvdXQgZmxvYXQgeCwgb3V0IGZsb2F0IHkpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2ZpeGVkX3Bvc2l0aW9u X3NldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVy LkFjdG9yRmxhZ3MgZ2V0X2ZsYWdzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHVp bnQzMiBnZXRfZ2lkICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2hhc19w b2ludGVyIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgYm9vbCBn ZXRfaGFzX3BvaW50ZXIgKCk7CitAQCAtNDgzOSwxNyArNDc5OSwxMSBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgYm9vbCBnZXRfcmVhY3RpdmUgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5SZXF1ZXN0TW9kZSBnZXRfcmVxdWVzdF9t b2RlICgpOworLQkJcHVibGljIGJvb2wgZ2V0X3Jlc291cmNlX3NjYWxlIChvdXQgZmxvYXQgcmVz b3VyY2Vfc2NhbGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3Jv dGF0aW9uIChDbHV0dGVyLlJvdGF0ZUF4aXMgYXhpcywgb3V0IGZsb2F0IHgsIG91dCBmbG9hdCB5 LCBvdXQgZmxvYXQgeik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3Jlc291cmNlX3NjYWxlICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3JvdGF0 aW9uX2FuZ2xlIChDbHV0dGVyLlJvdGF0ZUF4aXMgYXhpcyk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBnZXRfc2NhbGUgKG91dCBkb3VibGUgc2NhbGVfeCwg b3V0IGRvdWJsZSBzY2FsZV95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBn ZXRfc2NhbGVfY2VudGVyIChvdXQgZmxvYXQgY2VudGVyX3gsIG91dCBmbG9hdCBjZW50ZXJfeSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBnZXRfc2NhbGVf Z3Jhdml0eSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZG91 YmxlIGdldF9zY2FsZV96ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorQEAgLTQ4 NjAsOCArNDgxNCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRl eHREaXJlY3Rpb24gZ2V0X3RleHRfZGlyZWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtYXRp b25fbWF0cml4ICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9ybWVkX2V4dGVudHMgKG91 dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Vm9sdW1lIGdldF90cmFuc2Zvcm1l ZF9wYWludF92b2x1bWUgKENsdXR0ZXIuQWN0b3IgcmVsYXRpdmVfdG9fYW5jZXN0b3IpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTQ4ODUsMTAgKzQ4MzgsOSBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBnZXRfeV9leHBhbmQgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IGdldF96X3Bvc2l0aW9uICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X3pfcm90YXRp b25fZ3Jhdml0eSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2 b2lkIGdyYWJfa2V5X2ZvY3VzICgpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBoYXNfYWNjZXNz aWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgYm9vbCBo YXNfYWN0aW9ucyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00OTAwLDE4 ICs0ODUyLDIwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGhhc19lZmZl Y3RzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgaGFz X2tleV9mb2N1cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMg Ym9vbCBoYXNfbWFwcGVkX2Nsb25lcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K KyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaGFzX292ZXJsYXBzICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIi KV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVfYWxsICgpOwor KwkJcHVibGljIHZvaWQgaW5oaWJpdF9jdWxsaW5nICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGluc2VydF9jaGlsZF9hYm92ZSAoQ2x1dHRlci5BY3Rv ciBjaGlsZCwgQ2x1dHRlci5BY3Rvcj8gc2libGluZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0X2NoaWxkX2F0X2luZGV4IChDbHV0dGVyLkFj dG9yIGNoaWxkLCBpbnQgaW5kZXhfKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdm9pZCBpbnNlcnRfY2hpbGRfYmVsb3cgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENs dXR0ZXIuQWN0b3I/IHNpYmxpbmcpOworKwkJcHVibGljIHZvaWQgaW52YWxpZGF0ZV90cmFuc2Zv cm0gKCk7CisrCQlwdWJsaWMgYm9vbCBpc19lZmZlY3RpdmVseV9vbl9zdGFnZV92aWV3IChDbHV0 dGVyLlN0YWdlVmlldyB2aWV3KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyBib29sIGlzX2luX2Nsb25lX3BhaW50ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MjQiKV0KK0BAIC00OTI0LDMzICs0ODc4LDIwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBib29sIGlzX3NjYWxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisg CQlwdWJsaWMgYm9vbCBpc192aXNpYmxlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyIChD bHV0dGVyLkFjdG9yPyBhYm92ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXJfYm90dG9tICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBt YXAgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgbW92ZV9hbmNob3JfcG9p bnQgKGZsb2F0IGFuY2hvcl94LCBmbG9hdCBhbmNob3JfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQor LQkJcHVibGljIHZvaWQgbW92ZV9hbmNob3JfcG9pbnRfZnJvbV9ncmF2aXR5IChDbHV0dGVyLkdy YXZpdHkgZ3Jhdml0eSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMg dm9pZCBtb3ZlX2J5IChmbG9hdCBkeCwgZmxvYXQgZHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKyAJCXB1YmxpYyBib29sIG5lZWRzX2V4cGFuZCAoQ2x1dHRlci5PcmllbnRhdGlv biBvcmllbnRhdGlvbik7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBw YWludF9ub2RlIChDbHV0dGVyLlBhaW50Tm9kZSByb290KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgdm9pZCBwb3BfaW50ZXJuYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIHZvaWQgcHVzaF9pbnRlcm5hbCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdMaWIuTGlzdDxD bHV0dGVyLlN0YWdlVmlldz4gcGVla19zdGFnZV92aWV3cyAoKTsKKysJCXB1YmxpYyB2b2lkIHBp Y2tfYm94IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCwgQ2x1dHRlci5BY3RvckJv eCBib3gpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5GcmFtZUNsb2NrIHBpY2tfZnJhbWVf Y2xvY2sgKCk7CisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcXVldWVfcmVkcmF3X3dpdGhfY2xpcCAo Q2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZSAoQ2x1 dHRlci5BY3Rvcj8gYmVsb3cpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJhaXNlX3RvcCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9hY3Rpb24g KENsdXR0ZXIuQWN0aW9uIGFjdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitA QCAtNDk3Miw4ICs0OTEzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQg cmVtb3ZlX2VmZmVjdF9ieV9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX3RyYW5zaXRpb24gKHN0cmluZyBuYW1l KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgdm9pZCByZXBhcmVudCAoQ2x1dHRlci5B Y3RvciBuZXdfcGFyZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdm9pZCByZXBsYWNlX2NoaWxkIChDbHV0dGVyLkFjdG9yIG9sZF9jaGlsZCwgQ2x1dHRlci5B Y3RvciBuZXdfY2hpbGQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC00OTgx LDExICs0OTIwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNhdmVfZWFzaW5nX3N0YXRlICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGxvY2F0aW9uIChDbHV0 dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbmNob3JfcG9pbnQgKGZsb2F0IGFuY2hv cl94LCBmbG9hdCBhbmNob3JfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQg c2V0X2FuY2hvcl9wb2ludF9mcm9tX2dyYXZpdHkgKENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsK KysJCXB1YmxpYyB2b2lkIHNldF9hbGxvY2F0aW9uIChDbHV0dGVyLkFjdG9yQm94IGJveCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91 bmRfY29sb3IgKENsdXR0ZXIuQ29sb3I/IGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCitAQCAtNTAwOCw4ICs0OTQzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHZvaWQgc2V0X2NvbnRlbnRfcmVwZWF0IChDbHV0dGVyLkNvbnRlbnRSZXBlYXQgcmVwZWF0 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29u dGVudF9zY2FsaW5nX2ZpbHRlcnMgKENsdXR0ZXIuU2NhbGluZ0ZpbHRlciBtaW5fZmlsdGVyLCBD bHV0dGVyLlNjYWxpbmdGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2RlcHRoIChmbG9hdCBkZXB0aCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2Vhc2luZ19kZWxheSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorQEAgLTUwMzksOCArNDk3Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyB2b2lkIHNldF9vZmZzY3JlZW5fcmVkaXJlY3QgKENsdXR0ZXIuT2Zmc2Ny ZWVuUmVkaXJlY3QgcmVkaXJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X29wYWNpdHkgKHVpbnQ4 IG9wYWNpdHkpOworIAkJcHVibGljIHZvaWQgc2V0X29wYWNpdHlfb3ZlcnJpZGUgKGludCBvcGFj aXR5KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfcGFyZW50IChDbHV0dGVyLkFjdG9yIHBhcmVu dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Bp dm90X3BvaW50IChmbG9hdCBwaXZvdF94LCBmbG9hdCBwaXZvdF95KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCitAQCAtNTA1MCwxNiArNDk4MSwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfcmVhY3RpdmUgKGJvb2wgcmVhY3RpdmUpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3JlcXVlc3RfbW9kZSAo Q2x1dHRlci5SZXF1ZXN0TW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg dm9pZCBzZXRfcm90YXRpb24gKENsdXR0ZXIuUm90YXRlQXhpcyBheGlzLCBkb3VibGUgYW5nbGUs IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9yb3RhdGlvbl9hbmdsZSAoQ2x1dHRlci5Sb3RhdGVBeGlz IGF4aXMsIGRvdWJsZSBhbmdsZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlw dWJsaWMgdm9pZCBzZXRfc2NhbGUgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NjYWxlX2Z1bGwgKGRvdWJsZSBz Y2FsZV94LCBkb3VibGUgc2NhbGVfeSwgZmxvYXQgY2VudGVyX3gsIGZsb2F0IGNlbnRlcl95KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfd2l0aF9ncmF2aXR5 IChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ksIENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2Nh bGVfeiAoZG91YmxlIHNjYWxlX3opOworIAkJcHVibGljIHZvaWQgc2V0X3NpemUgKGZsb2F0IHdp ZHRoLCBmbG9hdCBoZWlnaHQpOworQEAgLTUwODUsMTcgKzUwMTAsMTIgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3lfZXhwYW5kIChib29sIGV4cGFuZCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3pfcG9zaXRpb24g KGZsb2F0IHpfcG9zaXRpb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF96X3JvdGF0aW9uX2Zyb21fZ3Jhdml0eSAoZG91YmxlIGFuZ2xlLCBDbHV0dGVyLkdyYXZpdHkg Z3Jhdml0eSk7CisgCQlwdWJsaWMgYm9vbCBzaG91bGRfcGlja19wYWludCAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC4yIildCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfYWxsICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGJvb2wgdHJhbnNmb3JtX3N0YWdlX3BvaW50 IChmbG9hdCB4LCBmbG9hdCB5LCBvdXQgZmxvYXQgeF9vdXQsIG91dCBmbG9hdCB5X291dCk7Cisr CQlwdWJsaWMgdm9pZCB1bmluaGliaXRfY3VsbGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdW5tYXAgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu MiIpXQorLQkJcHVibGljIHZvaWQgdW5wYXJlbnQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdm9pZCB1bnNldF9mbGFncyAoQ2x1dHRlci5BY3RvckZsYWdzIGZs YWdzKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxMDMsMTYgKzUwMjMsNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5BY3Rpb24gYWN0aW9ucyB7IHNldDsg fQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBhbGxvY2F0aW9uIHsgZ2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5 IGFuY2hvcl9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBhbmNob3JfeCB7IGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgZmxvYXQg YW5jaG9yX3kgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2Nh dGlvbiB7IG93bmVkIGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLkNvbG9yIGJhY2tncm91bmRfY29sb3IgeyBnZXQ7IHNldDsgfQorIAkJW05v QWNjZXNzb3JNZXRob2RdCitAQCAtNTEyMiwxMSArNTAzMyw4IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBjaGlsZF90 cmFuc2Zvcm1fc2V0IHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJs aWMgQ2x1dHRlci5HZW9tZXRyeSBjbGlwIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJl Y3QgY2xpcF9yZWN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0 IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCQlwdWJsaWMgYm9vbCBjbGlwX3RvX2FsbG9jYXRpb24geyBnZXQ7IHNldDsgfQorIAkJ W05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTE0MCw4ICs1MDQ4LDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQ29udGVudEdyYXZpdHkgY29udGVudF9ncmF2aXR5IHsg Z2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1 dHRlci5Db250ZW50UmVwZWF0IGNvbnRlbnRfcmVwZWF0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgZmxvYXQgZGVwdGggeyBnZXQ7IHNldDsgfQorIAkJW05vQWNj ZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgQ2x1 dHRlci5FZmZlY3QgZWZmZWN0IHsgc2V0OyB9CitAQCAtNTIxMSwxMiArNTExNywxMiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBvcGFjaXR5IHsgZ2V0OyBzZXQ7IH0KKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLlBvaW50IHBpdm90X3BvaW50IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1 YmxpYyBHcmFwaGVuZS5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IHBpdm90X3BvaW50X3og eyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUG9pbnQgcG9zaXRpb24geyBvd25lZCBnZXQ7 IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBz ZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIHJlYWN0 aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyMjUsOCArNTEz MSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0K KyAJCXB1YmxpYyBDbHV0dGVyLlJlcXVlc3RNb2RlIHJlcXVlc3RfbW9kZSB7IGdldDsgc2V0OyB9 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBmbG9hdCByZXNvdXJjZV9zY2FsZSB7 IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCisgCQlwdWJsaWMgZG91YmxlIHJvdGF0aW9uX2FuZ2xlX3ggeyBnZXQ7IHNldDsgfQorIAkJ W05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTIzNiwyNyArNTE0MCw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBkb3VibGUgcm90 YXRpb25fYW5nbGVfeiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3gg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQor LQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl95IHsgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeiB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHJv dGF0aW9uX2NlbnRlcl96X2dyYXZpdHkgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IHNjYWxlX2NlbnRlcl94IHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBmbG9hdCBzY2FsZV9jZW50ZXJfeSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHNj YWxlX2dyYXZpdHkgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91YmxlIHNjYWxlX3ggeyBnZXQ7IHNl dDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTI2OSw3ICs1MTUyLDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgc2hvd19vbl9zZXRfcGFyZW50IHsgZ2V0OyBz ZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlw dWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gdGV4dF9k aXJlY3Rpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTI5OSw4 ICs1MTgyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgeV9leHBhbmQg eyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBm bG9hdCB6X3Bvc2l0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhbGxvY2F0aW9uX2NoYW5nZWQgKENsdXR0ZXIuQWN0 b3JCb3ggYm94LCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBidXR0b25fcHJl c3NfZXZlbnQgKENsdXR0ZXIuQnV0dG9uRXZlbnQgZXZlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorQEAgLTUzMzEsMjIgKzUyMTIsMjUgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgbW90aW9uX2V2ZW50IChDbHV0dGVyLk1vdGlv bkV2ZW50IGV2ZW50KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg cGFyZW50X3NldCAoQ2x1dHRlci5BY3Rvcj8gb2xkX3BhcmVudCk7CisrCQlbSGFzRW1pdHRlcl0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIHBpY2sgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW0hhc0Vt aXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBxdWV1ZV9yZWxheW91dCAoKTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIwLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHJlYWxpemUgKCk7CisrCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCByZXNvdXJjZV9zY2FsZV9jaGFuZ2VkICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wg c2Nyb2xsX2V2ZW50IChDbHV0dGVyLlNjcm9sbEV2ZW50IGV2ZW50KTsKKyAJCVtIYXNFbWl0dGVy XQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgc2hvdyAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBzdGFnZV92aWV3c19jaGFuZ2Vk ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCBib29sIHRvdWNoX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCitAQCAtNTM1OCwyMSArNTI0MiwzMyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCB1bnJlYWxpemUgKCk7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2FjdG9yX21ldGFfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQWN0b3JNZXRhIDogR0xpYi5Jbml0 aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBBY3Rvck1ldGEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGdldF9lbmFibGVkICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9uYW1lICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2Fj dG9yIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZW5hYmxlZCAo Ym9vbCBpc19lbmFibGVkKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgc2V0X2VuYWJsZWQgKGJvb2wgaXNfZW5hYmxlZCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3Ig YWN0b3IgeyBnZXQ7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBi b29sIGVuYWJsZWQgeyBnZXQ7IHNldDsgfQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor IAkJcHVibGljIHN0cmluZyBuYW1lIHsgZ2V0OyBzZXQ7IH0KKyAJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0 b3Jfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQWN0b3JOb2RlIDogQ2x1dHRl ci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Us IHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBBY3Rvck5vZGUgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbGlnbl9jb25zdHJhaW50X2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIEFs aWduQ29uc3RyYWludCA6IENsdXR0ZXIuQ29uc3RyYWludCB7CitAQCAtNTM4MCw4MSArNTI3Niwx OCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQWxpZ25Db25zdHJhaW50IChDbHV0 dGVyLkFjdG9yPyBzb3VyY2UsIENsdXR0ZXIuQWxpZ25BeGlzIGF4aXMsIGZsb2F0IGZhY3Rvcik7 CisgCQlwdWJsaWMgQ2x1dHRlci5BbGlnbkF4aXMgZ2V0X2FsaWduX2F4aXMgKCk7CisgCQlwdWJs aWMgZmxvYXQgZ2V0X2ZhY3RvciAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9waXZvdF9wb2ludCAo b3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQpOworIAkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfc291cmNlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2FsaWdu X2F4aXMgKENsdXR0ZXIuQWxpZ25BeGlzIGF4aXMpOworIAkJcHVibGljIHZvaWQgc2V0X2ZhY3Rv ciAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyB2b2lkIHNldF9waXZvdF9wb2ludCAoR3JhcGhl bmUuUG9pbnQgcGl2b3RfcG9pbnQpOworIAkJcHVibGljIHZvaWQgc2V0X3NvdXJjZSAoQ2x1dHRl ci5BY3Rvcj8gc291cmNlKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkFsaWduQXhpcyBhbGlnbl9heGlz IHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgZmxvYXQgZmFjdG9yIHsgZ2V0OyBz ZXQgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBHcmFwaGVu ZS5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ2x1dHRl ci5BY3RvciBzb3VyY2UgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf YWxwaGFfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEFs cGhhIDogR0xpYi5Jbml0aWFsbHlVbm93bmVkLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEFscGhhICgp OworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIEFscGhhLmZ1bGwgKENsdXR0ZXIuVGltZWxp bmUgdGltZWxpbmUsIHVsb25nIG1vZGUpOworLQkJcHVibGljIGRvdWJsZSBnZXRfYWxwaGEgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVn aXN0ZXJfY2xvc3VyZSAoR0xpYi5DbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bG9uZyByZWdpc3Rlcl9mdW5jIChDbHV0dGVy LkFscGhhRnVuYyBmdW5jKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9jbG9zdXJlIChHTGliLkNsb3N1cmUgY2xvc3VyZSk7CistCQlwdWJsaWMgdm9p ZCBzZXRfZnVuYyAob3duZWQgQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbW9kZSAodWxvbmcgbW9kZSk7Cist CQlwdWJsaWMgdm9pZCBzZXRfdGltZWxpbmUgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUpOwor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIEFscGhhLndpdGhfZnVuYyAoQ2x1dHRlci5UaW1l bGluZSB0aW1lbGluZSwgb3duZWQgQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CistCQlwdWJsaWMg ZG91YmxlIGFscGhhIHsgZ2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIENsdXR0 ZXIuVGltZWxpbmUgdGltZWxpbmUgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmlt YXRpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGNsYXNzIEFu aW1hdGlvbiA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEFuaW1hdGlvbiAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJpbmQgKHN0cmluZyBwcm9wZXJ0 eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5p bWF0aW9uIGJpbmRfaW50ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBvd25lZCBDbHV0dGVy LkludGVydmFsIGludGVydmFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFscGhhIGdldF9hbHBoYSAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9kdXJhdGlv biAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW50ZXJ2YWwgZ2V0X2ludGVydmFsIChz dHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlwdWJsaWMgYm9vbCBnZXRfbG9vcCAoKTsKKy0JCXB1 YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdl dF9vYmplY3QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1l bGluZSAoKTsKKy0JCXB1YmxpYyBib29sIGhhc19wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25h bWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRl ci5BbHBoYSBhbHBoYSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHVpbnQgbXNlY3Mp OworLQkJcHVibGljIHZvaWQgc2V0X2xvb3AgKGJvb2wgbG9vcCk7CistCQlwdWJsaWMgdm9pZCBz ZXRfbW9kZSAodWxvbmcgbW9kZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb2JqZWN0IChHTGliLk9i amVjdCBvYmplY3QpOworLQkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVs aW5lPyB0aW1lbGluZSk7CistCQlwdWJsaWMgdm9pZCB1bmJpbmRfcHJvcGVydHkgKHN0cmluZyBw cm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIHVwZGF0 ZSAoc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgZmluYWwpOworLQkJcHVibGljIHZv aWQgdXBkYXRlX2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgQ2x1dHRlci5JbnRlcnZh bCBpbnRlcnZhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQWxwaGEg YWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNldDsg fQorLQkJcHVibGljIGJvb2wgbG9vcCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWxvbmcgbW9k ZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgR0xpYi5PYmplY3Qgb2JqZWN0IHsgZ2V0OyBzZXQ7 IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lIHsgZ2V0OyBzZXQ7IH0KKy0J CVtIYXNFbWl0dGVyXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY29tcGxldGVkICgp OworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc3RhcnRlZCAoKTsKKy0JfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC01 NDY3LDM3ICs1MzAwLDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf YmFja2VuZF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1 YmxpYyBjbGFzcyBCYWNrZW5kIDogR0xpYi5PYmplY3QgeworKwlwdWJsaWMgYWJzdHJhY3QgY2xh c3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBCYWNrZW5kICgpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3Jv dXApOworLQkJcHVibGljIHZvaWQgYmVsbF9ub3RpZnkgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgYm9vbCBjcmVhdGVfY29udGV4dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VX aW5kb3cgY3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVy cm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRl eHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLkZlYXR1cmVGbGFncyBn ZXRfZmVhdHVyZXMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X2RlZmF1 bHRfc2VhdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB1bm93 bmVkIENhaXJvLkZvbnRPcHRpb25zIGdldF9mb250X29wdGlvbnMgKCk7CisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLklucHV0TWV0aG9kIGdldF9pbnB1dF9tZXRob2QgKCk7CistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworIAkJcHVibGljIGRvdWJsZSBn ZXRfcmVzb2x1dGlvbiAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lk IGluaXRfZXZlbnRzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg aW5pdF9mZWF0dXJlcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29s IHBvc3RfcGFyc2UgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgYm9vbCBwcmVfcGFyc2UgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCByZWRyYXcgKENsdXR0ZXIuU3RhZ2Ugc3Rh Z2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Zv bnRfb3B0aW9ucyAoQ2Fpcm8uRm9udE9wdGlvbnMgb3B0aW9ucyk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfaW5wdXRfbWV0aG9kIChDbHV0dGVyLklucHV0TWV0aG9kIG1ldGhvZCk7CitAQCAtNTUwOCw5 NSArNTMxOCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2V0dGluZ3NfY2hhbmdlZCAoKTsKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfYmVoYXZpb3VyX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0J cHVibGljIGFic3RyYWN0IGNsYXNzIEJlaGF2aW91ciA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNj cmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHJvdGVjdGVkIEJlaGF2aW91ciAoKTsKKy0JCXB1YmxpYyB2b2lkIGFjdG9yc19mb3JlYWNo IChDbHV0dGVyLkJlaGF2aW91ckZvcmVhY2hGdW5jIGZ1bmMpOworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxwaGFfbm90aWZ5IChkb3VibGUgYWxwaGFfdmFsdWUpOwor LQkJcHVibGljIHZvaWQgYXBwbHkgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIEdM aWIuU0xpc3Q8d2VhayBDbHV0dGVyLkFjdG9yPiBnZXRfYWN0b3JzICgpOworLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7CistCQlwdWJsaWMgaW50IGdldF9uX2Fj dG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X250aF9hY3RvciAo aW50IGluZGV4Xyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9v bCBpc19hcHBsaWVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92 ZSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCist CQlwdWJsaWMgdm9pZCByZW1vdmVfYWxsICgpOworLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChD bHV0dGVyLkFscGhhIGFscGhhKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCB2b2lkIGFwcGxpZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVtb3ZlZCAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9kZXB0aF9n ZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJE ZXB0aCA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91 cioiKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJE ZXB0aCAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIGludCBkZXB0aF9zdGFydCwgaW50IGRlcHRoX2Vu ZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91 bmRzIChvdXQgaW50IGRlcHRoX3N0YXJ0LCBvdXQgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzIChpbnQgZGVwdGhf c3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX2VuZCB7IGdldDsgc2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0J CXB1YmxpYyBpbnQgZGVwdGhfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9i ZWhhdmlvdXJfb3BhY2l0eV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1Ymxp YyBjbGFzcyBCZWhhdmlvdXJPcGFjaXR5IDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91ck9wYWNpdHkgKENs dXR0ZXIuQWxwaGE/IGFscGhhLCB1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2Vu ZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91 bmRzIChvdXQgdWludDggb3BhY2l0eV9zdGFydCwgb3V0IHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKHVp bnQ4IG9wYWNpdHlfc3RhcnQsIHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0eV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBvcGFjaXR5X3N0YXJ0IHsgZ2V0OyBzZXQ7IH0K Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX3NjYWxlX2dldF90eXBlICgpIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9 ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJlaGF2aW91clNjYWxlIDogQ2x1dHRlci5CZWhhdmlv dXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJcHVibGljIEJlaGF2 aW91clNjYWxlIChDbHV0dGVyLkFscGhhPyBhbHBoYSwgZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRv dWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2Vu ZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYm91 bmRzIChvdXQgZG91YmxlIHhfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeV9zY2FsZV9zdGFydCwg b3V0IGRvdWJsZSB4X3NjYWxlX2VuZCwgb3V0IGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzIChkb3VibGUg eF9zY2FsZV9zdGFydCwgZG91YmxlIHlfc2NhbGVfc3RhcnQsIGRvdWJsZSB4X3NjYWxlX2VuZCwg ZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB4X3NjYWxlX2VuZCB7IGdldDsgc2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K Ky0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9zdGFydCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3Vi bGUgeV9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfc3RhcnQg eyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iaW5fbGF5b3V0X2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGNsYXNzIEJpbkxheW91dCA6 IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBC aW5MYXlvdXQgKENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdu bWVudC5TVEFSVCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbiA9IENsdXR0ZXIuQmluQWxp Z25tZW50LlNUQVJUKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBhZGQgKENs dXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIu QmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lk IGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBvdXQgQ2x1dHRlci5CaW5BbGln bm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/ IGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVu dCB5X2FsaWduKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKyAJ CXB1YmxpYyBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduIHsgZ2V0OyBzZXQ7IH0KK0BAIC01 NjQ0LDk4ICs1MzcwLDI5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJFZmZlY3QqIildCisgCQlw dWJsaWMgQmx1ckVmZmVjdCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYm94X2dldF90eXBlICgpIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIGNsYXNzIEJveCA6IENsdXR0 ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNv bnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgQm94IChDbHV0dGVyLkxheW91dE1hbmFnZXIgbWFuYWdlcik7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWFuYWdlciBn ZXRfbGF5b3V0X21hbmFnZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQg cGFjayAoQ2x1dHRlci5BY3RvciBhY3RvciwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgdm9pZCBwYWNrX2FmdGVyIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLkFjdG9y PyBzaWJsaW5nLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2tf YXQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBwb3NpdGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrX2JlZm9yZSAoQ2x1dHRlci5BY3RvciBhY3Rvciwg Q2x1dHRlci5BY3Rvcj8gc2libGluZywgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgdm9pZCBwYWNrdiAoQ2x1dHRlci5BY3RvciBhY3RvciwgW0NDb2RlIChhcnJheV9sZW5ndGhf Y25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSwgYXJyYXlfbGVu Z3RoX3R5cGUgPSAiZ3VpbnQiKV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9s ZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSwgYXJy YXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yPyBjb2xv cik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheW91dF9tYW5hZ2Vy IChDbHV0dGVyLkxheW91dE1hbmFnZXIgbWFuYWdlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgY29sb3Jfc2V0IHsgZ2V0 OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkxheW91dE1hbmFnZXIgbGF5b3V0X21hbmFnZXIg eyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ib3hfbGF5b3V0X2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGNsYXNzIEJveExheW91dCA6 IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBC b3hMYXlvdXQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsaWdu bWVudCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuQm94QWxpZ25tZW50IHhfYWxp Z24sIG91dCBDbHV0dGVyLkJveEFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgdWludCBnZXRfZWFzaW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIGJvb2wgZ2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIG91dCBib29sIHhfZmlsbCwgb3V0IGJvb2wgeV9maWxsKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGdldF9ob21vZ2VuZW91cyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5PcmllbnRhdGlvbiBnZXRf b3JpZW50YXRpb24gKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcGFja19zdGFydCAoKTsKKyAJCXB1 YmxpYyB1aW50IGdldF9zcGFjaW5nICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBi b29sIGdldF91c2VfYW5pbWF0aW9ucyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg Ym9vbCBnZXRfdmVydGljYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQg cGFjayAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCBleHBhbmQsIGJvb2wgeF9maWxsLCBib29s IHlfZmlsbCwgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5Cb3hBbGlnbm1l bnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdu bWVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeF9hbGlnbiwg Q2x1dHRlci5Cb3hBbGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2Vhc2luZ19kdXJhdGlvbiAodWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19tb2RlICh1bG9uZyBtb2RlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFj dG9yLCBib29sIGV4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfaG9tb2dlbmVv dXMgKGJvb2wgaG9tb2dlbmVvdXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9vcmllbnRhdGlvbiAoQ2x1dHRlci5PcmllbnRhdGlvbiBvcmllbnRh dGlvbik7CisgCQlwdWJsaWMgdm9pZCBzZXRfcGFja19zdGFydCAoYm9vbCBwYWNrX3N0YXJ0KTsK KyAJCXB1YmxpYyB2b2lkIHNldF9zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfYW5pbWF0aW9ucyAoYm9vbCBhbmltYXRlKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfdmVydGljYWwgKGJvb2wgdmVy dGljYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1aW50IGVhc2luZ19kdXJhdGlv biB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVsb25nIGVhc2lu Z19tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyBib29sIGhvbW9nZW5lb3VzIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbiB7IGdl dDsgc2V0OyB9CisgCQlwdWJsaWMgYm9vbCBwYWNrX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKyAJCXB1 YmxpYyB1aW50IHNwYWNpbmcgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyBib29sIHVzZV9hbmltYXRpb25zIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgYm9vbCB2ZXJ0aWNhbCB7IGdldDsgc2V0OyB9CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2JyaWdodG5lc3NfY29udHJhc3RfZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCitAQCAtNTc0OSw5ICs1NDA2LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRyYXN0IChmbG9hdCBjb250cmFzdCk7CisgCQlwdWJs aWMgdm9pZCBzZXRfY29udHJhc3RfZnVsbCAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQg Ymx1ZSk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJy aWdodG5lc3MgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuQ29sb3IgYnJpZ2h0bmVz cyB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBD bHV0dGVyLkNvbG9yIGNvbnRyYXN0IHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLkNv bG9yIGNvbnRyYXN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJ W0NvbXBhY3RdCitAQCAtNTc3MCwzNyArNTQyNyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Nh aXJvX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGNs YXNzIENhaXJvVGV4dHVyZSA6IENsdXR0ZXIuVGV4dHVyZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0 dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRl ckFjdG9yKiIpXQorLQkJcHVibGljIENhaXJvVGV4dHVyZSAodWludCB3aWR0aCwgdWludCBoZWln aHQpOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg Q2Fpcm8uQ29udGV4dCBjcmVhdGVfcmVnaW9uIChpbnQgeF9vZmZzZXQsIGludCB5X29mZnNldCwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyBib29sIGdldF9hdXRvX3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zdXJm YWNlX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZSAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfcmVjdGFuZ2xl IChDYWlyby5SZWN0YW5nbGVJbnQ/IHJlY3QpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmVzaXplIChib29sIHZhbHVlKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9zdXJmYWNlX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGF1dG9fcmVzaXplIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV9o ZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWlu dCBzdXJmYWNlX3dpZHRoIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBDYWlyby5TdXJmYWNlIGNyZWF0ZV9zdXJmYWNl ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmF3IChDYWlyby5Db250ZXh0IGNyKTsK Ky0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfY2FudmFzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBDYW52YXMgOiBHTGliLk9iamVjdCwgQ2x1dHRl ci5Db250ZW50IHsKK0BAIC01ODI3LDE3ICs1NDUzLDIwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIgeyBnZXQ7IGNvbnN0cnVjdDsg fQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9jbGlja19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgQ2xpY2tBY3Rpb24gOiBDbHV0dGVy LkFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIENsaWNrQWN0aW9uICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIHVpbnQgZ2V0X2J1dHRvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K KyAJCXB1YmxpYyB2b2lkIGdldF9jb29yZHMgKG91dCBmbG9hdCBwcmVzc194LCBvdXQgZmxvYXQg cHJlc3NfeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ2x1dHRl ci5Nb2RpZmllclR5cGUgZ2V0X3N0YXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIHZvaWQgcmVsZWFzZSAoKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgaGVsZCB7IGdldDsgfQor IAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAt NTg0Niw3ICs1NDc1LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorIAkJcHVibGljIGludCBsb25nX3ByZXNzX3RocmVzaG9sZCB7IGdldDsgc2V0 OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyBib29sIHByZXNzZWQgeyBnZXQ7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNsaWNrZWQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIGJvb2wgbG9uZ19wcmVzcyAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5M b25nUHJlc3NTdGF0ZSBzdGF0ZSk7CitAQCAtNTg4OCw4ICs1NTE5LDcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHJvdGVjdGVkIENvbnN0cmFpbnQgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJ cHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfYWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgQ2x1dHRlci5BY3RvckJveCBhbGxvY2F0aW9uKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgQ2x1dHRlci5PcmllbnRhdGlvbiBkaXJlY3Rpb24sIGZsb2F0IGZvcl9zaXplLCBmbG9hdCBt aW5pbXVtX3NpemUsIGZsb2F0IG5hdHVyYWxfc2l6ZSk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lk IHVwZGF0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Pcmll bnRhdGlvbiBkaXJlY3Rpb24sIGZsb2F0IGZvcl9zaXplLCByZWYgZmxvYXQgbWluaW11bV9zaXpl LCByZWYgZmxvYXQgbmF0dXJhbF9zaXplKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBh Y3RdCitAQCAtNTg5OCw2ICs1NTI4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHdlYWsgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2U7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVu dEZsYWdzIGZsYWdzOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciByZWxhdGVkOworKwkJ cHVibGljIHdlYWsgQ2x1dHRlci5FdmVudFNlcXVlbmNlIHNlcXVlbmNlOworIAkJcHVibGljIHdl YWsgQ2x1dHRlci5BY3RvciBzb3VyY2U7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLlN0YWdlIHN0 YWdlOworIAkJcHVibGljIHVpbnQzMiB0aW1lOworQEAgLTU5MzEsOTggKzU1NjIsMjEgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2ZhY3RvciAoZG91YmxlIGZhY3Rv cik7CisgCQlwdWJsaWMgZG91YmxlIGZhY3RvciB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2RldmljZV9tYW5hZ2VyX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIERldmljZU1hbmFnZXIgOiBHTGliLk9iamVj dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgRGV2aWNlTWFuYWdlciAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIGFkZF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5X3NldHRpbmdzIChD bHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBjb21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENs dXR0ZXIuRXZlbnQgdG9fZGlzY2FyZCk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1 YWxJbnB1dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VU eXBlIGRldmljZV90eXBlKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1 dERldmljZSBnZXRfY29yZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90 eXBlKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0 X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZp Y2UgZ2V0X2RldmljZSAoaW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgdm9pZCBnZXRfa2JkX2Ex MXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1Ymxp YyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbERldmljZVR5cGUgZ2V0X3N1cHBvcnRlZF92aXJ0dWFs X2RldmljZV90eXBlcyAoKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5JbnB1 dERldmljZT4gbGlzdF9kZXZpY2VzICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5TTGlzdDxD bHV0dGVyLklucHV0RGV2aWNlPiBwZWVrX2RldmljZXMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCByZW1vdmVfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRl dmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzZWxlY3Rfc3Rh Z2VfZXZlbnRzIChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9rYmRf YTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25l ZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9hZGRlZCAo Q2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRldmlj ZV9yZW1vdmVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQga2JkX2ExMXlfZmxhZ3NfY2hhbmdlZCAodWludCBzZXR0aW5nc19mbGFncywgdWludCBj aGFuZ2VkX21hc2spOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVf Y2hhbmdlZCAodWludCBsYXRjaGVkX21hc2ssIHVpbnQgbG9ja2VkX21hc2spOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QsIENs dXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhZ19hY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xh c3MgRHJhZ0FjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCistCQlwdWJsaWMg RHJhZ0FjdGlvbiAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVj dCBkcmFnX2FyZWEpOworLQkJcHVibGljIENsdXR0ZXIuRHJhZ0F4aXMgZ2V0X2RyYWdfYXhpcyAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2RyYWdfaGFuZGxlICgpOwor LQkJcHVibGljIHZvaWQgZ2V0X2RyYWdfdGhyZXNob2xkIChvdXQgdWludCB4X3RocmVzaG9sZCwg b3V0IHVpbnQgeV90aHJlc2hvbGQpOworLQkJcHVibGljIHZvaWQgZ2V0X21vdGlvbl9jb29yZHMg KG91dCBmbG9hdCBtb3Rpb25feCwgb3V0IGZsb2F0IG1vdGlvbl95KTsKKy0JCXB1YmxpYyB2b2lk IGdldF9wcmVzc19jb29yZHMgKG91dCBmbG9hdCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7 CistCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3Q/IGRyYWdfYXJlYSk7 CistCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19heGlzIChDbHV0dGVyLkRyYWdBeGlzIGF4aXMpOwor LQkJcHVibGljIHZvaWQgc2V0X2RyYWdfaGFuZGxlIChDbHV0dGVyLkFjdG9yPyBoYW5kbGUpOwor LQkJcHVibGljIHZvaWQgc2V0X2RyYWdfdGhyZXNob2xkIChpbnQgeF90aHJlc2hvbGQsIGludCB5 X3RocmVzaG9sZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCistCQlwdWJsaWMgYm9vbCBkcmFnX2FyZWFfc2V0IHsgZ2V0OyB9CistCQlwdWJsaWMgQ2x1 dHRlci5EcmFnQXhpcyBkcmFnX2F4aXMgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIu QWN0b3IgZHJhZ19oYW5kbGUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgaW50IHhfZHJhZ190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgaW50IHlfZHJhZ190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQor LQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJhZ19iZWdpbiAoQ2x1dHRlci5BY3RvciBh Y3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUg bW9kaWZpZXJzKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyYWdfZW5kIChDbHV0 dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBmbG9hdCBldmVudF95LCBDbHV0dGVyLk1v ZGlmaWVyVHlwZSBtb2RpZmllcnMpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJh Z19tb3Rpb24gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGRlbHRhX3gsIGZsb2F0IGRlbHRh X3kpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCBib29sIGRyYWdfcHJvZ3Jlc3MgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGRlbHRh X3gsIGZsb2F0IGRlbHRhX3kpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcm9wX2FjdGlvbl9nZXRfdHlw ZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBjbGFzcyBEcm9w QWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKy0JCXB1YmxpYyBEcm9wQWN0 aW9uICgpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgY2FuX2Ryb3AgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3kpOworLQkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgZHJvcCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRf eCwgZmxvYXQgZXZlbnRfeSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVi bGljIHNpZ25hbCB2b2lkIGRyb3BfY2FuY2VsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBl dmVudF94LCBmbG9hdCBldmVudF95KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIG92 ZXJfaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgb3Zlcl9vdXQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9lZmZl Y3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMg YWJzdHJhY3QgY2xhc3MgRWZmZWN0IDogQ2x1dHRlci5BY3Rvck1ldGEgeworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEVmZmVjdCAoKTsK KyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIGdldF9wYWludF92b2x1bWUg KENsdXR0ZXIuUGFpbnRWb2x1bWUgdm9sdW1lKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgbW9k aWZ5X3BhaW50X3ZvbHVtZSAoQ2x1dHRlci5QYWludFZvbHVtZSB2b2x1bWUpOworIAkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuRWZmZWN0UGFpbnRG bGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50 Q29udGV4dCBwYWludF9jb250ZXh0LCBDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOwor IAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5FZmZl Y3RQYWludEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRl ci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9w YWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVh bCBib29sIHByZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZXBhaW50 ICgpOworIAl9CitAQCAtNjAzMyw4ICs1NTg3LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBDbHV0dGVyLkV2ZW50VHlwZSB0eXBlOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIEV2ZW50IChDbHV0dGVyLkV2ZW50VHlwZSB0 eXBlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgc3RhdGljIHVp bnQgYWRkX2ZpbHRlciAoQ2x1dHRlci5TdGFnZT8gc3RhZ2UsIFtDQ29kZSAoZGVsZWdhdGVfdGFy Z2V0X3BvcyA9IDIuMiwgZGVzdHJveV9ub3RpZnlfcG9zID0gMi4xKV0gb3duZWQgQ2x1dHRlci5F dmVudEZpbHRlckZ1bmMgZnVuYyk7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudCBjb3B5ICgpOwor IAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKysJ CXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5FdmVudCBAZ2V0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBkb3VibGUgZ2V0X2FuZ2xlIChDbHV0dGVyLkV2ZW50IHRh cmdldCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjA3Myw3ICs1NjMxLDcg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0X21vZGVfZ3JvdXAgKCk7 CisgCQlwdWJsaWMgYm9vbCBnZXRfcGFkX2V2ZW50X2RldGFpbHMgKG91dCB1aW50IG51bWJlciwg b3V0IHVpbnQgbW9kZSwgb3V0IGRvdWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3Bvc2l0aW9uIChDbHV0dGVyLlBvaW50IHBvc2l0 aW9uKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb3NpdGlvbiAoR3JhcGhlbmUuUG9pbnQgcG9zaXRp b24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BY3RvciBnZXRfcmVsYXRlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CitAQCAtNjEwNiw4ICs1NjY0LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBi b29sIGhhc19zaGlmdF9tb2RpZmllciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CisgCQlwdWJsaWMgYm9vbCBpc19wb2ludGVyX2VtdWxhdGVkICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuRXZlbnQgcGVl ayAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHB1dCAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgc3RhdGljIHZvaWQg cmVtb3ZlX2ZpbHRlciAodWludCBpZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisg CQlwdWJsaWMgdm9pZCBzZXRfYnV0dG9uICh1aW50MzIgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KK0BAIC02MTQwLDE2ICs1NzAyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHZvaWQgc2V0X3N0YXRlIChDbHV0dGVyLk1vZGlmaWVyVHlwZSBzdGF0ZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGltZSAo dWludDMyIHRpbWVfKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkFueUV2ZW50IGFueSB7W0NDb2RlIChj bmFtZSA9ICIoQ2x1dHRlckFueUV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVy LkJ1dHRvbkV2ZW50IGJ1dHRvbiB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckJ1dHRvbkV2ZW50 ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkNyb3NzaW5nRXZlbnQgY3Jvc3Npbmcg e1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJDcm9zc2luZ0V2ZW50ICopIildICBnZXQ7IH0KKy0J CXB1YmxpYyBDbHV0dGVyLktleUV2ZW50IGtleSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlcktl eUV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLk1vdGlvbkV2ZW50IG1vdGlv biB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlck1vdGlvbkV2ZW50ICopIildICBnZXQ7IH0KKy0J CXB1YmxpYyBDbHV0dGVyLlNjcm9sbEV2ZW50IHNjcm9sbCB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1 dHRlclNjcm9sbEV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlN0YWdlU3Rh dGVFdmVudCBzdGFnZV9zdGF0ZSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclN0YWdlU3RhdGVF dmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Ub3VjaEV2ZW50IHRvdWNoIHtb Q0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJs aWMgQ2x1dHRlci5Ub3VjaHBhZFBpbmNoRXZlbnQgdG91Y2hwYWRfcGluY2gge1tDQ29kZSAoY25h bWUgPSAiKENsdXR0ZXJUb3VjaHBhZFBpbmNoRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGlj IENsdXR0ZXIuVG91Y2hwYWRTd2lwZUV2ZW50IHRvdWNocGFkX3N3aXBlIHtbQ0NvZGUgKGNuYW1l ID0gIihDbHV0dGVyVG91Y2hwYWRTd2lwZUV2ZW50ICopIildICBnZXQ7IH0KKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2V2ZW50X3NlcXVlbmNlX2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQor QEAgLTYxOTgsMTAgKzU3NTAsMjQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBib29sIHNuYXBfdG9fZ3JpZCB7IGdldDsgc2V0 OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZyYW1lX2Nsb2NrX2dldF90eXBlICgpIildCisrCXB1Ymxp YyBjbGFzcyBGcmFtZUNsb2NrIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHVibGljIEZyYW1lQ2xvY2sgKGZsb2F0IHJlZnJl c2hfcmF0ZSwgQ2x1dHRlci5GcmFtZUxpc3RlbmVySWZhY2UgaWZhY2UsIHZvaWQqIHVzZXJfZGF0 YSk7CisrCQlwdWJsaWMgdm9pZCBhZGRfdGltZWxpbmUgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxp bmUpOworKwkJcHVibGljIGZsb2F0IGdldF9yZWZyZXNoX3JhdGUgKCk7CisrCQlwdWJsaWMgdm9p ZCBpbmhpYml0ICgpOworKwkJcHVibGljIHZvaWQgcmVtb3ZlX3RpbWVsaW5lIChDbHV0dGVyLlRp bWVsaW5lIHRpbWVsaW5lKTsKKysJCXB1YmxpYyB2b2lkIHNjaGVkdWxlX3VwZGF0ZSAoKTsKKysJ CXB1YmxpYyB2b2lkIHNjaGVkdWxlX3VwZGF0ZV9ub3cgKCk7CisrCQlwdWJsaWMgdm9pZCB1bmlu aGliaXQgKCk7CisrCQlbSGFzRW1pdHRlcl0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXN0cm95 ICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZXN0dXJlX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1YmxpYyBjbGFzcyBHZXN0dXJlQWN0aW9uIDog Q2x1dHRlci5BY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKyAJCXB1YmxpYyBHZXN0dXJlQWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKyAJCXB1YmxpYyB2b2lkIGNhbmNlbCAoKTsKK0BAIC02MjExLDYgKzU3NzcsNyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNl IGdldF9kZXZpY2UgKHVpbnQgcG9pbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRXZlbnQgZ2V0X2xhc3RfZXZlbnQgKHVpbnQgcG9p bnQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgZ2V0X21v dGlvbl9jb29yZHMgKHVpbnQgcG9pbnQsIG91dCBmbG9hdCBtb3Rpb25feCwgb3V0IGZsb2F0IG1v dGlvbl95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQg Z2V0X21vdGlvbl9kZWx0YSAodWludCBwb2ludCwgb3V0IGZsb2F0IGRlbHRhX3gsIG91dCBmbG9h dCBkZWx0YV95KTsKK0BAIC02MjE4LDcgKzU3ODUsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdWludCBnZXRfbl9jdXJyZW50X3BvaW50cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCQlwdWJsaWMgaW50IGdldF9uX3RvdWNoX3BvaW50cyAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9wcmVzc19jb29yZHMg KHVpbnQgcG9pbnQsIG91dCBmbG9hdCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRfcmVsZWFzZV9jb29y ZHMgKHVpbnQgcG9pbnQsIG91dCBmbG9hdCByZWxlYXNlX3gsIG91dCBmbG9hdCByZWxlYXNlX3kp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuRXZlbnRTZXF1ZW5jZSBnZXRfc2VxdWVuY2UgKHVpbnQgcG9pbnQpOworQEAgLTYyNDYsOSAr NTgxNSwxMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgdGhyZXNob2xk X3RyaWdnZXJfZGlzdGFuY2VfeSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorIAkJcHVibGljIENsdXR0ZXIuR2VzdHVyZVRyaWdnZXJFZGdlIHRocmVz aG9sZF90cmlnZ2VyX2VkZ2UgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZ2VzdHVyZV9iZWdpbiAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBnZXN0dXJlX2NhbmNlbCAoQ2x1dHRlci5BY3RvciBh Y3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBnZXN0dXJlX2VuZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBnZXN0dXJl X3Byb2dyZXNzIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ3JpZF9s YXlvdXRfZ2V0X3R5cGUgKCkiKV0KK0BAIC02Mjc4LDE5ICs1ODUxLDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGJvb2wgcm93X2hvbW9nZW5lb3VzIHsgZ2V0OyBzZXQ7IH0KKyAJ CXB1YmxpYyB1aW50IHJvd19zcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf Z3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJs aWMgY2xhc3MgR3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIu QW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0 b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIEdyb3VwICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1 YmxpYyBpbnQgZ2V0X25fY2hpbGRyZW4gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfbnRoX2NoaWxkIChpbnQgaW5kZXhfKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCByZW1vdmVfYWxsICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9pbWFnZV9nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3Mg SW1hZ2UgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKK0BAIC02MzA2LDYgKzU4NjYs OCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1YmxpYyBjbGFzcyBJbnB1dERldmljZSA6IEdM aWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCXByb3RlY3RlZCBJbnB1dERldmljZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yIChDbHV0dGVyLkV2 ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJ CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2Fzc29jaWF0ZWRfZGV2aWNl ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzMTMsNyArNTg3NSw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1 YmxpYyBib29sIGdldF9heGlzX3ZhbHVlIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g ZG91YmxlW10gYXhlcywgQ2x1dHRlci5JbnB1dEF4aXMgYXhpcywgb3V0IGRvdWJsZSB2YWx1ZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2Nvb3Jk cyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSwgQ2x1dHRlci5Qb2ludCBwb2ludCk7 CisrCQlwdWJsaWMgYm9vbCBnZXRfY29vcmRzIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVl bmNlLCBHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgaW50IGdldF9kZXZpY2VfaWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCitAQCAtNjMyNSwxMiArNTg4Nyw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBnZXRfZGV2aWNlX3R5cGUgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKy0J CVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9nZXRfaW5wdXRfZGV2aWNlX2Zvcl9pZCIpXQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2 aWNlIGdldF9mb3JfaWQgKGludCBpZF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2dyYWJiZWRfYWN0b3IgKCk7Cist CQlwdWJsaWMgaW50IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworKwkJcHVibGljIHZp cnR1YWwgaW50IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19jdXJzb3IgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjM0NiwyMyArNTkwNSwyMSBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgaW50IGdldF9uX21vZGVfZ3JvdXBzICgpOworIAkJcHVibGlj IGludCBnZXRfbl9yaW5ncyAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fc3RyaXBzICgpOworLQkJ cHVibGljIGJvb2wgZ2V0X3BoeXNpY2FsX3NpemUgKGRvdWJsZSB3aWR0aCwgZG91YmxlIGhlaWdo dCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFjdG9yIGdldF9wb2ludGVyX2FjdG9yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TdGFnZSBnZXRfcG9pbnRlcl9zdGFnZSAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X3Byb2R1Y3RfaWQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0 X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgR0xpYi5M aXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gZ2V0X3NsYXZlX2RldmljZXMgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF92 ZW5kb3JfaWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZv aWQgZ3JhYiAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgYm9vbCBpc19ncm91cGVk IChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVyX2RldmljZSk7CistCQlwdWJsaWMgYm9vbCBpc19t b2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKysJCXB1YmxpYyB2 aXJ0dWFsIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZpY2Up OworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3Jv dXAsIHVpbnQgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZk ZXZfa2V5Y29kZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVp bnQgaGFyZHdhcmVfa2V5Y29kZSwgdWludCBldmRldl9rZXljb2RlKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHNlcXVlbmNl X2dldF9ncmFiYmVkX2FjdG9yIChDbHV0dGVyLkV2ZW50U2VxdWVuY2Ugc2VxdWVuY2UpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC02Mzc4LDEyICs1OTM1LDExIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHVuZ3JhYiAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9mcm9tX2V2ZW50IChDbHV0dGVy LkV2ZW50IGV2ZW50LCBib29sIHVwZGF0ZV9zdGFnZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVi bGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfZnJvbV90b29sIChDbHV0dGVyLklucHV0RGV2aWNlVG9v bCB0b29sKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorIAkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25z dHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorLQkJcHVibGljIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7IG93 bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dE1vZGUgZGV2aWNl X21vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHN0cmluZyBkZXZpY2Vfbm9kZSB7 IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAtNjQw Niw2ICs1OTYyLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHN0cmluZyBuYW1l IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIild CisgCQlwdWJsaWMgc3RyaW5nIHByb2R1Y3RfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVi bGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHZlbmRvcl9pZCB7IGdldDsgY29uc3Ry dWN0OyB9CisgCX0KK0BAIC02NDMwLDcgKzU5ODcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBjb21taXRfdGV4dCAoc3RyaW5n IHRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVsZXRlX3N1 cnJvdW5kaW5nICh1aW50IG9mZnNldCwgdWludCBsZW4pOworKwkJcHVibGljIHZpcnR1YWwgdm9p ZCBkZWxldGVfc3Vycm91bmRpbmcgKGludCBvZmZzZXQsIHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBi b29sIGZpbHRlcl9rZXlfZXZlbnQgKENsdXR0ZXIuS2V5RXZlbnQga2V5KTsKKyAJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGZvY3VzX2luIChDbHV0dGVyLklucHV0TWV0aG9k IGlucHV0X21ldGhvZCk7CitAQCAtNjQ0Myw3ICs2MDAwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHZvaWQgc2V0X2Nhbl9zaG93X3ByZWVkaXQgKGJvb2wgY2FuX3Nob3dfcHJl ZWRpdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29udGVudF9oaW50cyAoQ2x1dHRlci5JbnB1dENv bnRlbnRIaW50RmxhZ3MgaGludCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29udGVudF9wdXJwb3Nl IChDbHV0dGVyLklucHV0Q29udGVudFB1cnBvc2UgcHVycG9zZSk7CistCQlwdWJsaWMgdm9pZCBz ZXRfY3Vyc29yX2xvY2F0aW9uIChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfY3Vyc29yX2xvY2F0aW9uIChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQg c2V0X2lucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBzdGF0ZSk7Cisg CQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfcHJlZWRpdF90ZXh0IChz dHJpbmcgcHJlZWRpdCwgdWludCBjdXJzb3IpOworQEAgLTY0NjIsNyArNjAxOSw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJl c2V0ICgpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNv cl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBz ZXRfY3Vyc29yX2xvY2F0aW9uIChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQg c2V0X2lucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBzdGF0ZSk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfcHJlZWRpdF90ZXh0IChzdHJpbmc/IHByZWVkaXQsIHVpbnQgY3Vy c29yKTsKKyAJCVtOb1dyYXBwZXJdCitAQCAtNjQ3OSw5ICs2MDM2LDkgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuSW5wdXRDb250ZW50UHVycG9zZSBjb250ZW50X3B1 cnBvc2UgeyBnZXQ7IHNldDsgfQorIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgY29tbWl0IChzdHJpbmcgdGV4dCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2xv Y2F0aW9uX2NoYW5nZWQgKENsdXR0ZXIuUmVjdCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChHcmFwaGVuZS5SZWN0IG9iamVjdCk7CisgCQlb SGFzRW1pdHRlcl0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZWxldGVfc3Vycm91bmRpbmcgKHVp bnQgb2Zmc2V0LCB1aW50IGxlbik7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJv dW5kaW5nIChpbnQgb2Zmc2V0LCB1aW50IGxlbik7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5w dXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIG9iamVjdCk7CisgCQlbSGFz RW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCByZXF1ZXN0X3N1cnJvdW5kaW5nICgpOwor QEAgLTY1NTUsMjggKzYxMTIsMjggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEtleW1hcCAoKTsK KyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X2NhcHNfbG9ja19zdGF0ZSAoKTsKKysJCXB1Ymxp YyB2aXJ0dWFsIFBhbmdvLkRpcmVjdGlvbiBnZXRfZGlyZWN0aW9uICgpOworIAkJcHVibGljIHZp cnR1YWwgYm9vbCBnZXRfbnVtX2xvY2tfc3RhdGUgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg c3RhdGVfY2hhbmdlZCAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfbGF5ZXJfbm9kZV9nZXRfdHlwZSAo KSIpXQorKwlwdWJsaWMgY2xhc3MgTGF5ZXJOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBh aW50Tm9kZSoiKV0KKysJCXB1YmxpYyBMYXllck5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24s IENhaXJvLlJlY3RhbmdsZSB2aWV3cG9ydCwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgdWlu dDggb3BhY2l0eSk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2xheW91dF9tYW5hZ2VyX2dldF90eXBlICgp IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNz IExheW91dE1hbmFnZXIgOiBHTGliLkluaXRpYWxseVVub3duZWQgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIExheW91dE1hbmFnZXIg KCk7CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkNvbnRhaW5lciBj b250YWluZXIsIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbiwgQ2x1dHRlci5BbGxvY2F0aW9u RmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3du ZWQgQ2x1dHRlci5BbHBoYSBiZWdpbl9hbmltYXRpb24gKHVpbnQgZHVyYXRpb24sIHVsb25nIG1v ZGUpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIg Y29udGFpbmVyLCBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24pOworIAkJcHVibGljIHZvaWQg Y2hpbGRfZ2V0IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0 b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29u dGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25h bWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0IChDbHV0dGVy LkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJs aWMgdm9pZCBjaGlsZF9zZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwg Q2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFs dWUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5M YXlvdXRNZXRhIGNyZWF0ZV9jaGlsZF9tZXRhIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIs IENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgZW5kX2FuaW1hdGlvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuUGFyYW1T cGVjIGZpbmRfY2hpbGRfcHJvcGVydHkgKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgdmlydHVhbCBkb3VibGUgZ2V0X2FuaW1hdGlvbl9wcm9ncmVzcyAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5 b3V0TWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0 dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtOb1dyYXBwZXJdCitAQCAtNjYzMiwxMiArNjE4OSwxMiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuRWZmZWN0ICgpOwor IAkJcHVibGljIHZpcnR1YWwgQ29nbC5IYW5kbGUgY3JlYXRlX3RleHR1cmUgKGZsb2F0IHdpZHRo LCBmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1Ymxp YyBib29sIGdldF90YXJnZXRfcmVjdCAob3V0IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOwor KwkJcHVibGljIGJvb2wgZ2V0X3RhcmdldF9yZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0 IHJlY3QpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTQiLCBzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF90YXJnZXRfc2l6 ZSAob3V0IGZsb2F0IHdpZHRoLCBvdXQgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAo KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFyZ2V0ICgpOworKwkJcHVibGljIHZp cnR1YWwgdm9pZCBwYWludF90YXJnZXQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRl eHQpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWdlX3R1cm5fZWZmZWN0X2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC02NjU0LDYgKzYyMTEsMTcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGRvdWJsZSBwZXJpb2QgeyBnZXQ7IHNldDsgfQorIAkJ cHVibGljIGZsb2F0IHJhZGl1cyB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJf cGFpbnRfY29udGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF9nZXRf dHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF91bnJlZiIp XQorKwlbQ29tcGFjdF0KKysJcHVibGljIGNsYXNzIFBhaW50Q29udGV4dCB7CisrCQlwdWJsaWMg dm9pZCBkZXN0cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRf ZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24gZ2V0X3JlZHJh d19jbGlwICgpOworKwkJcHVibGljIHZvaWQgcG9wX2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGlj IHZvaWQgcHVzaF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7Cisr CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Q29udGV4dCBAcmVmICgpOworKwkJcHVibGlj IHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X25vZGVfZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNz IFBhaW50Tm9kZSB7CitAQCAtNjY2Myw3ICs2MjMxLDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHZvaWQgYWRkX211bHRpdGV4dHVyZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JC b3ggcmVjdCwgZmxvYXQgdGV4dF9jb29yZHMsIHVpbnQgdGV4dF9jb29yZHNfbGVuKTsKKyAJCXB1 YmxpYyB2b2lkIGFkZF9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCk7CisgCQlwdWJs aWMgdm9pZCBhZGRfdGV4dHVyZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxv YXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JCXB1YmxpYyB2b2lk IHBhaW50ICgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVi dWZmZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFp bnRfY29udGV4dCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Tm9kZSBAcmVmICgp OworIAkJcHVibGljIHZvaWQgc2V0X25hbWUgKHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lk IHVucmVmICgpOworQEAgLTY2ODEsNyArNjI1MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4 IGdldF9vcmlnaW4gKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfb3JpZ2luIChvdXQgdW5vd25lZCBH cmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisg CQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorQEAgLTY2OTEsNyArNjI2MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9oZWlnaHQgKGZsb2F0IGhlaWdo dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdm9pZCBzZXRfb3Jp Z2luIChDbHV0dGVyLlZlcnRleCBvcmlnaW4pOworKwkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAo R3JhcGhlbmUuUG9pbnQzRCBvcmlnaW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIHZvaWQgc2V0X3dpZHRoIChmbG9hdCB3aWR0aCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCitAQCAtNjc3OCw4OCArNjM0NywyOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgQ2x1dHRlci5QYXRoIHBhdGggeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIHNp Z25hbCB2b2lkIG5vZGVfcmVhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgdWludCBpbmRleCk7 CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg cmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGlja19jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9waWNrX2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVy X3BpY2tfY29udGV4dF91bnJlZiIpXQorKwlbQ29tcGFjdF0KKysJcHVibGljIGNsYXNzIFBpY2tD b250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLlBpY2tDb250ZXh0IEByZWYgKCk7CisrCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKysJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfcGlwZWxpbmVfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUGlwZWxpbmVOb2RlIDogQ2x1dHRlci5Q YWludE5vZGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor IAkJcHJvdGVjdGVkIFBpcGVsaW5lTm9kZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29w eSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Bv aW50X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorLQlwdWJsaWMgY2xhc3MgUG9pbnQgeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJs aWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5Qb2ludCBhbGxvYyAoKTsKKy0J CXB1YmxpYyBDbHV0dGVyLlBvaW50IGNvcHkgKCk7CistCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2Ug KENsdXR0ZXIuUG9pbnQgYiwgb3V0IGZsb2F0IHhfZGlzdGFuY2UsIG91dCBmbG9hdCB5X2Rpc3Rh bmNlKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5Qb2ludCBiKTsKKy0JCXB1Ymxp YyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IGluaXQgKGZs b2F0IHgsIGZsb2F0IHkpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUG9pbnQg emVybyAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcHJvcGVydHlfdHJhbnNpdGlvbl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUHJvcGVy dHlUcmFuc2l0aW9uIDogQ2x1dHRlci5UcmFuc2l0aW9uLCBDbHV0dGVyLlNjcmlwdGFibGUgewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRl clRyYW5zaXRpb24qIildCisgCQlwdWJsaWMgUHJvcGVydHlUcmFuc2l0aW9uIChzdHJpbmc/IHBy b3BlcnR5X25hbWUpOworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Us IHR5cGUgPSAiQ2x1dHRlclRyYW5zaXRpb24qIildCisrCQlwdWJsaWMgUHJvcGVydHlUcmFuc2l0 aW9uLmZvcl9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1l KTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9wcm9wZXJ0eV9uYW1lIChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJ cHVibGljIHN0cmluZyBwcm9wZXJ0eV9uYW1lIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0g ImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3JlY3RfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBjbGFzcyBSZWN0IHsKKy0JCXB1YmxpYyB3ZWFrIENs dXR0ZXIuUG9pbnQgb3JpZ2luOworLQkJcHVibGljIHdlYWsgQ2x1dHRlci5TaXplIHNpemU7Cist CQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuUmVjdCBhbGxvYyAoKTsKKy0JCXB1YmxpYyB2b2lkIGNs YW1wX3RvX3BpeGVsICgpOworLQkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKENsdXR0ZXIu UG9pbnQgcG9pbnQpOworLQkJcHVibGljIGJvb2wgY29udGFpbnNfcmVjdCAoQ2x1dHRlci5SZWN0 IGIpOworLQkJcHVibGljIENsdXR0ZXIuUmVjdCBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgZXF1 YWxzIChDbHV0dGVyLlJlY3QgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGlj IHZvaWQgZ2V0X2NlbnRlciAoQ2x1dHRlci5Qb2ludCBjZW50ZXIpOworLQkJcHVibGljIGZsb2F0 IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgpOworLQkJcHVibGlj IGZsb2F0IGdldF94ICgpOworLQkJcHVibGljIGZsb2F0IGdldF95ICgpOworLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5SZWN0IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBm bG9hdCBoZWlnaHQpOworLQkJcHVibGljIHZvaWQgaW5zZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95 KTsKKy0JCXB1YmxpYyBib29sIGludGVyc2VjdGlvbiAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIu UmVjdD8gcmVzKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3Qgbm9ybWFsaXplICgpOworLQkJcHVi bGljIHZvaWQgb2Zmc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgdm9pZCBz Y2FsZSAoZmxvYXQgc194LCBmbG9hdCBzX3kpOworLQkJcHVibGljIHZvaWQgdW5pb24gKENsdXR0 ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3QgcmVzKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBD bHV0dGVyLlJlY3QgemVybyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVjdGFuZ2xlX2dldF90eXBl ICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFJlY3Rh bmdsZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxl LCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgUmVjdGFuZ2xlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLkNvbG9yIGdldF9ib3JkZXJfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJ cHVibGljIHVpbnQgZ2V0X2JvcmRlcl93aWR0aCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ2x1dHRlci5D b2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvcmRlcl9jb2xvciAo Q2x1dHRlci5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZvaWQg c2V0X2JvcmRlcl93aWR0aCAodWludCB3aWR0aCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Nv bG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgUmVj dGFuZ2xlLndpdGhfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGljIENsdXR0 ZXIuQ29sb3IgYm9yZGVyX2NvbG9yIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IGJvcmRl cl93aWR0aCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb2xvciB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGhhc19ib3Jk ZXIgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIHZvaWQgc2V0X3Byb3BlcnR5X25hbWUgKHN0cmlu Zz8gcHJvcGVydHlfbmFtZSk7CisrCQlwdWJsaWMgc3RyaW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7 IHNldDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yb290X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVi bGljIGNsYXNzIFJvb3ROb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworQEAgLTY4ODAsMTUgKzYz OTAsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIFNjcmlwdCAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGFkZF9zZWFyY2hfcGF0aHMg KFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcGF0aHMiLCBhcnJheV9sZW5ndGhfcG9z ID0gMS4xLCBhcnJheV9sZW5ndGhfdHlwZSA9ICJnc2l6ZSIpXSBzdHJpbmdbXSBwYXRocyk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgYWRkX3N0YXRlcyAoc3RyaW5nPyBuYW1l LCBDbHV0dGVyLlN0YXRlIHN0YXRlKTsKKyAJCXB1YmxpYyB2b2lkIGNvbm5lY3Rfc2lnbmFscyAo dm9pZCogdXNlcl9kYXRhKTsKKyAJCXB1YmxpYyB2b2lkIGNvbm5lY3Rfc2lnbmFsc19mdWxsIChD bHV0dGVyLlNjcmlwdENvbm5lY3RGdW5jIGZ1bmMpOworIAkJcHVibGljIHZvaWQgZW5zdXJlX29i amVjdHMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0IChzdHJp bmcgbmFtZSk7CisgCQlwdWJsaWMgaW50IGdldF9vYmplY3RzICguLi4pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhdGUgZ2V0X3N0YXRlcyAoc3RyaW5n PyBuYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X3RyYW5zbGF0aW9uX2RvbWFpbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIEdM aWIuVHlwZSBnZXRfdHlwZV9mcm9tX25hbWUgKHN0cmluZyB0eXBlX25hbWUpOworQEAgLTY5MTYs OCArNjQyMiw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCXB1YmxpYyBT Y3JvbGxBY3RvciAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUgZ2V0X3Njcm9sbF9t b2RlICgpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50IChDbHV0dGVyLlBvaW50IHBv aW50KTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChDbHV0dGVyLlJlY3QgcmVjdCk7 CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsK KysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJ cHVibGljIHZvaWQgc2V0X3Njcm9sbF9tb2RlIChDbHV0dGVyLlNjcm9sbE1vZGUgbW9kZSk7Cisg CQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIHNjcm9sbF9tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJ fQorQEAgLTY5MzksNiArNjQ0NSw0NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg ZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZWF0X2dldF90 eXBlICgpIildCisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBTZWF0IDogR0xpYi5PYmplY3Qgewor KwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVk IFNlYXQgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9r YmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJ cHVibGljIHZpcnR1YWwgdm9pZCBiZWxsX25vdGlmeSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRv X2Rpc2NhcmQpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29weV9l dmVudF9kYXRhIChDbHV0dGVyLkV2ZW50IHNyYywgQ2x1dHRlci5FdmVudCBkZXN0KTsKKysJCXB1 YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbElucHV0RGV2aWNlIGNyZWF0ZV92aXJ0dWFsX2Rl dmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUpOworKwkJcHVibGljIHZv aWQgZW5zdXJlX2ExMXlfc3RhdGUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1 YWwgdm9pZCBmcmVlX2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworKwkJcHVibGlj IHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0 aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0 X2tleWJvYXJkICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLktleW1hcCBn ZXRfa2V5bWFwICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2 aWNlIGdldF9wb2ludGVyICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXJfYTExeV9zZXR0 aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyBi b29sIGdldF90b3VjaF9tb2RlICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdF91bmZvY3VzICgp OworKwkJcHVibGljIGJvb2wgaXNfdW5mb2N1c19pbmhpYml0ZWQgKCk7CisrCQlwdWJsaWMgR0xp Yi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gbGlzdF9kZXZpY2VzICgpOworKwkJcHVi bGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBz ZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5 cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1 YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlT ZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9pZCB1bmluaGliaXRfdW5mb2N1cyAoKTsK KysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgd2FycF9wb2ludGVyIChpbnQgeCwgaW50IHkpOworKwkJ W05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBv d25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIGJvb2wgdG91Y2hfbW9kZSB7IGdldDsg fQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERldmlj ZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0dGVy LklucHV0RGV2aWNlIG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgaXNfdW5mb2N1c19p bmhpYml0ZWRfY2hhbmdlZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9mbGFn c19jaGFuZ2VkICh1aW50IHNldHRpbmdzX2ZsYWdzLCB1aW50IGNoYW5nZWRfbWFzayk7CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfbW9kc19zdGF0ZV9jaGFuZ2VkICh1aW50IGxhdGNo ZWRfbWFzaywgdWludCBsb2NrZWRfbWFzayk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2Ex MXlfZHdlbGxfY2xpY2tfdHlwZV9jaGFuZ2VkIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlj a1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91 dF9zdGFydGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTEx eVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSwgdWludCBkZWxheSk7CisrCQlwdWJsaWMgc2lnbmFs IHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdG9wcGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmlj ZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSwgYm9vbCBjbGlj a2VkKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB0b29sX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXRE ZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlVG9vbCBwMCk7CisrCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3NldHRpbmdzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJcHVibGljIGNsYXNzIFNldHRpbmdzIDogR0xpYi5PYmplY3QgeworQEAgLTcwMTEsMTggKzY1 NTgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU2hhZGVyTWF0cml4ICgpOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rp b24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBl X2lkID0gImNsdXR0ZXJfc2l6ZV9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFNpemUgeworLQkJcHVibGljIGZs b2F0IGhlaWdodDsKKy0JCXB1YmxpYyBmbG9hdCB3aWR0aDsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1 dHRlci5TaXplIGFsbG9jICgpOworLQkJcHVibGljIENsdXR0ZXIuU2l6ZSBjb3B5ICgpOworLQkJ cHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVyLlNpemUgYik7CistCQlwdWJsaWMgdm9pZCBmcmVl ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TaXplIGluaXQgKGZsb2F0IHdpZHRoLCBm bG9hdCBoZWlnaHQpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zbmFwX2NvbnN0cmFpbnRfZ2V0X3R5cGUg KCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAlwdWJsaWMgY2xhc3MgU25hcENv bnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0cmFpbnQgeworQEAgLTcwNDMsMTM1ICs2NTc4LDY2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2VfZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBD bHV0dGVyLkdyb3VwLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRl ci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCXB1YmxpYyBjbGFzcyBTdGFnZSA6 IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0 dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBTdGFnZSAoKTsKKy0JCXB1YmxpYyBib29s IGNhcHR1cmUgKGJvb2wgcGFpbnQsIENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBDbHV0dGVyLkNh cHR1cmUgY2FwdHVyZXMsIGludCBuX2NhcHR1cmVzKTsKKyAJCXB1YmxpYyB2b2lkIGNhcHR1cmVf aW50byAoYm9vbCBwYWludCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIHVpbnQ4IGRhdGEpOwor KwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2Vfdmlld3MgKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfc3RhZ2VfZXZlbnQiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJ CXB1YmxpYyBib29sIGVtaXRfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGVu c3VyZV9jdXJyZW50ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgZW5zdXJlX3JlZHJhdyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIGVuc3VyZV92aWV3cG9ydCAoKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWV6ZV91 cGRhdGVzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIGJvb2wg Z2V0X2FjY2VwdF9mb2N1cyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X2FjdG9yX2F0X3BvcyAoQ2x1dHRlci5QaWNrTW9kZSBwaWNrX21vZGUsIGludCB4LCBpbnQgeSk7 CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0 ZXIuUGlja01vZGUgcGlja19tb2RlLCBmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBib29s IGdldF9jYXB0dXJlX2ZpbmFsX3NpemUgKENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBpbnQgd2lk dGgsIGludCBoZWlnaHQsIGZsb2F0IHNjYWxlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xv ciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuU3Rh Z2UgZ2V0X2RlZmF1bHQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIu Rm9nIGdldF9mb2cgKCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfZnVsbHNjcmVl biAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuQWN0b3IgZ2V0X2tleV9mb2N1cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKyAJCXB1YmxpYyB2b2lkIGdldF9taW5pbXVtX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQg dWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGJv b2wgZ2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9ub19jbGVhcl9oaW50ICgpOworIAkJcHVibGljIENs dXR0ZXIuUGVyc3BlY3RpdmUgZ2V0X3BlcnNwZWN0aXZlICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIENhaXJvLlJlY3RhbmdsZUludCBnZXRfcmVkcmF3X2NsaXBf Ym91bmRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wg Z2V0X3Rocm90dGxlX21vdGlvbl9ldmVudHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RpdGxlICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3VzZV9hbHBoYSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2ZvZyAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VyX3Jlc2l6YWJsZSAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGhpZGVfY3Vyc29y ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBib29sIGlzX2RlZmF1bHQgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgcXVldWVfcmVkcmF3ICgpOworKwkJcHVi bGljIGJvb2wgcGFpbnRfdG9fYnVmZmVyIChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgZmxvYXQg c2NhbGUsIHVpbnQ4IGRhdGEsIGludCBzdHJpZGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBD bHV0dGVyLlBhaW50RmxhZyBwYWludF9mbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJs aWMgdm9pZCBwYWludF90b19mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZl ciwgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIGZsb2F0IHNjYWxlLCBDbHV0dGVyLlBhaW50Rmxh ZyBwYWludF9mbGFncyk7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKyAJCXB1 YmxpYyB1aW50OFtdIHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCA9IC0xLCBp bnQgaGVpZ2h0ID0gLTEpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3JlZHJhdyIpXQor LQkJcHVibGljIHZvaWQgcmVkcmF3ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor LQkJcHVibGljIHZvaWQgc2V0X2FjY2VwdF9mb2N1cyAoYm9vbCBhY2NlcHRfZm9jdXMpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZvZyAoQ2x1dHRlci5Gb2cgZm9nKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mdWxsc2NyZWVu IChib29sIGZ1bGxzY3JlZW4pOworKwkJcHVibGljIHZvaWQgc2NoZWR1bGVfdXBkYXRlICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2tleV9mb2N1 cyAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor IAkJcHVibGljIHZvaWQgc2V0X21pbmltdW1fc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vdGlv bl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ub19jbGVhcl9oaW50IChib29sIG5vX2NsZWFyKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9wZXJzcGVjdGl2ZSAoQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJz cGVjdGl2ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfdGhyb3R0bGVfbW90aW9uX2V2ZW50cyAoYm9vbCB0aHJvdHRsZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2Fs cGhhIChib29sIHVzZV9hbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQg c2V0X3VzZV9mb2cgKGJvb2wgZm9nKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF91c2VyX3Jlc2l6YWJsZSAoYm9vbCByZXNpemFibGUpOworLQkJcHVi bGljIHZvaWQgc2hvd19jdXJzb3IgKCk7CistCQlwdWJsaWMgdm9pZCB0aGF3X3VwZGF0ZXMgKCk7 CistCQlwdWJsaWMgdm9pZCB1cGRhdGVfcmVzb3VyY2Vfc2NhbGVzICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIGJvb2wgYWNjZXB0X2ZvY3VzIHsgZ2V0OyBzZXQ7 IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGN1cnNvcl92aXNpYmxlIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5Gb2cgZm9nIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZnVsbHNjcmVl bl9zZXQgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBD bHV0dGVyLkFjdG9yIGtleV9mb2N1cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgYm9vbCBub19jbGVhcl9oaW50IHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBib29sIG9mZnNjcmVlbiB7IGdldDsg c2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5Q ZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5Q ZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorIAkJcHVibGljIHN0cmluZyB0aXRsZSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCB1c2VfYWxwaGEgeyBnZXQ7IHNldDsgfQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9mb2cgeyBnZXQ7IHNldDsgfQor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgdXNlcl9yZXNpemFi bGUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0aXZhdGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yMCIpXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGFmdGVyX3BhaW50ICgpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIGFmdGVyX3BhaW50IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBhZnRlcl91cGRhdGUgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIGJlZm9yZV9wYWludCAoQ2x1dHRlci5TdGFnZVZpZXcgdmll dyk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYmVmb3JlX3VwZGF0ZSAoQ2x1dHRlci5TdGFnZVZp ZXcgdmlldyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBkZWFjdGl2YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZGVsZXRlX2V2ZW50IChDbHV0dGVyLkV2 ZW50IGV2ZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIGZ1bGxzY3JlZW4gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCB1bmZ1bGxzY3JlZW4gKCk7CisrCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYWludF92aWV3IChDbHV0dGVyLlN0YWdlVmlldyB2 aWV3LCBDYWlyby5SZWdpb24gcmVkcmF3X2NsaXApOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGFnZV9t YW5hZ2VyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC03 MTg1LDggKzY2NTEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC44IildCisgCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuU3RhZ2U+IGxpc3Rf c3RhZ2VzICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5TTGlzdDxDbHV0dGVyLlN0YWdlPiBw ZWVrX3N0YWdlcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZWZh dWx0X3N0YWdlIChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlN0YWdlIGRlZmF1bHRfc3RhZ2UgeyBnZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03MjA2LDYzICs2NjcwLDMzIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1aW50MzIgdGltZTsKKyAJCXB1YmxpYyBDbHV0dGVy LkV2ZW50VHlwZSB0eXBlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGF0ZV9nZXRfdHlwZSAoKSIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBjbGFzcyBTdGF0ZSA6IEdMaWIu T2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2Vfdmlld19nZXRf dHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU3RhZ2VWaWV3IDogR0xpYi5PYmplY3QgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyBTdGF0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWlu dCBnZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0 X3N0YXRlX25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2Vh ayBDbHV0dGVyLlN0YXRlS2V5PiBnZXRfa2V5cyAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwg c3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBw cm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X3N0YXRlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGliLkxpc3Q8 d2VhayBzdHJpbmc+IGdldF9zdGF0ZXMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFt ZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5n PyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf ZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRl X25hbWUsIHVpbnQgZHVyYXRpb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuU3RhdGUgc2V0X2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3Ry aW5nIHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdCBvYmplY3QsIHN0cmluZyBwcm9wZXJ0 eV9uYW1lLCB1aW50IG1vZGUsIEdMaWIuVmFsdWUgdmFsdWUsIGRvdWJsZSBwcmVfZGVsYXksIGRv dWJsZSBwb3N0X2RlbGF5KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLlRpbWVsaW5lIHNldF9zdGF0ZSAoc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIHdhcnBf dG9fc3RhdGUgKHN0cmluZyB0YXJnZXRfc3RhdGVfbmFtZSk7CisrCQlwcm90ZWN0ZWQgU3RhZ2VW aWV3ICgpOworKwkJcHVibGljIHZvaWQgYXNzaWduX25leHRfc2Nhbm91dCAoQ29nbC5TY2Fub3V0 IHNjYW5vdXQpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVi dWZmZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfbGF5b3V0IChDYWlyby5SZWN0YW5nbGVJbnQg cmVjdCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGdldF9vZmZzY3JlZW5fdHJhbnNmb3JtYXRp b25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5G cmFtZWJ1ZmZlciBnZXRfb25zY3JlZW4gKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3NjYWxlICgp OworKwkJcHVibGljIHZvaWQgaW52YWxpZGF0ZV9vZmZzY3JlZW5fYmxpdF9waXBlbGluZSAoKTsK KysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldHVwX29mZnNjcmVlbl9i bGl0X3BpcGVsaW5lIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lKTsKKysJCVtOb1dyYXBwZXJdCisr CQlwdWJsaWMgdmlydHVhbCB2b2lkIHRyYW5zZm9ybV9yZWN0X3RvX29uc2NyZWVuIChDYWlyby5S ZWN0YW5nbGVJbnQgc3JjX3JlY3QsIGludCBkc3Rfd2lkdGgsIGludCBkc3RfaGVpZ2h0LCBDYWly by5SZWN0YW5nbGVJbnQgZHN0X3JlY3QpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNldDsgfQorKwkJcHVi bGljIENhaXJvLlJlY3RhbmdsZUludCBsYXlvdXQgeyBvd25lZCBnZXQ7IHNldCBjb25zdHJ1Y3Q7 IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBz dHJpbmcgc3RhdGUgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdf Ym94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3N0YXRlX2tleV9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgU3RhdGVLZXkgeworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3Bvc3RfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIGRvdWJsZSBnZXRfcHJlX2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgR0xpYi5UeXBlIGdldF9wcm9wZXJ0eV90eXBlICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc291cmNlX3N0 YXRlX25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF90YXJnZXRfc3RhdGVfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg Ym9vbCBnZXRfdmFsdWUgKEdMaWIuVmFsdWUgdmFsdWUpOworKwkJcHVibGljIHN0cmluZyBuYW1l IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVi bGljIGZsb2F0IHJlZnJlc2hfcmF0ZSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorKwkJW05vQWNj ZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgZmxvYXQgc2NhbGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7 IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuU3RhZ2Ugc3RhZ2Ug eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJs aWMgYm9vbCB1c2Vfc2hhZG93ZmIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9zd2lwZV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorQEAgLTcyNzQsNTMgKzY3MDgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc3dpcGUg KENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfdGFibGVfbGF5b3V0X2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAi MS40IildCistCXB1YmxpYyBjbGFzcyBUYWJsZUxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdl ciB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKy0JCXB1YmxpYyBUYWJsZUxheW91dCAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9y IGFjdG9yLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5U YWJsZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2NvbHVtbl9jb3VudCAo KTsKKy0JCXB1YmxpYyB1aW50IGdldF9jb2x1bW5fc3BhY2luZyAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdWludCBnZXRfZWFzaW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0 IGJvb2wgeF9leHBhbmQsIG91dCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBnZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9m aWxsLCBvdXQgYm9vbCB5X2ZpbGwpOworLQkJcHVibGljIGludCBnZXRfcm93X2NvdW50ICgpOwor LQkJcHVibGljIHVpbnQgZ2V0X3Jvd19zcGFjaW5nICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3Nw YW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBpbnQgY29sdW1uX3NwYW4sIG91dCBpbnQgcm93 X3NwYW4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfYW5pbWF0 aW9ucyAoKTsKKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBj b2x1bW4sIGludCByb3cpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9h bGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9h bGlnbiwgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9jb2x1bW5fc3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfZWFzaW5nX2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX21vZGUgKHVsb25nIG1vZGUpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9leHBhbmQgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIGJvb2wgeF9leHBhbmQsIGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZmls bCwgYm9vbCB5X2ZpbGwpOworLQkJcHVibGljIHZvaWQgc2V0X3Jvd19zcGFjaW5nICh1aW50IHNw YWNpbmcpOworLQkJcHVibGljIHZvaWQgc2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGlu dCBjb2x1bW5fc3BhbiwgaW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBzZXRfdXNlX2FuaW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlwdWJsaWMgdWlu dCBjb2x1bW5fc3BhY2luZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHVpbnQgZWFzaW5nX2R1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdWxvbmcgZWFzaW5nX21vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVp bnQgcm93X3NwYWNpbmcgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyBib29sIHVzZV9hbmltYXRpb25zIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFw X2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlw dWJsaWMgY2xhc3MgVGFwQWN0aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKK0BAIC03MzQ4 LDcgKzY3MzUsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xv ciBnZXRfY3Vyc29yX2NvbG9yICgpOworIAkJcHVibGljIGludCBnZXRfY3Vyc29yX3Bvc2l0aW9u ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9j dXJzb3JfcmVjdCAob3V0IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZv aWQgZ2V0X2N1cnNvcl9yZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJ cHVibGljIHVpbnQgZ2V0X2N1cnNvcl9zaXplICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2N1cnNv cl92aXNpYmxlICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2VkaXRhYmxlICgpOworQEAgLTc0Njcs NyArNjg1NCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE2IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsK KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3Jf ZXZlbnQgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkpOworKwkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgY3Vyc29yX2V2ZW50IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW0hhc0VtaXR0 ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg ZGVsZXRlX3RleHQgKGludCBzdGFydF9wb3MsIGludCBlbmRfcG9zKTsKK0BAIC03NTA1LDk0ICs2 ODkyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKyAJCXB1YmxpYyBU ZXh0Tm9kZSAoUGFuZ28uTGF5b3V0PyBsYXlvdXQsIENsdXR0ZXIuQ29sb3I/IGNvbG9yKTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLklt cGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVy LlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Us IHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBUZXh0dXJlICgpOworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFj dG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIFRleHR1cmUuZnJvbV9hY3RvciAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJ cHVibGljIFRleHR1cmUuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBDbHV0dGVy LlRleHR1cmVFcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9pZCBnZXRfYmFzZV9zaXplIChvdXQgaW50 IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVu b3duZWQgQ29nbC5IYW5kbGUgZ2V0X2NvZ2xfbWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIp XQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X2NvZ2xfdGV4dHVyZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBnZXRfZmls dGVyX3F1YWxpdHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2tl ZXBfYXNwZWN0X3JhdGlvICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdl dF9sb2FkX2FzeW5jICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9s b2FkX2RhdGFfYXN5bmMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGludCBnZXRf bWF4X3RpbGVfd2FzdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0 X3BpY2tfd2l0aF9hbHBoYSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBn ZXRfcmVwZWF0IChvdXQgYm9vbCByZXBlYXRfeCwgb3V0IGJvb2wgcmVwZWF0X3kpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9zeW5jX3NpemUgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIGJvb2wgc2V0X2FyZWFfZnJvbV9yZ2JfZGF0YSAoW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgYm9vbCBoYXNfYWxwaGEsIGludCB4 LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQgYnBwLCBD bHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvZ2xfbWF0ZXJpYWwgKENvZ2wuSGFuZGxlIGNv Z2xfbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2ds X3RleHR1cmUgKENvZ2wuSGFuZGxlIGNvZ2xfdGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgdm9pZCBzZXRfZmlsdGVyX3F1YWxpdHkgKENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmls dGVyX3F1YWxpdHkpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9t X2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAu NCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgd2lkdGgsIGlu dCBoZWlnaHQsIGludCByb3dzdHJpZGUsIGludCBicHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZs YWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9v bCBzZXRfZnJvbV95dXZfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4 W10gZGF0YSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFn cykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2tlZXBfYXNwZWN0X3JhdGlvIChib29sIGtlZXBfYXNwZWN0KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfbG9hZF9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbG9hZF9kYXRhX2FzeW5jIChib29s IGxvYWRfYXN5bmMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9waWNr X3dpdGhfYWxwaGEgKGJvb2wgcGlja193aXRoX2FscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfcmVwZWF0IChib29sIHJlcGVhdF94LCBib29sIHJlcGVhdF95KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3luY19zaXplIChib29sIHN5 bmNfc2l6ZSk7CistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb2dsX21hdGVyaWFsIHsgZ2V0OyBz ZXQ7IH0KKy0JCXB1YmxpYyBDb2dsLlRleHR1cmUgY29nbF90ZXh0dXJlIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGlzYWJsZV9zbGljaW5nIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBz dHJpbmcgZmlsZW5hbWUgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVGV4 dHVyZVF1YWxpdHkgZmlsdGVyX3F1YWxpdHkgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKy0JCXB1 YmxpYyBib29sIGtlZXBfYXNwZWN0X3JhdGlvIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgYm9vbCBsb2FkX2FzeW5jIHsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIGJvb2wgbG9hZF9kYXRhX2FzeW5jIHsgc2V0OyB9CistCQlwdWJsaWMgYm9v bCBwaWNrX3dpdGhfYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgYm9vbCByZXBlYXRfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBib29sIHJlcGVhdF95IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29s IHN5bmNfc2l6ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBpbnQgdGlsZV93YXN0ZSB7IGdldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCB2b2lkIGxvYWRfZmluaXNoZWQgKEdMaWIuRXJyb3IgZXJyb3IpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpeGJ1Zl9jaGFuZ2UgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2UgKGludCB3aWR0aCwgaW50IGhl aWdodCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgVGV4dHVyZU5vZGUgOiBD bHV0dGVyLlBpcGVsaW5lTm9kZSB7CitAQCAtNzYwNCw3ICs2OTAzLDcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAlwdWJsaWMgY2xhc3MgVGltZWxpbmUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBUaW1lbGluZSAodWludCBt c2Vjcyk7CisrCQlwdWJsaWMgVGltZWxpbmUgKHVpbnQgZHVyYXRpb25fbXMpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyB2b2lkIGFkZF9tYXJrZXIgKHN0cmluZyBt YXJrZXJfbmFtZSwgZG91YmxlIHByb2dyZXNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgi KV0KK0BAIC03NjEyLDEyICs2OTExLDE1IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB2b2lkIGFkdmFuY2UgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIp XQorIAkJcHVibGljIHZvaWQgYWR2YW5jZV90b19tYXJrZXIgKHN0cmluZyBtYXJrZXJfbmFtZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuVGltZWxpbmUgY2xvbmUgKCk7 CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMg VGltZWxpbmUuZm9yX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yLCB1aW50IGR1cmF0aW9uX21z KTsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1Ymxp YyBUaW1lbGluZS5mb3JfZnJhbWVfY2xvY2sgKENsdXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9jbG9j aywgdWludCBkdXJhdGlvbl9tcyk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdl dF9hY3RvciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29s IGdldF9hdXRvX3JldmVyc2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJ cHVibGljIGJvb2wgZ2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEs IENsdXR0ZXIuUG9pbnQgY18yKTsKKysJCXB1YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJv Z3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNfMSwgR3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X3JlcGVhdCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KK0BAIC03NjMxLDggKzY5MzMsNiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIGludDY0IGdldF9kdXJhdGlvbl9oaW50ICgpOworIAkJcHVibGljIHVpbnQgZ2V0X2VsYXBz ZWRfdGltZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9vcCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3Byb2dyZXNzICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03NjUxLDE4ICs2OTUxLDE4IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2 b2lkIHJlbW92ZV9tYXJrZXIgKHN0cmluZyBtYXJrZXJfbmFtZSk7CisgCQlwdWJsaWMgdm9pZCBy ZXdpbmQgKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfYWN0b3IgKENsdXR0ZXIuQWN0b3I/IGFjdG9y KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hdXRv X3JldmVyc2UgKGJvb2wgcmV2ZXJzZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBj XzEsIENsdXR0ZXIuUG9pbnQgY18yKTsKKysJCXB1YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJf cHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNfMSwgR3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kZWxheSAodWludCBt c2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBzZXRf ZGlyZWN0aW9uIChDbHV0dGVyLlRpbWVsaW5lRGlyZWN0aW9uIGRpcmVjdGlvbik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHVpbnQg bXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb29wIChib29sIGxvb3ApOworKwkJcHVi bGljIHZvaWQgc2V0X2ZyYW1lX2Nsb2NrIChDbHV0dGVyLkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2sp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wcm9n cmVzc19mdW5jIChvd25lZCBDbHV0dGVyLlRpbWVsaW5lUHJvZ3Jlc3NGdW5jPyBmdW5jKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzY3NCw2ICs2OTc0LDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2tpcCAodWludCBtc2Vjcyk7CisgCQlwdWJs aWMgdm9pZCBzdGFydCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN0b3AgKCk7CisrCQlwdWJsaWMgQ2x1 dHRlci5BY3RvciBhY3RvciB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgYXV0b19yZXZlcnNlIHsgZ2V0OyBzZXQ7IH0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KK0BAIC03NjgyLDggKzY5ODMsOCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGluZURpcmVjdGlvbiBkaXJl Y3Rpb24geyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVi bGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBib29sIGxvb3Ag eyBnZXQ7IHNldDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5G cmFtZUNsb2NrIGZyYW1lX2Nsb2NrIHsgb3duZWQgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQW5pbWF0aW9uTW9k ZSBwcm9ncmVzc19tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCitAQCAtNzY5NywxMiArNjk5OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzdG9w cGVkIChib29sIGlzX2ZpbmlzaGVkKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBUaW1l b3V0UG9vbCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwdWJsaWMgVGltZW91dFBvb2wgKGludCBwcmlvcml0eSk7CistCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc3NTMsNiAr NzA0OCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1 YmxpYyBmbG9hdCB5OworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90cmFuc2Zvcm1fbm9kZV9nZXRfdHlwZSAo KSIpXQorKwlwdWJsaWMgY2xhc3MgVHJhbnNmb3JtTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsK KysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgVHJhbnNmb3JtTm9kZSAoQ29nbC5NYXRyaXggcHJv amVjdGlvbik7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFRyYW5z aXRpb24gOiBDbHV0dGVyLlRpbWVsaW5lLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTc3OTIs NyArNzA5Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBWaXJ0dWFsSW5wdXREZXZpY2UgKCk7 CisgCQlwdWJsaWMgaW50IGdldF9kZXZpY2VfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRfbWFuYWdlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgbm90aWZ5X2Fic29sdXRlX21vdGlvbiAodWludDY0IHRpbWVfdXMsIGRvdWJsZSB4LCBkb3Vi bGUgeSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9idXR0b24gKHVpbnQ2NCB0aW1l X3VzLCB1aW50MzIgYnV0dG9uLCBDbHV0dGVyLkJ1dHRvblN0YXRlIGJ1dHRvbl9zdGF0ZSk7Cisg CQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9kaXNjcmV0ZV9zY3JvbGwgKHVpbnQ2NCB0aW1l X3VzLCBDbHV0dGVyLlNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIENsdXR0ZXIuU2Nyb2xsU291 cmNlIHNjcm9sbF9zb3VyY2UpOworQEAgLTc4MDMsMjggKzcxMDIsMjcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfZG93biAodWludDY0 IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1 YWwgdm9pZCBub3RpZnlfdG91Y2hfbW90aW9uICh1aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRv dWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF91 cCAodWludDY0IHRpbWVfdXMsIGludCBzbG90KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsg Y29uc3RydWN0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5 cGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMg Q2x1dHRlci5TZWF0IHNlYXQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl96b29tX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorIAlwdWJsaWMgY2xhc3MgWm9vbUFjdGlvbiA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0aW9uKiIpXQorIAkJcHVibGljIFpvb21BY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBn ZXRfZm9jYWxfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJcHVibGljIHZvaWQgZ2V0 X3RyYW5zZm9ybWVkX2ZvY2FsX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKysJCXB1Ymxp YyB2b2lkIGdldF9mb2NhbF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworKwkJcHVibGlj IHZvaWQgZ2V0X3RyYW5zZm9ybWVkX2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7 CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhpcyBnZXRfem9vbV9heGlzICgpOworIAkJcHVibGlj IHZvaWQgc2V0X3pvb21fYXhpcyAoQ2x1dHRlci5ab29tQXhpcyBheGlzKTsKKyAJCXB1YmxpYyBD bHV0dGVyLlpvb21BeGlzIHpvb21fYXhpcyB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBvaW50IGZv Y2FsX3BvaW50LCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29s IHpvb20gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIEdyYXBoZW5lLlBvaW50IGZvY2FsX3BvaW50LCBk b3VibGUgZmFjdG9yKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2NuYW1lID0gIkNsdXR0ZXJBbmltYXRhYmxlSW50ZXJmYWNlIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2FuaW1hdGFibGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGlu dGVyZmFjZSBBbmltYXRhYmxlIDogR0xpYi5PYmplY3QgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIGFic3RyYWN0IGJvb2wgYW5pbWF0ZV9wcm9wZXJ0eSAoQ2x1dHRlci5BbmltYXRpb24g YW5pbWF0aW9uLCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBpbml0aWFsX3ZhbHVl LCBHTGliLlZhbHVlIGZpbmFsX3ZhbHVlLCBkb3VibGUgcHJvZ3Jlc3MsIEdMaWIuVmFsdWUgdmFs dWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHVu b3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUp OworKwkJcHVibGljIGFic3RyYWN0IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBn ZXRfaW5pdGlhbF9zdGF0ZSAoc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTc4MzUsMTIgKzcxMzMsOSBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jb250YWluZXJfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIENvbnRhaW5l ciA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1YmxpYyB2b2lkIGFkZCAocGFyYW1zIENsdXR0ZXIuQWN0 b3JbXSBhY3RvcnMpOworIAkJW0NDb2RlICh2ZnVuY19uYW1lID0gImFkZCIpXQorIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9hY3RvciAoQ2x1dHRlci5BY3Rv ciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgYWRkX3ZhbGlzdCAo Q2x1dHRlci5BY3RvciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIC4uLik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzg2MCwx OCArNzE1NSwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lk IGRlc3Ryb3lfY2hpbGRfbWV0YSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGZpbmRfY2hp bGRfYnlfbmFtZSAoc3RyaW5nIGNoaWxkX25hbWUpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5IildCistCQlwdWJsaWMgY2xh c3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgcHJv cGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQg QGZvcmVhY2ggKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZm9yZWFjaF93aXRoX2ludGVybmFscyAoQ2x1dHRlci5D YWxsYmFjayBjYWxsYmFjayk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQ2hpbGRNZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0 dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgR0xpYi5MaXN0 PHdlYWsgQ2x1dHRlci5BY3Rvcj4gZ2V0X2NoaWxkcmVuICgpOworLQkJW0NDb2RlIChjbmFtZSA9 ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19saXN0X2NoaWxkX3Byb3BlcnRpZXMiKV0KKy0JCXB1 YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjW10gbGlzdF9jaGlsZF9wcm9wZXJ0aWVz ICgpOworIAkJW0NDb2RlICh2ZnVuY19uYW1lID0gImxvd2VyIildCisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIp XQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBsb3dlcl9jaGlsZCAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgQ2x1dHRlci5BY3Rvcj8gc2libGluZyA9IG51bGwpOworQEAgLTc4ODMsOCArNzE3MCw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJyZW1vdmUiKV0K KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmVfYWN0b3Ig KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHJlbW92ZV92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2Fy Z3MpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNvcnRfZGVw dGhfb3JkZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhY3Rvcl9hZGRlZCAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CitAQCAtNzkwMSw3ICs3MTg2LDcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgaW52YWxpZGF0ZSAoKTsKKyAJCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIGludmFsaWRhdGVfc2l6ZSAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBD bHV0dGVyLlBhaW50Tm9kZSBub2RlKTsKKysJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2Nv bnRlbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUGFpbnROb2RlIG5vZGUsIENsdXR0 ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGF0dGFjaGVkIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzkxNSw0NyAr NzIwMCwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBz ZXRfY3VzdG9tX3Byb3BlcnR5IChDbHV0dGVyLlNjcmlwdCBzY3JpcHQsIHN0cmluZyBuYW1lLCBH TGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9pZCAoc3RyaW5n IGlkXyk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCXB1YmxpYyBpbnRlcmZhY2UgU3RhZ2VXaW5kb3cgOiBHTGliLk9iamVjdCB7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChD bHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5 KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgaW50IGdldF9wZW5kaW5nX3N3 YXBzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X3dyYXBwZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3Ry YWN0IGJvb2wgaGFzX3JlZHJhd19jbGlwcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg YWJzdHJhY3Qgdm9pZCBoaWRlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFj dCBib29sIGlnbm9yaW5nX3JlZHJhd19jbGlwcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgYWJzdHJhY3QgYm9vbCByZWFsaXplICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBh YnN0cmFjdCB2b2lkIHJlc2l6ZSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfY3Vyc29yX3Zpc2libGUgKGJvb2wgY3Vy c29yX3Zpc2libGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNl dF9mdWxsc2NyZWVuIChib29sIGlzX2Z1bGxzY3JlZW4pOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyBhYnN0cmFjdCB2b2lkIHNldF90aXRsZSAoc3RyaW5nIHRpdGxlKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdXNlcl9yZXNpemFibGUgKGJvb2wgaXNf cmVzaXphYmxlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93 IChib29sIGRvX3JhaXNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCB1bnJlYWxpemUgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9YIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rp b24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBl X2lkID0gImNsdXR0ZXJfYWN0b3JfYm94X2dldF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3Qg QWN0b3JCb3ggeworIAkJcHVibGljIGZsb2F0IHgxOworIAkJcHVibGljIGZsb2F0IHkxOworIAkJ cHVibGljIGZsb2F0IHgyOworIAkJcHVibGljIGZsb2F0IHkyOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJveD8gYWxsb2MgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19w aXhlbCAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGFtcF90b19waXhlbCAocmVmIENsdXR0 ZXIuQWN0b3JCb3ggYm94KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1Ymxp YyBib29sIGNvbnRhaW5zIChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KK0BAIC03OTY0LDggKzcyMTgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5BY3RvckJveCBib3hfYik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRpY2VzIildCistCQlwdWJsaWMgQWN0b3JC b3guZnJvbV92ZXJ0aWNlcyAoQ2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCitAQCAtNzk4Niw2ICs3MjM4LDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHZvaWQgaW5pdF9yZWN0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3 aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLkFjdG9yQm94IGludGVycG9sYXRlIChDbHV0dGVyLkFjdG9yQm94IGZpbmFs LCBkb3VibGUgcHJvZ3Jlc3MpOworKwkJcHVibGljIGJvb2wgaXNfaW5pdGlhbGl6ZWQgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQg c2NhbGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTgwMTEsNyArNzI2NCw3 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENhaXJvLlN1cmZhY2UgaW1h Z2U7CisgCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3Q7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVS X1RZUEVfQ09MT1IiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0g ImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jb2xvcl9nZXRfdHlwZSAoKSIpXQor IAlwdWJsaWMgc3RydWN0IENvbG9yIHsKKyAJCXB1YmxpYyB1aW50OCByZWQ7CisgCQlwdWJsaWMg dWludDggZ3JlZW47CitAQCAtODAyNywxMiArNzI4MCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5Db2xvciB2Mik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21faGxzIildCistCQlwdWJsaWMgQ29sb3IuZnJvbV9obHMg KGZsb2F0IGh1ZSwgZmxvYXQgbHVtaW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsKKy0JCVtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3BpeGVsIildCistCQlwdWJsaWMgQ29sb3Iu ZnJvbV9waXhlbCAodWludDMyIHBpeGVsKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9j b2xvcl9mcm9tX3N0cmluZyIpXQorLQkJcHVibGljIENvbG9yLmZyb21fc3RyaW5nIChzdHJpbmcg c3RyKTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCBmcm9tX2hscyAob3V0IENsdXR0ZXIuQ29sb3Ig Y29sb3IsIGZsb2F0IGh1ZSwgZmxvYXQgbHVtaW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsKKysJ CXB1YmxpYyBzdGF0aWMgdm9pZCBmcm9tX3BpeGVsIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwg dWludDMyIHBpeGVsKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBz dGF0aWMgYm9vbCBmcm9tX3N0cmluZyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHN0cmluZyBz dHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHN0YXRpYyB1bm93 bmVkIENsdXR0ZXIuQ29sb3I/IGdldF9zdGF0aWMgKENsdXR0ZXIuU3RhdGljQ29sb3IgY29sb3Ip OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVpbnQgaGFzaCAoKTsK K0BAIC04MDQxLDggKzcyOTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBpbnRlcnBvbGF0ZSAoQ2x1 dHRlci5Db2xvciBmaW5hbCwgZG91YmxlIHByb2dyZXNzKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkNv bG9yIGxpZ2h0ZW4gKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9z dHJpbmciKV0KKy0JCXB1YmxpYyBib29sIHBhcnNlX3N0cmluZyAoc3RyaW5nIHN0cik7CisgCQlw dWJsaWMgQ2x1dHRlci5Db2xvciBzaGFkZSAoZG91YmxlIGZhY3Rvcik7CisgCQlwdWJsaWMgQ2x1 dHRlci5Db2xvciBzdWJ0cmFjdCAoQ2x1dHRlci5Db2xvciBiKTsKKyAJCXB1YmxpYyB2b2lkIHRv X2hscyAob3V0IGZsb2F0IGh1ZSwgb3V0IGZsb2F0IGx1bWluYW5jZSwgb3V0IGZsb2F0IHNhdHVy YXRpb24pOworQEAgLTgwNTAsMjMgKzczMDAsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHN0cmluZyB0b19zdHJpbmcgKCk7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2ZvZ19nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQor LQlwdWJsaWMgc3RydWN0IEZvZyB7CistCQlwdWJsaWMgZmxvYXQgel9uZWFyOworLQkJcHVibGlj IGZsb2F0IHpfZmFyOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZW9tZXRyeV9nZXRfdHlwZSAoKSIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RydWN0IEdlb21ldHJ5IHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1Ymxp YyBpbnQgeTsKKy0JCXB1YmxpYyB1aW50IHdpZHRoOworLQkJcHVibGljIHVpbnQgaGVpZ2h0Owor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0cyAo Q2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeTEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgdW5pb24gKENsdXR0ZXIuR2VvbWV0cnkgZ2Vv bWV0cnlfYik7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IEZyYW1lTGlzdGVuZXJJ ZmFjZSB7CisrCQlwdWJsaWMgd2VhayBnbG9iYWw6OmJlZm9yZV9mcmFtZSBiZWZvcmVfZnJhbWU7 CisrCQlwdWJsaWMgd2VhayBnbG9iYWw6OmZyYW1lIGZyYW1lOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorIAlwdWJsaWMgc3RydWN0IEtiZEExMXlTZXR0aW5ncyB7CitAQCAtODA3OCw3ICs3MzE1LDcg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGludCBtb3VzZWtleXNfbWF4X3NwZWVk OworIAkJcHVibGljIGludCBtb3VzZWtleXNfYWNjZWxfdGltZTsKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf a25vdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RydWN0IEtub3Qgewor IAkJcHVibGljIGludCB4OworQEAgLTgwODcsOCArNzMyNCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5Lbm90IGtub3RfYik7CisgCQlwdWJs aWMgdm9pZCBmcmVlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKyAJcHVibGljIHN0cnVj dCBNYXRyaXggOiBDb2dsLk1hdHJpeCB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor KwkJcHVibGljIHN0YXRpYyBDbHV0dGVyLk1hdHJpeD8gYWxsb2MgKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHZvaWQgZnJlZSAoKTsKKysJCXB1YmxpYyBzdGF0 aWMgR0xpYi5UeXBlIGdldF90eXBlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K KysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTWF0cml4PyBpbml0X2Zyb21fYXJyYXkgKFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCB2YWx1ZXNbMTZdKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLk1hdHJpeD8gaW5p dF9mcm9tX21hdHJpeCAoQ2x1dHRlci5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5NYXRyaXg/IGluaXRfaWRlbnRpdHkg KCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgUGFkQnV0dG9uRXZlbnQg eworQEAgLTgxMzAsNyArNzM3OCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBk b3VibGUgdmFsdWU7CisgCQlwdWJsaWMgdWludDMyIG1vZGU7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Bh dGhfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVu Y3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3Qg UGF0aE5vZGUgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aE5vZGVUeXBlIHR5cGU7CitAQCAtODE0 MCw3ICs3Mzg4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwg KENsdXR0ZXIuUGF0aE5vZGUgbm9kZV9iKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hl ZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0 ZXJfcGVyc3BlY3RpdmVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorIAlwdWJsaWMgc3RydWN0IFBlcnNwZWN0aXZlIHsKKyAJCXB1YmxpYyBmbG9hdCBmb3Z5Owor QEAgLTgxNDksNiArNzM5NywxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxv YXQgel9mYXI7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBzdHJ1Y3QgUG9pbnRlckEx MXlTZXR0aW5ncyB7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUZsYWdzIGNvbnRyb2xz OworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBkd2VsbF9jbGlj a190eXBlOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbE1vZGUgZHdlbGxfbW9k ZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2Vz dHVyZV9zaW5nbGU7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9u IGR3ZWxsX2dlc3R1cmVfZG91YmxlOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2Vs bERpcmVjdGlvbiBkd2VsbF9nZXN0dXJlX2RyYWc7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVy QTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVfc2Vjb25kYXJ5OworKwkJcHVibGljIGlu dCBzZWNvbmRhcnlfY2xpY2tfZGVsYXk7CisrCQlwdWJsaWMgaW50IGR3ZWxsX2RlbGF5OworKwkJ cHVibGljIGludCBkd2VsbF90aHJlc2hvbGQ7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjI4IildCisgCXB1YmxpYyBzdHJ1Y3QgUHJveGltaXR5RXZlbnQgewor IAkJcHVibGljIENsdXR0ZXIuRXZlbnRUeXBlIHR5cGU7CitAQCAtODE1OCw0NyArNzQxOSwxNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLkFjdG9yIHNvdXJj ZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Q0xVVFRFUl9UWVBFX1VOSVRTIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5j dGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfdW5pdHNfZ2V0X3R5cGUg KCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFVuaXRz IHsKKyAJCXB1YmxpYyBDbHV0dGVyLlVuaXRzPyBjb3B5ICgpOworIAkJcHVibGljIHZvaWQgZnJl ZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2NtIildCistCQlw dWJsaWMgVW5pdHMuZnJvbV9jbSAoZmxvYXQgY20pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX3VuaXRzX2Zyb21fZW0iKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX2VtIChmbG9hdCBlbSk7 CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9lbV9mb3JfZm9udCIpXQor LQkJcHVibGljIFVuaXRzLmZyb21fZW1fZm9yX2ZvbnQgKHN0cmluZyBmb250X25hbWUsIGZsb2F0 IGVtKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX21tIildCistCQlw dWJsaWMgVW5pdHMuZnJvbV9tbSAoZmxvYXQgbW0pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX3VuaXRzX2Zyb21fcGl4ZWxzIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9waXhlbHMgKGlu dCBweCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9wdCIpXQorLQkJ cHVibGljIFVuaXRzLmZyb21fcHQgKGZsb2F0IHB0KTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl91bml0c19mcm9tX3N0cmluZyIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fc3RyaW5nIChz dHJpbmcgc3RyKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlVuaXRUeXBlIGdldF91bml0X3R5cGUgKCk7 CisgCQlwdWJsaWMgZmxvYXQgZ2V0X3VuaXRfdmFsdWUgKCk7CisgCQlwdWJsaWMgZmxvYXQgdG9f cGl4ZWxzICgpOworIAkJcHVibGljIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3ZlcnRleF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCist CXB1YmxpYyBzdHJ1Y3QgVmVydGV4IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZs b2F0IHk7CistCQlwdWJsaWMgZmxvYXQgejsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuVmVydGV4PyBhbGxvYyAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleD8gY29weSAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVy LlZlcnRleCB2ZXJ0ZXhfYik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdm9pZCBmcmVlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuVmVydGV4PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6 KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjcHJlZml4ID0gIkNMVVRURVJfQUNUT1JfQUxJR05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Fj dG9yX2FsaWduX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CXB1YmxpYyBlbnVtIEFjdG9yQWxpZ24geworQEAgLTgyMjMsMTQgKzc0NTMsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlZX0FYSVMsCisgCQlCT1RICisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSXyIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9hbGxvY2F0aW9uX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFn c10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBBbGxvY2F0aW9u RmxhZ3MgeworLQkJQUxMT0NBVElPTl9OT05FLAorLQkJQUJTT0xVVEVfT1JJR0lOX0NIQU5HRUQs CistCQlERUxFR0FURV9MQVlPVVQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2FuaW1hdGlvbl9tb2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJcHVibGljIGVudW0gQW5pbWF0aW9uTW9kZSB7CitAQCAtODMzNiw2ICs3NTU4LDI3 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVlfQVhJUywKKyAJCUJPVEgKKyAJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNM VVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCki KV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBEZWJ1Z0ZsYWcgeworKwkJTUlTQywKKysJCUFD VE9SLAorKwkJVEVYVFVSRSwKKysJCUVWRU5ULAorKwkJUEFJTlQsCisrCQlQQU5HTywKKysJCUJB Q0tFTkQsCisrCQlTQ0hFRFVMRVIsCisrCQlTQ1JJUFQsCisrCQlTSEFERVIsCisrCQlNVUxUSVNU QUdFLAorKwkJQU5JTUFUSU9OLAorKwkJTEFZT1VULAorKwkJUElDSywKKysJCUVWRU5UTE9PUCwK KysJCUNMSVBQSU5HLAorKwkJT09CX1RSQU5TRk9STVMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRFJBR18i LCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhZ19heGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGVudW0gRHJhZ0F4aXMgeworQEAgLTgzNDMsMTEg Kzc1ODYsMjQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWF9BWElTLAorIAkJWV9BWElTCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF9BQ1RPUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJf ZWZmZWN0X3BhaW50X2ZsYWdzX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR18iLCB0 eXBlX2lkID0gImNsdXR0ZXJfZHJhd19kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFn c10KKysJcHVibGljIGVudW0gRHJhd0RlYnVnRmxhZyB7CisrCQlESVNBQkxFX1NXQVBfRVZFTlRT LAorKwkJRElTQUJMRV9DTElQUEVEX1JFRFJBV1MsCisrCQlSRURSQVdTLAorKwkJUEFJTlRfVk9M VU1FUywKKysJCURJU0FCTEVfQ1VMTElORywKKysJCURJU0FCTEVfT0ZGU0NSRUVOX1JFRElSRUNU LAorKwkJQ09OVElOVU9VU19SRURSQVcsCisrCQlQQUlOVF9ERUZPUk1fVElMRVMsCisrCQlQQUlO VF9EQU1BR0VfUkVHSU9OCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF8iLCB0eXBlX2lk ID0gImNsdXR0ZXJfZWZmZWN0X3BhaW50X2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10K KyAJcHVibGljIGVudW0gRWZmZWN0UGFpbnRGbGFncyB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNM VVRURVJfRUZGRUNUX1BBSU5UX0FDVE9SX0RJUlRZIildCistCQlBQ1RPUl9ESVJUWQorKwkJQUNU T1JfRElSVFksCisrCQlCWVBBU1NfRUZGRUNUCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0VWRU5UXyIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCitA QCAtODM5MiwyMSArNzY0OCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtGbGFnc10KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3Mgewor LQkJVEVYVFVSRV9OUE9ULAorLQkJU1dBUF9USFJPVFRMRSwKKy0JCVRFWFRVUkVfWVVWLAorLQkJ VEVYVFVSRV9SRUFEX1BJWEVMUywKKyAJCVNUQUdFX1NUQVRJQywKKy0JCVNUQUdFX1VTRVJfUkVT SVpFLAorIAkJU1RBR0VfQ1VSU09SLAorIAkJU0hBREVSU19HTFNMLAorIAkJT0ZGU0NSRUVOLAor IAkJU1RBR0VfTVVMVElQTEUsCistCQlTV0FQX0VWRU5UUzsKKy0JCVtDQ29kZSAoY25hbWUgPSAi Y2x1dHRlcl9mZWF0dXJlX2F2YWlsYWJsZSIpXQorLQkJcHVibGljIGJvb2wgaXNfYXZhaWxhYmxl ICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2ZlYXR1cmVfZ2V0X2FsbCIpXQorLQkJ cHVibGljIHN0YXRpYyBDbHV0dGVyLkZlYXR1cmVGbGFncyBAZ2V0ICgpOworKwkJU1dBUF9FVkVO VFMKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjcHJlZml4ID0gIkNMVVRURVJfRkxPV18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZmxvd19vcmll bnRhdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAt ODQxNCwxMiArNzY2MSwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlIT1JJWk9OVEFMLAor IAkJVkVSVElDQUwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRk9OVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJf Zm9udF9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIyIiwgc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBlbnVtIEZvbnRGbGFncyB7CistCQlNSVBNQVBQSU5HLAorLQkJSElOVElORworKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0g IkNMVVRURVJfRlJBTUVfUkVTVUxUXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mcmFtZV9yZXN1bHRf Z2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gRnJhbWVSZXN1bHQgeworKwkJUEVORElOR19Q UkVTRU5URUQsCisrCQlJRExFCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0dFU1RVUkVfVFJJR0dFUl9FREdF XyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZXN0dXJlX3RyaWdnZXJfZWRnZV9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorQEAgLTg2MzQsNyArNzg3OSw4IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMg ZW51bSBPZmZzY3JlZW5SZWRpcmVjdCB7CisgCQlBVVRPTUFUSUNfRk9SX09QQUNJVFksCistCQlB TFdBWVMKKysJCUFMV0FZUywKKysJCU9OX0lETEUKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfT1JJRU5UQVRJ T05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX29yaWVudGF0aW9uX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtODY0Miw2ICs3ODg4LDEzIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCUhPUklaT05UQUwsCisgCQlWRVJUSUNBTAorIAl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRF Ul9QQUlOVF9GTEFHXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9mbGFnX2dldF90eXBlICgp IildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gUGFpbnRGbGFnIHsKKysJCU5PTkUsCisrCQlO T19DVVJTT1JTLAorKwkJRk9SQ0VfQ1VSU09SUworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9QQU5fIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3Bhbl9heGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCXB1YmxpYyBlbnVtIFBhbkF4aXMgeworQEAgLTg2NjEsNiArNzkxNCwx MSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlSRUxfTElORV9UTywKKyAJCVJFTF9DVVJWRV9U TworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR19OT1BfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpY2tf ZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIFBpY2tE ZWJ1Z0ZsYWcgeworKwkJUElDS0lORworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9QSUNLXyIsIHR5cGVfaWQg PSAiY2x1dHRlcl9waWNrX21vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAlwdWJsaWMgZW51bSBQaWNrTW9kZSB7CitAQCAtODY2OCwxMyArNzkyNiw0NiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlSRUFDVElWRSwKKyAJCUFMTAorIAl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xV VFRFUl9BMTFZX0RXRUxMX0NMSUNLX1RZUEVfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJf YTExeV9kd2VsbF9jbGlja190eXBlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50 ZXJBMTF5RHdlbGxDbGlja1R5cGUgeworKwkJTk9ORSwKKysJCVBSSU1BUlksCisrCQlTRUNPTkRB UlksCisrCQlNSURETEUsCisrCQlET1VCTEUsCisrCQlEUkFHCisrCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0Ex MVlfRFdFTExfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdl bGxfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdl bGxEaXJlY3Rpb24geworKwkJTk9ORSwKKysJCUxFRlQsCisrCQlSSUdIVCwKKysJCVVQLAorKwkJ RE9XTgorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZX0RXRUxMX01PREVfIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3BvaW50ZXJfYTExeV9kd2VsbF9tb2RlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVt IFBvaW50ZXJBMTF5RHdlbGxNb2RlIHsKKysJCVdJTkRPVywKKysJCUdFU1RVUkUKKysJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0g IkNMVVRURVJfQTExWV8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2ZsYWdzX2dl dF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gUG9pbnRlckExMXlGbGFncyB7 CisrCQlTRUNPTkRBUllfQ0xJQ0tfRU5BQkxFRCwKKysJCURXRUxMX0VOQUJMRUQKKysJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0g IkNMVVRURVJfQTExWV9USU1FT1VUX1RZUEVfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJf YTExeV90aW1lb3V0X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gUG9pbnRlckEx MXlUaW1lb3V0VHlwZSB7CisrCQlTRUNPTkRBUllfQ0xJQ0ssCisrCQlEV0VMTCwKKysJCUdFU1RV UkUKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjcHJlZml4ID0gIkNMVVRURVJfUkVQQUlOVF9GTEFHU18iLCB0eXBlX2lkID0gImNsdXR0ZXJf cmVwYWludF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCXB1YmxpYyBlbnVtIFJlcGFpbnRGbGFncyB7CisgCQlQUkVfUEFJTlQs CistCQlQT1NUX1BBSU5ULAorLQkJUVVFVUVfUkVEUkFXX09OX0FERAorKwkJUE9TVF9QQUlOVAor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNw cmVmaXggPSAiQ0xVVFRFUl9SRVFVRVNUXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZXF1ZXN0X21v ZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTg3NTUs OCArODA0Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW0ZsYWdzXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCisgCXB1YmxpYyBlbnVtIFN0YWdlU3RhdGUgeworLQkJRlVMTFNDUkVF TiwKKy0JCU9GRlNDUkVFTiwKKyAJCUFDVElWQVRFRAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9DT0xPUl8i LCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhdGljX2NvbG9yX2dldF90eXBlICgpIildCitAQCAtODgy MywxMyArODExMiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCUxFRlQsCisgCQlSSUdIVAor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNw cmVmaXggPSAiQ0xVVFRFUl9UQUJMRV9BTElHTk1FTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Rh YmxlX2FsaWdubWVudF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yMiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMg ZW51bSBUYWJsZUFsaWdubWVudCB7CistCQlTVEFSVCwKKy0JCUNFTlRFUiwKKy0JCUVORAorLQl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9URVhUX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dF9k aXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlw dWJsaWMgZW51bSBUZXh0RGlyZWN0aW9uIHsKK0BAIC04OTA1LDI4ICs4MTg3LDE2IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVZBTFVFOworIAkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1 YXJrICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9URVhUVVJFX0VSUk9SXyIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCistCXB1YmxpYyBlcnJvcmRvbWFpbiBUZXh0dXJlRXJyb3IgeworLQkJ T1VUX09GX01FTU9SWSwKKy0JCU5PX1lVViwKKy0JCUJBRF9GT1JNQVQ7CistCQlwdWJsaWMgc3Rh dGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMjQiKV0KKyAJcHVibGljIGRlbGVnYXRlIENsdXR0ZXIuQWN0b3IgQWN0b3JD cmVhdGVDaGlsZEZ1bmMgKEdMaWIuT2JqZWN0IGl0ZW0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjAuMiIpXQorLQlwdWJsaWMgZGVsZWdhdGUgZG91YmxlIEFscGhhRnVuYyAoQ2x1dHRlci5B bHBoYSBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGRl bGVnYXRlIHZvaWQgQmVoYXZpb3VyRm9yZWFjaEZ1bmMgKENsdXR0ZXIuQmVoYXZpb3VyIGJlaGF2 aW91ciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgQmluZGluZ0FjdGlvbkZ1bmMg KEdMaWIuT2JqZWN0IGdvYmplY3QsIHN0cmluZyBhY3Rpb25fbmFtZSwgdWludCBrZXlfdmFsLCBD bHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RpZmllcnMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBDYWxsYmFjayAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190YXJnZXQgPSBmYWxz ZSldCisrCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEVtaXRJbnB1dERldmljZUV2ZW50IChDbHV0dGVy LkV2ZW50IGV2ZW50LCBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSld CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIEV2 ZW50RmlsdGVyRnVuYyAoQ2x1dHRlci5FdmVudCBldmVudCk7CitAQCAtODk1Nyw5ICs4MjI3LDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCXB1 YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFXOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K Ky0JcHVibGljIHN0YXRpYyBDbHV0dGVyLkFjdG9yQm94PyBhY3Rvcl9ib3hfYWxsb2MgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJs aWMgc3RhdGljIHZvaWQgYmFzZV9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BA IC04OTcxLDM3ICs4MjM4LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGNoZWNrX3dpbmRvd2luZ19iYWNr ZW5kIChzdHJpbmcgYmFja2VuZF90eXBlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBjbGVhcl9nbHlwaF9jYWNoZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9mcm9tX2hs cyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIGZsb2F0IGh1ZSwgZmxvYXQgbHVtaW5hbmNlLCBm bG9hdCBzYXR1cmF0aW9uKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9mcm9tX3BpeGVsIChvdXQg Q2x1dHRlci5Db2xvciBjb2xvciwgdWludDMyIHBpeGVsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyBib29sIGNvbG9yX2Zyb21fc3RyaW5nIChvdXQgQ2x1dHRlci5D b2xvciBjb2xvciwgc3RyaW5nIHN0cik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkNvbG9yPyBjb2xvcl9nZXRfc3RhdGljIChDbHV0dGVy LlN0YXRpY0NvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBz dGF0aWMgdm9pZCBkaXNhYmxlX2FjY2Vzc2liaWxpdHkgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBkb19ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQgZXZlbnRfYWRk X2ZpbHRlciAoQ2x1dHRlci5TdGFnZT8gc3RhZ2UsIFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3Bv cyA9IDIuMiwgZGVzdHJveV9ub3RpZnlfcG9zID0gMi4xKV0gb3duZWQgQ2x1dHRlci5FdmVudEZp bHRlckZ1bmMgZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMg Q2x1dHRlci5FdmVudCBldmVudF9nZXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50IGV2ZW50X3BlZWsgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZXZlbnRfcmVtb3ZlX2ZpbHRl ciAodWludCBpZCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBzdGF0aWMgYm9v bCBldmVudHNfcGVuZGluZyAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCitAQCAtOTAxNCw5ICs4MjU2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdWludDMyIGdl dF9jdXJyZW50X2V2ZW50X3RpbWUgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2RlYnVnX2Vu YWJsZWQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBDbHV0dGVyLkJhY2tlbmQgZ2V0X2RlZmF1bHRfYmFja2VuZCAoKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTAyNiwxOCArODI2NSw5 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlw dWJsaWMgc3RhdGljIENsdXR0ZXIuVGV4dERpcmVjdGlvbiBnZXRfZGVmYXVsdF90ZXh0X2RpcmVj dGlvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5Gb250RmxhZ3Mg Z2V0X2ZvbnRfZmxhZ3MgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBQYW5nby5Gb250TWFwIGdldF9mb250X21hcCAoKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2tleWJv YXJkX2dyYWIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfbW90aW9u X2V2ZW50c19lbmFibGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3Rh dGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTA0NSwyNiArODI3NSw4 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3Vw IGdldF9vcHRpb25fZ3JvdXBfd2l0aG91dF9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9ncmFi ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgc3Ry aW5nIGdldF9zY3JpcHRfaWQgKEdMaWIuT2JqZWN0IGdvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0J cHVibGljIHN0YXRpYyBib29sIGdldF9zaG93X2ZwcyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdWxvbmcg Z2V0X3RpbWVzdGFtcCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIGdyYWJfa2V5Ym9hcmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9wb2ludGVyIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX3BvaW50 ZXJfZm9yX2RldmljZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGlkXyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGlj IENsdXR0ZXIuSW5pdEVycm9yIGluaXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gImFy Z2MiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41KV0gcmVmIHVub3duZWQgc3RyaW5nW10/IGFyZ3Yp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorQEAgLTkwODAsNDEgKzgyOTIsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2N1c3RvbV9iYWNrZW5kX2Z1bmMgKHZv aWQqIGZ1bmMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9kZWZhdWx0 X2ZyYW1lX3JhdGUgKHVpbnQgZnJhbWVzX3Blcl9zZWMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHNldF9mb250X2ZsYWdzIChDbHV0dGVyLkZvbnRGbGFncyBmbGFncyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2Ug PSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbW90aW9uX2V2ZW50c19lbmFibGVk IChib29sIGVuYWJsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgdGVzdF9hZGRfZGF0YV9mdWxsIChzdHJpbmcgdGVzdF9wYXRoLCBvd25lZCBHTGliLlRl c3REYXRhRnVuYyB0ZXN0X2Z1bmMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGlj IHN0YXRpYyBib29sIHRlc3RfY2hlY2tfYWN0b3JfYXRfcG9pbnQgKENsdXR0ZXIuQWN0b3Igc3Rh Z2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBDbHV0dGVy LkFjdG9yPyByZXN1bHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRp YyBib29sIHRlc3RfY2hlY2tfY29sb3JfYXRfcG9pbnQgKENsdXR0ZXIuQWN0b3Igc3RhZ2UsIENs dXR0ZXIuUG9pbnQgcG9pbnQsIENsdXR0ZXIuQ29sb3IgY29sb3IsIG91dCBDbHV0dGVyLkNvbG9y IHJlc3VsdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciB0ZXN0X2dldF9zdGFnZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0 X2luaXQgKGludCBhcmdjLCBzdHJpbmcgYXJndik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQor LQlwdWJsaWMgc3RhdGljIGludCB0ZXN0X3J1biAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHVuZ3JhYl9wb2ludGVyICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHVuZ3JhYl9wb2ludGVyX2Zvcl9kZXZpY2UgKGlu dCBpZF8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50IHVu aWNvZGVfdG9fa2V5c3ltICh1aW50MzIgd2MpOworIH0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXIt Y29nbC01LWN1c3RvbS52YWxhIHZhcGkvbXV0dGVyLWNvZ2wtNi1jdXN0b20udmFsYQorc2ltaWxh cml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTUtY3VzdG9tLnZh bGEKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTYtY3VzdG9tLnZhbGEKK2RpZmYgLS1naXQg dmFwaS9tdXR0ZXItY29nbC00LmRlcHMgdmFwaS9tdXR0ZXItY29nbC02LmRlcHMKK3NpbWlsYXJp dHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00LmRlcHMKK3JlbmFt ZSB0byB2YXBpL211dHRlci1jb2dsLTYuZGVwcworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2ds LTUudmFwaSB2YXBpL211dHRlci1jb2dsLTYudmFwaQorc2ltaWxhcml0eSBpbmRleCA2OCUKK3Jl bmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNS52YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXIt Y29nbC02LnZhcGkKK2luZGV4IGE4OTYxMjI0Li4xOTVlM2IxNyAxMDA2NDQKKy0tLSB2YXBpL211 dHRlci1jb2dsLTUudmFwaQorKysrIHZhcGkvbXV0dGVyLWNvZ2wtNi52YXBpCitAQCAtMSw2ICsx LDYgQEAKKy0vKiBtdXR0ZXItY29nbC01LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5v dCBtb2RpZnkuICovCisrLyogbXV0dGVyLWNvZ2wtNi52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2Vu LCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25h bWVzcGFjZSA9ICJDb2dsIiwgZ2lyX3ZlcnNpb24gPSAiNSIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9 ICJjb2dsXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25hbWVzcGFjZSA9ICJD b2dsIiwgZ2lyX3ZlcnNpb24gPSAiNiIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjb2dsXyIpXQor IG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0 eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTI4LDkgKzI4LDEwIEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJCXB1YmxpYyBib29sIHNldF9kYXRhIChzaXplX3Qgb2Zmc2V0LCBbQ0NvZGUgKGFycmF5 X2xlbmd0aF90eXBlID0gInNpemVfdCIpXSB1aW50OFtdIGRhdGEpOworIAkJcHVibGljIHZvaWQg dW5tYXAgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRXVs ZXIgeworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lk ID0gImNvZ2xfY29udGV4dF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIENvbnRleHQg OiBDb2dsLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisrCQlwcm90ZWN0ZWQgQ29udGV4dCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZy ZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2Nsb3N1 cmVfZ2V0X2d0eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTY1LDYyICs2NiwxNyBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorIAkJcHVibGljIE1hdGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyBDb2dsLk1hdGVyaWFsIGNvcHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgZm9yZWFjaF9sYXllciAoQ29nbC5NYXRlcmlhbExheWVyQ2FsbGJhY2sgY2FsbGJhY2spOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbWJpZW50IChDb2dsLkNvbG9y IGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9j b2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAo Q29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBn ZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyBib29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBs YXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxX cmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3Jh cF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGlj IENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9p bmRleCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q29nbC5NYXRlcmlhbExheWVyPiBn ZXRfbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5 ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6 ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wu Q29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENv Z2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgQHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAo Q29nbC5NYXRlcmlhbEFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2Up OworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNv bG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJp ZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGli LkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25z dGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwg ZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWlu dDggYWxwaGEpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNl IChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIHZvaWQgc2V0X2xheWVyIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuSGFuZGxlIHRl eHR1cmUpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21i aW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVy cm9yOworQEAgLTEzMyw0MSArODksMTMgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyBib29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJs ZWQgKGludCBsYXllcl9pbmRleCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBs YXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4 LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0 ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBN b2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludF9z aXplIChmbG9hdCBwb2ludF9zaXplKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUg cHJvZ3JhbSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYg KENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1 YmxpYyBjbGFzcyBNYXRlcmlhbExheWVyIHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZp bHRlciBnZXRfbWFnX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRl ciBnZXRfbWluX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBn ZXRfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbExheWVyVHlwZSBnZXRf dHlwZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBN b2RlIGdldF93cmFwX21vZGVfcCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29n bC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfcyAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfdCAoKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0g ImNvZ2xfb2JqZWN0X2dldF9ndHlwZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgT2Jq ZWN0IHsKK0BAIC0xNzgsMTMgKzEwNiw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIGNs YXNzIE9mZnNjcmVlbiA6IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBPZmZzY3Jl ZW4gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQqIEByZWYgKHZvaWQqIG9mZnNjcmVlbik7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVi bGljIE9mZnNjcmVlbi50b190ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgT2Zmc2NyZWVuLndpdGhf dGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworIAl9CitAQCAtMTk2LDkgKzEyMCw2IEBA IG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBDb2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGFk ZF9kaXJ0eV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29n bC5PbnNjcmVlbkRpcnR5Q2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2Fs bGJhY2s/IGRlc3Ryb3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGFkZF9yZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAo ZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5SZXNpemVDYWxsYmFjayBj YWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB1aW50IGFkZF9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENv Z2wuU3dhcEJ1ZmZlcnNOb3RpZnkgY2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB2b2lkIGNs dXR0ZXJfYmFja2VuZF9zZXRfc2l6ZV9DTFVUVEVSIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9h Z2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorQEAgLTIxMyw4ICsxMzQsNiBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfZnJhbWVfY2FsbGJhY2sg KENvZ2wuRnJhbWVDbG9zdXJlIGNsb3N1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX3Jlc2l6ZV9jYWxsYmFjayAoQ29nbC5PbnNjcmVlblJl c2l6ZUNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IHJlbW92ZV9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKHVpbnQgaWQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoYm9vbCByZXNpemFi bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorQEAgLTI0NCw3ICsxNjMsOCBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIHR5cGVfaWQgPSAiY29nbF9waXBlbGluZV9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGNs YXNzIFBpcGVsaW5lIDogQ29nbC5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFBpcGVsaW5lICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorKwkJcHVibGljIFBpcGVsaW5lIChDb2dsLkNvbnRleHQgY29udGV4 dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGlu ZSBjb3B5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorQEAgLTI1NCwxNiArMTc0 LDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfdGVzdF9yZWZlcmVuY2UgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBh bWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLkNv bG9yIGdldF9jb2xvciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyBDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGdldF9jdWxsX2ZhY2VfbW9kZSAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2ds LkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLldpbmRpbmcgZ2V0X2Zyb250X2ZhY2Vfd2lu ZGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ29nbC5Q aXBlbGluZUZpbHRlciBnZXRfbGF5ZXJfbWFnX2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsKK0BA IC0yNzQsOCArMTg4LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfbGF5ZXJfdGV4dHVy ZSAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1 YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5 ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wu UGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdy YXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKK0BAIC0yODYs MTAgKzE5OCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNv bG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBp bnQgZ2V0X3VuaWZvcm1fbG9jYXRpb24gKHN0cmluZyB1bmlmb3JtX25hbWUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3Vz ZXJfcHJvZ3JhbSAoKTsKK0BAIC0yOTgsMTAgKzIwNiw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0 X2Z1bmN0aW9uIChDb2dsLlBpcGVsaW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhh X3JlZmVyZW5jZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNv bG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBib29s IHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3Rh bnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOworQEAgLTMxNCwxMCArMjE4LDYgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2N1bGxfZmFjZV9tb2RlIChDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGN1bGxfZmFj ZV9tb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9mcm9udF9m YWNlX3dpbmRpbmcgKENvZ2wuV2luZGluZyBmcm9udF93aW5kaW5nKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5 ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworQEAgLTMz NSw4ICsyMzUsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgs IENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4 LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRl eCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5k ZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKK0BAIC0zNDUsMTAgKzI0Myw2IEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9zaXplKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zaGluaW5lc3MgKGZsb2F0IHNoaW5pbmVz cyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3Bl Y3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWYgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBm bG9hdCB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfdW5pZm9ybV8xaSAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCB2YWx1ZSk7CitAQCAt MzgyLDEwICsyNzYsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQg dW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX25vLCBpbnQgc2l6ZSwgYm9vbCB0cmFuc3Bvc2Us IFtDQ29kZSAoYXJyYXlfbGVuZ3RoX3BvcyA9IDIuOSldIGZsb2F0W10gdmFsdWUpOworIAkJcHVi bGljIHZvaWQgdXNlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNs YXNzIFF1YXRlcm5pb24geworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFk ZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfdW5yZWYiKV0KKyAJW0NvbXBh Y3RdCisgCXB1YmxpYyBjbGFzcyBTaGFkZXIgOiBDb2dsLkhhbmRsZSB7CitAQCAtNDY1LDEyICsz NTUsMTAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGludCBnZXRfYWxwaGFfYml0cyAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2JsdWVf Yml0cyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKysJCXB1YmxpYyB1bm93bmVk IENvZ2wuQ29udGV4dCBnZXRfY29udGV4dCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2RlcHRoX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xNCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9kZXB0aF90ZXh0 dXJlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBib29sIGdl dF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIp XQorIAkJcHVibGljIGJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCitAQCAtNTE2LDYgKzQwNCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJCXB1YmxpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfcmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxv YXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CisrCQlwdWJsaWMgdm9pZCBwdXNoX3JlZ2lv bl9jbGlwIChDYWlyby5SZWdpb24gcmVnaW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3NjaXNzb3JfY2xpcCAoaW50IHgsIGludCB5LCBpbnQg d2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01 MjksMTMgKzQxOCw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9h dCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJu aW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5F dWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZv aWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKGJv b2wgZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKGJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNjM1LDEwICs1MjAsNiBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0 IChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9t XzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwg dWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTY2Miw3ICs1NDMsNyBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlwdWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKyAJCXB1YmxpYyB1bG9uZyBpbnN0 YW5jZV9jb3VudDsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJ WCIpXQorIAlwdWJsaWMgc3RydWN0IE1hdHJpeCB7CisgCQlwdWJsaWMgZmxvYXQgeHg7CisgCQlw dWJsaWMgZmxvYXQgeXg7CitAQCAtNjkyLDggKzU3Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CXB1YmxpYyBib29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CisgCQlb Q0NvZGUgKGNuYW1lID0gImNvZ2xfbWF0cml4X2luaXRfaWRlbnRpdHkiKV0KKyAJCXB1YmxpYyBN YXRyaXguaWRlbnRpdHkgKCk7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wu RXVsZXIgZXVsZXIpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX3F1YXRlcm5pb24gKENvZ2wu UXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAo R3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJ cHVibGljIHZvaWQgaW5pdF90cmFuc2xhdGlvbiAoZmxvYXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0 eik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNzAyLDE5ICs1ODIsMTUgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgbG9va19hdCAoZmxvYXQgZXllX3Bvc2l0 aW9uX3gsIGZsb2F0IGV5ZV9wb3NpdGlvbl95LCBmbG9hdCBleWVfcG9zaXRpb25feiwgZmxvYXQg b2JqZWN0X3gsIGZsb2F0IG9iamVjdF95LCBmbG9hdCBvYmplY3RfeiwgZmxvYXQgd29ybGRfdXBf eCwgZmxvYXQgd29ybGRfdXBfeSwgZmxvYXQgd29ybGRfdXBfeik7CisgCQlbQ0NvZGUgKGNuYW1l ID0gImNvZ2xfbWF0cml4X211bHRpcGx5IildCisgCQlwdWJsaWMgTWF0cml4Lm11bHRpcGx5IChD b2dsLk1hdHJpeCBhLCBDb2dsLk1hdHJpeCBiKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRobyAo ZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBu ZWFyLCBmbG9hdCBmYXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB2b2lkIG9ydGhvZ3JhcGhpYyAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxv YXQgeV8yLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworIAkJcHVibGljIHZvaWQgcGVyc3BlY3Rp dmUgKGZsb2F0IGZvdl95LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIp OworIAkJcHVibGljIHZvaWQgcHJvamVjdF9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVf dCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBv aW50c19vdXQsIGludCBuX3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFu Z2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVy bmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgcm90YXRl X2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxv YXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzeik7CistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9p bnQgKHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsK KysJCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBDb2dsLk1hdHJpeCBt YXRyaXgsIHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3 KTsKKyAJCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNp emVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQq IHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K K0BAIC04MTgsMzggKzY5NCwzMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlOT05FLAorIAkJTk9f R0VUX0RBVEEKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0Zs YWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1cmVG bGFncyB7CistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCistCQlPRkZT Q1JFRU4sCistCQlPRkZTQ1JFRU5fTVVMVElTQU1QTEUsCistCQlGT1VSX0NMSVBfUExBTkVTLAor LQkJU1RFTkNJTF9CVUZGRVIsCistCQlWQk9TLAorLQkJUEJPUywKKy0JCVVOU0lHTkVEX0lOVF9J TkRJQ0VTLAorLQkJREVQVEhfUkFOR0UsCistCQlQT0lOVF9TUFJJVEUsCistCQlNQVBfQlVGRkVS X0ZPUl9SRUFELAorLQkJTUFQX0JVRkZFUl9GT1JfV1JJVEUsCistCQlPTlNDUkVFTl9NVUxUSVBM RSwKKy0JCURFUFRIX1RFWFRVUkUKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfSURfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBlbnVtIEZlYXR1cmVJ RCB7CisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRfSU5E SUNFUyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMsCisrCQlbQ0Nv ZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFEIildCisrCQlP R0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFELAorKwkJW0NDb2RlIChjbmFtZSA9ICJD T0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUiKV0KKysJCU9HTF9GRUFUVVJFX0lE X01BUF9CVUZGRVJfRk9SX1dSSVRFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVf SURfU1dBUF9CVUZGRVJTX0VWRU5UIildCisrCQlPR0xfRkVBVFVSRV9JRF9TV0FQX0JVRkZFUlNf RVZFTlQsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJT05f VElNRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUsCisrCQlbQ0NvZGUg KGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9GRU5DRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfRkVO Q0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHIildCisr CQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZF QVRVUkVfSURfQlVGRkVSX0FHRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSwKKysJ CVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVS TkFMIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTAorIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEZpbHRl clJldHVybiB7CisgCQlDT05USU5VRSwKKyAJCVJFTU9WRQorIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0dfTU9ERV8iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAorLQkJRVhQT05F TlRJQUxfU1FVQVJFRAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGVudW0gRnJhbWVFdmVu dCB7CitAQCAtODYyLDYgKzczMywxNCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlGUkFNRUJVRkZF Ul9FUlJPUl9BTExPQ0FURTsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworIAl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9HUkFQSElDU19SRVNFVF9TVEFUVVNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1 YmxpYyBlbnVtIEdyYXBoaWNzUmVzZXRTdGF0dXMgeworKwkJTk9fRVJST1IsCisrCQlHVUlMVFlf Q09OVEVYVF9SRVNFVCwKKysJCUlOTk9DRU5UX0NPTlRFWFRfUkVTRVQsCisrCQlVTktOT1dOX0NP TlRFWFRfUkVTRVQsCisrCQlQVVJHRURfQ09OVEVYVF9SRVNFVAorKwl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZ UEVfVU5TSUdORURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEluZGlj ZXNUeXBlIHsKKyAJCUJZVEUsCitAQCAtODg4LDEyICs3NjcsNiBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlORUFSRVNUX01JUE1BUF9MSU5FQVIsCisgCQlMSU5FQVJfTUlQTUFQX0xJTkVBUgorIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9NQVRFUklBTF9MQVlFUl9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsTGF5ZXJUeXBlIHsK Ky0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUiKV0K Ky0JCU1BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVSRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9XUkFQX01P REVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJcHVibGljIGVudW0gTWF0ZXJpYWxXcmFwTW9kZSB7CitAQCAtOTcxLDYgKzg0NCw4IEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJCURFUFRIXzE2LAorIAkJREVQVEhfMzIsCisgCQlERVBUSF8yNF9T VEVOQ0lMXzg7CisrCQlwdWJsaWMgaW50IGdldF9ieXRlc19wZXJfcGl4ZWwgKGludCBwbGFuZSk7 CisrCQlwdWJsaWMgaW50IGdldF9uX3BsYW5lcyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyB0b19zdHJpbmcgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1JFQURfUElYRUxTX0NPTE9SXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorQEAgLTEwNjQsOSArOTM5LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIERl YnVnT2JqZWN0Rm9yZWFjaFR5cGVDYWxsYmFjayAoQ29nbC5EZWJ1Z09iamVjdFR5cGVJbmZvIGlu Zm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5j ZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgYm9vbCBN YXRlcmlhbExheWVyQ2FsbGJhY2sgKENvZ2wuTWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9p bmRleCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3Rh bmNlX3BvcyA9IDEuOSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIwLjEwIildCisrCXB1YmxpYyBk ZWxlZ2F0ZSB2b2lkIEZlYXR1cmVDYWxsYmFjayAoQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9 IDIuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2 b2lkIE9uc2NyZWVuRGlydHlDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5P bnNjcmVlbkRpcnR5SW5mbyBpbmZvKTsKK0BAIC0xMDc0LDEzICs5NDksOSBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZv aWQgT25zY3JlZW5SZXNpemVDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3Jl ZW5YMTFNYXNrQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiBldmVudF9t YXNrKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFu Y2VfcG9zID0gMi45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAlwdWJsaWMgZGVs ZWdhdGUgYm9vbCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUs IGludCBsYXllcl9pbmRleCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFN3YXBC dWZmZXJzTm90aWZ5IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJ cHVibGljIGRlbGVnYXRlIGJvb2wgVGV4dHVyZTJERUdMSW1hZ2VFeHRlcm5hbEFsbG9jIChDb2ds LlRleHR1cmUyRCB0ZXhfMmQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorIAlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBVc2VyRGF0YURlc3Ryb3lDYWxsYmFjayAodm9pZCogZGF0YSk7CitAQCAt MTA5Miw2ICs5NjMsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjb25zdCBpbnQgQkdS X0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUg PSAiQ09HTF9ERVBUSF9CSVQiKV0KKyAJcHVibGljIGNvbnN0IGludCBERVBUSF9CSVQ7CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUElY RUxfRk9STUFUX01BWF9QTEFORVMiKV0KKysJcHVibGljIGNvbnN0IGludCBQSVhFTF9GT1JNQVRf TUFYX1BMQU5FUzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y25hbWUgPSAiQ09HTF9QUkVNVUxUX0JJVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSRU1VTFRf QklUOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9 ICJDT0dMX1NURU5DSUxfQklUIildCitAQCAtMTA5OSwxOSArOTcyLDggQEAgbmFtZXNwYWNlIENv Z2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9 ICJDT0dMX1RFWFRVUkVfTUFYX1dBU1RFIildCisgCXB1YmxpYyBjb25zdCBpbnQgVEVYVFVSRV9N QVhfV0FTVEU7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgYmVnaW5fZ2wgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGlj IGJvb2wgYmxpdF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBzcmMsIENvZ2wuRnJhbWVi dWZmZXIgZGVzdCwgaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCBp bnQgd2lkdGgsIGludCBoZWlnaHQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgY2hl Y2tfZXh0ZW5zaW9uIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xl YXIgKENvZ2wuQ29sb3IgY29sb3IsIHVsb25nIGJ1ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGNsdXR0ZXJf Y2hlY2tfZXh0ZW5zaW9uX0NMVVRURVIgKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0aWMg Ym9vbCBjbHV0dGVyX3dpbnN5c19oYXNfZmVhdHVyZV9DTFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1 cmUgZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtMTEyOSw1NyArOTkxLDM4IEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgc3Rh dGljIHZvaWQgZGVidWdfb2JqZWN0X3ByaW50X2luc3RhbmNlcyAoKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBk aXNhYmxlX2ZvZyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmRfZ2wgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg c3RhdGljIGJvb2wgZmVhdHVyZXNfYXZhaWxhYmxlIChDb2dsLkZlYXR1cmVGbGFncyBmZWF0dXJl cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBmbHVzaCAoKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44 LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJp Z2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7 CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCBmb3Jl YWNoX2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBjb250ZXh0LCBDb2dsLkZlYXR1cmVDYWxsYmFjayBj YWxsYmFjayk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor IAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIGdldF9iaXRtYXNrcyAob3V0IGludCByZWQsIG91dCBpbnQgZ3JlZW4sIG91 dCBpbnQgYmx1ZSwgb3V0IGludCBhbHBoYSk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CisrCXB1YmxpYyBzdGF0aWMgaW50NjQgZ2V0X2Nsb2NrX3RpbWUgKENvZ2wuQ29udGV4dCBjb250 ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisg CXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFibGVkICgpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZHJh d19mcmFtZWJ1ZmZlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5GZWF0dXJlRmxh Z3MgZ2V0X2ZlYXR1cmVzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfbW9kZWx2aWV3X21h dHJpeCAoKTsKKysJcHVibGljIHN0YXRpYyBDb2dsLkdyYXBoaWNzUmVzZXRTdGF0dXMgZ2V0X2dy YXBoaWNzX3Jlc2V0X3N0YXR1cyAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJcHVi bGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXAgKCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIEdM aWIuQ2FsbGJhY2sgZ2V0X3Byb2NfYWRkcmVzcyAoc3RyaW5nIHMpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1h dHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQqIGdldF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X3ZpZXdwb3J0IChbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gb3V0IGZsb2F0IHZbNF0pOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLlR5cGUg Z3R5cGVfbWF0cml4X2dldF90eXBlICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0 YXRpYyBib29sIGhhc19mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJl SUQgZmVhdHVyZSk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNf Y29udGV4dCAodm9pZCogb2JqZWN0KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0 aWMgYm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CitAQCAtMTE5Myw1MyArMTAzNiw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGlzX3RleHR1cmVfMmRfc2xpY2Vk ICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGlzX3ZlcnRleF9i dWZmZXJfaW5kaWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ cHVibGljIHN0YXRpYyBib29sIG1hdHJpeF9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQs IGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVh ciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cG9seWdvbiAoQ29nbC5UZXh0dXJlVmVydGV4IHZlcnRpY2VzLCB1aW50IG5fdmVydGljZXMsIGJv b2wgdXNlX2NvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHBvcF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRyaXgg KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVy aWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGUgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4 XzIsIGZsb2F0IHlfMik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBy ZWN0YW5nbGVfd2l0aF9tdWx0aXRleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZs b2F0IHgyLCBmbG9hdCB5MiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10g dGV4X2Nvb3JkcywgaW50IHRleF9jb29yZHNfbGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4MSwg ZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0 IHR4MiwgZmxvYXQgdHkyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHJlY3RhbmdsZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRz LCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOC42IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCByZWN0YW5nbGVzX3dpdGhfdGV4dHVyZV9jb29yZHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0 ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFj a2ZhY2VfY3VsbGluZ19lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KK0BAIC0xMjQ3LDUzICsxMDQ2LDExIEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF9kZXB0aF90ZXN0X2VuYWJsZWQg KGJvb2wgc2V0dGluZyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvZyAoQ29nbC5Db2xvciBmb2dfY29s b3IsIENvZ2wuRm9nTW9kZSBtb2RlLCBmbG9hdCBkZW5zaXR5LCBmbG9hdCB6X25lYXIsIGZsb2F0 IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbW9kZWx2aWV3X21hdHJpeCAoQ29nbC5NYXRyaXgg bWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfcHJvamVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4 IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCog bWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3Ig KENvZ2wuQ29sb3IgY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3Vy Y2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxw aGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0dWIgKHVp bnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0 dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF92aWV3cG9ydCAoaW50IHgsIGlu dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9jb21waWxl IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBzdHJpbmcgc2hhZGVyX2dldF9pbmZvX2xv ZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5TaGFkZXJUeXBlIHNoYWRlcl9n ZXRfdHlwZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBzaGFkZXJfaXNfY29t cGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUg c2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfc291 cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmluZyBzb3VyY2UpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNo YWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMg Q29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAs IENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1h dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorQEAgLTEz MDYsNTkgKzEwNjMsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1 YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0 aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0 IGludGVybmFsX2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3Jt IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwg ZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wu SGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMs IENvZ2wuQXR0cmlidXRlVHlwZSB0eXBlLCBib29sIG5vcm1hbGl6ZWQsIHVpbnQxNiBzdHJpZGUs IHZvaWQqIHBvaW50ZXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGVsZXRlIChDb2ds LkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVy dGV4X2J1ZmZlcl9kaXNhYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVf bmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3IChDb2dsLkhhbmRsZSBoYW5k bGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIGludCBmaXJzdCwgaW50IGNvdW50KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXdfZWxlbWVudHMgKENvZ2wuSGFuZGxlIGhhbmRsZSwg Q29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgQ29nbC5IYW5kbGUgaW5kaWNlcywgaW50IG1pbl9pbmRl eCwgaW50IG1heF9pbmRleCwgaW50IGluZGljZXNfb2Zmc2V0LCBpbnQgY291bnQpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHZlcnRleF9idWZmZXJfZW5hYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBh dHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQgdmVydGV4X2J1ZmZlcl9nZXRfbl92ZXJ0aWNl cyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0 ZXhfYnVmZmVyX2luZGljZXNfZ2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLkluZGljZXNUeXBlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5I YW5kbGUgaW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZl cl9uZXcgKHVpbnQgbl92ZXJ0aWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0 ZXhfYnVmZmVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhf YnVmZmVyX3N1Ym1pdCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9i dWZmZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHZpZXdwb3J0ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4 MTFfb25zY3JlZW5fZ2V0X3Zpc3VhbF94aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF93 aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHgxMV9vbnNjcmVlbl9zZXRfZm9yZWlnbl93aW5kb3dfeGlkIChD b2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgeGlkLCBbQ0NvZGUgKHNjb3BlID0gImFzeW5j IildIENvZ2wuT25zY3JlZW5YMTFNYXNrQ2FsbGJhY2sgdXBkYXRlKTsKKyB9CitkaWZmIC0tZ2l0 IHZhcGkvbXV0dGVyLWNvZ2wtNC1jdXN0b20udmFsYSB2YXBpL211dHRlci1jb2dsLTctY3VzdG9t LnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggODElCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2ds LTQtY3VzdG9tLnZhbGEKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTctY3VzdG9tLnZhbGEK K2luZGV4IDI1NTE4ODVhLi5jNGQ0YjkzYSAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTQt Y3VzdG9tLnZhbGEKKysrKyB2YXBpL211dHRlci1jb2dsLTctY3VzdG9tLnZhbGEKK0BAIC0xLDEw ICsxLDQgQEAKKyBuYW1lc3BhY2UgQ29nbCB7CistCVtDb21wYWN0XQorLQlbQ0NvZGUgKGNuYW1l ID0gIkNvZ2xIYW5kbGUiKV0KKy0JcHVibGljIGNsYXNzIEJpdG1hcDogSGFuZGxlIHsKKy0JCXB1 YmxpYyBzdGF0aWMgQml0bWFwIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dz IEdMaWIuRXJyb3I7CistCX0KKy0KKyAJW0NvbXBhY3RdCisgCVtDQ29kZSAoY25hbWUgPSAiQ29n bEhhbmRsZSIpXQorIAlwdWJsaWMgY2xhc3MgQnVmZmVyOiBIYW5kbGUgeworQEAgLTQyLDcgKzM2 LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGJvb2wgaXNfdmVydGV4X2J1ZmZlciAo KTsKKyAJfQorIAorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj b3B5X2Z1bmN0aW9uID0gImNvZ2xfcGF0aF9jb3B5IildIAorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImNvZ2xfcGF0aF9jb3B5Iild CisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgUGF0aCB7CisgCQlwdWJsaWMgc3RhdGljIHZv aWQgQG5ldyAoKTsKK0BAIC04MiwxOCArNzYsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJs aWMgdm9pZCBzb3VyY2UgKHN0cmluZyBzb3VyY2UpOworIAl9CisgCistCVtDb21wYWN0XQorLQlb Q0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJl X3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV91bnJlZiIpXQorLQlwdWJsaWMg Y2xhc3MgVGV4dHVyZTogSGFuZGxlIHsKKy0JCXB1YmxpYyBDb2dsLlBpeGVsRm9ybWF0IGdldF9m b3JtYXQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfcm93c3RyaWRlICgpOworLQkJcHVibGljIFRl eHR1cmUuZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJtcF9oYW5kbGUsIENvZ2wuVGV4dHVyZUZs YWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlwdWJsaWMg VGV4dHVyZS5mcm9tX2RhdGEgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVG bGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50 ZXJuYWxfZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIHVjaGFyW10gZGF0YSk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBm aWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJu YWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fc3Vi X3RleHR1cmUgKENvZ2wuVGV4dHVyZSBmdWxsX3RleHR1cmUsIGludCBzdWJfeCwgaW50IHN1Yl95 LCBpbnQgc3ViX3dpZHRoLCBpbnQgc3ViX2hlaWdodCk7CistCQlwdWJsaWMgVGV4dHVyZS53aXRo X3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywg Q29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQl9CistCisgCVtDb21wYWN0XQor IAlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0 ZXhfYnVmZmVyX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl91bnJl ZiIpXQorIAlwdWJsaWMgY2xhc3MgVmVydGV4QnVmZmVyOiBIYW5kbGUgeworZGlmZiAtLWdpdCB2 YXBpL211dHRlci1jb2dsLTUuZGVwcyB2YXBpL211dHRlci1jb2dsLTcuZGVwcworc2ltaWxhcml0 eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTUuZGVwcworcmVuYW1l IHRvIHZhcGkvbXV0dGVyLWNvZ2wtNy5kZXBzCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wt NC52YXBpIHZhcGkvbXV0dGVyLWNvZ2wtNy52YXBpCitzaW1pbGFyaXR5IGluZGV4IDU5JQorcmVu YW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1j b2dsLTcudmFwaQoraW5kZXggNWRlOGY0NDcuLjYyMGMyMzE3IDEwMDY0NAorLS0tIHZhcGkvbXV0 dGVyLWNvZ2wtNC52YXBpCisrKysgdmFwaS9tdXR0ZXItY29nbC03LnZhcGkKK0BAIC0xLDEyICsx LDEzIEBACistLyogbXV0dGVyLWNvZ2wtNC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBu b3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1jb2dsLTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdl biwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9u YW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXgg PSAiY29nbF8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAi Q29nbCIsIGdpcl92ZXJzaW9uID0gIjciLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0K KyBuYW1lc3BhY2UgQ29nbCB7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9n dHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEJpdG1hcCA6IENvZ2wuSGFu ZGxlIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9p ZCA9ICJjb2dsX2JpdG1hcF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEJpdG1hcCA6 IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKysJCXByb3RlY3RlZCBCaXRtYXAgKCk7CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJv cl9xdWFyayAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0 eXBlID0gIkNvZ2xCaXRtYXAqIildCisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQml0bWFw LmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtMTYsMTAgKzE3LDkgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3Jvd3N0 cmlkZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Q29nbC5Cb29sIGdldF9zaXplX2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBvdXQgaW50IHdp ZHRoLCBvdXQgaW50IGhlaWdodCk7CisrCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3NpemVfZnJv bV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgaW50IGdldF93aWR0aCAo KTsKKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5CaXRtYXAgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZp bGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIildCisgCVtDb21wYWN0XQor QEAgLTI4LDE1ICsyOCwyOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBzZXRf ZGF0YSAoc2l6ZV90IG9mZnNldCwgW0NDb2RlIChhcnJheV9sZW5ndGhfdHlwZSA9ICJzaXplX3Qi KV0gdWludDhbXSBkYXRhKTsKKyAJCXB1YmxpYyB2b2lkIHVubWFwICgpOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEV1bGVyIHsKKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2NvbnRleHRfZ2V0X2d0 eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBDb250ZXh0IDogQ29nbC5PYmplY3QgeworKwkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIENvbnRl eHQgKCk7CisrCQlwdWJsaWMgYm9vbCBpc19oYXJkd2FyZV9hY2NlbGVyYXRlZCAoKTsKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJjb2dsX2ZyYW1lX2Nsb3N1cmVfZ2V0X2d0eXBlICgpIildCisgCVtDb21wYWN0XQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgY2xhc3MgRnJhbWVDbG9zdXJlIHsK KyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lk ID0gImNvZ2xfZnJhbWVfaW5mb19nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEZyYW1l SW5mbyA6IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKysJCXByb3RlY3RlZCBGcmFtZUluZm8gKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xNCIpXQorKwkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBpbnQ2NCBnZXRfcHJlc2VudGF0aW9u X3RpbWUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwkJcHVibGljIGZsb2F0 IGdldF9yZWZyZXNoX3JhdGUgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfaGFuZGxlX3JlZiIsIHVucmVmX2Z1 bmN0aW9uID0gImNvZ2xfaGFuZGxlX3VucmVmIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xh c3MgSGFuZGxlIHsKK0BAIC02NSw2NSArNzgsMjAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBNYXRl cmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5 ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENv Z2wuTWF0ZXJpYWxMYXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNv bG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdl dF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5 ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJ cHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBs YXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxX cmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CistCQlwdWJs aWMgdW5vd25lZCBHTGliLkxpc3Q8Q29nbC5NYXRlcmlhbExheWVyPiBnZXRfbGF5ZXJzICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91 c2VyX3Byb2dyYW0gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgQ29nbC5IYW5kbGUgQHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1Ymxp YyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFs cGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNl IChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5C b29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7Cisr CQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGli LkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25z dGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwg ZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWlu dDggYWxwaGEpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNl IChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIHZvaWQgc2V0X2xheWVyIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuSGFuZGxlIHRl eHR1cmUpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVy X2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdM aWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2lu ZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxh eWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCitAQCAtMTMxLDQzICs5OSwxNSBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAo aW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxl ZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9p bmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2ds Lk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxX cmFwTW9kZSBtb2RlKTsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29v cmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVy cm9yOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChm bG9hdCBwb2ludF9zaXplKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf c2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CisgCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3Jh bSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wu SGFuZGxlIG1hdGVyaWFsKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBj bGFzcyBNYXRlcmlhbExheWVyIHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBn ZXRfbWFnX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRf bWluX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4 dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbExheWVyVHlwZSBnZXRfdHlwZSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdl dF93cmFwX21vZGVfcCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRl cmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfdCAoKTsKKyAJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xf b2JqZWN0X2dldF9ndHlwZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgT2JqZWN0IHsK K0BAIC0xNzgsMTMgKzExOCw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIGNsYXNzIE9m ZnNjcmVlbiA6IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBPZmZzY3JlZW4gKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQqIEByZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE9m ZnNjcmVlbi50b190ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgdW5yZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgT2Zmc2NyZWVuLndpdGhfdGV4dHVy ZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworIAl9CitAQCAtMTk0LDE3ICsxMzAsMTYgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJcHJvdGVjdGVkIE9uc2NyZWVuICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBDb2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGFkZF9k aXJ0eV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5P bnNjcmVlbkRpcnR5Q2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJh Y2s/IGRlc3Ryb3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBD b2dsLkZyYW1lQ2xvc3VyZSBhZGRfZnJhbWVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFy Z2V0X3BvcyA9IDEuNSldIENvZ2wuRnJhbWVDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0 YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgYWRkX3Jlc2l6ZV9jYWxsYmFj ayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlblJlc2l6 ZUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95 KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVpbnQgYWRkX3N3YXBfYnVmZmVyc19j YWxsYmFjayAoQ29nbC5Td2FwQnVmZmVyc05vdGlmeSBjYWxsYmFjayk7CistCQlwdWJsaWMgc3Rh dGljIHZvaWQgY2x1dHRlcl9iYWNrZW5kX3NldF9zaXplX0NMVVRURVIgKGludCB3aWR0aCwgaW50 IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIGludCBn ZXRfYnVmZmVyX2FnZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJs aWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9yZXNpemFibGUgKCk7CisrCQlwdWJsaWMgYm9v bCBnZXRfcmVzaXphYmxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgaGlkZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCitAQCAtMjEz LDE4ICsxNDgsMTYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2Zy YW1lX2NhbGxiYWNrIChDb2dsLkZyYW1lQ2xvc3VyZSBjbG9zdXJlKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9yZXNpemVfY2FsbGJhY2sgKENv Z2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCByZW1vdmVfc3dhcF9idWZmZXJzX2NhbGxiYWNrICh1aW50IGlkKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUg KENvZ2wuQm9vbCByZXNpemFibGUpOworKwkJcHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoYm9v bCByZXNpemFibGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZv aWQgc2hvdyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9p ZCBzd2FwX2J1ZmZlcnMgKCk7CisrCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnMgKENvZ2wuRnJh bWVJbmZvIGZyYW1lX2luZm8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1 YmxpYyB2b2lkIHN3YXBfYnVmZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBu X3JlY3RhbmdsZXMpOworKwkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzX3dpdGhfZGFtYWdlIChp bnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xlcywgQ29nbC5GcmFtZUluZm8gaW5mbyk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9yZWdpb24g KGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsKKysJCXB1YmxpYyB2b2lkIHN3YXBf cmVnaW9uIChpbnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xlcywgQ29nbC5GcmFtZUluZm8g aW5mbyk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9kaXJ0eV9jbG9zdXJlX2dldF9ndHlwZSAo KSIpXQorIAlbQ29tcGFjdF0KK0BAIC0yNDQsNyArMTc3LDggQEAgbmFtZXNwYWNlIENvZ2wgewor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNv Z2xfcGlwZWxpbmVfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENv Z2wuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBQaXBlbGluZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KysJCXB1YmxpYyBQaXBlbGluZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmUgY29weSAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0yNTQsNDQgKzE4OCwzMCBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0 X2FscGhhX3Rlc3RfcmVmZXJlbmNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sg Z2V0X2NvbG9yX21hc2sgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29n bC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dp bmRpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wu UGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21hZ19maWx0ZXIgKGludCBsYXllcl9pbmRleCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0 ZXIgZ2V0X2xheWVyX21pbl9maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJp dGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CisrCQlwdWJsaWMgYm9vbCBnZXRf bGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVy ZSBnZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dy YXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3Mg KGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJs aWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVy X2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0 X25fbGF5ZXJzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENv Z2wuQm9vbCBnZXRfcGVyX3ZlcnRleF9wb2ludF9zaXplICgpOworKwkJcHVibGljIGJvb2wgZ2V0 X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9y IHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQg Z2V0X3VuaWZvcm1fbG9jYXRpb24gKHN0cmluZyB1bmlmb3JtX25hbWUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3VzZXJf cHJvZ3JhbSAoKTsKK0BAIC0zMDAsMTEgKzIyMCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1 bmN0aW9uIChDb2dsLlBpcGVsaW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3Jl ZmVyZW5jZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9y IGNvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJ CXB1YmxpYyBib29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIu RXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRf YmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorQEAgLTMxMyw0NiArMjI5LDM1IEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9h dCBibHVlLCBmbG9hdCBhbHBoYSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJs dWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9jb2xvcl9tYXNrIChDb2dsLkNvbG9yTWFzayBjb2xvcl9tYXNrKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9k ZSAoQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBjdWxsX2ZhY2VfbW9kZSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xv ciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfZnJvbnRfZmFjZV93aW5kaW5nIChDb2dsLldp bmRpbmcgZnJvbnRfd2luZGluZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmlu ZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2xh eWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dz IEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9y IGNvbnN0YW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfZmlsdGVycyAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lRmlsdGVy IG1pbl9maWx0ZXIsIENvZ2wuUGlwZWxpbmVGaWx0ZXIgbWFnX2ZpbHRlcik7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50 IGxheWVyX2luZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgpOworKwkJcHVibGljIHZvaWQgc2V0X2xh eWVyX21heF9taXBtYXBfbGV2ZWwgKGludCBsYXllciwgaW50IG1heF9sZXZlbCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX251bGxfdGV4 dHVyZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlRleHR1cmVUeXBlIHRleHR1cmVfdHlwZSk7Cisr CQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbnVsbF90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5 ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9v bCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX3Bv aW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBib29sIGVuYWJsZSkg dGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfdGV4dHVyZSAoaW50 IGxheWVyX2luZGV4LCBDb2dsLlRleHR1cmUgdGV4dHVyZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVy X2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXll cl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6 ZSAoQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBz ZXRfcGVyX3ZlcnRleF9wb2ludF9zaXplIChib29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRf c2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNv bG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF91bmlmb3JtXzFmIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgZmxvYXQgdmFsdWUpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1f MWkgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgdmFsdWUpOworQEAgLTM2MSw3ICsyNjYsNyBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCBzZXRfdW5pZm9ybV9pbnQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21w b25lbnRzLCBpbnQgY291bnQsIGludCB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0 aW9uLCBpbnQgZGltZW5zaW9ucywgaW50IGNvdW50LCBDb2dsLkJvb2wgdHJhbnNwb3NlLCBmbG9h dCB2YWx1ZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3Jt X2xvY2F0aW9uLCBpbnQgZGltZW5zaW9ucywgaW50IGNvdW50LCBib29sIHRyYW5zcG9zZSwgZmxv YXQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CisgCX0KK0BAIC0zODgsNyAr MjkzLDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKy0J cHVibGljIGNsYXNzIFF1YXRlcm5pb24geworKwlwdWJsaWMgY2xhc3MgU2Nhbm91dCB7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29n bEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX3NoYWRlcl9yZWYiLCB1bnJlZl9mdW5jdGlv biA9ICJjb2dsX3NoYWRlcl91bnJlZiIpXQorIAlbQ29tcGFjdF0KK0BAIC00MDEsNDggKzMwNiwy MyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBpc19jb21waWxlZCAoKTsKKyAJ CXB1YmxpYyB2b2lkIHNvdXJjZSAoc3RyaW5nIHNvdXJjZSk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9m dW5jdGlvbiA9ICJjb2dsX3RleHR1cmVfcmVmIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfZ2V0 X2d0eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3VucmVmIildCistCVtD b21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENvZ2wuSGFuZGxlIHsKKy0JCXB1Ymxp YyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgc3Rh dGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYml0bWFw IChDb2dsLkJpdG1hcCBibXBfaGFuZGxlLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5Q aXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9kYXRh ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wu UGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgdWlu dCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1Y2hhcltdIGRhdGEp OworLQkJcHVibGljIFRleHR1cmUuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4 dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dz IEdMaWIuRXJyb3I7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX3N1Yl90ZXh0dXJlIChDb2dsLlRl eHR1cmUgZnVsbF90ZXh0dXJlLCBpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwg aW50IHN1Yl9oZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1Ymxp YyBDb2dsLlRleHR1cmVDb21wb25lbnRzIGdldF9jb21wb25lbnRzICgpOworLQkJcHVibGljIGlu dCBnZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCB1aW50 OCBkYXRhKTsKKy0JCXB1YmxpYyBDb2dsLlBpeGVsRm9ybWF0IGdldF9mb3JtYXQgKCk7CistCQlw dWJsaWMgQ29nbC5Cb29sIGdldF9nbF90ZXh0dXJlIChvdXQgdWludCBvdXRfZ2xfaGFuZGxlLCBv dXQgdWludCBvdXRfZ2xfdGFyZ2V0KTsKKy0JCXB1YmxpYyB1aW50IGdldF9oZWlnaHQgKCk7Cist CQlwdWJsaWMgaW50IGdldF9tYXhfd2FzdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x OCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcHJlbXVsdGlwbGllZCAoKTsKKy0JCXB1Ymxp YyB1aW50IGdldF9yb3dzdHJpZGUgKCk7CistCQlwdWJsaWMgdWludCBnZXRfd2lkdGggKCk7Cist CQlwdWJsaWMgQ29nbC5Cb29sIGlzX3NsaWNlZCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJp dG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxf Zm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVy ZSBuZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdz IGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5h bF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxl bmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxf Zm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg c3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWlu dCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1 aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1 Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2Ug PSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfd2l0aF9zaXplICh1 aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4 ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4Iild CistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9uZW50cyAoQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBj b21wb25lbnRzKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3Jt YXQgZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhLCBpbnQgbGV2ZWwpIHRocm93cyBH TGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9wcmVtdWx0aXBsaWVkIChDb2dsLkJvb2wgcHJlbXVsdGlwbGllZCk7CistCQlwdWJsaWMg Q29nbC5Cb29sIHNldF9yZWdpb24gKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGlu dCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQg aGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRh dGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBz ZXRfcmVnaW9uX2Zyb21fYml0bWFwIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBp bnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIENvZ2wuQml0bWFwIGJp dG1hcCk7CistCQlwdWJsaWMgVGV4dHVyZS53aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVp Z2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9m b3JtYXQpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBsb3dl cl9jYXNlX2NzdWZmaXggPSAidGV4dHVyZV8yZCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlXzJk X2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgVGV4dHVyZTJEIDogQ29nbC5PYmplY3Qs IENvZ2wuVGV4dHVyZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisrCQlwcm90ZWN0ZWQgVGV4dHVyZTJEICgpOworKwkJcHVibGljIHZvaWQgZWdsX2ltYWdl X2V4dGVybmFsX2FsbG9jX2ZpbmlzaCAodm9pZCogdXNlcl9kYXRhLCBHTGliLkRlc3Ryb3lOb3Rp ZnkgZGVzdHJveSk7CisrCQlwdWJsaWMgdm9pZCBlZ2xfaW1hZ2VfZXh0ZXJuYWxfYmluZCAoKTsK KysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKysJCXB1YmxpYyBUZXh0dXJlMkQuZnJvbV9iaXRtYXAgKENvZ2wu Qml0bWFwIGJpdG1hcCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgbG93ZXJfY2FzZV9jc3VmZml4ID0gInRleHR1cmVfMmRfc2xpY2VkIiwgdHlwZV9p ZCA9ICJjb2dsX3RleHR1cmVfMmRfc2xpY2VkX2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xh c3MgVGV4dHVyZTJEU2xpY2VkIDogQ29nbC5PYmplY3QsIENvZ2wuVGV4dHVyZSB7CisrCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgVGV4dHVy ZTJEU2xpY2VkICgpOworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKysJCXB1YmxpYyBUZXh0dXJlMkRTbGlj ZWQuZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJtcCwgaW50IG1heF93YXN0ZSk7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhh bmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX3ZlcnRleF9idWZmZXJfcmVmIiwgdW5yZWZfZnVu Y3Rpb24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVyX3VucmVmIildCisgCVtDb21wYWN0XQorQEAgLTQ2 OCw3ICszNDgsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZWJ1ZmZlcl9nZXRfZ3R5cGUg KCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBGcmFtZWJ1ZmZlciA6IENvZ2wuT2JqZWN0IHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUg KCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lk IGNsZWFyICh1bG9uZyBidWZmZXJzLCBDb2dsLkNvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KK0BAIC00ODgsNiArMzY4LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJ cHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZmluaXNoICgpOworKwkJcHVibGljIHZvaWQgZmx1 c2ggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZnJ1 c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBm bG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K K0BAIC00OTUsMjIgKzM3NiwxOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGdldF9ibHVlX2JpdHMgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21h c2sgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkNvbnRleHQgZ2V0X2NvbnRleHQgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9kZXB0aF9iaXRz ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENv Z2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE0IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRf ZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKysJCXB1YmxpYyBib29sIGdldF9kZXB0aF93cml0ZV9l bmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wu Qm9vbCBnZXRfZGl0aGVyX2VuYWJsZWQgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZGl0aGVyX2Vu YWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGdl dF9ncmVlbl9iaXRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGlj IGludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfaXNfc3RlcmVvICgp OworKwkJcHVibGljIGJvb2wgZ2V0X2lzX3N0ZXJlbyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTU0NywxMiArNDI0LDEzIEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfcmVjdGFuZ2xlX2NsaXAg KGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CisrCQlwdWJsaWMg dm9pZCBwdXNoX3JlZ2lvbl9jbGlwIChDYWlyby5SZWdpb24gcmVnaW9uKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3NjaXNzb3JfY2xpcCAoaW50 IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHMgKGludCB4LCBpbnQgeSwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludDggcGl4 ZWxzKTsKKysJCXB1YmxpYyBib29sIHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0 aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3Bp eGVsc19pbnRvX2JpdG1hcCAoaW50IHgsIGludCB5LCBDb2dsLlJlYWRQaXhlbHNGbGFncyBzb3Vy Y2UsIENvZ2wuQml0bWFwIGJpdG1hcCk7CisrCQlwdWJsaWMgYm9vbCByZWFkX3BpeGVsc19pbnRv X2JpdG1hcCAoaW50IHgsIGludCB5LCBDb2dsLlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wu Qml0bWFwIGJpdG1hcCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMg dm9pZCByZXNvbHZlX3NhbXBsZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitA QCAtNTYwLDE5ICs0MzgsMTMgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1 YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKEdyYXBo ZW5lLkV1bGVyIGV1bGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xv ck1hc2sgY29sb3JfbWFzayk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2RlcHRoX3RleHR1cmVfZW5hYmxlZCAoQ29nbC5Cb29sIGVuYWJsZWQpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93 cml0ZV9lbmFibGVkIChDb2dsLkJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisrCQlwdWJsaWMg dm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoYm9vbCBkZXB0aF93cml0ZV9lbmFibGVkKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaXRoZXJf ZW5hYmxlZCAoQ29nbC5Cb29sIGRpdGhlcl9lbmFibGVkKTsKKysJCXB1YmxpYyB2b2lkIHNldF9k aXRoZXJfZW5hYmxlZCAoYm9vbCBkaXRoZXJfZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0 cml4IG1hdHJpeCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTU4OCw2ICs0 NjAsMzkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7Cisg CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9 ICJjb2dsX3RleHR1cmVfZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBpbnRlcmZhY2UgVGV4dHVy ZSA6IENvZ2wuT2JqZWN0IHsKKysJCXB1YmxpYyBib29sIGFsbG9jYXRlICgpIHRocm93cyBHTGli LkVycm9yOworKwkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIENvZ2wuVGV4dHVyZUNvbXBvbmVudHMg Z2V0X2NvbXBvbmVudHMgKCk7CisrCQlwdWJsaWMgaW50IGdldF9kYXRhIChDb2dsLlBpeGVsRm9y bWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSB1aW50OFtdPyBkYXRhKTsKKysJCXB1YmxpYyBib29sIGdldF9nbF90ZXh0dXJlIChvdXQgdWlu dCBvdXRfZ2xfaGFuZGxlLCBvdXQgdWludCBvdXRfZ2xfdGFyZ2V0KTsKKysJCXB1YmxpYyB1aW50 IGdldF9oZWlnaHQgKCk7CisrCQlwdWJsaWMgaW50IGdldF9tYXhfd2FzdGUgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIGJvb2wgZ2V0X3ByZW11bHRpcGxpZWQg KCk7CisrCQlwdWJsaWMgdWludCBnZXRfd2lkdGggKCk7CisrCQlwdWJsaWMgYm9vbCBpc19zbGlj ZWQgKCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUg bmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZs YWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisrCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIp XQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRo LCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBm b3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCBb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKysJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAi MC44IildCisrCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9maWxlIChzdHJp bmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGlu dGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorKwkJ cHVibGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQg c3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKysJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44Iild CisrCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRo LCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQg aW50ZXJuYWxfZm9ybWF0KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJs aWMgdm9pZCBzZXRfY29tcG9uZW50cyAoQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRz KTsKKysJCXB1YmxpYyBib29sIHNldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgaW50 IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwg aW50IGxldmVsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4 IildCisrCQlwdWJsaWMgdm9pZCBzZXRfcHJlbXVsdGlwbGllZCAoYm9vbCBwcmVtdWx0aXBsaWVk KTsKKysJCXB1YmxpYyBib29sIHNldF9yZWdpb24gKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQg ZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUs IFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorKwkJcHVibGljIGJvb2wgc2V0X3JlZ2lvbl9mcm9tX2JpdG1h cCAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93 aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBDb2dsLkJpdG1hcCBiaXRtYXApOworKwl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbU2ltcGxlVHlwZV0KKyAJ cHVibGljIHN0cnVjdCBBbmdsZSA6IGludDMyIHsKK0BAIC02MzUsMTAgKzU0MCw2IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2J5dGUgKHVpbnQ4IGJsdWUpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsdWVfZmxv YXQgKGZsb2F0IGJsdWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zy b21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzR1YiAodWludDggcmVk LCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2dyZWVuIChmbG9hdCBncmVlbik7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNjYyLDcgKzU2Myw3IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworIAkJcHVibGljIHVsb25nIGlu c3RhbmNlX2NvdW50OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFU UklYIildCisgCXB1YmxpYyBzdHJ1Y3QgTWF0cml4IHsKKyAJCXB1YmxpYyBmbG9hdCB4eDsKKyAJ CXB1YmxpYyBmbG9hdCB5eDsKK0BAIC02ODksMzIgKzU5MCwyNyBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlwdWJsaWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQg Ym90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworIAkJcHVibGlj IHVub3duZWQgZmxvYXRbXSBnZXRfYXJyYXkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52 ZXJzZSk7CisrCQlwdWJsaWMgYm9vbCBnZXRfaW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVy c2UpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9pbml0X2lkZW50aXR5IildCisg CQlwdWJsaWMgTWF0cml4LmlkZW50aXR5ICgpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1 bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJu aW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlwdWJsaWMgdm9pZCBpbml0X2Zy b21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKyAJCXB1YmxpYyB2b2lkIGluaXRfdHJhbnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0 eSwgZmxvYXQgdHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENv Z2wuQm9vbCBpc19pZGVudGl0eSAoKTsKKysJCXB1YmxpYyBib29sIGlzX2lkZW50aXR5ICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgbG9va19hdCAoZmxv YXQgZXllX3Bvc2l0aW9uX3gsIGZsb2F0IGV5ZV9wb3NpdGlvbl95LCBmbG9hdCBleWVfcG9zaXRp b25feiwgZmxvYXQgb2JqZWN0X3gsIGZsb2F0IG9iamVjdF95LCBmbG9hdCBvYmplY3RfeiwgZmxv YXQgd29ybGRfdXBfeCwgZmxvYXQgd29ybGRfdXBfeSwgZmxvYXQgd29ybGRfdXBfeik7CisgCQlb Q0NvZGUgKGNuYW1lID0gImNvZ2xfbWF0cml4X211bHRpcGx5IildCisgCQlwdWJsaWMgTWF0cml4 Lm11bHRpcGx5IChDb2dsLk1hdHJpeCBhLCBDb2dsLk1hdHJpeCBiKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQg dG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB2b2lkIG9ydGhvZ3JhcGhpYyAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZs b2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworIAkJcHVibGljIHZv aWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwg ZmxvYXQgel9mYXIpOworIAkJcHVibGljIHZvaWQgcHJvamVjdF9wb2ludHMgKGludCBuX2NvbXBv bmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9v dXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCByb3Rh dGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxl ciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBy b3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGlj IHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlwdWJsaWMgdm9p ZCBzY2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzeik7CistCQlwdWJsaWMgdm9pZCB0 cmFuc2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJl ZiBmbG9hdCB3KTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBD b2dsLk1hdHJpeCBtYXRyaXgsIHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHos IHJlZiBmbG9hdCB3KTsKKyAJCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludHMgKGludCBuX2Nv bXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlk ZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CisgCQlwdWJsaWMgdm9pZCB0 cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KK0BAIC04MDEsMTYgKzY5Nyw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVdJ TkRPV19CVUZGRVIsCisgCQlPRkZTQ1JFRU5fQlVGRkVSCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0NPTE9SX01BU0tfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gQ29sb3JNYXNr IHsKKy0JCU5PTkUsCistCQlSRUQsCistCQlHUkVFTiwKKy0JCUJMVUUsCistCQlBTFBIQSwKKy0J CUFMTAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9ERVBUSF9URVNUX0ZVTkNUSU9OXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorIAlwdWJsaWMgZW51bSBEZXB0aFRlc3RGdW5jdGlvbiB7CisgCQlORVZFUiwKK0BAIC04MjIs NDYgKzcwOCw0MSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlHRVFVQUwsCisgCQlBTFdBWVMKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0VHTF9JTUFHRV9GTEFH XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjgiKV0KKy0JcHVibGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKy0JCVRFWFRVUkVfUkVDVEFO R0xFLAorLQkJVEVYVFVSRV9OUE9ULAorLQkJVEVYVFVSRV9ZVVYsCistCQlURVhUVVJFX1JFQURf UElYRUxTLAorLQkJU0hBREVSU19HTFNMLAorLQkJT0ZGU0NSRUVOLAorLQkJT0ZGU0NSRUVOX01V TFRJU0FNUExFLAorLQkJT0ZGU0NSRUVOX0JMSVQsCistCQlGT1VSX0NMSVBfUExBTkVTLAorLQkJ U1RFTkNJTF9CVUZGRVIsCistCQlWQk9TLAorLQkJUEJPUywKKy0JCVVOU0lHTkVEX0lOVF9JTkRJ Q0VTLAorLQkJREVQVEhfUkFOR0UsCistCQlURVhUVVJFX05QT1RfQkFTSUMsCistCQlURVhUVVJF X05QT1RfTUlQTUFQLAorLQkJVEVYVFVSRV9OUE9UX1JFUEVBVCwKKy0JCVBPSU5UX1NQUklURSwK Ky0JCVRFWFRVUkVfM0QsCistCQlNQVBfQlVGRkVSX0ZPUl9SRUFELAorLQkJTUFQX0JVRkZFUl9G T1JfV1JJVEUsCistCQlPTlNDUkVFTl9NVUxUSVBMRSwKKy0JCURFUFRIX1RFWFRVUkUKKysJcHVi bGljIGVudW0gRWdsSW1hZ2VGbGFncyB7CisrCQlOT05FLAorKwkJTk9fR0VUX0RBVEEKKysJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfRkVBVFVSRV9JRF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKysJcHVibGljIGVudW0gRmVhdHVyZUlEIHsKKysJCVtDQ29kZSAoY25hbWUg PSAiQ09HTF9GRUFUVVJFX0lEX1VOU0lHTkVEX0lOVF9JTkRJQ0VTIildCisrCQlPR0xfRkVBVFVS RV9JRF9VTlNJR05FRF9JTlRfSU5ESUNFUywKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFU VVJFX0lEX01BUF9CVUZGRVJfRk9SX1JFQUQiKV0KKysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZG RVJfRk9SX1JFQUQsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVG RkVSX0ZPUl9XUklURSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUs CisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQi KV0KKysJCU9HTF9GRUFUVVJFX0lEX1NXQVBfQlVGRkVSU19FVkVOVCwKKysJCVtDQ29kZSAoY25h bWUgPSAiQ09HTF9GRUFUVVJFX0lEX1BSRVNFTlRBVElPTl9USU1FIildCisrCQlPR0xfRkVBVFVS RV9JRF9QUkVTRU5UQVRJT05fVElNRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJF X0lEX0ZFTkNFIildCisrCQlPR0xfRkVBVFVSRV9JRF9GRU5DRSwKKysJCVtDQ29kZSAoY25hbWUg PSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVfUkciKV0KKysJCU9HTF9GRUFUVVJFX0lEX1RFWFRV UkVfUkcsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9CVUZGRVJfQUdFIild CisrCQlPR0xfRkVBVFVSRV9JRF9CVUZGRVJfQUdFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dM X0ZFQVRVUkVfSURfVEVYVFVSRV9FR0xfSU1BR0VfRVhURVJOQUwiKV0KKysJCU9HTF9GRUFUVVJF X0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVSTkFMLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dM X0ZFQVRVUkVfSURfQkxJVF9GUkFNRUJVRkZFUiIpXQorKwkJT0dMX0ZFQVRVUkVfSURfQkxJVF9G UkFNRUJVRkZFUgorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1 YmxpYyBlbnVtIEZpbHRlclJldHVybiB7CisgCQlDT05USU5VRSwKKyAJCVJFTU9WRQorIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9GT0dfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVBUiwKKy0JCUVYUE9ORU5U SUFMLAorLQkJRVhQT05FTlRJQUxfU1FVQVJFRAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRV9FVkVOVF8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGlj IGVudW0gRnJhbWVFdmVudCB7CitAQCAtODc0LDYgKzc1NSwxNCBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlGUkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURTsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMy IHF1YXJrICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9HUkFQSElDU19SRVNFVF9TVEFUVVNfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisrCXB1YmxpYyBlbnVtIEdyYXBoaWNzUmVzZXRTdGF0dXMgeworKwkJTk9fRVJS T1IsCisrCQlHVUlMVFlfQ09OVEVYVF9SRVNFVCwKKysJCUlOTk9DRU5UX0NPTlRFWFRfUkVTRVQs CisrCQlVTktOT1dOX0NPTlRFWFRfUkVTRVQsCisrCQlQVVJHRURfQ09OVEVYVF9SRVNFVAorKwl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdORURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1 YmxpYyBlbnVtIEluZGljZXNUeXBlIHsKKyAJCUJZVEUsCitAQCAtOTAwLDEyICs3ODksNiBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCQlORUFSRVNUX01JUE1BUF9MSU5FQVIsCisgCQlMSU5FQVJfTUlQ TUFQX0xJTkVBUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIE1hdGVy aWFsTGF5ZXJUeXBlIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9U WVBFX1RFWFRVUkUiKV0KKy0JCU1BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVSRQorLQl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9N QVRFUklBTF9XUkFQX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGVudW0gTWF0ZXJpYWxXcmFwTW9kZSB7CitAQCAtOTcw LDYgKzg1MywxMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlCR1JBXzEwMTAxMDIsCisgCQlBUkdC XzIxMDEwMTAsCisgCQlBQkdSXzIxMDEwMTAsCisrCQlSR0JBX0ZQXzE2MTYxNjE2LAorKwkJQkdS QV9GUF8xNjE2MTYxNiwKKysJCUFSR0JfRlBfMTYxNjE2MTYsCisrCQlBQkdSX0ZQXzE2MTYxNjE2 LAorIAkJUkdCQV84ODg4X1BSRSwKKyAJCUJHUkFfODg4OF9QUkUsCisgCQlBUkdCXzg4ODhfUFJF LAorQEAgLTk4MCw5ICs4NjcsMTYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJQkdSQV8xMDEwMTAy X1BSRSwKKyAJCUFSR0JfMjEwMTAxMF9QUkUsCisgCQlBQkdSXzIxMDEwMTBfUFJFLAorKwkJUkdC QV9GUF8xNjE2MTYxNl9QUkUsCisrCQlCR1JBX0ZQXzE2MTYxNjE2X1BSRSwKKysJCUFSR0JfRlBf MTYxNjE2MTZfUFJFLAorKwkJQUJHUl9GUF8xNjE2MTYxNl9QUkUsCisgCQlERVBUSF8xNiwKKyAJ CURFUFRIXzMyLAorLQkJREVQVEhfMjRfU1RFTkNJTF84CisrCQlERVBUSF8yNF9TVEVOQ0lMXzg7 CisrCQlwdWJsaWMgaW50IGdldF9ieXRlc19wZXJfcGl4ZWwgKGludCBwbGFuZSk7CisrCQlwdWJs aWMgaW50IGdldF9uX3BsYW5lcyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJp bmcgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX1JFQURfUElYRUxTX0NPTE9SXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorIAlbRmxhZ3NdCitAQCAtMTA0MSwxMyArOTM1LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJ Tk9fU0xJQ0lORywKKyAJCU5PX0FUTEFTCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1RFWFRVUkVfVFlQRV8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIGVu dW0gVGV4dHVyZVR5cGUgeworLQkJQDJELAorLQkJQDNELAorLQkJUkVDVEFOR0xFCistCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X1ZFUlRJQ0VTX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJcHVibGljIGVudW0gVmVydGljZXNNb2RlIHsKK0BAIC0xMDY3LDcgKzk1 NCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1dJTlNZU19GRUFUVVJFXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBXaW5zeXNGZWF0dXJlIHsKKyAJCU1VTFRJUExFX09O U0NSRUVOLAorLQkJU1dBUF9USFJPVFRMRSwKKyAJCVZCTEFOS19DT1VOVEVSLAorIAkJVkJMQU5L X1dBSVQsCisgCQlURVhUVVJFX0ZST01fUElYTUFQLAorQEAgLTEwODIsOSArOTY4LDEyIEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlw dWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgKENvZ2wu RGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0J cHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBNYXRlcmlhbExheWVyQ2FsbGJhY2sgKENvZ2wuTWF0 ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9pbmRleCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisrCVtWZXJzaW9uIChz aW5jZSA9ICIwLjEwIildCisrCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEZlYXR1cmVDYWxsYmFjayAo Q29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDMuOSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE0IildCisrCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEZyYW1lQ2FsbGJhY2sgKENvZ2wuT25zY3Jl ZW4gb25zY3JlZW4sIENvZ2wuRnJhbWVFdmVudCBldmVudCwgQ29nbC5GcmFtZUluZm8gaW5mbyk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3Bv cyA9IDIuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBkZWxlZ2F0 ZSB2b2lkIE9uc2NyZWVuRGlydHlDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29n bC5PbnNjcmVlbkRpcnR5SW5mbyBpbmZvKTsKK0BAIC0xMDkyLDEyICs5ODEsMTAgQEAgbmFtZXNw YWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCXB1YmxpYyBkZWxlZ2F0 ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIGlu dCB3aWR0aCwgaW50IGhlaWdodCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9u c2NyZWVuWDExTWFza0NhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZl bnRfbWFzayk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGlu c3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGlj IGRlbGVnYXRlIENvZ2wuQm9vbCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUg cGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CisrCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFBpcGVs aW5lTGF5ZXJDYWxsYmFjayAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgaW50IGxheWVyX2luZGV4 KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2Vf cG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgU3dhcEJ1ZmZlcnNOb3RpZnkgKENv Z2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworKwlwdWJsaWMgZGVsZWdhdGUgYm9vbCBUZXh0 dXJlMkRFR0xJbWFnZUV4dGVybmFsQWxsb2MgKENvZ2wuVGV4dHVyZTJEIHRleF8yZCkgdGhyb3dz IEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGhhc190YXJnZXQgPSBmYWxzZSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFVzZXJEYXRhRGVz dHJveUNhbGxiYWNrICh2b2lkKiBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9BRklSU1RfQklUIildCitAQCAtMTEwOCw2ICs5 OTUsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjb25zdCBpbnQgQkdSX0JJVDsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9E RVBUSF9CSVQiKV0KKyAJcHVibGljIGNvbnN0IGludCBERVBUSF9CSVQ7CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUElYRUxfRk9STUFU X01BWF9QTEFORVMiKV0KKysJcHVibGljIGNvbnN0IGludCBQSVhFTF9GT1JNQVRfTUFYX1BMQU5F UzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAi Q09HTF9QUkVNVUxUX0JJVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSRU1VTFRfQklUOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NU RU5DSUxfQklUIildCitAQCAtMTExNSwyMSArMTAwNCwxMiBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xf VEVYVFVSRV9NQVhfV0FTVEUiKV0KKyAJcHVibGljIGNvbnN0IGludCBURVhUVVJFX01BWF9XQVNU RTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBiZWdpbl9nbCAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds LkJvb2wgY2hlY2tfZXh0ZW5zaW9uIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgY2xlYXIgKENvZ2wuQ29sb3IgY29sb3IsIHVsb25nIGJ1ZmZlcnMpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds LkJvb2wgY2x1dHRlcl9jaGVja19leHRlbnNpb25fQ0xVVFRFUiAoc3RyaW5nIG5hbWUsIHN0cmlu ZyBleHQpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgYmxpdF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFt ZWJ1ZmZlciBzcmMsIENvZ2wuRnJhbWVidWZmZXIgZGVzdCwgaW50IHNyY194LCBpbnQgc3JjX3ks IGludCBkc3RfeCwgaW50IGRzdF95LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHRocm93cyBHTGli LkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVfQ0xVVFRF UiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgY2x1 dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1 cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjb2xvcl9l cXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKysJcHVibGljIHN0YXRpYyBib29sIGNvbG9yX2Vx dWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0 YXRpYyB2b2lkIGNvbG9yX2luaXRfZnJvbV9oc2wgKG91dCBDb2dsLkNvbG9yIGNvbG9yLCBmbG9h dCBodWUsIGZsb2F0IHNhdHVyYXRpb24sIGZsb2F0IGx1bWluYW5jZSk7CitAQCAtMTE0MywyMzQg KzEwMjMsODcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CisgCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19vYmplY3RfcHJpbnRfaW5zdGFuY2VzICgpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIGRpc2FibGVfZm9nICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IGVuZF9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGZlYXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5G ZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGlj IHZvaWQgZmx1c2ggKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBmcnVzdHVtIChm bG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpf bmVhciwgZmxvYXQgel9mYXIpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJs aWMgc3RhdGljIHZvaWQgZm9yZWFjaF9mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29n bC5GZWF0dXJlQ2FsbGJhY2sgY2FsbGJhY2spOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2JhY2tm YWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKysJcHVibGljIHN0YXRpYyBib29sIGdldF9iYWNrZmFj ZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfYml0bWFza3MgKG91dCBpbnQg cmVkLCBvdXQgaW50IGdyZWVuLCBvdXQgaW50IGJsdWUsIG91dCBpbnQgYWxwaGEpOworKwlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgc3RhdGljIGludDY0IGdldF9jbG9ja190 aW1lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfZGVwdGhf dGVzdF9lbmFibGVkICgpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5h YmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wu RnJhbWVidWZmZXIgZ2V0X2RyYXdfZnJhbWVidWZmZXIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3Rh dGljIENvZ2wuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRy aXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CisrCXB1YmxpYyBzdGF0aWMgQ29nbC5HcmFwaGlj c1Jlc2V0U3RhdHVzIGdldF9ncmFwaGljc19yZXNldF9zdGF0dXMgKENvZ2wuQ29udGV4dCBjb250 ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9u X2dyb3VwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KyAJcHVibGljIHN0YXRpYyBHTGliLkNhbGxiYWNrIGdldF9wcm9jX2FkZHJlc3MgKHN0cmluZyBz KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X3Byb2plY3Rpb25fbWF0cml4ICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkKiBnZXRfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF92 aWV3cG9ydCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIG91dCBmbG9hdCB2WzRdKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4IildCisgCXB1Ymxp YyBzdGF0aWMgR0xpYi5UeXBlIGd0eXBlX21hdHJpeF9nZXRfdHlwZSAoKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX2ZyYW1lYnVmZmVyICh2b2lkKiBv YmplY3QpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaGFzX2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBj b250ZXh0LCBDb2dsLkZlYXR1cmVJRCBmZWF0dXJlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX29uc2NyZWVuICh2b2lkKiBvYmplY3QpOworKwlwdWJs aWMgc3RhdGljIGJvb2wgaXNfY29udGV4dCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfcGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGlj ZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZV9p bmZvICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuQm9vbCBtYXRyaXhfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0 b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJz cGVjdGl2ZSAoZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpf ZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENv Z2wuVGV4dHVyZVZlcnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBDb2dsLkJvb2wgdXNl X2NvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHBvcF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCByZWN0YW5nbGUgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZs b2F0IHlfMik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5n bGVfd2l0aF9tdWx0aXRleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgy LCBmbG9hdCB5MiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nv b3JkcywgaW50IHRleF9jb29yZHNfbGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHJlY3RhbmdsZV93aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQg eTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4Miwg ZmxvYXQgdHkyKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRp YyBib29sIGlzX2ZyYW1lYnVmZmVyICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CisrCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0 KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIwLjguNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlc193 aXRoX3RleHR1cmVfY29vcmRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRb XSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorKwlw dWJsaWMgc3RhdGljIGJvb2wgaXNfcGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCXB1 YmxpYyBzdGF0aWMgYm9vbCBpc190ZXh0dXJlXzJkICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX3RleHR1cmVfMmRfc2xpY2VkICh2 b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQg KENvZ2wuQm9vbCBzZXR0aW5nKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwlwdWJs aWMgc3RhdGljIGJvb2wgbWF0cml4X2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF9kZXB0aF90ZXN0X2VuYWJsZWQgKENvZ2wuQm9vbCBzZXR0aW5nKTsKKysJcHVi bGljIHN0YXRpYyB2b2lkIHNldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKGJvb2wgc2V0dGlu Zyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvZyAoQ29nbC5Db2xvciBmb2dfY29sb3IsIENvZ2wuRm9n TW9kZSBtb2RlLCBmbG9hdCBkZW5zaXR5LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJ cHVibGljIHN0YXRpYyB2b2lkIHNldF9kZXB0aF90ZXN0X2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7 CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdHJhY2luZ19kaXNhYmxlZF9vbl90aHJlYWQgKHZv aWQqIGRhdGEpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRy aXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlICh2b2lk KiBtYXRlcmlhbCk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdHJhY2luZ19lbmFibGVkX29u X3RocmVhZCAodm9pZCogZGF0YSwgc3RyaW5nIGdyb3VwLCBzdHJpbmcgZmlsZW5hbWUpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3IgKENvZ2wuQ29sb3IgY29s b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0ZiAoZmxv YXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDgg Z3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfc291cmNlX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjIiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHNldF92aWV3cG9ydCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgs IGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9jb21waWxlIChDb2dsLkhhbmRsZSBo YW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0YXRpYyBzdHJpbmcgc2hhZGVyX2dldF9pbmZvX2xvZyAoQ29nbC5IYW5kbGUg aGFuZGxlKTsKKysJcHVibGljIHN0YXRpYyB2b2lkIHNldF90cmFjaW5nX2VuYWJsZWRfb25fdGhy ZWFkX3dpdGhfZmQgKHZvaWQqIGRhdGEsIHN0cmluZyBncm91cCwgaW50IGZkKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMg Q29nbC5TaGFkZXJUeXBlIHNoYWRlcl9nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgQ29nbC5Cb29sIHNoYWRlcl9pc19jb21waWxlZCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSBzaGFkZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5k bGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJ cHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9zb3VyY2UgKENvZ2wuSGFuZGxlIHNoYWRlciwgc3Ry aW5nIHNvdXJjZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5k bGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5j ZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJv bV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENv Z2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0 LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wu UGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsK KysJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9kYXRhIChpbnQg d2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9y bWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJp ZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0K KyAJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9maWxlIChzdHJp bmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGlu dGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1 aW50IGdsX3RhcmdldCwgdWludCB3aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUs IHVpbnQgeV9wb3Rfd2FzdGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1 YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0 aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0 IGludGVybmFsX2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3Jt IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwg ZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wu SGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMs IENvZ2wuQXR0cmlidXRlVHlwZSB0eXBlLCBDb2dsLkJvb2wgbm9ybWFsaXplZCwgdWludDE2IHN0 cmlkZSwgdm9pZCogcG9pbnRlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kZWxldGUg KENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB2ZXJ0ZXhfYnVmZmVyX2Rpc2FibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJp YnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxl IGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgaW50IGZpcnN0LCBpbnQgY291bnQpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhd19lbGVtZW50cyAoQ29nbC5IYW5kbGUgaGFu ZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBpbnQgbWlu X2luZGV4LCBpbnQgbWF4X2luZGV4LCBpbnQgaW5kaWNlc19vZmZzZXQsIGludCBjb3VudCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9lbmFibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3Ry aW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3Zl cnRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxl IHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfZm9yX3F1YWRzICh1aW50IG5faW5kaWNlcyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuSW5kaWNlc1R5cGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF90eXBlIChD b2dsLkhhbmRsZSBpbmRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhf YnVmZmVyX25ldyAodWludCBuX3ZlcnRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxl IHZlcnRleF9idWZmZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZl cnRleF9idWZmZXJfc3VibWl0IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVy dGV4X2J1ZmZlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdmlld3BvcnQgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdWlu dDMyIHgxMV9vbnNjcmVlbl9nZXRfdmlzdWFsX3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5f Z2V0X3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX29uc2NyZWVuX3NldF9mb3JlaWduX3dpbmRvd194 aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiB4aWQsIFtDQ29kZSAoc2NvcGUgPSAi YXN5bmMiKV0gQ29nbC5PbnNjcmVlblgxMU1hc2tDYWxsYmFjayB1cGRhdGUpOworIH0KK2RpZmYg LS1naXQgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZh cGkKK2luZGV4IDkzZWZmOGE1Li5mZWRjNmE0YSAxMDA2NDQKKy0tLSB2YXBpL3BvbGtpdC1nb2Jq ZWN0LTEudmFwaQorKysrIHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBpCitAQCAtNyw3ICs3LDcg QEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQWN0aW9uRGVzY3JpcHRpb24gKCk7CisgCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X2FjdGlvbl9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfYW5ub3RhdGlvbiAoc3RyaW5nIGtleSk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/ IGdldF9hbm5vdGF0aW9uIChzdHJpbmcga2V5KTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQorIAkJcHVibGljIHVub3duZWQg c3RyaW5nW10gZ2V0X2Fubm90YXRpb25fa2V5cyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfZGVzY3JpcHRpb24gKCk7CitAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgUG9sa2l0 IHsKKyAJCXB1YmxpYyBQb2xraXQuQXV0aG9yaXR5RmVhdHVyZXMgZ2V0X2JhY2tlbmRfZmVhdHVy ZXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2JhY2tlbmRfbmFtZSAoKTsKKyAJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYmFja2VuZF92ZXJzaW9uICgpOworLQkJcHVibGlj IHN0cmluZyBnZXRfb3duZXIgKCk7CisrCQlwdWJsaWMgc3RyaW5nPyBnZXRfb3duZXIgKCk7Cisg CQlwdWJsaWMgc3RhdGljIFBvbGtpdC5BdXRob3JpdHkgZ2V0X3N5bmMgKEdMaWIuQ2FuY2VsbGFi bGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgYXN5 bmMgYm9vbCByZWdpc3Rlcl9hdXRoZW50aWNhdGlvbl9hZ2VudCAoUG9sa2l0LlN1YmplY3Qgc3Vi amVjdCwgc3RyaW5nIGxvY2FsZSwgc3RyaW5nIG9iamVjdF9wYXRoLCBHTGliLkNhbmNlbGxhYmxl PyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgYm9vbCByZWdpc3Rl cl9hdXRoZW50aWNhdGlvbl9hZ2VudF9zeW5jIChQb2xraXQuU3ViamVjdCBzdWJqZWN0LCBzdHJp bmcgbG9jYWxlLCBzdHJpbmcgb2JqZWN0X3BhdGgsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxh YmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CitAQCAtNTYsMjEgKzU2LDIyIEBAIG5hbWVz cGFjZSBQb2xraXQgeworIAlwdWJsaWMgY2xhc3MgQXV0aG9yaXphdGlvblJlc3VsdCA6IEdMaWIu T2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXB1YmxpYyBBdXRob3JpemF0aW9uUmVzdWx0IChib29sIGlzX2F1dGhvcml6ZWQsIGJvb2wgaXNf Y2hhbGxlbmdlLCBQb2xraXQuRGV0YWlscz8gZGV0YWlscyk7CistCQlwdWJsaWMgdW5vd25lZCBQ b2xraXQuRGV0YWlscyBnZXRfZGV0YWlscyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIFBvbGtpdC5E ZXRhaWxzPyBnZXRfZGV0YWlscyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjEwMSIpXQor IAkJcHVibGljIGJvb2wgZ2V0X2Rpc21pc3NlZCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9pc19h dXRob3JpemVkICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2lzX2NoYWxsZW5nZSAoKTsKKyAJCXB1 YmxpYyBib29sIGdldF9yZXRhaW5zX2F1dGhvcml6YXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X3RlbXBvcmFyeV9hdXRob3JpemF0aW9uX2lkICgpOworKwkJcHVibGljIHVu b3duZWQgc3RyaW5nPyBnZXRfdGVtcG9yYXJ5X2F1dGhvcml6YXRpb25faWQgKCk7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAi cG9sa2l0X2RldGFpbHNfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIERldGFpbHMgOiBH TGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CisgCQlwdWJsaWMgRGV0YWlscyAoKTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Us IGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHN0cmluZ1tdIGdldF9r ZXlzICgpOworKwkJcHVibGljIHN0cmluZ1tdPyBnZXRfa2V5cyAoKTsKKyAJCXB1YmxpYyB2b2lk IGluc2VydCAoc3RyaW5nIGtleSwgc3RyaW5nPyB2YWx1ZSk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgbG9va3VwIChzdHJpbmcga2V5KTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZz8gbG9v a3VwIChzdHJpbmcga2V5KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9s a2l0L3BvbGtpdC5oIiwgdHlwZV9pZCA9ICJwb2xraXRfcGVybWlzc2lvbl9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgY2xhc3MgUGVybWlzc2lvbiA6IEdMaWIuUGVybWlzc2lvbiwgR0xpYi5Bc3lu Y0luaXRhYmxlLCBHTGliLkluaXRhYmxlIHsKK0BAIC04OCw3ICs4OSw4IEBAIG5hbWVzcGFjZSBQ b2xraXQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJ cHJvdGVjdGVkIFN5c3RlbUJ1c05hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X25hbWUgKCk7CistCQlwdWJsaWMgUG9sa2l0LlN1YmplY3QgZ2V0X3Byb2Nlc3Nfc3luYyAoR0xp Yi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJ CXB1YmxpYyBQb2xraXQuU3ViamVjdD8gZ2V0X3Byb2Nlc3Nfc3luYyAoR0xpYi5DYW5jZWxsYWJs ZT8gY2FuY2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBQb2xr aXQuVW5peFVzZXI/IGdldF91c2VyX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxl ID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5TdWJq ZWN0IEBuZXcgKHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJpbmcg bmFtZSk7CisgCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KK0BA IC0xNDYsOSArMTQ4LDEwIEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJcHJvdGVjdGVkIFVuaXhT ZXNzaW9uICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zZXNzaW9uX2lkICgpOwor IAkJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBAbmV3IChzdHJpbmcgc2Vzc2lvbl9pZCk7 CistCQlwdWJsaWMgc3RhdGljIGFzeW5jIFBvbGtpdC5TdWJqZWN0IG5ld19mb3JfcHJvY2VzcyAo aW50IHBpZCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9y OworLQkJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBuZXdfZm9yX3Byb2Nlc3Nfc3luYyAo aW50IHBpZCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgYXN5bmMgUG9sa2l0LlN1YmplY3Q/IG5ld19mb3Jf cHJvY2VzcyAoaW50IHBpZCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBH TGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdD8gbmV3X2Zvcl9wcm9j ZXNzX3N5bmMgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkg dGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2Vzc2lvbl9pZCAoc3RyaW5n IHNlc3Npb25faWQpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgaW50IHBpZCB7 IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHN0cmluZyBzZXNzaW9uX2lkIHsgZ2V0OyBzZXQgY29u c3RydWN0OyB9CisgCX0KK0BAIC0xNTYsMTcgKzE1OSwxNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsK KyAJcHVibGljIGNsYXNzIFVuaXhVc2VyIDogR0xpYi5PYmplY3QsIFBvbGtpdC5JZGVudGl0eSB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0 ZWQgVW5peFVzZXIgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7Cisr CQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGdldF9uYW1lICgpOworIAkJcHVibGljIGludCBnZXRf dWlkICgpOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgQG5ldyAoaW50IHVpZCk7 CistCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eSBuZXdfZm9yX25hbWUgKHN0cmluZyBu YW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5 PyBuZXdfZm9yX25hbWUgKHN0cmluZyBuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1Ymxp YyB2b2lkIHNldF91aWQgKGludCB1aWQpOworIAkJcHVibGljIGludCB1aWQgeyBnZXQ7IHNldCBj b25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3Bv bGtpdC5oIiwgdHlwZV9pZCA9ICJwb2xraXRfaWRlbnRpdHlfZ2V0X3R5cGUgKCkiKV0KKyAJcHVi bGljIGludGVyZmFjZSBJZGVudGl0eSA6IEdMaWIuT2JqZWN0IHsKKyAJCXB1YmxpYyBhYnN0cmFj dCBib29sIGVxdWFsIChQb2xraXQuSWRlbnRpdHkgYik7CistCQlwdWJsaWMgc3RhdGljIFBvbGtp dC5JZGVudGl0eSBmcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7Cisr CQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8gZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIp IHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIGFic3RyYWN0IHVpbnQgaGFzaCAoKTsKKyAJ CXB1YmxpYyBhYnN0cmFjdCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CitAQCAtMjAxLDcgKzIw NCw3IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJQURNSU5JU1RSQVRPUl9BVVRIRU5USUNBVElP Tl9SRVFVSVJFRF9SRVRBSU5FRCwKKyAJCUFVVEhPUklaRUQ7CisgCQlwdWJsaWMgc3RhdGljIGJv b2wgZnJvbV9zdHJpbmcgKHN0cmluZyBzdHJpbmcsIFBvbGtpdC5JbXBsaWNpdEF1dGhvcml6YXRp b24gb3V0X2ltcGxpY2l0X2F1dGhvcml6YXRpb24pOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IHN0cmluZyB0b19zdHJpbmcgKFBvbGtpdC5JbXBsaWNpdEF1dGhvcml6YXRpb24gaW1wbGljaXRf YXV0aG9yaXphdGlvbik7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOwor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiLCBjcHJl Zml4ID0gIlBPTEtJVF9FUlJPUl8iKV0KKyAJcHVibGljIGVycm9yZG9tYWluIEVycm9yIHsKK0BA IC0yMTIsNyArMjE1LDcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlwdWJsaWMgc3RhdGljIEdM aWIuUXVhcmsgcXVhcmsgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBv bGtpdC9wb2xraXQuaCIpXQorLQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eSBpZGVudGl0 eV9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCXB1YmxpYyBz dGF0aWMgUG9sa2l0LklkZW50aXR5PyBpZGVudGl0eV9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikg dGhyb3dzIEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQv cG9sa2l0LmgiKV0KKyAJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBzdWJqZWN0X2Zyb21f c3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9CistLSAKKzIuMjguMAor CmRpZmYgLS1naXQgYS9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlIGIvc3JjcGtncy9i dWRnaWUtZGVza3RvcC90ZW1wbGF0ZQppbmRleCBiMzJlNzczNGQzYi4uYWU1YTlkNWY3NjkgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9i dWRnaWUtZGVza3RvcC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2J1ZGdpZS1kZXNrdG9wJwogcGtnbmFtZT1idWRnaWUtZGVza3RvcAogdmVyc2lvbj0xMC41 LjEKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxw ZXI9Z2lyCiBjb25maWd1cmVfYXJncz0iLUR3aXRoLWd0ay1kb2M9ZmFsc2UgLUR3aXRoLWRlc2t0 b3AtaWNvbnM9bm9uZSIK --===============8260361720955377983==--