From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 7196 invoked from network); 22 Aug 2020 17:46:57 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 22 Aug 2020 17:46:57 -0000 Content-Type: multipart/mixed; boundary="===============7292310585723094593==" 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, 22 Aug 2020 19:46:55 +0200 List-Id: Message-ID: <20200822174655.n3570F1Gf6jykZQngjp8l6GyOIQi8WzwseuJe7ZnUNY@z> GitHub notification mails are now in MIME to allow UTF8. --===============7292310585723094593== 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 NS4xICp1bnN0YWJsZSogKGBndGtfZG9jYCBvcHRpb24gZG9lcyBub3Qgd29yazogbmVlZHMgdW5y ZWxlYXNlZCBgZ3RrLWRvY2ApDQotIFt4XSBnbGliLW5ldHdvcmtpbmcgLT4gMi42NS45MCAqKipi ZXRhKioqDQotIFt4XSBhdC1zcGkyLWNvcmUgLT4gMi4zNy45MCAqKipiZXRhKioqDQotIFt4XSBh dC1zcGkyLWF0ayAtPiAyLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIHdlYmtpdDJndGsgLT4gMi4y OS45MSAqKipiZXRhKioqDQotIFt4XSBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIC0+IDMuMzcu MiAqdW5zdGFibGUqDQotIFt4XSBnbm9tZS1kZXNrdG9wIC0+IDMuMzcuOTAuMSAqKipiZXRhKioq DQotIFt4XSBsaWJnd2VhdGhlciAtPiAzLjM2LjEgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtc2V0 dGluZ3MtZGFlbW9uIC0+IDMuMzcuMCAqdW5zdGFibGUqDQotIFt4XSBtdXR0ZXIgLT4gMy4zNy45 MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1tZW51cyAtPiAzLjM2LjAgKipzdGFibGUqKg0KLSBb eF0gY2hlZXNlIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBldm9sdXRpb24tZGF0YS1z ZXJ2ZXIgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1jb250cm9sLWNlbnRlciAt PiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBbeF0gdHJhY2tlciAtPiAyLjMuNCAqKnN0YWJsZSoqDQot IFt4XSBmb2xrcyAtPiAwLjE0LjAgKipzdGFibGUqKg0KLSBbeF0gZGNvbmYtZWRpdG9yIC0+IDMu MzYuNCAqKnN0YWJsZSoqDQotIFt4XSBkZXZoZWxwIC0+IDMuMzcuMSAqdW5zdGFibGUqDQotIFt4 XSBnbm9tZS1zaGVsbCAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLXNoZWxsLWV4 dGVuc2lvbnMgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnZG0gLT4gMy4zNy45MCAqKipi ZXRhKioqDQotIFt4XSBnbm9tZS1zZXNzaW9uIC0+IDMuMzcuMCAqdW5zdGFibGUqDQotIFt4XSBn bm9tZS1vbmxpbmUtYWNjb3VudHMgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1p bml0aWFsLXNldHVwIC0+IDMuMzcuOTEgKioqYmV0YSoqKg0KLSBbeF0geGRnLWRlc2t0b3AtcG9y dGFsLWd0ayAtPiAocmV2YnVtcCkgKipzdGFibGUqKg0KLSBbeF0gbmF1dGlsdXMgLT4gMy4zNy45 MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1tYXBzIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBb eF0gZXZvbHV0aW9uIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZXZvbHV0aW9uLWV3cyAt PiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIHB5dGhvbjMtYXRzcGkgLT4gMi4zNy45MCAqKipi ZXRhKioqDQotIFt4XSBweXRob24tYXRzcGkgLT4gMi4zNy45MCAqKipiZXRhKioqDQotIFt4XSBv cmNhIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtd2VhdGhlciAtPiAocmV2YnVt cCkgKipzdGFibGUqKg0KLSBbeF0gdnRlMyAtPiAwLjYxLjkwICoqKmJldGEqKioNCi0gW3hdIGdu b21lLXRlcm1pbmFsIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtZ2V0dGluZy1z dGFydGVkLWRvY3MgLT4gMy4zNi4yICoqc3RhYmxlKioNCi0gW3hdIGdub21lLXVzZXItZG9jcyAt PiAzLjM2LjIgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtZXB1Yi10aHVtYm5haWxlciAtPiAxLjYg KipzdGFibGUqKg0KLSBbeF0gZ25vbWUtYm9va3MgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0g W3hdIGdub21lLWNoYXJhY3RlcnMgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIGdub21l LWRvY3VtZW50cyAtPiAocmV2YnVtcCkgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtZm9udC12aWV3 ZXIgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIGdub21lLXNjcmVlbnNhdmVyIC0+IChy ZXZidW1wICsgYnVpbGQgZml4KSAqKnN0YWJsZSoqDQotIFt4XSB0b3RlbSAtPiAocmV2YnVtcCkg KipzdGFibGUqKg0KLSBbeF0gZ25vbWUtY2xvY2tzIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBb eF0gbGliZGF6emxlIC0+IDMuMzcuMSAqdW5zdGFibGUqDQotIFt4XSBlcGlwaGFueSAtPiAzLjM3 LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWNvbnRhY3RzIC0+IDMuMzcuMSAqdW5zdGFibGUq DQotIFt4XSBlb2cgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1waG90b3MgLT4g My4zNy4yICp1bnN0YWJsZSoNCi0gW3hdIGV2aW5jZSAtPiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBb eF0gZmlsZS1yb2xsZXIgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1jYWxlbmRh ciAtPiAocmV2YnVtcCkgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtbXVzaWMgLT4gMy4zNy4zICp1 bnN0YWJsZSoNCi0gW3hdIGdub21lLXBhbmVsIC0+IDMuMzcuMSAqdW5zdGFibGUqDQotIFt4XSBt ZXRhY2l0eSAtPiAzLjM3LjEgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUtZmxhc2hiYWNrIC0+IDMu MzcuMiAqdW5zdGFibGUqDQotIFt4XSB0ZXBsIC0+IDQuNDkuMyAqdW5zdGFibGUqDQotIFt4XSBn ZWRpdCAtPiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBbeF0gZ2VkaXQtcGx1Z2lucyAtPiAocmV2YnVt cCkgKipzdGFibGUqKg0KLSBbeF0gZ25vbWUtbGF0ZXggLT4gMy4zNy4yICp1bnN0YWJsZSoNCi0g W3hdIGJhb2JhYiAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWJveGVzIC0+IDMu MzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtY2FsY3VsYXRvciAtPiAzLjM3LjkwICoqKmJl dGEqKioNCi0gW3hdIGdub21lLWRpc2stdXRpbGl0eSAtPiAzLjM3LjIgKnVuc3RhYmxlKg0KLSBb eF0gZ25vbWUtc2NyZWVuc2hvdCAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLXN5 c3RlbS1tb25pdG9yIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ3Rrc291cmNldmlldzQg LT4gNC43LjkwICoqKmJldGEqKioNCi0gW3hdIHN5c3Byb2YgLT4gMy4zNy45MCAqKipiZXRhKioq DQotIFt4XSBtb3pqczc4IC0+IChuZXcpICoqc3RhYmxlKioNCi0gW3hdIGdqcyAtPiAxLjY1Ljkw ICoqKmJldGEqKioNCi0gW3hdIGdub21lLWJ1aWxkZXIgLT4gMy4zNy45MCAqKipiZXRhKioqIChu ZWVkcyB1bnN0YWJsZSBgZ2xpYmApDQotIFt4XSBhZHdhaXRhLWljb24tdGhlbWUgLT4gMy4zNy4y ICp1bnN0YWJsZSoNCi0gW3hdIGdub21lLWJhY2tncm91bmRzIC0+IDMuMzcuMiAqdW5zdGFibGUq DQotIFt4XSBwb2xhcmkgLT4gMy4zNy4zICp1bnN0YWJsZSoNCi0gW3hdIGd2ZnMgLT4gMS40NS45 MCAqKipiZXRhKioqDQotIFt4XSBsaWJzb3VwIC0+IDIuNzEuMCAqdW5zdGFibGUqDQotIFt4XSBy eWdlbCAtPiAwLjM5LjIgKnVuc3RhYmxlKg0KLSBbeF0gc2ltcGxlLXNjYW4gLT4gMy4zNy4zICp1 bnN0YWJsZSoNCi0gW3hdIHllbHAteHNsIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0geWVs cCAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIHllbHAtdG9vbHMgLT4gMy4zNy45MCAqKipi ZXRhKioqDQotIFt4XSBidWRnaWUtZGVza3RvcCAtPiAocmVidWlsZCwgdW50ZXN0ZWQpICoqc3Rh YmxlKioNCg0KIyMgTWVyZ2VkDQoNCi0gW3hdIGxpYnNpZ2MrKzMgLT4gMy4wLjMgKG5ldykNCi0g W3hdIG1tLWNvbW1vbiAtPiAxLjAuMQ0KLSBbeF0gZ2xpYm1tIC0+IDIuNjQuMg0KLSBbeF0gcGFu Z29tbSAtPiAyLjQyLjENCi0gW3hdIGxpYm5vdGlmeSAtPiAwLjcuOQ0KLSBbeF0gYXRrIC0+IDIu MzYuMA0KLSBbeF0gZ3RrKzMgLT4gMy4yNC4yMg0KLSBbeF0gZ3JhcGhlbmUgLT4gMS4xMC4wDQot IFt4XSBhbXRrIC0+IDUuMS4xDQotIFt4XSBsaWJoYW5keTEgLT4gMC45MC4wIChuZXcpDQotIFt4 XSBsaWJwb3J0YWwgLT4gMC4zIChuZXcpDQotIFt4XSBjb2dsIC0+IDEuMjIuMjgNCi0gW3hdIGdl b2NvZGUtZ2xpYiAtPiAzLjI2LjINCi0gW3hdIGdmYmdyYXBoIC0+IDAuMi40DQotIFt4XSBsaWJn c2YgLT4gMS4xNC40Nw0KLSBbeF0gbGlic2VjcmV0IC0+IDAuMjAuMw0KLSBbeF0gbGliY2hhbXBs YWluIC0+IDAuMTIuMjANCi0gW3hdIHZhbGEgLT4gMC40OC45DQotIFt4XSB2YWxhZG9jIC0+IDAu NDguOQ0KLSBbeF0gZ29tIC0+IDAuNA0KLSBbeF0gZ3NzZHAgLT4gMS4yLjMNCi0gW3hdIGd0ay12 bmMgLT4gMS4wLjAgKGRyb3BzIHVudXNlZCBndGsyIHN1cHBvcnQpDQotIFt4XSBwaG9kYXYgLT4g Mi40DQotIFt4XSBndXBucCAtPiAxLjIuNA0KLSBbeF0gZ25vbWUtdmlkZW8tZWZmZWN0cyAtPiAw LjUuMA0KDQojIyBUT0RPDQoNCi0gWyBdIHJldHJvLWd0ayAodW5yZWxlYXNlZCkNCi0gWyBdIGdu b21lLWdhbWVzIChibG9ja2VkIG9uIGByZXRyby1ndGtgKQ0KDQojIFdvbid0IHVwZGF0ZQ0KDQot IGd0azQgLT4gMy45OS4wIChub3QgYSBkZXBlbmRlbmN5IG9mIGFueXRoaW5nIGFuZCByZXF1aXJl cyBjdXJyZW50IGBwYW5nb2AgYW5kIGl0J3MgaW1wcmFjdGljYWwgdG8gYmFja3BvcnQ7IHdlJ2xs IHByb2JhYmx5IG5lZWQgdG8gZmluYWxseSB1cGRhdGUgYHBhbmdvYCkKCkEgcGF0Y2ggZmlsZSBm cm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8yNDI2 MC5wYXRjaCBpcyBhdHRhY2hlZA== --===============7292310585723094593== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSA5MThmNDBhNWYwNWE5MzM5MmRlNDlhM2U2MDZlYzEzMjlmZGE3MWRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToxODo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv ODNdIGdsaWI6IHVwZGF0ZSB0byAyLjY1LjEKCmNhdmVhdDogZG9jcyBkb24ndCB3b3JrIHlldAot 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 bXBsYXRlCmluZGV4IDViYmY1OWU2NzYwLi42N2M5YmQ4YThmYSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbGliL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYi90ZW1wbGF0ZQpAQCAtMSwxMCArMSwx MCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2xpYicKIHBrZ25hbWU9Z2xpYgotdmVyc2lvbj0y LjY0LjMKK3ZlcnNpb249Mi42NS4xCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1EZmFtPWZhbHNlIC1EbWFuPXRydWUgLURzZWxpbnV4PWRpc2FibGVkCi0g LURndGtfZG9jPSQodm9wdF9pZiBndGtfZG9jIHRydWUgZmFsc2UpIgorICQodm9wdF9ib29sIGd0 a19kb2MgZ3RrX2RvYykiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBsaWJ4 c2x0IGRvY2Jvb2steHNsICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgogbWFrZWRlcGVuZHM9 InpsaWItZGV2ZWwgcGNyZS1kZXZlbCBsaWJmZmktZGV2ZWwgZGJ1cy1kZXZlbCBlbGZ1dGlscy1k ZXZlbCBsaWJtb3VudC1kZXZlbCIKIGNoZWNrZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIHNo YXJlZC1taW1lLWluZm8gdHpkYXRhIgpAQCAtMTQsMTMgKzE0LDE3IEBAIGxpY2Vuc2U9IkxHUEwt Mi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMv R0xpYiIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dsaWIvcmF3 L21hc3Rlci9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dsaWIvJHt2ZXJzaW9uJS4q fS9nbGliLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmU5Y2JjOTc5MjVkMTRjODA0OTM1 ZjA2N2EzYWQ3N2VmNTVjMGJiZTliZWZlNjg5NjIzMThmNWE3NjdjZWIyMgorY2hlY2tzdW09YmM2 M2JmNmMzMjcxM2UwZWUxZGRkYzI4ZTAzZjIzYjRhMjBjNzhiY2I5YTJjNWIwZjRlZWE0MWU0NmZi OWNlZQogCiBidWlsZF9vcHRpb25zPSJndGtfZG9jIgogZGVzY19vcHRpb25fZ3RrX2RvYz0iQnVp bGQgR1RLIEFQSSBkb2NzIgogCi1pZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQlidWls ZF9vcHRpb25zX2RlZmF1bHQrPSIgZ3RrX2RvYyIKKyNpZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07 IHRoZW4KKyMJYnVpbGRfb3B0aW9uc19kZWZhdWx0Kz0iIGd0a19kb2MiCisjZmkKKworaWYgWyAi JGJ1aWxkX29wdGlvbl9ndGtfZG9jIiBdOyB0aGVuCisJYnJva2VuPSJuZWVkcyBndGstZG9jIDEu MzIuMSwgbm90IHJlbGVhc2VkIHlldCIKIGZpCiAKIGxpYmdsaWItZGV2ZWxfcGFja2FnZSgpIHsK CkZyb20gMmMzNzhiMWM4ZTRhNDBjZDZhNGU0MmEzNjFkM2NkOGZhZGU4M2FjYSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDU6MjA6MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDAy LzgzXSBnbGliLW5ldHdvcmtpbmc6IHVwZGF0ZSB0byAyLjY1LjkwCgotLS0KIHNyY3BrZ3MvZ2xp Yi1uZXR3b3JraW5nL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliLW5ldHdv cmtpbmcvdGVtcGxhdGUgYi9zcmNwa2dzL2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZQppbmRleCA1 ZWFmZmE4MmU2NC4uMWQ2MWE2MTY5YmEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2xpYi1uZXR3b3Jr aW5nL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2xpYi1uZXR3b3JraW5nJwogcGtnbmFt ZT1nbGliLW5ldHdvcmtpbmcKLXZlcnNpb249Mi42NC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIu NjUuOTAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURp bnN0YWxsZWRfdGVzdHM9ZmFsc2UgLURnbnV0bHM9ZW5hYmxlZCAtRGxpYnByb3h5PWVuYWJsZWQK ICAtRGdub21lX3Byb3h5PWVuYWJsZWQiCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ2xpYi1uZXR3 b3JraW5nLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWE0YzM0NmRlZjdkODE3 NDY3ZDc5YTk1YzIzYjNjY2YyMmU0ZGYxNTQ4ODcwNzI2YjYzMzk2NDAwODUyZGFmNzIKK2NoZWNr c3VtPTBiNGRmNWY2NDNiN2UwODIyMzY5MGExMjQ5Y2UzMDIzMjliNjE1NmYyNjQwZDdiMDIxN2Yx OTJiMzMwYWY1NjYKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKIHBvc3RfaW5zdGFsbCgpIHsKCkZyb20g NmQ3NjE4ZWNjMzliYmEzZDI3MmVmMzM1Mzk4YjZmNWI4MjRhNjcyZSBNb24gU2VwIDE3IDAwOjAw 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 fQoKRnJvbSAxNjQ2ODE1OTlkMmYyYmE4Y2JkMzBkOGFjZjc2N2U5NDUxYjc3MzdlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDQvODNdIGF0LXNwaTItYXRrOiB1cGRhdGUgdG8gMi4zNy45MAoKLS0tCiBzcmNwa2dzL2F0LXNw aTItYXRrL3RlbXBsYXRlIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWF0ay90 ZW1wbGF0ZSBiL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKaW5kZXggNDM1MWI3OTk2ZjMu LjM5OTFmMTkyZjBhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdhdC1zcGkyLWF0aycKIHBrZ25hbWU9YXQtc3BpMi1hdGsKLXZlcnNpb249 Mi4zNC4xCit2ZXJzaW9uPTIuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBo b3N0bWFrZWRlcGVuZHM9ImxpYnRvb2wgcGtnLWNvbmZpZyBpbnRsdG9vbCBnbGliLWRldmVsIgpA QCAtMTAsNyArMTAsMTIgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly93 d3cuZ25vbWUub3JnIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Nzc2ZGY5MzA3 NDhmZGU3MWMxMjhiZTZjMzY2YTk4N2I5OGI2ZWU2NmQ1MDhlZDljOGRiMjM1NWJmNGI5Y2MxNgor Y2hlY2tzdW09OTk4NDdhM2I2MWJmMmFjOThhNDdlNDdlZGI0ZGU0ZWE1YzRmMzI2YzgyMzhhZDEw NjYxYmQ2ZDljNDZiNDhmMAorCisjIG5vbi10cml2aWFsIGRidXMgc2V0dXAKK2RvX2NoZWNrKCkg eworCToKK30KIAogYXQtc3BpMi1hdGstZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke21h a2VkZXBlbmRzfSAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCgpGcm9tIGIw NzA3MzUxNDAyMDU2Zjk1OTA4YzNlOTIwZjliNDNlMjcxMjlkNTUgTW9uIFNlcCAxNyAwMDowMDow 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 OyB0aGVuCgpGcm9tIDNhZTY5NGM4MmE2YjFlNjlhN2UyNjVkYjkwYjNjZDMzOTIxMzYwMTcgTW9u 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 cHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIiCgpGcm9tIDE1ZGYwZmE5NWU0ZTA3YTc4Y2U0YWQ2 NTA3ZThkN2RlNmRjMGExYTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNy84M10gZ25vbWUtZGVza3RvcDogdXBkYXRlIHRv IDMuMzcuOTAuMQoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBzcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaCB8IDE4 ICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlICAgICAg ICAgICAgfCAxMyArKysrKysrKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1kZXNr dG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29t bW9uL3NobGlicwppbmRleCA2NzZlYjk0MzY2Yi4uZjYzZjAwMDRiMWMgMTAwNjQ0Ci0tLSBhL2Nv bW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMTE3OCw3ICsxMTc4LDcgQEAgbGli Z3N0YmFzZWNhbWVyYWJpbnNyYy0xLjAuc28uMCBnc3QtcGx1Z2lucy1iYWQxLTEuMC4wXzEKIGxp YmdzdGNvZGVjcGFyc2Vycy0xLjAuc28uMCBnc3QtcGx1Z2lucy1iYWQxLTEuMC4wXzEKIGxpYmdz dHBsYXllci0xLjAuc28uMCBnc3QtcGx1Z2lucy1iYWQxLTEuMC4wXzEKIGxpYmdzdGdsLTEuMC5z by4wIGdzdC1wbHVnaW5zLWJhc2UxLTEuMTQuMF8xCi1saWJnbm9tZS1kZXNrdG9wLTMuc28uMTgg Z25vbWUtZGVza3RvcC0zLjM0LjBfMQorbGliZ25vbWUtZGVza3RvcC0zLnNvLjE5IGdub21lLWRl c2t0b3AtMy4zNy45MC4xXzEKIGxpYnNlY3JldC0xLnNvLjAgbGlic2VjcmV0LTAuMTBfMQogbGli Z3dlYXRoZXItMy5zby4xNiBsaWJnd2VhdGhlci0zLjM0LjBfMQogbGliZ25vbWVrYmQuc28uOCBs aWJnbm9tZWtiZC0zLjYuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0 Y2hlcy9idWlsZC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZmVkMDBhMjVkZAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBh dGNoCkBAIC0wLDAgKzEsMTggQEAKK2NvbW1pdCA0ZjU1ZmYwNzg0MTE5OTNiNzgyZTc0ZWExOGM1 YzZhYjM1YWRmNjg1CitBdXRob3I6IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgorRGF0ZTogICBXZWQgQXVnIDEyIDA1OjI2OjAwIDIwMjAgKzAyMDAKKworICAgIGJsYQorCitk aWZmIC0tZ2l0IGxpYmdub21lLWRlc2t0b3AvZ25vbWUtcnIuaCBsaWJnbm9tZS1kZXNrdG9wL2du b21lLXJyLmgKK2luZGV4IDExMWJhYjMuLjc2OTg2NzIgMTAwNjQ0CistLS0gbGliZ25vbWUtZGVz a3RvcC9nbm9tZS1yci5oCisrKysgbGliZ25vbWUtZGVza3RvcC9nbm9tZS1yci5oCitAQCAtMjgs NiArMjgsNyBAQAorICNlcnJvciAgICBHbm9tZVJSIGlzIHVuc3RhYmxlIEFQSS4gWW91IG11c3Qg ZGVmaW5lIEdOT01FX0RFU0tUT1BfVVNFX1VOU1RBQkxFX0FQSSBiZWZvcmUgaW5jbHVkaW5nIGdu b21lcnIuaAorICNlbmRpZgorIAorKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyAjaW5jbHVkZSA8Z2xp Yi5oPgorICNpbmNsdWRlIDxnZGsvZ2RrLmg+CisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LWRlc2t0b3AvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWRlc2t0b3AvdGVtcGxhdGUKaW5kZXgg OTkyY2IxZmYxNmEuLjBhZWE4YzE5OGZmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWRlc2t0 b3AvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlCkBAIC0xLDEw ICsxLDEwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kZXNrdG9wJwogcGtnbmFtZT1n bm9tZS1kZXNrdG9wCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjkwLjEKIHJldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdz PSItRGdub21lLWRpc3RyaWJ1dG9yPVZvaWRMaW51eCAtRHVkZXY9ZW5hYmxlZAorY29uZmlndXJl X2FyZ3M9Ii1EZ25vbWVfZGlzdHJpYnV0b3I9Vm9pZExpbnV4IC1EdWRldj1lbmFibGVkIC1Ec3lz dGVtZD1kaXNhYmxlZAogIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2Up IgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGl0c3Rvb2wgcGtnLWNvbmZpZyBnbGliLWRldmVs IgogbWFrZWRlcGVuZHM9ImV1ZGV2LWxpYnVkZXYtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy1kZXZlbCBndGsrMy1kZXZlbApAQCAtMTUsMTIgKzE1LDE3IEBAIHNob3J0X2Rlc2M9IkdO T01FIGRlc2t0b3AgbWFuYWdlbWVudCB1dGlsaXRpZXMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01F L2dub21lLWRlc2t0b3AiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jMWRiZWI1 NjY2ZGFkMjcxNjZjNzY5ZTQ4ZTJhYjQxZGQ1ZWQ3NDcxOGVhMzVlYjU3Yzg0ODg3OTA2NjJkYzVh CitkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLiouKn0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTk5NjEyNWQ3NTA4MmNmMGNlZTBh NTFiMGFhNDcxZmRjNjIzODUyMTVjODg4NzAzMjdjNGUwZWIxMDdhYWIwZjcKIAogYnVpbGRfb3B0 aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKKyMgbmVlZHMgWAorZG9f Y2hlY2soKSB7CisJOgorfQorCiBnbm9tZS1kZXNrdG9wLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVw ZW5kcz0iZ3RrKzMtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbD49My4xMgog CSBnZGstcGl4YnVmLWRldmVsIGlzby1jb2RlcyBsaWJYMTEtZGV2ZWwgbGliZ2xpYi1kZXZlbCBs aWJzZWNjb21wLWRldmVsCgpGcm9tIDFiNDQ0OTAxZWU4MzBlYjc4NGNhMmNlNzA2ZmQ0ZWM4ZDYx MmZlMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwOC84M10gbGliZ3dlYXRoZXI6IHVwZGF0ZSB0byAzLjM2LjEKCi0tLQog c3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZSB8IDE1ICsrKysrKy0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRlIGIvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0 ZQppbmRleCAzNGM2NGQ2ZTNhMS4uZmNkYjU4Nzk1MDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGli Z3dlYXRoZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZQpAQCAt MSwxMyArMSwxMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZ3dlYXRoZXInCiBwa2duYW1l PWxpYmd3ZWF0aGVyCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM2LjEKIHJldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSIt RGVuYWJsZV92YWxhPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0gLURpbnRyb3NwZWN0aW9u PSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkKK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfYm9vbCBn aXIgZW5hYmxlX3ZhbGEpICQodm9wdF9ib29sIGdpciBpbnRyb3NwZWN0aW9uKQogIC1Eem9uZWlu Zm9fZGlyPS91c3Ivc2hhcmUvem9uZWluZm8iCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwg aW50bHRvb2wgcGtnLWNvbmZpZyAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKK2hvc3RtYWtlZGVwZW5k cz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnICQodm9wdF9pZiBnaXIgdmFsYSkiCiBt YWtlZGVwZW5kcz0iZ2VvY29kZS1nbGliLWRldmVsIGd0ayszLWRldmVsIGxpYnNvdXAtZ25vbWUt ZGV2ZWwiCiBjaGVja2RlcGVuZHM9InR6ZGF0YSIKIHNob3J0X2Rlc2M9IkdOT01FIFdlYXRoZXIg aW5mb3JtYXRpb24gYWNjZXNzIGxpYnJhcnkiCkBAIC0xNSwxMCArMTQsMTAgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4x LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvTGli R1dlYXRoZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kMmZmZWVjMDE3ODhk MDNkMWJiZjM1MTEzZmMyZjA1NGM2YzM2MDA3MjEwODhmODI3YmNjMzFlNWM2MDNhMzJkCitjaGVj a3N1bT1kZTI3MDlmMGVlMjMzYjIwMTE2ZDVmYTk4NjFkNDA2MDcxNzk4YzRhYTM3ODMwY2EyNWY1 ZWYyYzAwODNlNDUwCiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19k ZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVm YXVsdD0iZ2lyIgogCiBwb3N0X3BhdGNoKCkgewogCSMgVGhpcyB0ZXN0IHJlcXVpcmVzIExDX0lE RU5USUZJQ0FUSU9OLCB3aGljaCBpcyBhIEdMSUJDJ3MgZXh0ZW5zaW9uCkBAIC0zNSw4ICszNCw2 IEBAIGxpYmd3ZWF0aGVyLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlICJ1c3IvbGliLyouc28i CiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUv Z2lyLTEuMAotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZt b3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQoKRnJvbSBlM2EzMWFjMDhiMzUyMWZkZDJmZmRj YTI1NzBjZmE1MDU1MDVmODM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0 ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvODNdIGdub21lLXNldHRpbmdzLWRhZW1vbjog dXBkYXRlIHRvIDMuMzcuMAoKLS0tCiAuLi4vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNo ICAgICAgICAgICAgfCAxMzYgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNldHRp bmdzLWRhZW1vbi90ZW1wbGF0ZSAgICAgICAgfCAgMTEgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTQy IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQt YmFja2xpZ2h0LnBhdGNoIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9s b2dpbmQtYmFja2xpZ2h0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5lNWNhNmJkNDNkZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2V0dGlu Z3MtZGFlbW9uL3BhdGNoZXMvbG9naW5kLWJhY2tsaWdodC5wYXRjaApAQCAtMCwwICsxLDEzNiBA QAorRnJvbSAzODQ1YjNhN2I1OGYyNmVjNjhkYmMxYzQ1N2VhZDA2ZjQ4ODExODBiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CitEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDE3OjQ4OjIxICswMjAwCitTdWJqZWN0OiBbUEFU Q0hdIFRoZSBuZXcgbG9naW5kIGJyaWdodG5lc3MgY29kZSBkb2Vzbid0IHdvcmsgd2l0aCBlbG9n aW5kLgorCitodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2V0dGluZ3MtZGFl bW9uLy0vY29tbWl0L2NkMDUxZTZjN2NjZmI3ZTdiMGVjNDQwNDA5YzU1OWIyZTUxMjg0ZTgKKy0t LQorIHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jIHwgNzcgKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3MCBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYyBw bHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYworaW5kZXggY2E1ZjI3Mi4uNGFjYzJlNSAxMDA2 NDQKKy0tLSBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYworKysrIHBsdWdpbnMvcG93ZXIv Z3NkLWJhY2tsaWdodC5jCitAQCAtNDAsOCArNDAsNiBAQCBzdHJ1Y3QgX0dzZEJhY2tsaWdodAor ICAgICAgICAgZ2ludCBicmlnaHRuZXNzX3N0ZXA7CisgCisgI2lmZGVmIF9fbGludXhfXworLSAg ICAgICAgR0RCdXNQcm94eSAqbG9naW5kX3Byb3h5OworLQorICAgICAgICAgR1VkZXZDbGllbnQg KnVkZXY7CisgICAgICAgICBHVWRldkRldmljZSAqdWRldl9kZXZpY2U7CisgCitAQCAtNjEsMTAg KzU5LDYgQEAgZW51bSB7CisgICAgICAgICBQUk9QX0xBU1QsCisgfTsKKyAKKy0jZGVmaW5lIFNZ U1RFTURfREJVU19OQU1FICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLmxv Z2luMSIKKy0jZGVmaW5lIFNZU1RFTURfREJVU19QQVRIICAgICAgICAgICAgICAgICAgICAgICAi L29yZy9mcmVlZGVza3RvcC9sb2dpbjEvc2Vzc2lvbi9hdXRvIgorLSNkZWZpbmUgU1lTVEVNRF9E QlVTX0lOVEVSRkFDRSAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AubG9naW4xLlNl c3Npb24iCistCisgc3RhdGljIEdQYXJhbVNwZWMgKnByb3BzW1BST1BfTEFTVF07CisgCisgc3Rh dGljIHZvaWQgICAgIGdzZF9iYWNrbGlnaHRfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxl SWZhY2UgICppZmFjZSk7CitAQCAtNDgyLDMwICs0NzYsMTMgQEAgZ3NkX2JhY2tsaWdodF9zZXRf YnJpZ2h0bmVzc192YWxfYXN5bmMgKEdzZEJhY2tsaWdodCAqYmFja2xpZ2h0LAorICAgICAgICAg aWYgKGJhY2tsaWdodC0+dWRldl9kZXZpY2UgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICBC YWNrbGlnaHRIZWxwZXJEYXRhICp0YXNrX2RhdGE7CisgCistICAgICAgICAgICAgICAgIGlmIChi YWNrbGlnaHQtPmxvZ2luZF9wcm94eSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfZGJ1 c19wcm94eV9jYWxsIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzdSkiLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiYmFja2xpZ2h0IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ191ZGV2X2RldmljZV9nZXRfbmFtZSAoYmFja2xpZ2h0LT51ZGV2 X2RldmljZSksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgTlVMTCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudCA9IEFCU19UT19QRVJDRU5UQUdFIChi YWNrbGlnaHQtPmJyaWdodG5lc3NfbWluLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNzX21heCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tsaWdo dC0+YnJpZ2h0bmVzc190YXJnZXQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19y ZXR1cm5faW50ICh0YXNrLCBwZXJjZW50KTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB0YXNrX2RhdGEgPSBnX25ldzAgKEJhY2tsaWdodEhlbHBl ckRhdGEsIDEpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRhc2tfZGF0YS0+dmFsdWUgPSBi YWNrbGlnaHQtPmJyaWdodG5lc3NfdGFyZ2V0OworLSAgICAgICAgICAgICAgICAgICAgICAgIGdf dGFza19zZXRfdGFza19kYXRhICh0YXNrLCB0YXNrX2RhdGEsIGJhY2tsaWdodF90YXNrX2RhdGFf ZGVzdHJveSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQgdXAg bm93LiBRdWV1ZSBpdCBhbmQgZW5zdXJlIHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8KKy0g ICAgICAgICAgICAgICAgICAgICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoJmJhY2tsaWdodC0+dGFz a3MsIHRhc2spOworLSAgICAgICAgICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vz c190YXNrcXVldWUgKGJhY2tsaWdodCk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAg ICAgICAgdGFza19kYXRhID0gZ19uZXcwIChCYWNrbGlnaHRIZWxwZXJEYXRhLCAxKTsKKysgICAg ICAgICAgICAgICAgdGFza19kYXRhLT52YWx1ZSA9IGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJn ZXQ7CisrICAgICAgICAgICAgICAgIGdfdGFza19zZXRfdGFza19kYXRhICh0YXNrLCB0YXNrX2Rh dGEsIGJhY2tsaWdodF90YXNrX2RhdGFfZGVzdHJveSk7CisrCisrICAgICAgICAgICAgICAgIC8q IFRhc2sgaXMgc2V0IHVwIG5vdy4gUXVldWUgaXQgYW5kIGVuc3VyZSB3ZSBhcmUgd29ya2luZyBz b21ldGhpbmcuICovCisrICAgICAgICAgICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmYmFja2xp Z2h0LT50YXNrcywgdGFzayk7CisrICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vz c190YXNrcXVldWUgKGJhY2tsaWdodCk7CisgCisgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg ICAgICAgIH0KK0BAIC04MjMsNyArODAwLDYgQEAgZ3NkX2JhY2tsaWdodF9pbml0YWJsZV9pbml0 IChHSW5pdGFibGUgICAgICAgKmluaXRhYmxlLAorIHsKKyAgICAgICAgIEdzZEJhY2tsaWdodCAq YmFja2xpZ2h0ID0gR1NEX0JBQ0tMSUdIVCAoaW5pdGFibGUpOworICAgICAgICAgR25vbWVSUk91 dHB1dCogb3V0cHV0ID0gTlVMTDsKKy0gICAgICAgIEdFcnJvciAqbG9naW5kX2Vycm9yID0gTlVM TDsKKyAKKyAgICAgICAgIGlmIChjYW5jZWxsYWJsZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAg ICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX05P VF9TVVBQT1JURUQsCitAQCAtODMyLDQ0ICs4MDgsNiBAQCBnc2RfYmFja2xpZ2h0X2luaXRhYmxl X2luaXQgKEdJbml0YWJsZSAgICAgICAqaW5pdGFibGUsCisgICAgICAgICB9CisgCisgI2lmZGVm IF9fbGludXhfXworLSAgICAgICAgYmFja2xpZ2h0LT5sb2dpbmRfcHJveHkgPQorLSAgICAgICAg ICAgICAgICBnX2RidXNfcHJveHlfbmV3X2Zvcl9idXNfc3luYyAoR19CVVNfVFlQRV9TWVNURU0s CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZU1RFTURfREJVU19O QU1FLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lT VEVNRF9EQlVTX1BBVEgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTWVNURU1EX0RCVVNfSU5URVJGQUNFLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJmxvZ2luZF9lcnJvcik7CistICAgICAgICBp ZiAoYmFja2xpZ2h0LT5sb2dpbmRfcHJveHkpIHsKKy0gICAgICAgICAgICAgICAgLyogQ2hlY2sg dGhhdCB0aGUgU2V0QnJpZ2h0bmVzcyBtZXRob2QgZG9lcyBleGlzdCAqLworLSAgICAgICAgICAg ICAgICBnX2RidXNfcHJveHlfY2FsbF9zeW5jIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLCBO VUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FM TF9GTEFHU19OT05FLCAtMSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTlVMTCwgJmxvZ2luZF9lcnJvcik7CistCistICAgICAgICAgICAgICAgIGlmIChnX2Vycm9y X21hdGNoZXMgKGxvZ2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHX0RCVVNfRVJST1JfSU5WQUxJRF9BUkdTKSkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIC8qIFdlIGFyZSBjYWxsaW5nIHRoZSBtZXRob2Qgd2l0aCBubyBh cmd1bWVudHMsIHNvCistICAgICAgICAgICAgICAgICAgICAgICAgICogdGhpcyBpcyBleHBlY3Rl ZC4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy0gICAgICAgICAgICAgICAgICAgICAg ICBnX2NsZWFyX2Vycm9yICgmbG9naW5kX2Vycm9yKTsKKy0gICAgICAgICAgICAgICAgfSBlbHNl IGlmIChnX2Vycm9yX21hdGNoZXMgKGxvZ2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SX1VOS05P V05fTUVUSE9EKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN5c3RlbWQgdmVyc2lv biBpcyB0b28gb2xkLCBzbyBpZ25vcmUuCistICAgICAgICAgICAgICAgICAgICAgICAgICovCist ICAgICAgICAgICAgICAgICAgICAgICAgZ19jbGVhcl9lcnJvciAoJmxvZ2luZF9lcnJvcik7Cist ICAgICAgICAgICAgICAgICAgICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2lu ZF9wcm94eSk7CistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgLyogRmFpbCBvbiBhbnl0aGluZyBlbHNlICovCistICAgICAgICAgICAgICAgICAgICAg ICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlmIChsb2dpbmRfZXJyb3IpIHsKKy0g ICAgICAgICAgICAgICAgZ193YXJuaW5nICgiTm8gbG9naW5kIGZvdW5kOiAlcyIsIGxvZ2luZF9l cnJvci0+bWVzc2FnZSk7CistICAgICAgICAgICAgICAgIGdfZXJyb3JfZnJlZSAobG9naW5kX2Vy cm9yKTsKKy0gICAgICAgIH0KKy0KKyAgICAgICAgIC8qIFRyeSBmaW5kaW5nIGEgdWRldiBkZXZp Y2UuICovCisgICAgICAgICBpZiAoZ3NkX2JhY2tsaWdodF91ZGV2X2luaXQgKGJhY2tsaWdodCkp CisgICAgICAgICAgICAgICAgIGdvdG8gZm91bmQ7CitAQCAtOTExLDcgKzg0OSw2IEBAIGdzZF9i YWNrbGlnaHRfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKKyAjaWZkZWYgX19saW51eF9fCisg ICAgICAgICBnX2Fzc2VydCAoYmFja2xpZ2h0LT5hY3RpdmVfdGFzayA9PSBOVUxMKTsKKyAgICAg ICAgIGdfYXNzZXJ0IChnX3F1ZXVlX2lzX2VtcHR5ICgmYmFja2xpZ2h0LT50YXNrcykpOworLSAg ICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CisgICAgICAg ICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+dWRldik7CisgICAgICAgICBnX2NsZWFyX29i amVjdCAoJmJhY2tsaWdodC0+dWRldl9kZXZpY2UpOworICAgICAgICAgaWYgKGJhY2tsaWdodC0+ aWRsZV91cGRhdGUpIHsKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt c2V0dGluZ3MtZGFlbW9uL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24v dGVtcGxhdGUKaW5kZXggYTcwZTI4YmU1ZmEuLmYyNTQ1OWVjZTgyIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNl dHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ25vbWUtc2V0dGluZ3MtZGFlbW9uJwogcGtnbmFtZT1nbm9tZS1zZXR0aW5ncy1kYWVt b24KLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuMAorcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzKz0iLURzeXN0ZW1kPWZhbHNlIgot aG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBkb2Nib29rLXhzbCBnbGliLWRldmVsIGxpYmdsaWItZGV2 ZWwgbGlieHNsdCBwZXJsIHBrZy1jb25maWciCitob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGRvY2Jv b2steHNsIGdldHRleHQgZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhzbHQKKyBwZXJsIHBr Zy1jb25maWciCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWxzYS1saWItZGV2 ZWwgY29sb3JkLWRldmVsIGN1cHMtZGV2ZWwgZ2NyLWRldmVsCiAgZ2VvY2x1ZTItZGV2ZWwgZ25v bWUtZGVza3RvcC1kZXZlbCBpYnVzLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdub21la2Jk LWRldmVsCiAgbGliZ3dlYXRoZXItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnJzdmctZGV2ZWwg bGlid2Fjb20tZGV2ZWwgbnNzLWRldmVsCkBAIC0xMiwxMyArMTMsMTMgQEAgbWFrZWRlcGVuZHM9 Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGFsc2EtbGliLWRldmVsIGNvbG9yZC1kZXZlbCBjdXBzLWRl dmVsIGdjci1kZXYKICB4Zjg2LWlucHV0LXdhY29tLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1p Y29uLXRoZW1lIHB1bHNlYXVkaW8iCiBjaGVja2RlcGVuZHM9ImVsb2dpbmQgbGlibm90aWZ5IHB5 dGhvbjMtZGJ1c21vY2sgcHl0aG9uMy1nb2JqZWN0Ci0gcHl0aG9uMy1weWNvZGVzdHlsZSIKKyBw eXRob24zLXB5Y29kZXN0eWxlIHdoaWNoIGh3aWRzIGV1ZGV2Igogc2hvcnRfZGVzYz0iR05PTUUg c2V0dGluZ3MgZGFlbW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9n aXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNldHRpbmdzLWRhZW1vbiIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTk5ODFhMjBiYWJmOGRhNzc0NGI3ZmJlMTc1YjllMzYwNzhi ZjA4ZjNiZjY1ZmU1YWVkZWI4MmNmZTI3YWMxMWYKK2NoZWNrc3VtPWRmNzA5MzEzYjgwOTY4MDE2 NTcwZjM0MWViYzMxZWVlODMyOWYzMTJjMDY4ZjY4MWMwYTE5NGFkOTRiMDBkZjAKIAogaWYgWyAi JENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHBvbGtpdCIKCkZyb20g MmJkZGY1NTMyM2FlNmJkMWZjZjkxOWRjYWVlYzMyODFlZWVmMjYzMSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEwLzgzXSBt dXR0ZXI6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogLi4uL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWlu Y2x1ZGVzLnBhdGNoICAgICAgIHwgIDExIC0KIHNyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdp cmUtMC4zLnBhdGNoICAgICB8IDUyMSAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbXV0dGVy L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8ICAzNCArLQogNCBmaWxlcyBjaGFuZ2Vk LCAyOSBpbnNlcnRpb25zKCspLCA1NTUgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaAoK ZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGY2M2YwMDA0 YjFjLi44MzA0ZDMyYWE5OSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24v c2hsaWJzCkBAIC0zMDA0LDE1ICszMDA0LDE1IEBAIGxpYmRlY29yYXRpb24uc28uMCBjb21waXot Y29yZS0wLjguMTRfMQogbGliY29tcGl6Y29uZmlnLnNvLjAgbGliY29tcGl6Y29uZmlnLTAuOC4x NF8xCiBsaWJlbWVyYWxkZW5naW5lLnNvLjAgZW1lcmFsZC0wLjguMTRfMQogbGliaGFuZ3VsLnNv LjEgbGliaGFuZ3VsLTAuMS4wXzEKLWxpYm11dHRlci01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1s aWJtdXR0ZXItY2x1dHRlci01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNsdXR0ZXIt NS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGF0aC01LnNvIG11dHRlci0z LjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGF0aC01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJt dXR0ZXItY29nbC01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtNS5zby4wIG11 dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGFuZ28tNS5zbyBtdXR0ZXItMy4zNC4xXzEK LWxpYm11dHRlci1jb2dsLXBhbmdvLTUuc28uMCBtdXR0ZXItMy4zNC4xXzEKK2xpYm11dHRlci03 LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNsdXR0ZXItNy5zbyBtdXR0ZXItMy4z Ny45MF8xCitsaWJtdXR0ZXItY2x1dHRlci03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0 dGVyLWNvZ2wtcGF0aC03LnNvIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhdGgt Ny5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLTcuc28gbXV0dGVyLTMuMzcu OTBfMQorbGlibXV0dGVyLWNvZ2wtNy5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1j b2dsLXBhbmdvLTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5z by4wIG11dHRlci0zLjM3LjkwXzEKIGxpYmdlb2NsdWUtMi5zby4wIGdlb2NsdWUyLTIuNC40XzEK IGxpYmdlcHViLnNvLjAgbGliZ2VwdWItMC40XzEKIGxpYnNsb3B5LnNvLjcuNSBzbG9wLTcuNV8x CmRpZmYgLS1naXQgYS9zcmNwa2dzL211dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRl cy5wYXRjaCBiL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTA5ODg4ODdjMy4uMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gY29nbC9jb2dsL21lc29uLmJ1 aWxkCTIwMTktMTAtMDggMTk6MTU6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgY29nbC9jb2dsL21l c29uLmJ1aWxkCTIwMTktMTItMTYgMTU6NDU6NDQuMDM3NjQwNTQ4ICswMTAwCi1AQCAtNDgsNyAr NDgsNyBAQAotIGJ1aWx0X2hlYWRlcnMgKz0gW2NvZ2xfZ2xfaGVhZGVyX2hdCi0gCi0gaWYgaGF2 ZV9lZ2wKLS0gIGNvZ2xfZWdsX2luY2x1ZGVzX3N0cmluZyA9ICcjaW5jbHVkZSA8RUdML2VnbC5o PlxuI2luY2x1ZGUgPEVHTC9lZ2xleHQuaD4nCi0rICBjb2dsX2VnbF9pbmNsdWRlc19zdHJpbmcg PSAnI2luY2x1ZGUgPEVHTC9lZ2wuaD5cbiNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+XG4jaW5jbHVk ZSA8RUdML2VnbG1lc2FleHQuaD4nCi0gZWxzZQotICAgY29nbF9lZ2xfaW5jbHVkZXNfc3RyaW5n ID0gJycKLSBlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2ly ZS0wLjMucGF0Y2ggYi9zcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJmZjY1ZmJhODUuLjAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNTIxICswLDAgQEAKLUJ1aWxkIG11dHRlciBhZ2FpbnN0IHBpcGV3aXJlLTAuMywg YmFzZWQgb24gYSBwYXRjaCBhdDoKLWh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tdXR0 ZXIvLS9tZXJnZV9yZXF1ZXN0cy8xMDYyCi0tLS0gbWVzb24uYnVpbGQKLSsrKyBtZXNvbi5idWls ZAotQEAgLTUwLDcgKzUwLDcgQEAgbGliaW5wdXRfcmVxID0gJz49IDEuNycKLSBnYm1fcmVxID0g Jz49IDEwLjMnCi0KLSAjIHNjcmVlbiBjYXN0IHZlcnNpb24gcmVxdWlyZW1lbnRzCi0tbGlicGlw ZXdpcmVfcmVxID0gJz49IDAuMi41JwotK2xpYnBpcGV3aXJlX3JlcSA9ICc+PSAwLjMuMCcKLQot IGdub21lID0gaW1wb3J0KCdnbm9tZScpCi0gcGtnID0gaW1wb3J0KCdwa2djb25maWcnKQotQEAg LTI0MSw3ICsyNDEsNyBAQCBlbmRpZgotCi0gaGF2ZV9yZW1vdGVfZGVza3RvcCA9IGdldF9vcHRp b24oJ3JlbW90ZV9kZXNrdG9wJykKLSBpZiBoYXZlX3JlbW90ZV9kZXNrdG9wCi0tICBsaWJwaXBl d2lyZV9kZXAgPSBkZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0wLjInLCB2ZXJzaW9uOiBsaWJwaXBl d2lyZV9yZXEpCi0rICBsaWJwaXBld2lyZV9kZXAgPSBkZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0w LjMnLCB2ZXJzaW9uOiBsaWJwaXBld2lyZV9yZXEpCi0gZW5kaWYKLQotIGhhdmVfaW50cm9zcGVj dGlvbiA9IGdldF9vcHRpb24oJ2ludHJvc3BlY3Rpb24nKQotZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0cmVhbS1zcmMuYyBiL3NyYy9iYWNrZW5kcy9tZXRhLXNj cmVlbi1jYXN0LXN0cmVhbS1zcmMuYwotaW5kZXggODJjNWNiYTQzNi4uYmExY2U5NGE3ZSAxMDA2 NDQKLS0tLSBzcmMvYmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLSsrKyBz cmMvYmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLUBAIC0yOSw2ICsyOSw3 IEBACi0gI2luY2x1ZGUgPHNwYS9wYXJhbS9wcm9wcy5oPgotICNpbmNsdWRlIDxzcGEvcGFyYW0v Zm9ybWF0LXV0aWxzLmg+Ci0gI2luY2x1ZGUgPHNwYS9wYXJhbS92aWRlby9mb3JtYXQtdXRpbHMu aD4KLSsjaW5jbHVkZSA8c3BhL3V0aWxzL3Jlc3VsdC5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4K LSAjaW5jbHVkZSA8c3lzL21tYW4uaD4KLQotQEAgLTYyLDE1ICs2Myw2IEBAIGVudW0KLQotIHN0 YXRpYyBndWludCBzaWduYWxzW05fU0lHTkFMU107Ci0KLS10eXBlZGVmIHN0cnVjdCBfTWV0YVNw YVR5cGUKLS17Ci0tICBzdHJ1Y3Qgc3BhX3R5cGVfbWVkaWFfdHlwZSBtZWRpYV90eXBlOwotLSAg c3RydWN0IHNwYV90eXBlX21lZGlhX3N1YnR5cGUgbWVkaWFfc3VidHlwZTsKLS0gIHN0cnVjdCBz cGFfdHlwZV9mb3JtYXRfdmlkZW8gZm9ybWF0X3ZpZGVvOwotLSAgc3RydWN0IHNwYV90eXBlX3Zp ZGVvX2Zvcm1hdCB2aWRlb19mb3JtYXQ7Ci0tICB1aW50MzJfdCBtZXRhX2N1cnNvcjsKLS19IE1l dGFTcGFUeXBlOwotLQotIHR5cGVkZWYgc3RydWN0IF9NZXRhUGlwZVdpcmVTb3VyY2UKLSB7Ci0g ICBHU291cmNlIGJhc2U7Ci1AQCAtODIsMTkgKzc0LDE5IEBAIHR5cGVkZWYgc3RydWN0IF9NZXRh U2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUKLSB7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbSAq c3RyZWFtOwotCi0rICBzdHJ1Y3QgcHdfY29udGV4dCAqcGlwZXdpcmVfY29udGV4dDsKLSAgIHN0 cnVjdCBwd19jb3JlICpwaXBld2lyZV9jb3JlOwotLSAgc3RydWN0IHB3X3JlbW90ZSAqcGlwZXdp cmVfcmVtb3RlOwotLSAgc3RydWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5cGU7Ci0gICBNZXRhUGlw ZVdpcmVTb3VyY2UgKnBpcGV3aXJlX3NvdXJjZTsKLS0gIHN0cnVjdCBzcGFfaG9vayBwaXBld2ly ZV9yZW1vdGVfbGlzdGVuZXI7Ci0rICBzdHJ1Y3Qgc3BhX2hvb2sgcGlwZXdpcmVfY29yZV9saXN0 ZW5lcjsKLQotICAgZ2Jvb2xlYW4gaXNfZW5hYmxlZDsKLQotICAgc3RydWN0IHB3X3N0cmVhbSAq cGlwZXdpcmVfc3RyZWFtOwotICAgc3RydWN0IHNwYV9ob29rIHBpcGV3aXJlX3N0cmVhbV9saXN0 ZW5lcjsKLSsgIHVpbnQzMl90IG5vZGVfaWQ7Ci0KLS0gIE1ldGFTcGFUeXBlIHNwYV90eXBlOwot ICAgc3RydWN0IHNwYV92aWRlb19pbmZvX3JhdyB2aWRlb19mb3JtYXQ7Ci0rICBpbnQgdmlkZW9f c3RyaWRlOwotCi0gICB1aW50NjRfdCBsYXN0X2ZyYW1lX3RpbWVzdGFtcF91czsKLQotQEAgLTEx Miw4ICsxMDQsNiBAQCBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoTWV0YVNjcmVlbkNhc3RTdHJl YW1TcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2luaXRfaW5pdGFibGVfaWZhY2UpCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIEdfQUREX1BSSVZBVEUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3Jj KSkKLQotLSNkZWZpbmUgUFJPUF9SQU5HRShtaW4sIG1heCkgMiwgKG1pbiksIChtYXgpCi0tCi0g c3RhdGljIHZvaWQKLSBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X3NwZWNzIChNZXRh U2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICp3aWR0aCwKLUBAIC0yODYsOSArMjc2 LDYgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRl X21ldGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAg ICAgICB4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHkpCi0gewotLSAgTWV0YVNj cmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNw YV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCAqc3Bh X21ldGFfYml0bWFwOwotCi0gICBzcGFfbWV0YV9jdXJzb3ItPmlkID0gMTsKLUBAIC0zMDAsNyAr Mjg3LDcgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3By aXRlX21ldGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmUKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQ QV9NRU1CRVIgKHNwYV9tZXRhX2N1cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNwYV9tZXRhX2N1cnNvci0+Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFw LT5mb3JtYXQgPSBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRt YXAtPmZvcm1hdCA9IFNQQV9WSURFT19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+ b2Zmc2V0ID0gc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgc3BhX21ldGFf Y3Vyc29yLT5ob3RzcG90LnggPSAwOwotQEAgLTMxNyw5ICszMDQsNiBAQCBtZXRhX3NjcmVlbl9j YXN0X3N0cmVhbV9zcmNfc2V0X2N1cnNvcl9zcHJpdGVfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0 U3RyZWFtU3JjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgeSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0ICAgICAgICAgICAg ICAgICAgICBzY2FsZSkKLSB7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnBy aXYgPQotLSAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZh dGUgKHNyYyk7Ci0tICBNZXRhU3BhVHlwZSAqc3BhX3R5cGUgPSAmcHJpdi0+c3BhX3R5cGU7Ci0g ICBDb2dsVGV4dHVyZSAqY3Vyc29yX3RleHR1cmU7Ci0gICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFw ICpzcGFfbWV0YV9iaXRtYXA7Ci0gICBpbnQgaG90c3BvdF94LCBob3RzcG90X3k7Ci1AQCAtMzQ2 LDcgKzMzMCw3IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfY3Vyc29yX3Nwcml0 ZV9tZXRhZGF0YSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMKLSAgIHNwYV9tZXRhX2JpdG1hcCA9 IFNQQV9NRU1CRVIgKHNwYV9tZXRhX2N1cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNwYV9tZXRhX2N1cnNvci0+Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0 bWFwLT5mb3JtYXQgPSBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9i aXRtYXAtPmZvcm1hdCA9IFNQQV9WSURFT19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1h cC0+b2Zmc2V0ID0gc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgbWV0YV9j dXJzb3Jfc3ByaXRlX2dldF9ob3RzcG90IChjdXJzb3Jfc3ByaXRlLCAmaG90c3BvdF94LCAmaG90 c3BvdF95KTsKLUBAIC0zODIsMTIgKzM2NiwxMCBAQCBzdGF0aWMgdm9pZAotIGFkZF9jdXJzb3Jf bWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMsCi0gICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHNwYV9idWZmZXIgICAgICAgKnNwYV9idWZmZXIpCi0gewotLSAgTWV0YVNj cmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNw YV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNwYV9tZXRhX2N1cnNvciAqc3Bh X21ldGFfY3Vyc29yOwotCi0tICBzcGFfbWV0YV9jdXJzb3IgPSBzcGFfYnVmZmVyX2ZpbmRfbWV0 YSAoc3BhX2J1ZmZlciwgc3BhX3R5cGUtPm1ldGFfY3Vyc29yKTsKLSsgIHNwYV9tZXRhX2N1cnNv ciA9IHNwYV9idWZmZXJfZmluZF9tZXRhX2RhdGEgKHNwYV9idWZmZXIsIFNQQV9NRVRBX0N1cnNv ciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZiAoKnNwYV9tZXRhX2N1cnNvcikpOwotICAgaWYgKHNwYV9tZXRhX2N1cnNvcikKLSAgICAgbWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9jdXJzb3JfbWV0YWRhdGEgKHNyYywgc3BhX21l dGFfY3Vyc29yKTsKLSB9Ci1AQCAtNDQ3LDE0ICs0MjksMTQgQEAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX21heWJlX3JlY29yZF9mcmFtZSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNy YykKLSAgICAgewotICAgICAgIGRhdGEgPSBzcGFfYnVmZmVyLT5kYXRhc1swXS5kYXRhOwotICAg ICB9Ci0tICBlbHNlIGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50eXBlID09IHByaXYtPnBpcGV3 aXJlX3R5cGUtPmRhdGEuTWVtRmQpCi0rICBlbHNlIGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50 eXBlID09IFNQQV9EQVRBX01lbUZkKQotICAgICB7Ci0gICAgICAgbWFwID0gbW1hcCAoTlVMTCwg c3BhX2J1ZmZlci0+ZGF0YXNbMF0ubWF4c2l6ZSArIHNwYV9idWZmZXItPmRhdGFzWzBdLm1hcG9m ZnNldCwKLSAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hB UkVELAotICAgICAgICAgICAgICAgICAgIHNwYV9idWZmZXItPmRhdGFzWzBdLmZkLCAwKTsKLSAg ICAgICBpZiAobWFwID09IE1BUF9GQUlMRUQpCi0gICAgICAgICB7Ci0tICAgICAgICAgIGdfd2Fy bmluZyAoIkZhaWxlZCB0byBtbWFwIHBpcGV3aXJlIHN0cmVhbSBidWZmZXI6ICVzXG4iLAotKyAg ICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gbW1hcCBwaXBld2lyZSBzdHJlYW0gYnVmZmVy OiAlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgc3RyZXJyb3IgKGVycm5vKSk7Ci0gICAgICAg ICAgIHJldHVybjsKLSAgICAgICAgIH0KLUBAIC00NjksMjggKzQ1MSwzMCBAQCBtZXRhX3NjcmVl bl9jYXN0X3N0cmVhbV9zcmNfbWF5YmVfcmVjb3JkX2ZyYW1lIChNZXRhU2NyZWVuQ2FzdFN0cmVh bVNyYyAqc3JjKQotCi0gICBpZiAobWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3JlY29yZF9m cmFtZSAoc3JjLCBkYXRhKSkKLSAgICAgewotLSAgICAgIHN0cnVjdCBzcGFfbWV0YV92aWRlb19j cm9wICpzcGFfbWV0YV92aWRlb19jcm9wOwotKyAgICAgIHN0cnVjdCBzcGFfbWV0YV9yZWdpb24g KnNwYV9tZXRhX3ZpZGVvX2Nyb3A7Ci0KLSAgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5jaHVu ay0+c2l6ZSA9IHNwYV9idWZmZXItPmRhdGFzWzBdLm1heHNpemU7Ci0rICAgICAgc3BhX2J1ZmZl ci0+ZGF0YXNbMF0uY2h1bmstPnN0cmlkZSA9IHByaXYtPnZpZGVvX3N0cmlkZTsKLQotICAgICAg IC8qIFVwZGF0ZSBWaWRlb0Nyb3AgaWYgbmVlZGVkICovCi0gICAgICAgc3BhX21ldGFfdmlkZW9f Y3JvcCA9Ci0tICAgICAgICBzcGFfYnVmZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZlciwgcHJpdi0+ cGlwZXdpcmVfdHlwZS0+bWV0YS5WaWRlb0Nyb3ApOwotKyAgICAgICAgc3BhX2J1ZmZlcl9maW5k X21ldGFfZGF0YSAoc3BhX2J1ZmZlciwgU1BBX01FVEFfVmlkZW9Dcm9wLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mICgqc3BhX21ldGFfdmlkZW9fY3JvcCkpOwot ICAgICAgIGlmIChzcGFfbWV0YV92aWRlb19jcm9wKQotICAgICAgICAgewotICAgICAgICAgICBp ZiAobWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF92aWRlb2Nyb3AgKHNyYywgJmNyb3Bf cmVjdCkpCi0gICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3Jv cC0+eCA9IGNyb3BfcmVjdC54OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+ eSA9IGNyb3BfcmVjdC55OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+d2lk dGggPSBjcm9wX3JlY3Qud2lkdGg7Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9w LT5oZWlnaHQgPSBjcm9wX3JlY3QuaGVpZ2h0OwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlk ZW9fY3JvcC0+cmVnaW9uLnBvc2l0aW9uLnggPSBjcm9wX3JlY3QueDsKLSsgICAgICAgICAgICAg IHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi55ID0gY3JvcF9yZWN0Lnk7Ci0r ICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24uc2l6ZS53aWR0aCA9IGNy b3BfcmVjdC53aWR0aDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lv bi5zaXplLmhlaWdodCA9IGNyb3BfcmVjdC5oZWlnaHQ7Ci0gICAgICAgICAgICAgfQotICAgICAg ICAgICBlbHNlCi0gICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9f Y3JvcC0+eCA9IDA7Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT55ID0gMDsK LS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPndpZHRoID0gcHJpdi0+c3RyZWFt X3dpZHRoOwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+aGVpZ2h0ID0gcHJp di0+c3RyZWFtX2hlaWdodDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJl Z2lvbi5wb3NpdGlvbi54ID0gMDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3At PnJlZ2lvbi5wb3NpdGlvbi55ID0gMDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Ny b3AtPnJlZ2lvbi5zaXplLndpZHRoID0gcHJpdi0+c3RyZWFtX3dpZHRoOwotKyAgICAgICAgICAg ICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnNpemUuaGVpZ2h0ID0gcHJpdi0+c3RyZWFt X2hlaWdodDsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0KLUBAIC01NTUsNyAr NTM5LDYgQEAgb25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpk YXRhLAotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0gICBNZXRhU2Ny ZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0 cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICB1aW50MzJfdCBub2RlX2lk OwotCi0gICBzd2l0Y2ggKHN0YXRlKQotICAgICB7Ci1AQCAtNTYzLDE0ICs1NDYsMTIgQEAgb25f c3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICAg IGdfd2FybmluZyAoInBpcGV3aXJlIHN0cmVhbSBlcnJvcjogJXMiLCBlcnJvcl9tZXNzYWdlKTsK LSAgICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsK LSAgICAgICBicmVhazsKLS0gICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09ORklHVVJFOgotLSAg ICAgIG5vZGVfaWQgPSBwd19zdHJlYW1fZ2V0X25vZGVfaWQgKHByaXYtPnBpcGV3aXJlX3N0cmVh bSk7Ci0tICAgICAgZ19zaWduYWxfZW1pdCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2ln bmVkIGludCkgbm9kZV9pZCk7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NU QVRFX1VOQ09OTkVDVEVEOgotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9DT05ORUNUSU5HOgot LSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9SRUFEWToKLSAgICAgY2FzZSBQV19TVFJFQU1fU1RB VEVfUEFVU0VEOgotKyAgICAgIGlmIChwcml2LT5ub2RlX2lkID09IFNQQV9JRF9JTlZBTElEICYm IHByaXYtPnBpcGV3aXJlX3N0cmVhbSkKLSsgICAgICAgIHsKLSsgICAgICAgICAgcHJpdi0+bm9k ZV9pZCA9IHB3X3N0cmVhbV9nZXRfbm9kZV9pZCAocHJpdi0+cGlwZXdpcmVfc3RyZWFtKTsKLSsg ICAgICAgICAgZ19zaWduYWxfZW1pdCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVk IGludCkgcHJpdi0+bm9kZV9pZCk7Ci0rICAgICAgICB9Ci0gICAgICAgaWYgKG1ldGFfc2NyZWVu X2Nhc3Rfc3RyZWFtX3NyY19pc19lbmFibGVkIChzcmMpKQotICAgICAgICAgbWV0YV9zY3JlZW5f Y2FzdF9zdHJlYW1fc3JjX2Rpc2FibGUgKHNyYyk7Ci0gICAgICAgYnJlYWs7Ci1AQCAtNTc4LDY4 ICs1NTksNjkgQEAgb25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAg ICpkYXRhLAotICAgICAgIGlmICghbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2lzX2VuYWJs ZWQgKHNyYykpCi0gICAgICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZW5hYmxlIChz cmMpOwotICAgICAgIGJyZWFrOwotKyAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9VTkNPTk5FQ1RF RDoKLSsgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09OTkVDVElORzoKLSsgICAgICBicmVhazsK LSAgICAgfQotIH0KLQotIHN0YXRpYyB2b2lkCi0tb25fc3RyZWFtX2Zvcm1hdF9jaGFuZ2VkICh2 b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBzcGFfcG9kICpmb3JtYXQpCi0rb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQgKHZv aWQgICAgICAgICAgICAgICAgICpkYXRhLAotKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCAgICAgICAgICAgICAgaWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBzcGFfcG9kICpmb3JtYXQpCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNy YyA9IGRhdGE7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotICAg ICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7 Ci0tICBzdHJ1Y3QgcHdfdHlwZSAqcGlwZXdpcmVfdHlwZSA9IHByaXYtPnBpcGV3aXJlX3R5cGU7 Ci0gICB1aW50OF90IHBhcmFtc19idWZmZXJbMTAyNF07Ci0gICBpbnQzMl90IHdpZHRoLCBoZWln aHQsIHN0cmlkZSwgc2l6ZTsKLSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXI7 Ci0gICBjb25zdCBzdHJ1Y3Qgc3BhX3BvZCAqcGFyYW1zWzNdOwotICAgY29uc3QgaW50IGJwcCA9 IDQ7Ci0KLS0gIGlmICghZm9ybWF0KQotLSAgICB7Ci0tICAgICAgcHdfc3RyZWFtX2ZpbmlzaF9m b3JtYXQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSwgMCwgTlVMTCwgMCk7Ci0tICAgICAgcmV0dXJu OwotLSAgICB9Ci0rICBpZiAoIWZvcm1hdCB8fCBpZCAhPSBTUEFfUEFSQU1fRm9ybWF0KQotKyAg ICByZXR1cm47Ci0KLSAgIHNwYV9mb3JtYXRfdmlkZW9fcmF3X3BhcnNlIChmb3JtYXQsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnByaXYtPnZpZGVvX2Zvcm1hdCwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+c3BhX3R5cGUuZm9ybWF0X3ZpZGVvKTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+dmlkZW9fZm9ybWF0KTsKLQotICAg d2lkdGggPSBwcml2LT52aWRlb19mb3JtYXQuc2l6ZS53aWR0aDsKLSAgIGhlaWdodCA9IHByaXYt PnZpZGVvX2Zvcm1hdC5zaXplLmhlaWdodDsKLSAgIHN0cmlkZSA9IFNQQV9ST1VORF9VUF9OICh3 aWR0aCAqIGJwcCwgNCk7Ci0gICBzaXplID0gaGVpZ2h0ICogc3RyaWRlOwotCi0rICBwcml2LT52 aWRlb19zdHJpZGUgPSBzdHJpZGU7Ci0rCi0gICBwb2RfYnVpbGRlciA9IFNQQV9QT0RfQlVJTERF Ul9JTklUIChwYXJhbXNfYnVmZmVyLCBzaXplb2YgKHBhcmFtc19idWZmZXIpKTsKLQotLSAgcGFy YW1zWzBdID0gc3BhX3BvZF9idWlsZGVyX29iamVjdCAoCi0rICBwYXJhbXNbMF0gPSBzcGFfcG9k X2J1aWxkZXJfYWRkX29iamVjdCAoCi0gICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVf dHlwZS0+cGFyYW0uaWRCdWZmZXJzLCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLkJ1ZmZl cnMsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5zaXplLCAiaSIsIHNp emUsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5zdHJpZGUsICJpIiwg c3RyaWRlLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuYnVmZmVycywg ImlydSIsIDE2LCBQUk9QX1JBTkdFICgyLCAxNiksCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+ cGFyYW1fYnVmZmVycy5hbGlnbiwgImkiLCAxNik7Ci0tCi0tICBwYXJhbXNbMV0gPSBzcGFfcG9k X2J1aWxkZXJfb2JqZWN0ICgKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtQnVmZmVycywgU1BB X1BBUkFNX0J1ZmZlcnMsCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX2J1ZmZlcnMsIFNQQV9QT0Rf Q0hPSUNFX1JBTkdFX0ludCAoMTYsIDIsIDE2KSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYmxv Y2tzLCBTUEFfUE9EX0ludCAoMSksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX3NpemUsIFNQQV9Q T0RfSW50IChzaXplKSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfc3RyaWRlLCBTUEFfUE9EX0lu dCAoc3RyaWRlKSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYWxpZ24sIFNQQV9QT0RfSW50ICgx NikpOwotKwotKyAgcGFyYW1zWzFdID0gc3BhX3BvZF9idWlsZGVyX2FkZF9vYmplY3QgKAotICAg ICAmcG9kX2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBhcmFtLmlkTWV0YSwgcGlwZXdp cmVfdHlwZS0+cGFyYW1fbWV0YS5NZXRhLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFt X21ldGEudHlwZSwgIkkiLCBwaXBld2lyZV90eXBlLT5tZXRhLlZpZGVvQ3JvcCwKLS0gICAgIjoi LCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLnNpemUsICJpIiwgc2l6ZW9mIChzdHJ1Y3Qgc3Bh X21ldGFfdmlkZW9fY3JvcCkpOwotKyAgICBTUEFfVFlQRV9PQkpFQ1RfUGFyYW1NZXRhLCBTUEFf UEFSQU1fTWV0YSwKLSsgICAgU1BBX1BBUkFNX01FVEFfdHlwZSwgU1BBX1BPRF9JZCAoU1BBX01F VEFfVmlkZW9Dcm9wKSwKLSsgICAgU1BBX1BBUkFNX01FVEFfc2l6ZSwgU1BBX1BPRF9JbnQgKHNp emVvZiAoc3RydWN0IHNwYV9tZXRhX3JlZ2lvbikpKTsKLQotLSAgcGFyYW1zWzJdID0gc3BhX3Bv ZF9idWlsZGVyX29iamVjdCAoCi0rICBwYXJhbXNbMl0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29i amVjdCAoCi0gICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRN ZXRhLCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLk1ldGEsCi0tICAgICI6IiwgcGlwZXdpcmVf dHlwZS0+cGFyYW1fbWV0YS50eXBlLCAiSSIsIHByaXYtPnNwYV90eXBlLm1ldGFfY3Vyc29yLAot LSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEuc2l6ZSwgImkiLCBDVVJTT1JfTUVU QV9TSVpFICg2NCwgNjQpKTsKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BB UkFNX01ldGEsCi0rICAgIFNQQV9QQVJBTV9NRVRBX3R5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRVRB X0N1cnNvciksCi0rICAgIFNQQV9QQVJBTV9NRVRBX3NpemUsIFNQQV9QT0RfSW50IChDVVJTT1Jf TUVUQV9TSVpFICg2NCwgNjQpKSk7Ci0KLS0gIHB3X3N0cmVhbV9maW5pc2hfZm9ybWF0IChwcml2 LT5waXBld2lyZV9zdHJlYW0sIDAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1z LCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotKyAgcHdfc3RyZWFtX3VwZGF0ZV9wYXJhbXMgKHBy aXYtPnBpcGV3aXJlX3N0cmVhbSwgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotIH0K LQotIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHdfc3RyZWFtX2V2ZW50cyBzdHJlYW1fZXZlbnRzID0g ewotICAgUFdfVkVSU0lPTl9TVFJFQU1fRVZFTlRTLAotICAgLnN0YXRlX2NoYW5nZWQgPSBvbl9z dHJlYW1fc3RhdGVfY2hhbmdlZCwKLS0gIC5mb3JtYXRfY2hhbmdlZCA9IG9uX3N0cmVhbV9mb3Jt YXRfY2hhbmdlZCwKLSsgIC5wYXJhbV9jaGFuZ2VkID0gb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQs Ci0gfTsKLQotIHN0YXRpYyBzdHJ1Y3QgcHdfc3RyZWFtICoKLUBAIC02NTIsOCArNjM0LDYgQEAg Y3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0g ICB1aW50OF90IGJ1ZmZlclsxMDI0XTsKLSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1 aWxkZXIgPQotICAgICBTUEFfUE9EX0JVSUxERVJfSU5JVCAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZl cikpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotLSAgc3Ry dWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5cGUgPSBwcml2LT5waXBld2lyZV90eXBlOwotICAgZmxv YXQgZnJhbWVfcmF0ZTsKLSAgIE1ldGFGcmFjdGlvbiBmcmFtZV9yYXRlX2ZyYWN0aW9uOwotICAg c3RydWN0IHNwYV9mcmFjdGlvbiBtYXhfZnJhbWVyYXRlOwotQEAgLTY2MSw3ICs2NDEsOSBAQCBj cmVhdGVfcGlwZXdpcmVfc3RyZWFtIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAgKnNyYywKLSAg IGNvbnN0IHN0cnVjdCBzcGFfcG9kICpwYXJhbXNbMV07Ci0gICBpbnQgcmVzdWx0OwotCi0tICBw aXBld2lyZV9zdHJlYW0gPSBwd19zdHJlYW1fbmV3IChwcml2LT5waXBld2lyZV9yZW1vdGUsCi0r ICBwcml2LT5ub2RlX2lkID0gU1BBX0lEX0lOVkFMSUQ7Ci0rCi0rICBwaXBld2lyZV9zdHJlYW0g PSBwd19zdHJlYW1fbmV3IChwcml2LT5waXBld2lyZV9jb3JlLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIm1ldGEtc2NyZWVuLWNhc3Qtc3JjIiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotICAgaWYgKCFwaXBld2lyZV9zdHJlYW0pCi1A QCAtNjgyLDE3ICs2NjQsMTcgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNh c3RTdHJlYW1TcmMgICpzcmMsCi0gICBtYXhfZnJhbWVyYXRlID0gU1BBX0ZSQUNUSU9OIChmcmFt ZV9yYXRlX2ZyYWN0aW9uLm51bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZy YW1lX3JhdGVfZnJhY3Rpb24uZGVub20pOwotCi0tICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxk ZXJfb2JqZWN0ICgKLSsgIHBhcmFtc1swXSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgK LSAgICAgJnBvZF9idWlsZGVyLAotLSAgICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZEVudW1Gb3Jt YXQsIHBpcGV3aXJlX3R5cGUtPnNwYV9mb3JtYXQsCi0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlh X3R5cGUudmlkZW8sCi0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlhX3N1YnR5cGUucmF3LAotLSAg ICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8uZm9ybWF0LCAiSSIsIHNwYV90eXBlLT52aWRl b19mb3JtYXQuQkdSeCwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLnNpemUsICJS IiwgJlNQQV9SRUNUQU5HTEUgKHByaXYtPnN0cmVhbV93aWR0aCwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPnN0cmVhbV9o ZWlnaHQpLAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8uZnJhbWVyYXRlLCAiRiIs ICZTUEFfRlJBQ1RJT04gKDAsIDEpLAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8u bWF4X2ZyYW1lcmF0ZSwgIkZydSIsICZtYXhfZnJhbWVyYXRlLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfUkFOR0UgKCZtaW5fZnJh bWVyYXRlLAotKyAgICBTUEFfVFlQRV9PQkpFQ1RfRm9ybWF0LCBTUEFfUEFSQU1fRW51bUZvcm1h dCwKLSsgICAgU1BBX0ZPUk1BVF9tZWRpYVR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9UWVBF X3ZpZGVvKSwKLSsgICAgU1BBX0ZPUk1BVF9tZWRpYVN1YnR5cGUsIFNQQV9QT0RfSWQgKFNQQV9N RURJQV9TVUJUWVBFX3JhdyksCi0rICAgIFNQQV9GT1JNQVRfVklERU9fZm9ybWF0LCBTUEFfUE9E X0lkIChTUEFfVklERU9fRk9STUFUX0JHUngpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX3NpemUs IFNQQV9QT0RfUmVjdGFuZ2xlICgmU1BBX1JFQ1RBTkdMRSAocHJpdi0+c3RyZWFtX3dpZHRoLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHJpdi0+c3RyZWFtX2hlaWdodCkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX2ZyYW1l cmF0ZSwgU1BBX1BPRF9GcmFjdGlvbiAoJlNQQV9GUkFDVElPTiAoMCwgMSkpLAotKyAgICBTUEFf Rk9STUFUX1ZJREVPX21heEZyYW1lcmF0ZSwgU1BBX1BPRF9DSE9JQ0VfUkFOR0VfRnJhY3Rpb24g KCZtYXhfZnJhbWVyYXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtaW5fZnJhbWVyYXRlLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZt YXhfZnJhbWVyYXRlKSk7Ci0KLSAgIHB3X3N0cmVhbV9hZGRfbGlzdGVuZXIgKHBpcGV3aXJlX3N0 cmVhbSwKLUBAIC03MDIsNyArNjg0LDcgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNj cmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0KLSAgIHJlc3VsdCA9IHB3X3N0cmVhbV9jb25uZWN0 IChwaXBld2lyZV9zdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFdfRElS RUNUSU9OX09VVFBVVCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQQV9JRF9JTlZBTElELAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChQV19TVFJFQU1fRkxBR19EUklWRVIgfAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQV19TVFJFQU1fRkxBR19NQVBfQlVGRkVSUyksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwot QEAgLTcxNyw0MCArNjk5LDE4IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5D YXN0U3RyZWFtU3JjICAqc3JjLAotIH0KLQotIHN0YXRpYyB2b2lkCi0tb25fc3RhdGVfY2hhbmdl ZCAodm9pZCAgICAgICAgICAgICAgICAgKmRhdGEsCi0tICAgICAgICAgICAgICAgICAgZW51bSBw d19yZW1vdGVfc3RhdGUgIG9sZCwKLS0gICAgICAgICAgICAgICAgICBlbnVtIHB3X3JlbW90ZV9z dGF0ZSAgc3RhdGUsCi0tICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgKmVy cm9yX21lc3NhZ2UpCi0rb25fY29yZV9lcnJvciAodm9pZCAgICAgICAqZGF0YSwKLSsgICAgICAg ICAgICAgICB1aW50MzJfdCAgICBpZCwKLSsJICAgICAgIGludCAgICAgICAgIHNlcSwKLSsJICAg ICAgIGludCAgICAgICAgIHJlcywKLSsJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCi0gewot ICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0tICBNZXRhU2NyZWVuQ2Fz dFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotLSAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9z cmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBzdHJ1Y3QgcHdfc3RyZWFtICpwaXBl d2lyZV9zdHJlYW07Ci0tICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLQotLSAgc3dpdGNoIChzdGF0 ZSkKLS0gICAgewotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9FUlJPUjoKLS0gICAgICBnX3dh cm5pbmcgKCJwaXBld2lyZSByZW1vdGUgZXJyb3I6ICVzXG4iLCBlcnJvcl9tZXNzYWdlKTsKLS0g ICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLS0g ICAgICBicmVhazsKLS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfQ09OTkVDVEVEOgotLSAgICAg IHBpcGV3aXJlX3N0cmVhbSA9IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgJmVycm9yKTsK LS0gICAgICBpZiAoIXBpcGV3aXJlX3N0cmVhbSkKLS0gICAgICAgIHsKLS0gICAgICAgICAgZ193 YXJuaW5nICgiQ291bGQgbm90IGNyZWF0ZSBwaXBld2lyZSBzdHJlYW06ICVzIiwgZXJyb3ItPm1l c3NhZ2UpOwotLSAgICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKLS0gICAgICAgICAgbWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0tICAgICAgICB9 Ci0tICAgICAgZWxzZQotLSAgICAgICAgewotLSAgICAgICAgICBwcml2LT5waXBld2lyZV9zdHJl YW0gPSBwaXBld2lyZV9zdHJlYW07Ci0tICAgICAgICB9Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNh c2UgUFdfUkVNT1RFX1NUQVRFX1VOQ09OTkVDVEVEOgotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFU RV9DT05ORUNUSU5HOgotLSAgICAgIGJyZWFrOwotLSAgICB9Ci0rICBnX3dhcm5pbmcgKCJwaXBl d2lyZSByZW1vdGUgZXJyb3I6IGlkOiV1ICVzIiwgaWQsIG1lc3NhZ2UpOwotKwotKyAgaWYgKGlk ID09IFBXX0lEX0NPUkUgJiYgcmVzID09IC1FUElQRSkKLSsgICAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0gfQotCi0gc3RhdGljIGdib29sZWFuCi1A QCAtNzkzLDE3ICs3NTMsNiBAQCBzdGF0aWMgR1NvdXJjZUZ1bmNzIHBpcGV3aXJlX3NvdXJjZV9m dW5jcyA9Ci0gICBwaXBld2lyZV9sb29wX3NvdXJjZV9maW5hbGl6ZQotIH07Ci0KLS1zdGF0aWMg dm9pZAotLWluaXRfc3BhX3R5cGUgKE1ldGFTcGFUeXBlICAgICAgICAgKnR5cGUsCi0tICAgICAg ICAgICAgICAgc3RydWN0IHNwYV90eXBlX21hcCAqbWFwKQotLXsKLS0gIHNwYV90eXBlX21lZGlh X3R5cGVfbWFwIChtYXAsICZ0eXBlLT5tZWRpYV90eXBlKTsKLS0gIHNwYV90eXBlX21lZGlhX3N1 YnR5cGVfbWFwIChtYXAsICZ0eXBlLT5tZWRpYV9zdWJ0eXBlKTsKLS0gIHNwYV90eXBlX2Zvcm1h dF92aWRlb19tYXAgKG1hcCwgJnR5cGUtPmZvcm1hdF92aWRlbyk7Ci0tICBzcGFfdHlwZV92aWRl b19mb3JtYXRfbWFwIChtYXAsICZ0eXBlLT52aWRlb19mb3JtYXQpOwotLSAgdHlwZS0+bWV0YV9j dXJzb3IgPSBzcGFfdHlwZV9tYXBfZ2V0X2lkKG1hcCwgU1BBX1RZUEVfTUVUQV9fQ3Vyc29yKTsK LS19Ci0tCi0gc3RhdGljIE1ldGFQaXBlV2lyZVNvdXJjZSAqCi0gY3JlYXRlX3BpcGV3aXJlX3Nv dXJjZSAodm9pZCkKLSB7Ci1AQCAtODI5LDkgKzc3OCw5IEBAIGNyZWF0ZV9waXBld2lyZV9zb3Vy Y2UgKHZvaWQpCi0gICByZXR1cm4gcGlwZXdpcmVfc291cmNlOwotIH0KLQotLXN0YXRpYyBjb25z dCBzdHJ1Y3QgcHdfcmVtb3RlX2V2ZW50cyByZW1vdGVfZXZlbnRzID0gewotLSAgUFdfVkVSU0lP Tl9SRU1PVEVfRVZFTlRTLAotLSAgLnN0YXRlX2NoYW5nZWQgPSBvbl9zdGF0ZV9jaGFuZ2VkLAot K3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdfY29yZV9ldmVudHMgY29yZV9ldmVudHMgPSB7Ci0rICBQ V19WRVJTSU9OX0NPUkVfRVZFTlRTLAotKyAgLmVycm9yID0gb25fY29yZV9lcnJvciwKLSB9Owot Ci0gc3RhdGljIGdib29sZWFuCi1AQCAtODUxLDM3ICs4MDAsMzEgQEAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAgICAgKmluaXRhYmxlLAotICAg ICAgIHJldHVybiBGQUxTRTsKLSAgICAgfQotCi0tICBwcml2LT5waXBld2lyZV9jb3JlID0gcHdf Y29yZV9uZXcgKHByaXYtPnBpcGV3aXJlX3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0tICBpZiAoIXByaXYtPnBpcGV3 aXJlX2NvcmUpCi0rICBwcml2LT5waXBld2lyZV9jb250ZXh0ID0gcHdfY29udGV4dF9uZXcgKHBy aXYtPnBpcGV3aXJlX3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCk7Ci0rICBpZiAoIXByaXYtPnBpcGV3aXJl X2NvbnRleHQpCi0gICAgIHsKLSAgICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1Is IEdfSU9fRVJST1JfRkFJTEVELAotLSAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0 ZSBwaXBld2lyZSBjb3JlIik7Ci0rICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gY3JlYXRl IHBpcGV3aXJlIGNvbnRleHQiKTsKLSAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgIH0KLQotLSAg cHJpdi0+cGlwZXdpcmVfcmVtb3RlID0gcHdfcmVtb3RlX25ldyAocHJpdi0+cGlwZXdpcmVfY29y ZSwgTlVMTCwgMCk7Ci0tICBpZiAoIXByaXYtPnBpcGV3aXJlX3JlbW90ZSkKLSsgIHByaXYtPnBp cGV3aXJlX2NvcmUgPSBwd19jb250ZXh0X2Nvbm5lY3QgKHByaXYtPnBpcGV3aXJlX2NvbnRleHQs IE5VTEwsIDApOwotKyAgaWYgKCFwcml2LT5waXBld2lyZV9jb3JlKQotICAgICB7Ci0gICAgICAg Z19zZXRfZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0ZBSUxFRCwKLS0gICAg ICAgICAgICAgICAgICAgIkNvdWxkbid0IGNyZWF0IHBpcGV3aXJlIHJlbW90ZSIpOwotKyAgICAg ICAgICAgICAgICAgICAiQ291bGRuJ3QgY29ubmVjdCBwaXBld2lyZSBjb250ZXh0Iik7Ci0gICAg ICAgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0KLS0gIHB3X3JlbW90ZV9hZGRfbGlzdGVuZXIgKHBy aXYtPnBpcGV3aXJlX3JlbW90ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT5w aXBld2lyZV9yZW1vdGVfbGlzdGVuZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVt b3RlX2V2ZW50cywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIHNyYyk7Ci0rICBwd19jb3Jl X2FkZF9saXN0ZW5lciAocHJpdi0+cGlwZXdpcmVfY29yZSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAmcHJpdi0+cGlwZXdpcmVfY29yZV9saXN0ZW5lciwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAmY29yZV9ldmVudHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgc3JjKTsKLQotLSAg cHJpdi0+cGlwZXdpcmVfdHlwZSA9IHB3X2NvcmVfZ2V0X3R5cGUgKHByaXYtPnBpcGV3aXJlX2Nv cmUpOwotLSAgaW5pdF9zcGFfdHlwZSAoJnByaXYtPnNwYV90eXBlLCBwcml2LT5waXBld2lyZV90 eXBlLT5tYXApOwotLQotLSAgaWYgKHB3X3JlbW90ZV9jb25uZWN0IChwcml2LT5waXBld2lyZV9y ZW1vdGUpICE9IDApCi0tICAgIHsKLS0gICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJS T1IsIEdfSU9fRVJST1JfRkFJTEVELAotLSAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgY29u bmVjdCBwaXBld2lyZSByZW1vdGUiKTsKLS0gICAgICByZXR1cm4gRkFMU0U7Ci0tICAgIH0KLSsg IHByaXYtPnBpcGV3aXJlX3N0cmVhbSA9IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgZXJy b3IpOwotKyAgaWYgKCFwcml2LT5waXBld2lyZV9zdHJlYW0pCi0rICAgIHJldHVybiBGQUxTRTsK LQotICAgcmV0dXJuIFRSVUU7Ci0gfQotQEAgLTkxMiw4ICs4NTUsOCBAQCBtZXRhX3NjcmVlbl9j YXN0X3N0cmVhbV9zcmNfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKLSAgICAgbWV0YV9zY3Jl ZW5fY2FzdF9zdHJlYW1fc3JjX2Rpc2FibGUgKHNyYyk7Ci0KLSAgIGdfY2xlYXJfcG9pbnRlciAo JnByaXYtPnBpcGV3aXJlX3N0cmVhbSwgcHdfc3RyZWFtX2Rlc3Ryb3kpOwotLSAgZ19jbGVhcl9w b2ludGVyICgmcHJpdi0+cGlwZXdpcmVfcmVtb3RlLCBwd19yZW1vdGVfZGVzdHJveSk7Ci0tICBn X2NsZWFyX3BvaW50ZXIgKCZwcml2LT5waXBld2lyZV9jb3JlLCBwd19jb3JlX2Rlc3Ryb3kpOwot KyAgZ19jbGVhcl9wb2ludGVyICgmcHJpdi0+cGlwZXdpcmVfY29yZSwgcHdfY29yZV9kaXNjb25u ZWN0KTsKLSsgIGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX2NvbnRleHQsIHB3X2Nv bnRleHRfZGVzdHJveSk7Ci0gICBnX3NvdXJjZV9kZXN0cm95ICgmcHJpdi0+cGlwZXdpcmVfc291 cmNlLT5iYXNlKTsKLQotICAgR19PQkpFQ1RfQ0xBU1MgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFt X3NyY19wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbXV0dGVyL3RlbXBsYXRlIGIvc3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUKaW5kZXggODA2YTNi ZWY5ZjAuLjM5NmU5Mzk3Y2NjIDEwMDY0NAotLS0gYS9zcmNwa2dzL211dHRlci90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL211dHRlci90ZW1wbGF0ZQpAQCAtMSwzNCArMSw0MCBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbXV0dGVyJwogcGtnbmFtZT1tdXR0ZXIKLXZlcnNpb249My4zNC4xCi1yZXZp c2lvbj0zCit2ZXJzaW9uPTMuMzcuOTAKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgog YnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGVnbF9kZXZpY2U9dHJ1ZSAtRHVk ZXY9dHJ1ZSAtRG5hdGl2ZV9iYWNrZW5kPXRydWUKLSAtRHByb2ZpbGVyPWZhbHNlIC1EaW50cm9z cGVjdGlvbj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZCIKKyAtRHByb2Zp bGVyPWZhbHNlIC1EaW50cm9zcGVjdGlvbj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Y d2F5bGFuZAorIC1EeHdheWxhbmRfaW5pdGZkPWRpc2FibGVkIgogaG9zdG1ha2VkZXBlbmRzPSJn ZXR0ZXh0IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyB6ZW5pdHkgd2F5bGFuZC1kZXZlbCB4b3JnLXNl cnZlciIKLW1ha2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVza3Rv cC1kZXZlbCBqc29uLWdsaWItZGV2ZWwKLSBsaWJnbGliLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0 c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGliaW5wdXQtZGV2ZWwKLSBNZXNhTGliLWRldmVs IHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsIHdheWxhbmQtcHJvdG9j b2xzCi0gZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIgotZGVwZW5kcz0iZGVza3RvcC1maWxl LXV0aWxzIHplbml0eSIKK21ha2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25v bWUtZGVza3RvcC1kZXZlbCBncmFwaGVuZS1kZXZlbAorIGpzb24tZ2xpYi1kZXZlbCBsaWJnbGli LWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwKKyBsaWJp bnB1dC1kZXZlbCBNZXNhTGliLWRldmVsIHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAtbm90aWZpY2F0 aW9uLWRldmVsCisgd2F5bGFuZC1wcm90b2NvbHMgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVs IgorZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBkZXNrdG9wLWZpbGUtdXRpbHMg emVuaXR5Igogc2hvcnRfZGVzYz0iTGlnaHR3ZWlnaHQgR1RLKzMgd2luZG93IG1hbmFnZXIiCiBt YWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2pl Y3RzL011dHRlci8iCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iYTE4MjZjZjg4 YmRiODFlNjM5NDNjYWMwMTRhOGU4YmNmMzVlYzE3OGM1MzI2NDQwMWY5YzcyZmRlYWI3NThlCi1z aGxpYl9wcm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNS5zbyBsaWJtdXR0ZXItY29nbC01LnNv Ci0gbGlibXV0dGVyLWNvZ2wtcGFuZ28tNS5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTUuc28iCitj aGVja3N1bT01MGRjN2EwNDU5NTQ5YzczNWFjZDllOGJiNzllNDEwOGNiMDRiMTE5OGU2Zjg1NWE5 YzE5NzU5NjFiNzdkYWU1CitzaGxpYl9wcm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNy5zbyBs aWJtdXR0ZXItY29nbC03LnNvCisgbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zbyBsaWJtdXR0ZXIt Y29nbC1wYXRoLTcuc28iCisKKyMgbmVlZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQogCiBtdXR0 ZXItZGV2ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFz IGd0ayszLWRldmVsIGNsdXR0ZXItZGV2ZWwgbGliWDExLWRldmVsCi0JIGxpYlh0c3QtZGV2ZWwg bXV0dGVyLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3Jh cGhlbmUtZGV2ZWwgY2x1dHRlci1kZXZlbAorCSBsaWJYMTEtZGV2ZWwgbGliWHRzdC1kZXZlbCBt dXR0ZXItJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1l bnQgZmlsZXMiCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3Zl IHVzci9saWIvcGtnY29uZmlnCi0JCXZtb3ZlICJ1c3IvbGliL211dHRlci01LyouZ2lyIgorCQl2 bW92ZSAidXNyL2xpYi9tdXR0ZXItNy8qLmdpciIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAl9 CiB9CgpGcm9tIDI3YTNlZTg1YTRlYjIxZmEyNGE3YjkzNmUwODdiZjRkODViYjQ0YTAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxMS84M10gZ25vbWUtbWVudXM6IHVwZGF0ZSB0byAzLjM2LjAKCi0tLQogc3JjcGtncy9nbm9t ZS1tZW51cy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVt cGxhdGUgYi9zcmNwa2dzL2dub21lLW1lbnVzL3RlbXBsYXRlCmluZGV4IDI5MTAyMTI5YzM4Li5l Nzg3ZmI4ZGU2YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2dub21lLW1lbnVzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtbWVudXMnCiBwa2duYW1lPWdub21lLW1lbnVzCi12ZXJzaW9uPTMu MzIuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM2LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlz YWJsZS1zdGF0aWMiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25v bWUtbWVudXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jODUwYzY0YjIwNzQy NjVmZTU5ZTA5OWEzNDBiODY4OWNmM2RkNDY1OGRjOWZlZGRkMmFiNWU5NWYxYTc0Yjc0CitjaGVj a3N1bT1kOTM0OGYzOGJkZTk1NmZjMzI3NTNiMjhjMWNkZTE5YzE3NWJmZGJmMWY0ZDViMDYwMDNi M2FhMDkxNTNiYjFmCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIgoKRnJvbSBlNGFjNDY2M2I5ZDFlN2NhZmM4Y2ZlZWQzNjU0YWMxMGIzODhhMmQ2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMTIvODNdIGNoZWVzZTogYnVtcAoKLS0tCiBzcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY2hlZXNlL3RlbXBsYXRlIGIvc3JjcGtncy9jaGVlc2UvdGVtcGxh dGUKaW5kZXggN2E1NmJhMDM5ZmIuLjAzN2NkYTQ5Yzk4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2No ZWVzZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NoZWVzZScKIHBrZ25hbWU9Y2hlZXNlCiB2ZXJzaW9u PTMuMzQuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxk X2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EZ3RrX2RvYz0kKHZvcHRfaWYgZ3RrX2Rv YyAndHJ1ZScgJ2ZhbHNlJykKCkZyb20gZmRmZmNjZjFhNDYxMzEzYzk2MGQwOWViODBlZjY0MTI4 ZGM3MDdkYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAK U3ViamVjdDogW1BBVENIIDEzLzgzXSBldm9sdXRpb24tZGF0YS1zZXJ2ZXI6IHVwZGF0ZSB0byAz LjM3LjkwCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIg Ky0KIHNyY3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlIHwgMjUgKysrKysrKysr KysrKysrLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwpp bmRleCA4MzA0ZDMyYWE5OS4uMzk4MmVjZGVjNTcgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMK KysrIGIvY29tbW9uL3NobGlicwpAQCAtNjI4LDcgKzYyOCw3IEBAIGxpYmljYWxzc19jeHguc28u MyBsaWJpY2FsLTMuMC40XzEKIGxpYmljYWx2Y2FsLnNvLjMgbGliaWNhbC0zLjAuNF8xCiBsaWJp Y2FsLWdsaWIuc28uMyBsaWJpY2FsLTMuMC40XzEKIGxpYmNhbWVsLTEuMi5zby42MiBldm9sdXRp b24tZGF0YS1zZXJ2ZXItMy4zMC4wXzEKLWxpYmVkYXRhc2VydmVyLTEuMi5zby4yNCBldm9sdXRp b24tZGF0YS1zZXJ2ZXItMy4zMi4wXzEKK2xpYmVkYXRhc2VydmVyLTEuMi5zby4yNSBldm9sdXRp b24tZGF0YS1zZXJ2ZXItMy4zNy45MF8xCiBsaWJlYmFja2VuZC0xLjIuc28uMTAgZXZvbHV0aW9u LWRhdGEtc2VydmVyLTMuMTcuOTBfMQogbGliZWRhdGFzZXJ2ZXJ1aS0xLjIuc28uMiBldm9sdXRp b24tZGF0YS1zZXJ2ZXItMy4yOC4wXzEKIGxpYmVib29rLWNvbnRhY3RzLTEuMi5zby4zIGV2b2x1 dGlvbi1kYXRhLXNlcnZlci0zLjM0LjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24t ZGF0YS1zZXJ2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1w bGF0ZQppbmRleCA0YWU4MjBiZTA2OC4uNTIwNjlhZDk5M2IgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv ZXZvbHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uLWRh dGEtc2VydmVyL3RlbXBsYXRlCkBAIC0xLDI5ICsxLDM0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdldm9sdXRpb24tZGF0YS1zZXJ2ZXInCiBwa2duYW1lPWV2b2x1dGlvbi1kYXRhLXNlcnZlcgot dmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy45MAorcmV2aXNpb249MQog YnVpbGRfc3R5bGU9Y21ha2UKLWJ1aWxkX2hlbHBlcj1naXIKK2J1aWxkX2hlbHBlcj0iZ2lyIHFl bXUiCiBjb25maWd1cmVfYXJncz0iLURFTkFCTEVfVU9BPU9GRgotICQodm9wdF9pZiBnaXIgJy1E RU5BQkxFX0lOVFJPU1BFQ1RJT049T04gLURFTkFCTEVfVkFMQV9CSU5ESU5HUz1PTicgJy1ERU5B QkxFX1dFQVRIRVI9T0ZGJykiCi1ob3N0bWFrZWRlcGVuZHM9ImZsZXggZ2xpYi1kZXZlbCBncGVy ZiBpbnRsdG9vbCBwa2ctY29uZmlnIGxpYmdsaWItZGV2ZWwKLSAkKHZvcHRfaWYgZ2lyICdnb2Jq ZWN0LWludHJvc3BlY3Rpb24nKSIKLW1ha2VkZXBlbmRzPSJib29zdC1kZXZlbCBsaWJjYW5iZXJy YS1kZXZlbCBsaWJnZGF0YS1kZXZlbCAkKHZvcHRfaWYgZ2lyIGxpYmd3ZWF0aGVyLWRldmVsKQot IGxpYmljYWwtZGV2ZWwgbGlic2VjcmV0LWRldmVsIG1pdC1rcmI1LWRldmVsICQodm9wdF9pZiBn aXIgJ3ZhbGEtZGV2ZWwnKSB3ZWJraXQyZ3RrLWRldmVsIgotZGVwZW5kcz0iJCh2b3B0X2lmIGdp ciBsaWJnd2VhdGhlcikgbGlic291cC1nbm9tZSIKKyAkKHZvcHRfaWYgZ2lyICctREVOQUJMRV9J TlRST1NQRUNUSU9OPU9OIC1ERU5BQkxFX1ZBTEFfQklORElOR1M9T04nKSIKK2hvc3RtYWtlZGVw ZW5kcz0iZmxleCBnbGliLWRldmVsIGdwZXJmIGludGx0b29sIHBrZy1jb25maWcgbGliZ2xpYi1k ZXZlbCIKK21ha2VkZXBlbmRzPSJib29zdC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJnZGF0 YS1kZXZlbCBsaWJpY2FsLWRldmVsCisgbGlic2VjcmV0LWRldmVsIG1pdC1rcmI1LWRldmVsIHdl YmtpdDJndGstZGV2ZWwgbGliZ3dlYXRoZXItZGV2ZWwKKyAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2 ZWwpIgorZGVwZW5kcz0ibGliZ3dlYXRoZXIgbGlic291cC1nbm9tZSIKIHNob3J0X2Rlc2M9IkNl bnRyYWxpemVkIGFjY2VzcyB0byBhcHBvaW50bWVudHMgYW5kIGNvbnRhY3RzIgogbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4x LW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2b2x1dGlvbiIK IGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2V2b2x1 dGlvbi1kYXRhLXNlcnZlci9nbm9tZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT0xMzEyMmIyZWRkZGI5ODMwNjIwN2QyYTM1ZDVjY2FlMjVhOTA3MDI3NjljYTBh MGI1MTY1M2I1OTg0OTg2Nzk2CitjaGVja3N1bT02Y2Q3MWVkZjQyZTY5OWFiOGU4YmQ0OTA4YWVi MTMxMjEwYjU5NGNlOTYxYmRlNjhmZDI3MzMzYjJhZWQ0NDMwCiAKIGJ1aWxkX29wdGlvbnM9Imdp ciIKIGlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIgogZmkKIAorIyBwcm9ibGVtYXRpYworZG9fY2hlY2soKSB7CisJOgorfQorCiAjIGNt YWtlIHBlcmZvbXJtcyAyIGNoZWNrcyB1c2luZyBiaW5hcnkgcnVudGltZSwgYWJvdXQgaWNvbnYg YW5kIHNmcnRpbWUuCiAjIG11c2wgKDEuMS4xNikgZG9lcyBub3Qgc3VwcG9ydCAiSVNPLTIwMjIt SlAiIGVuY29kaW5nIChzZWUgaXRzIHJvYWRtYXApLAogIyBhbHRob3VnaCBldm9sdXRpb24tZGF0 YS1zZXJ2ZXIgaXMgZmluZSB3aXRoIG11c2wuCgpGcm9tIGNlOTg2YmY3NWY3MDBmNzI1M2FiMDdk NjgwZGVjYmUzOGFkMDAxMTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC84M10gZ25vbWUtY29udHJvbC1jZW50ZXI6IHVw ZGF0ZSB0byAzLjM3LjMKCi0tLQogc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0 ZSB8IDIyICsrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRp b25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29udHJv bC1jZW50ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3RlbXBsYXRl CmluZGV4IDBlMjc4Nzg5OGFlLi41ZTc2N2QzZTFlMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9t ZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2Vu dGVyL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1jb250cm9sLWNlbnRlcicKIHBrZ25hbWU9Z25vbWUtY29udHJvbC1jZW50ZXIKLXZlcnNpb249 My4zNC4xCit2ZXJzaW9uPTMuMzcuMwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1 aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EY2hlZXNlPSQodm9wdF9pZiBjaGVl c2UgdHJ1ZSBmYWxzZSkiCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcy1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnIHBvbGtpdAotIHB5dGhvbjMi Citob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1k ZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnCisgcG9sa2l0IHB5dGhvbjMiCiBtYWtlZGVwZW5kcz0i TW9kZW1NYW5hZ2VyLWRldmVsIGFjY291bnRzc2VydmljZS1kZXZlbCBhbHNhLXBsdWdpbnMKICBj b2xvcmQtZ3RrLWRldmVsIGdub21lLWJsdWV0b290aC1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVs IGdub21lLW1lbnVzLWRldmVsCiAgZ25vbWUtb25saW5lLWFjY291bnRzLWRldmVsIGdub21lLXNl dHRpbmdzLWRhZW1vbi1kZXZlbCBncmlsby1kZXZlbCBpYnVzLWRldmVsCi0gbGliU00tZGV2ZWwg bGliWHhmODZtaXNjLWRldmVsIGxpYmdub21la2JkLWRldmVsIGxpYmd0b3AtZGV2ZWwKKyBsaWJT TS1kZXZlbCBsaWJYeGY4Nm1pc2MtZGV2ZWwgbGliZ25vbWVrYmQtZGV2ZWwgbGliZ3RvcC1kZXZl bCBsaWJoYW5keTEtZGV2ZWwKICBsaWJwd3F1YWxpdHktZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgbmV0 d29yay1tYW5hZ2VyLWFwcGxldC1kZXZlbCBwb2xraXQtZGV2ZWwKICBwdWxzZWF1ZGlvLWRldmVs IHNhbWJhLWRldmVsIHR6ZGF0YSB1cG93ZXItZGV2ZWwgdmFsYS1kZXZlbCBjbHV0dGVyLWd0ay1k ZXZlbAogIGxpYnhtbDItZGV2ZWwgbGliWDExLWRldmVsIGd0ayszLWRldmVsIGN1cHMtZGV2ZWwg bGliZ3VkZXYtZGV2ZWwgbGlid2Fjb20tZGV2ZWwKICBjbHV0dGVyLWRldmVsIGxpYnNlY3JldC1k ZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCB1ZGlza3MyLWRldmVsIGdzb3VuZC1kZXZlbAogICQodm9w dF9pZiBjaGVlc2UgY2hlZXNlLWRldmVsKSIKLWRlcGVuZHM9ImFsc2EtcGx1Z2lucy1wdWxzZWF1 ZGlvIGRlc2t0b3AtZmlsZS11dGlscworZGVwZW5kcz0iYWxzYS1wbHVnaW5zLXB1bHNlYXVkaW8g ZGVza3RvcC1maWxlLXV0aWxzIHVwb3dlciBjb2xvcmQgY3Vwcy1way1oZWxwZXIKICBnc2V0dGlu Z3MtZGVza3RvcC1zY2hlbWFzIGhpY29sb3ItaWNvbi10aGVtZSBpc28tY29kZXMgc291bmQtdGhl bWUtZnJlZWRlc2t0b3AKICBjcmFja2xpYiIKIHNob3J0X2Rlc2M9IkdOT01FIGNvbnRyb2wgY2Vu dGVyIgpAQCAtMjQsMTMgKzI0LDE3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1jb250cm9sLWNlbnRlciIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTVmODJlY2Q1NTU0MTM2YzQ2MjI0OGVjNTM2M2I4 MmQ5NTM1OGIzOWRmZDY3ODcwMDZkODMwN2I0NTA0ZTUxNWUKK2NoZWNrc3VtPTdlNjQ1NWQ2NjM3 MzZjOTczMDE5ZTlkMGMyMjAwNGQxMGNlMzRkYWZkZDdkNjliZTIzOTAxN2JmODEyODM2YjkKIAog YnVpbGRfb3B0aW9ucz0iY2hlZXNlIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJjaGVlc2UiCisK IGRlc2Nfb3B0aW9uX2NoZWVzZT0iQWRkIHN1cHBvcnQgZm9yIGFkZGluZyB1c2VyIGFjY291bnQg aW1hZ2VzIHdpdGggeW91ciB3ZWJjYW0iCi1pZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4K LQlidWlsZF9vcHRpb25zX2RlZmF1bHQrPSIgY2hlZXNlIgotZmkKKworIyBuZWVkcyBYMTEgYW5k IHJlcXVpcmVzIGFsdGVyZWQgZmlsZXN5c3RlbQorZG9fY2hlY2soKSB7CisJOgorfQogCiBnbm9t ZS1jb250cm9sLWNlbnRlci1kZXZlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBkZXZl bG9wbWVudCBmaWxlcyIKCkZyb20gNGZlMzdkZmE5ZmYxYzFhNmI2ZDU4ZTMzOTI1MWIwNmM1ODcz MTAyMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDE1LzgzXSB0cmFja2VyOiB1cGRhdGUgdG8gMi4zLjQKCi0tLQogc3JjcGtn cy90cmFja2VyL3RlbXBsYXRlIHwgOSArKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyL3Rl bXBsYXRlIGIvc3JjcGtncy90cmFja2VyL3RlbXBsYXRlCmluZGV4IDM3MDc0Y2IzNDhkLi4xOTMz OGRiNDVlMSAxMDA2NDQKLS0tIGEvc3JjcGtncy90cmFja2VyL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvdHJhY2tlci90ZW1wbGF0ZQpAQCAtMSwyMiArMSwyMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAndHJhY2tlcicKIHBrZ25hbWU9dHJhY2tlcgotdmVyc2lvbj0yLjMuMQotcmV2aXNpb249Mgor dmVyc2lvbj0yLjMuNAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBl cj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EZG9jcz1mYWxzZSAtRGZ0cz10cnVlIC1EZnVuY3Rp b25hbF90ZXN0cz1mYWxzZQogIC1Eam91cm5hbD10cnVlIC1EbWFuPXRydWUgLURuZXR3b3JrX21h bmFnZXI9ZW5hYmxlZCAtRHN0ZW1tZXI9ZGlzYWJsZWQKICAtRHN5c3RlbWRfdXNlcl9zZXJ2aWNl cz1ubyIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCitob3N0 bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCiBtYWtlZGVw ZW5kcz0iZGJ1cy1kZXZlbCBsaWJnbGliLWRldmVsIGljdS1kZXZlbCBqc29uLWdsaWItZGV2ZWwK ICBsaWJzb3VwLWRldmVsIGxpYnhtbDItZGV2ZWwgc3FsaXRlLWRldmVsIE5ldHdvcmtNYW5hZ2Vy LWRldmVsCiAgYmFzaC1jb21wbGV0aW9uIgorY2hlY2tkZXBlbmRzPSJ0YXIiCiBzaG9ydF9kZXNj PSJQZXJzb25hbCBzZWFyY2ggdG9vbCBhbmQgc3RvcmFnZSBzeXN0ZW0iCiBtYWludGFpbmVyPSJP cnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL2xpdmUuZ25vbWUub3JnL1RyYWNrZXIiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vdHJhY2tlci8ke3ZlcnNpb24lLip9L3RyYWNrZXItJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1iNjc0ODcyNmU0NjVhZDJmNGQ5OTE1NjA2MzRiMWZkMGRmODg0MWYz ZDk4MWIzYjgzN2M0MTYyYWJlZGYwOGExCitjaGVja3N1bT01Nzc5NTIyNDRhYjk3N2M3OGIwYjg4 ZTJmNjNjNDE5N2VhYmExNmU0ZDY2YmZmNjkyYjdmNTg5OTNlMDY1MTZkCiAKIGlmIFsgIiRDUk9T U19CVUlMRCIgXTsgdGhlbgogCWhvc3RtYWtlZGVwZW5kcys9IiBkYnVzIgoKRnJvbSBkOTFlYzQy NzJjODdjOTRmZmVhYjg5OTBjYWIzNjU4YTA4MGFkYWJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAx MyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYvODNdIGZvbGtzOiB1 cGRhdGUgdG8gMC4xNC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgfCAgNyArKysrLS0t CiBzcmNwa2dzL2ZvbGtzL3RlbXBsYXRlIHwgMjggKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LQogMiBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAzOTgyZWNkZWM1 Ny4uYzYyNmI1ZWIyMGYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3No bGlicwpAQCAtODMzLDkgKzgzMywxMCBAQCBsaWJkbXIuc28uMC4xIGRlZXBpbi1tb3ZpZS1yZWJv cm4tMy4yLjVfMQogbGliZ2pzLnNvLjAgZ2pzLTEuNjUuMl8xCiBsaWJ0ZWxlcGF0aHktZ2xpYi5z by4wIHRlbGVwYXRoeS1nbGliLTAuMTUuNV8xCiBsaWJhY2NvdW50c3NlcnZpY2Uuc28uMCBhY2Nv dW50c3NlcnZpY2UtMC42LjRfMQotbGliZm9sa3Muc28uMjUgZm9sa3MtMC45LjVfMQotbGliZm9s a3MtdGVsZXBhdGh5LnNvLjI1IGZvbGtzLTAuOS41XzEKLWxpYmZvbGtzLWVkcy5zby4yNSBmb2xr cy0wLjkuNV8xCitsaWJmb2xrcy5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGliZm9sa3MtZHVtbXku c28uMjUgZm9sa3MtMC4xNC4wXzEKK2xpYmZvbGtzLXRlbGVwYXRoeS5zby4yNSBmb2xrcy0wLjE0 LjBfMQorbGliZm9sa3MtZWRzLnNvLjI1IGZvbGtzLTAuMTQuMF8xCiBsaWJuaWNlLnNvLjEwIGxp Ym5pY2UtMC4xLjBfMQogbGliZ3VwbnAtaWdkLTEuMC5zby40IGd1cG5wLWlnZC0wLjIuMF8xCiBs aWJ0ZWxlcGF0aHktbG9nZ2VyLnNvLjMgdGVsZXBhdGh5LWxvZ2dlci0wLjYuMF8xCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2ZvbGtzL3RlbXBsYXRlIGIvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQppbmRl eCAzMzEwYzU0ZmFkZC4uYjA3NmI5NGJlYTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZm9sa3MvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQpAQCAtMSwyMSArMSwyNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZm9sa3MnCiBwa2duYW1lPWZvbGtzCi12ZXJzaW9uPTAuMTMuMQot cmV2aXNpb249MgordmVyc2lvbj0wLjE0LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29u Ci1idWlsZF9oZWxwZXI9Z2lyCi1jb25maWd1cmVfYXJncz0iLURiX2x0bz1mYWxzZSAtRGxpYnNv Y2lhbHdlYi1iYWNrZW5kPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0 b29sIGdsaWItZGV2ZWwgdmFsYSBweXRob24gZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0gZXZvbHV0 aW9uLWRhdGEtc2VydmVyLWRldmVsIgorYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKK2NvbmZpZ3Vy ZV9hcmdzPSItRGJfbHRvPWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0 b29sIGdsaWItZGV2ZWwgcHl0aG9uMyBweXRob24zLWRidXNtb2NrCisgZXZvbHV0aW9uLWRhdGEt c2VydmVyLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0icmVhZGxpbmUt ZGV2ZWwgdGVsZXBhdGh5LWdsaWItZGV2ZWwgemVpdGdlaXN0LWRldmVsCi0gbGliZ2VlMDgtZGV2 ZWwgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIHRyYWNrZXItZGV2ZWwiCisgbGliZ2VlMDgt ZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIHRyYWNrZXItZGV2ZWwKKyAkKHZvcHRf aWYgZ2lyIHZhbGEtZGV2ZWwpIgogZGVwZW5kcz0iemVpdGdlaXN0Igogc2hvcnRfZGVzYz0iR09i amVjdCBMaWJyYXJ5IHRvIGFnZ3JlZ2F0ZSBwZW9wbGUgaW50byBtZXRhY29udGFjdHMiCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0 cy9Gb2xrcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTNkZjFjNjYzYjgyZmUy MTFhZWFkMmIzMWNhZTFmYzQxZDEyNGU4NTQzNjM3NTc2MmY2NzQ1YzQ1YmE0NmFhNWQKK2NoZWNr c3VtPWQ2ZTc3OGRhNjM3ZDNiMzNmZDlhNmI0NTExNWU4MTU3ZDg4NjgyMTFkYzA4Yjk0M2QxMDc1 YjVlYjcyODJiYjkKKworYnVpbGRfb3B0aW9ucz0iZ2lyIgoraWYgWyAteiAiJENST1NTX0JVSUxE IiBdOyB0aGVuCisJYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCitmaQogCiBmb2xrcy1kZXZl bF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7bWFrZWRlcGVuZHN9ICR7c291cmNlcGtnfT49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKQEAgLTI0LDcgKzMwLDkgQEAgZm9sa3MtZGV2ZWxfcGFja2Fn ZSgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJ dm1vdmUgInVzci9saWIvKi5zbyIKLQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKLQkJdm1vdmUgdXNy L3NoYXJlL2dpci0xLjAKKwkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KKwkJCXZt b3ZlIHVzci9zaGFyZS9naXItMS4wCisJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQorCQlmaQogCX0K IH0KCkZyb20gYTJlOTJlMDk2YWMwMTYyOTg4ZTZlYTNjMTFiMGQyMjMzZmJlYTE3ZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDE3LzgzXSBkY29uZi1lZGl0b3I6IHVwZGF0ZSB0byAzLjM2LjQKCi0tLQogc3JjcGtncy9kY29u Zi1lZGl0b3IvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Rjb25mLWVkaXRvci90 ZW1wbGF0ZSBiL3NyY3BrZ3MvZGNvbmYtZWRpdG9yL3RlbXBsYXRlCmluZGV4IGRlMjUwYmJjOGE5 Li44ODllNzk0ZTZiMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTMgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2Rjb25mLWVkaXRvcicKIHBrZ25hbWU9ZGNvbmYtZWRpdG9yCi12 ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM2LjQKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1l c29uCi1ob3N0bWFrZWRlcGVuZHM9ImRvY2Jvb2steHNsIGdsaWItZGV2ZWwgbGlieHNsdCBwa2ct Y29uZmlnIHZhbGEiCitob3N0bWFrZWRlcGVuZHM9ImRvY2Jvb2steHNsIGdsaWItZGV2ZWwgbGli eHNsdCBwa2ctY29uZmlnIHZhbGEgZ2V0dGV4dCIKIG1ha2VkZXBlbmRzPSJkY29uZi1kZXZlbCBn dGsrMy1kZXZlbCIKIHNob3J0X2Rlc2M9Ikxvdy1sZXZlbCBjb25maWd1cmF0aW9uIHN5c3RlbSAt IEdUSysgZWRpdG9yIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtp Lmdub21lLm9yZy9Qcm9qZWN0cy9kY29uZiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTcyZWVkMDU2NzA5MTdmOGU0MzIwMGU0MGNjYzZiZTYwMjExZjBhODdiMDE3NTM0ZWFjMWZk NmM3MTczYTA2OTMKK2NoZWNrc3VtPTNlYzMwOWJiYzkyMGIxNWMyYTU2ODNlMWE0OTYyYWJmNjkx MWE4NzYyYzhhMTEzYzRkNzk0ZjdlMGVhNTNlNzkKCkZyb20gYjJiYzQwMzgzNWY2NWZkZDdjZDBj ZDZhMzM1ZWUzNjlkOTVmM2E0YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE4LzgzXSBkZXZoZWxwOiB1cGRhdGUgdG8gMy4z Ny4xCgotLS0KIHNyY3BrZ3MvZGV2aGVscC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2RldmhlbHAvdGVtcGxhdGUgYi9zcmNwa2dzL2RldmhlbHAvdGVtcGxhdGUKaW5kZXggYTFjMmRj YmI3NjIuLjljNWM0MDc2M2M5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2RldmhlbHAvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZGV2aGVscCcKIHBrZ25hbWU9ZGV2aGVscAotdmVyc2lvbj0zLjM2LjEKK3Zl cnNpb249My4zNy4xCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxl PW1lc29uCkBAIC0xMSw3ICsxMSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9EZXZoZWxwIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6 IgotY2hlY2tzdW09NGNmOGVjOTMwMmJjNGE3OWUwMWFjNTNiZDljOGI5NWE1OTZmNzFmMzUzNTFm NDhiNjMyNjMyMjdmMDlhOGEzZAorY2hlY2tzdW09ODFmZmJiOWUxMzdjZDAwMzFhNGY0MzA0YTEy NDRkMGI0MzI4ZTRhN2MwMGQ3NDlhOGZjMGUyYmJhYTMwMDVmOQogCiBkZXZoZWxwLWRldmVsX3Bh Y2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgoKRnJvbSAyYmRk NGY2ZWVjMjhmYzY3NDY5OTU5NTAyYWI5NGE3NGNkZDk0ZGJjIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvODNdIGdub21l LXNoZWxsOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2dub21lLXNoZWxsL3RlbXBs YXRlIHwgMTEgKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ25vbWUtc2hlbGwvdGVtcGxhdGUKaW5kZXggOTZjNWI4MGExOTQuLjBiNGY3MGI4 ODU1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ25vbWUtc2hlbGwvdGVtcGxhdGUKQEAgLTEsMTIgKzEsMTIgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2dub21lLXNoZWxsJwogcGtnbmFtZT1nbm9tZS1zaGVsbAotdmVyc2lvbj0zLjM0LjEK K3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hl bHBlcj1naXIKIGNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWQ9ZmFsc2UiCiBob3N0bWFrZWRlcGVu ZHM9ImdvYmplY3QtaW50cm9zcGVjdGlvbiBndGstZG9jIGxpYnhzbHQgcGtnLWNvbmZpZyBweXRo b24zIHNhc3NjCi0gYXNjaWlkb2MgcGVybCBnbGliLWRldmVsIG11dHRlci1kZXZlbCIKKyBhc2Np aWRvYyBwZXJsIGdsaWItZGV2ZWwgbXV0dGVyLWRldmVsIGdldHRleHQgZ2pzLWRldmVsIgogbWFr ZWRlcGVuZHM9ImF0LXNwaTItYXRrIGNhcmlib3UtZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2VydmVy LWRldmVsIGZvbGtzLWRldmVsCiAgZ2NyLWRldmVsIGdqcy1kZXZlbCBnbm9tZS1ibHVldG9vdGgt ZGV2ZWwgZ25vbWUtY29udHJvbC1jZW50ZXItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbAogIGdu b21lLW1lbnVzLWRldmVsIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwgZ3N0cmVhbWVy MS1kZXZlbCBndGsrMy1kZXZlbApAQCAtMjEsNCArMjEsOSBAQCBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVT aGVsbCIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01F L2dub21lLXNoZWxsL2dub21lLTMtMzAvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPWNjZDg2NTU5YjljODk3YzIxOWQyZDJlYmZkYjg0MTNlZmE0YzFiZWU4NDY0MjdjNzUw Y2I4YTMwMWIzZjZkMWUKK2NoZWNrc3VtPTA2OWQxMTE1NmE2MTg2NTU2NGFjN2MwNjQ5YmM2MGQx ODZkZDgzOGJhMGYxNzQ2ZDM1M2FiYTJiMThiYjUyODkKKworIyBuZWVkcyBYCitkb19jaGVjaygp IHsKKwk6Cit9CgpGcm9tIDc2YmE3M2Y4N2U0ZDkyYzFhM2ExMjk1MDMzNGU4ZTUwYjliYjNiYWMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAyMC84M10gZ2RtOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2dkbS90 ZW1wbGF0ZSB8IDMxICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAxOSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2dkbS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2RtL3RlbXBsYXRlCmluZGV4IGJiNWI0ODY5MmQ0 Li5kOTQ5OWIzMzYxNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nZG0vdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nZG0vdGVtcGxhdGUKQEAgLTEsMjcgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2dkbScKIHBrZ25hbWU9Z2RtCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjkwCiByZXZp c2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKLWNv bmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQotIC0tZGlzYWJs ZS1zY2hlbWFzLWNvbXBpbGUgLS1kaXNhYmxlLXN0YXRpYyAtLXdpdGgtZGVmYXVsdC1wYW0tY29u ZmlnPWFyY2gKLSAtLXdpdGgtYXQtc3BpLXJlZ2lzdHJ5ZC1kaXJlY3Rvcnk9L3Vzci9saWJleGVj IC0td2l0aG91dC10Y3Atd3JhcHBlcnMKLSAtLXdpdGgtc2NyZWVuc2hvdC1kaXI9L3Zhci9saWIv Z2RtL2dyZWV0ZXIgLS1zYmluZGlyPS91c3IvYmluIC0td2l0aG91dC1wbHltb3V0aAotIC0td2l0 aC14YXV0aC1kaXI9L3J1bi9nZG0gLS13aXRoLXBpZC1maWxlPS9ydW4vZ2RtL2dkbS5waWQKLSAt LWRpc2FibGUtc3lzdGVtZC1qb3VybmFsIC0td2l0aC1pbml0aWFsLXZ0PTcgLS1lbmFibGUtd2F5 bGFuZC1zdXBwb3J0IgorYnVpbGRfc3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSIKKyAtRGRl ZmF1bHQtcGFtLWNvbmZpZz1hcmNoIC1EYXQtc3BpLXJlZ2lzdHJ5ZC1kaXI9L3Vzci9saWJleGVj CisgLUR0Y3Atd3JhcHBlcnM9ZmFsc2UgLURzY3JlZW5zaG90LWRpcj0vdmFyL2xpYi9nZG0vZ3Jl ZXRlcgorIC1EcGx5bW91dGg9ZGlzYWJsZWQgLUR4YXV0aC1kaXI9L3J1bi9nZG0gLURwaWQtZmls ZT0vcnVuL2dkbS9nZG0ucGlkCisgLURzeXN0ZW1kLWpvdXJuYWw9ZmFsc2UgLURpbml0aWFsLXZ0 PTcgLUR3YXlsYW5kLXN1cHBvcnQ9dHJ1ZQorIC1Ec2VsaW51eD1kaXNhYmxlZCAtRGxpYmF1ZGl0 PWRpc2FibGVkCisgLURzeXN0ZW1kc3lzdGVtdW5pdGRpcj0vdG1wIC1Ec3lzdGVtZHVzZXJ1bml0 ZGlyPS90bXAiCiBob3N0bWFrZWRlcGVuZHM9ImRjb25mIGdldHRleHQgaXRzdG9vbCBwa2ctY29u ZmlnIgogbWFrZWRlcGVuZHM9ImFjY291bnRzc2VydmljZS1kZXZlbCBlbG9naW5kLWRldmVsIGdl dHRleHQtZGV2ZWwgZ2xpYi1kZXZlbAogIGlzby1jb2RlcyBsaWJTTS1kZXZlbCBsaWJjYW5iZXJy YS1kZXZlbCBuc3MtZGV2ZWwgcGFtLWRldmVsIHVwb3dlci1kZXZlbCIKLWRlcGVuZHM9Imdub21l LXNldHRpbmdzLWRhZW1vbiBnbm9tZS1zaGVsbCB4b3JnLXNlcnZlciB4b3JnLXNlcnZlci14d2F5 bGFuZAotIHhyZGIiCitkZXBlbmRzPSJnbm9tZS1zZXR0aW5ncy1kYWVtb24gZ25vbWUtc2hlbGwg Z25vbWUtc2Vzc2lvbiBnbm9tZS10aGVtZXMtZXh0cmEKKyBnc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzIHhvcmctc2VydmVyIHhvcmctc2VydmVyLXh3YXlsYW5kIHhyZGIiCiBjaGVja2RlcGVuZHM9 ImNoZWNrLWRldmVsIgogc2hvcnRfZGVzYz0iR05PTUUgRGlzcGxheSBNYW5hZ2VyIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9H RE0iCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lODVkZjY1N2FhOGQ5MzYxYWY0 ZmIxMjIwMTRkOGYxMjNhOTNiZmU0NWE3NjYyZmJhMmIzNzNkODM5ZGJkOGQzCitjaGVja3N1bT01 M2MyOTExZThiNzI5ODY0MmY0MWJiZDU3MTlmMzg1ZTRmZjczNDQwNjEyN2EwMDJiM2YxNTczMjE2 YTg0ZTEyCiAKIGNvbmZfZmlsZXM9IgogCS9ldGMvZ2RtL2N1c3RvbS5jb25mCkBAIC00MywxMCAr NDQsMTYgQEAgaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0i IGdsaWItZGV2ZWwgcGFtLWRldmVsIgogZmkKIAorcHJlX2NvbmZpZ3VyZSgpIHsKKwkjIG9ubHkg dXNlZCB0byBndWVzcyB1bml0IGZpbGUgaW5zdGFsbGF0aW9uIHBhdGgKKwl2c2VkIC1pICdzLF5z eXN0ZW1kX2RlcCwjc3lzdGVtZF9kZXAsJyBtZXNvbi5idWlsZAorfQorCiBwb3N0X2luc3RhbGwo KSB7CiAJdmluc3RhbGwgJEZJTEVTRElSL1hzZXNzaW9uIDc1NSBldGMvZ2RtCiAKIAl2c2VkIC1p ICJzL3BhbV9zeXN0ZW1kXC5zby9wYW1fZWxvZ2luZC5zby8iICRERVNURElSL2V0Yy9wYW0uZC8q CisJcm0gLXJmICR7REVTVERJUn0vdG1wCiAKIAkjIHJ1bml0IHNlcnZpY2UKIAl2c3YgZ2RtCkBA IC02MCw3ICs2Nyw3IEBAIGxpYmdkbV9wYWNrYWdlKCkgewogfQogCiBnZG0tZGV2ZWxfcGFja2Fn ZSgpIHsKLQlkZXBlbmRzPSJsaWJnZG0+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5k cz0ibGliZ2RtPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IGVsb2dpbmQtZGV2ZWwiCiAJc2hvcnRf ZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1 c3IvaW5jbHVkZQoKRnJvbSBjYjhkNjdjNjI2NDk0NTE1Y2RhNjUyOGJjMjE5ZmQyNjBmMGZlYzA5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMjEvODNdIGdub21lLXNlc3Npb246IHVwZGF0ZSB0byAzLjM3LjAKCi0tLQogc3Jj cGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2ggfCAxNCArKysr KysrKysrKysrKwogc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlICAgICAgICAgICAgICAg ICAgICAgfCAxMCArKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXNzaW9u L3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LXNlc3Npb24vcGF0Y2hlcy9uby1zeXN0ZW1kLWRlcC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtc2Vz c2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi44ZTU1YTBmNzk4NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv Z25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoCkBAIC0wLDAgKzEsMTQg QEAKKy0tLSBtZXNvbi5idWlsZAorKysrIG1lc29uLmJ1aWxkCitAQCAtMTMwLDEwICsxMzAsNyBA QCBpZiBlbmFibGVfc3lzdGVtZCBvciBlbmFibGVfY29uc29sZWtpdAorIAorICAgIyBDaGVjayBm b3Igc3lzdGVtZAorICAgaWYgZW5hYmxlX3N5c3RlbWQKKy0gICAgc3lzdGVtZF9kZXAgPSBkZXBl bmRlbmN5KCdzeXN0ZW1kJywgdmVyc2lvbjogJz49IDI0MicsIHJlcXVpcmVkOiB0cnVlKQorLSAg ICBzeXN0ZW1kX3VzZXJ1bml0ZGlyID0gc3lzdGVtZF9kZXAuZ2V0X3BrZ2NvbmZpZ192YXJpYWJs ZSgnc3lzdGVtZHVzZXJ1bml0ZGlyJywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lX3ZhcmlhYmxlOiBbJ3ByZWZpeCcs IHByZWZpeF0pCistCisrICAgIHN5c3RlbWRfdXNlcnVuaXRkaXIgPSAnL3RtcCcKKyAgICAgbGli c3lzdGVtZF9kZXAgPSBkZXBlbmRlbmN5KCdsaWJzeXN0ZW1kJywgdmVyc2lvbjogJz49IDIwOScs IHJlcXVpcmVkOiBmYWxzZSkKKyAgICAgc2Vzc2lvbl9iaW5fZGVwcyArPSBsaWJzeXN0ZW1kX2Rl cAorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlIGIvc3JjcGtn cy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCmluZGV4IDQ0NDRmMTYyYmYxLi4wN2NhNzYyNjIyOCAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z25vbWUtc2Vzc2lvbi90ZW1wbGF0ZQpAQCAtMSw5ICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLXNlc3Npb24nCiBwa2duYW1lPWdub21lLXNlc3Npb24KLXZlcnNpb249My4zNC4x Cit2ZXJzaW9uPTMuMzcuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWNvbmZpZ3Vy ZV9hcmdzPSItRHN5c3RlbWRfam91cm5hbD1mYWxzZSIKK2NvbmZpZ3VyZV9hcmdzPSItRHN5c3Rl bWRfam91cm5hbD1mYWxzZSAtRHN5c3RlbWRfc2Vzc2lvbj1kaXNhYmxlIgogaG9zdG1ha2VkZXBl bmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgeG1sdG8iCiBtYWtlZGVwZW5kcz0i ZWxvZ2luZC1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGd0ayszLWRldmVsIGpzb24tZ2xpYi1k ZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliSUNFLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2 ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwKQEAgLTE1LDQgKzE1LDggQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9nbm9tZS1zZXNzaW9uIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09ZDc4MDFmZTJkNWE3NTFiMTljYjU4MDgxNzcxMzE2YTc2YWFiZDVjNTUwY2Q1OGQ0ZTRj NmE1YTRlZDM1NjY2MAorY2hlY2tzdW09Y2IxNDBmMmI4ZWU3NjhmZjhiM2RjZTNkZGI0NzllNzFl OTUxMzhlOTA0YzgzNDNhMzhjNjBhMmQxZTg1Zjk4ZgorCitwb3N0X2luc3RhbGwoKSB7CisJcm0g LXJmICR7REVTVERJUn0vdG1wCit9CgpGcm9tIGM0ZGVhMmY5OWRhNjE1NDM1ZGJmZDRlNTdkNTgy ZTQ0OTU0MmE0NTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAyMi84M10gZ25vbWUtb25saW5lLWFjY291bnRzOiB1cGRhdGUg dG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2dub21lLW9ubGluZS1hY2NvdW50cy90ZW1wbGF0ZSB8 IDEyICsrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW9ubGluZS1hY2NvdW50cy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCmluZGV4IGQ2YTIy ZDlkYTcyLi4yOTk4MGQ0MzQyNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNj b3VudHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxh dGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1vbmxpbmUtYWNj b3VudHMnCiBwa2duYW1lPWdub21lLW9ubGluZS1hY2NvdW50cwotdmVyc2lvbj0zLjM2LjAKK3Zl cnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogYnVp bGRfaGVscGVyPSJnaXIiCkBAIC0xMSw3ICsxMSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRf ZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQogIC0tZW5hYmxlLW93bmNsb3VkIC0tZW5hYmxlLXdp bmRvd3MtbGl2ZSAtLWVuYWJsZS1wb2NrZXQKICAtLWVuYWJsZS1sYXN0Zm0gLS1lbmFibGUtbWVk aWEtc2VydmVyIgogaG9zdG1ha2VkZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0LWRldmVsIGds aWItZGV2ZWwgZ25vbWUtY29tbW9uCi0gbGlieHNsdCBwa2ctY29uZmlnICQodm9wdF9pZiB2YWxh IHZhbGEpIgorIGxpYnhzbHQgcGtnLWNvbmZpZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRl cGVuZHM9Imdjci1kZXZlbCBndGsrMy1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGlibm90aWZ5LWRl dmVsIGxpYnNlY3JldC1kZXZlbAogIGxpYnNvdXAtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgcmVzdC1k ZXZlbCB0ZWxlcGF0aHktZ2xpYi1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIgogZGVwZW5kcz0iaGlj b2xvci1pY29uLXRoZW1lIgpAQCAtMjAsMTAgKzIwLDEwIEBAIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21lT25saW5lQWNj b3VudHMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xYzhmNjI5OTA4MzNjYTQx MTg4ZGJiODBjNWU5OWQ5OWI1N2E2MjYwOGNhNjc1YmJjZDM3YmMyMjQ0NzQyZjJlCitjaGVja3N1 bT05ZjY5ODJjODk2ZTYyMzVhMmU4NWI4YTQ5N2M3YmY2M2E0YTI4OGI1Njc4ZGI0MGRjMzczNTE1 ZWZiZWRiMWJiCiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZh dWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIgogCiBnbm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBl bmRzPSJndGsrMy1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBA IC0zNSw4ICszNSw2IEBAIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZlbF9wYWNrYWdlKCkgewog CQl2bW92ZSB1c3IvbGliL2dvYS0xLjAKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRo ZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRp b25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9t IDljNjM4YzQzMmZmZTIwMWY2NDViOWUwNjg5ZWY0ZDUyZDNlMjIyNzEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMy84M10g Z25vbWUtaW5pdGlhay1zZXR1cDogdXBkYXRlIHRvIDMuMzcuOTEKCi0tLQogc3JjcGtncy9nbm9t ZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlIHwgMTEgKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9n bm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVw L3RlbXBsYXRlCmluZGV4IGFiYTVhMDk0YzI4Li4wNmM5YTA4NTlkZCAxMDA2NDQKLS0tIGEvc3Jj cGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtaW5p dGlhbC1zZXR1cC90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnZ25vbWUtaW5pdGlhbC1zZXR1cCcKIHBrZ25hbWU9Z25vbWUtaW5pdGlhbC1zZXR1cAotdmVy c2lvbj0zLjM0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy45MQorcmV2aXNpb249MQogYnVp bGRfc3R5bGU9bWVzb24KLWNvbmZpZ3VyZV9hcmdzPSItRHNvZnR3YXJlLXNvdXJjZXM9ZGlzYWJs ZWQgLURzeXN0ZW1kPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2 ZWwiCitjb25maWd1cmVfYXJncz0iLURzb2Z0d2FyZS1zb3VyY2VzPWRpc2FibGVkIC1EcGFyZW50 YWxfY29udHJvbHM9ZGlzYWJsZWQKKyAtRHN5c3RlbWQ9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgZ2xpYi1kZXZlbCBnZXR0ZXh0IgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5h Z2VyLWRldmVsIGFjY291bnRzc2VydmljZS1kZXZlbCBsaWJnbGliLWRldmVsCiAgZ25vbWUtZGVz a3RvcC1kZXZlbCBjaGVlc2UtZGV2ZWwgbGliZ3dlYXRoZXItZGV2ZWwgd2Via2l0Mmd0ay1kZXZl bAogIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZlbCBnZG0tZGV2ZWwgbGlicHdxdWFsaXR5LWRl dmVsCkBAIC0xNyw0ICsxOCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvRGVzaWduL09TL0luaXRpYWxTZXR1cCIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWU3MWYxMGVmNmI2MzFjZDkyZmZkZTc3NGU0MTMwYjMyYjI0OTRi NGRmNWVmMjg4Mzc1ZDhiMTk1N2VlYWJmYTEKK2NoZWNrc3VtPWQ0YTcxMGQ1MWNkNjg2MjA4Nzk5 MWE1ZTU1ZDAxYmJmOGM5OGNmOTc5ZDZhOTg4YmRkN2I1NTBkZDk1YjZlODgKCkZyb20gNmU4ODgx ZmNiNzY1ZjAzN2JmYWQ5OGRiMGE0ZGI5NDg5MjE1ZTljOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI0LzgzXSB4ZGctZGVz a3RvcC1wb3J0YWwtZ3RrOiBidW1wCgotLS0KIHNyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0 ay90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1w bGF0ZSBiL3NyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0ZQppbmRleCBkZWUw ZTQ2MzM4Ni4uNTU4Yzc1ZjUzOWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveGRnLWRlc2t0b3AtcG9y dGFsLWd0ay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd4ZGctZGVza3RvcC1w b3J0YWwtZ3RrJwogcGtnbmFtZT14ZGctZGVza3RvcC1wb3J0YWwtZ3RrCiB2ZXJzaW9uPTEuNi4w Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0 bWFrZWRlcGVuZHM9InBrZy1jb25maWcgbGlieHNsdCBnbGliLWRldmVsIHhkZy1kZXNrdG9wLXBv cnRhbCBnZXR0ZXh0IgogbWFrZWRlcGVuZHM9ImZsYXRwYWstZGV2ZWwgZ3RrKzMtZGV2ZWwgbGli eHNsdC1kZXZlbCBsaWJnbGliLWRldmVsCgpGcm9tIDFkNWM2MWE4MmYyMjBmMzM2ODA5ZTM2MDg2 MWRiNTM0OWYyNWJlZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNS84M10gZ25vbWUtc2hlbGwtZXh0ZW5zaW9uczogdXBk YXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBs YXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBs YXRlIGIvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRlCmluZGV4IDk3MTY4 YjQwZjY2Li5mMmU2NzhlYmJjZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRl bnNpb25zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1w bGF0ZQpAQCAtMSwxNSArMSwxNSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2hlbGwt ZXh0ZW5zaW9ucycKIHBrZ25hbWU9Z25vbWUtc2hlbGwtZXh0ZW5zaW9ucwotdmVyc2lvbj0zLjM0 LjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHls ZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZXh0ZW5zaW9uX3NldD1hbGwiCi1ob3N0bWFrZWRl cGVuZHM9InBrZy1jb25maWciCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2V0dGV4dCIK IGRlcGVuZHM9Imdub21lLXNoZWxsPj0ke3ZlcnNpb259IG5hdXRpbHVzIHVuemlwIgogc2hvcnRf ZGVzYz0iRXh0ZW5zaW9ucyBmb3IgR05PTUUgc2hlbGwsIGluY2x1ZGluZyBjbGFzc2ljIG1vZGUi CiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1By b2plY3RzL0dub21lU2hlbGwvRXh0ZW5zaW9ucyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPWIwYWQ1MTE0M2IxYmY0MGRlZjRhMTBmOGZkMGFiMGZmYjQ3MjE4MzA0ODAwNzk0ZTYy Y2FkZDI5ZDBhY2M3NWIKK2NoZWNrc3VtPTM2ZjJjNWQ5MDZlMDdkM2YxZGM5OGJlYjQ0ZjVjNmJk ZjQ4MzE0ZmNlMzY5Y2M3OTUyYzhiMTk3ODAwNDc4OTkKCkZyb20gOTg3NjhiZGFjYTY5YTlmNTE3 OGE0Yjg3OTg1MDg5NjNhNGMxY2EwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI2LzgzXSBuYXV0aWx1czogdXBkYXRlIHRv IDMuMzcuOTAKCi0tLQogc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUgYi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCmlu ZGV4IDUzN2E4NTE5NzNmLi4wZTZjNDMxMzg4NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9uYXV0aWx1 cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbmF1dGlsdXMnCiBwa2duYW1lPW5hdXRpbHVzCi12ZXJz aW9uPTMuMzYuMS4xCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1l c29uCiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTExLDEzICsxMSwxMyBAQCBtYWtlZGVwZW5kcz0i ZXhlbXBpLWRldmVsIGdub21lLWF1dG9hci1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGd0aysz LWRldmVsCiAgbGliWDExLWRldmVsIGxpYnhtbDItZGV2ZWwgdHJhY2tlci1kZXZlbCBnc3QtcGx1 Z2lucy1iYXNlMS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBnc2V0dGluZ3Mt ZGVza3RvcC1zY2hlbWFzIGhpY29sb3ItaWNvbi10aGVtZQogIHRyYWNrZXItbWluZXJzIHRyYWNr ZXIiCi1jaGVja2RlcGVuZHM9InRyYWNrZXIiCitjaGVja2RlcGVuZHM9InRyYWNrZXIgdHJhY2tl ci1taW5lcnMiCiBzaG9ydF9kZXNjPSJHTk9NRSBmaWxlIG1hbmFnZXIiCiBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9y Zy9OYXV0aWx1cyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv bjo6NH0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWY5MjUyZjUwODIx MWQ5ZjM2OGE0OWRiNjk3ODkwZjg5NWQwODBmMDk1OTBhZWNhZjMzODAzYTUxOWRlZjdiZGUKK2No ZWNrc3VtPTZmNzAxNTMwNTZkYWNlYWY5NGQ1Y2M5YzYwYThhYTk4MmRkNjE5M2IxNGE5MDU2MGZm YTc0MGM2Njg2MTU1MjUKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZh dWx0PSJnaXIiCgpGcm9tIGMzNDIzMmU0OTIzZTczMGMyZGI1Y2JkOGNiYWZiMmI3MTA1OTE2MmQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAyNy84M10gZ25vbWUtbWFwczogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtn cy9nbm9tZS1tYXBzL3RlbXBsYXRlIHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LW1hcHMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUKaW5kZXggMDMwMGJl NjA1OTkuLjlhOWU5OGY1MDAyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlCkBAIC0xLDE2ICsxLDE2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1tYXBzJwogcGtnbmFtZT1nbm9tZS1tYXBzCi12ZXJz aW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNv bgotaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGdvYmplY3QtaW50cm9zcGVjdGlvbiBpbnRs dG9vbCBwa2ctY29uZmlnIEFwcFN0cmVhbSIKK2J1aWxkX2hlbHBlcj0iZ2lyIgoraG9zdG1ha2Vk ZXBlbmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgQXBwU3RyZWFtIgogbWFrZWRl cGVuZHM9ImZvbGtzLWRldmVsIGdlb2NsdWUyLWRldmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnanMt ZGV2ZWwKLSBnbm9tZS1kZXNrdG9wLWRldmVsIGxpYmNoYW1wbGFpbi1kZXZlbCByZXN0LWRldmVs IgorIGdub21lLWRlc2t0b3AtZGV2ZWwgbGliY2hhbXBsYWluLWRldmVsIHJlc3QtZGV2ZWwgbGli aGFuZHkxLWRldmVsIgogZGVwZW5kcz0iZ2VvY2x1ZTIgZ2ZiZ3JhcGggZ2pzIgogc2hvcnRfZGVz Yz0iR05PTUUgbWFwcyBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9NYXBzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6 IgotY2hlY2tzdW09MWEzMmVmZDk2YWQ4OThmNzdhNjM2ZDJkMDQ2M2Q3NTcwMDliNGI4MTIyNTlj ODlmZmRjYjkxZDZhZmMwNTJmOQotbm9jcm9zcz0iZXZvbHV0aW9uLWRhdGFzZXJ2ZXIgY3Jvc3Mg Z2lyIGRvZXNuJ3Qgd29yayIKK2NoZWNrc3VtPTdjMTAxMGYwYWY4OWM5YmVkYzgzY2YzNGZlNDJl NGI2NDRkZmEwMGRkNzgzZWU0MjQ3ZjA2NmUzMTM4YWQwZGQKCkZyb20gNzg0ZDllZmI4NjM4NmY4 NmRiM2IyODc3M2RlMmJmNWMxOTY3ZWYwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI4LzgzXSBldm9sdXRpb246IHVwZGF0 ZSB0byAzLjM3LjkwCgotLS0KIC4uLi9ldm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0 cy5jbWFrZSB8IDQ1IC0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVz L2ljb252LWRldGVjdC5oICAgICAgICB8ICA1IC0tLQogc3JjcGtncy9ldm9sdXRpb24vdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgIHwgMzMgKysrLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdl ZCwgNiBpbnNlcnRpb25zKCspLCA3NyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmgKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtl IGIvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZQpkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGJlNTViNDIwNzAuLjAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UKKysrIC9k ZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0jIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IENN YWtlIGJlY2F1c2UgaXQgZGV0ZWN0ZWQgVFJZX1JVTigpIGNvbW1hbmRzCi0jIGluIGNyb3NzY29t cGlsaW5nIG1vZGUuIEl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQgQ01ha2UgcnVu LgotIyBDb3B5IGl0IHRvIGEgc2FmZSBsb2NhdGlvbiwgc2V0IHRoZSB2YXJpYWJsZXMgdG8gYXBw cm9wcmlhdGUgdmFsdWVzCi0jIGFuZCB1c2UgaXQgdGhlbiB0byBwcmVzZXQgdGhlIENNYWtlIGNh Y2hlICh1c2luZyAtQykuCi0KLQotIyBfY29ycmVjdF9pY29udl9FWElUQ09ERQotIyAgICBpbmRp Y2F0ZXMgd2hldGhlciB0aGUgZXhlY3V0YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBydW4g b24gaXRzCi0jICAgIHRhcmdldCBwbGF0Zm9ybS4gSWYgc28sIHNldCBfY29ycmVjdF9pY29udl9F WElUQ09ERSB0bwotIyAgICB0aGUgZXhpdCBjb2RlIChpbiBtYW55IGNhc2VzIDAgZm9yIHN1Y2Nl c3MpLCBvdGhlcndpc2UgZW50ZXIgIkZBSUxFRF9UT19SVU4iLgotIyBUaGUgX2NvcnJlY3RfaWNv bnZfQ09NUElMRUQgdmFyaWFibGUgaG9sZHMgdGhlIGJ1aWxkIHJlc3VsdCBmb3IgdGhpcyBUUllf UlVOKCkuCi0jIAotIyBTb3VyY2UgZmlsZSAgIDogL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNl cnZlci0zLjI2LjAvYnVpbGQvQ01ha2VGaWxlcy9DTWFrZVRtcC9zcmMuYwotIyBFeGVjdXRhYmxl ICAgIDogL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvYnVpbGQvQ01ha2VG aWxlcy9jbVRDXzMxNWVlLV9jb3JyZWN0X2ljb252X0VYSVRDT0RFCi0jIFJ1biBhcmd1bWVudHMg OiAKLSMgICAgQ2FsbGVkIGZyb206IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1bGVzL0No ZWNrQ1NvdXJjZVJ1bnMuY21ha2UKLSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRkaXIvZXZv bHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIF9jb3JyZWN0 X2ljb252X0VYSVRDT0RFIAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJv bSBUUllfUlVOIiBGT1JDRSkKLXNldChfY29ycmVjdF9pY29udl9FWElUQ09ERV9fVFJZUlVOX09V VFBVVAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBG T1JDRSkKLQotCi0jIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERQotIyAgICBpbmRpY2F0ZXMgd2hl dGhlciB0aGUgZXhlY3V0YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBydW4gb24gaXRzCi0j ICAgIHRhcmdldCBwbGF0Zm9ybS4gSWYgc28sIHNldCBIQVZFX0xLU1RSRlRJTUVfRVhJVENPREUg dG8KLSMgICAgdGhlIGV4aXQgY29kZSAoaW4gbWFueSBjYXNlcyAwIGZvciBzdWNjZXNzKSwgb3Ro ZXJ3aXNlIGVudGVyICJGQUlMRURfVE9fUlVOIi4KLSMgVGhlIEhBVkVfTEtTVFJGVElNRV9DT01Q SUxFRCB2YXJpYWJsZSBob2xkcyB0aGUgYnVpbGQgcmVzdWx0IGZvciB0aGlzIFRSWV9SVU4oKS4K LSMgCi0jIFNvdXJjZSBmaWxlICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMu MjYuMC9idWlsZC9DTWFrZUZpbGVzL0NNYWtlVG1wL3NyYy5jCi0jIEV4ZWN1dGFibGUgICAgOiAv YnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL2Nt VENfZDI4OTctSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFCi0jIFJ1biBhcmd1bWVudHMgOiAKLSMg ICAgQ2FsbGVkIGZyb206IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1bGVzL0NoZWNrQ1Nv dXJjZVJ1bnMuY21ha2UKLSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRkaXIvZXZvbHV0aW9u LWRhdGEtc2VydmVyLTMuMjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIEhBVkVfTEtTVFJGVElN RV9FWElUQ09ERSAKLSAgICAgMAotICAgICBDQUNIRSBJTlRFUk5BTCAiUmVzdWx0IGZyb20gVFJZ X1JVTiIgRk9SQ0UpCi1zZXQoIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERV9fVFJZUlVOX09VVFBV VAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JD RSkKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0Lmgg Yi9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggNDZmNDc2ZDViYzkuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZXZv bHV0aW9uL2ZpbGVzL2ljb252LWRldGVjdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBA Ci0vKiBUaGlzIGlzIGFuIGF1dG8tZ2VuZXJhdGVkIGhlYWRlciwgRE8gTk9UIEVESVQhICovCi0K LSNkZWZpbmUgSUNPTlZfSVNPX0RfRk9STUFUICJpc28tJWQtJWQiCi0jZGVmaW5lIElDT05WX0lT T19TX0ZPUk1BVCAiaXNvLSVkLSVzIgotI2RlZmluZSBJQ09OVl8xMDY0NiAiaXNvLTEwNjQ2Igpk aWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUgYi9zcmNwa2dzL2V2b2x1dGlv bi90ZW1wbGF0ZQppbmRleCA1NjBlZDkzZGEwMi4uY2M3MzU1OTk0M2IgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRl CkBAIC0xLDE2ICsxLDE2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24nCiBwa2du YW1lPWV2b2x1dGlvbgotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9Y21ha2UKK2J1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCiBjb25maWd1cmVf YXJncz0iLURFTkFCTEVfQVVUT0FSPU9GRiAtREVOQUJMRV9MSUJDUllQVFVJPU9GRiAtREVOQUJM RV9HVEtTUEVMTD1PRkYKLSAtREVOQUJMRV9URVhUX0hJR0hMSUdIVD1PRkYgLURFTkFCTEVfUFNU X0lNUE9SVD1PRkYKLSAtREVOQUJMRV9XRUFUSEVSPSQodm9wdF9pZiBnaXIgT04gT0ZGKSIKKyAt REVOQUJMRV9URVhUX0hJR0hMSUdIVD1PRkYgLURFTkFCTEVfUFNUX0lNUE9SVD1PRkYgLURFTkFC TEVfV0VBVEhFUj1PTiIKIGhvc3RtYWtlZGVwZW5kcz0iZ25vbWUtZG9jLXV0aWxzIGdvYmplY3Qt aW50cm9zcGVjdGlvbiBpbnRsdG9vbCBpdHN0b29sCi0gcGtnLWNvbmZpZyIKKyBwa2ctY29uZmln IGdsaWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgY2x1dHRlci1n dGstZGV2ZWwgZW5jaGFudDItZGV2ZWwKICBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgZ3Nw ZWxsLWRldmVsIGd0a2h0bWwtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwKLSAkKHZvcHRfaWYgZ2ly IGxpYmd3ZWF0aGVyLWRldmVsKSBsaWJub3RpZnktZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB5dG5l Zi1kZXZlbAorIGxpYmd3ZWF0aGVyLWRldmVsIGxpYm5vdGlmeS1kZXZlbCB3ZWJraXQyZ3RrLWRl dmVsIHl0bmVmLWRldmVsCiAgZ25vbWUtZGVza3RvcC1kZXZlbCIKIGRlcGVuZHM9Imdub21lLWtl eXJpbmciCiBzaG9ydF9kZXNjPSJJbnRlZ3JhdGVkIG1haWwsIGFkZHJlc3Nib29rIGFuZCBjYWxl bmRhcmluZyBmb3IgR05PTUUiCkBAIC0xOSwzNiArMTksMTUgQEAgbGljZW5zZT0iTEdQTC0yLjEt b3ItbGF0ZXIsIExHUEwtMy4wLW9yLWxhdGVyLCBHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Fdm9sdXRpb24iCiBjaGFuZ2Vsb2c9Imh0dHBz Oi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9ldm9sdXRpb24vZ25vbWUtMy0zNi9O RVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODczYWNmMWRiZWMzOGU2N2Ux NjkwNjQ2NDVhYzNhOWI5YTk0NGJkMmI2MzMxNjFkZjZlNWYwNTcwMGUzNmNiOAorY2hlY2tzdW09 MGEzNWE2NjE0YTEzMGE1MTc2ODExNDBkMzc4YjE1YzYyOTAwYjg0YTE4YzM5ZGJmMjZkOWY5NmY0 MjhiZDRlYgogc2hsaWJfcHJvdmlkZXM9ImxpYmV2b2x1dGlvbi1jYWxlbmRhci5zbyBsaWJldm9s dXRpb24tdXRpbC5zbyBsaWJlbWFpbC1lbmdpbmUuc28KICBsaWJldm9sdXRpb24tbWFpbC5zbyBs aWJldm9sdXRpb24tc2hlbGwuc28iCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGlmIFsgLXogIiRD Uk9TU19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgotZWxzZQot CWhvc3RtYWtlZGVwZW5kcys9IiBnbGliLWRldmVsIgogZmkKIAotIyBjbWFrZSBwZXJmb21ybXMg MiBjaGVja3MgdXNpbmcgYmluYXJ5IHJ1bnRpbWUsIGFib3V0IGljb252IGFuZCBzZnJ0aW1lLgot IyBtdXNsICgxLjEuMTYpIGRvZXMgbm90IHN1cHBvcnQgIklTTy0yMDIyLUpQIiBlbmNvZGluZyAo c2VlIGl0cyByb2FkbWFwKSwKLSMgYWx0aG91Z2ggZXZvbHV0aW9uLWRhdGEtc2VydmVyIGlzIGZp bmUgd2l0aCBtdXNsLgotIyBJZiBjcm9zc2J1aWxkLCBjbWFrZSBsZXQgZGlzYWJsaW5nIHJ1bnRp bWUgY2hlY2tzIHZpYSBzcGVjaWZpYyBkaXJlY3RpdmVzLgotIyB0ZXN0IGljb252LWRldGVjdC5j IGFsc28gZ2VuZXJhdGVzIGljb252LWRldGVjdC5oIHRoYXQgaXMgcmVxdWlyZWQgZm9yIGJ1aWxk LgotIyBTbyBjb21wbGV0bHkgZGlzYWJsZSB0ZXN0IGZyb20gaWNvbnYtZGV0ZWN0LmMgKGNtYWtl LnBhdGNoIGZpbGUpIGFuZAotIyB1c2UgYSBjbWFrZSBjYWNoZSBmaWxlIG9uIGNyb3NzYnVpbGQg dG8gZGlzYWJsZSBzZnJ0aW1lIHJ1bm5pbmcgdGVzdC4KLWlmIFsgIiRDUk9TU19CVUlMRCIgXTsg dGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1DIGRpc2FibGVSdW50aW1lVGVzdHMuY21ha2UiCi1m aQotCi1wcmVfY29uZmlndXJlKCkgewotCW1rZGlyIC1wIGJ1aWxkCi0JY3AgJHtGSUxFU0RJUn0v aWNvbnYtZGV0ZWN0LmggJHt3cmtzcmN9L2J1aWxkLy4KLQlpZiBbICIkQ1JPU1NfQlVJTEQiIF07 IHRoZW4KLQkJY3AgJHtGSUxFU0RJUn0vZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSAke3dya3Ny Y30vYnVpbGQvLgotCWZpCi19Ci0KIGV2b2x1dGlvbi1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVu ZHM9IndlYmtpdDJndGstZGV2ZWwgZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBldm9sdXRpb24t ZGF0YS1zZXJ2ZXItZGV2ZWwKIAkgZ3RraHRtbC1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCgpGcm9tIDE2M2U5MTQxYWNkOGRmNGRlMGMxNDc0YmFlODNkYmNhOTc0 OTcxMGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAyOS84M10gZXZvbHV0aW9uLWV3czogdXBkYXRlIHRvIDMuMzcuOTAKCi0t LQogc3JjcGtncy9ldm9sdXRpb24tZXdzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZQpp bmRleCA0ZmY4MTE2NDY2Yy4uNzJjZWQ1MjAwMTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0 aW9uLWV3cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUKQEAg LTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24tZXdzJwogcGtnbmFt ZT1ldm9sdXRpb24tZXdzCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ETElCRVhFQ19JTlNUQUxM X0RJUj0vdXNyL2xpYi9ldm9sdXRpb24iCkBAIC0xMiw0ICsxMiw0IEBAIGxpY2Vuc2U9IkxHUEwt Mi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Fdm9s dXRpb24iCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9N RS9ldm9sdXRpb24tZXdzL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRF fS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPWQwODgzYzdkMjI3ODI3Y2M1YzQ0NjhiN2UzMWEzZWUzNzBiY2Q3ZDQxYTRkYmI5 NTBhYjVkYjM2Yzk1NTFhYzEKK2NoZWNrc3VtPWJlOTE2MDVkZmY1ZTI3NDg3ZmNiY2NlZmM5MTNj MDI3ZDJkNjYxMDQwZTA5NGZiZDgxZjk1MWRjOWE4NjE4MTUKCkZyb20gNzJmNTMzZjM3MjNiZjg5 MDM3NDRkMWNiMjI2NDUyZjc1YjFiODU4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDMwLzgzXSBweXRob24zLWF0c3BpOiB1 cGRhdGUgdG8gMi4zNy45MAoKLS0tCiBzcmNwa2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUgfCA2 ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUgYi9zcmNwa2dzL3B5 dGhvbjMtYXRzcGkvdGVtcGxhdGUKaW5kZXggYTMzYTM3NGZlMTguLjI5OTA3N2Q0NzFlIDEwMDY0 NAotLS0gYS9zcmNwa2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9weXRo b24zLWF0c3BpL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn cHl0aG9uMy1hdHNwaScKIHBrZ25hbWU9cHl0aG9uMy1hdHNwaQotdmVyc2lvbj0yLjMyLjEKLXJl dmlzaW9uPTQKK3ZlcnNpb249Mi4zNy45MAorcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiB3cmtz cmM9InB5YXRzcGktJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTEz LDQgKzEzLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3B5YXRz cGkvJHt2ZXJzaW9uJS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODQ5 NTRhNWJiZWFjYzgzNjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIzOWIyNDYzN2I0YzRkZDFmODYy MDM4OQorY2hlY2tzdW09NGUxN2FjZTU5YzZjODNhYzk0MWQ3NGY3NmFjYjk0YzAwZmIyMmI1NmJh YTZlYWFiMzEzZjVlMWFhYjcyZmMzOAoKRnJvbSA1NWI1NzY2MjM2MTliNmIwMTUzMmJiNzdhMzg2 YjhhNWEzODQ5NDM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMzEvODNdIHB5dGhvbi1hdHNwaTogdXBkYXRlIHRvIDIuMzcu OTAKCi0tLQogc3JjcGtncy9weXRob24tYXRzcGkvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBs YXRlCmluZGV4IDAxNDFkOTdmODVkLi5jNTQ0NTIzZjlkNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9w eXRob24tYXRzcGkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9weXRob24tYXRzcGkvdGVtcGxhdGUK QEAgLTEsOCArMSw4IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24tYXRzcGknCiAjIEtl ZXAgcHl0aG9uMy1hdHNwaSBpbiBzeW5jCiBwa2duYW1lPXB5dGhvbi1hdHNwaQotdmVyc2lvbj0y LjMyLjEKLXJldmlzaW9uPTQKK3ZlcnNpb249Mi4zNy45MAorcmV2aXNpb249MQogYXJjaHM9bm9h cmNoCiB3cmtzcmM9InB5YXRzcGktJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKQEAgLTE0LDQgKzE0LDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9L3B5YXRzcGkvJHt2ZXJzaW9uJS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09ODQ5NTRhNWJiZWFjYzgzNjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIzOWIyNDYzN2I0 YzRkZDFmODYyMDM4OQorY2hlY2tzdW09NGUxN2FjZTU5YzZjODNhYzk0MWQ3NGY3NmFjYjk0YzAw ZmIyMmI1NmJhYTZlYWFiMzEzZjVlMWFhYjcyZmMzOAoKRnJvbSA2YjU4NTUzMzAwYWFkM2U3MDY2 OWU5ZTkwNGU0NzM4ODQwMjZkNWU5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzIvODNdIG9yY2E6IHVwZGF0ZSB0byAzLjM3 LjkwCgotLS0KIHNyY3BrZ3Mvb3JjYS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29y Y2EvdGVtcGxhdGUgYi9zcmNwa2dzL29yY2EvdGVtcGxhdGUKaW5kZXggZjcwMjAyZTZkNzYuLjJi Mjk2NWJmYmFjIDEwMDY0NAotLS0gYS9zcmNwa2dzL29yY2EvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9vcmNhL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3Jj YScKIHBrZ25hbWU9b3JjYQotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNp b249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMyw3ICsx Myw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvUHJvamVjdHMvT3JjYSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWMxYWM2 NDhiNmJlMzE0ODhjMjZmZjk1OTExNDI4Nzg2OWRmOWNlM2NhMjE5OTllNDBkZWQ4Nzc0MWM5ODgz MWYKK2NoZWNrc3VtPTFhYjJlYjViZThjMzYzM2EyYjYxYzI2YzVlM2M5ZTFhNWIxMTE0YmFmMTQ4 ZmFlODljZWMzNWRmYmE0Y2I2NGIKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9z dG1ha2VkZXBlbmRzKz0iIHB5dGhvbjMtZ29iamVjdC1kZXZlbCIKCkZyb20gY2M4NTFhZjVjOTYx OGY5M2Q1ZDk5ZWQ4Yjc1ZjRiMTMwZTlmNGRkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDMzLzgzXSBnbm9tZS13ZWF0aGVy OiBidW1wCgotLS0KIHNyY3BrZ3MvZ25vbWUtd2VhdGhlci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ25vbWUtd2VhdGhlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtd2VhdGhlci90ZW1w bGF0ZQppbmRleCBkMzBiZTliZjE5Mi4uYzAyOGU0NmJhNjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z25vbWUtd2VhdGhlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS13ZWF0aGVyJwog cGtnbmFtZT1nbm9tZS13ZWF0aGVyCiB2ZXJzaW9uPTMuMzYuMQotcmV2aXNpb249MQorcmV2aXNp b249MgogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBl bmRzPSJnZXR0ZXh0IHBrZy1jb25maWcgaXRzdG9vbCBnbGliLWRldmVsIGdqcyIKCkZyb20gMTAx ODNhMDI0MTkwMDM4MzM1MDI1MDUxZDQyMTI3ZjM5NGEzYTE2YyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDM0LzgzXSB2dGUz OiB1cGRhdGUgdG8gMC42MS45MAoKLS0tCiBzcmNwa2dzL3Z0ZTMvdGVtcGxhdGUgfCAxOSArKysr KysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxMSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUgYi9zcmNwa2dzL3Z0 ZTMvdGVtcGxhdGUKaW5kZXggNjExNmIzY2M2MjEuLmYxYmExYzZmMWEyIDEwMDY0NAotLS0gYS9z cmNwa2dzL3Z0ZTMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy92dGUzL3RlbXBsYXRlCkBAIC0xLDI5 ICsxLDI4IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd2dGUzJwogcGtnbmFtZT12dGUzCi12ZXJz aW9uPTAuNjAuMwordmVyc2lvbj0wLjYxLjkwCiByZXZpc2lvbj0xCiB3cmtzcmM9InZ0ZS0ke3Zl cnNpb259IgogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJl X2FyZ3M9Ii1EYl9uZGVidWc9ZmFsc2UgLURnaXI9JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKQot IC1EdmFwaT0kKHZvcHRfaWYgdmFsYSB0cnVlIGZhbHNlKSAtRGJfbHRvPWZhbHNlIC1EX3N5c3Rl bWQ9ZmFsc2UiCitjb25maWd1cmVfYXJncz0iLURiX25kZWJ1Zz1mYWxzZSAtRGJfbHRvPWZhbHNl IC1EX3N5c3RlbWQ9ZmFsc2UKKyAkKHZvcHRfYm9vbCBnaXIgZ2lyKSAkKHZvcHRfYm9vbCBnaXIg dmFwaSkiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ25vbWUtZG9jLXV0aWxzIGdwZXJm IGludGx0b29sIHBrZy1jb25maWcKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKLW1ha2VkZXBlbmRz PSJnbnV0bHMtZGV2ZWwgZ3RrKzMtZGV2ZWwgcGNyZTItZGV2ZWwgJCh2b3B0X2lmIHZhbGEgdmFs YS1kZXZlbCkiCi1kZXBlbmRzPSJ2dGUiCisgJCh2b3B0X2lmIGdpciB2YWxhKSIKK21ha2VkZXBl bmRzPSJnbnV0bHMtZGV2ZWwgZ3RrKzMtZGV2ZWwgcGNyZTItZGV2ZWwgJCh2b3B0X2lmIGdpciB2 YWxhLWRldmVsKSIKIHNob3J0X2Rlc2M9IlRlcm1pbmFsIHdpZGdldCB3aXRoIGltcHJvdmVkIGFj Y2Vzc2liaWxpdHkgYW5kIEkxOE4gc3VwcG9ydCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIu MS1vci1sYXRlciwgTEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdu b21lLm9yZy9BcHBzL1Rlcm1pbmFsL1ZURSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS92dGUv JHt2ZXJzaW9uJS4qfS92dGUtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mZWI3NmUxMTgx YTM1N2Q4NjExMmQ0NDdhMDhkMTI3ZTIwODE0MzhkZjc2ZWNlODMyNDNiMTg2MDlkZDk4MjJhCitj aGVja3N1bT1kOTlkNzBjYTEzZTFhMTNjNzI5ZGUyMTk4NDM0YjcxYTgzOWExODA4ZDgxYTBiMWVh OGNlYjAyMmQ2MTllNDg3CiAKICMgU3VwcHJlc3Mgd2FybmluZ3MgYXMgZXJyb3JzIGZvciBOVUxM IGZvcm1hdCBzdHJpbmdzIChtdXNsIGxpYmMpCiBDWFhGTEFHUz0iLVduby1lcnJvcj1mb3JtYXQ9 IgogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1i dWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVp bGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIHByZV9idWlsZCgpIHsKIAlleHBvcnQgR0lSX0VY VFJBX0xJQlNfUEFUSD0iJHt3cmtzcmN9L3NyYy8ubGlicyIKQEAgLTM4LDggKzM3LDYgQEAgdnRl My1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQlpZiBbICIkYnVp bGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKLQkJZmkK LQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUv dmFsYQogCQlmaQogCX0KCkZyb20gY2Y4NDQ2ZmU1N2Y5NTIzMzAwM2ZlZDAwZmQ3OWU2OTM4N2E3 MTcyOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDM1LzgzXSBnbm9tZS10ZXJtaW5hbDogdXBkYXRlIHRvIDMuMzcuOTAKCi0t LQogc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVt cGxhdGUKaW5kZXggYmYzZDViY2RkNDIuLjkyNjZmNDNhNjFlIDEwMDY0NAotLS0gYS9zcmNwa2dz L2dub21lLXRlcm1pbmFsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVt cGxhdGUKQEAgLTEsMTEgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXRlcm1p bmFsJwogcGtnbmFtZT1nbm9tZS10ZXJtaW5hbAotdmVyc2lvbj0zLjM2LjEuMQordmVyc2lvbj0z LjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVf YXJncz0iLS1kaXNhYmxlLXN0YXRpYyAtLXdpdGgtbmF1dGlsdXMtZXh0ZW5zaW9uIgogaG9zdG1h a2VkZXBlbmRzPSJhcHBkYXRhLXRvb2xzIGdsaWItZGV2ZWwgaW50bHRvb2wgaXRzdG9vbAotIHBr Zy1jb25maWciCisgcGtnLWNvbmZpZyBkb2Nib29rLXhzbCIKIG1ha2VkZXBlbmRzPSJkY29uZi1k ZXZlbCBnbm9tZS1zaGVsbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsCiAgbmF1dGls dXMtZGV2ZWwgdnRlMy1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyIKQEAgLTEz LDggKzEzLDggQEAgc2hvcnRfZGVzYz0iR05PTUUgdGVybWluYWwgZW11bGF0b3IgYXBwbGljYXRp b24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR0ZETC0xLjMtb25seSIKIGhvbWVwYWdlPSJodHRwczov L3dpa2kuZ25vbWUub3JnL0FwcHMvVGVybWluYWwiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb246MDo0fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09ZjNkNzA4YTFlNzZkNzdjMWM4NWIxMjZmNmUwMDMyMjBhMTVkNGE0NmE1MGZkODA3 MGUxYTNhYWJlNjc4YTM3NgorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09ZDZkYTBm NDk5MTM0NWQ0N2Q3MzBmOWNhYWRmNDZlOGU0MTA1OTcwMTdlNmM2MTQ3NWU5MmY3YzIzYWQ5YzJh NAogbGliMzJkaXNhYmxlZD15ZXMKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCgpGcm9t IDE0ZDM5ZmZiMDA1ODJiZTI4ZWFiNDUxYTZjZDdlY2M5NzMwYWM2ZDAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNi84M10g Z25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3M6IHVwZGF0ZSB0byAzLjM2LjIKCi0tLQogc3JjcGtn cy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1n ZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZQppbmRleCA1YmVjOTM0OTBiYS4uYmVkOWI2OTYx NjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWdldHRpbmctc3RhcnRlZC1k b2NzJwogcGtnbmFtZT1nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcwotdmVyc2lvbj0zLjM0LjAK K3ZlcnNpb249My4zNi4yCiByZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKQEAgLTExLDQgKzExLDQgQEAgbGljZW5zZT0iQ0MtQlktU0EtMy4wIgogaG9t ZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0YXJ0 ZWQtZG9jcyIKICNjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9t ZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy9yYXcvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1mNzBjZTJjYTIzYWQ3ODYyMTVmM2M5MmVjODU3ODNlM2FhYmVkMDdl NGY3ODcwMGZhMjdmOWIyY2Y3NmUwM2RiCitjaGVja3N1bT0wNDk0Yjg5MTNhOTQ2YjY0NTA1MzZl MTIwYzE1NGFiZDI5MjM4ZWJiYTJmNTI3MzQ1OTJiMWY2NDVlNTIxZGM2CgpGcm9tIDU0ZWVhZjZj ZDExMjg2Y2Y5NDNmNTA5YjI0Y2Q0MzE3YjM3NDhiMjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEz IEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNy84M10gZ25vbWUtdXNl ci1kb2NzOiB1cGRhdGUgdG8gMy4zNi4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3Rl bXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlIGIv c3JjcGtncy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUKaW5kZXggNGNiNTUzOTZlMzcuLjJlOGFm ZTlmOTNkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2dub21lLXVzZXItZG9jcycKIHBrZ25hbWU9Z25vbWUtdXNlci1kb2Nz Ci12ZXJzaW9uPTMuMzQuMAordmVyc2lvbj0zLjM2LjIKIHJldmlzaW9uPTEKIGFyY2hzPW5vYXJj aAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTMsNCArMTMsNCBAQCBsaWNlbnNlPSJD Qy1CWS0zLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL0dOT01FL2dub21lLXVzZXIt ZG9jcyIKICNjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9N RS9nbm9tZS11c2VyLWRvY3MvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT04Zjk5MDdmZjE1ZmZmOTdkYTc1ZWNlNjQ1Y2M4Njc2NjcwM2FjNTRkNzE2ZDI1NTYz YmE2N2ZmZWQxYWYyNGVkCitjaGVja3N1bT0xOThmZTRjODM2Nzc1YTVkYzI1NDNhNmE1MjBkZmIw YWM1YmYyOTJjZGNiMzU4YTU3Yzg2ZjM1ZjcwNWU5OTU4CgpGcm9tIDcyODFiMDFiMWYzZmU1NmVh NDU2NGNjYTkyZjg4ZWMzZGM3MmYyMjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzOC84M10gZ25vbWUtZXB1Yi10aHVtYm5h aWxlcjogdXBkYXRlIHRvIDEuNgoKLS0tCiBzcmNwa2dzL2dub21lLWVwdWItdGh1bWJuYWlsZXIv dGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlCmluZGV4IGIx NmU3MDU0NzVmLi5jNmUxYzAyYjlkMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1lcHViLXRo dW1ibmFpbGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90 ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWVwdWIt dGh1bWJuYWlsZXInCiBwa2duYW1lPWdub21lLWVwdWItdGh1bWJuYWlsZXIKLXZlcnNpb249MS41 Cit2ZXJzaW9uPTEuNgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9z dG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgpAQCAtMTAsNCArMTAsNCBAQCBtYWludGFpbmVyPSJB bGlmIFJhY2htYXdhZGkgPGFyY2hAc3Vib3NpdG8uY29tPiIKIGxpY2Vuc2U9IkdQTC0zIgogaG9t ZXBhZ2U9Imh0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvZ25vbWUtZXB1Yi10aHVtYm5haWxl ciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTMwODIxMGY1ODAwMjE5ZjY0Y2FlNDgy OGU1OWJiOGU2ZTRjNTNiODg4MDQ4Y2Y0ODcyMjFhZWI0MzM3ZDc5MWEKK2NoZWNrc3VtPWI1MDI0 MjBkOWIwMmVhMGIwZmM3OTg2ZWY1YTA5MWExMmIyMjg2YmUxNGZlZDllNDc1OTRmZTlmYTBjNTg5 OGUKCkZyb20gOTNmN2JmMjNmZTg4ZjcwMDhhZWIxMGE4NTQ4ZTk0MGM5NThjMzYzOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDM5LzgzXSBnbm9tZS1ib29rczogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLWJvb2tzL3RlbXBs YXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25v bWUtYm9va3MvdGVtcGxhdGUKaW5kZXggMTE0YjllMDM0YzIuLjFkNDk3NGZlMTgzIDEwMDY0NAot LS0gYS9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYm9v a3MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1i b29rcycKIHBrZ25hbWU9Z25vbWUtYm9va3MKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCity ZXZpc2lvbj0yCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWcgdmFsYSBnbGliLWRldmVsIGxpYnJzdmcgZG9jYm9vay14c2wg bGlieHNsdAoKRnJvbSA0NGZkNzBkYmI0NjM4MWYzZTBjZWZjNWFjYTJmYmQzZmI3OTIwY2FlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggNDAvODNdIGdub21lLWNoYXJhY3RlcnM6IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS1j aGFyYWN0ZXJzL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlCmluZGV4IDg5ODY4ZjRi YzA0Li5hYzI2NGU1MWE2YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNoYXJhY3RlcnMnCiBwa2duYW1lPWdu b21lLWNoYXJhY3RlcnMKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBi dWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQgZ2pzIGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIgoKRnJvbSA3MGIwN2Y3ZmYx ZTllMGU2MTIyYTg2Mjc4MGRjYzcxYzIxZGYzMmRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDEvODNdIGdub21lLWRvY3Vt ZW50czogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1wbGF0ZSB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1kb2N1 bWVudHMvdGVtcGxhdGUKaW5kZXggOTdiNTNkNjM1ZDcuLjdlNDViODI1ZTcxIDEwMDY0NAotLS0g YS9zcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRv Y3VtZW50cy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2du b21lLWRvY3VtZW50cycKIHBrZ25hbWU9Z25vbWUtZG9jdW1lbnRzCiB2ZXJzaW9uPTMuMzQuMAot cmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1t ZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0IGl0c3Rvb2wgcGtnLWNv bmZpZyBnbGliLWRldmVsIGxpYnhzbHQgZ2RrLXBpeGJ1ZgoKRnJvbSA2MjE3YWU4MjEzMDBmNmE4 MDYwYTZjNDJmNTMzMzZiZjZmOTdkNDg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDIvODNdIGdub21lLWZvbnQtdmlld2Vy OiBidW1wCgotLS0KIHNyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLWZvbnQtdmlld2VyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mb250 LXZpZXdlci90ZW1wbGF0ZQppbmRleCA2ZDAzNTM2NmQ0NC4uZjc0ZmNiY2IwMDAgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9t ZS1mb250LXZpZXdlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLWZvbnQtdmlld2VyJwogcGtnbmFtZT1nbm9tZS1mb250LXZpZXdlcgogdmVyc2lv bj0zLjM0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0 bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJmb250Y29u ZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsIGdsaWItZGV2ZWwgZ3RrKzMtZGV2ZWwKCkZyb20gZDQ0 YzA1MDIyOTYwN2Y1YTdiZTkzMjg2OTk0YzVkNDgwN2NlMGE3MCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDQzLzgzXSB0b3Rl bTogYnVtcCwgZHJvcCB2YWxhIG9wdGlvbgoKLS0tCiBzcmNwa2dzL3RvdGVtL3RlbXBsYXRlIHwg MTQgKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy90b3RlbS90ZW1wbGF0ZSBiL3NyY3BrZ3Mv dG90ZW0vdGVtcGxhdGUKaW5kZXggODE1MjJiMzE0ODguLmE4Y2ZiMDAwMWE0IDEwMDY0NAotLS0g YS9zcmNwa2dzL3RvdGVtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdG90ZW0vdGVtcGxhdGUKQEAg LTEsMTQgKzEsMTQgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RvdGVtJwogcGtnbmFtZT10b3Rl bQogdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1l c29uCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZS1weXRob249 bm8gLURlbmFibGUtbmF1dGlsdXM9eWVzCiAgLURlbmFibGUtaW50cm9zcGVjdGlvbj0kKHZvcHRf aWYgZ2lyIHllcyBubykKLSAtRGVuYWJsZS12YWxhPSQodm9wdF9pZiB2YWxhIHllcyBubykiCisg LURlbmFibGUtdmFsYT0kKHZvcHRfaWYgZ2lyIHllcyBubykiCiBob3N0bWFrZWRlcGVuZHM9Imdu b21lLWRvYy11dGlscyBpbnRsdG9vbCBpdHN0b29sIHBrZy1jb25maWcKLSAkKHZvcHRfaWYgdmFs YSB2YWxhKSBnc3RyZWFtZXIxIGdzdC1wbHVnaW5zLWJhc2UxIGdzdC1wbHVnaW5zLWdvb2QxCisg JCh2b3B0X2lmIGdpciB2YWxhKSBnc3RyZWFtZXIxIGdzdC1wbHVnaW5zLWJhc2UxIGdzdC1wbHVn aW5zLWdvb2QxCiAgZ2xpYi1kZXZlbCIKICMgWFhYIG1pc3NpbmcgbGlyYyBwbHVnaW4uCiBtYWtl ZGVwZW5kcz0iY2x1dHRlci1nc3QzLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsIGRidXMtZ2xpYi1k ZXZlbApAQCAtMjcsMTAgKzI3LDE0IEBAIGNoZWNrc3VtPTZiZjg5YWIwOTZkZmM1NjRmMjYwOTc2 ZTQ4NDE2NWYwOWJkODg2NDM0ZDE4NDQxMGQyZjk0NGJmYmE2MTFhMDkKICMgWFhYIHJlZW5hYmxl IHB5dGhvbiBwbHVnaW4gaWYgcHlsaW50IHBrZyBleGlzdHMuCiAjcHljb21waWxlX2RpcnM9InVz ci9saWIvdG90ZW0vcGx1Z2lucyIKIAorZG9fY2hlY2soKSB7CisJOgorfQorCiBkaXNhYmxlX3Bh cmFsbGVsX2J1aWxkPXllcwogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlv bnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25z X2RlZmF1bHQ9ImdpciIKIAogbGlidG90ZW1fcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0g cnVudGltZSBsaWJyYXJ5IgoKRnJvbSA3MmM2MDAzY2U3N2FmM2JiMDcxM2VmMmY3N2NiNjBkZDQ0 NjllNzk5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggNDQvODNdIGdub21lLXNjcmVlbnNhdmVyOiBidW1wICsgZml4IGJ1aWxk CgotLS0KIHNyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRjaCB8IDEy ICsrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci90ZW1wbGF0ZSAgICAgICAg ICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hl cy9idWlsZC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0 Y2hlcy9idWlsZC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWls ZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmRjZGJlN2Rk N2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMv YnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorLS0tIHNyYy9ncy1tYW5hZ2VyLmMKKysrKyBz cmMvZ3MtbWFuYWdlci5jCitAQCAtODIwLDggKzgyMCw3IEBAIGFwcGx5X2JhY2tncm91bmRfdG9f d2luZG93IChHU01hbmFnZXIgKm1hbmFnZXIsCisgICAgICAgICBzdXJmYWNlID0gZ25vbWVfYmdf Y3JlYXRlX3N1cmZhY2UgKG1hbmFnZXItPnByaXYtPmJnLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnZGtfd2luZG93LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaGVpZ2h0LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGQUxTRSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGhlaWdodCk7CisgICAgICAgICBnc193aW5kb3dfc2V0X2JhY2tncm91bmRfc3Vy ZmFjZSAod2luZG93LCBzdXJmYWNlKTsKKyAgICAgICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveSAo c3VyZmFjZSk7CisgfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUKaW5kZXggMzYzZmNmMTJl MTAuLmMzYTcwY2ZlZjdjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zY3JlZW5zYXZlcicKIHBrZ25hbWU9 Z25vbWUtc2NyZWVuc2F2ZXIKIHZlcnNpb249My42LjEKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMK IGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1jb21w aWxlLXdhcm5pbmdzPW1pbmltdW0iCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b21h a2UgaW50bHRvb2wgZ2xpYi1kZXZlbCIKCkZyb20gNmQyZTYxZjliZTVhNzYyZGMyYzgxMDI4NDhl NzM3MzczMTIxNjVmZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDQ1LzgzXSBnbm9tZS1jbG9ja3M6IHVwZGF0ZSB0byAzLjM3 LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmls ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1w bGF0ZQppbmRleCAzZTA0OWI0MmZiMS4uMWNhM2VmNTg4NmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z25vbWUtY2xvY2tzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRl CkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1jbG9ja3MnCiBw a2duYW1lPWdub21lLWNsb2NrcwotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNy45MAogcmV2 aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2Vk ZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGl0c3Rvb2wgZ2xpYi1kZXZlbCB2YWxhIgogbWFr ZWRlcGVuZHM9ImdsaWItZGV2ZWwgdmFsYS1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsCi0gbGli Z3dlYXRoZXItZGV2ZWwgbGliaGFuZHktZGV2ZWwgbGlibm90aWZ5LWRldmVsIGdzb3VuZC1kZXZl bAorIGxpYmd3ZWF0aGVyLWRldmVsIGxpYmhhbmR5MS1kZXZlbCBsaWJub3RpZnktZGV2ZWwgZ3Nv dW5kLWRldmVsCiAgZ2VvY29kZS1nbGliLWRldmVsIGRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9y LWljb24tdGhlbWUKICBnZW9jbHVlMi1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGls cyBoaWNvbG9yLWljb24tdGhlbWUiCkBAIC0xNSw0ICsxNSw0IEBAIG1haW50YWluZXI9IkVubm8g Qm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9DbG9ja3MiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00Yzk3OGIwYzdmN2I5ZGFlYmQyNzJkMDE3NWY4YTU0 NDE1ZTIwNzhmMTM0ZjQ4YWRkNWNmMjQzNjJlZWY0OWM2CitjaGVja3N1bT00ZGQyMzQ5NTA3NGFl MzA2ZDllZTMwYzZiYWI3MjYyNGM3ZWQwNWM0OWM3N2FiMTI0ODM5MDAzYzljYjRmZjliCgpGcm9t IGNmOGI3ODMzZjFhNDkzOTg1ZmNlNWMxOGJiM2Y0NjRjM2RhYjk3YjAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0Ni84M10g Z25vbWUtY29udGFjdHM6IHVwZGF0ZSB0byAzLjM3LjEKCi0tLQogc3JjcGtncy9nbm9tZS1jb250 YWN0cy90ZW1wbGF0ZSB8IDEzICsrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2Vy dGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jb250 YWN0cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUKaW5kZXggMmE4 MjEzYTcyNDAuLjBiMDY5Zjk5YmQ1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNvbnRhY3Rz L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUKQEAgLTEsMTYg KzEsMTUgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNvbnRhY3RzJwogcGtnbmFtZT1n bm9tZS1jb250YWN0cwotdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTIKLXdya3NyYz0iZ25vbWUt Y29udGFjdHMtJHt2ZXJzaW9uJS4qfSIKK3ZlcnNpb249My4zNy4xCityZXZpc2lvbj0xCiBidWls ZF9zdHlsZT1tZXNvbgotaG9zdG1ha2VkZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0IGdsaWIt ZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEiCitob3N0bWFrZWRlcGVuZHM9ImRvY2Jvb2st eHNsIGZvbGtzLWRldmVsIGdldHRleHQgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFs YSIKIG1ha2VkZXBlbmRzPSJjaGVlc2UtZGV2ZWwgZm9sa3MtZGV2ZWwgZ2VvY29kZS1nbGliLWRl dmVsIGdub21lLWRlc2t0b3AtZGV2ZWwKLSBsaWJjaGFtcGxhaW4tZGV2ZWwgbGlibm90aWZ5LWRl dmVsIHZhbGEtZGV2ZWwgbGliaGFuZHktZGV2ZWwiCisgbGliY2hhbXBsYWluLWRldmVsIGxpYm5v dGlmeS1kZXZlbCB2YWxhLWRldmVsIGxpYmhhbmR5MS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3At ZmlsZS11dGlscyIKIHNob3J0X2Rlc2M9IkdOT01FIGNvbnRhY3RzIG1hbmFnZXIiCiBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQ29udGFj dHMiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9uJS4qfS50YXIueHoiCi1jaGVja3N1bT05OTYwMmVjOGQ2NjBjMWYz YzkyY2FlNjM1NmY2NGY3MmZiNmRiNThlNTViY2UyN2E1OTkzMzBiZjdiNjIyZjEyCitkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT02OTJjYjc0NjcwZGZmNzc4ZTQxZDNjMzVkNjI3Yjlh NTJlZWIzN2EzYmQ5YmI4MTFhNjUxMmNiNTU4OTVlYWIyCgpGcm9tIGEwZTFmYjUxODM4MjM5YmEz ZmQxMTVkNDgyNGMwOTI3NzAzNGVlNWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0Ny84M10gbGliZGF6emxlOiB1cGRhdGUg dG8gMy4zNy4xCgotLS0KIHNyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlIHwgMjIgKysrKysrKysr KysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUgYi9zcmNwa2dz L2xpYmRhenpsZS90ZW1wbGF0ZQppbmRleCA1YWMwOWZlZWZjOS4uZmJhYTQxMTRiZGMgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliZGF6emxl L3RlbXBsYXRlCkBAIC0xLDEyICsxLDEzIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJkYXp6 bGUnCiBwa2duYW1lPWxpYmRhenpsZQotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNy4xCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1 cmVfYXJncz0iLURlbmFibGVfZ3RrX2RvYz1mYWxzZSAtRHdpdGhfdmFwaT0kKHZvcHRfaWYgdmFs YSB0cnVlIGZhbHNlKQotIC1Ed2l0aF9pbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBm YWxzZSkiCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZpZyAkKHZvcHRfaWYg dmFsYSAndmFsYScpIgorY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlX2d0a19kb2M9ZmFsc2UKKyAk KHZvcHRfYm9vbCBnaXIgd2l0aF92YXBpKQorICQodm9wdF9ib29sIGdpciB3aXRoX2ludHJvc3Bl Y3Rpb24pIgoraG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWcgJCh2b3B0X2lm IGdpciB2YWxhKSIKIG1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIgogc2hv cnRfZGVzYz0iTGlicmFyeSB0byBkZWxpZ2h0IHlvdXIgdXNlcnMgd2l0aCBmYW5jeSBmZWF0dXJl cyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCkBAIC0x NCwxMCArMTUsMTUgQEAgbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGliZGF6emxlIgogY2hhbmdlbG9nPSJodHRwczov L3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvbGliZGF6emxlL2xpYmRhenpsZS0zLTMy L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vbGliZGF6emxlLyR7dmVyc2lvbiUuKn0v bGliZGF6emxlLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODJiMzFiYmY1NTBmYzYyOTcw Yzc4YmY3ZjlkNTVlNWZhZTViOGVhMTNiMjRmZTJkMTNjOGM2MDM5NDA5ZDk1OAorY2hlY2tzdW09 ZmRmMGUzOTgwNjk4NDhiOTBmZGRmMzE4NGI2Mzg0NTkyYTNhZWFiYjhiMjQzMzE0MGUwM2IwMTY0 MjY2MjUwZgogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImdpciIKKworIyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIGxpYmRhenpsZS1kZXZl bF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfS0ke3ZlcnNpb259XyR7cmV2aXNp b259IGd0ayszLWRldmVsIgpAQCAtMjgsOCArMzQsNiBAQCBsaWJkYXp6bGUtZGV2ZWxfcGFja2Fn ZSgpIHsKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIi IF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWls ZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9 CgpGcm9tIDc1ZGFhMjMxMDMxOWFlYWI4MThhYTQ1MjIyZmFiMmZkOWFmM2JhZWIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0 OC84M10gZXBpcGhhbnk6IHVwZGF0ZSB0byAzLjM3LjkwIChuZWVkIHdlYmtpdDJndGsgdXBkYXRl KQoKLS0tCiBzcmNwa2dzL2VwaXBoYW55L3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2VwaXBoYW55L3RlbXBsYXRlIGIvc3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZQppbmRleCA1 ZDZhYzZhNjM3ZC4uMzc1Y2Y5Yjg3OTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXBpcGhhbnkvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZQpAQCAtMSwxOSArMSwxOSBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZXBpcGhhbnknCiBwa2duYW1lPWVwaXBoYW55Ci12ZXJzaW9u PTMuMzYuMgordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIK IGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURkaXN0cmlidXRvcl9uYW1lPVZv aWRMaW51eCAtRHVuaXRfdGVzdHM9ZGlzYWJsZWQiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQg Z2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFn ZXItZGV2ZWwgYXZhaGktZ2xpYi1saWJzLWRldmVsIGdjci1kZXZlbAotIGdub21lLWRlc2t0b3At ZGV2ZWwganNvbi1nbGliLWRldmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keS1kZXZlbAorIGdu b21lLWRlc2t0b3AtZGV2ZWwganNvbi1nbGliLWRldmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5k eTEtZGV2ZWwKICBsaWJub3RpZnktZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnNvdXAtZ25vbWUt ZGV2ZWwgbGlid25jay1kZXZlbCBsaWJ4c2x0LWRldmVsCi0gbmV0dGxlLWRldmVsIG5zcy1kZXZl bCB3ZWJraXQyZ3RrLWRldmVsIgorIG5ldHRsZS1kZXZlbCBuc3MtZGV2ZWwgd2Via2l0Mmd0ay1k ZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xv ci1pY29uLXRoZW1lIGlzby1jb2RlcyB3ZWJraXQyZ3RrIgogc2hvcnRfZGVzYz0iSW50dWl0aXZl IEdOT01FIHdlYiBicm93c2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly93aWtpLmdub21lLm9yZy9BcHBzL1dlYiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPWMyZTY3NmFhMGZlMjExODA5YTVlN2U4YTdlNDYxZDE4Mjg5MGYyNTNjNTNmNDYxMGYyNjEw MDk0YjZmYmZiNWUKK2NoZWNrc3VtPWVlNDQ3ZDI4OWYyZTBiMWE4YWNkNTNmOWYwNzQ5ZDAyYWJj YjQ2NDNjYTk4YzRkZDUzYTUzNTI0M2RiMjI4ZDYKCkZyb20gZTZlYTNjODdhM2VkNDUxZGJjNjlm NzU0NzI3MzQwNjExNmRjYTEzMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDQ5LzgzXSBnbm9tZS1waG90b3M6IHVwZGF0ZSB0 byAzLjM3LjIKCi0tLQogc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUgfCA0ICsrLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXBob3Rvcy90 ZW1wbGF0ZQppbmRleCAxZWQ4Yjk4NjFlYy4uNjg0MzI1MTRhNGQgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBs YXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtcGhvdG9zJwog cGtnbmFtZT1nbm9tZS1waG90b3MKLXZlcnNpb249My4zNC4yCit2ZXJzaW9uPTMuMzcuMgogcmV2 aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtMTYsNyAr MTYsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL0FwcHMvUGhvdG9zIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dub21lLXBob3Rvcy8k e3ZlcnNpb24lLip9L2dub21lLXBob3Rvcy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTNj NTljNzZlZjI4NjE4ZWMwNTVhMTc5OWQxMDQwMjg3YjkwYTBiMDIxZmViMGEwMmIxZWFjMjhlOWMy ZWI0MWEKK2NoZWNrc3VtPWNjOTU1YWExZmY4NGJkNjk4Zjk4NjhlMTcxYTBkNTJkZTQyMDFhNTAz Mjg4ODI1MThlYzFkYTM3NGJiZjlhOGYKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0 aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDc4YTA0MzhjMzQ4M2E4ZTdhYjM2ZWVlYjg1Y2IxOGQw ZTFjODk1YzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAw ClN1YmplY3Q6IFtQQVRDSCA1MC84M10gZW9nOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNw a2dzL2VvZy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZW9nL3RlbXBsYXRlIGIv c3JjcGtncy9lb2cvdGVtcGxhdGUKaW5kZXggZTRjYWNiNzA3OWUuLjkxZWU1NGVkYzQxIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2VvZy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2VvZy90ZW1wbGF0ZQpA QCAtMSwyMCArMSwyMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZW9nJwogcGtnbmFtZT1lb2cK LXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBl cj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGludHJvc3BlY3Rp b249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBn bGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJleGVtcGktZGV2ZWwg Z25vbWUtZGVza3RvcC1kZXZlbCBsaWJleGlmLWRldmVsIGxpYnBlYXMtZGV2ZWwKLSBsaWJyc3Zn LWRldmVsIGxjbXMyLWRldmVsIgorIGxpYnJzdmctZGV2ZWwgbGNtczItZGV2ZWwgbGlicG9ydGFs LWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSBz aGFyZWQtbWltZS1pbmZvIgogc2hvcnRfZGVzYz0iRXllIG9mIEdOT01FIGdyYXBoaWNzIHZpZXdl ciBwcm9ncmFtIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdu b21lLm9yZy9BcHBzL0V5ZU9mR25vbWUiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZW9nLyR7 dmVyc2lvbiUuKn0vZW9nLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTQ1NGExYTdhYTVl M2EzMzIxZWFiMDExNjc3ODExMGU1YTdhN2I2M2JjZjIxNjc2ZWRhMWE3YmUxODdjOWM5NQorY2hl Y2tzdW09NGE4YTY3NjMzODA1MjkyYWQxYWY1NDllMzE5YWEzZjdiNmQ3NzZmMzNkYWMyMGZkMTk1 Y2U0NmJiZGQwMjY2YQogc2hsaWJfcHJvdmlkZXM9ImxpYmVvZy5zbyIKIGxpYjMyZGlzYWJsZWQ9 eWVzCiAKCkZyb20gNDY5MDE5ZDI5ZGFjOTY5YjMxYTE2ZDE3MDE3ODg1NDRkM2ZkZmE0NyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BB VENIIDUxLzgzXSBldmluY2U6IHVwZGF0ZSB0byAzLjM3LjMKCi0tLQogc3JjcGtncy9ldmluY2Uv dGVtcGxhdGUgfCAxNCArKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9u cygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZXZpbmNlL3RlbXBsYXRlCmluZGV4IDQwMzVmMTVjNjkwLi4zOTZlZDg1MDYz NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ldmlu Y2UvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2aW5j ZScKIHBrZ25hbWU9ZXZpbmNlCi12ZXJzaW9uPTMuMzYuNwordmVyc2lvbj0zLjM3LjMKIHJldmlz aW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29u ZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pIC0tZGlzYWJsZS1z Y2hlbWFzLWNvbXBpbGUKLSAtLWVuYWJsZS1jb21pY3MgLS1kaXNhYmxlLXN0YXRpYyAtLWVuYWJs ZS14cHMgLS1kaXNhYmxlLXQxbGliCi0gLS1kaXNhYmxlLWJyb3dzZXItcGx1Z2luIC0tZW5hYmxl LXBzIgotaG9zdG1ha2VkZXBlbmRzPSJhZHdhaXRhLWljb24tdGhlbWUgZ2V0dGV4dCBnbGliLWRl dmVsIGdub21lLWRvYy11dGlscworYnVpbGRfc3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSIk KHZvcHRfYm9vbCBnaXIgaW50cm9zcGVjdGlvbikKKyAtRGNvbWljcz1lbmFibGVkIC1EcHM9ZW5h YmxlZCAtRHhwcz1lbmFibGVkIC1EZHZpPWRpc2FibGVkCisgLUR0MWxpYj1kaXNhYmxlZCAtRGJy b3dzZXJfcGx1Z2luPWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJhZHdhaXRhLWljb24tdGhlbWUg Z2V0dGV4dCBndGstZG9jIGdsaWItZGV2ZWwgZ25vbWUtZG9jLXV0aWxzCiAgaXRzdG9vbCBwa2ct Y29uZmlnIHBlcmwtWE1MLVBhcnNlciBhcHBzdHJlYW0tZ2xpYiIKICMgWFhYIG1pc3NpbmcgcGFj a2FnZXMgZm9yIERWSSBiYWNrZW5kLgogbWFrZWRlcGVuZHM9ImFkd2FpdGEtaWNvbi10aGVtZSBk anZ1bGlicmUtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJTTS1kZXZlbApAQCAtMTksNyAr MTksNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL0FwcHMvRXZpbmNlIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NjVkNjFh NDIzZTNmYmJlMDcwMDFmNjVlODc0MjJkZmI3ZDJlNDJiOWVkZjBjYTZhMWQ0MjdhZjlhMDRiOGYz MgorY2hlY2tzdW09NTU0OTZiYzNlZWIzYzZmZWUzZjFlOTc0ZmMwMDA0MzFkN2Y1NDZjMDI2ZmI3 M2RiZThkYzZlNzMzOTFkNmZjNQogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25z X2RlZmF1bHQ9ImdpciIKCkZyb20gNzljM2Y1MTc3OTg4NTM2MTJhNjJkMDM1MjZhODMyZjFlYTEz MDFkOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDUyLzgzXSBmaWxlLXJvbGxlcjogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQog c3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZpbGUt cm9sbGVyL3RlbXBsYXRlIGIvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZQppbmRleCA1ZmI3 NmQ5NzMwNy4uZWM2OWZmOTk1M2IgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmlsZS1yb2xsZXIvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2ZpbGUtcm9sbGVyJwogcGtnbmFtZT1maWxlLXJvbGxlcgot dmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNv bmZpZyIKQEAgLTEyLDQgKzEyLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0ZpbGVSb2xsZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT1iOTE0NGRlOGY1MzZmNTgzZWMyOWQ3MDNjMmMxNzBiZjJkMDBjNmMxNjZj ZDVlM2Y3ZWZhYmRhNTUxZjEwNDc4CitjaGVja3N1bT1kNzg0YjliMzE1YmE5Mzg2MjM1ZTZkZTZl MjYyYWVkMTRhYzg5YmMwZTZlZjNhODQ4ZGQzYjBmMjkzNzNjM2ExCgpGcm9tIGY5NDYxN2RjNTk2 YWNmYmQ2MDY4ZTg4MzgzZDdkMTZlZTViNDc4MzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1My84M10gZ25vbWUtY2FsZW5k YXI6IGJ1bXAKCltjaSBza2lwXQotLS0KIHNyY3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9t ZS1jYWxlbmRhci90ZW1wbGF0ZQppbmRleCA5YzkxYzhiNWY0ZC4uMzc0ZjQ1NTZmZjggMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9t ZS1jYWxlbmRhci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2dub21lLWNhbGVuZGFyJwogcGtnbmFtZT1nbm9tZS1jYWxlbmRhcgogdmVyc2lvbj0zLjM2LjIK LXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVu ZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBwa2ctY29uZmlnICQodm9wdF9pZiBnaXIgJ2dvYmplY3Qt aW50cm9zcGVjdGlvbicpIgogbWFrZWRlcGVuZHM9ImV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZl bCBnZW9jbHVlMi1kZXZlbCBnZW9jb2RlLWdsaWItZGV2ZWwKCkZyb20gNDc2N2VhMGY5MmYzMzc3 YjYxMmRkMmM4ZDViODBhY2Y2OWNhY2VkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVnIDIw MjAgMTY6NTE6NTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDU0LzgzXSBnbm9tZS1tdXNpYzogdXBk YXRlIHRvIDMuMzcuMwoKW2NpIHNraXBdCi0tLQogc3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVz L3BhbmdvMTQyLnBhdGNoIHwgMjggKysrKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9t ZS1tdXNpYy90ZW1wbGF0ZSAgICAgICAgICAgICAgIHwgIDcgKysrLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDMyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVzL3BhbmdvMTQyLnBhdGNoCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVzL3BhbmdvMTQyLnBhdGNoIGIvc3JjcGtncy9nbm9t ZS1tdXNpYy9wYXRjaGVzL3BhbmdvMTQyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5hYTk4Y2Q5MGIyYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25v bWUtbXVzaWMvcGF0Y2hlcy9wYW5nbzE0Mi5wYXRjaApAQCAtMCwwICsxLDI4IEBACitGcm9tIGRj MGY1MWI2M2U0YTdiMDhlMTFlOGVkMDE2NDg0ZWE2ZjViMjA1NzUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6 IEZyaSwgMTQgQXVnIDIwMjAgMTY6NTA6MjggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gbWVzb246 IHJlbW92ZSBwYW5nbyBkZXBlbmRlbmN5CisKK1RoaXMgd2FzIGFkZGVkIGJlY2F1c2Ugb2YgYSBm ZWF0dXJlIG1pc3NpbmcgaW4gcGFuZ28gb2xkZXIgdGhhbgorMS40NCwgYnV0IHdlIGhhdmUgdGhp cyBiYWNrcG9ydGVkLCBzbyB3ZSdyZSBva2F5LgorCitodHRwczovL2dpdGxhYi5nbm9tZS5vcmcv R05PTUUvcHlnb2JqZWN0Ly0vaXNzdWVzLzMxMgorLS0tCisgbWVzb24uYnVpbGQgfCAxIC0KKyAx IGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IG1lc29uLmJ1aWxkIG1l c29uLmJ1aWxkCitpbmRleCAwZWY1YjliLi41MmI4N2E2IDEwMDY0NAorLS0tIG1lc29uLmJ1aWxk CisrKysgbWVzb24uYnVpbGQKK0BAIC00Myw3ICs0Myw2IEBAIGRlcGVuZGVuY3koJ2xpYmRhenps ZS0xLjAnLCB2ZXJzaW9uOiAnPj0gMy4yOC4wJykKKyBkZXBlbmRlbmN5KCdsaWJtZWRpYWFydC0y LjAnLCB2ZXJzaW9uOiAnPj0gMS45LjEnKQorIGRlcGVuZGVuY3koJ2xpYnNvdXAtMi40JykKKyBk ZXBlbmRlbmN5KCd0cmFja2VyLXNwYXJxbC0yLjAnLCB2ZXJzaW9uOiAnPj0gMi4zLjAnKQorLWRl cGVuZGVuY3koJ3BhbmdvJywgdmVyc2lvbjogJz49IDEuNDQuMCcpCisgZGVwZW5kZW5jeSgncHln b2JqZWN0LTMuMCcsIHZlcnNpb246ICc+PSAzLjM2LjEnKQorIGRlcGVuZGVuY3koJ3B5M2NhaXJv JywgdmVyc2lvbjogJz49IDEuMTQuMCcpCisgZGVwZW5kZW5jeSgnZ3JpbG8tMC4zJywgdmVyc2lv bjogJz49IDAuMy4xMicsIGZhbGxiYWNrOiBbJ2dyaWxvJywgJ2xpYmdybF9kZXAnXSkKKy0tIAor Mi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUgYi9zcmNw a2dzL2dub21lLW11c2ljL3RlbXBsYXRlCmluZGV4IDEyNTExNzM2NDA3Li41YjcyMzkyNzM4MSAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLW11c2ljL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Z25vbWUtbXVzaWMnCiBwa2duYW1lPWdub21lLW11c2ljCi12ZXJzaW9uPTMuMzYuMQordmVyc2lv bj0zLjM3LjMKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVz b24KQEAgLTksMTEgKzksMTIgQEAgbWFrZWRlcGVuZHM9Imdub21lLWRlc2t0b3AtZGV2ZWwgZ3Jp bG8tZGV2ZWwgbGlibWVkaWFhcnQtZGV2ZWwKICBweXRob24zLWdvYmplY3QtZGV2ZWwgcHl0aG9u My1kYnVzIHRyYWNrZXItZGV2ZWwgZ25vbWUtb25saW5lLWFjY291bnRzLWRldmVsCiAgbGliZGF6 emxlLWRldmVsIGdyaWxvLXBsdWdpbnMgcHl0aG9uMy1jYWlyby1kZXZlbCIKIGRlcGVuZHM9ImRl c2t0b3AtZmlsZS11dGlscyBweXRob24zLWRidXMgcHl0aG9uMy1nb2JqZWN0IHB5dGhvbjMtcmVx dWVzdHMKLSB0cmFja2VyIHRyYWNrZXItbWluZXJzIGdzdC1wbHVnaW5zLWdvb2QxIGdyaWxvLXBs dWdpbnMgbGliZGF6emxlIgorIHRyYWNrZXIgdHJhY2tlci1taW5lcnMgZ3N0LXBsdWdpbnMtZ29v ZDEgZ3JpbG8tcGx1Z2lucyBsaWJkYXp6bGUKKyBsaWJtZWRpYWFydCIKIHNob3J0X2Rlc2M9IkdO T01FIG11c2ljIHBsYXlpbmcgYXBwbGljYXRpb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvTXVzaWMiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT03YjgwZjYzMGQxNTgzMzQ5MzVhODc2MDI5NjU1MGNjOTFiNTBkNjA0 ZmE2OGI0MDJmZTUxNjViMTUzMWVjMzMyCitjaGVja3N1bT0yNDhiYzg1ODU5NjMyNzFhNGQyZmY3 ZjI0OWM5Zjc5MmFhZjBiNGRmZGUxZTk0YWJiNjhjOTE1MDEwMTVjZWJlCiBsaWIzMmRpc2FibGVk PXllcwoKRnJvbSA3NThhZmQ5MjljZDg4YzQzOTg1ZDg4OWUzN2MxZWFmNjgyYWE2Y2E1IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAyMzoyMjozNCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggNTUvODNdIGdub21lLXBhbmVsOiB1cGRhdGUgdG8gMy4zNy4xCgotLS0KIGNvbW1vbi9zaGxp YnMgICAgICAgICAgICAgICAgfCAyICstCiBzcmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlIHwg NiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGM2MjZi NWViMjBmLi43NTkwYjc5Y2Q0YiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21t b24vc2hsaWJzCkBAIC01NjQsNyArNTY0LDcgQEAgbGlicGFja2FnZWtpdC1nbGliMi5zby4xOCBQ YWNrYWdlS2l0LTEuMS4xMl8xCiBsaWJwc2wuc28uNSBsaWJwc2wtMC4yMC4yXzEKIGxpYnNvdXAt Mi40LnNvLjEgbGlic291cC0yLjM0LjBfMQogbGlic291cC1nbm9tZS0yLjQuc28uMSBsaWJzb3Vw LWdub21lLTIuMzQuMF8xCi1saWJwYW5lbC1hcHBsZXQuc28uMyBnbm9tZS1wYW5lbC0zLjMwLjBf MQorbGliZ25vbWUtcGFuZWwuc28uMCBnbm9tZS1wYW5lbC0zLjM3LjFfMQogbGlidW5pbnVtLnNv LjUgbGlidW5pbnVtLTIuN18xCiBsaWJ1bmlxdWUtMy4wLnNvLjAgbGlidW5pcXVlLTIuOTEuNF8x CiBsaWJ3ZWJraXQyZ3RrLTQuMC5zby4zNyB3ZWJraXQyZ3RrLTIuNi4yXzEKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ25vbWUtcGFuZWwvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXBhbmVsL3RlbXBs YXRlCmluZGV4IDcwZjIzYjhiNTUxLi4yNGQ5ZDJiOWViNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9n bm9tZS1wYW5lbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtcGFuZWwnCiBwa2duYW1l PWdub21lLXBhbmVsCi12ZXJzaW9uPTMuMzQuMQotcmV2aXNpb249MwordmVyc2lvbj0zLjM3LjEK K3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSJh eF9jdl96b25laW5mb190emRpcj0vdXNyL3NoYXJlL3pvbmVpbmZvIgogaG9zdG1ha2VkZXBlbmRz PSJnZXR0ZXh0LWRldmVsIGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHR6ZGF0YSBnZXR0 ZXh0IgpAQCAtMTQsNyArMTQsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR0ZETC0xLjEtb3ItbGF0 ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcv UHJvamVjdHMvR25vbWVQYW5lbCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWE2 YmMwMjU1MjUyZWViNGI5NjRiY2JlNTVmZDc5MDhiNjlmOTE0YzA2MmM1ZWM4ZGZmNWFjMDI2MmQy OWI5MGQKK2NoZWNrc3VtPTFkNTk4ZmQ2ODkzM2U3NjAxOGYyZmIxMTZhNzg3MWNiYzAwMzNjMWYx MDliZmJmZTA4YTFlY2I1NjA2N2QxNTIKIHBhdGNoX2FyZ3M9Ii1OcDEiCiAKIGdub21lLXBhbmVs LWRldmVsX3BhY2thZ2UoKSB7CgpGcm9tIDI2ODk1NjA2NjNjZmYxNjk1NjQwNGU5YmY3ZWY5ZTVj Nzk1ZmIxM2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDIzOjI0OjUxICswMjAw ClN1YmplY3Q6IFtQQVRDSCA1Ni84M10gbWV0YWNpdHk6IHVwZGF0ZSB0byAzLjM3LjEKCi0tLQog Li4uL3BhdGNoZXMvY29tcG9zaXRvci12dWxrYW4tZml4LWJ1aWxkLnBhdGNoIHwgMjkgKysrKysr KysrKysrKysrKysrKwogc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAg ICAgIHwgIDggKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21ldGFjaXR5L3BhdGNoZXMvY29t cG9zaXRvci12dWxrYW4tZml4LWJ1aWxkLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tZXRh Y2l0eS9wYXRjaGVzL2NvbXBvc2l0b3ItdnVsa2FuLWZpeC1idWlsZC5wYXRjaCBiL3NyY3BrZ3Mv bWV0YWNpdHkvcGF0Y2hlcy9jb21wb3NpdG9yLXZ1bGthbi1maXgtYnVpbGQucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk2MDU4MmRlZDdkCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9tZXRhY2l0eS9wYXRjaGVzL2NvbXBvc2l0b3ItdnVsa2FuLWZpeC1i dWlsZC5wYXRjaApAQCAtMCwwICsxLDI5IEBACitGcm9tIDk5MzYxZjI4Yzg3NjNlYTQ1NjliNWFl OTg3NjAyOGQ1M2FjOWEyMzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbGJlcnRz IE11a3R1cMSBdmVscyA8YWxiZXJ0cy5tdWt0dXBhdmVsc0BnbWFpbC5jb20+CitEYXRlOiBTdW4s IDI0IE1heSAyMDIwIDEzOjU4OjUxICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIGNvbXBvc2l0b3It dnVsa2FuOiBmaXggYnVpbGQKKworVktfUEhZU0lDQUxfREVWSUNFX1RZUEVfUkFOR0VfU0laRSBl bnVtIHdhcyByZW1vdmVkIGluIDEuMi4xNDAuCisKK2h0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H Tk9NRS9tZXRhY2l0eS8tL2lzc3Vlcy8xMAorLS0tCisgc3JjL2NvbXBvc2l0b3IvbWV0YS1jb21w b3NpdG9yLXZ1bGthbi5jIHwgMiArKworIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykK KworZGlmZiAtLWdpdCBzcmMvY29tcG9zaXRvci9tZXRhLWNvbXBvc2l0b3ItdnVsa2FuLmMgc3Jj L2NvbXBvc2l0b3IvbWV0YS1jb21wb3NpdG9yLXZ1bGthbi5jCitpbmRleCBiODdiNTE5NC4uNTNi N2IzZmYgMTAwNjQ0CistLS0gc3JjL2NvbXBvc2l0b3IvbWV0YS1jb21wb3NpdG9yLXZ1bGthbi5j CisrKysgc3JjL2NvbXBvc2l0b3IvbWV0YS1jb21wb3NpdG9yLXZ1bGthbi5jCitAQCAtODEwLDcg KzgxMCw5IEBAIGRldmljZV90eXBlX3RvX3N0cmluZyAoVmtQaHlzaWNhbERldmljZVR5cGUgdHlw ZSkKKyAgICAgICAgIHJldHVybiAiY3B1IjsKKyAgICAgICAgIGJyZWFrOworIAorKyNpZiBWS19I RUFERVJfVkVSU0lPTiA8IDE0MAorICAgICAgIGNhc2UgVktfUEhZU0lDQUxfREVWSUNFX1RZUEVf UkFOR0VfU0laRToKKysjZW5kaWYKKyAgICAgICBjYXNlIFZLX1BIWVNJQ0FMX0RFVklDRV9UWVBF X01BWF9FTlVNOgorICAgICAgIGRlZmF1bHQ6CisgICAgICAgICBicmVhazsKKy0tIAorR2l0TGFi CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUgYi9zcmNwa2dzL21ldGFj aXR5L3RlbXBsYXRlCmluZGV4IDdmYjg2ZmQ5NjRjLi40MzA5Nzc2YmQ1NCAxMDA2NDQKLS0tIGEv c3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21ldGFjaXR5L3RlbXBsYXRl CkBAIC0xLDE3ICsxLDE3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXRhY2l0eScKIHBrZ25h bWU9bWV0YWNpdHkKLXZlcnNpb249My4zMC4xCit2ZXJzaW9uPTMuMzcuMQogcmV2aXNpb249MQog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdldHRl eHQtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgeWVscC10b29scyB6ZW5pdHki CiBtYWtlZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBndGsrMy1kZXZl bCBsaWJjYW5iZXJyYS1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliZ3RvcC1kZXZlbCBsaWJTTS1k ZXZlbCBsaWJYY29tcG9zaXRlLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwKLSBsaWJYZml4ZXMtZGV2 ZWwgbGliWGluZXJhbWEtZGV2ZWwgbGliWHJlbmRlci1kZXZlbCBsaWJYMTEtZGV2ZWwgcGFuZ28t ZGV2ZWwKLSBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbCBWdWxrYW4tSGVhZGVycyB2dWxrYW4t bG9hZGVyIgorIGxpYlhmaXhlcy1kZXZlbCBsaWJYaW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVyLWRl dmVsIGxpYlgxMS1kZXZlbCBsaWJYcmVzLWRldmVsCisgcGFuZ28tZGV2ZWwgc3RhcnR1cC1ub3Rp ZmljYXRpb24tZGV2ZWwgVnVsa2FuLUhlYWRlcnMgdnVsa2FuLWxvYWRlciIKIGRlcGVuZHM9Inpl bml0eSIKIHNob3J0X2Rlc2M9IldpbmRvdyBNYW5hZ2VyIGZvciB0aGUgR05PTUUgZW52aXJvbm1l bnQiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5v cmcvR05PTUUvbWV0YWNpdHkiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wZjEz MTFiN2FhMzhkZTcxYzY2MDgwYmQyYjc0NGRlMmNkOTU4MGFmY2FlZTljNjA5N2E3ZDNmNWM0MjE3 OThhCitjaGVja3N1bT04MGQ2ZjNkOTVhNDMyOGZiMjZkMGE2NDcxZjU3NWI3NDJiMzZiOGYyNzIx ZjhmM2MxODA3MTk3ZmE5MDBhMTI2CgpGcm9tIDk4YmZlZDBkOWIwOGU4MWY5MTA5ZjQzOWU2Zjll YTdlOWNlZDBiNWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDIzOjQwOjM0ICsw MjAwClN1YmplY3Q6IFtQQVRDSCA1Ny84M10gZ25vbWUtZmxhc2hiYWNrOiB1cGRhdGUgdG8gMy4z Ny4yCgpBZGRlZCBQQU0gY29uZmlnIGFzIHN1Z2dlc3RlZCBieSBtbmFiaWQuCi0tLQogLi4uL2du b21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtIHwgIDYgKysrKwogc3JjcGtn cy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUgICAgICAgICAgICAgIHwgMzQgKysrKysrKysrKysr KystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21l LWZsYXNoYmFjay5wYW0KCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxl cy9nbm9tZS1mbGFzaGJhY2sucGFtIGIvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svZmlsZXMvZ25v bWUtZmxhc2hiYWNrLnBhbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u Zjc3NmYwYjM2MzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9m aWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtCkBAIC0wLDAgKzEsNiBAQAorIyVQQU0tMS4wCithdXRo ICAgICBpbmNsdWRlICBzeXN0ZW0tYXV0aAorYXV0aCAgICAgb3B0aW9uYWwgcGFtX2dub21lX2tl eXJpbmcuc28KK2FjY291bnQgIGluY2x1ZGUgIHN5c3RlbS1hdXRoCitwYXNzd29yZCBpbmNsdWRl ICBzeXN0ZW0tYXV0aAorc2Vzc2lvbiAgaW5jbHVkZSAgc3lzdGVtLWF1dGgKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mbGFzaGJh Y2svdGVtcGxhdGUKaW5kZXggZDMyMTIwY2FiNmYuLjY4YTFhNjc0YWNmIDEwMDY0NAotLS0gYS9z cmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWZsYXNo YmFjay90ZW1wbGF0ZQpAQCAtMSwyMCArMSwzNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25v bWUtZmxhc2hiYWNrJwogcGtnbmFtZT1nbm9tZS1mbGFzaGJhY2sKLXZlcnNpb249My4zNC4yCit2 ZXJzaW9uPTMuMzcuMgogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPWdpcgogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9 bWluaW11bSIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBnbGliLWRldmVs IGdldHRleHQiCi1tYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy1kZXZlbAotIGxpYmdsaWItZGV2ZWwgZ2RrLXBpeGJ1Zi1kZXZlbCB1cG93ZXItZGV2ZWwg aWJ1cy1kZXZlbCBwb2xraXQtZGV2ZWwKLSBwdWxzZWF1ZGlvLWRldmVsIGxpYmNhbmJlcnJhLWRl dmVsIGxpYnhjYi1kZXZlbCBsaWJYMTEtZGV2ZWwgcGFuZ28tZGV2ZWwKLSBsaWJ4a2JmaWxlLWRl dmVsIGdub21lLWJsdWV0b290aC1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIgorY29uZmlndXJl X2FyZ3M9Ii0td2l0aC1jb21waXotc2Vzc2lvbiAtLWVuYWJsZS1jb21waWxlLXdhcm5pbmdzPW1p bmltdW0iCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2V0dGV4dCBnZXR0ZXh0LWRldmVs IGF1dG9tYWtlIGxpYnRvb2wgZ2xpYi1kZXZlbCIKK21ha2VkZXBlbmRzPSJwYW0tZGV2ZWwgZWxv Z2luZC1kZXZlbCB1cG93ZXItZGV2ZWwgaWJ1cy1kZXZlbCBwb2xraXQtZGV2ZWwKKyBwdWxzZWF1 ZGlvLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYnhjYi1kZXZlbCBsaWJYMTEtZGV2ZWwgbGli eGtiZmlsZS1kZXZlbAorIGxpYmNvbXBpemNvbmZpZy1kZXZlbCBsaWJnbGliLWRldmVsIHBhbmdv LWRldmVsIGd0ayszLWRldmVsIGdkay1waXhidWYtZGV2ZWwKKyBnZG0tZGV2ZWwgZ25vbWUtYmx1 ZXRvb3RoLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgZ25vbWUtcGFuZWwtZGV2ZWwKKyBnc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIgogZGVwZW5kcz0iZ25vbWUtYmx1ZXRvb3RoIGdu b21lLXNlc3Npb24gZ25vbWUtc2V0dGluZ3MtZGFlbW9uCi0gZ25vbWUtcGFuZWwgZ25vbWUtdGhl bWVzLXN0YW5kYXJkIG1ldGFjaXR5IgorIGdub21lLXBhbmVsIGdub21lLXRoZW1lcy1leHRyYSBt ZXRhY2l0eSIKIHNob3J0X2Rlc2M9IkdOT01FIDMgc2Vzc2lvbiB3aXRoIHNpbWlsYXIgdXNlciBl eHBlcmllbmNlIHRvIHRoZSBHTk9NRSAyLnggc2VyaWVzIgogbWFpbnRhaW5lcj0ic2hpem9uaWMg PHJlYWx0aWF6QGdtYWlsLmNvbT4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVGbGFzaGJhY2siCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zYmU2NTM4OGNkMmM4ZjM5NzQxYmNjMDVkYTg3 ZWY0MDAzNTE4M2E5YTM5NTAyZDY3Njk2MjQyYzJhZWI0NjljCitjaGVja3N1bT1hYjBkZTAwYjBm NmM5YmYzMGMxOTY1MTU2NGJkOWE3NGJiZGZiN2Q3NmRkMjExOWIyNjMxYTM2NzFmOGJlNjUzCisK K3Bvc3RfZXh0cmFjdCgpIHsKKwl2c2VkIC1pICdzL2xpYmNvbXBpemNvbmZpZyA+PSAwXC45XC4x NFwuMC9saWJjb21waXpjb25maWcgPj0gMC44LjE2LjAvJyBcCisJCWNvbmZpZ3VyZS5hYworfQor CitwcmVfY29uZmlndXJlKCkgeworCWF1dG9yZWNvbmYgLWlmCit9CisKK3Bvc3RfaW5zdGFsbCgp IHsKKwl2aW5zdGFsbCAke0ZJTEVTRElSfS9nbm9tZS1mbGFzaGJhY2sucGFtIDY0NCAvZXRjL3Bh bS5kIGdub21lLWZsYXNoYmFjaworCXZzZWQgLWkgLWUgInMvIC0tc3lzdGVtZC8vZyIgXAorCQkk e0RFU1RESVJ9L3Vzci9saWJleGVjL2dub21lLWZsYXNoYmFjay17Y29tcGl6LG1ldGFjaXR5fQor fQoKRnJvbSBjNDQ3MGIzM2Q3NGM0ZTljZDA4M2I4OWQ1YmI4YTIzMzczYzJjNjgyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDoxMjoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0gg NTgvODNdIHRlcGw6IHVwZGF0ZSB0byA0Ljk5LjMKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvdGVwbC9wYXRjaGVzL25vLWdpci5wYXRjaCB8 IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvdGVwbC90ZW1wbGF0 ZSAgICAgICAgICAgICB8IDEwICsrKy0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RlcGwvcGF0 Y2hlcy9uby1naXIucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3No bGlicwppbmRleCA3NTkwYjc5Y2Q0Yi4uMDQyZjhlNTI5NTIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9z aGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzU0OSw3ICszNTQ5LDcgQEAgbGlid3hfZ3Rr M3VfbWVkaWEtMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4wLjRfMQogbGlid3hfZ3RrM3Vfcmli Ym9uLTMuMC5zby4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEKIGxpYnd4X2d0azN1X2dsLTMuMC5z by4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEKIGxpYnd4X2d0azN1X3N0Yy0zLjAuc28uMCB3eFdp ZGdldHMtZ3RrMy0zLjAuNF8xCi1saWJ0ZXBsLTQuc28uMCB0ZXBsLTQuMi4wXzEKK2xpYnRlcGwt NS5zby4wIHRlcGwtNC4yLjBfMQogbGlibm9tYWNzQ29yZS5zby4zIG5vbWFjcy0zLjEwLjJfNAog bGliYXVkaXQuc28uMSBsaWJhdWRpdC0yLjguNF8xCiBsaWJhdXBhcnNlLnNvLjAgbGliYXVwYXJz ZS0yLjguNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2gg Yi9zcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmUzNDAwMjdiN2YxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy90ZXBsL3BhdGNoZXMvbm8tZ2lyLnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK0Zyb20gMTdlNTdl ZDE1NjQ1MGZlNTkwMDFjYjBhMTRmOGQ4N2M0MGQ2YmY3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogU2F0 LCAxNSBBdWcgMjAyMCAwMDowOToxNSArMDIwMAorU3ViamVjdDogW1BBVENIXSBBbGxvdyBkaXNh YmxpbmcgZ2lyCisKKy0tLQorIG1lc29uX29wdGlvbnMudHh0IHwgNSArKysrKworIHRlcGwvbWVz b24uYnVpbGQgIHwgNCArKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKKwor ZGlmZiAtLWdpdCBtZXNvbl9vcHRpb25zLnR4dCBtZXNvbl9vcHRpb25zLnR4dAoraW5kZXggY2Fk OTdkZC4uNWU5OTA4NCAxMDA2NDQKKy0tLSBtZXNvbl9vcHRpb25zLnR4dAorKysrIG1lc29uX29w dGlvbnMudHh0CitAQCAtMywzICszLDggQEAgb3B0aW9uKAorICAgdHlwZTogJ2Jvb2xlYW4nLCB2 YWx1ZTogZmFsc2UsCisgICBkZXNjcmlwdGlvbjogJ0J1aWxkIEFQSSByZWZlcmVuY2UgKHJlcXVp cmVzIGd0ay1kb2MpJworICkKKytvcHRpb24oCisrICAnZ2lyJywKKysgIHR5cGU6ICdib29sZWFu JywgdmFsdWU6IHRydWUsCisrICBkZXNjcmlwdGlvbjogJ0J1aWxkIGdvYmplY3QtaW50cm9zcGVj dGlvbicKKyspCitkaWZmIC0tZ2l0IHRlcGwvbWVzb24uYnVpbGQgdGVwbC9tZXNvbi5idWlsZAor aW5kZXggMjI2ZDkxMy4uYjM1ZGQzYSAxMDA2NDQKKy0tLSB0ZXBsL21lc29uLmJ1aWxkCisrKysg dGVwbC9tZXNvbi5idWlsZAorQEAgLTE2NCw2ICsxNjQsOCBAQCBQS0dfQ09ORklHLmdlbmVyYXRl KHRlcGxfbGliLAorICAgbGlicmFyaWVzOiBURVBMX1BVQkxJQ19ERVBTLAorICkKKyAKKytpZiBn ZXRfb3B0aW9uKCdnaXInKQorKworIEdOT01FLmdlbmVyYXRlX2dpcigKKyAgIHRlcGxfbGliLAor ICAgZXhwb3J0X3BhY2thZ2VzOiAndGVwbC1AMEAnLmZvcm1hdChURVBMX0FQSV9WRVJTSU9OKSwK K0BAIC0xODIsMyArMTg0LDUgQEAgR05PTUUuZ2VuZXJhdGVfZ2lyKAorICAgIyBTdXBwb3J0IGZv ciBkZXBzIGJlaW5nIGJ1aWx0IGFzIHN1YnByb2plY3RzOgorICAgZGVwZW5kZW5jaWVzOiBURVBM X0RFUFMsCisgKQorKworK2VuZGlmCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dz L3RlcGwvdGVtcGxhdGUgYi9zcmNwa2dzL3RlcGwvdGVtcGxhdGUKaW5kZXggZjRkMzcxZDYwM2Qu Ljg5MzMzYzc3YTE5IDEwMDY0NAotLS0gYS9zcmNwa2dzL3RlcGwvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy90ZXBsL3RlbXBsYXRlCkBAIC0xLDEwICsxLDEwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICd0ZXBsJwogcGtnbmFtZT10ZXBsCi12ZXJzaW9uPTQuNC4wCit2ZXJzaW9uPTQuOTkuMwogcmV2 aXNpb249MQotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotYnVpbGRfaGVscGVyPSJnaXIiCi1j b25maWd1cmVfYXJncz0iJCh2b3B0X2VuYWJsZSBnaXIgaW50cm9zcGVjdGlvbikiCitidWlsZF9z dHlsZT1tZXNvbgorYnVpbGRfaGVscGVyPWdpcgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29s IGdpciBnaXIpIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWciCiBtYWtl ZGVwZW5kcz0iYW10ay1kZXZlbCBsaWJnbGliLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsIGd0 ayszLWRldmVsCiAgbGlieG1sMi1kZXZlbCB1Y2hhcmRldC1kZXZlbCIKQEAgLTEzLDcgKzEzLDcg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Q cm9qZWN0cy9UZXBsIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTZmNjY3M2E4 YTI3ZThmMjgwNzI1ZGI4ZmJhY2VjNzliMjA2NzZhZTA1NTg3NTUyMzlkMTVhOTgwOGZhYTI1Ngor Y2hlY2tzdW09ZTRhZmU2MzRmMDBjNTUzMGFlNTJkNzA2ZDljM2E5YmRmMmRiYzc0YjA0NTlhMzYz NzAzYTBhOWI0YTVlMzE1NwogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2Rl ZmF1bHQ9ImdpciIKCkZyb20gYjllYjhjNWUzNGM2NjY1MDU5MTFlYWM5MGQ4ZjUxMzNlMDRkY2Yx YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6MTU6NTAgKzAyMDAKU3ViamVj dDogW1BBVENIIDU5LzgzXSBnZWRpdDogdXBkYXRlIHRvIDMuMzcuMwoKLS0tCiBjb21tb24vc2hs aWJzICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUgfCAyMSArKysrKysr KysrLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5k ZXggMDQyZjhlNTI5NTIuLjY2ODU2MjQ2OGNiIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTM2NzYsNyArMzY3Niw3IEBAIGxpYnFodHRwZW5naW5lLnNv LjEgcWh0dHBlbmdpbmUtMS4wLjFfMQogbGlicW1kbnNlbmdpbmUuc28uMCBxbWRuc2VuZ2luZS0w LjEuMF8xCiBsaWJ5YW5nLnNvLjEgbGlieWFuZy0xLjByNV8xCiBsaWJodHAuc28uMiBsaWJodHAt MC41LjMwXzEKLWxpYmdlZGl0LTMuMzYuc28gZ2VkaXQtMy4zNi4xXzEKK2xpYmdlZGl0LTMuMzgu c28gZ2VkaXQtMy4zNy4zXzEKIGxpYmNoZXdpbmcuc28uMyBsaWJjaGV3aW5nLTAuNS4xXzEKIGxp YmR3YXJ2ZXMuc28uMSBwYWhvbGUtMS4xMl8xCiBsaWJkd2FydmVzX2VtaXQuc28uMSBwYWhvbGUt MS4xMl8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dlZGl0L3RlbXBsYXRlIGIvc3JjcGtncy9nZWRp dC90ZW1wbGF0ZQppbmRleCA0ZTI3M2FhZjE4Mi4uYTEzZTkxZjVmYzAgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ2VkaXQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZQpAQCAtMSwx NCArMSwxNCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2VkaXQnCiBwa2duYW1lPWdlZGl0Ci12 ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjMKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0i Z2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIHB5Y29tcGlsZV9kaXJzPSJ1c3IvbGliL2dlZGl0L3Bs dWdpbnMiCi1jb25maWd1cmVfYXJncz0iLURwbHVnaW5zPXRydWUgLUR2YXBpPSQodm9wdF9pZiB2 YWxhIHRydWUgZmFsc2UpCi0gLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxz ZSkiCitjb25maWd1cmVfYXJncz0iLURwbHVnaW5zPXRydWUKKyAkKHZvcHRfYm9vbCBnaXIgdmFw aSkgJCh2b3B0X2Jvb2wgZ2lyIGludHJvc3BlY3Rpb24pIgogaG9zdG1ha2VkZXBlbmRzPSJpdHN0 b29sIHBrZy1jb25maWcgZ2xpYi1kZXZlbCBnZGstcGl4YnVmIHBlcmwgZ2V0dGV4dAotICQodm9w dF9pZiB2YWxhIHZhbGEpIgorICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3Nl dHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBnc3BlbGwtZGV2ZWwgZ3Rrc291cmNldmlldzQt ZGV2ZWwKICBsaWJwZWFzLWRldmVsIGxpYnNvdXAtZGV2ZWwgdGVwbC1kZXZlbCAkKHZvcHRfaWYg Z2lyICdweXRob24zLWdvYmplY3QtZGV2ZWwnKSIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGls cyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGlzby1jb2RlcyIKQEAgLTE3LDIzICsxNywyMiBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0Fw cHMvR2VkaXQiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02ZGMzOGVkYTIyN2Qx YzM2OGUwMzllOWJmZjQ4NWQwYmVlOWE0OWQ1Zjk1NjBjMzg3ZWUwOGY1ODE4YTRlMzg3Ci1zaGxp Yl9wcm92aWRlcz0ibGliZ2VkaXQtMy4zNi5zbyIKK2NoZWNrc3VtPTgxMzdjN2Q5NmExOTQ1MmVl MDRjOTE1Y2IyNWJhNGRhMTM0NmFmOGZlMDQ5NzQ1NjQxN2NjZmE2MjhmMTA2ZDMKK3NobGliX3By b3ZpZGVzPSJsaWJnZWRpdC0zLjM4LnNvIgogcHl0aG9uX3ZlcnNpb249MwogCi1idWlsZF9vcHRp b25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9v cHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogZ2VkaXQtZGV2ZWxf cGFja2FnZSgpIHsKLQlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0gZ3Rrc291cmNldmlldy1kZXZlbCBsaWJwZWFzLWRldmVsIgorCWRlcGVuZHM9IiR7c291cmNl cGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBndGtzb3VyY2V2aWV3NC1kZXZlbAorCSBsaWJw ZWFzLWRldmVsIHRlcGwtZGV2ZWwiCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVz IgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGli L3BrZ2NvbmZpZwogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUg dXNyL3NoYXJlL2dlZGl0L2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxh IiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gYWNkYzM4 ZmZmMDY0MmVlY2ZmNzc1MzkxZjcwOGE1NzlmNTNlYjk1YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwg MTUgQXVnIDIwMjAgMDA6MTg6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDYwLzgzXSBnZWRpdC1w bHVnaW5zOiByZWJ1aWxkIGFnYWluc3QgZ2VkaXQtMy4zNy4zCgotLS0KIHNyY3BrZ3MvZ2VkaXQt cGx1Z2lucy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZQppbmRleCBmMmY5NGU2M2Y1OS4uZjE2 YzMwN2UwNTkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2dlZGl0LXBsdWdpbnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnZWRpdC1wbHVnaW5zJwogcGtnbmFtZT1nZWRpdC1wbHVnaW5zCiB2ZXJz aW9uPTMuMzYuMgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIHB5 Y29tcGlsZV9kaXJzPSJ1c3IvbGliL2dlZGl0L3BsdWdpbnMiCiBob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSBhcHBzdHJlYW0tZ2xpYiBw eXRob24zLWdvYmplY3QKCkZyb20gYTVjM2M0ZWYzNmM5NzI3YTY2OGE0YzUyZGI4ZTA2MTM1ODI5 NjJlZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6MzM6NDkgKzAyMDAKU3Vi amVjdDogW1BBVENIIDYxLzgzXSBnbm9tZS1sYXRleDogdXBkYXRlIHRvIDMuMzcuMgoKLS0tCiBz cmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1sYXRleC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUKaW5kZXggOTBk NjBiZTg2MGEuLmU0ZTJmNjI2Mjk2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWxhdGV4L3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1sYXRleCcKIHBrZ25hbWU9Z25vbWUtbGF0ZXgK LXZlcnNpb249My4zMi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQog YnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVf YXJncz0iLS1kaXNhYmxlLWFwcHN0cmVhbS11dGlsIC0tZGlzYWJsZS1kY29uZi1taWdyYXRpb24K QEAgLTE1LDcgKzE1LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 aWtpLmdub21lLm9yZy9BcHBzL0dOT01FLUxhVGVYIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09MGYwNjljN2I0YzY3NTQyNTVhMWM3ZTNlM2IwNTA5MjVkODA3NmY1NTQ1ODUyNmEz MGFiNTllMGE3ZDUyYWNjOQorY2hlY2tzdW09YTM1MjFlMjFkNGNjNWJjNjBmZjY5NGY1MjA5ZjQ5 OWNhYTgwZjM5NWNlNWQ2MmNiNjMyZTQyNDNhZDI3YmFkMAogCiBidWlsZF9vcHRpb25zPSJnaXIi CiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gY2Q5NjcyYWExNjBkMWE2NjdhODM1 MjFhYWZlMGZkMzMzNTkzMDMzNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6 MjM6MzMgKzAyMDAKU3ViamVjdDogW1BBVENIIDYyLzgzXSBiYW9iYWI6IHVwZGF0ZSB0byAzLjM3 LjkwCgotLS0KIHNyY3BrZ3MvYmFvYmFiL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv YmFvYmFiL3RlbXBsYXRlIGIvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUKaW5kZXggYTAyOGJlNGNk NWIuLjYwODNhNzhmNTRmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2Jhb2JhYicKIHBrZ25hbWU9YmFvYmFiCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0z LjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJn ZXR0ZXh0IHBrZy1jb25maWcgaXRzdG9vbCBnbGliLWRldmVsIHZhbGEiCkBAIC0xMSw0ICsxMSw0 IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHRkRMLTEuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL2FjdGlvbi9zaG93L0FwcHMvRGlza1VzYWdlQW5hbHl6ZXIiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03Zjk4MWQ0ZjEzNWU0ZjgwZmJhM2Y2NmU4 NmIwZWVlZGM5NGEyNDM0NjQ5MjYyZmYwMWE1ZjBjYjAyN2IyMGM1CitjaGVja3N1bT00MWJlMzhl NDNmYWFmYjM5Mjc2OWM4NzllMWU3NjJjYTM4ZTJkNzUxYzE3MWJlYTFmOTA0NzI5MGE4ODNmZWZl CgpGcm9tIDU4MWZmMDEzZGRmNzllNDdmN2U3ZmViMmZkNjVlYzk3MzdlOGI1ODIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjMxOjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCA2 My84M10gZ25vbWUtYm94ZXM6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUt Ym94ZXMvdGVtcGxhdGUgfCA3ICsrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYm94ZXMvdGVtcGxhdGUKaW5kZXggMGZhMmFlNzZjNzIuLmZk OGZlYmNiY2Q4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtYm94ZXMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1ib3hlcycKIHBrZ25hbWU9Z25vbWUtYm94ZXMKLXZlcnNpb249My4z Ni41Cit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVp bGRfc3R5bGU9bWVzb24KQEAgLTgsNyArOCw4IEBAIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBp dHN0b29sIHBrZy1jb25maWcgdmFsYSBnbGliLWRldmVsIgogbWFrZWRlcGVuZHM9ImNsdXR0ZXIt Z3RrLWRldmVsIGZyZWVyZHAtZGV2ZWwgZ3RrLXZuYy1kZXZlbCBsaWJhcmNoaXZlLWRldmVsCiAg bGliZ2xpYi1kZXZlbCBsaWJndWRldi1kZXZlbCBsaWJvc2luZm8tZGV2ZWwgbGlic2VjcmV0LWRl dmVsIGxpYnNvdXAtZGV2ZWwKICBsaWJ1c2ItZGV2ZWwgbGlidmlydC1nbGliLWRldmVsIGxpYnht bDItZGV2ZWwgc3BpY2UtZ3RrLWRldmVsIHNwaWNlLXByb3RvY29sCi0gdHJhY2tlci1kZXZlbCB2 YWxhLWRldmVsIHdlYmtpdDJndGstZGV2ZWwgdnRlMy1kZXZlbCIKKyB0cmFja2VyLWRldmVsIHZh bGEtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB2dGUzLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVs CisgbGliaGFuZHktZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1p Y29uLXRoZW1lIGxpYm9zaW5mbyBsaWJ2aXJ0LWdsaWIgcWVtdSB0cmFja2VyIgogc2hvcnRfZGVz Yz0iR05PTUUgMyBhcHBsaWNhdGlvbiB0byBhY2Nlc3MgcmVtb3RlIG9yIHZpcnR1YWwgc3lzdGVt cyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCkBAIC0x Niw0ICsxNyw0IEBAIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Cb3hlcyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0 aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2dub21lLWJveGVzL2dub21lLTMtMzYvTkVXUyIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjNTRjYWJlMzU1ZTg3OGQwNDU3NTE3MzQ2 ZTQyNDdhODYwYjY4ODM0MTNkM2JmNzc2ODFkY2QxMWVmNDFiY2UKK2NoZWNrc3VtPTEyMmRhMzkx MzFhY2I5NzFiM2U3NjQwMDZjNWMzNjk4NDQ3YTVkOTIyMGFhYjMzODNkYjYzYzA5MjlkZTkxNWQK CkZyb20gYjU3MjBiZjM4YzNiZGRjODZjMmNlM2I4MjdkMjdkMTE0ODExMTMyNyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6MzU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDY0 LzgzXSBnbm9tZS1jYWxjdWxhdG9yOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2du b21lLWNhbGN1bGF0b3IvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNh bGN1bGF0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNhbGN1bGF0b3IvdGVtcGxhdGUKaW5k ZXggMDYyMTRiMDhkOWIuLjgxMTEyODQ0YTRlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNh bGN1bGF0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtY2FsY3VsYXRvcicK IHBrZ25hbWU9Z25vbWUtY2FsY3VsYXRvcgotdmVyc2lvbj0zLjM2LjAKLXJldmlzaW9uPTIKK3Zl cnNpb249My4zNy45MAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBl cj0iZ2lyIgogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9v bCBwa2ctY29uZmlnIHZhbGEiCkBAIC0xNCw0ICsxNCw0IEBAIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0NhbGN1bGF0b3Ii CiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9t ZS1jYWxjdWxhdG9yL2dub21lLTMtMzIvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPWEyZTgzMGY5Yzk4NTZmYWQ2NWRhZDFkNmMwYWU2YWJhZDBmMGI0OTZjOTk4NGFjMDA1 MzE1YzVjYzQyMjBkYjMKK2NoZWNrc3VtPWI4OTViNWVjNjJiOTQ5NTgxMGIwYTZjYjkwMTU4ZTZk MTYwNzA5NmQxNTBiNGFjNWNkY2Y4YWVmY2VkZWQ0YzEKCkZyb20gNTNkZGI3OTBlYTRlNGM2NWVl YTU2Yzg4NjBlMzJmZDFhNWMzNjRmMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAg MDQ6NDQ6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDY1LzgzXSBnbm9tZS1kaXNrLXV0aWxpdHk6 IHVwZGF0ZSB0byAzLjM3LjIKCi0tLQogc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxh dGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ25vbWUtZGlzay11dGlsaXR5L3RlbXBsYXRlCmluZGV4IGRjNjdiYmJhNzg1Li4x OTU1NjExODUwYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kaXNrLXV0aWxpdHknCiBwa2duYW1lPWdu b21lLWRpc2stdXRpbGl0eQotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4z Ny4yCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EbG9n aW5kPW5vbmUiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ3RrLWRvYyBpbnRsdG9vbCBw a2ctY29uZmlnIGxpYnhzbHQiCkBAIC0xMyw1ICsxMyw1IEBAIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9EaXNrcyIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTc5MWIxOGYyMzFiY2JjNmQ5NDFhZjM4MzdjYTViZTE0ZjIx NTdlNWNlM2QzMmJkYzViOWViODk0N2UxMmI0MTQKK2NoZWNrc3VtPTFjOTk4ZjU1NGRmZWM4YjQy M2M2ODU4NzIzNTNhNWRiY2Y2NThjOWY3YmE0NzdjYWM3NjhhOTI1NjM2NDMzMDgKIGxpYjMyZGlz YWJsZWQ9eWVzCgpGcm9tIGU0OWEzMzlmNDI0NTM0ZDE3MjMzMWE3MTM1OGE4MzRmN2IyYzNiMTcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjQ5OjI2ICswMjAwClN1YmplY3Q6 IFtQQVRDSCA2Ni84M10gZ25vbWUtc2NyZWVuc2hvdDogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQog c3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNob3Qv dGVtcGxhdGUKaW5kZXggOTljYWI2MmVlZTEuLjU0MTE2YWE4MWVjIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5z aG90L3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1zY3JlZW5zaG90JwogcGtnbmFtZT1nbm9tZS1zY3JlZW5zaG90Ci12ZXJzaW9uPTMuMzYuMAot cmV2aXNpb249MgordmVyc2lvbj0zLjM3LjkwCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNv bgogaG9zdG1ha2VkZXBlbmRzPSJhcHBkYXRhLXRvb2xzIGdldHRleHQgZ2xpYi1kZXZlbCBpdHN0 b29sIHBrZy1jb25maWciCi1tYWtlZGVwZW5kcz0ibGliY2FuYmVycmEtZGV2ZWwiCittYWtlZGVw ZW5kcz0ibGliY2FuYmVycmEtZGV2ZWwgbGliaGFuZHkxLWRldmVsIgogZGVwZW5kcz0iZGVza3Rv cC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0iU2NyZWVuc2hvdCBjYXB0dXJlIHV0aWxpdHkgZm9y IEdOT01FIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25v bWUub3JnL0dOT01FL2dub21lLXNjcmVlbnNob3QiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT0zMzQ5NWQ4OTI3MDcxNzkyNTRiNzQzZjhmNzBjOWE4MmNkZTVjNWYyYzdlYTNkYjYz NGEyYmE3ZWE3MzMxMjY2CitjaGVja3N1bT03YTM5Y2M3ODQ3YTQ4MmZhOWFhZDk4OWNlNjVkZjBl ZjVlZTllZjc5YWNlZDc1ZDE5MzFiN2U5ZTg2YzEwZjEzCgpGcm9tIDg3ZDRlYzBkMDQ1NDQ0ZTdh ZDc1ZjA1NmI3Nzc0NmFiNWFjNWQwMTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIw IDA0OjUxOjAwICswMjAwClN1YmplY3Q6IFtQQVRDSCA2Ny84M10gZ25vbWUtc3lzdGVtLW1vbml0 b3I6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3Iv dGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zeXN0ZW0tbW9uaXRvci90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUKaW5kZXggZmYxMWIz NTkwYTQuLmE0NjgxNGEyNjNiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXN5c3RlbS1tb25p dG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUK QEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zeXN0ZW0tbW9uaXRv cicKIHBrZ25hbWU9Z25vbWUtc3lzdGVtLW1vbml0b3IKLXZlcnNpb249My4zNi4xCit2ZXJzaW9u PTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0i LURzeXN0ZW1kPWZhbHNlIgpAQCAtMTEsNCArMTEsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvU3lzdGVtTW9uaXRvciIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg2NmI0N2FiMGY0Yzc1YjBlYzU3ZDYzMDAzMzdh NzM3MzQ2M2FhYWQ1ZGY5NWVkZGZlNTM1NGMyMmJlN2JjYTEKK2NoZWNrc3VtPWEyYmYwMGE3NDRi ZTgzNjI3OWUxZDEyZDQwY2ZiMzdiOGFkOGUxNTBhYTllZjY4NzgxNzQzOTliZjI0NTFmMTQKCkZy b20gMzdiY2FlZDA4N2VkYmI2MjE1MTk5NTRkYTUyOGRhMGQzNjczYTU3NSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTY6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDY4Lzgz XSBndGtzb3VyY2V2aWV3NDogdXBkYXRlIHRvIDQuNy45MAoKLS0tCiBzcmNwa2dzL2d0a3NvdXJj ZXZpZXc0L3RlbXBsYXRlIHwgMjkgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlIGIvc3JjcGtncy9ndGtzb3VyY2V2aWV3 NC90ZW1wbGF0ZQppbmRleCA2ODQ4NzE2NzczYy4uOTI2YTM5ZmQyMzkgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ3Rrc291cmNldmlldzQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ndGtzb3VyY2V2aWV3 NC90ZW1wbGF0ZQpAQCAtMSwzMiArMSwzNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3Rrc291 cmNldmlldzQnCiBwa2duYW1lPWd0a3NvdXJjZXZpZXc0Ci12ZXJzaW9uPTQuMi4wCi1yZXZpc2lv bj0yCit2ZXJzaW9uPTQuNy45MAorcmV2aXNpb249MQogd3Jrc3JjPSJndGtzb3VyY2V2aWV3LSR7 dmVyc2lvbn0iCi1idWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitidWlsZF9zdHlsZT1tZXNvbgog YnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLS1lbmFibGUtZ2xhZGUtY2F0YWxv ZyAkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQotICQodm9wdF9lbmFibGUgdmFsYSkg JCh2b3B0X2VuYWJsZSBndGtfZG9jIGd0ay1kb2MpIgorY29uZmlndXJlX2FyZ3M9Ii1EZ2xhZGVf Y2F0YWxvZz10cnVlICQodm9wdF9ib29sIGdpciBnaXIpCisgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkp ICQodm9wdF9ib29sIGd0a19kb2MgZ3RrX2RvYykiCiBob3N0bWFrZWRlcGVuZHM9Imd0ayszLWRl dmVsIGdsaWItZGV2ZWwgaXRzdG9vbCBsaWJ4c2x0IHBrZy1jb25maWcKLSAkKHZvcHRfaWYgdmFs YSB2YWxhKSAkKHZvcHRfaWYgZ3RrX2RvYyBndGstZG9jKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEp ICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgogbWFrZWRlcGVuZHM9ImdsYWRlMy1kZXZlbCBn dGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhtbDItZGV2ZWwKLSAkKHZvcHRfaWYgdmFsYSB2 YWxhKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogc2hvcnRfZGVzYz0iVGV4dCB3aWRnZXQgdGhh dCBleHRlbmRzIEdUSysgR3RrVGV4dFZpZXcgd2lkZ2V0IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9HdGtTb3VyY2VWaWV3Igog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2d0a3NvdXJjZXZpZXcvJHt2ZXJzaW9uJS4qfS9ndGtz b3VyY2V2aWV3LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzQzMWViMjM0ZGM4M2M3ODE5 ZTU4Zjc3ZGQyYWY5NzMyNTJjNzc1MGRhMWM5ZDEyNWRkYzk0MjY4Zjk0ZjY3NQorY2hlY2tzdW09 OTgzYmRjYjg4Zjk4Mjg1YjNiOTk3YzkzMzUwNTdjOGZiYzQ1YWFkMGE3YzEzY2I2NWViMzY1NTY3 ZTI2YmFhZgogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZh bGEgZ3RrX2RvYyIKK2J1aWxkX29wdGlvbnM9ImdpciBndGtfZG9jIgogZGVzY19vcHRpb25fZ3Rr X2RvYz0iQnVpbGQgQVBJIGRvY3MgdmlhIGd0ay1kb2MiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImdpciB2YWxhIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGlmIFsgLXogIiRDUk9T U19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBndGtfZG9jIgogZmkK IAorIyBOZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CisKIGd0a3NvdXJjZXZpZXc0LWRldmVs X3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJ4bWwy LWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNj Kz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCkBAIC0zNiwxMSArNDEsOSBAQCBndGtzb3VyY2V2aWV3 NC1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSB1c3Iv c2hhcmUvZ2xhZGUKIAkJdm1vdmUgdXNyL3NoYXJlL2d0ay1kb2MKLQkJaWYgWyAiJGJ1aWxkX29w dGlvbl92YWxhIiBdOyB0aGVuCi0JCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQotCQlmaQogCQlpZiBb ICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAK KwkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQogfQoKRnJvbSAxYjRiYjI5OWE1MTJj ZDQyNzMyN2Q2M2E0ZmNhZjA4MjE1NTNhMGNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcg MjAyMCAwNToyODoxNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNjkvODNdIHN5c3Byb2Y6IHVwZGF0 ZSB0byAzLjM3LjkwCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArKy0tCiAuLi4vcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6 ZS1mb3JtYXQucGF0Y2ggICAgICAgIHwgMTIgLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3N5c3Byb2Yv cGF0Y2hlcy9idWlsZC5wYXRjaCAgICAgICAgICAgICAgICAgIHwgMTAgKysrKysrKysrKwogc3Jj cGtncy9zeXNwcm9mL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsr LS0KIDQgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYWxsb2NzLWJ5LXNpemUt Z3NpemUtZm9ybWF0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zeXNwcm9mL3Bh dGNoZXMvYnVpbGQucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3No bGlicwppbmRleCA2Njg1NjI0NjhjYi4uNTg2ODY5ZGZhMzEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9z aGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzE1Niw4ICszMTU2LDggQEAgbGlibWlyYWdl LnNvLjExIGxpYm1pcmFnZS0zLjEuMF8xCiBsaWJ3a2h0bWx0b3guc28uMCBsaWJ3a2h0bWx0b3Bk Zi0wLjEyLjVfMQogbGliaXhtbC5zby4xMCBsaWJ1cG5wMS44LTEuOC4yXzEKIGxpYnVwbnAuc28u MTMgbGlidXBucDEuOC0xLjguNF8xCi1saWJzeXNwcm9mLTMuc28gc3lzcHJvZi0zLjM0LjBfMQot bGlic3lzcHJvZi11aS0zLnNvIHN5c3Byb2YtMy4zNC4wXzEKK2xpYnN5c3Byb2YtNC5zbyBzeXNw cm9mLTMuMzcuOTBfMQorbGlic3lzcHJvZi11aS00LnNvIHN5c3Byb2YtMy4zNy45MF8xCiBsaWJt b3pqcy01Mi5zbyBtb3pqczUyLTUyLjMuMF8xCiBsaWJtb3pqcy01Mi5zby4wIG1vempzNTItNTIu My4wXzEKIGxpYnZhbGEtMC40OC5zby4wIGxpYnZhbGEtMC40OC4wXzEKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaCBi L3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWZlZTA3ZWJiYzIuLjAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1h dC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLWRpZmYgLXJhdU4gc3JjL3Rl c3RzL2FsbG9jcy1ieS1zaXplLmMgc3JjL3Rlc3RzL2FsbG9jcy1ieS1zaXplLmMKLS0tLSBzcmMv dGVzdHMvYWxsb2NzLWJ5LXNpemUuYwkyMDIwLTAzLTIyIDIwOjAwOjEyLjY3NzA0ODgyMiArMDEw MAotKysrIHNyYy90ZXN0cy9hbGxvY3MtYnktc2l6ZS5jCTIwMjAtMDMtMjIgMjA6MDE6MDcuMDAw NDE4MzYxICswMTAwCi1AQCAtMTA5LDcgKzEwOSw3IEBACi0gICAgIHsKLSAgICAgICBjb25zdCBJ dGVtICppdGVtID0gJmdfYXJyYXlfaW5kZXggKGFyLCBJdGVtLCBpKTsKLSAKLS0gICAgICBnX3By aW50ICgiJSJHX0dVSU5UNjRfRk9STUFUIiwlIkdfR1VJTlQ2NF9GT1JNQVQiLCUiR19HVUlOVDY0 X0ZPUk1BVCJcbiIsCi0rICAgICAgZ19wcmludCAoIiUiR19HU0laRV9GT1JNQVQiLCUiR19HU0la RV9GT1JNQVQiLCUiR19HU0laRV9GT1JNQVQiXG4iLAotICAgICAgICAgICAgICAgIGl0ZW0tPnNp emUsIGl0ZW0tPmNtcCwgaXRlbS0+Y291bnQpOwotICAgICB9Ci0gfQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9zeXNwcm9mL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hl cy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWI3 YzJjMWMxNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWls ZC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNw cm9mLWNhcHR1cmUtY29uZGl0aW9uLmMKKysrKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3By b2YtY2FwdHVyZS1jb25kaXRpb24uYworQEAgLTI2OSw2ICsyNjksNyBAQCBzeXNwcm9mX2NhcHR1 cmVfY29uZGl0aW9uX2NvcHkgKGNvbnN0IFN5c3Byb2ZDYXB0dXJlQ29uZGl0aW9uICpzZWxmKQor ICAgICB9CisgCisgICBzeXNwcm9mX2Fzc2VydF9ub3RfcmVhY2hlZCAoKTsKKysgIHJldHVybiBO VUxMOworIH0KKyAKKyBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3Rl bXBsYXRlIGIvc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlCmluZGV4IDY4YmNhNjAyNTUzLi4xNTE2 NmUyOGUxYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3Mvc3lzcHJvZi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3N5c3Byb2YnCiBwa2duYW1lPXN5c3Byb2YKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzcu OTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURlbmFi bGVfZ3RrPXRydWUgLURzeXN0ZW1kdW5pdGRpcj1kZWxldGVtZSIKQEAgLTExLDcgKzExLDcgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3N5 c3Byb2YuY29tLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv biUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg2NzBkYjRkYWNm N2IyMTlkMzBjNTc1YzQ2NWIxN2M4ZWQ2NzI0ZGJhZGUzNDdmMmNkZTk1NDhiZmYwMzkxMDgKK2No ZWNrc3VtPTYxODEwYzM2YmMwYmZiNWNlODgwOGU2YjJmYmVmYzNjZTBjNTEwYzU3YjFkMjZiYmE2 NmNjNjM2Zjc1YjgwNDEKIAogIyBmb3IgSVRTIHJ1bGVzCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07 IHRoZW4KCkZyb20gNzdhNTdlMGI2N2UwNDI1NjdlMTBjNDIzMzBmNGI2YTliOWUzMWMzMSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDY6MjM6MDQgKzAyMDAKU3ViamVjdDogW1BB VENIIDcwLzgzXSBOZXcgcGFja2FnZTogbW96anM3OC03OC4xLjAKCi0tLQogY29tbW9uL3NobGli cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3MvbW96anM3 OC1kZXZlbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4vMDAxLXNpbGVuY2Ut c2FuZGJveC12aW9sYXRpb25zLnBhdGNoICAgICAgfCAgMjcgKysrKysKIHNyY3BrZ3MvbW96anM3 OC9wYXRjaGVzLzAwMi1maXgtc29uYW1lLnBhdGNoICB8ICAyMiArKysrCiAuLi4vbW96anM3OC9w YXRjaGVzLzAwMy1maXgtd2FzbS1hcm0ucGF0Y2ggICAgfCAgMTYgKysrCiAuLi4vbW96anM3OC9w YXRjaGVzLzAwNC1maXgtbXVzbC1idWlsZC5wYXRjaCAgfCAgMTcgKysrCiAuLi4vMDA1LXNwaWRl cm1vbmtleS1jaGVja3MtZGlzYWJsZS5wYXRjaCAgICAgfCAgMTIgKysKIC4uLi8wMDYtbW96anM3 OC5wYy1ob25vci1zeXNyb290LnBhdGNoICAgICAgICB8ICAxMCArKwogLi4uL3BhdGNoZXMvMDA3 LWZpeC1taXBzLXNnaWRlZnNfaC5wYXRjaCAgICAgIHwgIDExICsrCiBzcmNwa2dzL21vempzNzgv cGF0Y2hlcy9jb3ZlcmFnZS1hcGkucGF0Y2ggICAgfCAxMDcgKysrKysrKysrKysrKysrKysrCiBz cmNwa2dzL21vempzNzgvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgNzMgKysrKysr KysrKysrCiBzcmNwa2dzL21vempzNzgvdXBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogMTIgZmlsZXMgY2hhbmdlZCwgMjk4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEy MDAwMCBzcmNwa2dzL21vempzNzgtZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21v empzNzgvcGF0Y2hlcy8wMDEtc2lsZW5jZS1zYW5kYm94LXZpb2xhdGlvbnMucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDItZml4LXNvbmFtZS5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMy1maXgtd2Fz bS1hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8w MDQtZml4LW11c2wtYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempz NzgvcGF0Y2hlcy8wMDUtc3BpZGVybW9ua2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA2LW1vempzNzgucGMtaG9ub3It c3lzcm9vdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVz LzAwNy1maXgtbWlwcy1zZ2lkZWZzX2gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L21vempzNzgvcGF0Y2hlcy9jb3ZlcmFnZS1hcGkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL21vempzNzgvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempz NzgvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5k ZXggNTg2ODY5ZGZhMzEuLjAwNzE4MmZmYjUyIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTM1MzQsNiArMzUzNCw3IEBAIGxpYktGNVN5bmRpY2F0aW9u LnNvLjUgc3luZGljYXRpb24tNS41MC4wXzEKIGxpYmxxci0xLnNvLjAgbGlibHFyLTAuNC4yXzEK IGxpYm1vempzLTYwLnNvLjAgbW96anM2MC02MC4wLjJfMQogbGlibW96anMtNjguc28uMCBtb3pq czY4LTY4LjguMF8xCitsaWJtb3pqcy03OC5zby4wIG1vempzNzgtNzguMS4wXzEKIGxpYmVidXIx Mjguc28uMSBsaWJlYnVyMTI4LTEuMi40XzEKIGxpYmd0a3NvdXJjZXZpZXctNC5zby4wIGd0a3Nv dXJjZXZpZXc0LTQuMC4yXzEKIGxpYnd4X2d0azN1X3Byb3BncmlkLTMuMC5zby4wIHd4V2lkZ2V0 cy1ndGszLTMuMC40XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC1kZXZlbCBiL3NyY3Br Z3MvbW96anM3OC1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMC4u NzcxMzU5OTM1NmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgtZGV2ZWwKQEAg LTAsMCArMSBAQAorbW96anM3OApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMS1zaWxlbmNlLXNhbmRib3gtdmlvbGF0aW9u cy5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMS1zaWxlbmNlLXNhbmRib3gtdmlv bGF0aW9ucy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGMw MTE5NGI2NDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDEt c2lsZW5jZS1zYW5kYm94LXZpb2xhdGlvbnMucGF0Y2gKQEAgLTAsMCArMSwyNyBAQAorIkNhcnJp ZWQgb3ZlciArIHVwZGF0ZWQgZnJvbSBtb3pqczY4IgorVXBzdHJlYW06IG5vCitGcm9tIDlhZDEw NTY5ZTExYTJmYjk2Mzc3MTg4Zjg5NWJjNjZhYmNjOTUxMWQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBNYXJjLUFudG9pbmUgUGVyZW5ub3UgPE1hcmMtQW50b2luZUBQZXJlbm5vdS5j b20+CitEYXRlOiBXZWQsIDUgU2VwIDIwMTggMTU6MDU6MjQgKzAyMDAKK1N1YmplY3Q6IFtQQVRD SF0gc2lsZW5jZSBzYW5kYm94IHZpb2xhdGlvbnMKKworU2lnbmVkLW9mZi1ieTogTWFyYy1BbnRv aW5lIFBlcmVubm91IDxNYXJjLUFudG9pbmVAUGVyZW5ub3UuY29tPgorLS0tCisgcHl0aG9uL21v emJ1aWxkL21vemJ1aWxkL2Zyb250ZW5kL2VtaXR0ZXIucHkgfCA1IC0tLS0tCisgMSBmaWxlIGNo YW5nZWQsIDUgZGVsZXRpb25zKC0pCisKKy0tLSBhL3B5dGhvbi9tb3pidWlsZC9tb3pidWlsZC9m cm9udGVuZC9lbWl0dGVyLnB5CisrKysgYi9weXRob24vbW96YnVpbGQvbW96YnVpbGQvZnJvbnRl bmQvZW1pdHRlci5weQorQEAgLTEyMzksMTIgKzEyMzksNiBAQCBjbGFzcyBUcmVlTWV0YWRhdGFF bWl0dGVyKExvZ2dpbmdNaXhpbik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdpcyBhIGZpbGVuYW1lLCBidXQgYSBkaXJlY3RvcnkgaXMgcmVxdWly ZWQ6ICVzICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJyhyZXNvbHZlZCB0byAlcyknICUgKGxvY2FsX2luY2x1ZGUsIGZ1bGxfcGF0aCksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQpCist ICAgICAgICAgICAgaWYgKGZ1bGxfcGF0aCA9PSBjb250ZXh0LmNvbmZpZy50b3BzcmNkaXIgb3IK Ky0gICAgICAgICAgICAgICAgICAgIGZ1bGxfcGF0aCA9PSBjb250ZXh0LmNvbmZpZy50b3BvYmpk aXIpOgorLSAgICAgICAgICAgICAgICByYWlzZSBTYW5kYm94VmFsaWRhdGlvbkVycm9yKAorLSAg ICAgICAgICAgICAgICAgICAgJ1BhdGggc3BlY2lmaWVkIGluIExPQ0FMX0lOQ0xVREVTICcKKy0g ICAgICAgICAgICAgICAgICAgICcoJXMpIHJlc29sdmVzIHRvIHRoZSB0b3BzcmNkaXIgb3IgdG9w b2JqZGlyICglcyksIHdoaWNoIGlzICcKKy0gICAgICAgICAgICAgICAgICAgICdub3QgYWxsb3dl ZCcgJSAobG9jYWxfaW5jbHVkZSwgZnVsbF9wYXRoKSwgY29udGV4dCkKKyAgICAgICAgICAgICBp bmNsdWRlX29iaiA9IExvY2FsSW5jbHVkZShjb250ZXh0LCBsb2NhbF9pbmNsdWRlKQorICAgICAg ICAgICAgIGxvY2FsX2luY2x1ZGVzLmFwcGVuZChpbmNsdWRlX29iai5wYXRoLmZ1bGxfcGF0aCkK KyAgICAgICAgICAgICB5aWVsZCBpbmNsdWRlX29iagpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pq czc4L3BhdGNoZXMvMDAyLWZpeC1zb25hbWUucGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hl cy8wMDItZml4LXNvbmFtZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uY2M1NDMxMDkzOTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0 Y2hlcy8wMDItZml4LXNvbmFtZS5wYXRjaApAQCAtMCwwICsxLDIyIEBACisiQ2FycmllZCBvdmVy IGZyb20gbW96anM2OCIKKy0tLSBhL2pzL3NyYy9idWlsZC9NYWtlZmlsZS5pbgorKysrIGIvanMv c3JjL2J1aWxkL01ha2VmaWxlLmluCitAQCAtNzgsNiArNzgsOCBAQAorIGVuZGlmCisgaWZuZXEg KCwkKFNIQVJFRF9MSUJSQVJZKSkKKyAJJChTWVNJTlNUQUxMKSAkKFNIQVJFRF9MSUJSQVJZKSAk KERFU1RESVIpJChsaWJkaXIpCisrCW12IC1mICQoREVTVERJUikkKGxpYmRpcikvJChTSEFSRURf TElCUkFSWSkgJChERVNURElSKSQobGliZGlyKS8kKFNIQVJFRF9MSUJSQVJZKS4wCisrCWxuIC1z ICQoU0hBUkVEX0xJQlJBUlkpLjAgJChERVNURElSKSQobGliZGlyKS8kKFNIQVJFRF9MSUJSQVJZ KQorIGlmZXEgKCQoT1NfQVJDSCksRGFyd2luKQorIAlpbnN0YWxsX25hbWVfdG9vbCAtaWQgJChh YnNwYXRoICQobGliZGlyKS8kKFNIQVJFRF9MSUJSQVJZKSkgJChERVNURElSKSQobGliZGlyKS8k KFNIQVJFRF9MSUJSQVJZKQorIGVuZGlmCistLS0gYS9qcy9zcmMvYnVpbGQvbW96LmJ1aWxkCisr KysgYi9qcy9zcmMvYnVpbGQvbW96LmJ1aWxkCitAQCAtMjUsNiArMjUsNyBAQAorIGlmIENPTkZJ R1snSlNfU0hBUkVEX0xJQlJBUlknXToKKyAgICAgR2Vja29TaGFyZWRMaWJyYXJ5KCdqcycsIGxp bmthZ2U9Tm9uZSkKKyAgICAgU0hBUkVEX0xJQlJBUllfTkFNRSA9IENPTkZJR1snSlNfTElCUkFS WV9OQU1FJ10KKysgICAgTERGTEFHUyArPSBbJy1XbCwtc29uYW1lLGxpYnt9LnNvLjAnLmZvcm1h dChTSEFSRURfTElCUkFSWV9OQU1FKV0KKyAKKyAgICAgIyBFbnN1cmUgc3ltYm9sIHZlcnNpb25z IG9mIHNoYXJlZCBsaWJyYXJ5IG9uIExpbnV4IGRvIG5vdCBjb25mbGljdAorICAgICAjIHdpdGgg dGhvc2UgaW4gbGlieHVsLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAz LWZpeC13YXNtLWFybS5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMy1maXgtd2Fz bS1hcm0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg5MWE3 NjUyMDU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAzLWZp eC13YXNtLWFybS5wYXRjaApAQCAtMCwwICsxLDE2IEBACisiVGFrZW4gZnJvbSBmaXJlZm94LWVz ciIKKy0tLSBhL2pzL3NyYy93YXNtL1dhc21TaWduYWxIYW5kbGVycy5jcHAKKysrKyBiL2pzL3Ny Yy93YXNtL1dhc21TaWduYWxIYW5kbGVycy5jcHAKK0BAIC0yNDMsOSArMjQzLDkgQEAKKyAvLyBJ ZiB5b3UgcnVuIGludG8gY29tcGlsZSBwcm9ibGVtcyBvbiBhIHRpZXItMyBwbGF0Zm9ybSwgeW91 IGNhbiBkaXNhYmxlIHRoZQorIC8vIGVtdWxhdGlvbiBoZXJlLgorIAorLSNpZiBkZWZpbmVkKF9f bGludXhfXykgJiYgZGVmaW5lZChfX2FybV9fKQorLSMgIGRlZmluZSBXQVNNX0VNVUxBVEVfQVJN X1VOQUxJR05FRF9GUF9BQ0NFU1MKKy0jZW5kaWYKKysvLyAjaWYgZGVmaW5lZChfX2xpbnV4X18p ICYmIGRlZmluZWQoX19hcm1fXykKKysvLyAjICBkZWZpbmUgV0FTTV9FTVVMQVRFX0FSTV9VTkFM SUdORURfRlBfQUNDRVNTCisrLy8gI2VuZGlmCisgCisgI2lmZGVmIFdBU01fRU1VTEFURV9BUk1f VU5BTElHTkVEX0ZQX0FDQ0VTUworICMgIGluY2x1ZGUgPHN5cy91c2VyLmg+CmRpZmYgLS1naXQg YS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDQtZml4LW11c2wtYnVpbGQucGF0Y2ggYi9zcmNw a2dzL21vempzNzgvcGF0Y2hlcy8wMDQtZml4LW11c2wtYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY2MjlmYTJhYzM1Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA0LWZpeC1tdXNsLWJ1aWxkLnBhdGNoCkBAIC0w LDAgKzEsMTcgQEAKKyJDYXJyaWVkIG92ZXIgZnJvbSBtb3pqczYwIgorVXBzdHJlYW06IE5vCitS ZWFzb246IG1vempzNjggbWlzY29tcGlsZXMgb24gbXVzbCBpZiBidWlsdCB3aXRoIEhBVkVfVEhS RUFEX1RMU19LRVlXT1JEOgoraHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9pc3N1ZXMvMjU5OAorZGlmZiAtLWdpdCBhL2pzL3NyYy9vbGQtY29uZmlndXJlLmluIGIv anMvc3JjL29sZC1jb25maWd1cmUuaW4KKy0tLSBhL2pzL3NyYy9vbGQtY29uZmlndXJlLmluCisr KysgYi9qcy9zcmMvb2xkLWNvbmZpZ3VyZS5pbgorQEAgLTEyNzIsNiArMTI3Miw5IEBACisgICAg ICotYW5kcm9pZCp8Ki1saW51eGFuZHJvaWQqKQorICAgICAgIDoKKyAgICAgICA7OworKyAgICAq LW11c2wqKQorKyAgICAgIDoKKysgICAgICA7OworICAgICAqKQorICAgICAgIEFDX0RFRklORShI QVZFX1RIUkVBRF9UTFNfS0VZV09SRCkKKyAgICAgICA7OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9t b3pqczc4L3BhdGNoZXMvMDA1LXNwaWRlcm1vbmtleS1jaGVja3MtZGlzYWJsZS5wYXRjaCBiL3Ny Y3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNS1zcGlkZXJtb25rZXktY2hlY2tzLWRpc2FibGUucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY2ZWFiYWJkMWYyCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA1LXNwaWRlcm1vbmtl eS1jaGVja3MtZGlzYWJsZS5wYXRjaApAQCAtMCwwICsxLDEyIEBACitTb3VyY2U6RmVkb3JhCitS ZWFzb246IENoZWNrcyBmYWlsZWQoVG9kbzogRmlndXJlIG91dCB3aHkpCisrKysgYS9jb25maWcv cnVuX3NwaWRlcm1vbmtleV9jaGVja3MucHkKKysrKyBiL2NvbmZpZy9ydW5fc3BpZGVybW9ua2V5 X2NoZWNrcy5weQorQEAgLTExLDUgKzExLDUgQEAKKyAgICAgZm9yIHNjcmlwdCBpbiBzY3JpcHRz OgorICAgICAgICAgcmV0Y29kZSA9IHN1YnByb2Nlc3MuY2FsbCgKKyAgICAgICAgICAgICBbc3lz LmV4ZWN1dGFibGUsIHNjcmlwdF0sIGN3ZD1idWlsZGNvbmZpZy50b3BzcmNkaXIpCistICAgICAg ICBpZiByZXRjb2RlICE9IDA6CistICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKHNjcmlwdCAr ICIgZmFpbGVkIikKKysgICAgICAgICNpZiByZXRjb2RlICE9IDA6CisrICAgICAgICAjICAgIHJh aXNlIEV4Y2VwdGlvbihzY3JpcHQgKyAiIGZhaWxlZCIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL21v empzNzgvcGF0Y2hlcy8wMDYtbW96anM3OC5wYy1ob25vci1zeXNyb290LnBhdGNoIGIvc3JjcGtn cy9tb3pqczc4L3BhdGNoZXMvMDA2LW1vempzNzgucGMtaG9ub3Itc3lzcm9vdC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzEyMTRiOGVjY2YKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDYtbW96anM3OC5wYy1ob25vci1z eXNyb290LnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKyJDYXJyaWVkIG92ZXIgZnJvbSBtb3pqczYw IgorUmVhc29uOiBGaXggdGhlICctaW5jbHVkZScgZGlyZWN0aXZlLCBvdGhlcndpc2UgaXQgdHJp ZXMgdG8gdXNlIHRoZSBob3N0J3MgaGVhZGVyCistLS0gYS9qcy9zcmMvYnVpbGQvanMucGMuaW4K KysrKyBiL2pzL3NyYy9idWlsZC9qcy5wYy5pbgorQEAgLTExLDQgKzExLDQgQEAKKyAjIFVzZSAt aXN5c3RlbSBmb3IgaW5jbHVkZXMgcmF0aGVyIHRoYW4gLUksIHRvIG1hcmsgdGhlbSBhcyAic3lz dGVtIGhlYWRlcnMiCisgIyB0aGF0IGRvbid0IGdlbmVyYXRlIHdhcm5pbmcgZGlhZ25vc3RpY3Mu IEZvciBqdXN0aWZpY2F0aW9uLCBzZWUKKyAjIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcv c2hvd19idWcuY2dpP2lkPTE1MzkwMzYKKy1DZmxhZ3M6IC1pbmNsdWRlICR7aW5jbHVkZWRpcn0v QEpTX0xJQlJBUllfTkFNRUAvanMvUmVxdWlyZWREZWZpbmVzLmggLWlzeXN0ZW0gJHtpbmNsdWRl ZGlyfS9ASlNfTElCUkFSWV9OQU1FQAorK0NmbGFnczogLWluY2x1ZGUgJHtwY19zeXNyb290ZGly fSR7aW5jbHVkZWRpcn0vQEpTX0xJQlJBUllfTkFNRUAvanMvUmVxdWlyZWREZWZpbmVzLmggLWlz eXN0ZW0gJHtpbmNsdWRlZGlyfS9ASlNfTElCUkFSWV9OQU1FQApkaWZmIC0tZ2l0IGEvc3JjcGtn cy9tb3pqczc4L3BhdGNoZXMvMDA3LWZpeC1taXBzLXNnaWRlZnNfaC5wYXRjaCBiL3NyY3BrZ3Mv bW96anM3OC9wYXRjaGVzLzAwNy1maXgtbWlwcy1zZ2lkZWZzX2gucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFiYjE0MDIzM2EwCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA3LWZpeC1taXBzLXNnaWRlZnNfaC5wYXRjaApA QCAtMCwwICsxLDExIEBACistLS0gYS9tZmJ0L1JhbmRvbU51bS5jcHAJMjAyMC0wNC0yOSAyMzo0 OTo0MC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL21mYnQvUmFuZG9tTnVtLmNwcAkyMDIwLTA4LTA0 IDE5OjI5OjM2LjEyNzQ3MTMwMSArMDIwMAorQEAgLTUyLDcgKzUyLDcgQEAKKyAjICBlbGlmIGRl ZmluZWQoX19zMzkwX18pCisgIyAgICBkZWZpbmUgR0VUUkFORE9NX05SIDM0OQorICMgIGVsaWYg ZGVmaW5lZChfX21pcHNfXykKKy0jICAgIGluY2x1ZGUgPHNnaWRlZnMuaD4KKysjICAgIGluY2x1 ZGUgPGFzbS9zZ2lkZWZzLmg+CisgIyAgICBpZiBfTUlQU19TSU0gPT0gX01JUFNfU0lNX0FCSTMy CisgIyAgICAgIGRlZmluZSBHRVRSQU5ET01fTlIgNDM1MworICMgICAgZWxpZiBfTUlQU19TSU0g PT0gX01JUFNfU0lNX0FCSTY0CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy9j b3ZlcmFnZS1hcGkucGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy9jb3ZlcmFnZS1hcGku cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUzZTk0NzU2MWNm Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvY292ZXJhZ2UtYXBp LnBhdGNoCkBAIC0wLDAgKzEsMTA3IEBACitGcm9tIGU1YTJlYjk5ZjY1M2FlMDNjNjdlNTM2ZGYx ZDU1ZDI2NWEwYTE2MDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFdmFuIFdlbHNo IDxjb250YWN0QGV2YW53ZWxzaC5jb20+CitEYXRlOiBNb24sIDEwIEF1ZyAyMDIwIDEzOjE3OjM2 IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIEJ1ZyAxNjU0Njk2IC0gSW1wbGVtZW50IGNvZGUgY292 ZXJhZ2UgSlNBUEkuCisgcj1uYnAscHRvbWF0byxqd2FsZGVuCisKKy0tLQorIGpzL3B1YmxpYy9l eHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmggfCAyNSArKysrKysrKysrKysrKysrKysrKysrKysr CisganMvc3JjL2pzZnJpZW5kYXBpLmNwcCAgICAgICAgICAgICAgICB8ICAzICsrKworIGpzL3Ny Yy9tb3ouYnVpbGQgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCisganMvc3JjL3NoZWxsL2pz LmNwcCAgICAgICAgICAgICAgICAgICB8IDExICsrKysrKy0tLS0tCisgNCBmaWxlcyBjaGFuZ2Vk LCAzNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBq cy9wdWJsaWMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFnZS5oCisKK2RpZmYgLS1naXQgYS9qcy9w dWJsaWMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFnZS5oIGIvanMvcHVibGljL2V4cGVyaW1lbnRh bC9Db2RlQ292ZXJhZ2UuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMC4u MDZjYzBjOWNhCistLS0gL2Rldi9udWxsCisrKysgYi9qcy9wdWJsaWMvZXhwZXJpbWVudGFsL0Nv ZGVDb3ZlcmFnZS5oCitAQCAtMCwwICsxLDI1IEBACisrLyogLSotIE1vZGU6IEMrKzsgdGFiLXdp ZHRoOiA4OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IGMtYmFzaWMtb2Zmc2V0OiAyIC0qLQorKyAq IHZpbTogc2V0IHRzPTggc3RzPTIgZXQgc3c9MiB0dz04MDoKKysgKiBUaGlzIFNvdXJjZSBDb2Rl IEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCisrICog TGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVk IHdpdGggdGhpcworKyAqIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxs YS5vcmcvTVBMLzIuMC8uICovCisrCisrI2lmbmRlZiBqc19leHBlcmltZW50YWxfQ29kZUNvdmVy YWdlX2gKKysjZGVmaW5lIGpzX2V4cGVyaW1lbnRhbF9Db2RlQ292ZXJhZ2VfaAorKworKyNpbmNs dWRlICJqc3R5cGVzLmgiICAgICAvLyBKU19GUklFTkRfQVBJCisrCisrc3RydWN0IEpTX1BVQkxJ Q19BUEkgSlNDb250ZXh0OworKworK25hbWVzcGFjZSBqcyB7CisrCisrLyoqCisrICogRW5hYmxl IHRoZSBjb2xsZWN0aW9uIG9mIGxjb3YgY29kZSBjb3ZlcmFnZSBtZXRyaWNzLgorKyAqIE11c3Qg YmUgY2FsbGVkIGJlZm9yZSBhIHJ1bnRpbWUgaXMgY3JlYXRlZCBhbmQgYmVmb3JlIGFueSBjYWxs cyB0bworKyAqIEdldENvZGVDb3ZlcmFnZVN1bW1hcnkuCisrICovCisrZXh0ZXJuIEpTX0ZSSUVO RF9BUEkgdm9pZCBFbmFibGVDb2RlQ292ZXJhZ2UoKTsKKysKKyt9ICAvLyBuYW1lc3BhY2UganMK KysKKysjZW5kaWYgIC8vIGpzX2V4cGVyaW1lbnRhbF9Db2RlQ292ZXJhZ2VfaAorZGlmZiAtLWdp dCBhL2pzL3NyYy9qc2ZyaWVuZGFwaS5jcHAgYi9qcy9zcmMvanNmcmllbmRhcGkuY3BwCitpbmRl eCBhZjdhMDNiZDQuLjVmMjBjNjU3NiAxMDA2NDQKKy0tLSBhL2pzL3NyYy9qc2ZyaWVuZGFwaS5j cHAKKysrKyBiL2pzL3NyYy9qc2ZyaWVuZGFwaS5jcHAKK0BAIC0yMCw2ICsyMCw3IEBACisgI2lu Y2x1ZGUgImdjL1B1YmxpY0l0ZXJhdG9ycy5oIgorICNpbmNsdWRlICJnYy9XZWFrTWFwLmgiCisg I2luY2x1ZGUgImpzL0NoYXJhY3RlckVuY29kaW5nLmgiCisrI2luY2x1ZGUgImpzL2V4cGVyaW1l bnRhbC9Db2RlQ292ZXJhZ2UuaCIgIC8vIGpzOjpFbmFibGVDb2RlQ292ZXJhZ2UKKyAjaW5jbHVk ZSAianMvUHJpbnRmLmgiCisgI2luY2x1ZGUgImpzL1Byb3h5LmgiCisgI2luY2x1ZGUgImpzL1dy YXBwZXIuaCIKK0BAIC0xNDY1LDYgKzE0NjYsOCBAQCBKU19GUklFTkRfQVBJIHZvaWQganM6OkVu YWJsZUFjY2Vzc1ZhbGlkYXRpb24oSlNDb250ZXh0KiBjeCwgYm9vbCBlbmFibGVkKSB7CisgICBj eC0+ZW5hYmxlQWNjZXNzVmFsaWRhdGlvbiA9IGVuYWJsZWQ7CisgfQorIAorK0pTX0ZSSUVORF9B UEkgdm9pZCBqczo6RW5hYmxlQ29kZUNvdmVyYWdlKCkgeyBqczo6Y292ZXJhZ2U6OkVuYWJsZUxD b3YoKTsgfQorKworIEpTX0ZSSUVORF9BUEkgdm9pZCBqczo6U2V0UmVhbG1WYWxpZEFjY2Vzc1B0 cihKU0NvbnRleHQqIGN4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBKUzo6SGFuZGxlT2JqZWN0IGdsb2JhbCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogYWNjZXNzcCkgeworZGlmZiAtLWdpdCBhL2pz L3NyYy9tb3ouYnVpbGQgYi9qcy9zcmMvbW96LmJ1aWxkCitpbmRleCBkZWIxNWQ4M2EuLmI0ZTll MmIwMiAxMDA3NTUKKy0tLSBhL2pzL3NyYy9tb3ouYnVpbGQKKysrKyBiL2pzL3NyYy9tb3ouYnVp bGQKK0BAIC0yMTAsNiArMjEwLDcgQEAgRVhQT1JUUy5qcyArPSBbCisgXQorIAorIEVYUE9SVFMu anMuZXhwZXJpbWVudGFsICs9IFsKKysgICAgJy4uL3B1YmxpYy9leHBlcmltZW50YWwvQ29kZUNv dmVyYWdlLmgnLAorICAgICAnLi4vcHVibGljL2V4cGVyaW1lbnRhbC9Tb3VyY2VIb29rLmgnLAor IF0KKyAKK2RpZmYgLS1naXQgYS9qcy9zcmMvc2hlbGwvanMuY3BwIGIvanMvc3JjL3NoZWxsL2pz LmNwcAoraW5kZXggNGIzZjU0NWU2Li4yNTJkZDI0ZjAgMTAwNjQ0CistLS0gYS9qcy9zcmMvc2hl bGwvanMuY3BwCisrKysgYi9qcy9zcmMvc2hlbGwvanMuY3BwCitAQCAtMTA0LDEwICsxMDQsMTEg QEAKKyAjaW5jbHVkZSAianMvQ29tcGlsZU9wdGlvbnMuaCIKKyAjaW5jbHVkZSAianMvQ29udGV4 dE9wdGlvbnMuaCIgIC8vIEpTOjpDb250ZXh0T3B0aW9uc3ssUmVmfQorICNpbmNsdWRlICJqcy9E ZWJ1Zy5oIgorLSNpbmNsdWRlICJqcy9FcXVhbGl0eS5oIiAgICAgICAgICAgICAgICAgLy8gSlM6 OlNhbWVWYWx1ZQorLSNpbmNsdWRlICJqcy9FcnJvclJlcG9ydC5oIiAgICAgICAgICAgICAgLy8g SlM6OlByaW50RXJyb3IKKy0jaW5jbHVkZSAianMvRXhjZXB0aW9uLmgiICAgICAgICAgICAgICAg IC8vIEpTOjpTdGVhbFBlbmRpbmdFeGNlcHRpb25TdGFjaworLSNpbmNsdWRlICJqcy9leHBlcmlt ZW50YWwvU291cmNlSG9vay5oIiAgLy8ganM6OntTZXQsRm9yZ2V0LH1Tb3VyY2VIb29rCisrI2lu Y2x1ZGUgImpzL0VxdWFsaXR5LmgiICAgICAgICAgICAgICAgICAgIC8vIEpTOjpTYW1lVmFsdWUK KysjaW5jbHVkZSAianMvRXJyb3JSZXBvcnQuaCIgICAgICAgICAgICAgICAgLy8gSlM6OlByaW50 RXJyb3IKKysjaW5jbHVkZSAianMvRXhjZXB0aW9uLmgiICAgICAgICAgICAgICAgICAgLy8gSlM6 OlN0ZWFsUGVuZGluZ0V4Y2VwdGlvblN0YWNrCisrI2luY2x1ZGUgImpzL2V4cGVyaW1lbnRhbC9D b2RlQ292ZXJhZ2UuaCIgIC8vIGpzOjpFbmFibGVDb2RlQ292ZXJhZ2UKKysjaW5jbHVkZSAianMv ZXhwZXJpbWVudGFsL1NvdXJjZUhvb2suaCIgICAgLy8ganM6OntTZXQsRm9yZ2V0LH1Tb3VyY2VI b29rCisgI2luY2x1ZGUgImpzL0dDVmVjdG9yLmgiCisgI2luY2x1ZGUgImpzL0luaXRpYWxpemF0 aW9uLmgiCisgI2luY2x1ZGUgImpzL0pTT04uaCIKK0BAIC0xMTQxNiw3ICsxMTQxNyw3IEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndiwgY2hhcioqIGVudnApIHsKKyAKKyAgIGVuYWJs ZUNvZGVDb3ZlcmFnZSA9IG9wLmdldEJvb2xPcHRpb24oImNvZGUtY292ZXJhZ2UiKTsKKyAgIGlm IChlbmFibGVDb2RlQ292ZXJhZ2UpIHsKKy0gICAgY292ZXJhZ2U6OkVuYWJsZUxDb3YoKTsKKysg ICAganM6OkVuYWJsZUNvZGVDb3ZlcmFnZSgpOworICAgfQorIAorICNpZmRlZiBKU19XSVRIT1VU X05TUFIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbW96 anM3OC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWFh ZjA3YmQ3ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvdGVtcGxhdGUKQEAg LTAsMCArMSw3MyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnbW96anM3OCcKK3BrZ25hbWU9bW96 anM3OAordmVyc2lvbj03OC4xLjAKK3JldmlzaW9uPTEKK3dya3NyYz0iZmlyZWZveC0ke3ZlcnNp b259IgorYnVpbGRfd3Jrc3JjPWpzL3NyYworYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQoraG9z dG1ha2VkZXBlbmRzPSJwZXJsIHB5dGhvbiBwa2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mMjEz IGF1dG9jb25mLWFyY2hpdmUKKyBjYXJnbyBydXN0IGxsdm0gY2xhbmcgd2hpY2ggcHl0aG9uMyIK K21ha2VkZXBlbmRzPSJpY3UtZGV2ZWwgbGliZmZpLWRldmVsIG5zcHItZGV2ZWwgcHl0aG9uLWRl dmVsIHJlYWRsaW5lLWRldmVsCisgemxpYi1kZXZlbCBweXRob24zLWRldmVsIHJ1c3Qtc3RkIgor ZGVwZW5kcz0ibnNwcj49NC4xOSIKK3Nob3J0X2Rlc2M9Ik1vemlsbGEgSmF2YVNjcmlwdCBpbnRl cnByZXRlciBhbmQgbGlicmFyeSAoNzgueCBzZXJpZXMpIgorbWFpbnRhaW5lcj0icTY2IDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4iCitsaWNlbnNlPSJNUEwtMi4wIgoraG9tZXBhZ2U9Imh0dHBzOi8v d3d3Lm1vemlsbGEub3JnL2pzLyIKK2Rpc3RmaWxlcz0iJHtNT1pJTExBX1NJVEV9L2ZpcmVmb3gv cmVsZWFzZXMvJHt2ZXJzaW9ufWVzci9zb3VyY2UvZmlyZWZveC0ke3ZlcnNpb259ZXNyLnNvdXJj ZS50YXIueHoiCitjaGVja3N1bT0zNjAwYTM5NmQ5MzEyYzVlOWY2MzdiMjY3OTI2Y2E0NzcxZDg0 YTU2YjI2Yjk2MGNjN2Q3MmU5ODY4M2I2NGEyCitwYXRjaF9hcmdzPSItTnAxIgorCitDWFhGTEFH Uys9IiAtV25vLWNsYXNzLW1lbWFjY2VzcyIKK0xERkxBR1MrPSIgLVdsLC16LHN0YWNrLXNpemU9 MTA0ODU3NiIKKworaWYgWyAiJFhCUFNfVEFSR0VUX05PX0FUT01JQzgiIF07IHRoZW4KKwltYWtl ZGVwZW5kcys9IiBsaWJhdG9taWMtZGV2ZWwiCisJTERGTEFHUys9IiAtbGF0b21pYyIKK2ZpCisK K2RvX2NvbmZpZ3VyZSgpIHsKKwlsb2NhbCBfYXJncworCSMgdXNlIGdjYyBhcyBhc3NlbWJsZXIg dG8gYXZvaWQgZXJyb3JzCisJdW5zZXQgQVMKKworCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhl bgorCQlleHBvcnQgSE9TVF9DQz1jYworCQlleHBvcnQgVEFSR0VUX0NDPSIke0NDfSIKKwkJZXhw b3J0IEhPU1RfQ0ZMQUdTPSItT3MiCisJCWV4cG9ydCBIT1NUX0NYWEZMQUdTPSItT3MiCisJCV9h cmdzKz0iIC0tdGFyZ2V0PSRYQlBTX0NST1NTX1RSSVBMRVQgLS1lbmFibGUtbGlua2VyPWJmZCIK KwlmaQorCisJYXV0b2NvbmYtMi4xMyBvbGQtY29uZmlndXJlLmluID4gb2xkLWNvbmZpZ3VyZQor CisJdG91Y2ggJHt3cmtzcmN9L2pzL3NyYy9jb25maWd1cmUKKwl0b3VjaCAke3dya3NyY30vanMv c3JjL29sZC1jb25maWd1cmUKKwlTSEVMTD0vYmluL2Jhc2ggUFlUSE9OPS91c3IvYmluL3B5dGhv bjIgLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzciBcCisJCS0tZGlzYWJsZS1qZW1hbGxvYyAtLWRp c2FibGUtb3B0aW1pemUgLS1lbmFibGUtY3R5cGVzIFwKKwkJLS1lbmFibGUtcmVhZGxpbmUgLS1l bmFibGUtc2hhcmVkLWpzIC0tZW5hYmxlLXN5c3RlbS1mZmkgXAorCQktLWVuYWJsZS10ZXN0cyAt LXdpdGgtaW50bC1hcGkgLS13aXRoLXN5c3RlbS1pY3UgLS13aXRoLXN5c3RlbS1uc3ByIFwKKwkJ LS1lbmFibGUtaGFyZGVuaW5nIC0tZW5hYmxlLXJlbGVhc2UgLS13aXRoLXN5c3RlbS16bGliIFwK KwkJLS10YXJnZXQ9JHtYQlBTX1RSSVBMRVR9IC0taG9zdD0ke1hCUFNfVFJJUExFVH0gXAorCQkk e19hcmdzfQorfQorCitkb19jaGVjaygpIHsKKwlkaXN0L2Jpbi9qc2FwaS10ZXN0cyAtLWZvcm1h dD1ub25lIC0tZXhjbHVkZS1yYW5kb20gYmFzaWMKK30KKworcG9zdF9pbnN0YWxsKCkgeworCSMg UmVtb3ZlIHVubmVlZGVkIHN0YXRpYyBsaWJyYXJ5CisJcm0gLWYgIiR7REVTVERJUn0iL3Vzci9s aWIvKi5hanMKK30KKworbW96anM3OC1kZXZlbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9Im5zcHIt ZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2Mr PSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2Jp bi9qczc4LWNvbmZpZworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92ZSAidXNyL2xpYi8qLnNv IgorCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCX0KK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bW96anM3OC91cGRhdGUgYi9zcmNwa2dzL21vempzNzgvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xOTQ3ZTE5MjE3ZgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbW96anM3OC91cGRhdGUKQEAgLTAsMCArMSBAQAorcGtnbmFtZT0nbW96anMnCgpGcm9t IGYwOGEyODUxMDgwODYzYjkyMWFiMWQyZjQ0ZmYyMGIzZWIwZGJlZDAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBTdW4sIDE2IEF1ZyAyMDIwIDA2OjQyOjAyICswMjAwClN1YmplY3Q6IFtQQVRDSCA3MS84M10g Z2pzOiB1cGRhdGUgdG8gMS42NS45MAoKLS0tCiBzcmNwa2dzL2dqcy90ZW1wbGF0ZSB8IDEzICsr KysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nanMvdGVtcGxhdGUgYi9zcmNwa2dzL2dqcy90ZW1w bGF0ZQppbmRleCBlYzQ4YmFkZGYxMS4uY2NlMjY3YmZmNWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z2pzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2pzL3RlbXBsYXRlCkBAIC0xLDI3ICsxLDMyIEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnanMnCiBwa2duYW1lPWdqcwotdmVyc2lvbj0xLjY1LjIK K3ZlcnNpb249MS42NS45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hl bHBlcj0iZ2lyIHFlbXUiCiBjb25maWd1cmVfYXJncz0iLURza2lwX2RidXNfdGVzdHM9dHJ1ZSAt RHNraXBfZ3RrX3Rlc3RzPXRydWUKICAtRHByb2ZpbGVyPWRpc2FibGVkIC1EaW5zdGFsbGVkX3Rl c3RzPWZhbHNlIiAjIERpc2FibGUgdGVzdHMgYmVjYXVzZSB0aGV5IG5lZWQgZGJ1cywgWCBhbmQg R1RLLgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWciCi1tYWtlZGVwZW5k cz0iZGJ1cy1nbGliLWRldmVsIG1vempzNjgtZGV2ZWwgcmVhZGxpbmUtZGV2ZWwgc3lzcHJvZi1k ZXZlbCIKK21ha2VkZXBlbmRzPSJkYnVzLWdsaWItZGV2ZWwgbW96anM3OC1kZXZlbCByZWFkbGlu ZS1kZXZlbCBzeXNwcm9mLWRldmVsIgogc2hvcnRfZGVzYz0iTW96aWxsYS1iYXNlZCBqYXZhc2Ny aXB0IGJpbmRpbmdzIGZvciB0aGUgR05PTUUgcGxhdGZvcm0iCiBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTUlULCBMR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL2FjdGlvbi9zaG93L1Byb2pl Y3RzL0dqcyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dqcy9i bG9iL2dub21lLTMtMzAvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWE2 NmVkYWQ4YTVmMTAwMjdmOWIxODJkODhhZjg0YjgxZjEzZTVhZDU4NDAzMTljZmE3NDdkNjZlNzdl MDIxNGYKK2NoZWNrc3VtPWU2MzAxMDk1OTYzZWI3NTcyODFjMjBlNWY2YjY1NzBkYzk1MjBhYjZh MDgzYzhiM2VlMWVmNDA1OWIzNGRkZWEKKworIyBBIGZldyB0ZXN0cyBteXN0ZXJpb3VzbHkgZmFp bCBmb3Igbm93Citkb19jaGVjaygpIHsKKwk6Cit9CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGlj ZW5zZSBDT1BZSU5HCiB9CiAKIGdqcy1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImxpYmdp cmVwb3NpdG9yeS1kZXZlbCBtb3pqczY4LWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKKwlkZXBlbmRzPSJsaWJnaXJlcG9zaXRvcnktZGV2ZWwgbW96anM3OC1kZXZl bCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAt IGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVk ZQoKRnJvbSAwOWFlZjAwODRjNzFkMWE0N2JjMGU4NjA5YTBiZmJkOWYwOWQyZjg3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToyMzozOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg NzIvODNdIGdub21lLWJ1aWxkZXI6IHVwZGF0ZSB0byAzLjM3LjkwCgpbY2kgc2tpcF0KLS0tCiAu Li4vZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2ggfCAgMjIgLS0KIHNy Y3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoICB8IDMzNCAtLS0tLS0t LS0tLS0tLS0tLS0KIHNyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZSAgICAgICAgICAgICAg ICB8ICAxNSArLQogMyBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAzNjEgZGVsZXRp b25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMv bGliZ2l0Mi0xLjAuMC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtYnVp bGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1i dWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRl ci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDdiOWI0YTJiZjFhLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIv cGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBA QAotY29tbWl0IDQ0MTM2YTJlNWM1MjYyM2IwZTYyYzM4ODQ2ZjUxMWYzMDc2MTVjZTIKLUF1dGhv cjogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KLURhdGU6ICAgU3VuIE1heSAzIDE5OjUyOjA5 IDIwMjAgKzAyMDAKLQotICAgIGZpeCBidWlsZCB3aXRoIGxpYmdpdDItMS4wLjAKLQotZGlmZiAt LWdpdCBhL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYyBi L3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYwotaW5kZXgg N2YwMTA0Mi4uMmNjYzRkZiAxMDA2NDQKLS0tLSBhL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBj LWdpdC1yZXBvc2l0b3J5LWltcGwuYwotKysrIGIvc3JjL3BsdWdpbnMvZ2l0L2RhZW1vbi9pcGMt Z2l0LXJlcG9zaXRvcnktaW1wbC5jCi1AQCAtMzMsMTEgKzMzLDcgQEAKLSAjaW5jbHVkZSAiaXBj LWdpdC10eXBlcy5oIgotICNpbmNsdWRlICJpcGMtZ2l0LXV0aWwuaCIKLSAKLS0jaWYgTElCR0lU Ml9TT1ZFUlNJT04gPj0gMjgKLSBHX0RFRklORV9BVVRPX0NMRUFOVVBfQ0xFQVJfRlVOQyAoZ2l0 X2J1ZiwgZ2l0X2J1Zl9kaXNwb3NlKQotLSNlbHNlCi0tR19ERUZJTkVfQVVUT19DTEVBTlVQX0NM RUFSX0ZVTkMgKGdpdF9idWYsIGdpdF9idWZfZnJlZSkKLS0jZW5kaWYKLSAKLSB0eXBlZGVmIGVu dW0KLSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1 Mi5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OGMyOGU4MmMxZS4uMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbWVzb24wNTIucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwzMzQgKzAsMCBAQAotRnJvbSBjOGI4NjJiNDkxY2ZiYmI0Zjc5YjI0ZDdjZDkw ZTRmYjFmMzdjYjlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGllZ28gRXNjYWxh bnRlIFVycmVsbyA8ZGllZ29lQGdub21lLm9yZz4KLURhdGU6IEZyaSwgMjUgT2N0IDIwMTkgMDQ6 NDk6MTUgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gV0lQOiBidWlsZDogRml4IGxpbmtfd2hvbGUg dXNhZ2UgZm9yIG1lc29uIDAuNTIuMAotCi1NZXNvbiAwLjUyLjAgY2hhbmdlZCBob3cgbGlua193 aG9sZSBiZWhhdmVzIGFuZCBpbiBkb2luZyBzbyBicm9rZSBvdXIKLXVzYWdlIG9mIGxpbmtfd2hv bGUgaW50ZXJuYWxseS4KLQotQSBxdWljayBnbGFuY2Ugb3ZlciBtZXNvbmJ1aWxkL2JhY2tlbmQv bmluamFiYWNrZW5kLnB5IHNlZW1zIHRvIGNvbmZpcm0KLUNocmlzdGlhbidzIHN1c3BpY2lvbiB0 aGF0IGxpbmtfd2l0aCBpcyB3aGF0IHdlIHdhbnQgZm9yIGludGVybmFsIHVzZSwKLWFuZCBsaW5r X3dob2xlIGZvciB0aGUgZmluYWwgYmluYXJ5LgotCi1Zb3UgY2FuIHNlZSBzb21lIG1vcmUgcmVm ZXJlbmNlcyB0byB0aGlzIGFuZCBzaW1pbGFyIGlzc3VlcyBpbiB0aGUKLWZvbGxvd2luZyBqaGJ1 aWxkIGNvbW1pdDoKLWh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9qaGJ1aWxkL2NvbW1p dC9kYmU2NzkwNDVmZjU5ODI1NzdmMjJlN2FmOGRjOGZkZmJkMWM2MzExCi0KLUZpeGVzOiBodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYnVpbGRlci9pc3N1ZXMvMTA1NwotLS0t Ci0gc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRl L2NvcmUvbWVzb24uYnVpbGQgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvZGVidWdnZXIvbWVz b24uYnVpbGQgICB8ICAyICstCi0gc3JjL2xpYmlkZS9lZGl0b3IvbWVzb24uYnVpbGQgICAgIHwg IDIgKy0KLSBzcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQgICAgfCAgMiArLQotIHNyYy9s aWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZCAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9ndWkvbWVz b24uYnVpbGQgICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkICAgICAg ICAgfCAgMiArLQotIHNyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxkICAgICAgICB8ICAyICstCi0g c3JjL2xpYmlkZS9wbHVnaW5zL21lc29uLmJ1aWxkICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3By b2plY3RzL21lc29uLmJ1aWxkICAgfCAgMiArLQotIHNyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1 aWxkICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkIHwgIDIg Ky0KLSBzcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkICAgfCAgMiArLQotIHNyYy9saWJp ZGUvdGhlbWVzL21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS90aHJlYWRpbmcv bWVzb24uYnVpbGQgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQgICAgICAg fCAgMiArLQotIHNyYy9saWJpZGUvdmNzL21lc29uLmJ1aWxkICAgICAgICB8ICAyICstCi0gc3Jj L2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQgICAgIHwgIDIgKy0KLSBzcmMvbWVzb24uYnVpbGQg ICAgICAgICAgICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKysrLQotIDIwIGZp bGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9jb2RlL21lc29u LmJ1aWxkCi1pbmRleCBkZGFjZGMxNjIuLjFhNGZjNWQyNiAxMDA2NDQKLS0tLSBhL3NyYy9saWJp ZGUvY29kZS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkCi1A QCAtMTc1LDcgKzE3NSw3IEBAIGxpYmlkZV9jb2RlID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1jb2Rl LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX2NvZGVfZGVwID0gZGVjbGFyZV9kZXBl bmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2NvZGVfcHJpdmF0ZV9oZWFk ZXJzICsgbGliaWRlX2NvZGVfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5j aWVzOiBsaWJpZGVfY29kZV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2Nv ZGUsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfY29kZSwKLSAgIGluY2x1ZGVfZGly ZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEv c3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxk Ci1pbmRleCAxZmE4MmZhZDkuLmJiNzVjYmYyNiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvY29y ZS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkCi1AQCAtMTE3 LDcgKzExNyw3IEBAIGxpYmlkZV9jb3JlID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1jb3JlLScgKyBs aWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9jb3JlX3NvdXJjCi0gbGliaWRlX2NvcmVfZGVwID0g ZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2NvcmVf cHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2NvcmVfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAg ICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfY29yZV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9s ZTogbGliaWRlX2NvcmUsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfY29yZSwKLSAg IGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1k aWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUv ZGVidWdnZXIvbWVzb24uYnVpbGQKLWluZGV4IGRmZmNhMjBjYS4uYjVlNzJkNWMwIDEwMDY0NAot LS0tIGEvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9k ZWJ1Z2dlci9tZXNvbi5idWlsZAotQEAgLTg0LDcgKzg0LDcgQEAgbGliaWRlX2RlYnVnZ2VyID0g c3RhdGljX2xpYnJhcnkoJ2lkZS1kZWJ1Z2dlci0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxp YmlkZV9kZWJ1Z2dlcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBz b3VyY2VzOiBsaWJpZGVfZGVidWdnZXJfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2RlYnVnZ2Vy X2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2RlYnVn Z2VyX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZGVidWdnZXIsCi0rICAg ICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZGVidWdnZXIsCi0gICBpbmNsdWRlX2RpcmVjdG9y aWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9s aWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9lZGl0b3IvbWVzb24uYnVpbGQK LWluZGV4IDI4Mzg0MjViNy4uODA4ZWQ3ODRmIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9lZGl0 b3IvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkCi1AQCAt MTA3LDcgKzEwNyw3IEBAIGxpYmlkZV9lZGl0b3IgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWVkaXRv ci0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfZWRpdG9yCi0gCi0gbGliaWRlX2VkaXRv cl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJp ZGVfZWRpdG9yX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZWRpdG9yLAot KyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2VkaXRvciwKLSAgIGluY2x1ZGVfZGlyZWN0 b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAgICAgICAgICAgICAgIHNvdXJjZXM6 IGxpYmlkZV9lZGl0b3JfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9s aWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWls ZAotaW5kZXggMjI2Mzk3YzE1Li5kNDg3OGFhMTEgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2Zv dW5kcnkvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZAot QEAgLTE3OCw3ICsxNzgsNyBAQCBsaWJpZGVfZm91bmRyeSA9IHN0YXRpY19saWJyYXJ5KCdpZGUt Zm91bmRyeS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIAotIGxpYmlkZV9mb3VuZHJ5X2RlcCA9 IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9mb3Vu ZHJ5X2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZm91bmRyeSwKLSsgICAg ICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9mb3VuZHJ5LAotICAgaW5jbHVkZV9kaXJlY3Rvcmll czogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICAgICAgICAgICAgICAgc291cmNlczogbGli aWRlX2ZvdW5kcnlfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9saWJp ZGUvZ3JlZXRlci9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZAot aW5kZXggMzk2OGNhNDFlLi4xMjFkNDk4ZDAgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2dyZWV0 ZXIvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZAotQEAg LTgzLDcgKzgzLDcgQEAgbGliaWRlX2dyZWV0ZXIgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWdyZWV0 ZXItJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfZ3JlZXRlcl9kZXAgPSBkZWNsYXJl X2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZ3JlZXRlcl9wcml2 YXRlX2hlYWRlcnMgKyBsaWJpZGVfZ3JlZXRlcl9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAg ICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9ncmVldGVyX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3do b2xlOiBsaWJpZGVfZ3JlZXRlciwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9ncmVl dGVyLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAot ICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZCBiL3NyYy9saWJp ZGUvZ3VpL21lc29uLmJ1aWxkCi1pbmRleCA5ZjQ2OWQyZmEuLjk0MzExMjgyZiAxMDA2NDQKLS0t LSBhL3NyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2d1aS9tZXNv bi5idWlsZAotQEAgLTIwNCw3ICsyMDQsNyBAQCBsaWJpZGVfZ3VpID0gc3RhdGljX2xpYnJhcnko J2lkZS1ndWktJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX2d1aV9zb3VyY2VzLAotIGxp YmlkZV9ndWlfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNl czogbGliaWRlX2d1aV9wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfZ3VpX2dlbmVyYXRlZF9oZWFk ZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2d1aV9kZXBzLAotLSAgICAgICAg ICAgbGlua193aG9sZTogbGliaWRlX2d1aSwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlk ZV9ndWksCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyks Ci0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQgYi9zcmMvbGli aWRlL2lvL21lc29uLmJ1aWxkCi1pbmRleCBiNWI2ZjRjNjguLmY0OGIzYmQ4ZCAxMDA2NDQKLS0t LSBhL3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvaW8vbWVzb24u YnVpbGQKLUBAIC02Myw3ICs2Myw3IEBAIGxpYmlkZV9pbyA9IHN0YXRpY19saWJyYXJ5KCdpZGUt aW8tJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX2lvX3NvdXJjZXMsCi0gCi0gbGliaWRl X2lvX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IFsg bGliZ2lvX2RlcCwgbGliaWRlX2NvcmVfZGVwLCBsaWJpZGVfdGhyZWFkaW5nX2RlcCBdLAotLSAg ICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2lvLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDog bGliaWRlX2lvLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rvcmllcygn LicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZCBiL3Ny Yy9saWJpZGUvbHNwL21lc29uLmJ1aWxkCi1pbmRleCAyM2FiYTc0ZmEuLmM4MTQwY2EwMyAxMDA2 NDQKLS0tLSBhL3NyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2xz cC9tZXNvbi5idWlsZAotQEAgLTg0LDcgKzg0LDcgQEAgbGliaWRlX2xzcCA9IHN0YXRpY19saWJy YXJ5KCdpZGUtbHNwLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9sc3Bfc291cmNlcywK LSBsaWJpZGVfbHNwX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNv dXJjZXM6IGxpYmlkZV9sc3BfcHJpdmF0ZV9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2ll czogbGliaWRlX2xzcF9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2xzcCwK LSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9sc3AsCi0gICBpbmNsdWRlX2RpcmVjdG9y aWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9s aWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWls ZAotaW5kZXggYTMzYzUyOGM5Li5mZmY1OTlkYjMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3Bs dWdpbnMvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZAot QEAgLTUxLDcgKzUxLDcgQEAgbGliaWRlX3BsdWdpbnMgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXBs dWdpbnMtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfcGx1Z2luc19kZXAgPSBkZWNs YXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfcGx1Z2luc19w cml2YXRlX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfcGx1Z2luc19k ZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3BsdWdpbnMsCi0rICAgICAgICAg ICAgbGlua193aXRoOiBsaWJpZGVfcGx1Z2lucywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGlu Y2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9w cm9qZWN0cy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQKLWlu ZGV4IDQ2M2ZmMDZiYy4uM2NjOTcyNWM2IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9wcm9qZWN0 cy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZAotQEAg LTc5LDcgKzc5LDcgQEAgbGliaWRlX3Byb2plY3RzID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1wcm9q ZWN0cy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfcHIKLSBsaWJpZGVfcHJvamVjdHNf ZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRl X3Byb2plY3RzX3ByaXZhdGVfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlk ZV9wcm9qZWN0c19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3Byb2plY3Rz LAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3Byb2plY3RzLAotICAgaW5jbHVkZV9k aXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQg YS9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvc2VhcmNoL21lc29u LmJ1aWxkCi1pbmRleCBlNWIzYjQzYWIuLmNmNzNhYTkxZCAxMDA2NDQKLS0tLSBhL3NyYy9saWJp ZGUvc2VhcmNoL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWls ZAotQEAgLTUxLDcgKzUxLDcgQEAgbGliaWRlX3NlYXJjaCA9IHN0YXRpY19saWJyYXJ5KCdpZGUt c2VhcmNoLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9zZWFyY2gKLSAKLSBsaWJpZGVf c2VhcmNoX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6 IGxpYmlkZV9zZWFyY2hfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9zZWFy Y2gsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfc2VhcmNoLAotICAgaW5jbHVkZV9k aXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQg YS9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3NvdXJjZXZp ZXcvbWVzb24uYnVpbGQKLWluZGV4IGM0YmExMmQxZi4uOTk2NDEyOThiIDEwMDY0NAotLS0tIGEv c3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3NvdXJj ZXZpZXcvbWVzb24uYnVpbGQKLUBAIC0xNTgsNyArMTU4LDcgQEAgbGliaWRlX3NvdXJjZXZpZXcg PSBzdGF0aWNfbGlicmFyeSgnaWRlLXNvdXJjZXZpZXctJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwK LSBsaWJpZGVfc291cmNldmlld19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAg ICAgICBzb3VyY2VzOiBsaWJpZGVfc291cmNldmlld19wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVf c291cmNldmlld19nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxp YmlkZV9zb3VyY2V2aWV3X2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfc291 cmNldmlldywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9zb3VyY2V2aWV3LAotICAg aW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRp ZmYgLS1naXQgYS9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS90 ZXJtaW5hbC9tZXNvbi5idWlsZAotaW5kZXggMWQ3YzlmNzI3Li42YWZmY2FlMTQgMTAwNjQ0Ci0t LS0gYS9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3Rl cm1pbmFsL21lc29uLmJ1aWxkCi1AQCAtOTMsNyArOTMsNyBAQCBsaWJpZGVfdGVybWluYWwgPSBz dGF0aWNfbGlicmFyeSgnaWRlLXRlcm1pbmFsLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGli aWRlX3Rlcm1pbmFsX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNv dXJjZXM6IGxpYmlkZV90ZXJtaW5hbF9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBl bmRlbmNpZXM6IGxpYmlkZV90ZXJtaW5hbF9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTog bGliaWRlX3Rlcm1pbmFsLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3Rlcm1pbmFs LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkK LSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZCBiL3NyYy9saWJp ZGUvdGhlbWVzL21lc29uLmJ1aWxkCi1pbmRleCA5ZDZjOGUyNDcuLmQ4ODNhNGI4NiAxMDA2NDQK LS0tLSBhL3NyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3Ro ZW1lcy9tZXNvbi5idWlsZAotQEAgLTQ2LDcgKzQ2LDcgQEAgbGliaWRlX3RoZW1lcyA9IHN0YXRp Y19saWJyYXJ5KCdpZGUtdGhlbWVzLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3Ro ZW1lc19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBs aWJpZGVfdGhlbWVzX3Jlc291cmNlc1sxXSwKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlk ZV90aGVtZXNfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90aGVtZXMsCi0r ICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfdGhlbWVzLAotICAgaW5jbHVkZV9kaXJlY3Rv cmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMv bGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdGhyZWFkaW5nL21lc29u LmJ1aWxkCi1pbmRleCBkMzhkZGZiNjQuLmQ2MjhiZTJmZiAxMDA2NDQKLS0tLSBhL3NyYy9saWJp ZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNv bi5idWlsZAotQEAgLTY2LDcgKzY2LDcgQEAgbGliaWRlX3RocmVhZGluZyA9IHN0YXRpY19saWJy YXJ5KCdpZGUtdGhyZWFkaW5nLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV8KLSBsaWJp ZGVfdGhyZWFkaW5nX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNv dXJjZXM6IGxpYmlkZV90aHJlYWRpbmdfcHJpdmF0ZV9oZWFkZXJzLAotICAgICAgICAgIGRlcGVu ZGVuY2llczogbGliaWRlX3RocmVhZGluZ19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTog bGliaWRlX3RocmVhZGluZywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV90aHJlYWRp bmcsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0g KQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZCBiL3NyYy9saWJp ZGUvdHJlZS9tZXNvbi5idWlsZAotaW5kZXggN2I5OTIyODI4Li41YTU5MTEwNmMgMTAwNjQ0Ci0t LS0gYS9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvdHJlZS9t ZXNvbi5idWlsZAotQEAgLTYxLDcgKzYxLDcgQEAgbGliaWRlX3RyZWUgPSBzdGF0aWNfbGlicmFy eSgnaWRlLXRyZWUtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX3RyZWVfc291cmMKLSBs aWJpZGVfdHJlZV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3Vy Y2VzOiBsaWJpZGVfdHJlZV9wcml2YXRlX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVz OiBsaWJpZGVfdHJlZV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3RyZWUs Ci0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfdHJlZSwKLSAgIGluY2x1ZGVfZGlyZWN0 b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3Jj L2xpYmlkZS92Y3MvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZAotaW5k ZXggNmIwZTE1N2M0Li5jNzYyYWZiNjQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3Zjcy9tZXNv bi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQKLUBAIC04NCw3ICs4NCw3 IEBAIGxpYmlkZV92Y3MgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXZjcy0nICsgbGliaWRlX2FwaV92 ZXJzaW9uLAotIAotIGxpYmlkZV92Y3NfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAg ICAgIGRlcGVuZGVuY2llczogbGliaWRlX3Zjc19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9s ZTogbGliaWRlX3ZjcywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV92Y3MsCi0gICBp bmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gICAgICAgICAg ICAgICBzb3VyY2VzOiBsaWJpZGVfdmNzX2dlbmVyYXRlZF9oZWFkZXJzLAotICkKLWRpZmYgLS1n aXQgYS9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvd2Via2l0L21l c29uLmJ1aWxkCi1pbmRleCBlMTc2N2FlNDYuLmZjZTQ3N2IzNiAxMDA2NDQKLS0tLSBhL3NyYy9s aWJpZGUvd2Via2l0L21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5i dWlsZAotQEAgLTM5LDcgKzM5LDcgQEAgbGliaWRlX3dlYmtpdCA9IHN0YXRpY19saWJyYXJ5KCdp ZGUtd2Via2l0LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV93ZWJraXQKLSAKLSBsaWJp ZGVfd2Via2l0X2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNp ZXM6IGxpYmlkZV93ZWJraXRfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV93 ZWJraXQsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfd2Via2l0LAotICAgaW5jbHVk ZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICAgICAgICAgICAgICAg c291cmNlczogbGliaWRlX3dlYmtpdF9nZW5lcmF0ZWRfaGVhZGVycywKLSApCi1kaWZmIC0tZ2l0 IGEvc3JjL21lc29uLmJ1aWxkIGIvc3JjL21lc29uLmJ1aWxkCi1pbmRleCAzZWI5YmE1MzUuLjEx M2ExNDJhZCAxMDA2NDQKLS0tLSBhL3NyYy9tZXNvbi5idWlsZAotKysrIGIvc3JjL21lc29uLmJ1 aWxkCi1AQCAtNDgsNiArNDgsMzAgQEAgZ25vbWVfYnVpbGRlcl9kZXBzID0gWwotICAgbGliaWRl X3RyZWVfZGVwLAotIF0KLSAKLStnbm9tZV9idWlsZGVyX3N0YXRpYyA9IFsKLSsgIGxpYmlkZV9j b2RlLAotKyAgbGliaWRlX2NvcmUsCi0rICBsaWJpZGVfZGVidWdnZXIsCi0rICBsaWJpZGVfZWRp dG9yLAotKyAgbGliaWRlX2ZvdW5kcnksCi0rICBsaWJpZGVfZ3JlZXRlciwKLSsgIGxpYmlkZV9n dWksCi0rICBsaWJpZGVfaW8sCi0rICBsaWJpZGVfbHNwLAotKyAgbGliaWRlX3BsdWdpbnMsCi0r ICBsaWJpZGVfcHJvamVjdHMsCi0rICBsaWJpZGVfc2VhcmNoLAotKyAgbGliaWRlX3NvdXJjZXZp ZXcsCi0rICBsaWJpZGVfdGVybWluYWwsCi0rICBsaWJpZGVfdGhlbWVzLAotKyAgbGliaWRlX3Ro cmVhZGluZywKLSsgIGxpYmlkZV90cmVlLAotKyAgbGliaWRlX3ZjcywKLSsgIGxpYmlkZV93ZWJr aXQsCi0rCi0rICBwbHVnaW5zLAotK10KLSsKLSBpZiBsaWJzeXNwcm9mX2NhcHR1cmUuZm91bmQo KQotICAgZ25vbWVfYnVpbGRlcl9kZXBzICs9IGxpYnN5c3Byb2ZfY2FwdHVyZQotIGVuZGlmCi1A QCAtNzcsNyArMTAxLDcgQEAgZ25vbWVfYnVpbGRlciA9IGV4ZWN1dGFibGUoJ2dub21lLWJ1aWxk ZXInLCAnbWFpbi5jJywgJ2J1Zy1idWRkeS5jJywKLSAgICAgICAgICAgICBjX2FyZ3M6IGxpYmlk ZV9hcmdzICsgZXhlX2NfYXJncyArIHJlbGVhc2VfYXJncywKLSAgICAgICAgICBsaW5rX2FyZ3M6 IGV4ZV9saW5rX2FyZ3MsCi0gICAgICAgICAgICAgICAgcGllOiB0cnVlLAotLSAgICAgICAgbGlu a193aG9sZTogcGx1Z2lucywKLSsgICAgICAgIGxpbmtfd2hvbGU6IGdub21lX2J1aWxkZXJfc3Rh dGljLAotICAgICAgaW5zdGFsbF9ycGF0aDogcGtnbGliZGlyX2FicywKLSAgICAgICBkZXBlbmRl bmNpZXM6IGdub21lX2J1aWxkZXJfZGVwcywKLSApCi0tLSAKLTIuMjQuMQotCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIv dGVtcGxhdGUKaW5kZXggOGM4YzAxNWQ4YTMuLjA5NjgwMjdhNjdiIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1idWlsZGVyL3Rl bXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtYnVpbGRl cicKIHBrZ25hbWU9Z25vbWUtYnVpbGRlcgotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTYKK3Zl cnNpb249My4zNy45MAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBl cj1xZW11CiBjb25maWd1cmVfYXJncz0iLUR3aXRoX3dlYmtpdD10cnVlIC1Ed2l0aF9zeXNwcm9m PXRydWUgLURoZWxwPXRydWUiCkBAIC0xMSwxNSArMTEsMTUgQEAgbWFrZWRlcGVuZHM9ImNhaXJv LWRldmVsIGNsYW5nIGRldmhlbHAtZGV2ZWwgZW5jaGFudDItZGV2ZWwgZmxhdHBhay1kZXZlbAog IGdzcGVsbC1kZXZlbCBndGtzb3VyY2V2aWV3NC1kZXZlbCBndGsrMy1kZXZlbCBqc29uLWdsaWIt ZGV2ZWwganNvbnJwYy1nbGliLWRldmVsCiAgbGliZGF6emxlLWRldmVsIGxpYmdpdDItZ2xpYi1k ZXZlbCBsaWJnbGliLWRldmVsIGxpYm9zdHJlZS1kZXZlbCBsaWJwZWFzLWRldmVsCiAgbGlieG1s Mi1kZXZlbCB0ZW1wbGF0ZS1nbGliLWRldmVsIHZhbGEtZGV2ZWwgdnRlMy1kZXZlbCB3ZWJraXQy Z3RrLWRldmVsCi0gcHl0aG9uMy1nb2JqZWN0LWRldmVsIHN5c3Byb2YtZGV2ZWwgZ2xhZGUzLWRl dmVsIgorIHB5dGhvbjMtZ29iamVjdC1kZXZlbCBzeXNwcm9mLWRldmVsIGdsYWRlMy1kZXZlbCBs aWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgZmxhdHBhay1idWls ZGVyIHB5dGhvbjMtbHhtbCBkZXZoZWxwIHB5dGhvbjMtZ29iamVjdCIKIHNob3J0X2Rlc2M9IklE RSBmb3IgR05PTUUiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL0FwcHMvQnVpbGRlciIKLWNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUu b3JnL0dOT01FL2dub21lLWJ1aWxkZXIvcmF3L2dub21lLWJ1aWxkZXItMy0zNC9ORVdTIgorY2hh bmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYnVpbGRlci9yYXcv Z25vbWUtYnVpbGRlci0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT0wYjZlNDYxMDU3ZWE4MTUxZTgwNTI0YzBlYTdlZjFjYjk0OGU5MmFmZGE5ZGM2YmQzM2FlMzM5 MmYwNDUwMWE0CitjaGVja3N1bT03ODA4OWNmMzlkZGU0ZWNmMWI1MTI3MzBiZGY0Yzc2OTEwNDc2 NDk1YzRkYWI3MGMxNDA4NmJhZjdhYjhlZmMyCiBwYXRjaF9hcmdzPSItTnAxIgogCiBjYXNlICIk WEJQU19UQVJHRVRfTUFDSElORSIgaW4KQEAgLTI4LDMgKzI4LDggQEAgY2FzZSAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiIGluCiAJCUxJQlMrPSIgLWxleGVjaW5mbyIKIAkJOzsKIGVzYWMKKworcHJl X2NvbmZpZ3VyZSgpIHsKKwkjIHRoaXMgdGVzdCBuZWVkcyBYCisJdnNlZCAtaSAicy90ZXN0KCd0 ZXN0LXRleHQtaXRlcicvIyYvIiBzcmMvdGVzdHMvbWVzb24uYnVpbGQKK30KCkZyb20gYjRhOTgw MmZmYTEzY2E5YWM0NzkwYWRhMmU5MjY5OWEwZGM5ZGE2ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwg MTYgQXVnIDIwMjAgMTg6MjQ6MDIgKzAyMDAKU3ViamVjdDogW1BBVENIIDczLzgzXSBhZHdhaXRh LWljb24tdGhlbWU6IHVwZGF0ZSB0byAzLjM3LjIKCi0tLQogc3JjcGtncy9hZHdhaXRhLWljb24t dGhlbWUvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Fkd2FpdGEtaWNvbi10aGVt ZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlCmluZGV4IGZl YmQyOTE1YmU2Li42Y2QyYmRiZTcwZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9hZHdhaXRhLWljb24t dGhlbWUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhZHdhaXRhLWljb24tdGhlbWUn CiBwa2duYW1lPWFkd2FpdGEtaWNvbi10aGVtZQotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTIK K3ZlcnNpb249My4zNy4yCityZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKQEAgLTExLDQgKzExLDQg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkxHUEwtMy4wLW9yLWxhdGVyLCBDQy1CWS1TQS0zLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9n aXRsYWIuZ25vbWUub3JnL0dOT01FL2Fkd2FpdGEtaWNvbi10aGVtZSIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWU0OTg1MTg2MjcwNDRkZmQ3ZGI3ZDc5YTViM2Q0Mzc4NDhjYWYx OTkxZWY0ZWYwMzZhMmQzYTJhYzJjMWYxNGQKK2NoZWNrc3VtPWE1OTRlNzQ0MDk3MWY4NjBjYzYx YjFiODI5MWJlMTVmZmMxYjhkZDA2YTlmMTE0ODVhNWE3ZmFmMTg5YmNmNmIKCkZyb20gNWI3ZjQ5 YThmMzNjNTMzZTE4YTliZTQwNjNmMzc5YmNmMzY1NmMyYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwg MTYgQXVnIDIwMjAgMTk6NTc6NDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDc0LzgzXSBnbm9tZS1i YWNrZ3JvdW5kczogdXBkYXRlIHRvIDMuMzcuMgoKLS0tCiBzcmNwa2dzL2dub21lLWJhY2tncm91 bmRzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90 ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMvdGVtcGxhdGUKaW5kZXggMGIxZWU0 MjczNTMuLmYxZjQ5ZGE5MzhlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWJhY2tncm91bmRz L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1iYWNrZ3JvdW5kcycKIHBrZ25h bWU9Z25vbWUtYmFja2dyb3VuZHMKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9u PTMuMzcuMgorcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1tZXNvbgogaG9z dG1ha2VkZXBlbmRzPWdldHRleHQKQEAgLTEwLDQgKzEwLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IENDLUJZLTIuMCwgQ0MtQlktU0EtMi4wLCBDQy1CWS1TQS0zLjAiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJhY2tncm91bmRzIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09YjhjYjgxZTRjZjlkMDg1ZmJiMjM1NDA2MzViNDkyZDVjMTI0 YTFmODYxMWMyYWE5YWM2Mzg0MTExZDc3YmIwYgorY2hlY2tzdW09NGEyY2I4NmZmOTZhNjUwZWIw NDEwMWMyYTFiYjBhZWZjMDNiMzU4NzdmNDIzMTMxMzc4ZjRjMGZkZjAzZGI2OAoKRnJvbSBjMzUy ODgyNDMxMTcwNjAwODVhZGJhM2U2MjY1MTkwZDIxMDVmNjg0IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3Vu LCAxNiBBdWcgMjAyMCAyMTowNToxMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNzUvODNdIHBvbGFy aTogdXBkYXRlIHRvIDMuMzcuMwoKLS0tCiBzcmNwa2dzL3BvbGFyaS90ZW1wbGF0ZSB8IDQgKyst LQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL3BvbGFyaS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcG9sYXJpL3RlbXBsYXRl CmluZGV4IDA3NjdiYWM5N2I4Li40MWQwOGVlODFiNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9wb2xh cmkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wb2xhcmkvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwb2xhcmknCiBwa2duYW1lPXBvbGFyaQotdmVyc2lvbj0z LjM2LjMKK3ZlcnNpb249My4zNy4zCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9z dG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGl0c3Rvb2wgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGdl dHRleHQiCkBAIC0xMyw3ICsxMyw3IEBAIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Qb2xhcmkiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT00ZjI2NjQ3ZTk4MWM1ZDBiZjQyZGY1ODJhZGFjMjBiYmZkYWNkZmU4YzRmZTE1MGFm MGNhMDNkMmUwY2VmNTNhCitjaGVja3N1bT03OTA1YjlkZGIzZjgxMWRjYzIzYjMwNzUwMTE4N2Vh ZDRkZGM3OGVkMGE2NTI5YWZjZGRjYjk0NDNiYTEyOTA4CiAKIGlmIFsgIiRDUk9TU19CVUlMRCIg XSA7IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgZ2xpYi1kZXZlbCBwcmVsaW5rLWNyb3NzIHFl bXUtdXNlci1zdGF0aWMiCgpGcm9tIDU4N2M5NWFmYWMyZDk2MGViYzIxYzVkYzNhM2UwZmM2NjRi YTA5NDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjEwOjQ0ICswMjAwClN1 YmplY3Q6IFtQQVRDSCA3Ni84M10gZ3ZmczogdXBkYXRlIHRvIDEuNDUuOTAKCi0tLQogc3JjcGtn cy9ndmZzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ3Zmcy90ZW1wbGF0ZQppbmRleCAxMjdhMDU3NzkwMS4uMTY5MWQ1MzZkMWEgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUK QEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdndmZzJwogcGtnbmFtZT1ndmZz Ci12ZXJzaW9uPTEuNDQuMQordmVyc2lvbj0xLjQ1LjkwCiByZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZHVzZXJ1bml0ZGlyPW5vIC1EdG1wZmls ZXNkaXI9bm8gLURsb2dpbmQ9ZmFsc2UKQEAgLTIwLDcgKzIwLDcgQEAgbGljZW5zZT0iTEdQTC0y LjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9n dmZzIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ3Zmcy9yYXcv Z25vbWUtMy0zNC9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTBlZjMy NDVkMWIwMzY2NmE0MDQ1NTEwOTE2OWEyYTFiZDUxNDE5ZmQyZDUxZjlmYTZjZmQ0Zjg5ZjA0ZmI0 NgorY2hlY2tzdW09ZGUxZjU2YWM0YmNiY2ViNzc3YWE3MmY2N2VlNWY1NzRhZjYzNjIxODJhYjFj ODA5N2RhNjU3ZTNkZGVhZGU4NwogCiAjIE1hbnVhbGx5IGRlY2xhcmUgc2hsaWJzIHVzZWQgYnkg dGhlIHN1YnBrZ3MuCiBzaGxpYl9wcm92aWRlcz0ibGliZ3Zmc2NvbW1vbi5zbyBsaWJndmZzZGFl bW9uLnNvIgoKRnJvbSA5MGY5MWViM2FjYjNkODU1ZjdlNDllMDNkYzU0YTUyMzIyYzVmOGI5IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMToxNjo0NSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggNzcvODNdIGxpYnNvdXA6IHVwZGF0ZSB0byAyLjcxLjAKCi0tLQogc3JjcGtncy9saWJz b3VwL3RlbXBsYXRlIHwgMjMgKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxMyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2xpYnNvdXAvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUKaW5kZXggZjdhOTgz NzNhYzguLmZkY2UxZGIzMTZlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9saWJzb3VwL3RlbXBsYXRlCkBAIC0xLDE2ICsxLDE2IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdsaWJzb3VwJwogcGtnbmFtZT1saWJzb3VwCi12ZXJzaW9uPTIuNzAuMAor dmVyc2lvbj0yLjcxLjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxw ZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGdzc2FwaT1kaXNhYmxlZCAtRG50bG09ZGlzYWJs ZWQKK2NvbmZpZ3VyZV9hcmdzPSItRGdzc2FwaT1kaXNhYmxlZCAtRG50bG09ZGlzYWJsZWQgLUR0 bHNfY2hlY2s9ZmFsc2UKICAtRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciBlbmFibGVkIGRp c2FibGVkKQotIC1EdmFwaT0kKHZvcHRfaWYgdmFsYSBlbmFibGVkIGRpc2FibGVkKSAtRHRsc19j aGVjaz1mYWxzZSIKKyAtRHZhcGk9JCh2b3B0X2lmIGdpciBlbmFibGVkIGRpc2FibGVkKSIKIGhv c3RtYWtlZGVwZW5kcz0iZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsIHBrZy1jb25maWcgZ2V0dGV4 dAotICQodm9wdF9pZiB2YWxhICd2YWxhJykiCisgJCh2b3B0X2lmIGdpciB2YWxhKSIKIG1ha2Vk ZXBlbmRzPSJsaWJnbGliLWRldmVsIGxpYnhtbDItZGV2ZWwgc3FsaXRlLWRldmVsIGxpYnBzbC1k ZXZlbAotIGJyb3RsaS1kZXZlbCAkKHZvcHRfaWYgdmFsYSAndmFsYS1kZXZlbCcpIgorIGJyb3Rs aS1kZXZlbCAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgogZGVwZW5kcz0iZ2xpYi1uZXR3b3Jr aW5nIgogc2hvcnRfZGVzYz0iSFRUUCBsaWJyYXJ5IGltcGxlbWVudGF0aW9uIGluIEMiCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgpAQCAtMTgsMTEgKzE4 LDE2IEBAIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvUHJvamVjdHMvbGlic291cCIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0 aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2xpYnNvdXAvZ25vbWUtMy0zNi9ORVdTIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTRiMDIwZjc0YWVmYTQzODkxOGQ4ZTUzY2ZmNjJl MmIxZTU5ZWZlMmRlNTNlMDZiMTlhNGIwN2IxZjRkNTM0MgorY2hlY2tzdW09ODhlMjRmYWQ3MmQx NmUxY2I2OTJjODc4MjY4OGRiZWU0YmY0NDE1MWVmYjBkOWVkMjViMTRmMzg0OWQ5ODk2ZQogCiAj IFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1idWlsZF9v cHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVpbGRfb3B0 aW9uc19kZWZhdWx0PSJnaXIiCisKKyMgZ2lvIHRlc3RzIGNhbid0IHJ1biBpbiBjaHJvb3QKK2Rv X2NoZWNrKCkgeworCToKK30KIAogbGlic291cC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9 IiR7bWFrZWRlcGVuZHN9IGxpYnNvdXA+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0zMSw4 ICszNiw2IEBAIGxpYnNvdXAtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgdXNyL2xpYi9wa2dj b25maWcvbGlic291cC0yLjQucGMKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4K IAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wL1NvdXAtMi40LmdpcgotCQlmaQotCQlpZiBbICIk YnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZp CiAJCXZtb3ZlIHVzci9pbmNsdWRlL2xpYnNvdXAtMi40CgpGcm9tIGM3MmZhODhjOGY1NjM1YWEw NDNmNzY2ZTRhOTBlZGQ2ZDcwNmI2ZTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIw IDIxOjIwOjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA3OC84M10gcnlnZWw6IHVwZGF0ZSB0byAw LjM5LjIKCi0tLQogc3JjcGtncy9yeWdlbC90ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9yeWdlbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcnlnZWwvdGVtcGxhdGUKaW5kZXggZDI4ZGJj MmNlMDguLmJkZWRkM2M2Yzg3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3J5Z2VsL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvcnlnZWwvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdyeWdlbCcKIHBrZ25hbWU9cnlnZWwKLXZlcnNpb249MC4zOC4zCi1yZXZpc2lvbj0y Cit2ZXJzaW9uPTAuMzkuMgorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hl bHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EZXhhbXBsZXM9ZmFsc2UgLUR0ZXN0cz1mYWxz ZQpAQCAtOSwxNCArOSwxNCBAQCBjb25maWd1cmVfYXJncz0iLURleGFtcGxlcz1mYWxzZSAtRHRl c3RzPWZhbHNlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCB2YWxhIgog bWFrZWRlcGVuZHM9InNxbGl0ZS1kZXZlbCBndGsrMy1kZXZlbCBsaWJzb3VwLWRldmVsIGxpYmdl ZTA4LWRldmVsCiAgZ3VwbnAtYXYtZGV2ZWwgZ3VwbnAtZGxuYS1kZXZlbCB0cmFja2VyLWRldmVs IGxpYm1lZGlhYXJ0LWRldmVsCi0gZ3NzZHAtZGV2ZWwiCisgZ3NzZHAtZGV2ZWwgZ3N0MS1lZGl0 aW5nLXNlcnZpY2VzLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIGRlc2t0b3At ZmlsZS11dGlscyIKIHNob3J0X2Rlc2M9IkdOT01FIGhvbWUgbWVkaWEgc29sdXRpb24iCiBtYWlu dGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0y LjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9S eWdlbCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTA4YzIxYTU3N2Y3YmRhZDI2 NDQ2YTc1ZmZhMzI3NzhiMjY4NDJjM2IxMTg4MTY1ZjBiMTk4MTg1NTk3NDdkMDAKK2NoZWNrc3Vt PTQ1M2YxY2U3ODJhNTFiYWU4Zjc3NmE5MmY3MGQyMzM2MjVjOThhMWM0Y2QyZWMzYjQ1NDVjYjdl Nzc3MzM2NjQKIAogY29uZl9maWxlcz0iL2V0Yy9yeWdlbC5jb25mIgogCgpGcm9tIGU5Y2ZlYmNj ZmI0NWMxOTgwOTk2ZmMwZDAyNTk4NzQxNTI2NzBmMzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2 IEF1ZyAyMDIwIDIxOjIzOjI0ICswMjAwClN1YmplY3Q6IFtQQVRDSCA3OS84M10gc2ltcGxlLXNj YW46IHVwZGF0ZSB0byAzLjM3LjMKCi0tLQogc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZSB8 IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlIGIvc3JjcGtncy9z aW1wbGUtc2Nhbi90ZW1wbGF0ZQppbmRleCA0YWUzYjg2NDNmZC4uNmUxN2E2ZWZiNGEgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3Mvc2ltcGxlLXNjYW4vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9zaW1wbGUt c2Nhbi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NpbXBs ZS1zY2FuJwogcGtnbmFtZT1zaW1wbGUtc2NhbgotX2dub21lX3ZlcnNpb249My4zNgotdmVyc2lv bj0zLjM2LjQKK3ZlcnNpb249My4zNy4zCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgog aG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZh bGEiCkBAIC0xMSw1ICsxMCw1IEBAIHNob3J0X2Rlc2M9IkdUSyBTaW1wbGUgc2Nhbm5pbmcgdXRp bGl0eSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21l Lm9yZy9HTk9NRS9zaW1wbGUtc2NhbiIKLWRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25h bWV9LyR7X2dub21lX3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT01NmFmMTgyOTFhNzc2M2Y3NjNkYTVmMGVkZWQyNDdkMmY4ZWJmOTExMmMyODZlZjg5MDEz Mzc0OTY5ZmVmNTI1CitkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT1mNWQ4OTczYzZi NDgzZDUwZDlhYzA4YWU2YzA4MDJhN2E2YmIyNTg1MzhhODE0NzI2NmU3M2FhNDUxZWVkOTUyCgpG cm9tIDg3NDJhMjU3ZjljY2QwMzY5ZGEwZTZlOTZhYTFiYjk1OGRjMjZiYTIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjI1OjE1ICswMjAwClN1YmplY3Q6IFtQQVRDSCA4MC84 M10geWVscC14c2w6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MveWVscC14c2wvdGVt cGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv eWVscC14c2wvdGVtcGxhdGUKaW5kZXggZjc0YTdmYmE2N2MuLjEwNzRlNmMzMTkwIDEwMDY0NAot LS0gYS9zcmNwa2dzL3llbHAteHNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVscC14c2wvdGVt cGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5ZWxwLXhzbCcKIHBr Z25hbWU9eWVscC14c2wKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9u PTEKIGFyY2hzPW5vYXJjaAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTEsNCArMTEs NCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvWWVscC9Yc2wiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00ZmU1MWMw MjMzYjc5YTRjMjA0YzY4NDk4ZDQ1ZjA5YjM0MmMzMGVkMDJjNGU0MTg1MDZjMGUzNWYwOTA0ZWMz CitjaGVja3N1bT1lOGNhOWNhZjU3MjlmOGRlNTAzNDlmZWZhMmYyYTY2ODBlMDQ5Mjk4YjdhYjg0 OWQ0ZWZlNDk4M2M0M2E5NGY0CgpGcm9tIGM3MzU0NWYwMjUzZWUxNjFmMmYxOTBhMjk4MDk1MmUx NTAzMTUzMTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjI1OjMzICswMjAw ClN1YmplY3Q6IFtQQVRDSCA4MS84M10geWVscDogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3Jj cGtncy95ZWxwL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MveWVscC90ZW1wbGF0ZSBi L3NyY3BrZ3MveWVscC90ZW1wbGF0ZQppbmRleCA2M2NhN2MyMjVjOC4uNWE0N2E4ZTJiZGIgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MveWVscC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3llbHAvdGVtcGxh dGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5ZWxwJwogcGtnbmFtZT15 ZWxwCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXNjaGVtYXMtY29t cGlsZSAtLWRpc2FibGUtc3RhdGljIgpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvWWVscCIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPWZkNGIzZTIzZDMxYWQyYmViZTQyYWM4ZjgwMjQyYjJk OWJlZjUxNDE4YmY2MmI1OWFjZGYyNDQwYmQ5NGVkMjQKK2NoZWNrc3VtPWRhYzNkMmIxNGZiZmNl ZTQ3MzJkNGU4YTdmOGExMDhhODhlODUzY2EwNWYwNzFkOTg4YTVhOGUxODVlNWFiZDIKIAogeWVs cC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9InllbHAtJHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKCkZyb20gNTE5NDQ2ZGYxYWRmNzQ3NWZjNmIyMTU5YjdkNDBiMzVlMzgyYTYyYyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MjY6NDcgKzAyMDAKU3ViamVjdDogW1BBVENI IDgyLzgzXSB5ZWxwLXRvb2xzOiB1cGRhdGUgdG8gMy4zNy45MAoKW2NpIHNraXBdCi0tLQogc3Jj cGtncy95ZWxwLXRvb2xzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MveWVscC10b29s cy90ZW1wbGF0ZSBiL3NyY3BrZ3MveWVscC10b29scy90ZW1wbGF0ZQppbmRleCA5ZThhNjcwZTZi MC4uYTFlYzlmN2U2ZWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveWVscC10b29scy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICd5ZWxwLXRvb2xzJwogcGtnbmFtZT15ZWxwLXRvb2xzCi12ZXJzaW9uPTMu MzIuMgordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0 eWxlPWdudS1jb25maWd1cmUKQEAgLTEyLDQgKzEyLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cDovL3d3dy5nbm9tZS5vcmciCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT0xODM4NTZiNWVkMGIwYmIyYzA1ZGQxMjA0YWYwMjM5NDZlZDQzNjk0M2UzNWU3ODlh ZmIwMjk1ZTVlNzFlOGY5CitjaGVja3N1bT1kMDcwMjU4OWM4MjM4YTIxNTk1NGNhY2E5NGE5NjRi M2EwZDE2NDY2Nzk4YThjMWQ2NDRkZDY2YzI0OTJmMmJiCgpGcm9tIDE2MzNlNmUxMzdmN2MwZGEy ODE4YjQ4OWFlODdkMzQ1YzQzOWYwMjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUdWUsIDE4IEF1ZyAyMDIw IDA1OjM1OjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCA4My84M10gYnVkZ2llLWRlc2t0b3A6IHJl YnVpbGQgZm9yIG11dHRlci03CgpbY2kgc2tpcF0KLS0tCiAuLi4vYnVkZ2llLWRlc2t0b3AvcGF0 Y2hlcy9nbm9tZS0zMzgucGF0Y2ggICAgfCAxMzQ3MiArKysrKysrKysrKysrKysrCiBzcmNwa2dz L2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAgICAgfCAgICAgMiArLQogMiBmaWxl cyBjaGFuZ2VkLCAxMzQ3MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaAoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0 Y2ggYi9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvZ25vbWUtMzM4LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MmZhNzZhMTdiMAotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2gK QEAgLTAsMCArMSwxMzQ3MiBAQAorRnJvbSAzMGJhMGI1YTQ5ODZkNmJlMzY4N2ExZDdmYjQ4Mjkw NjE4NWVhOGM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGF2aWQgTW9oYW1tZWQg PGZvc3NmcmVlZG9tQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KK0RhdGU6IFR1ZSwgMTggRmVi IDIwMjAgMDY6NDA6MTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gZ25vbWUgMy4zOCBjb21wYXRp YmlsaXR5CisKK1NxdWFzaGVkIGJ5IEBxNjYgZnJvbToKKworaHR0cHM6Ly9naXRodWIuY29tL3Nv bHVzLXByb2plY3QvYnVkZ2llLWRlc2t0b3AvcHVsbC8xOTg3CisKK3BsdXMgYW4gYXNzb3J0bWVu dCBvZiBvbGRlciBtdXR0ZXIgdXBkYXRlcyBmcm9tIGdpdCBtYXN0ZXIKKy0tLQorIG1lc29uLmJ1 aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKy0KKyBtZXNvbl9v cHRpb25zLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxIC0KKyBzcmMvYXBw bGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEgICAgICAgICAgfCAgICA2IC0KKyBzcmMvYXBw bGV0cy9zdGF0dXMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEzICstCisgc3JjL3dt L2JhY2tncm91bmQudmFsYSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArLQorIHNyYy93 bS9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzAgKy0KKyBzcmMv d20vc2hpbS52YWxhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICstCisgc3Jj L3dtL3dtLnZhbGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQorIC4u LntDbHV0dGVyLTUubWV0YWRhdGEgPT4gQ2x1dHRlci02Lm1ldGFkYXRhfSB8ICAgIDAKKyAuLi57 Q2x1dHRlci00Lm1ldGFkYXRhID0+IENsdXR0ZXItNy5tZXRhZGF0YX0gfCAgIDQzIC0KKyB2YXBp L3tDb2dsLTQubWV0YWRhdGEgPT4gQ29nbC02Lm1ldGFkYXRhfSAgICAgfCAgICAwCisgdmFwaS97 Q29nbC01Lm1ldGFkYXRhID0+IENvZ2wtNy5tZXRhZGF0YX0gICAgIHwgICAgMiAtCisgdmFwaS9N ZXRhLTMubWV0YWRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2NiAtCisgdmFwaS97 TWV0YS01Lm1ldGFkYXRhID0+IE1ldGEtNi5tZXRhZGF0YX0gICAgIHwgICAgMAorIHZhcGkve01l dGEtNC5tZXRhZGF0YSA9PiBNZXRhLTcubWV0YWRhdGF9ICAgICB8ICAgMjUgKy0KKyB2YXBpL2dl bmVyYXRlLW11dHRlci12YXBpLnNoICAgICAgICAgICAgICAgICAgfCAgICAyICstCisgdmFwaS9n cmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpICAgICAgICAgICAgICAgIHwgIDY5MSArKysrKysrCisg dmFwaS9saWJtdXR0ZXItMi5kZXBzICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSAtCisg dmFwaS9saWJtdXR0ZXItMi52YXBpICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMyNSAtLS0t LS0tLS0tLS0tLQorIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEgICAgICAgICAgICAgICAg ICB8ICAgIDYgLQorIHZhcGkvbGlibXV0dGVyLTMuZGVwcyAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDkgLQorIHZhcGkvbGlibXV0dGVyLTQuZGVwcyAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDggLQorIHZhcGkvbGlibXV0dGVyLTQudmFwaSAgICAgICAgICAgICAgICAgICAgICAg ICB8IDE0MjUgLS0tLS0tLS0tLS0tLS0tCisgdmFwaS97bGlibXV0dGVyLTUuZGVwcyA9PiBsaWJt dXR0ZXItNi5kZXBzfSAgIHwgICAgMyArLQorIHZhcGkve2xpYm11dHRlci01LnZhcGkgPT4gbGli bXV0dGVyLTYudmFwaX0gICB8ICAgNDUgKy0KKyB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxh ICAgICAgICAgICAgICAgICAgfCAgICA3ICsKKyB2YXBpL2xpYm11dHRlci03LmRlcHMgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICA2ICsKKyB2YXBpL3tsaWJtdXR0ZXItMy52YXBpID0+IGxp Ym11dHRlci03LnZhcGl9ICAgfCAgMzkwICsrLS0KKyB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFw aSAgICAgICAgICAgICAgICAgICAgfCAxMjcyIC0tLS0tLS0tLS0tLS0KKyB2YXBpL211dHRlci1j bHV0dGVyLTUtY3VzdG9tLnZhbGEgICAgICAgICAgICAgfCAgMTU4IC0tCisgLi4uc3RvbS52YWxh ID0+IG11dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGF9IHwgICAxMSAtCisgLi4uci1jbHV0dGVy LTUuZGVwcyA9PiBtdXR0ZXItY2x1dHRlci02LmRlcHN9IHwgICAgMiArLQorIC4uLnItY2x1dHRl ci01LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNi52YXBpfSB8ICA4MDYgKystLS0tLS0KKyAuLi5y LWNsdXR0ZXItNC5kZXBzID0+IG11dHRlci1jbHV0dGVyLTcuZGVwc30gfCAgICAzICstCisgLi4u ci1jbHV0dGVyLTQudmFwaSA9PiBtdXR0ZXItY2x1dHRlci03LnZhcGl9IHwgMTYxNSArKysrLS0t LS0tLS0tLS0tLQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC02LWN1c3RvbS52YWxh fSB8ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wtNC5kZXBzID0+IG11dHRlci1jb2dsLTYuZGVwc30g fCAgICAwCisgLi4ue211dHRlci1jb2dsLTUudmFwaSA9PiBtdXR0ZXItY29nbC02LnZhcGl9IHwg IDQyMiArLS0tLQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC03LWN1c3RvbS52YWxh fSB8ICAgMjAgKy0KKyAuLi57bXV0dGVyLWNvZ2wtNS5kZXBzID0+IG11dHRlci1jb2dsLTcuZGVw c30gfCAgICAwCisgLi4ue211dHRlci1jb2dsLTQudmFwaSA9PiBtdXR0ZXItY29nbC03LnZhcGl9 IHwgIDY3MSArKystLS0tCisgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkgICAgICAgICAgICAg ICAgICAgIHwgICAzMSArLQorIDQyIGZpbGVzIGNoYW5nZWQsIDE5MjAgaW5zZXJ0aW9ucygrKSwg NzI1NCBkZWxldGlvbnMoLSkKKyByZW5hbWUgdmFwaS97Q2x1dHRlci01Lm1ldGFkYXRhID0+IENs dXR0ZXItNi5tZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve0NsdXR0ZXItNC5tZXRhZGF0 YSA9PiBDbHV0dGVyLTcubWV0YWRhdGF9ICg3OCUpCisgcmVuYW1lIHZhcGkve0NvZ2wtNC5tZXRh ZGF0YSA9PiBDb2dsLTYubWV0YWRhdGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tDb2dsLTUubWV0 YWRhdGEgPT4gQ29nbC03Lm1ldGFkYXRhfSAoOTElKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBp L01ldGEtMy5tZXRhZGF0YQorIHJlbmFtZSB2YXBpL3tNZXRhLTUubWV0YWRhdGEgPT4gTWV0YS02 Lm1ldGFkYXRhfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97TWV0YS00Lm1ldGFkYXRhID0+IE1ldGEt Ny5tZXRhZGF0YX0gKDc2JSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9ncmFwaGVuZS1nb2Jq ZWN0LTEuMC52YXBpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTIuZGVwcwor IGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci0yLnZhcGkKKyBkZWxldGUgbW9kZSAx MDA2NDQgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2 YXBpL2xpYm11dHRlci0zLmRlcHMKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXIt NC5kZXBzCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTQudmFwaQorIHJlbmFt ZSB2YXBpL3tsaWJtdXR0ZXItNS5kZXBzID0+IGxpYm11dHRlci02LmRlcHN9ICg1MCUpCisgcmVu YW1lIHZhcGkve2xpYm11dHRlci01LnZhcGkgPT4gbGlibXV0dGVyLTYudmFwaX0gKDk3JSkKKyBj cmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQorIGNyZWF0ZSBt b2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci03LmRlcHMKKyByZW5hbWUgdmFwaS97bGlibXV0dGVy LTMudmFwaSA9PiBsaWJtdXR0ZXItNy52YXBpfSAoNzUlKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2 YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL211dHRl ci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNsdXR0ZXItNC1j dXN0b20udmFsYSA9PiBtdXR0ZXItY2x1dHRlci02LWN1c3RvbS52YWxhfSAoOTIlKQorIHJlbmFt ZSB2YXBpL3ttdXR0ZXItY2x1dHRlci01LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNi5kZXBzfSAo NjMlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci01LnZhcGkgPT4gbXV0dGVyLWNsdXR0 ZXItNi52YXBpfSAoOTMlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci00LmRlcHMgPT4g bXV0dGVyLWNsdXR0ZXItNy5kZXBzfSAoNTQlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRl ci00LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNy52YXBpfSAoODYlKQorIHJlbmFtZSB2YXBpL3tt dXR0ZXItY29nbC01LWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTYtY3VzdG9tLnZhbGF9ICgx MDAlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC00LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNi5k ZXBzfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNS52YXBpID0+IG11dHRlci1j b2dsLTYudmFwaX0gKDY4JSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNC1jdXN0b20udmFs YSA9PiBtdXR0ZXItY29nbC03LWN1c3RvbS52YWxhfSAoODElKQorIHJlbmFtZSB2YXBpL3ttdXR0 ZXItY29nbC01LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNy5kZXBzfSAoMTAwJSkKKyByZW5hbWUgdmFw aS97bXV0dGVyLWNvZ2wtNC52YXBpID0+IG11dHRlci1jb2dsLTcudmFwaX0gKDU5JSkKKworZGlm ZiAtLWdpdCBtZXNvbi5idWlsZCBtZXNvbi5idWlsZAoraW5kZXggMmEwZTAzMTYuLjNjNGM2YWMx IDEwMDY0NAorLS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BAIC0zMiwxNiArMzIs MTYgQEAgYW1fY2ZsYWdzID0gWworIGFkZF9nbG9iYWxfYXJndW1lbnRzKGFtX2NmbGFncywgbGFu Z3VhZ2U6ICdjJykKKyBtZXNvbi5hZGRfaW5zdGFsbF9zY3JpcHQoJ21lc29uX3Bvc3RfaW5zdGFs bC5zaCcpCisgCistIyBCdWRnaWUgbmVlZHMgYSBtaW5pbXVtIDMuMjIgR05PTUUgc3RhY2sKKy1n bm9tZV9taW5pbXVtX3ZlcnNpb24gPSAnPj0gMy4yMi4wJworKyMgQnVkZ2llIG5lZWRzIGEgbWlu aW11bSAzLjI0IEdOT01FIHN0YWNrCisrZ25vbWVfbWluaW11bV92ZXJzaW9uID0gJz49IDMuMjQu MCcKKyAKKyBkZXBfZ3RrMyA9IGRlcGVuZGVuY3koJ2d0aystMy4wJywgdmVyc2lvbjogZ25vbWVf bWluaW11bV92ZXJzaW9uKQorLWRlcF9nbGliID0gZGVwZW5kZW5jeSgnZ2xpYi0yLjAnLCB2ZXJz aW9uOiAnPj0gMi40Ni4wJykKKy1kZXBfZ2lvdW5peCA9IGRlcGVuZGVuY3koJ2dpby11bml4LTIu MCcsIHZlcnNpb246ICc+PSAyLjQ2LjAnKQorLWRlcF9wZWFzID0gZGVwZW5kZW5jeSgnbGlicGVh cy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS44LjAnKQorK2RlcF9nbGliID0gZGVwZW5kZW5jeSgnZ2xp Yi0yLjAnLCB2ZXJzaW9uOiAnPj0gMi42Mi4wJykKKytkZXBfZ2lvdW5peCA9IGRlcGVuZGVuY3ko J2dpby11bml4LTIuMCcsIHZlcnNpb246ICc+PSAyLjYyLjAnKQorK2RlcF9wZWFzID0gZGVwZW5k ZW5jeSgnbGlicGVhcy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS4yNC4wJykKKyBkZXBfZ2RreDExID0g ZGVwZW5kZW5jeSgnZ2RrLXgxMS0zLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24p CisgZGVwX2xpYnV1aWQgPSBkZXBlbmRlbmN5KCd1dWlkJykKKy1kZXBfdmFsYSA9IGRlcGVuZGVu Y3koJ3ZhcGlnZW4nLCB2ZXJzaW9uOiAnPj0gMC40MC4wJykKKytkZXBfdmFsYSA9IGRlcGVuZGVu Y3koJ3ZhcGlnZW4nLCB2ZXJzaW9uOiAnPj0gMC40Ni4wJykKKyAKKyAjIE5lZWRlZCBmb3Iga2V5 Ym9hcmR5IGJpdHMKKyBkZXBfaWJ1cyA9IGRlcGVuZGVuY3koJ2lidXMtMS4wJywgdmVyc2lvbjog Jz49IDEuNS4xMCcpCitAQCAtNTEsMTAgKzUxLDEwIEBAIGRlcF9nc2V0dGluZ3MgPSBkZXBlbmRl bmN5KCdnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92 CisgZGVwX2dzZCA9IGRlcGVuZGVuY3koJ2dub21lLXNldHRpbmdzLWRhZW1vbicsIHZlcnNpb246 ICc+PTMuMjguMCcpCisgCisgIyB3bmNrIHVzZWQgYWxsIG92ZXIgdGhlIHBsYWNlLi4KKy1kZXBf d25jayA9IGRlcGVuZGVuY3koJ2xpYnduY2stMy4wJywgdmVyc2lvbjogJz49IDMuMTQuMCcpCisr ZGVwX3duY2sgPSBkZXBlbmRlbmN5KCdsaWJ3bmNrLTMuMCcsIHZlcnNpb246ICc+PSAzLjMyLjAn KQorIAorICMgYWNjb3VudHNzZXJ2aWNlIGluIG11bHRpcGxlIGFwcGxldHMKKy1kZXBfYWNjb3Vu dHNzZXJ2aWNlID0gZGVwZW5kZW5jeSgnYWNjb3VudHNzZXJ2aWNlJywgdmVyc2lvbjogJz49IDAu Ni40MCcpCisrZGVwX2FjY291bnRzc2VydmljZSA9IGRlcGVuZGVuY3koJ2FjY291bnRzc2Vydmlj ZScsIHZlcnNpb246ICc+PSAwLjYuNTUnKQorIAorICMgQ3JlYXRlIGNvbmZpZy5oCisgY2RhdGEg PSBjb25maWd1cmF0aW9uX2RhdGEoKQorZGlmZiAtLWdpdCBtZXNvbl9vcHRpb25zLnR4dCBtZXNv bl9vcHRpb25zLnR4dAoraW5kZXggZDcxYjA5YjUuLmRjYTkxMjk2IDEwMDY0NAorLS0tIG1lc29u X29wdGlvbnMudHh0CisrKysgbWVzb25fb3B0aW9ucy50eHQKK0BAIC0xLDUgKzEsNCBAQAorIG9w dGlvbignd2l0aC1zdGF0ZWxlc3MnLCB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiBmYWxzZSwgZGVz Y3JpcHRpb246ICdFbmFibGUgc3RhdGVsZXNzIFhERyBwYXRocycpCisgb3B0aW9uKCd3aXRoLXBv bGtpdCcsIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUsIGRlc2NyaXB0aW9uOiAnRW5hYmxl IFBvbEtpdCBzdXBwb3J0JykKKy1vcHRpb24oJ3dpdGgtYmx1ZXRvb3RoJywgdHlwZTogJ2Jvb2xl YW4nLCB2YWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdFbmFibGUgZ25vbWUtYmx1ZXRvb3RoIHN1 cHBvcnQnKQorIG9wdGlvbignd2l0aC1ndGstZG9jJywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTog dHJ1ZSwgZGVzY3JpcHRpb246ICdCdWlsZCBndGstZG9jIGRvY3VtZW50YXRpb24nKQorIG9wdGlv bignd2l0aC1kZXNrdG9wLWljb25zJywgdHlwZTogJ2NvbWJvJywgY2hvaWNlczogWyduYXV0aWx1 cycsICdub25lJ10sIHZhbHVlOiAnbmF1dGlsdXMnLCBkZXNjcmlwdGlvbjogJ0Rlc2t0b3AgaWNv biBoYW5kbGluZycpCitkaWZmIC0tZ2l0IHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQu dmFsYSBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKK2luZGV4IGI5ODI2Mzk0 Li43MWYyODdjOSAxMDA2NDQKKy0tLSBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZh bGEKKysrKyBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKK0BAIC0yMCw5ICsy MCw3IEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0CisgeworIAor ICAgICBwcm90ZWN0ZWQgR3RrLkJveCB3aWRnZXQ7CistI2lmIFdJVEhfQkxVRVRPT1RICisgICAg IHByb3RlY3RlZCBCbHVldG9vdGhJbmRpY2F0b3IgYmx1ZTsKKy0jZW5kaWYKKyAgICAgcHJvdGVj dGVkIFNvdW5kSW5kaWNhdG9yIHNvdW5kOworICAgICBwcm90ZWN0ZWQgUG93ZXJJbmRpY2F0b3Ig cG93ZXI7CisgICAgIHByb3RlY3RlZCBHdGsuRXZlbnRCb3g/IHdyYXA7CitAQCAtNjgsMTIgKzY2 LDEwIEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0CisgICAgICAg ICB0aGlzLnNldHVwX3BvcG92ZXIocG93ZXIuZWJveCwgcG93ZXIucG9wb3Zlcik7CisgICAgICAg ICB0aGlzLnNldHVwX3BvcG92ZXIoc291bmQuZWJveCwgc291bmQucG9wb3Zlcik7CisgCistI2lm IFdJVEhfQkxVRVRPT1RICisgICAgICAgICBibHVlID0gbmV3IEJsdWV0b290aEluZGljYXRvcigp OworICAgICAgICAgd2lkZ2V0LnBhY2tfc3RhcnQoYmx1ZSwgZmFsc2UsIGZhbHNlLCAyKTsKKyAg ICAgICAgIGJsdWUuc2hvd19hbGwoKTsKKyAgICAgICAgIHRoaXMuc2V0dXBfcG9wb3ZlcihibHVl LmVib3gsIGJsdWUucG9wb3Zlcik7CistI2VuZGlmCisgICAgIH0KKyAKKyAgICAgcHVibGljIG92 ZXJyaWRlIHZvaWQgcGFuZWxfcG9zaXRpb25fY2hhbmdlZChCdWRnaWUuUGFuZWxQb3NpdGlvbiBw b3NpdGlvbikKK0BAIC05MSw5ICs4Nyw3IEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBC dWRnaWUuQXBwbGV0CisgICAgICAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyOworICAgICAgICAg bWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKHBvd2VyLmVib3gsIHBvd2VyLnBvcG92ZXIpOworICAg ICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKHNvdW5kLmVib3gsIHNvdW5kLnBvcG92ZXIp OworLSNpZiBXSVRIX0JMVUVUT09USAorICAgICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVy KGJsdWUuZWJveCwgYmx1ZS5wb3BvdmVyKTsKKy0jZW5kaWYKKyAgICAgfQorIH0gLy8gRW5kIGNs YXNzCisgCitkaWZmIC0tZ2l0IHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZCBzcmMvYXBw bGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKK2luZGV4IDY5OWZiOGY0Li5iNGQyNzA2YyAxMDA2NDQK Ky0tLSBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKKysrKyBzcmMvYXBwbGV0cy9zdGF0 dXMvbWVzb24uYnVpbGQKK0BAIC0xMCw2ICsxMCw3IEBAIGN1c3RvbV90YXJnZXQoJ3BsdWdpbi1m aWxlLXN0YXR1cycsCisgICAgIGluc3RhbGxfZGlyIDogYXBwbGV0X3N0YXR1c19kaXIpCisgCisg YXBwbGV0X3N0YXR1c19zb3VyY2VzID0gWworKyAgICAnQmx1ZXRvb3RoSW5kaWNhdG9yLnZhbGEn LAorICAgICAnU3RhdHVzQXBwbGV0LnZhbGEnLAorICAgICAnUG93ZXJJbmRpY2F0b3IudmFsYScs CisgICAgICdTb3VuZEluZGljYXRvci52YWxhJywKK0BAIC0yMCwyMiArMjEsMTMgQEAgYXBwbGV0 X3N0YXR1c19kZXBzID0gWworICAgICBkZXBfZ3RrMywKKyAgICAgZGVwX3BlYXMsCisgICAgIGRl cF9hY2NvdW50c3NlcnZpY2UsCisrICAgIGRlcGVuZGVuY3koJ2dub21lLWJsdWV0b290aC0xLjAn LCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pLAorICAgICBkZXBlbmRlbmN5KCd1cG93 ZXItZ2xpYicsIHZlcnNpb246ICc+PSAwLjk5LjAnKSwKKyAgICAgbGlua19saWJwbHVnaW4sCisg ICAgIGd2Yy5nZXRfdmFyaWFibGUoJ2xpYmd2Y19kZXAnKSwKKyAgICAgbWVzb24uZ2V0X2NvbXBp bGVyKCdjJykuZmluZF9saWJyYXJ5KCdtJywgcmVxdWlyZWQ6IGZhbHNlKSwKKyBdCisgCistIyBC bHVldG9vdGggaXMgb3B0aW9uYWwgdG8gYWxsb3cgc21hbGxlciBidWlsZHMKKy13aXRoX2JsdWV0 b290aCA9IGdldF9vcHRpb24oJ3dpdGgtYmx1ZXRvb3RoJykKKy1hcHBsZXRfc3RhdHVzX3ZhbGFf YXJncyA9IFtdCistCistaWYgd2l0aF9ibHVldG9vdGggPT0gdHJ1ZQorLSAgICBhcHBsZXRfc3Rh dHVzX2RlcHMgKz0gZGVwZW5kZW5jeSgnZ25vbWUtYmx1ZXRvb3RoLTEuMCcsIHZlcnNpb246IGdu b21lX21pbmltdW1fdmVyc2lvbikKKy0gICAgYXBwbGV0X3N0YXR1c19zb3VyY2VzICs9ICdCbHVl dG9vdGhJbmRpY2F0b3IudmFsYScKKy0gICAgYXBwbGV0X3N0YXR1c192YWxhX2FyZ3MgKz0gWyct RCcsICdXSVRIX0JMVUVUT09USCddCistZW5kaWYKKy0KKyBzaGFyZWRfbGlicmFyeSgKKyAgICAg J3N0YXR1c2FwcGxldCcsCisgICAgIGFwcGxldF9zdGF0dXNfc291cmNlcywKK0BAIC01MCw3ICs0 Miw2IEBAIHNoYXJlZF9saWJyYXJ5KAorICAgICAgICAgJy0tcGtnJywgJ2d2Yy0xLjAnLAorICAg ICAgICAgJy0tcGtnJywgJ2dpby11bml4LTIuMCcsCisgICAgICAgICAnLS12YXBpZGlyJywgam9p bl9wYXRocyhtZXNvbi5zb3VyY2Vfcm9vdCgpLCAndmFwaScpLAorLSAgICAgICAgYXBwbGV0X3N0 YXR1c192YWxhX2FyZ3MsCisgICAgIF0sCisgICAgIGluc3RhbGw6IHRydWUsCisgICAgIGluc3Rh bGxfZGlyOiBhcHBsZXRfc3RhdHVzX2RpciwKK2RpZmYgLS1naXQgc3JjL3dtL2JhY2tncm91bmQu dmFsYSBzcmMvd20vYmFja2dyb3VuZC52YWxhCitpbmRleCAwODRhYTlhYi4uYjMzMWUwYzQgMTAw NjQ0CistLS0gc3JjL3dtL2JhY2tncm91bmQudmFsYQorKysrIHNyYy93bS9iYWNrZ3JvdW5kLnZh bGEKK0BAIC0yMDQsOCArMjA0LDEzIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVCYWNrZ3JvdW5kIDog Q2x1dHRlci5BY3RvcgorIAorICAgICAgICAgdmFyIGFjdG9yID0gbmV3IE1ldGEuQmFja2dyb3Vu ZEFjdG9yKGRpc3BsYXksIGluZGV4KTsKKyAgICAgICAgIHZhciBiYWNrZ3JvdW5kID0gbmV3IE1l dGEuQmFja2dyb3VuZChkaXNwbGF5KTsKKysjaWYgSEFWRV9NVVRURVJfNgorICAgICAgICAgYWN0 b3Iuc2V0X2JhY2tncm91bmQoYmFja2dyb3VuZCk7CistCisrI2Vsc2UKKysgICAgICAgIHZhciBj b250ZW50ID0gYWN0b3IuZ2V0X2NvbnRlbnQoKTsKKysgICAgICAgIHVub3duZWQgTWV0YS5CYWNr Z3JvdW5kQ29udGVudCBiYWNrZ3JvdW5kX2NvbnRlbnQgPSAoTWV0YS5CYWNrZ3JvdW5kQ29udGVu dCkgY29udGVudDsKKysgICAgICAgIGJhY2tncm91bmRfY29udGVudC5zZXRfYmFja2dyb3VuZChi YWNrZ3JvdW5kKTsKKysjZW5kaWYKKyAgICAgICAgIHJlY3QgPSBkaXNwbGF5LmdldF9tb25pdG9y X2dlb21ldHJ5KGluZGV4KTsKKyAgICAgICAgIGFjdG9yLnNldF9zaXplKHJlY3Qud2lkdGgsIHJl Y3QuaGVpZ2h0KTsKKyAgICAgICAgIGFjdG9yLnNldCgib3BhY2l0eSIsIDApOworQEAgLTIyMSwx MyArMjI2LDIxIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVCYWNrZ3JvdW5kIDogQ2x1dHRlci5BY3Rv cgorICAgICAgICAgc2hhZGluZ19kaXJlY3Rpb24gPSAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRp bmcpc2V0dGluZ3MuZ2V0X2VudW0oQ09MT1JfU0hBRElOR19UWVBFX0tFWSk7CisgICAgICAgICB2 YXIgY29sb3Jfc3RyID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhQUklNQVJZX0NPTE9SX0tFWSk7Cisg ICAgICAgICBpZiAoY29sb3Jfc3RyICE9IG51bGwgJiYgY29sb3Jfc3RyICE9ICIiKSB7CisrI2lm IEhBVkVfTVVUVEVSXzYKKyAgICAgICAgICAgICBwcmltYXJ5X2NvbG9yID0gQ2x1dHRlci5Db2xv ci5mcm9tX3N0cmluZyhjb2xvcl9zdHIpOworKyNlbHNlCisrICAgICAgICAgICAgQ2x1dHRlci5D b2xvci5mcm9tX3N0cmluZyhvdXQgcHJpbWFyeV9jb2xvciwgY29sb3Jfc3RyKTsKKysjZW5kaWYK KyAgICAgICAgICAgICBjb2xvcl9zdHIgPSBudWxsOworICAgICAgICAgfQorIAorICAgICAgICAg Y29sb3Jfc3RyID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhTRUNPTkRBUllfQ09MT1JfS0VZKTsKKyAg ICAgICAgIGlmIChjb2xvcl9zdHIgIT0gbnVsbCAmJiBjb2xvcl9zdHIgIT0gIiIpIHsKKysjaWYg SEFWRV9NVVRURVJfNgorICAgICAgICAgICAgIHNlY29uZGFyeV9jb2xvciA9IENsdXR0ZXIuQ29s b3IuZnJvbV9zdHJpbmcoY29sb3Jfc3RyKTsKKysjZWxzZQorKyAgICAgICAgICAgIENsdXR0ZXIu Q29sb3IuZnJvbV9zdHJpbmcob3V0IHNlY29uZGFyeV9jb2xvciwgY29sb3Jfc3RyKTsKKysjZW5k aWYKKyAgICAgICAgICAgICBjb2xvcl9zdHIgPSBudWxsOworICAgICAgICAgfQorIAorZGlmZiAt LWdpdCBzcmMvd20vbWVzb24uYnVpbGQgc3JjL3dtL21lc29uLmJ1aWxkCitpbmRleCBlMzliODY3 OC4uNTgzY2U3OTAgMTAwNjQ0CistLS0gc3JjL3dtL21lc29uLmJ1aWxkCisrKysgc3JjL3dtL21l c29uLmJ1aWxkCitAQCAtMTcsMjAgKzE3LDE4IEBAIGJ1ZGdpZV93bV9zb3VyY2VzID0gWworIAor IGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzID0gW10KKyAKKy12YXBpX211dHRlciA9ICdsaWJt dXR0ZXItMycKKy1kZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTMnLCB2ZXJzaW9u OiBnbm9tZV9taW5pbXVtX3ZlcnNpb24sIHJlcXVpcmVkOiBmYWxzZSkKKy1pZiBub3QgZGVwX211 dHRlci5mb3VuZCgpCistICAgIGRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNCcs IHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorK2RlcF9n cmFwaGVuZSA9IGRlcGVuZGVuY3koJ2dyYXBoZW5lLWdvYmplY3QtMS4wJywgdmVyc2lvbjogJz49 IDEuMTAnKQorK2RlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNycsIHZlcnNpb246 IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorK2lmIGRlcF9tdXR0ZXIu Zm91bmQoKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVf TVVUVEVSXzcnXQorKyAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTcgQUJJIGZyb20g R05PTUUgMy4zOCcpCisrICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci03JworK2Vsc2UKKysg ICAgZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRlci02JywgdmVyc2lvbjogZ25vbWVf bWluaW11bV92ZXJzaW9uKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1E JywgJ0hBVkVfTVVUVEVSXzYnXQorICAgICBpZiBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgICAg IG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNCBBQkkgZnJvbSBHTk9NRSAzLjMyJykKKy0g ICAgICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci00JworLSAgICBlbHNlCistICAgICAgICBk ZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTUnLCB2ZXJzaW9uOiBnbm9tZV9taW5p bXVtX3ZlcnNpb24pCistICAgICAgICBpZiBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgICAgICAg ICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTUgQUJJIGZyb20gR05PTUUgMy4zNCcpCist ICAgICAgICAgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTUnCistICAgICAgICAgICAgYnVk Z2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX01VVFRFUl81J10KKy0gICAg ICAgIGVuZGlmCisrICAgICAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTYgQUJJIGZy b20gR05PTUUgMy4zNicpCisrICAgICAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0ZXItNicKKyAg ICAgZW5kaWYKKyBlbmRpZgorIAorQEAgLTQyLDggKzQwLDggQEAgYnVkZ2llX3dtX2RlcHMgPSBb CisgICAgIGRlcF9pYnVzLAorIF0KKyAKKy1pZiBkZXBfZ3NkLnZlcnNpb24oKS52ZXJzaW9uX2Nv bXBhcmUoJz49My4zMS45MScpCistICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsn LUQnLCAnSEFWRV9HU0RfMzMyJ10KKytpZiBkZXBfZ3NkLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBh cmUoJz49My4zNi4wJykKKysgICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcs ICdIQVZFX0dTRF9TVVBQT1JURUQnXQorIGVuZGlmCisgCisgYnVkZ2llX3dtX3ZhbGFfYXJncyA9 ICBbCitAQCAtNjAsNyArNTgsNyBAQCBidWRnaWVfd21fdmFsYV9hcmdzID0gIFsKKyAKKyBycGF0 aCA9ICcnCisgCistaWYgZGVwX211dHRlci52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PTMu MjguMCcpCisraWYgZGVwX211dHRlci52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PTMuMzYu MCcpCisgICAgIHJwYXRoID0gZGVwX211dHRlci5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCd0eXBl bGliZGlyJykKKyAgICAgYnVkZ2llX3dtX3ZhbGFfYXJncyArPSBbJy0tZ2lyZGlyJywgcnBhdGhd CisgZW5kaWYKK2RpZmYgLS1naXQgc3JjL3dtL3NoaW0udmFsYSBzcmMvd20vc2hpbS52YWxhCitp bmRleCA0Y2RmYTBiMC4uZmMyNGIyODkgMTAwNjQ0CistLS0gc3JjL3dtL3NoaW0udmFsYQorKysr IHNyYy93bS9zaGltLnZhbGEKK0BAIC0xNCw3ICsxNCw3IEBAIG5hbWVzcGFjZSBCdWRnaWUgewor IHB1YmxpYyBzdHJ1Y3QgR3NkQWNjZWwgeworICAgICBzdHJpbmcgYWNjZWxlcmF0b3I7CisgICAg IHVpbnQgZmxhZ3M7CistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQT1JURUQK KyAgICAgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFnczsKKyAjZW5kaWYKKyB9CitAQCAt MTkzLDExICsxOTMsNyBAQCBwdWJsaWMgY2xhc3MgU2hlbGxTaGltIDogR0xpYi5PYmplY3QKKyAg ICAgICAgIG9zZF9wcm94eSA9IG51bGw7CisgICAgIH0KKyAKKy0jaWYgSEFWRV9NVVRURVJfNQor ICAgICBwcml2YXRlIHZvaWQgb25fYWNjZWxlcmF0b3JfYWN0aXZhdGVkKHVpbnQgYWN0aW9uLCBD bHV0dGVyLklucHV0RGV2aWNlIGRldiwgdWludCBkZXZpY2VfaWQpCistI2Vsc2UKKy0gICAgcHJp dmF0ZSB2b2lkIG9uX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCh1aW50IGFjdGlvbiwgdWludCBkZXZp Y2VfaWQpCistI2VuZGlmCisgICAgIHsKKyAgICAgICAgIEhhc2hUYWJsZTxzdHJpbmcsVmFyaWFu dD4gcGFyYW1zID0gbmV3IEhhc2hUYWJsZTxzdHJpbmcsVmFyaWFudD4oc3RyX2hhc2gsIHN0cl9l cXVhbCk7CisgCitAQCAtMjMwLDcgKzIyNiw3IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0gOiBH TGliLk9iamVjdAorICAgICAgICAgfQorICAgICB9CisgCistI2lmIEhBVkVfR1NEXzMzMgorKyNp ZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAgcHJpdmF0ZSB1aW50IF9ncmFiKHN0cmluZyBzZW5k ZXIsIHN0cmluZyBzZXEsIHVpbnQgZmxhZywgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFn cykKKyAgICAgeworICAgICAgICAgdmFyIHJldCA9IGRpc3BsYXkuZ3JhYl9hY2NlbGVyYXRvcihz ZXEsIGdyYWJfZmxhZ3MpOworQEAgLTI3Myw3ICsyNjksNyBAQCBwdWJsaWMgY2xhc3MgU2hlbGxT aGltIDogR0xpYi5PYmplY3QKKyAgICAgICAgICAgICBvbl9idXNfYWNxdWlyZWQsIG51bGwsIG51 bGwpOworICAgICB9CisgCistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQT1JU RUQKKyAgICAgcHVibGljIHVpbnQgR3JhYkFjY2VsZXJhdG9yKEJ1c05hbWUgc2VuZGVyLCBzdHJp bmcgYWNjZWxlcmF0b3IsIHVpbnQgZmxhZ3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGdyYWJfZmxh Z3MpCisgICAgIHsKKyAgICAgICAgIHJldHVybiBfZ3JhYihzZW5kZXIsIGFjY2VsZXJhdG9yLCBm bGFncywgZ3JhYl9mbGFncyk7CitkaWZmIC0tZ2l0IHNyYy93bS93bS52YWxhIHNyYy93bS93bS52 YWxhCitpbmRleCBmZWU4OTQ0My4uYmNjZjNiOTUgMTAwNjQ0CistLS0gc3JjL3dtL3dtLnZhbGEK KysrKyBzcmMvd20vd20udmFsYQorQEAgLTEzNyw4ICsxMzcsOCBAQCBwdWJsaWMgY2xhc3MgQnVk Z2llV00gOiBNZXRhLlBsdWdpbgorICAgICBwdWJsaWMgc3RhdGljIHN0cmluZ1tdPyBvbGRfYXJn czsKKyAgICAgcHVibGljIHN0YXRpYyBib29sIHdheWxhbmQgPSBmYWxzZTsKKyAKKy0gICAgc3Rh dGljIENsdXR0ZXIuUG9pbnQgUFZfQ0VOVEVSOworLSAgICBzdGF0aWMgQ2x1dHRlci5Qb2ludCBQ Vl9OT1JNOworKyAgICBzdGF0aWMgR3JhcGhlbmUuUG9pbnQgUFZfQ0VOVEVSOworKyAgICBzdGF0 aWMgR3JhcGhlbmUuUG9pbnQgUFZfTk9STTsKKyAKKyAgICAgcHJpdmF0ZSBNZXRhLkJhY2tncm91 bmRHcm91cD8gYmFja2dyb3VuZF9ncm91cDsKKyAKK0BAIC0xNzEsMTAgKzE3MSwxMCBAQCBwdWJs aWMgY2xhc3MgQnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAgICAgICAgICAgIGxpY2Vuc2UgPSAi R1BMLTIuMCIsCisgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiQnVkZ2llIFdpbmRvdyBNYW5h Z2VyIgorICAgICAgICAgfTsKKy0gICAgICAgIFBWX0NFTlRFUiA9IENsdXR0ZXIuUG9pbnQuYWxs b2MoKTsKKysgICAgICAgIFBWX0NFTlRFUiA9IEdyYXBoZW5lLlBvaW50KCk7CisrICAgICAgICBQ Vl9OT1JNID0gR3JhcGhlbmUuUG9pbnQoKTsKKyAgICAgICAgIFBWX0NFTlRFUi54ID0gMC41ZjsK KyAgICAgICAgIFBWX0NFTlRFUi55ID0gMC41ZjsKKy0gICAgICAgIFBWX05PUk0gPSBDbHV0dGVy LlBvaW50LmFsbG9jKCk7CisgICAgICAgICBQVl9OT1JNLnggPSAwLjBmOworICAgICAgICAgUFZf Tk9STS55ID0gMC4wZjsKKyAgICAgfQorQEAgLTEwMDEsNyArMTAwMSw3IEBAIHB1YmxpYyBjbGFz cyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisgICAgICAgICB0aWxlX3ByZXZpZXcuc2V0KCJzY2Fs ZS14IiwgTk9USUZJQ0FUSU9OX01BUF9TQ0FMRV9YLCAic2NhbGUteSIsIE5PVElGSUNBVElPTl9N QVBfU0NBTEVfWSwKKyAgICAgICAgICAgICAicGl2b3QtcG9pbnQiLCBQVl9DRU5URVIpOworIAor LSAgICAgICAgdGlsZV9wcmV2aWV3Lmxvd2VyKHdpbl9hY3Rvcik7CisrICAgICAgICAvL3RpbGVf cHJldmlldy5sb3dlcih3aW5fYWN0b3IpOworICAgICAgICAgdGlsZV9wcmV2aWV3LnRpbGVfcmVj dCA9IHRpbGVfcmVjdDsKKyAKKyAgICAgICAgIHRpbGVfcHJldmlldy5zaG93KCk7CitkaWZmIC0t Z2l0IHZhcGkvQ2x1dHRlci01Lm1ldGFkYXRhIHZhcGkvQ2x1dHRlci02Lm1ldGFkYXRhCitzaW1p bGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvQ2x1dHRlci01Lm1ldGFkYXRhCity ZW5hbWUgdG8gdmFwaS9DbHV0dGVyLTYubWV0YWRhdGEKK2RpZmYgLS1naXQgdmFwaS9DbHV0dGVy LTQubWV0YWRhdGEgdmFwaS9DbHV0dGVyLTcubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggNzgl CityZW5hbWUgZnJvbSB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvQ2x1 dHRlci03Lm1ldGFkYXRhCitpbmRleCA1YzIxMmU4NS4uMTg1NTI3NGQgMTAwNjQ0CistLS0gdmFw aS9DbHV0dGVyLTQubWV0YWRhdGEKKysrKyB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQorQEAgLTEs MTMgKzEsMTAgQEAKKyAvLyBOb24gbWluaS1vYmplY3QKKyBBY3RvckJveCBzdHJ1Y3QKKyBDb2xv ciBzdHJ1Y3QKKy1Gb2cgc3RydWN0CistR2VvbWV0cnkgc3RydWN0CisgS25vdCBzdHJ1Y3QKKyBQ YXRoTm9kZSBzdHJ1Y3QKKyBQZXJzcGVjdGl2ZSBzdHJ1Y3QKKyBVbml0cyBzdHJ1Y3QKKy1WZXJ0 ZXggc3RydWN0CisgCisgKi5yZWYgdW5vd25lZAorIAorQEAgLTE3LDcgKzE0LDYgQEAgaW5pdF93 aXRoX2FyZ3MKKyBBY3RvcgorIAkuYXBwbHlfdHJhbnNmb3JtLm1hdHJpeCByZWYKKyAJLmdldF9h YnNfYWxsb2NhdGlvbl92ZXJ0aWNlcy52ZXJ0cyBvdXQ9ZmFsc2UKKy0JLmdldF9hbGxvY2F0aW9u X3ZlcnRpY2VzLnZlcnRzIG91dD1mYWxzZQorIENhbnZhcworIAkubmV3IHN5bWJvbF90eXBlPSJj b25zdHJ1Y3RvciIKKyBFdmVudC50eXBlI21ldGhvZCBuYW1lPSJnZXRfdHlwZSIKK0BAIC0yNyw3 ICsyMyw2IEBAIEltYWdlCisgLy8gPz8/CisgQWN0b3IuaGFzX3BvaW50ZXIjbWV0aG9kIG5hbWU9 ImdldF9oYXNfcG9pbnRlciIKKyBJbml0RXJyb3IgZXJyb3Jkb21haW49ZmFsc2UKKy1yZWRyYXcg c2tpcAorIAorIC8vIE5vdCBhbGwgYmFja2luZyBzeW1ib2xzIGFyZSBkZXByZWNhdGVkCisgQWN0 b3IucGljayBkZXByZWNhdGVkPWZhbHNlCitAQCAtNTUsNyArNTAsNiBAQCBDb250YWluZXIKKyAJ Lmxvd2VyIHZpcnR1YWwKKyAJLnJhaXNlIHZpcnR1YWwKKyAJLipfY2hpbGRfbWV0YSN2aXJ0dWFs X21ldGhvZCB2aXJ0dWFsCistCS5mb3JlYWNoX3dpdGhfaW50ZXJuYWxzI3ZpcnR1YWxfbWV0aG9k IHZpcnR1YWwKKyAKKyAvLyBEZWZhdWx0IHZhbHVlcworIENvbnRhaW5lcgorQEAgLTcwLDMyICs2 NCwyMSBAQCBUZXh0CisgLy8gUmVwYXJlbnRlZCBmdW5jcyBtZXRob2RzIGNhbid0IGJlIGluc3Rh bmNlIG1ldGhvZHMKKyBmZWF0dXJlX2F2YWlsYWJsZSBza2lwCisgZmVhdHVyZV9nZXRfYWxsIHNr aXAKKy1GZWF0dXJlRmxhZ3MudGV4dHVyZV9ucG90IHNraXAKKyAKKyAvLyBTa2lwcGVkIGJ5IGct aSBmb3IgdW5rbm93biByZWFzb25zCisgTGF5b3V0TWFuYWdlcgorIAkuY3JlYXRlX2NoaWxkX21l dGEgc2tpcD1mYWxzZQorLU1vZGVsCistCS5pbnNlcnRfcm93IHNraXA9ZmFsc2UKKyAKKyAvLyBW YXJpYWRpYyBhcmd1bWVudHMKKy1BY3RvcgorLQkuYW5pbWF0ZSBza2lwPWZhbHNlCistCS5hbmlt YXRlX3dpdGhfYWxwaGEgc2tpcD1mYWxzZQorLQkuYW5pbWF0ZV93aXRoX3RpbWVsaW5lIHNraXA9 ZmFsc2UKKy1BbmltYXRvcgorLQkuc2V0IHNraXA9ZmFsc2UKKyBCb3gKKyAJLnBhY2sgc2tpcD1m YWxzZQorIAkucGFja19hZnRlciBza2lwPWZhbHNlCisgCS5wYWNrX2F0IHNraXA9ZmFsc2UKKyAJ LnBhY2tfYmVmb3JlIHNraXA9ZmFsc2UKKyBDb250YWluZXIKKy0JLmFkZF92YWxpc3Qgc2tpcD1m YWxzZQorIAkuY2hpbGRfZ2V0IHNraXA9ZmFsc2UKKyAJLmNoaWxkX3NldCBza2lwPWZhbHNlCisg CS5yZW1vdmUgc2tpcD1mYWxzZQorLQkucmVtb3ZlX3ZhbGlzdCBza2lwPWZhbHNlCisgSW50ZXJ2 YWwKKyAJLm5ldyBza2lwPWZhbHNlCisgCS5nZXRfaW50ZXJ2YWwgc2tpcD1mYWxzZQorQEAgLTEw NSwxNSArODgsNiBAQCBJbnRlcnZhbAorIExheW91dE1hbmFnZXIKKyAJLmNoaWxkX2dldCBza2lw PWZhbHNlCisgCS5jaGlsZF9zZXQgc2tpcD1mYWxzZQorLUxpc3RNb2RlbAorLQkubmV3IHNraXA9 ZmFsc2UKKy1Nb2RlbAorLQkuYXBwZW5kIHNraXA9ZmFsc2UKKy0JLmluc2VydCBza2lwPWZhbHNl CistCS5wcmVwZW5kIHNraXA9ZmFsc2UKKy1Nb2RlbEl0ZXIKKy0JLmdldCBza2lwPWZhbHNlCist CS5zZXQgc2tpcD1mYWxzZQorIFNjcmlwdAorIAkuZ2V0X29iamVjdHMgc2tpcD1mYWxzZQorIAor QEAgLTEyMiwxNyArOTYsMTEgQEAgVGV4dHVyZQorIAkubmV3X2Zyb21fZmlsZSB0aHJvd3M9IkNs dXR0ZXIuVGV4dHVyZUVycm9yIgorIAorIC8vIFNraXBwZWQgdXBzdHJlYW0gZm9yIHVua25vd24g cmVhc29ucworLUFscGhhLnJlZ2lzdGVyX2Z1bmMgc2tpcD1mYWxzZQorLVRpbWVvdXRQb29sIHNr aXA9ZmFsc2UKKyBJbnRlcnZhbC5yZWdpc3Rlcl9wcm9ncmVzc19mdW5jIHNraXA9ZmFsc2UKKy1m cmFtZV9zb3VyY2VfKiBza2lwPWZhbHNlCisgZ2V0X29wdGlvbl9ncm91cCBza2lwPWZhbHNlCisg Z2V0X29wdGlvbl9ncm91cF93aXRob3V0X2luaXQgc2tpcD1mYWxzZQorLXRocmVhZHNfYWRkX2Zy YW1lX3NvdXJjZSBza2lwPWZhbHNlCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNlX2Z1bGwgc2tp cD1mYWxzZQorIHRocmVhZHNfYWRkX2lkbGUgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX2lkbGVf ZnVsbCBza2lwPWZhbHNlCistdGhyZWFkc19zZXRfbG9ja19mdW5jdGlvbnMgc2tpcD1mYWxzZQor IHRocmVhZHNfYWRkX3RpbWVvdXQgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX3RpbWVvdXRfZnVs bCBza2lwPWZhbHNlCisgCitAQCAtMTQzLDE1ICsxMTEsMTIgQEAgQWN0b3JCb3gKKyBVbml0cy5m cm9tXyogc2tpcAorIENvbG9yCisgCS5uZXcgc2tpcAorLVZlcnRleC5uZXcgc2tpcAorIAorIC8v IENsYXNzIG1ldGhvZHMKKyBjb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSBza2lw CisgY29udGFpbmVyX2NsYXNzX2xpc3RfY2hpbGRfcHJvcGVydGllcyBza2lwCisgCisgLy8gTW92 ZSBzeW1ib2xzCistZ2V0X2FjdG9yX2J5X2dpZCBwYXJlbnQ9IkNsdXR0ZXIuQWN0b3IiIG5hbWU9 ImdldF9ieV9naWQiCistZ2V0X2lucHV0X2RldmljZV9mb3JfaWQgcGFyZW50PSJDbHV0dGVyLklu cHV0RGV2aWNlIiBuYW1lPSJnZXRfZm9yX2lkIgorIHVuaXRzX2Zyb21fKiBza2lwCisgCisgLy8g Q2xhc3NlcyBtYXJrZWQgYXMgb3V0IGJ1dCBub3QgZG91YmxlIHB0cgorQEAgLTIwMiwyMyArMTY3 LDE1IEBAIFBBVEhfUkVMQVRJVkUgc2tpcD1mYWxzZQorIFBSSU9SSVRZX1JFRFJBVyBza2lwPWZh bHNlCisgCisgLy8gQ2x1dHRlciBkZXZzIGRvbid0IGxpa2UgdXMgY3JlYXRpbmcgbmVzdGVkIG5h bWVzcGFjZXMKKy1mcmFtZV9zb3VyY2VfKiBuYW1lPSJmcmFtZV9zb3VyY2VfKC4rKSIgcGFyZW50 PSJDbHV0dGVyLkZyYW1lU291cmNlIgorIHZhbHVlXyogbmFtZT0idmFsdWVfKC4rKSIgcGFyZW50 PSJDbHV0dGVyLlZhbHVlIgorIHRocmVhZHNfKiBuYW1lPSJ0aHJlYWRzXyguKykiIHBhcmVudD0i Q2x1dHRlci5UaHJlYWRzIgorLXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJjZSBuYW1lPSJhZGQiIHBh cmVudD0iQ2x1dHRlci5UaHJlYWRzLkZyYW1lU291cmNlIgorLXRocmVhZHNfYWRkX2ZyYW1lX3Nv dXJjZV9mdWxsIG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5GcmFtZVNv dXJjZSIKKyB0aHJlYWRzX2FkZF9pZGxlIG5hbWU9ImFkZCIgcGFyZW50PSJDbHV0dGVyLlRocmVh ZHMuSWRsZSIKKyB0aHJlYWRzX2FkZF9pZGxlX2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0i Q2x1dHRlci5UaHJlYWRzLklkbGUiCisgdGhyZWFkc19hZGRfdGltZW91dCBuYW1lPSJhZGQiIHBh cmVudD0iQ2x1dHRlci5UaHJlYWRzLlRpbWVvdXQiCisgdGhyZWFkc19hZGRfdGltZW91dF9mdWxs IG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5UaW1lb3V0IgorLXV0aWxf bmV4dF9wMiBuYW1lPSJuZXh0X3Bvd2VyX29mXzIiIHBhcmVudD0iQ2x1dHRlci5VdGlsIgorIAor IC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CisgQ29sb3IuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1 bmN0aW9uIgorLVBvaW50LmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1SZWN0LmFsbG9j IHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1TaXplLmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlv biIKKy1WZXJ0ZXguYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorIAorIEJpbkFsaWdubWVu dCBkZXByZWNhdGVkPWZhbHNlIGRlcHJlY2F0ZWRfc2luY2U9bnVsbAorIEJpbkFsaWdubWVudC4q IGRlcHJlY2F0ZWQKK2RpZmYgLS1naXQgdmFwaS9Db2dsLTQubWV0YWRhdGEgdmFwaS9Db2dsLTYu bWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9Db2dsLTQu bWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL0NvZ2wtNi5tZXRhZGF0YQorZGlmZiAtLWdpdCB2YXBp L0NvZ2wtNS5tZXRhZGF0YSB2YXBpL0NvZ2wtNy5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCA5 MSUKK3JlbmFtZSBmcm9tIHZhcGkvQ29nbC01Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9Db2ds LTcubWV0YWRhdGEKK2luZGV4IDA5MmI1ZTI5Li5lNTJiZmEzNSAxMDA2NDQKKy0tLSB2YXBpL0Nv Z2wtNS5tZXRhZGF0YQorKysrIHZhcGkvQ29nbC03Lm1ldGFkYXRhCitAQCAtOSwxMiArOSwxMCBA QCBjcmVhdGVfc2hhZGVyIHNraXAKKyAKKyAKKyBpc19iaXRtYXAgc2tpcAorLWlzX21hdGVyaWFs IHNraXAKKyBpc19vZmZzY3JlZW4gc2tpcAorIGlzX3Byb2dyYW0gc2tpcAorIGlzX3NoYWRlciBz a2lwCisgaXNfdGV4dHVyZSBza2lwCistaXNfdmVydGV4X2J1ZmZlciBza2lwCisgCisgTWF0cml4 IHN0cnVjdAorICAgLmdldF9hcnJheSBhcnJheT10cnVlIGFycmF5X2xlbmd0aF9pZHg9LTEKK2Rp ZmYgLS1naXQgdmFwaS9NZXRhLTMubWV0YWRhdGEgdmFwaS9NZXRhLTMubWV0YWRhdGEKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMzcwZDQ5OTYuLjAwMDAwMDAwCistLS0gdmFwaS9N ZXRhLTMubWV0YWRhdGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDY2ICswLDAgQEAKKy1CYWNrZW5k IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCistQmFja2dyb3VuZCBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC5oIgorLUJhY2tncm91bmRBY3RvciBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIgorLUJhY2tncm91 bmRHcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oIgor LUJhY2tncm91bmRJbWFnZUNhY2hlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgiCistRGlzcGxheSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2Rpc3BsYXkuaCIK Ky1NZXRhIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWFpbi5oIgorLU1vbml0b3JNYW5hZ2VyIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIKKy1SZWN0YW5nbGUg c3RydWN0CistUGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKy1Q bHVnaW5JbmZvIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKy1wcmVmc18q IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFyZW50PSJNZXRhLlByZWZzIgorLWFk ZF92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKy1idWcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLWRlYnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy14MTFfZXJyb3JfdHJhcF9w b3AgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXgx MV9lcnJvcl90cmFwX3B1c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLXgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZXh0ZXJuYWxfYmluZGluZ19u YW1lX2Zvcl9hY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLWZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ191dGY4X3N0cm5kdXAgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9sb2NhbGVfZGlyZWN0 aW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1n ZXRfb3ZlcmxheV93aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLWdyYXZpdHlfdG9fc3RyaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1pc19kZWJ1Z2dpbmcgcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3N5bmNpbmcgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3ZlcmJvc2UgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3dheWxhbmRf Y29tcG9zaXRvciBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGls LmgiCistbGF0ZXJfYWRkIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKy1sYXRlcl9yZW1vdmUgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLXBvcF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1wdXNoX25vX21zZ19wcmVmaXggcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXJlY3QgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXJlbW92ZV92ZXJi b3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdG9waWNfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdW5zaWduZWRfbG9uZ19lcXVhbCBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdW5zaWdu ZWRfbG9uZ19oYXNoIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKy12ZXJib3NlX3JlYWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLXdhcm5pbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgcGFyZW50PSJN ZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIKKy1nZXRfd2luZG93X2FjdG9ycyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF93aW5kb3dfZ3JvdXBfZm9y X2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIKKy1nZXRfdG9wX3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSBw YXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIgorLWdldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEu Q29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgor LWRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWVuYWJsZV91bnJl ZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiBw YXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIgorLWVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuQ29tcG9z aXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWZvY3Vz X3N0YWdlX3dpbmRvdyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLXN0YWdlX2lzX2ZvY3VzZWQgcGFyZW50PSJNZXRh LkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIK Ky1rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIgcGFyZW50PSJNZXRhLktleUJpbmRpbmci IG5hbWU9InNldF9jdXN0b21faGFuZGxlciIKKy1LZXlIYW5kbGVyRnVuYy5ldmVudCB0eXBlPSJD bHV0dGVyLktleUV2ZW50PyIKKy1nZXRfYmFja2VuZCBwYXJlbnQ9Ik1ldGEuQmFja2VuZCIKKy1X aW5kb3cuZm9jdXMjc2lnbmFsIHNraXA9dHJ1ZQorLVdpbmRvdy5nZXRfeHdpbmRvdyBza2lwPWZh bHNlCistZ2V0X29wdGlvbl9jb250ZXh0IHNraXA9ZmFsc2UKKy1zZXRfZ25vbWVfd21fa2V5Ymlu ZGluZ3Mgc2tpcD1mYWxzZQorLXNldF93bV9uYW1lIHNraXA9ZmFsc2UKKy1pbml0IHNraXA9ZmFs c2UKKy1ydW4gc2tpcD1mYWxzZQorLXNob3dfZGlhbG9nIHNraXA9ZmFsc2UKKy1nZXRfYmFja2Vu ZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2VuZC5oIgorZGlmZiAtLWdpdCB2YXBp L01ldGEtNS5tZXRhZGF0YSB2YXBpL01ldGEtNi5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCAx MDAlCityZW5hbWUgZnJvbSB2YXBpL01ldGEtNS5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvTWV0 YS02Lm1ldGFkYXRhCitkaWZmIC0tZ2l0IHZhcGkvTWV0YS00Lm1ldGFkYXRhIHZhcGkvTWV0YS03 Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDc2JQorcmVuYW1lIGZyb20gdmFwaS9NZXRhLTQu bWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL01ldGEtNy5tZXRhZGF0YQoraW5kZXggYWUyYTc4MTcu LjcyNjI5ZmJhIDEwMDY0NAorLS0tIHZhcGkvTWV0YS00Lm1ldGFkYXRhCisrKysgdmFwaS9NZXRh LTcubWV0YWRhdGEKK0BAIC0xLDI2ICsxLDIxIEBACisgQmFja2VuZCBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL21ldGEtYmFja2VuZC5oIgorIEJhY2tncm91bmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS9tZXRhLWJhY2tncm91bmQuaCIKKyBCYWNrZ3JvdW5kQWN0b3IgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIKKytCYWNrZ3JvdW5kQ29udGVudCBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1jb250ZW50LmgiCisgQmFja2dyb3VuZEdy b3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgiCisgQmFj a2dyb3VuZEltYWdlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgiCisgQmFja2dyb3VuZEltYWdlQ2FjaGUgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCIKKyBCYXJyaWVyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYmFycmll ci5oIgorIEJhcnJpZXJFdmVudCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2JhcnJpZXIuaCIKKy1C b3hlcyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2JveGVzLmgiCisgQ2xvc2VEaWFsb2cgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oIgorLUNvbXBvc2l0b3IgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLmgiCistQ29tcG9zaXRvck11dHRlciBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgQ3Vyc29yVHJhY2tlciBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCIKKyBEaXNwbGF5IGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvZGlzcGxheS5oIgorIERuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L21ldGEtZG5kLmgiCistR3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9ncm91cC5oIgorIElk bGVNb25pdG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIKKyBJ bmhpYml0U2hvcnRjdXRzRGlhbG9nIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCIKKy1LZXliaW5kaW5ncyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L2tleWJpbmRpbmdzLmgiCisgTGF1bmNoQ29udGV4dCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCIKKyBNZXRhIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWFpbi5o IgorIE1vbml0b3JNYW5hZ2VyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCIKKy1QbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgor IFByZWZlcmVuY2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIgorIFJlbW90ZUFjY2Vz c0NvbnRyb2xsZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oIgorIFJlbW90ZUFjY2Vzc0hhbmRsZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgiCitAQCAtMzEsOSArMjYsNyBAQCBTb3VuZFBs YXllciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc291bmQtcGxheWVyLmgiCisgU3RhZ2Ug Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXN0YWdlLmgiCisgU3RhcnR1cE5vdGlmaWNhdGlv biBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCIKKyBU aGVtZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3RoZW1lLmgiCistVHlwZXMgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS90eXBlcy5oIgorLVV0aWwgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistVmVyc2lvbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtdmVyc2lvbi5oIgorK1dheWxh bmRDbGllbnQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdheWxhbmQtY2xpZW50LmgiCisg V2luZG93IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvd2luZG93LmgiCisgV2luZG93QWN0b3IgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIgorIFdpbmRvd0dyb3VwIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIKK0BAIC00NiwxNyArMzks MTEgQEAgUGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKyBQbHVn aW5JbmZvIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKyBwcmVmc18qIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFyZW50PSJNZXRhLlByZWZzIgorIGFkZF92 ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKy1idWcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLWRlYnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS91dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB4MTFfZXJyb3JfdHJhcF9wb3Ag cGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHgxMV9l cnJvcl90cmFwX3B1c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorIHgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZXh0ZXJuYWxfYmluZGluZ19uYW1l X2Zvcl9hY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLWZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ191dGY4X3N0cm5kdXAgcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGdldF9sb2NhbGVfZGlyZWN0aW9u IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRf b3ZlcmxheV93aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorIGdyYXZpdHlfdG9fc3RyaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBpc19kZWJ1Z2dpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGlzX3N5bmNpbmcgcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorQEAgLTY4LDEzICs1NSw4IEBAIHBv cF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKyBwdXNoX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHJlY3QgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHJlbW92ZV92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zZXRfc3RhZ2VfaW5wdXRf cmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky1zaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCistdG9waWNfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCisgdW5zaWduZWRfbG9uZ19lcXVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgdW5zaWduZWRfbG9uZ19oYXNoIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy12ZXJib3NlX3JlYWwg cGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXdhcm5p bmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHNo b3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKyBnZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBnZXRfd2luZG93X2FjdG9y cyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIgorQEAgLTgzLDEwICs2NSw3IEBAIGdldF90b3Bfd2luZG93X2dyb3VwX2Zv cl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh CisgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9y IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZGlzYWJsZV91 bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZW5hYmxlX3VucmVkaXJlY3RfZm9y X2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0 YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi CistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZm9jdXNfc3RhZ2Vfd2lu ZG93IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiCistc3RhZ2VfaXNfZm9jdXNlZCBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRv ciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIGtleWJpbmRp bmdzX3NldF9jdXN0b21faGFuZGxlciBwYXJlbnQ9Ik1ldGEuS2V5QmluZGluZyIgbmFtZT0ic2V0 X2N1c3RvbV9oYW5kbGVyIgorIEtleUhhbmRsZXJGdW5jLmV2ZW50IHR5cGU9IkNsdXR0ZXIuS2V5 RXZlbnQ/IgorIGdldF9iYWNrZW5kIHBhcmVudD0iTWV0YS5CYWNrZW5kIgorZGlmZiAtLWdpdCB2 YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoIHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2gK K2luZGV4IDZiMDcwMjQwLi5iMjMzZTU4NiAxMDA3NTUKKy0tLSB2YXBpL2dlbmVyYXRlLW11dHRl ci12YXBpLnNoCisrKysgdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaAorQEAgLTEsNyArMSw3 IEBACisgIyEvYmluL2Jhc2gKKyBzZXQgLXhlCisgCistdmVyc2lvbj0kezEtNH0KKyt2ZXJzaW9u PSR7Ni03fQorIGdpcmRpcj0kKHBrZy1jb25maWcgbGlibXV0dGVyLSR2ZXJzaW9uIC0tdmFyaWFi bGU9Z2lyZGlyKQorIAorIGNkICQoZGlybmFtZSAkMCkKK2RpZmYgLS1naXQgdmFwaS9ncmFwaGVu ZS1nb2JqZWN0LTEuMC52YXBpIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi42OTgwMTUzNQorLS0tIC9kZXYvbnVsbAor KysrIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQorQEAgLTAsMCArMSw2OTEgQEAKKysv KiBncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3Qg bW9kaWZ5LiAqLworKworK1tDQ29kZSAoY3ByZWZpeCA9ICJHcmFwaGVuZSIsIGdpcl9uYW1lc3Bh Y2UgPSAiR3JhcGhlbmUiLCBnaXJfdmVyc2lvbiA9ICIxLjAiLCBsb3dlcl9jYXNlX2NwcmVmaXgg PSAiZ3JhcGhlbmVfIildCisrbmFtZXNwYWNlIEdyYXBoZW5lIHsKKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX2JveF90 IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9ib3hfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEJveCB7CisrCQlwdWJsaWMgYm9vbCBjb250 YWluc19ib3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50 IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFw aGVuZS5Cb3g/IGVtcHR5ICgpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLkJveCBi KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50 KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3NjYWxhciAoZmxvYXQgc2NhbGFyKTsK KysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3ZlYzMgKEdyYXBoZW5lLlZlYzMgdmVjKTsK KysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgZ2V0X2JvdW5kaW5nX3NwaGVyZSAoKTsKKysJCXB1 YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0 X2RlcHRoICgpOworKwkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CisrCQlwdWJsaWMgR3Jh cGhlbmUuUG9pbnQzRCBnZXRfbWF4ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0 X21pbiAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9zaXplICgpOworKwkJcHVibGlj IHZvaWQgZ2V0X3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIEdy YXBoZW5lLlZlYzMgdmVydGljZXNbOF0pOworKwkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsK KysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluZmluaXRlICgpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0IChHcmFwaGVuZS5Qb2ludDNEPyBtaW4s IEdyYXBoZW5lLlBvaW50M0Q/IG1heCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/ IGluaXRfZnJvbV9ib3ggKEdyYXBoZW5lLkJveCBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuQm94PyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9 ICJuX3BvaW50cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xlbmd0aF90eXBlID0g Imd1aW50IildIEdyYXBoZW5lLlBvaW50M0RbXSBwb2ludHMpOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuQm94PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMz8gbWluLCBHcmFwaGVu ZS5WZWMzPyBtYXgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21f dmVjdG9ycyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl92ZWN0b3JzIiwgYXJyYXlf bGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUu VmVjM1tdIHZlY3RvcnMpOworKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChHcmFwaGVuZS5C b3ggYiwgb3V0IEdyYXBoZW5lLkJveCByZXMpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdy YXBoZW5lLkJveD8gbWludXNfb25lICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBo ZW5lLkJveD8gb25lICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8g b25lX21pbnVzX29uZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggdW5pb24gKEdyYXBoZW5l LkJveCBiKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IHplcm8gKCk7 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIs IGNuYW1lID0gImdyYXBoZW5lX2V1bGVyX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX2V1bGVyX2dl dF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVj dCBFdWxlciB7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuRXVsZXIgYik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9hbHBoYSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2JldGEg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9n YW1tYSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5FdWxlck9yZGVyIGdldF9vcmRlciAoKTsKKysJ CXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCXB1 YmxpYyBmbG9hdCBnZXRfeiAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBp bml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLkV1bGVyPyBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyPyBzcmMpOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9tYXRyaXggKEdyYXBoZW5lLk1h dHJpeD8gbSwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24/ IHEsIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fcmFkaWFu cyAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7 CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBo ZW5lLlZlYzM/IHYsIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfd2l0aF9vcmRlciAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgeiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuRXVs ZXIgcmVvcmRlciAoR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgR3JhcGhl bmUuTWF0cml4IHRvX21hdHJpeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisr CQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiB0b19xdWF0ZXJuaW9uICgpOworKwkJcHVibGlj IEdyYXBoZW5lLlZlYzMgdG9fdmVjMyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfZnJ1c3R1bV90Iiwg dHlwZV9pZCA9ICJncmFwaGVuZV9mcnVzdHVtX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBGcnVzdHVtIHsKKysJCXB1YmxpYyBib29s IGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5GcnVzdHVtIGIp OworKwkJcHVibGljIHZvaWQgZ2V0X3BsYW5lcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIHJlZiBHcmFwaGVuZS5QbGFuZSBwbGFuZXNbNl0pOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuRnJ1c3R1bT8gaW5pdCAoR3JhcGhlbmUuUGxhbmUgcDAsIEdyYXBoZW5lLlBsYW5lIHAx LCBHcmFwaGVuZS5QbGFuZSBwMiwgR3JhcGhlbmUuUGxhbmUgcDMsIEdyYXBoZW5lLlBsYW5lIHA0 LCBHcmFwaGVuZS5QbGFuZSBwNSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5GcnVzdHVt PyBpbml0X2Zyb21fZnJ1c3R1bSAoR3JhcGhlbmUuRnJ1c3R1bSBzcmMpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuRnJ1c3R1bT8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4 IG1hdHJpeCk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX2JveCAoR3JhcGhlbmUuQm94IGJv eCk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHNw aGVyZSk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX21hdHJpeF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9t YXRyaXhfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBNYXRyaXggeworKwkJcHVibGlj IGJvb2wgZGVjb21wb3NlIChvdXQgR3JhcGhlbmUuVmVjMyB0cmFuc2xhdGUsIG91dCBHcmFwaGVu ZS5WZWMzIHNjYWxlLCBvdXQgR3JhcGhlbmUuUXVhdGVybmlvbiByb3RhdGUsIG91dCBHcmFwaGVu ZS5WZWMzIHNoZWFyLCBvdXQgR3JhcGhlbmUuVmVjNCBwZXJzcGVjdGl2ZSk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZGV0ZXJtaW5hbnQgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5l Lk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9v bCBlcXVhbF9mYXN0IChHcmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfcm93ICh1aW50IGluZGV4Xyk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ZhbHVlICh1 aW50IHJvdywgdWludCBjb2wpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGZsb2F0IGdldF94X3NjYWxlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJCXB1YmxpYyBmbG9hdCBnZXRfeF90cmFuc2xhdGlvbiAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeV9zY2FsZSAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3lfdHJhbnNsYXRpb24gKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3pfc2Nh bGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdl dF96X3RyYW5zbGF0aW9uICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fMmQgKGRvdWJsZSB4eCwgZG91 YmxlIHl4LCBkb3VibGUgeHksIGRvdWJsZSB5eSwgZG91YmxlIHhfMCwgZG91YmxlIHlfMCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5N YXRyaXg/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZs b2F0IHZbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IHNy Yyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5NYXRyaXg/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0IHYwLCBHcmFwaGVuZS5W ZWM0IHYxLCBHcmFwaGVuZS5WZWM0IHYyLCBHcmFwaGVuZS5WZWM0IHYzKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5p dF9mcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0 b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2lkZW50aXR5ICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuTWF0cml4PyBpbml0X2xvb2tfYXQgKEdyYXBoZW5lLlZlYzMgZXllLCBHcmFwaGVuZS5WZWMz IGNlbnRlciwgR3JhcGhlbmUuVmVjMyB1cCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfb3J0aG8gKGZsb2F0IGxl ZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCB0b3AsIGZsb2F0IGJvdHRvbSwgZmxvYXQgel9uZWFyLCBm bG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0 IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfcm90YXRl IChmbG9hdCBhbmdsZSwgR3JhcGhlbmUuVmVjMyBheGlzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9zY2FsZSAo ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfc2tldyAoZmxvYXQgeF9z a2V3LCBmbG9hdCB5X3NrZXcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3RyYW5zbGF0ZSAoR3JhcGhlbmUuUG9p bnQzRCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5NYXRyaXggaW50ZXJwb2xhdGUgKEdyYXBoZW5lLk1hdHJpeCBiLCBkb3VibGUgZmFjdG9yKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGludmVyc2UgKG91 dCBHcmFwaGVuZS5NYXRyaXggcmVzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBib29sIGlzXzJkICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIGJvb2wgaXNfYmFja2ZhY2VfdmlzaWJsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGlzX2lkZW50aXR5ICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfc2luZ3VsYXIgKCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IG11bHRpcGx5IChH cmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVi bGljIGJvb2wgbmVhciAoR3JhcGhlbmUuTWF0cml4IGIsIGZsb2F0IGVwc2lsb24pOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCBub3JtYWxp emUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUu TWF0cml4IHBlcnNwZWN0aXZlIChmbG9hdCBkZXB0aCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdm9pZCBwcmludCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwcm9qZWN0X3BvaW50IChHcmFwaGVuZS5Q b2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5RdWFkIHByb2plY3RfcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHByb2plY3RfcmVjdF9ib3VuZHMg KEdyYXBoZW5lLlJlY3Qgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFw aGVuZS5FdWxlciBlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2 b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChHcmFwaGVuZS5RdWF0ZXJuaW9uIHEpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX3ggKGZsb2F0IGFuZ2xl KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV95 IChmbG9hdCBhbmdsZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dm9pZCByb3RhdGVfeiAoZmxvYXQgYW5nbGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IGZhY3Rvcl94LCBmbG9hdCBmYWN0b3JfeSwg ZmxvYXQgZmFjdG9yX3opOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHZvaWQgc2tld194eSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyB2b2lkIHNrZXdfeHogKGZsb2F0IGZhY3Rvcik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBza2V3X3l6IChmbG9hdCBmYWN0b3IpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgdG9fMmQgKG91dCBk b3VibGUgeHgsIG91dCBkb3VibGUgeXgsIG91dCBkb3VibGUgeHksIG91dCBkb3VibGUgeXksIG91 dCBkb3VibGUgeF8wLCBvdXQgZG91YmxlIHlfMCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIHJlZiBmbG9hdCB2WzE2XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgR3JhcGhlbmUuUmVjdCB0cmFuc2Zvcm1fYm91bmRzIChHcmFwaGVuZS5SZWN0IHIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLkJveCB0cmFu c2Zvcm1fYm94IChHcmFwaGVuZS5Cb3ggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgdHJhbnNmb3JtX3BvaW50IChHcmFwaGVuZS5Qb2lu dCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Q b2ludDNEIHRyYW5zZm9ybV9wb2ludDNkIChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheSB0cmFuc2Zvcm1fcmF5 IChHcmFwaGVuZS5SYXkgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgR3JhcGhlbmUuUXVhZCB0cmFuc2Zvcm1fcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgdHJhbnNm b3JtX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgdHJhbnNmb3JtX3ZlYzMgKEdyYXBoZW5lLlZl YzMgdik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUu VmVjNCB0cmFuc2Zvcm1fdmVjNCAoR3JhcGhlbmUuVmVjNCB2KTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoR3JhcGhlbmUuUG9pbnQzRCBw b3MpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1h dHJpeCB0cmFuc3Bvc2UgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQzRCB1bnByb2plY3RfcG9pbnQzZCAoR3JhcGhlbmUuTWF0cml4IG1v ZGVsdmlldywgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB1bnRyYW5zZm9ybV9ib3VuZHMgKEdyYXBo ZW5lLlJlY3QgciwgR3JhcGhlbmUuUmVjdCBib3VuZHMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIGJvb2wgdW50cmFuc2Zvcm1fcG9pbnQgKEdyYXBoZW5lLlBvaW50 IHAsIEdyYXBoZW5lLlJlY3QgYm91bmRzLCBvdXQgR3JhcGhlbmUuUG9pbnQgcmVzKTsKKysJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUg PSAiZ3JhcGhlbmVfcGxhbmVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcGxhbmVfZ2V0X3R5cGUg KCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFBsYW5l IHsKKysJCXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7Cisr CQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUGxhbmUgYik7CisrCQlwdWJsaWMgZmxvYXQg Z2V0X2NvbnN0YW50ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X25vcm1hbCAoKTsK KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0IChHcmFwaGVuZS5WZWMzPyBu b3JtYWwsIGZsb2F0IGNvbnN0YW50KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5l PyBpbml0X2Zyb21fcGxhbmUgKEdyYXBoZW5lLlBsYW5lIHNyYyk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9mcm9tX3BvaW50IChHcmFwaGVuZS5WZWMzIG5vcm1hbCwg R3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFu ZT8gaW5pdF9mcm9tX3BvaW50cyAoR3JhcGhlbmUuUG9pbnQzRCBhLCBHcmFwaGVuZS5Qb2ludDNE IGIsIEdyYXBoZW5lLlBvaW50M0QgYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFu ZT8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCXB1YmxpYyBHcmFwaGVu ZS5QbGFuZSBuZWdhdGUgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUGxhbmUgbm9ybWFsaXplICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFu ZSB0cmFuc2Zvcm0gKEdyYXBoZW5lLk1hdHJpeCBtYXRyaXgsIEdyYXBoZW5lLk1hdHJpeD8gbm9y bWFsX21hdHJpeCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5l LWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3BvaW50X3QiLCB0eXBlX2lkID0gImdyYXBo ZW5lX3BvaW50X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ cHVibGljIHN0cnVjdCBQb2ludCB7CisrCQlwdWJsaWMgZmxvYXQgeDsKKysJCXB1YmxpYyBmbG9h dCB5OworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludCBiLCBvdXQgZmxv YXQgZF94LCBvdXQgZmxvYXQgZF95KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5Q b2ludCBiKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0IChmbG9hdCB4 LCBmbG9hdCB5KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0X2Zyb21f cG9pbnQgKEdyYXBoZW5lLlBvaW50IHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBo ZW5lLlZlYzIgc3JjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBpbnRlcnBvbGF0ZSAoR3Jh cGhlbmUuUG9pbnQgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFw aGVuZS5Qb2ludCBiLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIHRvX3ZlYzIgKCk7CisrCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3BvaW50 M2RfdCIsIGxvd2VyX2Nhc2VfY3N1ZmZpeCA9ICJwb2ludDNkIiwgdHlwZV9pZCA9ICJncmFwaGVu ZV9wb2ludDNkX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ cHVibGljIHN0cnVjdCBQb2ludDNEIHsKKysJCXB1YmxpYyBmbG9hdCB4OworKwkJcHVibGljIGZs b2F0IHk7CisrCQlwdWJsaWMgZmxvYXQgejsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGNy b3NzIChHcmFwaGVuZS5Qb2ludDNEIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor KwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludDNEIGIsIG91dCBHcmFwaGVu ZS5WZWMzIGRlbHRhKTsKKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlBvaW50M0QgYik7 CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUG9pbnQzRCBiKTsKKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHop OworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gaW5pdF9mcm9tX3BvaW50IChH cmFwaGVuZS5Qb2ludDNEIHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNE PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyB2KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Q b2ludDNEIGludGVycG9sYXRlIChHcmFwaGVuZS5Qb2ludDNEIGIsIGRvdWJsZSBmYWN0b3IpOwor KwkJcHVibGljIGZsb2F0IGxlbmd0aCAoKTsKKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5l LlBvaW50M0QgYiwgZmxvYXQgZXBzaWxvbik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBu b3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3Jh cGhlbmUuUG9pbnQzRCBub3JtYWxpemVfdmlld3BvcnQgKEdyYXBoZW5lLlJlY3Qgdmlld3BvcnQs IGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qg c2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyB0b192ZWMzICgp OworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IHplcm8gKCk7Cisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gImdyYXBoZW5lX3F1YWRfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcXVhZF9nZXRfdHlw ZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUXVh ZCB7CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBib3VuZHMgKCk7CisrCQlwdWJsaWMgYm9vbCBj b250YWlucyAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Q b2ludD8gZ2V0X3BvaW50ICh1aW50IGluZGV4Xyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5RdWFkPyBpbml0IChHcmFwaGVuZS5Qb2ludCBwMSwgR3JhcGhlbmUuUG9pbnQgcDIsIEdyYXBo ZW5lLlBvaW50IHAzLCBHcmFwaGVuZS5Qb2ludCBwNCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWFkPyBpbml0X2Zyb21fcG9pbnRz IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQgcG9pbnRzWzRd KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGluaXRfZnJvbV9yZWN0IChHcmFw aGVuZS5SZWN0IHIpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVu ZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9xdWF0ZXJuaW9uX3QiLCB0eXBlX2lkID0g ImdyYXBoZW5lX3F1YXRlcm5pb25fZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFF1YXRlcm5pb24geworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIGFkZCAoR3JhcGhlbmUu UXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlF1YXRlcm5pb24g Yik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IHosIGZsb2F0IHcpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlv bj8gaW5pdF9mcm9tX2FuZ2xlX3ZlYzMgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMp OworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX2FuZ2xl cyAoZmxvYXQgZGVnX3gsIGZsb2F0IGRlZ195LCBmbG9hdCBkZWdfeik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBp bml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGUpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IG0pOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX3F1YXRlcm5p b24gKEdyYXBoZW5lLlF1YXRlcm5pb24gc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlF1YXRlcm5pb24/IGluaXRfZnJvbV9yYWRpYW5zIChmbG9hdCByYWRfeCwgZmxvYXQgcmFkX3ks IGZsb2F0IHJhZF96KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGlu aXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5RdWF0ZXJuaW9uPyBpbml0X2lkZW50aXR5ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlF1 YXRlcm5pb24gaW52ZXJ0ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIG11bHRpcGx5IChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIp OworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gbm9ybWFsaXplICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIHNjYWxl IChmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gc2xlcnAgKEdy YXBoZW5lLlF1YXRlcm5pb24gYiwgZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyB2b2lkIHRvX2Fu Z2xlX3ZlYzMgKG91dCBmbG9hdCBhbmdsZSwgb3V0IEdyYXBoZW5lLlZlYzMgYXhpcyk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCB0b19hbmdsZXMgKG91dCBm bG9hdCBkZWdfeCwgb3V0IGZsb2F0IGRlZ195LCBvdXQgZmxvYXQgZGVnX3opOworKwkJcHVibGlj IEdyYXBoZW5lLk1hdHJpeCB0b19tYXRyaXggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisrCQlwdWJsaWMgdm9pZCB0b19yYWRpYW5zIChvdXQgZmxvYXQgcmFkX3gsIG91dCBmbG9h dCByYWRfeSwgb3V0IGZsb2F0IHJhZF96KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHRvX3Zl YzQgKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3JheV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9yYXlf Z2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwlwdWJsaWMgc3Ry dWN0IFJheSB7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUmF5IGIpOworKwkJcHVi bGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X2Nsb3Nlc3RfcG9pbnRfdG9fcG9pbnQgKEdyYXBoZW5l LlBvaW50M0QgcCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfZGlyZWN0aW9uICgpOwor KwkJcHVibGljIGZsb2F0IGdldF9kaXN0YW5jZV90b19wbGFuZSAoR3JhcGhlbmUuUGxhbmUgcCk7 CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2Rpc3RhbmNlX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludDNE IHApOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X29yaWdpbiAoKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5Qb2ludDNEIGdldF9wb3NpdGlvbl9hdCAoZmxvYXQgdCk7CisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5SYXk/IGluaXQgKEdyYXBoZW5lLlBvaW50M0Q/IG9yaWdpbiwgR3Jh cGhlbmUuVmVjMz8gZGlyZWN0aW9uKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJheT8g aW5pdF9mcm9tX3JheSAoR3JhcGhlbmUuUmF5IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5SYXk/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBvcmlnaW4sIEdyYXBoZW5l LlZlYzM/IGRpcmVjdGlvbik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X2JveCAoR3JhcGhlbmUu Qm94IGIsIG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X3NwaGVyZSAo R3JhcGhlbmUuU3BoZXJlIHMsIG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJz ZWN0X3RyaWFuZ2xlIChHcmFwaGVuZS5UcmlhbmdsZSB0LCBvdXQgZmxvYXQgdF9vdXQpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfYm94 IChHcmFwaGVuZS5Cb3ggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVi bGljIGJvb2wgaW50ZXJzZWN0c19zcGhlcmUgKEdyYXBoZW5lLlNwaGVyZSBzKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3RyaWFuZ2xl IChHcmFwaGVuZS5UcmlhbmdsZSB0KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcmVjdF90IiwgdHlwZV9p ZCA9ICJncmFwaGVuZV9yZWN0X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJcHVibGljIHN0cnVjdCBSZWN0IHsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBv cmlnaW47CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplOworKwkJcHVibGljIHN0YXRpYyBH cmFwaGVuZS5SZWN0PyBhbGxvYyAoKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChH cmFwaGVuZS5Qb2ludCBwKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKEdyYXBoZW5l LlJlY3QgYik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUmVjdCBiKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGV4cGFuZCAo R3JhcGhlbmUuUG9pbnQgcCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVi bGljIGZsb2F0IGdldF9hcmVhICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9ib3R0 b21fbGVmdCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfYm90dG9tX3JpZ2h0ICgp OworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxv YXQgZ2V0X2hlaWdodCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfdG9wX2xlZnQg KCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X3RvcF9yaWdodCAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAoW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBHcmFwaGVuZS5WZWMyIHZlcnRpY2VzWzRdKTsK KysJCXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7 CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5S ZWN0PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsK KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IGluaXRfZnJvbV9yZWN0IChHcmFwaGVu ZS5SZWN0IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBpbnNldCAoZmxv YXQgZF94LCBmbG9hdCBkX3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlJlY3QgaW5zZXRfciAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJcHVi bGljIEdyYXBoZW5lLlJlY3QgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlJlY3QgYiwgZG91YmxlIGZh Y3Rvcik7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKEdyYXBoZW5lLlJlY3QgYiwgb3V0 IEdyYXBoZW5lLlJlY3QgcmVzKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IG5v cm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5SZWN0IG5vcm1hbGl6ZV9yICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVj dD8gb2Zmc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBvZmZzZXRfciAoZmxvYXQgZF94LCBmbG9h dCBkX3kpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHJvdW5k ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5S ZWN0IHJvdW5kX2V4dGVudHMgKCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5SZWN0PyByb3VuZF90b19waXhlbCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBzY2FsZSAoZmxvYXQgc19oLCBmbG9h dCBzX3YpOworKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgdW5pb24gKEdyYXBoZW5lLlJlY3QgYik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQg R3JhcGhlbmUuUmVjdD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfc2ltZDRmX3QiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBTaW1kNEYgeworKwl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFw aGVuZV9zaW1kNHg0Zl90IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBzdHJ1Y3Qg U2ltZDRYNEYgeworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1n b2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zaXplX3QiLCB0eXBlX2lkID0gImdyYXBoZW5l X3NpemVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJs aWMgc3RydWN0IFNpemUgeworKwkJcHVibGljIGZsb2F0IHdpZHRoOworKwkJcHVibGljIGZsb2F0 IGhlaWdodDsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5TaXplIGIpOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuU2l6ZT8gaW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo dCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyBpbml0X2Zyb21fc2l6ZSAoR3Jh cGhlbmUuU2l6ZSBzcmMpOworKwkJcHVibGljIEdyYXBoZW5lLlNpemUgaW50ZXJwb2xhdGUgKEdy YXBoZW5lLlNpemUgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBz Y2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5T aXplPyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVu ZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zcGhlcmVfdCIsIHR5cGVfaWQgPSAiZ3Jh cGhlbmVfc3BoZXJlX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KysJcHVibGljIHN0cnVjdCBTcGhlcmUgeworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQg KEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFw aGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5TcGhl cmUgYik7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGdldF9ib3VuZGluZ19ib3ggKCk7CisrCQlw dWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfY2VudGVyICgpOworKwkJcHVibGljIGZsb2F0IGdl dF9yYWRpdXMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TcGhlcmU/IGluaXQgKEdy YXBoZW5lLlBvaW50M0Q/IGNlbnRlciwgZmxvYXQgcmFkaXVzKTsKKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlNwaGVyZT8gaW5pdF9mcm9tX3BvaW50cyAoW0NDb2RlIChhcnJheV9sZW5ndGhf Y25hbWUgPSAibl9wb2ludHMiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhf dHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5Qb2ludDNEW10gcG9pbnRzLCBHcmFwaGVuZS5Qb2lu dDNEPyBjZW50ZXIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuU3BoZXJlPyBpbml0X2Zy b21fdmVjdG9ycyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl92ZWN0b3JzIiwgYXJy YXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhl bmUuVmVjM1tdIHZlY3RvcnMsIEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRlcik7CisrCQlwdWJsaWMg Ym9vbCBpc19lbXB0eSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgdHJhbnNsYXRlIChH cmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdHJpYW5nbGVfdCIsIHR5 cGVfaWQgPSAiZ3JhcGhlbmVfdHJpYW5nbGVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFRyaWFuZ2xlIHsKKysJCXB1YmxpYyBib29s IGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJcHVibGljIGJvb2wgZXF1 YWwgKEdyYXBoZW5lLlRyaWFuZ2xlIGIpOworKwkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOwor KwkJcHVibGljIGJvb2wgZ2V0X2Jhcnljb29yZHMgKEdyYXBoZW5lLlBvaW50M0Q/IHAsIG91dCBH cmFwaGVuZS5WZWMyIHJlcyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGdldF9ib3VuZGluZ19i b3ggKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfbWlkcG9pbnQgKCk7CisrCQlw dWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfbm9ybWFsICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBs YW5lIGdldF9wbGFuZSAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb2ludHMgKG91dCBHcmFwaGVu ZS5Qb2ludDNEIGEsIG91dCBHcmFwaGVuZS5Qb2ludDNEIGIsIG91dCBHcmFwaGVuZS5Qb2ludDNE IGMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGdldF91 diAoR3JhcGhlbmUuUG9pbnQzRD8gcCwgR3JhcGhlbmUuVmVjMiB1dl9hLCBHcmFwaGVuZS5WZWMy IHV2X2IsIEdyYXBoZW5lLlZlYzIgdXZfYywgb3V0IEdyYXBoZW5lLlZlYzIgcmVzKTsKKysJCXB1 YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAob3V0IEdyYXBoZW5lLlZlYzMgYSwgb3V0IEdyYXBoZW5l LlZlYzMgYiwgb3V0IEdyYXBoZW5lLlZlYzMgYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVHJpYW5nbGU/IGluaXRfZnJvbV9mbG9h dCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IGFbM10sIFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBiWzNdLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0gZmxvYXQgY1szXSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5UcmlhbmdsZT8g aW5pdF9mcm9tX3BvaW50M2QgKEdyYXBoZW5lLlBvaW50M0Q/IGEsIEdyYXBoZW5lLlBvaW50M0Q/ IGIsIEdyYXBoZW5lLlBvaW50M0Q/IGMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVHJp YW5nbGU/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBhLCBHcmFwaGVuZS5WZWMzPyBi LCBHcmFwaGVuZS5WZWMzPyBjKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Z3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdmVjMl90IiwgdHlwZV9pZCA9 ICJncmFwaGVuZV92ZWMyX2dldF90eXBlICgpIildCisrCXB1YmxpYyBzdHJ1Y3QgVmVjMiB7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBhZGQg KEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgR3JhcGhlbmUuVmVjMiBkaXZpZGUgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVuZS5WZWMyIGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBo ZW5lLlZlYzIgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZs b2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZs b2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuVmVjMj8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBpbml0 X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBzcmNbMl0p OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuVmVjMj8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIgc3JjKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBpbnRlcnBvbGF0ZSAo R3JhcGhlbmUuVmVjMiB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbWF4IChHcmFwaGVuZS5WZWMyIGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbWlu IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlZlYzIgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWMyIHYy LCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWMyIG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBvbmUg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVj MiBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5WZWMyIHN1YnRyYWN0IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFsyXSk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8g eF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRp YyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IHlfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyB6ZXJvICgp OworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0Lmgi LCBjbmFtZSA9ICJncmFwaGVuZV92ZWMzX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3ZlYzNfZ2V0 X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBWZWMzIHsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGFkZCAoR3JhcGhlbmUuVmVjMyBiKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGNy b3NzIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzMgZGl2aWRlIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuVmVjMyBi KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsIChH cmFwaGVuZS5WZWMzIHYyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBmbG9hdCBnZXRfeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWMyIGdldF94eSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF94eTAgKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfeHl6MCAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF94eXoxICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQg Z2V0X3h5encgKGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGZsb2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGZsb2F0IGdldF96ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg eik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5WZWMzPyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSBmbG9hdCBzcmNbM10pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuVmVjMz8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzMgc3Jj KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVj MyBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuVmVjMyB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbWF4IChHcmFw aGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzMgbWluIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzMg Yik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChH cmFwaGVuZS5WZWMzIHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG5vcm1hbGl6ZSAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFw aGVuZS5WZWMzPyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJs aWMgR3JhcGhlbmUuVmVjMyBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHN1YnRyYWN0IChHcmFwaGVuZS5W ZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9f ZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFszXSk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQg R3JhcGhlbmUuVmVjMz8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IHlfYXhpcyAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVu ZS5WZWMzPyB6X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhl bmVfdmVjNF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV92ZWM0X2dldF90eXBlICgpIildCisrCXB1 YmxpYyBzdHJ1Y3QgVmVjNCB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgR3JhcGhlbmUuVmVjNCBhZGQgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBkaXZpZGUgKEdyYXBoZW5lLlZl YzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90 IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVi bGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZlYzQgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF93ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgZ2V0X3h5ICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3h5eiAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeiAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZl YzQ/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IHcpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5p dF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgc3JjWzRd KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlZlYzQ/IGluaXRfZnJvbV92ZWMyIChHcmFwaGVuZS5WZWMyIHNyYywgZmxvYXQgeiwgZmxv YXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyBzcmMsIGZsb2F0IHcp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuVmVjND8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBpbnRlcnBvbGF0ZSAo R3JhcGhlbmUuVmVjNCB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbWF4IChHcmFwaGVuZS5WZWM0IGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbWlu IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlZlYzQgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWM0IHYy LCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWM0IG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBvbmUg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVj NCBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5WZWM0IHN1YnRyYWN0IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFs0XSk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8g d19heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRp YyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHhfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB5X2F4aXMg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgR3JhcGhlbmUuVmVjND8gel9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHplcm8gKCk7CisrCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1l ID0gImdyYXBoZW5lX2V1bGVyX29yZGVyX3QiLCBjcHJlZml4ID0gIkdSQVBIRU5FX0VVTEVSX09S REVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisrCXB1YmxpYyBlbnVtIEV1bGVyT3JkZXIgeworKwkJREVGQVVMVCwKKysJCVhZWiwKKysJCVla WCwKKysJCVpYWSwKKysJCVhaWSwKKysJCVlYWiwKKysJCVpZWCwKKysJCVNYWVosCisrCQlTWFlY LAorKwkJU1haWSwKKysJCVNYWlgsCisrCQlTWVpYLAorKwkJU1laWSwKKysJCVNZWFosCisrCQlT WVhZLAorKwkJU1pYWSwKKysJCVNaWFosCisrCQlTWllYLAorKwkJU1pZWiwKKysJCVJaWVgsCisr CQlSWFlYLAorKwkJUllaWCwKKysJCVJYWlgsCisrCQlSWFpZLAorKwkJUllaWSwKKysJCVJaWFks CisrCQlSWVhZLAorKwkJUllYWiwKKysJCVJaWFosCisrCQlSWFlaLAorKwkJUlpZWgorKwl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9 ICJncmFwaGVuZV9yYXlfaW50ZXJzZWN0aW9uX2tpbmRfdCIsIGNwcmVmaXggPSAiR1JBUEhFTkVf UkFZX0lOVEVSU0VDVElPTl9LSU5EXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBSYXlJbnRlcnNlY3Rpb25LaW5kIHsK KysJCU5PTkUsCisrCQlFTlRFUiwKKysJCUxFQVZFCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX0hBU19HQ0Mi KV0KKysJcHVibGljIGNvbnN0IGludCBIQVNfR0NDOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfSEFTX1NDQUxBUiIp XQorKwlwdWJsaWMgY29uc3QgaW50IEhBU19TQ0FMQVI7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9IQVNfU1NFIild CisrCXB1YmxpYyBjb25zdCBpbnQgSEFTX1NTRTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1BJIildCisrCXB1Ymxp YyBjb25zdCBkb3VibGUgUEk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVu ZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9QSV8yIildCisrCXB1YmxpYyBjb25zdCBk b3VibGUgUElfMjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1NJTURfUyIpXQorKwlwdWJsaWMgY29uc3Qgc3RyaW5n IFNJTURfUzsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3Qu aCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzJfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUMyX0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzNfTEVO IildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUMz X0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIs IGNuYW1lID0gIkdSQVBIRU5FX1ZFQzRfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJcHVibGljIGNvbnN0IGludCBWRUM0X0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImZhbHNlIildCisrCXB1YmxpYyBj b25zdCBpbnQgQGZhbHNlOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUt Z29iamVjdC5oIiwgY25hbWUgPSAidHJ1ZSIpXQorKwlwdWJsaWMgY29uc3QgaW50IEB0cnVlOwor K30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMi5kZXBzIHZhcGkvbGlibXV0dGVyLTIuZGVw cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAxZjNjOTA3OS4uMDAwMDAwMDAKKy0t LSB2YXBpL2xpYm11dHRlci0yLmRlcHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDkgKzAsMCBAQAor LWNhaXJvCistZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcworLWdkay0zLjAKKy1nZGstcGl4YnVm LTIuMAorLWd0aystMy4wCisteDExCisteGZpeGVzLTQuMAorLWNsdXR0ZXItMS4wCistY29nbC0x LjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMi52YXBpIHZhcGkvbGlibXV0dGVyLTIudmFw aQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwYTZjNDM1Ny4uMDAwMDAwMDAKKy0t LSB2YXBpL2xpYm11dHRlci0yLnZhcGkKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzMjUgKzAsMCBA QAorLS8qIGxpYm11dHRlci52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5 LiAqLworLQorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRh IiwgZ2lyX3ZlcnNpb24gPSAiMy4wIiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFfIildCist bmFtZXNwYWNlIE1ldGEgeworLQluYW1lc3BhY2UgUHJlZnMgeworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF9s aXN0ZW5lciAoTWV0YS5QcmVmc0NoYW5nZWRGdW5jIGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGJlbGxf aXNfYXVkaWJsZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX25hbWUgKGludCBp LCBzdHJpbmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIGdldF9hY3Rp b25fZG91YmxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFj dGlvbiBnZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0 b3AuVGl0bGViYXJBY3Rpb24gZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBz dGF0aWMgYm9vbCBnZXRfYXR0YWNoX21vZGFsX2RpYWxvZ3MgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0 X2F1dG9fbWF4aW1pemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2F1dG9fcmFpc2UgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3Rh dGljIGludCBnZXRfYXV0b19yYWlzZV9kZWxheSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5CdXR0b25MYXlv dXQgZ2V0X2J1dHRvbl9sYXlvdXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2NlbnRlcl9uZXdfd2lu ZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfY29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgaW50IGdldF9jdXJzb3Jfc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ2V0X2N1 cnNvcl90aGVtZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGlzYWJsZV93b3JrYXJvdW5kcyAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgaW50IGdldF9kcmFnX3RocmVzaG9sZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9kcmFn Z2FibGVfYm9yZGVyX3dpZHRoICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9keW5hbWljX3dvcmtzcGFj ZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2VkZ2VfdGlsaW5nICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdl dF9mb2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9yZXN0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5Gb2N1 c01vZGUgZ2V0X2ZvY3VzX21vZGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTmV3V2luZG93 cyBnZXRfZm9jdXNfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2ZvcmNlX2Z1bGxz Y3JlZW4gKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3Rh dGljIGJvb2wgZ2V0X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2lnbm9y ZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGluZ0FjdGlv biBnZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9t b3VzZV9idXR0b25fbWVudSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIgZ2V0X21v dXNlX2J1dHRvbl9tb2RzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X21vdXNlX2J1dHRvbl9yZXNpemUg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlw dWJsaWMgc3RhdGljIGludCBnZXRfbnVtX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0 X3JhaXNlX29uX2NsaWNrICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9zaG93X2ZhbGxiYWNrX2FwcF9t ZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIFBhbmdvLkZvbnREZXNjcmlwdGlvbiBnZXRfdGl0bGVi YXJfZm9udCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfdmlzdWFsX2JlbGwgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdE ZXNrdG9wLlZpc3VhbEJlbGxUeXBlIGdldF92aXN1YWxfYmVsbF90eXBlICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB1 bm93bmVkIHN0cmluZyBnZXRfd29ya3NwYWNlX25hbWUgKGludCBpKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBn ZXRfd29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBvdmVycmlkZV9wcmVmZXJlbmNlX3NjaGVtYSAoc3RyaW5nIGtleSwgc3Ry aW5nIHNjaGVtYSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2xpc3RlbmVyIChNZXRhLlByZWZzQ2hh bmdlZEZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wg d2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIg KGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X251bV93b3Jrc3BhY2VzIChpbnQgbl93 b3Jrc3BhY2VzKTsKKy0JfQorLQluYW1lc3BhY2UgVXRpbCB7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2FkZF92ZXJib3NlX3RvcGlj IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdU b3BpYyB0b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJtZXRhX2J1ZyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGJ1ZyAoc3RyaW5n IGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIm1ldGFfZGVidWdfc3Bld19yZWFsIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgZGVidWdfc3Bld19yZWFsIChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9kaXNhYmxlX3VucmVk aXJlY3RfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRp cmVjdF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1w dHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3Rh Z2VfaW5wdXRfcmVnaW9uIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVj dF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3Rf Zm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wb3AiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3BvcCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAi bWV0YV9lcnJvcl90cmFwX3B1c2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFw X3B1c2ggKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wdXNoX3dpdGhfcmV0 dXJuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZXJyb3JfdHJhcF9wdXNoX3dpdGhfcmV0dXJu IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0 aW9uIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9y X2FjdGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2ZhdGFsIildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgZmF0YWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2ZyZWVfZ3NsaXN0X2Fu ZF9lbGVtZW50cyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGZyZWVfZ3NsaXN0X2FuZF9lbGVt ZW50cyAoR0xpYi5TTGlzdDx2b2lkKj4gbGlzdF90b19kZWVwX2ZyZWUpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhfc3Ry bmR1cCIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBz cmMsIHNpemVfdCBuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0 aWMgTWV0YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9v dmVybGF5X3dpbmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyBYLldpbmRvdyBnZXRfb3ZlcmxheV93 aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZpdHlfdG9fc3RyaW5nIildCistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5nIChpbnQgZ3Jhdml0 eSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJtZXRhX2lzX2RlYnVnZ2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX2RlYnVnZ2lu ZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIm1ldGFfaXNfc3luY2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3N5bmNpbmcg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJtZXRhX2lzX3ZlcmJvc2UiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJib3NlICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAi bWV0YV9pc193YXlsYW5kX2NvbXBvc2l0b3IiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc193 YXlsYW5kX2NvbXBvc2l0b3IgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX2FkZCIpXQorLQkJcHVibGljIHN0YXRpYyB1 aW50IGxhdGVyX2FkZCAoTWV0YS5MYXRlclR5cGUgd2hlbiwgb3duZWQgR0xpYi5Tb3VyY2VGdW5j IGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAibWV0YV9sYXRlcl9yZW1vdmUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBsYXRlcl9y ZW1vdmUgKHVpbnQgbGF0ZXJfaWQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9wb3Bfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkIHBvcF9ub19tc2dfcHJlZml4ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9wdXNoX25vX21zZ19wcmVmaXgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3JlY3Qi KV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5SZWN0YW5nbGU/IHJlY3QgKGludCB4LCBpbnQgeSwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfcmVtb3ZlX3ZlcmJvc2VfdG9waWMiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRv cGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLlNjcmVlbiBzY3JlZW4s IFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9zaG93X2RpYWxvZyIpXQorLQkJcHVibGljIHN0 YXRpYyBHTGliLlBpZCBzaG93X2RpYWxvZyAoc3RyaW5nIHR5cGUsIHN0cmluZyBtZXNzYWdlLCBz dHJpbmc/IHRpbWVvdXQgPSBudWxsLCBzdHJpbmc/IGRpc3BsYXkgPSBudWxsLCBzdHJpbmc/IG9r X3RleHQgPSBudWxsLCBzdHJpbmc/IGNhbmNlbF90ZXh0ID0gbnVsbCwgc3RyaW5nPyBpY29uX25h bWUgPSBudWxsLCBpbnQgdHJhbnNpZW50X2ZvciA9IDAsIEdMaWIuU0xpc3Q8c3RyaW5nPj8gY29s dW1ucyA9IG51bGwsIEdMaWIuU0xpc3Q8c3RyaW5nPj8gZW50cmllcyA9IG51bGwpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV90b3Bp Y19yZWFsIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdG9waWNfcmVhbCAoTWV0YS5EZWJ1Z1Rv cGljIHRvcGljLCBzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2VxdWFsIild CistCQlwdWJsaWMgc3RhdGljIGludCB1bnNpZ25lZF9sb25nX2VxdWFsICh2b2lkKiB2MSwgdm9p ZCogdjIpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2hhc2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCB1 bnNpZ25lZF9sb25nX2hhc2ggKHZvaWQqIHYpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV92ZXJib3NlX3JlYWwiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCB2ZXJib3NlX3JlYWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3dhcm5p bmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB3YXJuaW5nIChzdHJpbmcgZm9ybWF0LCAuLi4p OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVf aWQgPSAibWV0YV9iYWNrZW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFz cyBCYWNrZW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2Jh Y2tlbmQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkJhY2tlbmQgZ2V0X2JhY2tl bmQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFnZSAoKTsKKy0J CXB1YmxpYyB2b2lkIGxvY2tfbGF5b3V0X2dyb3VwICh1aW50IGlkeCk7CistCQlwdWJsaWMgdm9p ZCBzZXRfa2V5bWFwIChzdHJpbmcgbGF5b3V0cywgc3RyaW5nIHZhcmlhbnRzLCBzdHJpbmcgb3B0 aW9ucyk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgQmFja2dyb3VuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kIChNZXRhLlNjcmVlbiBz Y3JlZW4pOworLQkJcHVibGljIHN0YXRpYyB2b2lkIHJlZnJlc2hfYWxsICgpOworLQkJcHVibGlj IHZvaWQgc2V0X2JsZW5kIChHTGliLkZpbGUgZmlsZTEsIEdMaWIuRmlsZSBmaWxlMiwgZG91Ymxl IGJsZW5kX2ZhY3RvciwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJsaWMgdm9pZCBz ZXRfZmlsZSAoR0xpYi5GaWxlIGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7 CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFkaW5n IHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNl Y29uZF9jb2xvcik7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNjcmVl biBtZXRhX3NjcmVlbiB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2Fj dG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBDbHV0 dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5D b250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFj a2dyb3VuZEFjdG9yIChNZXRhLlNjcmVlbiBzY3JlZW4sIGludCBtb25pdG9yKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCk7CistCQlw dWJsaWMgdm9pZCBzZXRfdmlnbmV0dGUgKGJvb2wgZW5hYmxlZCwgZG91YmxlIGJyaWdodG5lc3Ms IGRvdWJsZSBzaGFycG5lc3MpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0 YS5CYWNrZ3JvdW5kIGJhY2tncm91bmQgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgZG91YmxlIGJyaWdodG5lc3MgeyBnZXQ7IHNldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TY3JlZW4gbWV0YV9zY3JlZW4geyBv d25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg aW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgYm9vbCB2aWduZXR0ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBkb3VibGUgdmlnbmV0dGVfc2hhcnBuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dyb3VwX2dldF90eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kR3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVt ZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEdyb3VwICgpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZ3JvdW5k SW1hZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfc3VjY2VzcyAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2xvYWRl ZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsb2FkZWQgKCk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBlX2lk ID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9jYWNoZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgQmFja2dyb3VuZEltYWdlQ2FjaGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3VuZElt YWdlQ2FjaGUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZ3JvdW5kSW1h Z2VDYWNoZSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmRJbWFnZSBs b2FkIChHTGliLkZpbGUgZmlsZSk7CistCQlwdWJsaWMgdm9pZCBwdXJnZSAoR0xpYi5GaWxlIGZp bGUpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCIs IHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBC YXJyaWVyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhcnJpZXIgKCk7CistCQlwdWJsaWMgdm9pZCBkZXN0 cm95ICgpOworLQkJcHVibGljIGJvb2wgaXNfYWN0aXZlICgpOworLQkJcHVibGljIHZvaWQgcmVs ZWFzZSAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgTWV0YS5CYXJyaWVyRGlyZWN0aW9uIGRpcmVjdGlvbnMgeyBnZXQ7IGNvbnN0cnVj dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3Bs YXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgaW50IHgxIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGludCB4MiB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBpbnQgeTEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgaW50IHkyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBoaXQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBsZWZ0IChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVk X2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9i YXJyaWVyX2V2ZW50X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3Mg QmFycmllckV2ZW50IHsKKy0JCXB1YmxpYyBpbnQgZHQ7CistCQlwdWJsaWMgZG91YmxlIGR4Owor LQkJcHVibGljIGRvdWJsZSBkeTsKKy0JCXB1YmxpYyBpbnQgZXZlbnRfaWQ7CistCQlwdWJsaWMg Ym9vbCBncmFiYmVkOworLQkJcHVibGljIGJvb2wgcmVsZWFzZWQ7CistCQlwdWJsaWMgdWludDMy IHRpbWU7CistCQlwdWJsaWMgZG91YmxlIHg7CistCQlwdWJsaWMgZG91YmxlIHk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIildCistCVtDb21w YWN0XQorLQlwdWJsaWMgY2xhc3MgQ29tcG9zaXRvciB7CistCQlwdWJsaWMgdm9pZCBhZGRfd2lu ZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKy0J CXB1YmxpYyBib29sIGZpbHRlcl9rZXliaW5kaW5nIChNZXRhLktleUJpbmRpbmcgYmluZGluZyk7 CistCQlwdWJsaWMgdm9pZCBmbGFzaF9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25h bWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBm b2N1c19zdGFnZV93aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IiwgY25hbWUgPSAibWV0YV9nZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9z Y3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfc3RhZ2VfZm9y X3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IGdldF9z dGFnZV9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0 X3RvcF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3I/IGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9zY3JlZW4gKE1ldGEuU2Ny ZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2FjdG9ycyIpXQorLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93QWN0b3I+PyBnZXRf d2luZG93X2FjdG9ycyAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93 aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3I/IGdldF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVu KTsKKy0JCXB1YmxpYyB2b2lkIGhpZGVfdGlsZV9wcmV2aWV3ICgpOworLQkJcHVibGljIHZvaWQg aGlkZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5Db21wRWZmZWN0IGVmZmVjdCk7 CistCQlwdWJsaWMgdm9pZCBtYW5hZ2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkNvbXBvc2l0 b3IgQG5ldyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGljIHZvaWQgcXVldWVfZnJh bWVfZHJhd24gKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBub19kZWxheV9mcmFtZSk7CistCQlw dWJsaWMgdm9pZCByZW1vdmVfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGlj IHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0YW5n bGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlwdWJsaWMgdm9pZCBz aG93X3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkNvbXBFZmZlY3QgZWZmZWN0KTsK Ky0JCXB1YmxpYyB2b2lkIHNob3dfd2luZG93X21lbnUgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0 YS5XaW5kb3dNZW51VHlwZSBtZW51LCBpbnQgeCwgaW50IHkpOworLQkJcHVibGljIHZvaWQgc2hv d193aW5kb3dfbWVudV9mb3JfcmVjdCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01l bnVUeXBlIG1lbnUsIE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJcHVibGljIHZvaWQgc2l6ZV9j aGFuZ2Vfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuU2l6ZUNoYW5nZSB3aGljaF9j aGFuZ2UsIE1ldGEuUmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0LCBNZXRhLlJlY3RhbmdsZSBvbGRf YnVmZmVyX3JlY3QpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc3RhZ2VfaXNfZm9jdXNlZCIpXQorLQkJcHVi bGljIHN0YXRpYyBib29sIHN0YWdlX2lzX2ZvY3VzZWQgKE1ldGEuU2NyZWVuIHNjcmVlbik7Cist CQlwdWJsaWMgdm9pZCBzd2l0Y2hfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSBmcm9tLCBNZXRh LldvcmtzcGFjZSB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1Ymxp YyB2b2lkIHN5bmNfc3RhY2sgKEdMaWIuTGlzdDxNZXRhLldpbmRvd0FjdG9yPiBzdGFjayk7Cist CQlwdWJsaWMgdm9pZCBzeW5jX3VwZGF0ZXNfZnJvemVuIChNZXRhLldpbmRvdyB3aW5kb3cpOwor LQkJcHVibGljIHZvaWQgc3luY193aW5kb3dfZ2VvbWV0cnkgKE1ldGEuV2luZG93IHdpbmRvdywg Ym9vbCBkaWRfcGxhY2VtZW50KTsKKy0JCXB1YmxpYyB2b2lkIHVubWFuYWdlICgpOworLQkJcHVi bGljIHZvaWQgd2luZG93X29wYWNpdHlfY2hhbmdlZCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0J CXB1YmxpYyB2b2lkIHdpbmRvd19zaGFwZV9jaGFuZ2VkIChNZXRhLldpbmRvdyB3aW5kb3cpOwor LQkJcHVibGljIHZvaWQgd2luZG93X3N1cmZhY2VfY2hhbmdlZCAoTWV0YS5XaW5kb3cgd2luZG93 KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX3RyYWNrZXJfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIEN1cnNvclRyYWNrZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQ3Vyc29yVHJh Y2tlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkN1cnNvclRyYWNrZXIgZ2V0 X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMgdm9pZCBnZXRfaG90 IChvdXQgaW50IHgsIG91dCBpbnQgeSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlciAoaW50 IHgsIGludCB5LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RzKTsKKy0JCXB1YmxpYyB1bm93bmVk IENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgpOworLQkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJf dmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hh bmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5 LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xh c3MgRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEaXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQg YWRkX2lnbm9yZWRfY3Jvc3Npbmdfc2VyaWFsICh1bG9uZyBzZXJpYWwpOworLQkJcHVibGljIHVp bnQgYWRkX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lLCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBN ZXRhLktleUJpbmRpbmdGbGFncyBmbGFncywgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYyBoYW5k bGVyKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX2dyYWJfb3AgKE1ldGEuU2NyZWVuIHNjcmVlbiwg TWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkdyYWJPcCBvcCwgYm9vbCBwb2ludGVyX2FscmVhZHlf Z3JhYmJlZCwgYm9vbCBmcmFtZV9hY3Rpb24sIGludCBidXR0b24sIHVsb25nIG1vZG1hc2ssIHVp bnQzMiB0aW1lc3RhbXAsIGludCByb290X3gsIGludCByb290X3kpOworLQkJcHVibGljIHZvaWQg Y2xlYXJfbW91c2VfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9ncmFiX29wICh1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cgKE1l dGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmcmVl emVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5D b21wb3NpdG9yIGdldF9jb21wb3NpdG9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVu dF90aW1lICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lX3JvdW5kdHJpcCAo KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgpOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5XaW5kb3cgZ2V0X2ZvY3VzX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBNZXRhLkdy YWJPcCBnZXRfZ3JhYl9vcCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9rZXliaW5kaW5nX2FjdGlv biAodWludCBrZXljb2RlLCB1bG9uZyBtYXNrKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2xhc3Rf dXNlcl90aW1lICgpOworLQkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfY3VycmVudCAoTWV0YS5UYWJMaXN0 IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgR0xpYi5MaXN0PHdl YWsgTWV0YS5XaW5kb3c+IGdldF90YWJfbGlzdCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29y a3NwYWNlPyB3b3Jrc3BhY2UpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3Rh Yl9uZXh0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBNZXRh LldpbmRvdz8gd2luZG93LCBib29sIGJhY2t3YXJkKTsKKy0JCXB1YmxpYyB1bm93bmVkIFguRGlz cGxheSBnZXRfeGRpc3BsYXkgKCk7CistCQlwdWJsaWMgaW50IGdldF94aW5wdXRfb3Bjb2RlICgp OworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9yKTsK Ky0JCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3BvaW50ZXJf ZW11bGF0aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuR3JvdXAgbG9va3VwX2dyb3VwIChYLldpbmRvdyBncm91cF9s ZWFkZXIpOworLQkJcHVibGljIGJvb2wgcmVtb3ZlX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9mb2N1c193aW5kb3cgKE1ldGEuV2luZG93IHdpbmRv dywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgR0xpYi5T TGlzdDx3ZWFrIE1ldGEuV2luZG93PiBzb3J0X3dpbmRvd3NfYnlfc3RhY2tpbmcgKEdMaWIuU0xp c3Q8TWV0YS5XaW5kb3c+IHdpbmRvd3MpOworLQkJcHVibGljIGJvb2wgc3VwcG9ydHNfZXh0ZW5k ZWRfYmFycmllcnMgKCk7CistCQlwdWJsaWMgdm9pZCB1bmZyZWV6ZV9rZXlib2FyZCAodWludDMy IHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB1bmdyYWJfYWNjZWxlcmF0b3IgKHVpbnQgYWN0 aW9uX2lkKTsKKy0JCXB1YmxpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAodWludDMyIHRpbWVzdGFt cCk7CistCQlwdWJsaWMgdm9pZCB1bm1hbmFnZV9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbiwg dWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVmb3Jl ICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7CistCQlwdWJsaWMgYm9vbCB4d2luZG93X2lz X2Ffbm9fZm9jdXNfd2luZG93IChYLldpbmRvdyB4d2luZG93KTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCB1aW50IHAwLCB1aW50IHAx KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLlNjcmVlbiBvYmpl Y3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgZ3JhYl9vcF9lbmQgKE1ldGEuU2NyZWVuIG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEu R3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBtb2RpZmllcnNfYWNjZWxlcmF0b3Jf YWN0aXZhdGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG92ZXJsYXlfa2V5ICgpOworLQkJ cHVibGljIHNpZ25hbCBib29sIHJlc3RhcnQgKCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hv d19yZXNpemVfcG9wdXAgKGJvb2wgb2JqZWN0LCBNZXRhLlJlY3RhbmdsZSBwMCwgaW50IHAxLCBp bnQgcDIpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzdGFydF9tZXNzYWdlIChzdHJp bmc/IG1lc3NhZ2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRh LldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0 dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5k b3dfbWFya2VkX3VyZ2VudCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGlj IGNsYXNzIEZyYW1lIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9n cm91cC5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgR3JvdXAgeworLQkJcHVibGlj IGludCBnZXRfc2l6ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3RhcnR1cF9p ZCAoKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93 cyAoKTsKKy0JCXB1YmxpYyBib29sIHByb3BlcnR5X25vdGlmeSAoWC5FdmVudCBldmVudCk7Cist CQlwdWJsaWMgdm9pZCB1cGRhdGVfbGF5ZXJzICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFfaWRs ZV9tb25pdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBJZGxlTW9uaXRvciA6IEdM aWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBJZGxlTW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1aW50IGFkZF9pZGxlX3dh dGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVu Yz8gY2FsbGJhY2spOworLQkJcHVibGljIHVpbnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNoIChvd25l ZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9mb3JfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsK Ky0JCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUgKCk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVf d2F0Y2ggKHVpbnQgaWQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IGRl dmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEva2V5YmluZGluZ3MuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2Jp bmRpbmdfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBLZXlCaW5k aW5nIHsKKy0JCXB1YmxpYyB1aW50IGdldF9tYXNrICgpOworLQkJcHVibGljIE1ldGEuVmlydHVh bE1vZGlmaWVyIGdldF9tb2RpZmllcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X25hbWUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19idWlsdGluICgpOworLQkJcHVibGljIGJvb2wg aXNfcmV2ZXJzZWQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9rZXli aW5kaW5ncy5oIiwgY25hbWUgPSAibWV0YV9rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIi KV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBzZXRfY3VzdG9tX2hhbmRsZXIgKHN0cmluZyBuYW1l LCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jPyBoYW5kbGVyKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9 ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3Qg Y2xhc3MgTW9uaXRvck1hbmFnZXIgOiBHTGliLkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwgR0xpYi5E QnVzSW50ZXJmYWNlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBNZXRhLk1vbml0b3JNYW5hZ2VyIEBnZXQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25p dG9yX2Zvcl9vdXRwdXQgKHVpbnQgaWQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNvbmZpcm1f ZGlzcGxheV9jaGFuZ2UgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1wbHVnaW4uaCIsIHR5cGVfaWQgPSAibWV0YV9wbHVnaW5fZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGFic3RyYWN0IGNsYXNzIFBsdWdpbiA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQbHVnaW4g KCk7CistCQlwdWJsaWMgYm9vbCBiZWdpbl9tb2RhbCAoTWV0YS5Nb2RhbE9wdGlvbnMgb3B0aW9u cywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBjb21wbGV0ZV9kaXNwbGF5X2No YW5nZSAoYm9vbCBvayk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBj b25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgZGVzdHJveSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9p ZCBkZXN0cm95X2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMg dm9pZCBlbmRfbW9kYWwgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5QbHVnaW5JbmZvPyBnZXRfaW5mbyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVu IGdldF9zY3JlZW4gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBo aWRlX3RpbGVfcHJldmlldyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBi b29sIGtleWJpbmRpbmdfZmlsdGVyIChNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3N3aXRjaF93b3Jrc3BhY2UgKCk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3dpbmRvd19lZmZl Y3RzIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBtYW5h Z2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBlKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlw dWJsaWMgdm9pZCBtYXBfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1pbmltaXplIChNZXRhLldpbmRvd0Fj dG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5k b3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25l ZCBNZXRhLlBsdWdpbkluZm8/IHBsdWdpbl9pbmZvICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywg TWV0YS5SZWN0YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51IChNZXRh LldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgaW50IHgsIGludCB5KTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnVf Zm9yX3JlY3QgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBN ZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHNpemVfY2hhbmdlIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yLCBNZXRhLlNpemVDaGFuZ2Ug d2hpY2hfY2hhbmdlLCBNZXRhLlJlY3RhbmdsZSBvbGRfZnJhbWVfcmVjdCwgTWV0YS5SZWN0YW5n bGUgb2xkX2J1ZmZlcl9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNpemVfY2hhbmdlX2NvbXBsZXRl ZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCBzdGFydCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHN3aXRjaF93b3Jrc3BhY2UgKGludCBmcm9tLCBpbnQgdG8sIE1ldGEuTW90aW9uRGlyZWN0 aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfd29ya3NwYWNlX2NvbXBsZXRl ZCAoKTsKKy0gCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1bm1pbmltaXpl IChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1pemVfY29t cGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCBib29sIHhldmVudF9maWx0ZXIgKFguRXZlbnQgZXZlbnQpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3NjcmVlbi5oIiwgdHlwZV9pZCA9ICJtZXRh X3NjcmVlbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2NyZWVuIDogR0xpYi5PYmpl Y3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJv dGVjdGVkIFNjcmVlbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlPyBhcHBl bmRfbmV3X3dvcmtzcGFjZSAoYm9vbCBhY3RpdmF0ZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlw dWJsaWMgdm9pZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsKKy0J CXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7CistCQlwdWJsaWMgaW50 IGdldF9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X21vbml0 b3JfZm9yX3BvcyAoaW50IHgsIGludCB5KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxh eSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfbW9uaXRvcl9n ZW9tZXRyeSAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGJvb2wgZ2V0X21vbml0b3JfaW5fZnVs bHNjcmVlbiAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9pbmRleF9m b3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9y X25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5TY3JlZW5EaXJlY3Rpb24g ZGlyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgaW50IGdl dF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgaW50IGdldF9wcmltYXJ5X21vbml0b3IgKCk7 CistCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworLQkJcHVibGljIHZvaWQgZ2V0 X3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB1bm93bmVk IE1ldGEuV29ya3NwYWNlPyBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworLQkJ cHVibGljIHVub3duZWQgR0xpYi5MaXN0PE1ldGEuV29ya3NwYWNlPiBnZXRfd29ya3NwYWNlcyAo KTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeHJvb3QgKCk7CistCQlwdWJsaWMgdm9pZCBvdmVy cmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLlNjcmVlbkNvcm5lciBzdGFydGluZ19jb3JuZXIs IGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKy0JCXB1 YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJ cHVibGljIHZvaWQgc2V0X2N1cnNvciAoTWV0YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1YmxpYyBp bnQgbl93b3Jrc3BhY2VzIHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNj cmVlbl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQg KCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzdGFja2VkICgpOworLQkJcHVibGljIHNpZ25h bCB2b2lkIHN0YXJ0dXBfc2VxdWVuY2VfY2hhbmdlZCAodm9pZCogb2JqZWN0KTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldp bmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2xlZnRfbW9uaXRvciAoaW50 IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVh c19jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9hZGRlZCAoaW50 IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3JlbW92ZWQgKGludCBv YmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9zd2l0Y2hlZCAoaW50IG9i amVjdCwgaW50IHAwLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBwMSk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgcmVmX2Z1bmN0 aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZ2V0X3R5cGUg KCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJlZiIpXQorLQlbQ29tcGFjdF0K Ky0JcHVibGljIGNsYXNzIFNoYWRvdyB7CistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChpbnQg d2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWln aHQsIENhaXJvLlJlY3RhbmdsZUludCBib3VuZHMpOworLQkJcHVibGljIHZvaWQgcGFpbnQgKGlu dCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hl aWdodCwgdWludDggb3BhY2l0eSwgQ2Fpcm8uUmVnaW9uPyBjbGlwLCBib29sIGNsaXBfc3RyaWN0 bHkpOworLQkJcHVibGljIE1ldGEuU2hhZG93IEByZWYgKCk7CistCQlwdWJsaWMgdm9pZCB1bnJl ZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIFNoYWRvd0ZhY3RvcnkgOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgU2hhZG93RmFj dG9yeSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlNoYWRvd0ZhY3RvcnkgZ2V0 X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFtcyAoc3Ry aW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgZ2V0 X3NoYWRvdyAoTWV0YS5XaW5kb3dTaGFwZSBzaGFwZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBz dHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wYXJh bXMgKHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQsIE1ldGEuU2hhZG93UGFyYW1zIEBw YXJhbXMpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9p ZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBT aGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFu aW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNoYXBl ZFRleHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJl Y3RhbmdsZUludCBjbGlwKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4 dHVyZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVhdGVf bWlwbWFwcyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1cmUg bWFza190ZXh0dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25lZCBD YWlyby5SZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJlYSAo aW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS90aGVtZS5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUgeworLQkJ cHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuVGhlbWUgZ2V0X2RlZmF1 bHQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlRoZW1lIEBuZXcgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCB0eXBlX2lkID0gIm1ldGFfd2lu ZG93X2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3cgOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgV2luZG93ICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiBj dXJyZW50X3RpbWUpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF93b3Jrc3BhY2UgKHVp bnQzMiBjdXJyZW50X3RpbWUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMg Ym9vbCBhbGxvd3NfbW92ZSAoKTsKKy0JCXB1YmxpYyBib29sIGFsbG93c19yZXNpemUgKCk7Cist CQlwdWJsaWMgdm9pZCBiZWdpbl9ncmFiX29wIChNZXRhLkdyYWJPcCBvcCwgYm9vbCBmcmFtZV9h Y3Rpb24sIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgY2FuX2Nsb3NlICgpOwor LQkJcHVibGljIGJvb2wgY2FuX21heGltaXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX21pbmlt aXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX3NoYWRlICgpOworLQkJcHVibGljIHZvaWQgY2hh bmdlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lk IGNoYW5nZV93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBzcGFjZV9pbmRleCwgYm9vbCBhcHBlbmQp OworLQkJcHVibGljIHZvaWQgY2hlY2tfYWxpdmUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0X3RvX2ZyYW1lX3JlY3QgKE1ldGEuUmVjdGFu Z2xlIGNsaWVudF9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIGNvbXB1dGVfZ3JvdXAgKCk7CistCQlw dWJsaWMgdm9pZCBAZGVsZXRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVk IE1ldGEuV2luZG93IGZpbmRfcm9vdF9hbmNlc3RvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3Vz ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfYW5jZXN0b3IgKE1l dGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX3RyYW5z aWVudCAoTWV0YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rh bmdsZSBmcmFtZV9yZWN0X3RvX2NsaWVudF9yZWN0IChNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0 KTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoX3BvcyA9IDAuMSwgYXJyYXlfbGVuZ3RoX3R5cGUg PSAiZ3NpemUiKV0KKy0JCXB1YmxpYyBpbnRbXSBnZXRfYWxsX21vbml0b3JzICgpOworLQkJcHVi bGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9i amVjdCBnZXRfY29tcG9zaXRvcl9wcml2YXRlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9kZXNjcmlwdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRf ZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRnJhbWUgZ2V0X2ZyYW1lICgpOwor LQkJcHVibGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uPyBnZXRfZnJhbWVfYm91bmRzICgpOworLQkJ cHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9mcmFtZV9yZWN0ICgpOworLQkJcHVibGljIE1ldGEu RnJhbWVUeXBlIGdldF9mcmFtZV90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Hcm91 cCBnZXRfZ3JvdXAgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBfbWVu dV9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcGxp Y2F0aW9uX2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRp b25fb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19tZW51 YmFyX29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdGhl bWVfdmFyaWFudCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1ZV9i dXNfbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19vYmpl Y3RfcGF0aCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0YS5S ZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgTWV0YS5TdGFja0xheWVyIGdldF9sYXllciAoKTsK Ky0JCXB1YmxpYyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0X21heGltaXplZCAoKTsKKy0JCXB1Ymxp YyBpbnQgZ2V0X21vbml0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X211dHRl cl9oaW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3BpZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfcm9sZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVuIGdldF9z Y3JlZW4gKCk7CistCQlwdWJsaWMgdWludCBnZXRfc3RhYmxlX3NlcXVlbmNlICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgpOworLQkJcHVibGljIHVub3duZWQg TWV0YS5XaW5kb3c/IGdldF90aWxlX21hdGNoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF90aXRsZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90cmFuc2ll bnRfZm9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfdXNlcl90aW1lICgpOworLQkJcHVibGlj IE1ldGEuV2luZG93VHlwZSBnZXRfd2luZG93X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X3dtX2NsYXNzICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9j bGFzc19pbnN0YW5jZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVh X2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVh X2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19h cmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94 d2luZG93ICgpOworLQkJcHVibGljIHZvaWQgZ3JvdXBfbGVhZGVyX2NoYW5nZWQgKCk7CistCQlw dWJsaWMgYm9vbCBoYXNfZm9jdXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hYm92ZSAoKTsKKy0J CXB1YmxpYyBib29sIGlzX2Fsd2F5c19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX2FuY2VzdG9yX29mX3RyYW5zaWVudCAoTWV0YS5XaW5kb3cgdHJhbnNpZW50KTsKKy0J CXB1YmxpYyBib29sIGlzX2F0dGFjaGVkX2RpYWxvZyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Z1 bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19oaWRkZW4gKCk7CistCQlwdWJsaWMgYm9v bCBpc19tb25pdG9yX3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNfb25fYWxsX3dvcmtzcGFj ZXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vbl9wcmltYXJ5X21vbml0b3IgKCk7CistCQlwdWJs aWMgYm9vbCBpc19vdmVycmlkZV9yZWRpcmVjdCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JlbW90 ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NjcmVlbl9zaXplZCAoKTsKKy0JCXB1YmxpYyBib29s IGlzX3NoYWRlZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NraXBfdGFza2JhciAoKTsKKy0JCXB1 YmxpYyB2b2lkIGtpbGwgKCk7CistCQlwdWJsaWMgYm9vbCBsb2NhdGVkX29uX3dvcmtzcGFjZSAo TWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGxvd2VyICgpOworLQkJ cHVibGljIHZvaWQgbWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfZnVsbHNjcmVl biAoKTsKKy0JCXB1YmxpYyB2b2lkIG1heGltaXplIChNZXRhLk1heGltaXplRmxhZ3MgZGlyZWN0 aW9ucyk7CistCQlwdWJsaWMgdm9pZCBtaW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVf ZnJhbWUgKGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udyk7CistCQlw dWJsaWMgdm9pZCBtb3ZlX3Jlc2l6ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253 LCBpbnQgcm9vdF95X253LCBpbnQgdywgaW50IGgpOworLQkJcHVibGljIHZvaWQgbW92ZV90b19t b25pdG9yIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9pZCByYWlzZSAoKTsKKy0JCXB1Ymxp YyBib29sIHJlcXVlc3RlZF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIHJl cXVlc3RlZF9kb250X2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIHZvaWQgc2V0X2Nv bXBvc2l0b3JfcHJpdmF0ZSAoR0xpYi5PYmplY3QgcHJpdik7CistCQlwdWJsaWMgdm9pZCBzZXRf ZGVtYW5kc19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaWNvbl9nZW9tZXRyeSAo TWV0YS5SZWN0YW5nbGU/IHJlY3QpOworLQkJcHVibGljIHZvaWQgc2hhZGUgKHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIHZvaWQgc2hvdmVfdGl0bGViYXJfb25zY3JlZW4gKCk7CistCQlw dWJsaWMgYm9vbCBzaG93aW5nX29uX2l0c193b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBz aHV0ZG93bl9ncm91cCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN0aWNrICgpOworLQkJcHVibGljIGJv b2wgdGl0bGViYXJfaXNfb25zY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfYWJvdmUg KCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lk IHVubWF4aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2 b2lkIHVubWluaW1pemUgKCk7CistCQlwdWJsaWMgdm9pZCB1bnNldF9kZW1hbmRzX2F0dGVudGlv biAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIHZvaWQgdW5zdGljayAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJv b2wgYWJvdmUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wg YXBwZWFyc19mb2N1c2VkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBib29sIGRlY29yYXRlZCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgYm9vbCBkZW1hbmRzX2F0dGVudGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCBmdWxsc2NyZWVuIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0 a19hcHBfbWVudV9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBw bGljYXRpb25faWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9uX29i amVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19tZW51YmFyX29iamVjdF9w YXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a191bmlxdWVfYnVzX25hbWUgeyBnZXQ7 IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3dpbmRvd19vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBpY29uIHsgb3duZWQg Z2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGltaXplZF9o b3Jpem9udGFsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJv b2wgbWF4aW1pemVkX3ZlcnRpY2FsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIENhaXJvLlN1cmZhY2UgbWluaV9pY29uIHsgb3duZWQgZ2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1pbmltaXplZCB7IGdldDsgfQorLQkJcHVi bGljIHN0cmluZyBtdXR0ZXJfaGludHMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGJvb2wgb25fYWxsX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVzaXplYWJsZSB7IGdldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBza2lwX3Rhc2tiYXIgeyBnZXQ7IH0KKy0JCXB1Ymxp YyBzdHJpbmcgdGl0bGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGJvb2wgdXJnZW50IHsgZ2V0OyB9CistCQlwdWJsaWMgdWludCB1c2VyX3RpbWUgeyBnZXQ7IH0K Ky0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgd2luZG93X3R5cGUgeyBnZXQ7IH0KKy0JCXB1Ymxp YyBzdHJpbmcgd21fY2xhc3MgeyBnZXQ7IH0KKy0JCVtDQ29kZSAoY25hbWUgPSAiZm9jdXMiKV0K Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBmb2N1c2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHBvc2l0aW9uX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmFpc2VkICgpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCB1bm1hbmFnZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2NoYW5n ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfYWN0b3JfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVu dG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlw dGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJ cHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cg Z2V0X21ldGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRf dGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeF93aW5kb3cgKCk7CistCQlwdWJs aWMgYm9vbCBpc19kZXN0cm95ZWQgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0 OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YV93aW5kb3dfc2hhcGUuaCIsIHJlZl9mdW5j dGlvbiA9ICJtZXRhX3dpbmRvd19zaGFwZV9yZWYiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3No YXBlX2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfdW5y ZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBXaW5kb3dTaGFwZSB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgV2luZG93U2hh cGUgKENhaXJvLlJlZ2lvbiByZWdpb24pOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuV2lu ZG93U2hhcGUgc2hhcGVfYik7CistCQlwdWJsaWMgdm9pZCBnZXRfYm9yZGVycyAoaW50IGJvcmRl cl90b3AsIGludCBib3JkZXJfcmlnaHQsIGludCBib3JkZXJfYm90dG9tLCBpbnQgYm9yZGVyX2xl ZnQpOworLQkJcHVibGljIHVpbnQgaGFzaCAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1NoYXBl IEByZWYgKCk7CistCQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIHRvX3JlZ2lvbiAoaW50IGNlbnRlcl93 aWR0aCwgaW50IGNlbnRlcl9oZWlnaHQpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lk ID0gIm1ldGFfd29ya3NwYWNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jrc3Bh Y2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgV29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZh dGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF9mb2N1 cyAoTWV0YS5XaW5kb3cgZm9jdXNfdGhpcywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg dW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfbmVpZ2hib3IgKE1ldGEuTW90aW9uRGlyZWN0aW9u IGRpcmVjdGlvbik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNjcmVlbiBnZXRfc2NyZWVuICgp OworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfYWxsX21vbml0b3JzICgp OworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0b3IgKGlu dCB3aGljaF9tb25pdG9yKTsKKy0JCXB1YmxpYyBpbnQgaW5kZXggKCk7CistCQlwdWJsaWMgR0xp Yi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0PiBzdHJ1dHMpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgd29ya3NwYWNlX2luZGV4IHsgZ2V0 OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2FkZGVkIChNZXRhLldpbmRvdyBvYmpl Y3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19yZW1vdmVkIChNZXRhLldpbmRvdyBv YmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgQnV0dG9uTGF5b3V0IHsK Ky0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9 IHRydWUpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbltdIGxlZnRfYnV0dG9u czsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRl ZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgYm9vbFtdIGxlZnRfYnV0dG9uc19oYXNfc3BhY2Vy OworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVk ID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uW10gcmlnaHRfYnV0 dG9uczsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWlu YXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgYm9vbFtdIHJpZ2h0X2J1dHRvbnNfaGFzX3Nw YWNlcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CistCQlwdWJsaWMg TWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBlOworLQkJ cHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBzdHJ1Y3QgRnJhbWVCb3JkZXJzIHsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHZpc2libGU7Cist CQlwdWJsaWMgR3RrLkJvcmRlciBpbnZpc2libGU7CistCQlwdWJsaWMgR3RrLkJvcmRlciB0b3Rh bDsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVi bGljIHN0cnVjdCBQbHVnaW5JbmZvIHsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworLQkJ cHVibGljIHdlYWsgc3RyaW5nIHZlcnNpb247CistCQlwdWJsaWMgd2VhayBzdHJpbmcgYXV0aG9y OworLQkJcHVibGljIHdlYWsgc3RyaW5nIGxpY2Vuc2U7CistCQlwdWJsaWMgd2VhayBzdHJpbmcg ZGVzY3JpcHRpb247CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBsdWdp blZlcnNpb24geworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9tYWpvcjsKKy0JCXB1YmxpYyB1aW50 IHZlcnNpb25fbWlub3I7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pY3JvOworLQkJcHVibGlj IHVpbnQgdmVyc2lvbl9hcGk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFJlY3Rh bmdsZSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50 IHdpZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7CistCQlwdWJsaWMgaW50IGFyZWEgKCk7Cist CQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsK Ky0JCXB1YmxpYyBib29sIGNvdWxkX2ZpdF9yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0 KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLlJlY3RhbmdsZSBzcmMyKTsKKy0JCXB1Ymxp YyBib29sIGhvcml6X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBi b29sIGludGVyc2VjdCAoTWV0YS5SZWN0YW5nbGUgc3JjMiwgb3V0IE1ldGEuUmVjdGFuZ2xlIGRl c3QpOworLQkJcHVibGljIGJvb2wgb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJ cHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlw dWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTaGFkb3dQYXJhbXMgeworLQkJ cHVibGljIGludCByYWRpdXM7CistCQlwdWJsaWMgaW50IHRvcF9mYWRlOworLQkJcHVibGljIGlu dCB4X29mZnNldDsKKy0JCXB1YmxpYyBpbnQgeV9vZmZzZXQ7CistCQlwdWJsaWMgdWludDggb3Bh Y2l0eTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgU3RydXQgeworLQkJcHVibGlj IE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CistCQlwdWJsaWMgTWV0YS5TaWRlIHNpZGU7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwgY3ByZWZpeCA9ICJN RVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlv bl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEJhcnJpZXJEaXJlY3Rp b24geworLQkJUE9TSVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ksCistCQlORUdBVElWRV9YLAorLQkJ TkVHQVRJVkVfWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgY3ByZWZpeCA9ICJNRVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFf YnV0dG9uX2Z1bmN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0 aW9uIHsKKy0JCU1FTlUsCistCQlNSU5JTUlaRSwKKy0JCU1BWElNSVpFLAorLQkJQ0xPU0UsCist CQlTSEFERSwKKy0JCUFCT1ZFLAorLQkJU1RJQ0ssCistCQlVTlNIQURFLAorLQkJVU5BQk9WRSwK Ky0JCVVOU1RJQ0ssCistCQlBUFBNRU5VLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9DT01QX0VG RkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGVudW0gQ29tcEVmZmVjdCB7CistCQlDUkVBVEUsCistCQlVTk1JTklNSVpFLAorLQkJREVT VFJPWSwKKy0JCU1JTklNSVpFLAorLQkJTk9ORQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBlX2lk ID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEN1cnNvciB7Cist CQlOT05FLAorLQkJREVGQVVMVCwKKy0JCU5PUlRIX1JFU0laRSwKKy0JCVNPVVRIX1JFU0laRSwK Ky0JCVdFU1RfUkVTSVpFLAorLQkJRUFTVF9SRVNJWkUsCistCQlTRV9SRVNJWkUsCistCQlTV19S RVNJWkUsCistCQlORV9SRVNJWkUsCistCQlOV19SRVNJWkUsCistCQlNT1ZFX09SX1JFU0laRV9X SU5ET1csCistCQlCVVNZLAorLQkJRE5EX0lOX0RSQUcsCistCQlETkRfTU9WRSwKKy0JCURORF9D T1BZLAorLQkJRE5EX1VOU1VQUE9SVEVEX1RBUkdFVCwKKy0JCVBPSU5USU5HX0hBTkQsCistCQlD Uk9TU0hBSVIsCistCQlJQkVBTSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9 ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVu dW0gRGVidWdUb3BpYyB7CistCQlWRVJCT1NFLAorLQkJRk9DVVMsCistCQlXT1JLQVJFQSwKKy0J CVNUQUNLLAorLQkJVEhFTUVTLAorLQkJU00sCistCQlFVkVOVFMsCistCQlXSU5ET1dfU1RBVEUs CistCQlXSU5ET1dfT1BTLAorLQkJR0VPTUVUUlksCistCQlQTEFDRU1FTlQsCistCQlQSU5HLAor LQkJWElORVJBTUEsCistCQlLRVlCSU5ESU5HUywKKy0JCVNZTkMsCistCQlFUlJPUlMsCistCQlT VEFSVFVQLAorLQkJUFJFRlMsCistCQlHUk9VUFMsCistCQlSRVNJWklORywKKy0JCVNIQVBFUywK Ky0JCUNPTVBPU0lUT1IsCistCQlFREdFX1JFU0lTVEFOQ0UsCistCQlEQlVTCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFf RElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0J W0ZsYWdzXQorLQlwdWJsaWMgZW51bSBEaXJlY3Rpb24geworLQkJTEVGVCwKKy0JCVJJR0hULAor LQkJVE9QLAorLQkJQk9UVE9NLAorLQkJVVAsCistCQlET1dOLAorLQkJSE9SSVpPTlRBTCwKKy0J CVZFUlRJQ0FMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMu aCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRWRnZVR5cGUgeworLQkJV0lORE9XLAorLQkJTU9O SVRPUiwKKy0JCVNDUkVFTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9FWElUXyIsIHR5cGVfaWQgPSAibWV0YV9leGl0X2Nv ZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRXhpdENvZGUgeworLQkJU1VDQ0VTUywK Ky0JCUVSUk9SCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9u LmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdz X2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRnJhbWVGbGFncyB7Cist CQlBTExPV1NfREVMRVRFLAorLQkJQUxMT1dTX01FTlUsCistCQlBTExPV1NfQVBQTUVOVSwKKy0J CUFMTE9XU19NSU5JTUlaRSwKKy0JCUFMTE9XU19NQVhJTUlaRSwKKy0JCUFMTE9XU19WRVJUSUNB TF9SRVNJWkUsCistCQlBTExPV1NfSE9SSVpPTlRBTF9SRVNJWkUsCistCQlIQVNfRk9DVVMsCist CQlTSEFERUQsCistCQlTVFVDSywKKy0JCU1BWElNSVpFRCwKKy0JCUFMTE9XU19TSEFERSwKKy0J CUFMTE9XU19NT1ZFLAorLQkJRlVMTFNDUkVFTiwKKy0JCUlTX0ZMQVNISU5HLAorLQkJQUJPVkUs CistCQlUSUxFRF9MRUZULAorLQkJVElMRURfUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV9UWVBFXyIs IHR5cGVfaWQgPSAibWV0YV9mcmFtZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVt IEZyYW1lVHlwZSB7CistCQlOT1JNQUwsCistCQlESUFMT0csCistCQlNT0RBTF9ESUFMT0csCist CQlVVElMSVRZLAorLQkJTUVOVSwKKy0JCUJPUkRFUiwKKy0JCUFUVEFDSEVELAorLQkJTEFTVDsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1ldGEuRnJhbWVUeXBlIHR5cGUpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZp eCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gR3JhYk9wIHsKKy0JCU5PTkUsCistCQlDT01QT1NJVE9SLAorLQkJ V0FZTEFORF9QT1BVUCwKKy0JCVdJTkRPV19CQVNFLAorLQkJRlJBTUVfQlVUVE9OLAorLQkJTU9W SU5HLAorLQkJUkVTSVpJTkdfTlcsCistCQlSRVNJWklOR19OLAorLQkJUkVTSVpJTkdfTkUsCist CQlSRVNJWklOR19FLAorLQkJUkVTSVpJTkdfU1csCistCQlSRVNJWklOR19TLAorLQkJUkVTSVpJ TkdfU0UsCistCQlSRVNJWklOR19XLAorLQkJS0VZQk9BUkRfTU9WSU5HLAorLQkJS0VZQk9BUkRf UkVTSVpJTkdfVU5LTk9XTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05XLAorLQkJS0VZQk9BUkRf UkVTSVpJTkdfTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05FLAorLQkJS0VZQk9BUkRfUkVTSVpJ TkdfRSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NXLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfUywK Ky0JCUtFWUJPQVJEX1JFU0laSU5HX1NFLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfVworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1F VEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlv bl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsKKy0JCU5P TkUsCistCQlXT1JLU1BBQ0VfMSwKKy0JCVdPUktTUEFDRV8yLAorLQkJV09SS1NQQUNFXzMsCist CQlXT1JLU1BBQ0VfNCwKKy0JCVdPUktTUEFDRV81LAorLQkJV09SS1NQQUNFXzYsCistCQlXT1JL U1BBQ0VfNywKKy0JCVdPUktTUEFDRV84LAorLQkJV09SS1NQQUNFXzksCistCQlXT1JLU1BBQ0Vf MTAsCistCQlXT1JLU1BBQ0VfMTEsCistCQlXT1JLU1BBQ0VfMTIsCistCQlXT1JLU1BBQ0VfTEVG VCwKKy0JCVdPUktTUEFDRV9SSUdIVCwKKy0JCVdPUktTUEFDRV9VUCwKKy0JCVdPUktTUEFDRV9E T1dOLAorLQkJV09SS1NQQUNFX0xBU1QsCistCQlTV0lUQ0hfQVBQTElDQVRJT05TLAorLQkJU1dJ VENIX0FQUExJQ0FUSU9OU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9HUk9VUCwKKy0JCVNXSVRDSF9H Uk9VUF9CQUNLV0FSRCwKKy0JCVNXSVRDSF9XSU5ET1dTLAorLQkJU1dJVENIX1dJTkRPV1NfQkFD S1dBUkQsCistCQlTV0lUQ0hfUEFORUxTLAorLQkJU1dJVENIX1BBTkVMU19CQUNLV0FSRCwKKy0J CUNZQ0xFX0dST1VQLAorLQkJQ1lDTEVfR1JPVVBfQkFDS1dBUkQsCistCQlDWUNMRV9XSU5ET1dT LAorLQkJQ1lDTEVfV0lORE9XU19CQUNLV0FSRCwKKy0JCUNZQ0xFX1BBTkVMUywKKy0JCUNZQ0xF X1BBTkVMU19CQUNLV0FSRCwKKy0JCVNIT1dfREVTS1RPUCwKKy0JCVBBTkVMX01BSU5fTUVOVSwK Ky0JCVBBTkVMX1JVTl9ESUFMT0csCistCQlUT0dHTEVfUkVDT1JESU5HLAorLQkJU0VUX1NQRVdf TUFSSywKKy0JCUFDVElWQVRFX1dJTkRPV19NRU5VLAorLQkJVE9HR0xFX0ZVTExTQ1JFRU4sCist CQlUT0dHTEVfTUFYSU1JWkVELAorLQkJVE9HR0xFX1RJTEVEX0xFRlQsCistCQlUT0dHTEVfVElM RURfUklHSFQsCistCQlUT0dHTEVfQUJPVkUsCistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1JWkUs CistCQlUT0dHTEVfU0hBREVELAorLQkJTUlOSU1JWkUsCistCQlDTE9TRSwKKy0JCUJFR0lOX01P VkUsCistCQlCRUdJTl9SRVNJWkUsCistCQlUT0dHTEVfT05fQUxMX1dPUktTUEFDRVMsCistCQlN T1ZFX1RPX1dPUktTUEFDRV8xLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMiwKKy0JCU1PVkVfVE9f V09SS1NQQUNFXzMsCistCQlNT1ZFX1RPX1dPUktTUEFDRV80LAorLQkJTU9WRV9UT19XT1JLU1BB Q0VfNSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzYsCistCQlNT1ZFX1RPX1dPUktTUEFDRV83LAor LQkJTU9WRV9UT19XT1JLU1BBQ0VfOCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzksCistCQlNT1ZF X1RPX1dPUktTUEFDRV8xMCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzExLAorLQkJTU9WRV9UT19X T1JLU1BBQ0VfMTIsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MRUZULAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfUklHSFQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9VUCwKKy0JCU1PVkVfVE9fV09SS1NQ QUNFX0RPV04sCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MQVNULAorLQkJTU9WRV9UT19NT05JVE9S X0xFRlQsCistCQlNT1ZFX1RPX01PTklUT1JfUklHSFQsCistCQlNT1ZFX1RPX01PTklUT1JfVVAs CistCQlNT1ZFX1RPX01PTklUT1JfRE9XTiwKKy0JCVJBSVNFX09SX0xPV0VSLAorLQkJUkFJU0Us CistCQlMT1dFUiwKKy0JCU1BWElNSVpFX1ZFUlRJQ0FMTFksCistCQlNQVhJTUlaRV9IT1JJWk9O VEFMTFksCistCQlNT1ZFX1RPX0NPUk5FUl9OVywKKy0JCU1PVkVfVE9fQ09STkVSX05FLAorLQkJ TU9WRV9UT19DT1JORVJfU1csCistCQlNT1ZFX1RPX0NPUk5FUl9TRSwKKy0JCU1PVkVfVE9fU0lE RV9OLAorLQkJTU9WRV9UT19TSURFX1MsCistCQlNT1ZFX1RPX1NJREVfRSwKKy0JCU1PVkVfVE9f U0lERV9XLAorLQkJTU9WRV9UT19DRU5URVIsCistCQlPVkVSTEFZX0tFWSwKKy0JCUlTT19ORVhU X0dST1VQLAorLQkJQUxXQVlTX09OX1RPUCwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5H XyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlb RmxhZ3NdCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CistCQlOT05FLAorLQkJUEVS X1dJTkRPVywKKy0JCUJVSUxUSU4sCistCQlJU19SRVZFUlNFRAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0 eXBlX2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBM YXRlclR5cGUgeworLQkJUkVTSVpFLAorLQkJQ0FMQ19TSE9XSU5HLAorLQkJQ0hFQ0tfRlVMTFND UkVFTiwKKy0JCVNZTkNfU1RBQ0ssCistCQlCRUZPUkVfUkVEUkFXLAorLQkJSURMRQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVU QV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CistCQlMVFIsCist CQlSVEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIs IGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxh Z3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNYXhpbWl6ZUZsYWdz IHsKKy0JCUhPUklaT05UQUwsCistCQlWRVJUSUNBTCwKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCist CVtGbGFnc10KKy0JcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKy0JCVBPSU5URVJfQUxSRUFE WV9HUkFCQkVELAorLQkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9O XyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIE1vdGlvbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAor LQkJUklHSFQsCistCQlVUF9MRUZULAorLQkJVVBfUklHSFQsCistCQlET1dOX0xFRlQsCistCQlE T1dOX1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNwcmVmaXggPSAiTUVUQV9QUkVGXyIsIHR5cGVfaWQgPSAibWV0YV9wcmVmZXJlbmNlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFByZWZlcmVuY2UgeworLQkJTU9VU0VfQlVUVE9O X01PRFMsCistCQlGT0NVU19NT0RFLAorLQkJRk9DVVNfTkVXX1dJTkRPV1MsCistCQlBVFRBQ0hf TU9EQUxfRElBTE9HUywKKy0JCVJBSVNFX09OX0NMSUNLLAorLQkJQUNUSU9OX0RPVUJMRV9DTElD S19USVRMRUJBUiwKKy0JCUFDVElPTl9NSURETEVfQ0xJQ0tfVElUTEVCQVIsCistCQlBQ1RJT05f UklHSFRfQ0xJQ0tfVElUTEVCQVIsCistCQlBVVRPX1JBSVNFLAorLQkJQVVUT19SQUlTRV9ERUxB WSwKKy0JCUZPQ1VTX0NIQU5HRV9PTl9QT0lOVEVSX1JFU1QsCistCQlUSVRMRUJBUl9GT05ULAor LQkJTlVNX1dPUktTUEFDRVMsCistCQlEWU5BTUlDX1dPUktTUEFDRVMsCistCQlLRVlCSU5ESU5H UywKKy0JCURJU0FCTEVfV09SS0FST1VORFMsCistCQlCVVRUT05fTEFZT1VULAorLQkJV09SS1NQ QUNFX05BTUVTLAorLQkJVklTVUFMX0JFTEwsCistCQlBVURJQkxFX0JFTEwsCistCQlWSVNVQUxf QkVMTF9UWVBFLAorLQkJR05PTUVfQUNDRVNTSUJJTElUWSwKKy0JCUdOT01FX0FOSU1BVElPTlMs CistCQlDVVJTT1JfVEhFTUUsCistCQlDVVJTT1JfU0laRSwKKy0JCVJFU0laRV9XSVRIX1JJR0hU X0JVVFRPTiwKKy0JCUVER0VfVElMSU5HLAorLQkJRk9SQ0VfRlVMTFNDUkVFTiwKKy0JCVdPUktT UEFDRVNfT05MWV9PTl9QUklNQVJZLAorLQkJRFJBR0dBQkxFX0JPUkRFUl9XSURUSCwKKy0JCUFV VE9fTUFYSU1JWkUsCistCQlDRU5URVJfTkVXX1dJTkRPV1MsCistCQlEUkFHX1RIUkVTSE9MRDsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9zY3JlZW4uaCIsIGNwcmVm aXggPSAiTUVUQV9TQ1JFRU5fIiwgdHlwZV9pZCA9ICJtZXRhX3NjcmVlbl9jb3JuZXJfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2NyZWVuQ29ybmVyIHsKKy0JCVRPUExFRlQsCistCQlU T1BSSUdIVCwKKy0JCUJPVFRPTUxFRlQsCistCQlCT1RUT01SSUdIVAorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtZW51bS10eXBlcy5oIiwgY3ByZWZpeCA9ICJN RVRBX1NDUkVFTl8iLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVuX2RpcmVjdGlvbl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBTY3JlZW5EaXJlY3Rpb24geworLQkJVVAsCistCQlET1dOLAor LQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfU0hBRE9XX01PREVfIiwgdHlw ZV9pZCA9ICJtZXRhX3NoYWRvd19tb2RlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNo YWRvd01vZGUgeworLQkJQVVUTywKKy0JCUZPUkNFRF9PRkYsCistCQlGT1JDRURfT04KKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAi TUVUQV9TSURFXyIsIHR5cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIFNpZGUgeworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVzLmgi LCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRhX3NpemVfY2hh bmdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpemVDaGFuZ2UgeworLQkJTUFYSU1J WkUsCistCQlVTk1BWElNSVpFLAorLQkJRlVMTFNDUkVFTiwKKy0JCVVORlVMTFNDUkVFTgorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBTdGFja0xheWVyIHsKKy0JCURFU0tUT1AsCistCQlCT1RUT00sCist CQlOT1JNQUwsCistCQlUT1AsCistCQlET0NLLAorLQkJRlVMTFNDUkVFTiwKKy0JCUZPQ1VTRURf V0lORE9XLAorLQkJT1ZFUlJJREVfUkVESVJFQ1QsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9M SVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBUYWJMaXN0IHsKKy0JCU5PUk1BTCwKKy0JCURPQ0tTLAorLQkJR1JPVVAsCistCQlOT1JN QUxfQUxMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5o IiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190 eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKy0JCUlDT04s CistCQlJTlNUQU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0 dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gVmly dHVhbE1vZGlmaWVyIHsKKy0JCVNISUZUX01BU0ssCistCQlDT05UUk9MX01BU0ssCistCQlBTFRf TUFTSywKKy0JCU1FVEFfTUFTSywKKy0JCVNVUEVSX01BU0ssCistCQlIWVBFUl9NQVNLLAorLQkJ TU9EMl9NQVNLLAorLQkJTU9EM19NQVNLLAorLQkJTU9ENF9NQVNLLAorLQkJTU9ENV9NQVNLCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4 ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfY2xp ZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93Q2xpZW50VHlwZSB7 CistCQlXQVlMQU5ELAorLQkJWDExCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9 ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2lu ZG93TWVudVR5cGUgeworLQkJV00sCistCQlBUFAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9p ZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRv d1R5cGUgeworLQkJTk9STUFMLAorLQkJREVTS1RPUCwKKy0JCURPQ0ssCistCQlESUFMT0csCist CQlNT0RBTF9ESUFMT0csCistCQlUT09MQkFSLAorLQkJTUVOVSwKKy0JCVVUSUxJVFksCistCQlT UExBU0hTQ1JFRU4sCistCQlEUk9QRE9XTl9NRU5VLAorLQkJUE9QVVBfTUVOVSwKKy0JCVRPT0xU SVAsCistCQlOT1RJRklDQVRJT04sCistCQlDT01CTywKKy0JCURORCwKKy0JCU9WRVJSSURFX09U SEVSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIElk bGVNb25pdG9yV2F0Y2hGdW5jIChNZXRhLklkbGVNb25pdG9yIG1vbml0b3IsIHVpbnQgd2F0Y2hf aWQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgaW5zdGFu Y2VfcG9zID0gNS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgS2V5SGFuZGxlckZ1bmMgKE1l dGEuRGlzcGxheSBkaXNwbGF5LCBNZXRhLlNjcmVlbiBzY3JlZW4sIE1ldGEuV2luZG93PyB3aW5k b3csIENsdXR0ZXIuS2V5RXZlbnQ/IGV2ZW50LCBNZXRhLktleUJpbmRpbmcgYmluZGluZyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3Mg PSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBQcmVmc0NoYW5nZWRGdW5jIChNZXRhLlBy ZWZlcmVuY2UgcHJlZik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRv dy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgV2luZG93 Rm9yZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9JQ09OX05BTUUiKV0K Ky0JcHVibGljIGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05fTkFNRTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIp XQorLQlwdWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKy0JcHVi bGljIGNvbnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNv bnN0IGludCBNQUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0 IGludCBNSUNST19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0 IGludCBNSU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMgY29u c3QgaW50IE1JTklfSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCistCXB1YmxpYyBjb25z dCBpbnQgTUlOT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKy0JcHVibGljIGNv bnN0IGludCBQTFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQor LQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9SRURSQVc7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJF RlNfTk9USUZZIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRB X1BSSU9SSVRZX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVU QV9QUklPUklUWV9SRVNJWkUiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJWkU7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1F VEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVB TF9DT1JFX0tFWUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCistCXB1Ymxp YyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZhdGVf c2Vzc2lvbiAoKTsKKy0gCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9pbml0ICgpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV4aXQg KE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5PcHRpb25Db250ZXh0IGdl dF9vcHRpb25fY29udGV4dCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfcmVwbGFjZV9jdXJyZW50X3dtICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIGluaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfcmVzdGFydCAoKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBxdWl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vz c2lvbiAoKTsKKy0gCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nIG1lc3NhZ2UpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQg cnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdtX2tl eWJpbmRpbmdzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOworLX0K K2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYSB2YXBpL2xpYm11dHRlci0z LWN1c3RvbS52YWxhCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDI5ZTU5NzdkLi4w MDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEKKysrKyAvZGV2L251bGwK K0BAIC0xLDYgKzAsMCBAQAorLW5hbWVzcGFjZSBNZXRhIHsKKy0JcHVibGljIGFic3RyYWN0IGNs YXNzIE1vbml0b3JNYW5hZ2VyIDogTWV0YS5EQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uLCBHTGli LkRCdXNJbnRlcmZhY2UgeworLQkJLyogbm90IGV4cG9ydGVkICovCistCQlwdWJsaWMgc2lnbmFs IHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsKKy0JfQorLX0KK2RpZmYgLS1naXQgdmFwaS9saWJt dXR0ZXItMy5kZXBzIHZhcGkvbGlibXV0dGVyLTMuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCAxZjNjOTA3OS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci0zLmRlcHMK KysrKyAvZGV2L251bGwKK0BAIC0xLDkgKzAsMCBAQAorLWNhaXJvCistZ3NldHRpbmdzLWRlc2t0 b3Atc2NoZW1hcworLWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWd0aystMy4wCisteDExCist eGZpeGVzLTQuMAorLWNsdXR0ZXItMS4wCistY29nbC0xLjAKK2RpZmYgLS1naXQgdmFwaS9saWJt dXR0ZXItNC5kZXBzIHZhcGkvbGlibXV0dGVyLTQuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCAzNjdjMzViOS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci00LmRlcHMK KysrKyAvZGV2L251bGwKK0BAIC0xLDggKzAsMCBAQAorLWdkay0zLjAKKy1nZGstcGl4YnVmLTIu MAorLWdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMKKy1ndGsrLTMuMAorLW11dHRlci1jbHV0dGVy LTQKKy1tdXR0ZXItY29nbC00CisteDExCisteGZpeGVzLTQuMAorZGlmZiAtLWdpdCB2YXBpL2xp Ym11dHRlci00LnZhcGkgdmFwaS9saWJtdXR0ZXItNC52YXBpCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IGUwZDM1NmEwLi4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTQudmFw aQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTQyNSArMCwwIEBACistLyogbGlibXV0dGVyLTQudmFw aSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKy0KKy1bQ0NvZGUgKGNw cmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjQi LCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKy1uYW1lc3BhY2UgTWV0YSB7CistCW5h bWVzcGFjZSBDb21wb3NpdG9yIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9m b3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9m b3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlf c3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2Vf aW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFi bGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJs ZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUg PSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBmb2N1 c19zdGFnZV93aW5kb3cgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCB1aW50MzIgdGltZXN0YW1wKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi LCBjbmFtZSA9ICJtZXRhX2dldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9k aXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfc3RhZ2Vf Zm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdl dF9zdGFnZV9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1l dGFfZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChN ZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2FjdG9ycyIp XQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRf d2luZG93X2FjdG9ycyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0 X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENs dXR0ZXIuQWN0b3IgZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRp c3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNw bGF5LCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKy0JfQorLQluYW1lc3BhY2UgUHJlZnMgewor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1l dGFfcHJlZnNfYmVsbF9pc19hdWRpYmxlIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNf YmVsbF9pc19hdWRpYmxlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfY2hhbmdlX3dvcmtzcGFjZV9uYW1lIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfY2hhbmdlX3dvcmtzcGFjZV9uYW1lIChpbnQgaSwg c3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIi KV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2Fj dGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYWN0aW9uX21pZGRs ZV9jbGlja190aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFj dGlvbiBwcmVmc19nZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9hY3Rpb25fcmlnaHRfY2xpY2tfdGl0bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rl c2t0b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJh ciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIHByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF9hdXRvX21heGltaXplIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2F1dG9f bWF4aW1pemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYXV0b19yYWlzZSIpXQorLQkJcHVibGljIHN0YXRp YyBib29sIHByZWZzX2dldF9hdXRvX3JhaXNlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F1dG9fcmFpc2Vf ZGVsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9hdXRvX3JhaXNlX2RlbGF5 ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0 YS5CdXR0b25MYXlvdXQgcHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRf Y2VudGVyX25ld193aW5kb3dzIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2Nl bnRlcl9uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jb21wb3NpdGluZ19tYW5hZ2VyIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfY3Vyc29yX3NpemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZz X2dldF9jdXJzb3Jfc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jdXJzb3JfdGhlbWUiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgcHJlZnNfZ2V0X2N1cnNvcl90aGVtZSAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRh X3ByZWZzX2dldF9kaXNhYmxlX3dvcmthcm91bmRzIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wg cHJlZnNfZ2V0X2Rpc2FibGVfd29ya2Fyb3VuZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZHJhZ190aHJl c2hvbGQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9kcmFnX3RocmVzaG9sZCAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9 ICJtZXRhX3ByZWZzX2dldF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoIildCistCQlwdWJsaWMgc3Rh dGljIGludCBwcmVmc19nZXRfZHJhZ2dhYmxlX2JvcmRlcl93aWR0aCAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF9keW5hbWljX3dvcmtzcGFjZXMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRf ZHluYW1pY193b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2VkZ2VfdGlsaW5nIildCistCQlw dWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2VkZ2VfdGlsaW5nICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0 X2ZvY3VzX2NoYW5nZV9vbl9wb2ludGVyX3Jlc3QiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBw cmVmc19nZXRfZm9jdXNfY2hhbmdlX29uX3BvaW50ZXJfcmVzdCAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9m b2N1c19tb2RlIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTW9kZSBwcmVmc19n ZXRfZm9jdXNfbW9kZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9mb2N1c19uZXdfd2luZG93cyIpXQorLQkJ cHVibGljIHN0YXRpYyBHRGVza3RvcC5Gb2N1c05ld1dpbmRvd3MgcHJlZnNfZ2V0X2ZvY3VzX25l d193aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvcmNlX2Z1bGxzY3JlZW4iKV0KKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZm9yY2VfZnVsbHNjcmVlbiAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF9nbm9tZV9hY2Nlc3NpYmlsaXR5IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0 X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZ25vbWVfYW5pbWF0aW9ucyIp XQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9nbm9tZV9hbmltYXRpb25zICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1l dGFfcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEu S2V5QmluZGluZ0FjdGlvbiBwcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1l KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9 ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSIpXQorLQkJcHVibGljIHN0YXRpYyBp bnQgcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1 dHRvbl9tb2RzIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuVmlydHVhbE1vZGlmaWVyIHByZWZz X2dldF9tb3VzZV9idXR0b25fbW9kcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fcmVz aXplIildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfbW91c2VfYnV0dG9uX3Jlc2l6 ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX2dldF9udW1fd29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0YXRpYyBp bnQgcHJlZnNfZ2V0X251bV93b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3JhaXNlX29uX2Ns aWNrIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3JhaXNlX29uX2NsaWNrICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgYm9vbCBwcmVmc19nZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF90aXRsZWJhcl9mb250IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udERl c2NyaXB0aW9uIHByZWZzX2dldF90aXRsZWJhcl9mb250ICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Zpc3Vh bF9iZWxsIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsX3R5cGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rl c2t0b3AuVmlzdWFsQmVsbFR5cGUgcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsX3R5cGUgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9w cmVmc19nZXRfd29ya3NwYWNlX25hbWUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJp bmcgcHJlZnNfZ2V0X3dvcmtzcGFjZV9uYW1lIChpbnQgaSk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfd29ya3Nw YWNlc19vbmx5X29uX3ByaW1hcnkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRf d29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19pbml0IildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgcHJlZnNfaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9mb3JjZV9mdWxsc2Ny ZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4g KGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMgKGludCBuX3dvcmtzcGFjZXMp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfc2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBwcmVmc19zZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSAoYm9vbCB3aGV0aGVyKTsK Ky0JfQorLQluYW1lc3BhY2UgVXRpbCB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2FkZF92ZXJib3NlX3RvcGljIildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJt ZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGlj IHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5n X2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBj bmFtZSA9ICJtZXRhX2dfdXRmOF9zdHJuZHVwIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBn X3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVj dGlvbiIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxl X2RpcmVjdGlvbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90b19zdHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKGludCBncmF2aXR5KTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfZGVi dWdnaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9pc19z eW5jaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfc3luY2luZyAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfdmVy Ym9zZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3ZlcmJvc2UgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3dheWxh bmRfY29tcG9zaXRvciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3dheWxhbmRfY29tcG9z aXRvciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNu YW1lID0gIm1ldGFfbGF0ZXJfYWRkIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgbGF0ZXJfYWRk IChNZXRhLkxhdGVyVHlwZSB3aGVuLCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2xh dGVyX3JlbW92ZSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGxhdGVyX3JlbW92ZSAodWludCBs YXRlcl9pZCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBj bmFtZSA9ICJtZXRhX3BvcF9ub19tc2dfcHJlZml4IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg cG9wX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3B1c2hfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkIHB1c2hfbm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcmVjdCIpXQorLQkJcHVibGlj IHN0YXRpYyBNZXRhLlJlY3RhbmdsZT8gcmVjdCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGlu dCBoZWlnaHQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwg Y25hbWUgPSAibWV0YV9yZW1vdmVfdmVyYm9zZV90b3BpYyIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIHJlbW92ZV92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9zaG93 X2RpYWxvZyIpXQorLQkJcHVibGljIHN0YXRpYyBHTGliLlBpZCBzaG93X2RpYWxvZyAoc3RyaW5n IHR5cGUsIHN0cmluZyBtZXNzYWdlLCBzdHJpbmcgdGltZW91dCwgc3RyaW5nIGRpc3BsYXksIHN0 cmluZyBva190ZXh0LCBzdHJpbmcgY2FuY2VsX3RleHQsIHN0cmluZyBpY29uX25hbWUsIGludCB0 cmFuc2llbnRfZm9yLCBHTGliLlNMaXN0PHZvaWQqPiBjb2x1bW5zLCBHTGliLlNMaXN0PHZvaWQq PiBlbnRyaWVzKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNuYW1lID0gIm1ldGFfdW5zaWduZWRfbG9uZ19lcXVhbCIpXQorLQkJcHVibGljIHN0YXRpYyBp bnQgdW5zaWduZWRfbG9uZ19lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfdW5zaWduZWRf bG9uZ19oYXNoIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgdW5zaWduZWRfbG9uZ19oYXNoICh2 b2lkKiB2KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNu YW1lID0gIm1ldGFfeDExX2Vycm9yX3RyYXBfcG9wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg eDExX2Vycm9yX3RyYXBfcG9wIChNZXRhLlgxMURpc3BsYXkgeDExX2Rpc3BsYXkpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV94MTFf ZXJyb3JfdHJhcF9wb3Bfd2l0aF9yZXR1cm4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHgxMV9l cnJvcl90cmFwX3BvcF93aXRoX3JldHVybiAoTWV0YS5YMTFEaXNwbGF5IHgxMV9kaXNwbGF5KTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1l dGFfeDExX2Vycm9yX3RyYXBfcHVzaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHgxMV9lcnJv cl90cmFwX3B1c2ggKE1ldGEuWDExRGlzcGxheSB4MTFfZGlzcGxheSk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZW5kLmgiLCB0eXBlX2lkID0gIm1l dGFfYmFja2VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFja2Vu ZCA6IEdMaWIuT2JqZWN0LCBHTGliLkluaXRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZW5kICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZW5kLmgiLCBjbmFtZSA9ICJtZXRh X2dldF9iYWNrZW5kIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZW5kIGdl dF9iYWNrZW5kICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EbmQgZ2V0X2RuZCAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuUmVtb3RlQWNjZXNzQ29udHJvbGxlciBnZXRfcmVtb3RlX2Fj Y2Vzc19jb250cm9sbGVyICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRf c3RhZ2UgKCk7CistCQlwdWJsaWMgdm9pZCBsb2NrX2xheW91dF9ncm91cCAodWludCBpZHgpOwor LQkJcHVibGljIHZvaWQgc2V0X2tleW1hcCAoc3RyaW5nIGxheW91dHMsIHN0cmluZyB2YXJpYW50 cywgc3RyaW5nIG9wdGlvbnMpOworLQkJcHVibGljIHZvaWQgc2V0X251bWxvY2sgKGJvb2wgbnVt bG9ja19zdGF0ZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9i amVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9i amVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChib29s IG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kIChNZXRh LkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZp bGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUp OworLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0 eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dy b3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0 ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJ cHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFf YmFja2dyb3VuZF9hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3Vu ZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFi bGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQor LQkJcHVibGljIEJhY2tncm91bmRBY3RvciAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25p dG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFj a2dyb3VuZCk7CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKGJvb2wgZW5hYmxlZCwgaW50 IGhlaWdodCwgZG91YmxlIHRvbmVfc3RhcnQpOworLQkJcHVibGljIHZvaWQgc2V0X21vbml0b3Ig KGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVk LCBkb3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgYnJpZ2h0bmVz cyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGdy YWRpZW50IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGlu dCBncmFkaWVudF9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgZG91YmxlIGdyYWRpZW50X21heF9kYXJrbmVzcyB7IGdldDsgc2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsg b3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGludCBtb25pdG9yIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGJvb2wgdmlnbmV0dGUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgZG91YmxlIHZpZ25ldHRlX3NoYXJwbmVzcyB7IGdldDsgc2V0OyB9Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9ncm91cF9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEdyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxl bWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNj cmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5 cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIEJhY2tncm91bmRHcm91cCAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2dldF90eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3Vu ZEltYWdlICgpOworLQkJcHVibGljIGJvb2wgZ2V0X3N1Y2Nlc3MgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19sb2Fk ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbG9hZGVkICgpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIiwgdHlwZV9p ZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfY2FjaGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIEJhY2tncm91bmRJbWFnZUNhY2hlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tncm91bmRJ bWFnZUNhY2hlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQmFja2dyb3VuZElt YWdlQ2FjaGUgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5CYWNrZ3JvdW5kSW1hZ2Ug bG9hZCAoR0xpYi5GaWxlIGZpbGUpOworLQkJcHVibGljIHZvaWQgcHVyZ2UgKEdMaWIuRmlsZSBm aWxlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIEJhcnJpZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFycmllciAoKTsKKy0J CXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUgKCk7Cist CQlwdWJsaWMgdm9pZCByZWxlYXNlIChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhcnJpZXJEaXJlY3Rpb24gZGlyZWN0aW9u cyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBN ZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHgyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MSB7IGdldDsgY29uc3RydWN0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTIgeyBnZXQ7IGNvbnN0cnVj dDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGhpdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxlZnQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZXZlbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBh Y3RdCistCXB1YmxpYyBjbGFzcyBCYXJyaWVyRXZlbnQgeworLQkJcHVibGljIGludCBkdDsKKy0J CXB1YmxpYyBkb3VibGUgZHg7CistCQlwdWJsaWMgZG91YmxlIGR5OworLQkJcHVibGljIGludCBl dmVudF9pZDsKKy0JCXB1YmxpYyBib29sIGdyYWJiZWQ7CistCQlwdWJsaWMgYm9vbCByZWxlYXNl ZDsKKy0JCXB1YmxpYyB1aW50MzIgdGltZTsKKy0JCXB1YmxpYyBkb3VibGUgeDsKKy0JCXB1Ymxp YyBkb3VibGUgeTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl90cmFja2VyX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBDdXJzb3JUcmFja2VyIDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIEN1cnNvclRyYWNrZXIgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5DdXJz b3JUcmFja2VyIGdldF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVi bGljIHZvaWQgZ2V0X2hvdCAob3V0IGludCB4LCBvdXQgaW50IHkpOworLQkJcHVibGljIHZvaWQg Z2V0X3BvaW50ZXIgKGludCB4LCBpbnQgeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kcyk7Cist CQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9wb2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21v dmVkIChmbG9hdCBvYmplY3QsIGZsb2F0IHAwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEaXNwbGF5 ICgpOworLQkJcHVibGljIHZvaWQgYWRkX2lnbm9yZWRfY3Jvc3Npbmdfc2VyaWFsICh1bG9uZyBz ZXJpYWwpOworLQkJcHVibGljIHVpbnQgYWRkX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lLCBHTGli LlNldHRpbmdzIHNldHRpbmdzLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncywgb3duZWQgTWV0 YS5LZXlIYW5kbGVyRnVuYyBoYW5kbGVyKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX2dyYWJfb3Ag KE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5HcmFiT3Agb3AsIGJvb2wgcG9pbnRlcl9hbHJlYWR5 X2dyYWJiZWQsIGJvb2wgZnJhbWVfYWN0aW9uLCBpbnQgYnV0dG9uLCB1bG9uZyBtb2RtYXNrLCB1 aW50MzIgdGltZXN0YW1wLCBpbnQgcm9vdF94LCBpbnQgcm9vdF95KTsKKy0JCXB1YmxpYyB2b2lk IGNsZWFyX21vdXNlX21vZGUgKCk7CistCQlwdWJsaWMgdm9pZCBjbG9zZSAodWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgdm9pZCBlbmRfZ3JhYl9vcCAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgdm9pZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgdm9pZCBmcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIGludCBnZXRfY3VycmVudF9tb25pdG9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3Vy cmVudF90aW1lICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lX3JvdW5kdHJp cCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9mb2N1c193aW5kb3cgKCk7 CistCQlwdWJsaWMgTWV0YS5HcmFiT3AgZ2V0X2dyYWJfb3AgKCk7CistCQlwdWJsaWMgdWludCBn ZXRfa2V5YmluZGluZ19hY3Rpb24gKHVpbnQga2V5Y29kZSwgdWxvbmcgbWFzayk7CistCQlwdWJs aWMgdWludDMyIGdldF9sYXN0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rhbmds ZSBnZXRfbW9uaXRvcl9nZW9tZXRyeSAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGJvb2wgZ2V0 X21vbml0b3JfaW5fZnVsbHNjcmVlbiAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGludCBnZXRf bW9uaXRvcl9pbmRleF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMg aW50IGdldF9tb25pdG9yX25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5E aXNwbGF5RGlyZWN0aW9uIGRpcik7CistCQlwdWJsaWMgaW50IGdldF9uX21vbml0b3JzICgpOwor LQkJcHVibGljIHN0cmluZyBnZXRfcGFkX2FjdGlvbl9sYWJlbCAoQ2x1dHRlci5JbnB1dERldmlj ZSBwYWQsIE1ldGEuUGFkQWN0aW9uVHlwZSBhY3Rpb25fdHlwZSwgdWludCBhY3Rpb25fbnVtYmVy KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB2b2lk IGdldF9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLlNvdW5kUGxheWVyIGdldF9zb3VuZF9wbGF5ZXIgKCk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX2N1cnJlbnQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRh LldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2lu ZG93PiBnZXRfdGFiX2xpc3QgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZT8gd29y a3NwYWNlKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfbmV4dCAoTWV0 YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgTWV0YS5XaW5kb3c/IHdp bmRvdywgYm9vbCBiYWNrd2FyZCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZU1h bmFnZXIgZ2V0X3dvcmtzcGFjZV9tYW5hZ2VyICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2Nl bGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9yLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncyk7 CistCQlwdWJsaWMgYm9vbCBpc19wb2ludGVyX2VtdWxhdGluZ19zZXF1ZW5jZSAoQ2x1dHRlci5F dmVudFNlcXVlbmNlPyBzZXF1ZW5jZSk7CistCQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5YmluZGlu ZyAoc3RyaW5nIG5hbWUpOworLQkJcHVibGljIHZvaWQgcmVxdWVzdF9wYWRfb3NkIChDbHV0dGVy LklucHV0RGV2aWNlIHBhZCwgYm9vbCBlZGl0aW9uX21vZGUpOworLQkJcHVibGljIHZvaWQgc2V0 X2N1cnNvciAoTWV0YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsg TWV0YS5XaW5kb3c+IHNvcnRfd2luZG93c19ieV9zdGFja2luZyAoR0xpYi5TTGlzdDxNZXRhLldp bmRvdz4gd2luZG93cyk7CistCQlwdWJsaWMgYm9vbCBzdXBwb3J0c19leHRlbmRlZF9iYXJyaWVy cyAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuZnJlZXplX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyBib29sIHVuZ3JhYl9hY2NlbGVyYXRvciAodWludCBhY3Rpb25faWQpOwor LQkJcHVibGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyBib29sIHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVpbnQzMiB0aW1lMSwgdWludDMyIHRp bWUyKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvdyBmb2N1c193aW5kb3cgeyBnZXQ7IH0KKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCB1aW50 IHAwLCB1aW50IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfdXBkYXRlZCAoKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBnbF92aWRlb19tZW1vcnlfcHVyZ2VkICgpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEu V2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9v cF9lbmQgKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBw MSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9jaGFuZ2VkICgpOworLQkJ cHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgcGFkX21vZGVfc3dpdGNoIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgdWludCBwMCwg dWludCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzdGFja2VkICgpOworLQkJcHVibGlj IHNpZ25hbCBib29sIHJlc3RhcnQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd19vc2Qg KGludCBvYmplY3QsIHN0cmluZyBwMCwgc3RyaW5nIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdW5v d25lZCBDbHV0dGVyLkFjdG9yPyBzaG93X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFk LCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBzdHJpbmcgbGF5b3V0X3BhdGgsIGJvb2wgZWRpdGlv bl9tb2RlLCBpbnQgbW9uaXRvcl9pZHgpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVz aXplX3BvcHVwIChib29sIG9iamVjdCwgTWV0YS5SZWN0YW5nbGUgcDAsIGludCBwMSwgaW50IHAy KTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc3RhcnRfbWVzc2FnZSAoc3RyaW5nPyBt ZXNzYWdlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfY3JlYXRlZCAoTWV0YS5XaW5kb3cgb2Jq ZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZGVtYW5kc19hdHRlbnRpb24gKE1l dGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2VudGVyZWRf bW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHdpbmRvd19sZWZ0X21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbWFya2VkX3VyZ2VudCAoTWV0YS5XaW5kb3cgb2Jq ZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworLQkJcHVibGljIHNpZ25h bCB2b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRh X2RuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRG5kIDogR0xpYi5PYmplY3Qgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IERuZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfZW50ZXIgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgZG5kX2xlYXZlICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9wb3Np dGlvbl9jaGFuZ2UgKGludCBvYmplY3QsIGludCBwMCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEZyYW1lIHsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgdHlwZV9pZCA9ICJtZXRhX2lkbGVfbW9uaXRvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgSWRsZU1vbml0b3IgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgSWRsZU1vbml0b3IgKCk7CistCQlw dWJsaWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1l dGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyB1aW50IGFkZF91 c2VyX2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJh Y2spOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUg KCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2Rl dmljZSAoaW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOwor LQkJcHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCist CVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgS2V5QmluZGluZyB7CistCQlwdWJsaWMgdWludCBn ZXRfbWFzayAoKTsKKy0JCXB1YmxpYyBNZXRhLlZpcnR1YWxNb2RpZmllciBnZXRfbW9kaWZpZXJz ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIGJv b2wgaXNfYnVpbHRpbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JldmVyc2VkICgpOworLQkJW0ND b2RlIChjbmFtZSA9ICJtZXRhX2tleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIHNldF9jdXN0b21faGFuZGxlciAoc3RyaW5nIG5hbWUsIG93bmVk IE1ldGEuS2V5SGFuZGxlckZ1bmM/IGhhbmRsZXIpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1l dGFfbGF1bmNoX2NvbnRleHRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIExhdW5jaENv bnRleHQgOiBHTGliLkFwcExhdW5jaENvbnRleHQgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIExhdW5jaENvbnRleHQgKCk7CistCQlw dWJsaWMgdm9pZCBzZXRfdGltZXN0YW1wICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsg Y29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHRpbWVz dGFtcCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRh LldvcmtzcGFjZSB3b3Jrc3BhY2UgeyBvd25lZCBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lk ID0gIm1ldGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBN b25pdG9yTWFuYWdlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKy0JCXB1 YmxpYyBib29sIGNhbl9zd2l0Y2hfY29uZmlnICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IE1ldGEuTW9uaXRvck1hbmFnZXIgQGdldCAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9k aXNwbGF5X2NvbmZpZ3VyYXRpb25fdGltZW91dCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pc19i dWlsdGluX2Rpc3BsYXlfb24gKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2Zvcl9jb25u ZWN0b3IgKHN0cmluZyBjb25uZWN0b3IpOworLQkJcHVibGljIE1ldGEuTW9uaXRvclN3aXRjaENv bmZpZ1R5cGUgZ2V0X3N3aXRjaF9jb25maWcgKCk7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfY29u ZmlnIChNZXRhLk1vbml0b3JTd2l0Y2hDb25maWdUeXBlIGNvbmZpZ190eXBlKTsKKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjb25maXJtX2Rpc3BsYXlfY2hh bmdlICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZF9pbnRlcm5hbCAoKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBwb3dlcl9zYXZlX21vZGVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRh X3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIDog R0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHJvdGVjdGVkIFBsdWdpbiAoKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX21vZGFsIChN ZXRhLk1vZGFsT3B0aW9ucyBvcHRpb25zLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2 b2lkIGNvbXBsZXRlX2Rpc3BsYXlfY2hhbmdlIChib29sIG9rKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95IChNZXRhLldpbmRvd0FjdG9y IGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3lfY29tcGxldGVkIChNZXRhLldpbmRvd0Fj dG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9tb2RhbCAodWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IGdldF9pbmZvICgpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV90aWxlX3ByZXZpZXcgKCk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBrZXliaW5kaW5nX2ZpbHRlciAoTWV0YS5LZXlC aW5kaW5nIGJpbmRpbmcpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg a2lsbF9zd2l0Y2hfd29ya3NwYWNlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQga2lsbF93aW5kb3dfZWZmZWN0cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7Cist CQlwdWJsaWMgc3RhdGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlwZSBn dHlwZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1ldGEu V2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgbWFwX2NvbXBsZXRlZCAoTWV0YS5X aW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBtaW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBtaW5p bWl6ZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgTWV0YS5QbHVnaW5JbmZvPyBwbHVnaW5faW5mbyAo KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfdGlsZV9wcmV2 aWV3IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuUmVjdGFuZ2xlIHRpbGVfcmVjdCwgaW50IHRp bGVfbW9uaXRvcl9udW1iZXIpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgc2hvd193aW5kb3dfbWVudSAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVU eXBlIG1lbnUsIGludCB4LCBpbnQgeSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdm9pZCBzaG93X3dpbmRvd19tZW51X2Zvcl9yZWN0IChNZXRhLldpbmRvdyB3aW5kb3csIE1l dGEuV2luZG93TWVudVR5cGUgbWVudSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaXplX2NoYW5nZSAoTWV0YS5XaW5kb3dBY3Rv ciBhY3RvciwgTWV0YS5TaXplQ2hhbmdlIHdoaWNoX2NoYW5nZSwgTWV0YS5SZWN0YW5nbGUgb2xk X2ZyYW1lX3JlY3QsIE1ldGEuUmVjdGFuZ2xlIG9sZF9idWZmZXJfcmVjdCk7CistCQlwdWJsaWMg dm9pZCBzaXplX2NoYW5nZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2l6ZV9jaGFuZ2VkIChNZXRhLldp bmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lk IHN0YXJ0ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3dpdGNo X3dvcmtzcGFjZSAoaW50IGZyb20sIGludCB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0 aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2VfY29tcGxldGVkICgpOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdW5taW5pbWl6ZSAoTWV0YS5XaW5k b3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCB1bm1pbmltaXplX2NvbXBsZXRlZCAoTWV0 YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg Ym9vbCB4ZXZlbnRfZmlsdGVyIChYLkV2ZW50IGV2ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9 ICJtZXRhX3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgUmVtb3RlQWNjZXNzQ29udHJvbGxlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBSZW1vdGVBY2Nl c3NDb250cm9sbGVyICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG5ld19oYW5kbGUgKE1ldGEu UmVtb3RlQWNjZXNzSGFuZGxlIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9y ZW1vdGVfYWNjZXNzX2hhbmRsZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUmVtb3Rl QWNjZXNzSGFuZGxlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0hhbmRsZSAoKTsKKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RvcCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzdG9w cGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCist CXB1YmxpYyBjbGFzcyBTZXR0aW5ncyB7CistCQlwdWJsaWMgaW50IGdldF9mb250X2RwaSAoKTsK Ky0JCXB1YmxpYyBpbnQgZ2V0X3VpX3NjYWxpbmdfZmFjdG9yICgpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCByZWZf ZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRf dHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCistCVtDb21w YWN0XQorLQlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMg KGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93 X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWlu dCAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgaW50IHdpbmRvd194LCBpbnQgd2luZG93 X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBD YWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CistCQlwdWJsaWMgTWV0YS5T aGFkb3cgQHJlZiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBl X2lkID0gIm1ldGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNz IFNoYWRvd0ZhY3RvcnkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgU2hhZG93RmFjdG9yeSAoKTsKKy0JCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBNZXRhLlNoYWRvd0ZhY3RvcnkgZ2V0X2RlZmF1bHQgKCk7CistCQlw dWJsaWMgTWV0YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUsIGJv b2wgZm9jdXNlZCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgZ2V0X3NoYWRvdyAoTWV0YS5XaW5k b3dTaGFwZSBzaGFwZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBzdHJpbmcgY2xhc3NfbmFtZSwg Ym9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wYXJhbXMgKHN0cmluZyBjbGFzc19u YW1lLCBib29sIGZvY3VzZWQsIE1ldGEuU2hhZG93UGFyYW1zIEBwYXJhbXMpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFw ZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6 IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0 dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOwor LQkJcHVibGljIENhaXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xp cCk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlw dWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOworLQkJ cHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVyZSk7 CistCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9uIG9w YXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQgeSwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5n ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zb3VuZF9wbGF5ZXJfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIFNvdW5kUGxheWVyIDogR0xpYi5PYmplY3QgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNvdW5k UGxheWVyICgpOworLQkJcHVibGljIHZvaWQgcGxheV9mcm9tX2ZpbGUgKEdMaWIuRmlsZSBmaWxl LCBzdHJpbmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVs bCk7CistCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fdGhlbWUgKHN0cmluZyBuYW1lLCBzdHJpbmcg ZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xh c3MgU3RhZ2UgOiBDbHV0dGVyLlN0YWdlLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0 YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3RhZ2UgKCk7 CistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZm9jdXNlZCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjdG9yc19wYWludGVkICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0 eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9ub3RpZmljYXRpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGNsYXNzIFN0YXJ0dXBOb3RpZmljYXRpb24gOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3RhcnR1cE5v dGlmaWNhdGlvbiAoKTsKKy0JCXB1YmxpYyBNZXRhLkxhdW5jaENvbnRleHQgY3JlYXRlX2xhdW5j aGVyICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRp c3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNo YW5nZWQgKHZvaWQqIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFydHVw X3NlcXVlbmNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTdGFydHVwU2VxdWVuY2Ug OiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgU3RhcnR1cFNlcXVlbmNlICgpOworLQkJcHVibGljIHZvaWQgY29t cGxldGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9uX2lkICgp OworLQkJcHVibGljIGJvb2wgZ2V0X2NvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfaWNvbl9uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pZCAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKy0JCXB1YmxpYyB1aW50 NjQgZ2V0X3RpbWVzdGFtcCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21jbGFz cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBzdHJpbmcg YXBwbGljYXRpb25faWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBpY29u X25hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBpZCB7IGdldDsgY29u c3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJ cHVibGljIHVpbnQ2NCB0aW1lc3RhbXAgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0 cmluZyB3bWNsYXNzIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBpbnQgd29ya3NwYWNl IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUgeworLQkJcHVibGljIHZvaWQgZnJlZSAo KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvdyAoKTsK Ky0JCXB1YmxpYyB2b2lkIGFjdGl2YXRlICh1aW50MzIgY3VycmVudF90aW1lKTsKKy0JCXB1Ymxp YyB2b2lkIGFjdGl2YXRlX3dpdGhfd29ya3NwYWNlICh1aW50MzIgY3VycmVudF90aW1lLCBNZXRh LldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIGJvb2wgYWxsb3dzX21vdmUgKCk7Cist CQlwdWJsaWMgYm9vbCBhbGxvd3NfcmVzaXplICgpOworLQkJcHVibGljIHZvaWQgYmVnaW5fZ3Jh Yl9vcCAoTWV0YS5HcmFiT3Agb3AsIGJvb2wgZnJhbWVfYWN0aW9uLCB1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyBib29sIGNhbl9jbG9zZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9tYXhp bWl6ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyBib29s IGNhbl9zaGFkZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2UgKE1ldGEuV29y a3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX2J5X2lu ZGV4IChpbnQgc3BhY2VfaW5kZXgsIGJvb2wgYXBwZW5kKTsKKy0JCXB1YmxpYyB2b2lkIGNoZWNr X2FsaXZlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBjbGll bnRfcmVjdF90b19mcmFtZV9yZWN0IChNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVjdCk7CistCQlw dWJsaWMgdm9pZCBjb21wdXRlX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgQGRlbGV0ZSAodWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBmaW5kX3Jvb3Rf YW5jZXN0b3IgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1cyAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgdm9pZCBmb3JlYWNoX2FuY2VzdG9yIChNZXRhLldpbmRvd0ZvcmVhY2hGdW5jIGZ1 bmMpOworLQkJcHVibGljIHZvaWQgZm9yZWFjaF90cmFuc2llbnQgKE1ldGEuV2luZG93Rm9yZWFj aEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90b19jbGll bnRfcmVjdCAoTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdCk7CistCQlwdWJsaWMgTWV0YS5SZWN0 YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9j bGllbnRfbWFjaGluZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd0NsaWVudFR5cGUgZ2V0X2Ns aWVudF90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X2NvbXBvc2l0 b3JfcHJpdmF0ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24g KCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlw dWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24/IGdldF9mcmFtZV9ib3VuZHMgKCk7CistCQlwdWJs aWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2ZyYW1lX3JlY3QgKCk7CistCQlwdWJsaWMgTWV0YS5GcmFt ZVR5cGUgZ2V0X2ZyYW1lX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0 a19hcHBfbWVudV9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf Z3RrX2FwcGxpY2F0aW9uX2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtf YXBwbGljYXRpb25fb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X2d0a19tZW51YmFyX29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9ndGtfdGhlbWVfdmFyaWFudCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3Rr X3VuaXF1ZV9idXNfbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dp bmRvd19vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChv dXQgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgdWludDY0IGdldF9pZCAoKTsKKy0J CXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVyICgpOworLQkJcHVibGljIE1ldGEuTWF4 aW1pemVGbGFncyBnZXRfbWF4aW1pemVkICgpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvciAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbXV0dGVyX2hpbnRzICgpOworLQkJcHVi bGljIGludCBnZXRfcGlkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9yb2xlICgp OworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zYW5kYm94ZWRfYXBwX2lkICgpOworLQkJ cHVibGljIHVpbnQgZ2V0X3N0YWJsZV9zZXF1ZW5jZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfc3RhcnR1cF9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93PyBn ZXRfdGlsZV9tYXRjaCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGl0bGUgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdHJhbnNpZW50X2ZvciAoKTsKKy0J CXB1YmxpYyB1aW50MzIgZ2V0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5 cGUgZ2V0X3dpbmRvd190eXBlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9j bGFzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21fY2xhc3NfaW5zdGFuY2Ug KCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMg KCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9jdXJyZW50X21vbml0 b3IgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRv ciAoaW50IHdoaWNoX21vbml0b3IpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2Ug Z2V0X3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeHdpbmRvdyAoKTsKKy0J CXB1YmxpYyB2b2lkIGdyb3VwX2xlYWRlcl9jaGFuZ2VkICgpOworLQkJcHVibGljIGJvb2wgaGFz X2ZvY3VzICgpOworLQkJcHVibGljIGJvb2wgaXNfYWJvdmUgKCk7CistCQlwdWJsaWMgYm9vbCBp c19hbHdheXNfb25fYWxsX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hbmNlc3Rv cl9vZl90cmFuc2llbnQgKE1ldGEuV2luZG93IHRyYW5zaWVudCk7CistCQlwdWJsaWMgYm9vbCBp c19hdHRhY2hlZF9kaWFsb2cgKCk7CistCQlwdWJsaWMgYm9vbCBpc19jbGllbnRfZGVjb3JhdGVk ICgpOworLQkJcHVibGljIGJvb2wgaXNfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlz X2hpZGRlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX21vbml0b3Jfc2l6ZWQgKCk7CistCQlwdWJs aWMgYm9vbCBpc19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX29uX3By aW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIGlzX292ZXJyaWRlX3JlZGlyZWN0ICgp OworLQkJcHVibGljIGJvb2wgaXNfcmVtb3RlICgpOworLQkJcHVibGljIGJvb2wgaXNfc2NyZWVu X3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2hhZGVkICgpOworLQkJcHVibGljIGJvb2wg aXNfc2tpcF90YXNrYmFyICgpOworLQkJcHVibGljIHZvaWQga2lsbCAoKTsKKy0JCXB1YmxpYyBi b29sIGxvY2F0ZWRfb25fd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJ cHVibGljIHZvaWQgbG93ZXIgKCk7CistCQlwdWJsaWMgdm9pZCBtYWtlX2Fib3ZlICgpOworLQkJ cHVibGljIHZvaWQgbWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgbWF4aW1pemUg KE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXpl ICgpOworLQkJcHVibGljIHZvaWQgbW92ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94 X253LCBpbnQgcm9vdF95X253KTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChi b29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBpbnQgaCk7 CistCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKy0JCXB1Ymxp YyB2b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3Np dG9yICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3Ig KCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBw cml2KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7CistCQlwdWJs aWMgdm9pZCBzaGFkZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzaG92ZV90 aXRsZWJhcl9vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIHNob3dpbmdfb25faXRzX3dvcmtz cGFjZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNodXRkb3duX2dyb3VwICgpOworLQkJcHVibGljIHZv aWQgc3RpY2sgKCk7CistCQlwdWJsaWMgYm9vbCB0aXRsZWJhcl9pc19vbnNjcmVlbiAoKTsKKy0J CXB1YmxpYyB2b2lkIHVubWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9mdWxs c2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgdW5tYXhpbWl6ZSAoTWV0YS5NYXhpbWl6ZUZsYWdz IGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQgdW5taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIHVuc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJcHVibGljIHZvaWQgdW5zaGFkZSAo dWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCB1bnN0aWNrICgpOworLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhYm92ZSB7IGdldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhcHBlYXJzX2ZvY3VzZWQgeyBnZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVjb3JhdGVkIHsgZ2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRlbWFuZHNfYXR0ZW50aW9uIHsgZ2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW4geyBn ZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoIHsgZ2V0OyB9 CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9pZCB7IGdldDsgfQorLQkJcHVibGlj IHN0cmluZyBndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBz dHJpbmcgZ3RrX21lbnViYXJfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcg Z3RrX3VuaXF1ZV9idXNfbmFtZSB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfd2luZG93 X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB2 b2lkKiBpY29uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29s IG1heGltaXplZF9ob3Jpem9udGFsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGJvb2wgbWF4aW1pemVkX3ZlcnRpY2FsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIHZvaWQqIG1pbmlfaWNvbiB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBtaW5pbWl6ZWQgeyBnZXQ7IH0KKy0JCXB1Ymxp YyBzdHJpbmcgbXV0dGVyX2hpbnRzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBib29sIG9uX2FsbF93b3Jrc3BhY2VzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBib29sIHJlc2l6ZWFibGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGJvb2wgc2tpcF90YXNrYmFyIHsgZ2V0OyB9CistCQlwdWJsaWMg c3RyaW5nIHRpdGxlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBi b29sIHVyZ2VudCB7IGdldDsgfQorLQkJcHVibGljIHVpbnQgdXNlcl90aW1lIHsgZ2V0OyB9Cist CQlwdWJsaWMgTWV0YS5XaW5kb3dUeXBlIHdpbmRvd190eXBlIHsgZ2V0OyB9CistCQlwdWJsaWMg c3RyaW5nIHdtX2NsYXNzIHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcG9zaXRpb25f Y2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByYWlzZWQgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgc2hvd24gKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2Vk ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRh X3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2lu ZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0 YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93QWN0 b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOworLQkJcHVi bGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3ll ZCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKy0JCXB1YmxpYyBNZXRh LldpbmRvdyBtZXRhX3dpbmRvdyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3df bW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZWZmZWN0c19jb21wbGV0 ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNs YXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVy LkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdp bmRvd0dyb3VwICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hh cGVfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19zaGFwZV9nZXRfdHlwZSAoKSIsIHVucmVm X2Z1bmN0aW9uID0gIm1ldGFfd2luZG93X3NoYXBlX3VucmVmIildCistCVtDb21wYWN0XQorLQlw dWJsaWMgY2xhc3MgV2luZG93U2hhcGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHVibGljIFdpbmRvd1NoYXBlIChDYWlyby5SZWdpb24gcmVnaW9u KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLldpbmRvd1NoYXBlIHNoYXBlX2IpOworLQkJ cHVibGljIHZvaWQgZ2V0X2JvcmRlcnMgKGludCBib3JkZXJfdG9wLCBpbnQgYm9yZGVyX3JpZ2h0 LCBpbnQgYm9yZGVyX2JvdHRvbSwgaW50IGJvcmRlcl9sZWZ0KTsKKy0JCXB1YmxpYyB1aW50IGhh c2ggKCk7CistCQlwdWJsaWMgTWV0YS5XaW5kb3dTaGFwZSBAcmVmICgpOworLQkJcHVibGljIENh aXJvLlJlZ2lvbiB0b19yZWdpb24gKGludCBjZW50ZXJfd2lkdGgsIGludCBjZW50ZXJfaGVpZ2h0 KTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFf d29ya3NwYWNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jrc3BhY2UgOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgV29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQz MiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF9mb2N1cyAoTWV0YS5X aW5kb3cgZm9jdXNfdGhpcywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtz cGFjZSBnZXRfbmVpZ2hib3IgKE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlvbik7CistCQlw dWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7CistCQlw dWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNo X21vbml0b3IpOworLQkJcHVibGljIGludCBpbmRleCAoKTsKKy0JCXB1YmxpYyBHTGliLkxpc3Q8 d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGljIHZvaWQgc2V0X2J1 aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ/PiBzdHJ1dHMpOworLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgd29ya3NwYWNlX2luZGV4IHsgZ2V0OyB9Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2FkZGVkIChNZXRhLldpbmRvdyBvYmplY3QpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19yZW1vdmVkIChNZXRhLldpbmRvdyBvYmplY3Qp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3NwYWNlX21hbmFnZXJfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIFdvcmtzcGFjZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQg V29ya3NwYWNlTWFuYWdlciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGFw cGVuZF9uZXdfd29ya3NwYWNlIChib29sIGFjdGl2YXRlLCB1aW50MzIgdGltZXN0YW1wKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgpOwor LQkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKy0JCXB1YmxpYyBp bnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNl IGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CistCQlwdWJsaWMgdm9pZCBvdmVy cmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVy LCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7CistCQlw dWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBhY3RpdmVfd29ya3NwYWNlX2NoYW5nZWQgKCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90aW9uRGly ZWN0aW9uIHAxKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3gxMV9kaXNwbGF5X2dldF90 eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBYMTFEaXNwbGF5IDogR0xpYi5PYmplY3QgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFgx MURpc3BsYXkgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c190aGVfbm9fZm9jdXNfd2luZG93ICh1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgp OworLQkJcHVibGljIGludCBnZXRfc2NyZWVuX251bWJlciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0 X3NoYXBlX2V2ZW50X2Jhc2UgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfc2hhcGUgKCk7CistCQlw dWJsaWMgdm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgc2V0X2lucHV0 X2ZvY3VzX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIGZvY3VzX2ZyYW1lLCB1aW50 MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5k b3cgKFguV2luZG93IHh3aW5kb3cpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9z ZURpYWxvZ0ludGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGludGVyZmFjZSBDbG9zZURpYWxvZyA6IEdMaWIuT2JqZWN0IHsKKy0J CXB1YmxpYyBhYnN0cmFjdCB2b2lkIGZvY3VzICgpOworLQkJcHVibGljIGFic3RyYWN0IHZvaWQg aGlkZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3Zpc2libGUgKCk7CistCQlwdWJsaWMgYWJzdHJh Y3Qgdm9pZCBzaG93ICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYWJzdHJh Y3QgTWV0YS5XaW5kb3cgd2luZG93IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtIYXNF bWl0dGVyXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3BvbnNlIChNZXRhLkNsb3NlRGlhbG9n UmVzcG9uc2UgcmVzcG9uc2UpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFJbmhpYml0 U2hvcnRjdXRzRGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRj dXRzX2RpYWxvZ19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIEluaGliaXRTaG9y dGN1dHNEaWFsb2cgOiBHTGliLk9iamVjdCB7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoaWRl ICgpOworLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGFic3RyYWN0IE1ldGEuV2luZG93IHdpbmRvdyB7IG93bmVkIGdldDsg Y29uc3RydWN0OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXNw b25zZSAoTWV0YS5JbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgcmVzcG9uc2UpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBCdXR0b25MYXlv dXQgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBN ZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s0XTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFzX3NwYWNl cls0XTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsg TWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzRdOworLQkJW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIHJpZ2h0X2J1dHRvbnNfaGFzX3Nw YWNlcls0XTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1 Y3QgRWRnZSB7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRh LlNpZGUgc2lkZV90eXBlOworLQkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBGcmFtZUJvcmRl cnMgeworLQkJcHVibGljIEd0ay5Cb3JkZXIgdmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVy IGludmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHRvdGFsOworLQkJcHVibGljIHZvaWQg Y2xlYXIgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1w bHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBsdWdpbklu Zm8geworLQkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CistCQlwdWJsaWMgd2VhayBzdHJpbmcg dmVyc2lvbjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBhdXRob3I7CistCQlwdWJsaWMgd2VhayBz dHJpbmcgbGljZW5zZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBkZXNjcmlwdGlvbjsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVyc2lv biB7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21ham9yOworLQkJcHVibGljIHVpbnQgdmVyc2lv bl9taW5vcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CistCQlwdWJsaWMgdWludCB2 ZXJzaW9uX2FwaTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CistCQlwdWJsaWMgaW50IHg7Cist CQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOworLQkJcHVibGljIGludCBoZWln aHQ7CistCQlwdWJsaWMgaW50IGFyZWEgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0 IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZT8g Y29weSAoKTsKKy0JCXB1YmxpYyBib29sIGNvdWxkX2ZpdF9yZWN0IChNZXRhLlJlY3RhbmdsZSBp bm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLlJlY3RhbmdsZSBzcmMyKTsK Ky0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgYm9vbCBob3Jpel9vdmVybGFwIChN ZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3QgKE1ldGEuUmVj dGFuZ2xlIHNyYzIsIG91dCBNZXRhLlJlY3RhbmdsZSBkZXN0KTsKKy0JCXB1YmxpYyBib29sIG92 ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSB1 bmlvbiAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIGJvb2wgdmVydF9vdmVybGFw IChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlwdWJsaWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7CistCQlwdWJsaWMgaW50IHJhZGl1czsK Ky0JCXB1YmxpYyBpbnQgdG9wX2ZhZGU7CistCQlwdWJsaWMgaW50IHhfb2Zmc2V0OworLQkJcHVi bGljIGludCB5X29mZnNldDsKKy0JCXB1YmxpYyB1aW50OCBvcGFjaXR5OworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTdHJ1dCB7CistCQlwdWJsaWMg TWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9i YXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVt IEJhcnJpZXJEaXJlY3Rpb24geworLQkJUE9TSVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ksCistCQlO RUdBVElWRV9YLAorLQkJTkVHQVRJVkVfWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVU VE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24geworLQkJTUVOVSwKKy0JCU1JTklN SVpFLAorLQkJTUFYSU1JWkUsCistCQlDTE9TRSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX0NMT1NFX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfY2xvc2Vf ZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIENsb3NlRGlhbG9n UmVzcG9uc2UgeworLQkJV0FJVCwKKy0JCUZPUkNFX0NMT1NFCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXgg PSAiTUVUQV9DT01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ29tcEVmZmVjdCB7CistCQlDUkVBVEUsCistCQlVTk1J TklNSVpFLAorLQkJREVTVFJPWSwKKy0JCU1JTklNSVpFLAorLQkJTk9ORQorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj cHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGVudW0gQ3Vyc29yIHsKKy0JCU5PTkUsCistCQlERUZBVUxULAorLQkJ Tk9SVEhfUkVTSVpFLAorLQkJU09VVEhfUkVTSVpFLAorLQkJV0VTVF9SRVNJWkUsCistCQlFQVNU X1JFU0laRSwKKy0JCVNFX1JFU0laRSwKKy0JCVNXX1JFU0laRSwKKy0JCU5FX1JFU0laRSwKKy0J CU5XX1JFU0laRSwKKy0JCU1PVkVfT1JfUkVTSVpFX1dJTkRPVywKKy0JCUJVU1ksCistCQlETkRf SU5fRFJBRywKKy0JCURORF9NT1ZFLAorLQkJRE5EX0NPUFksCistCQlETkRfVU5TVVBQT1JURURf VEFSR0VULAorLQkJUE9JTlRJTkdfSEFORCwKKy0JCUNST1NTSEFJUiwKKy0JCUlCRUFNLAorLQkJ TEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRh X2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGVi dWdUb3BpYyB7CistCQlWRVJCT1NFLAorLQkJRk9DVVMsCistCQlXT1JLQVJFQSwKKy0JCVNUQUNL LAorLQkJVEhFTUVTLAorLQkJU00sCistCQlFVkVOVFMsCistCQlXSU5ET1dfU1RBVEUsCistCQlX SU5ET1dfT1BTLAorLQkJR0VPTUVUUlksCistCQlQTEFDRU1FTlQsCistCQlQSU5HLAorLQkJWElO RVJBTUEsCistCQlLRVlCSU5ESU5HUywKKy0JCVNZTkMsCistCQlFUlJPUlMsCistCQlTVEFSVFVQ LAorLQkJUFJFRlMsCistCQlHUk9VUFMsCistCQlSRVNJWklORywKKy0JCVNIQVBFUywKKy0JCUNP TVBPU0lUT1IsCistCQlFREdFX1JFU0lTVEFOQ0UsCistCQlEQlVTCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVm aXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlw ZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7CistCQlMRUZULAor LQkJUklHSFQsCistCQlUT1AsCistCQlCT1RUT00sCistCQlVUCwKKy0JCURPV04sCistCQlIT1JJ Wk9OVEFMLAorLQkJVkVSVElDQUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlf IiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIERpc3BsYXlDb3JuZXIgeworLQkJVE9QTEVGVCwKKy0JCVRPUFJJR0hULAorLQkJQk9U VE9NTEVGVCwKKy0JCUJPVFRPTVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQ TEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBEaXNwbGF5RGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUxF RlQsCistCQlSSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lk ID0gIm1ldGFfZWRnZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEVkZ2VUeXBl IHsKKy0JCVdJTkRPVywKKy0JCU1PTklUT1IsCistCQlTQ1JFRU4KKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX0VYSVRfIiwgdHlwZV9pZCA9ICJtZXRhX2V4aXRfY29kZV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBFeGl0Q29kZSB7CistCQlTVUNDRVNTLAorLQkJRVJST1IKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV9mbGFn c19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEZyYW1lRmxhZ3Mgewor LQkJQUxMT1dTX0RFTEVURSwKKy0JCUFMTE9XU19NRU5VLAorLQkJQUxMT1dTX01JTklNSVpFLAor LQkJQUxMT1dTX01BWElNSVpFLAorLQkJQUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwKKy0JCUFMTE9X U19IT1JJWk9OVEFMX1JFU0laRSwKKy0JCUhBU19GT0NVUywKKy0JCVNIQURFRCwKKy0JCVNUVUNL LAorLQkJTUFYSU1JWkVELAorLQkJQUxMT1dTX1NIQURFLAorLQkJQUxMT1dTX01PVkUsCistCQlG VUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcsCistCQlBQk9WRSwKKy0JCVRJTEVEX0xFRlQsCist CQlUSUxFRF9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQRV8iLCB0 eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBG cmFtZVR5cGUgeworLQkJTk9STUFMLAorLQkJRElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAorLQkJ VVRJTElUWSwKKy0JCU1FTlUsCistCQlCT1JERVIsCistCQlBVFRBQ0hFRCwKKy0JCUxBU1Q7Cist CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4 ID0gIk1FVEFfR1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBHcmFiT3AgeworLQkJTk9ORSwKKy0JCVdJTkRPV19CQVNFLAorLQkJ Q09NUE9TSVRPUiwKKy0JCVdBWUxBTkRfUE9QVVAsCistCQlGUkFNRV9CVVRUT04sCistCQlNT1ZJ TkcsCistCQlSRVNJWklOR19OVywKKy0JCVJFU0laSU5HX04sCistCQlSRVNJWklOR19ORSwKKy0J CVJFU0laSU5HX0UsCistCQlSRVNJWklOR19TVywKKy0JCVJFU0laSU5HX1MsCistCQlSRVNJWklO R19TRSwKKy0JCVJFU0laSU5HX1csCistCQlLRVlCT0FSRF9NT1ZJTkcsCistCQlLRVlCT0FSRF9S RVNJWklOR19VTktOT1dOLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTlcsCistCQlLRVlCT0FSRF9S RVNJWklOR19OLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTkUsCistCQlLRVlCT0FSRF9SRVNJWklO R19FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU1csCistCQlLRVlCT0FSRF9SRVNJWklOR19TLAor LQkJS0VZQk9BUkRfUkVTSVpJTkdfU0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19XCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGNwcmVmaXggPSAiTUVUQV9JTkhJQklUX1NIT1JUQ1VUU19ESUFMT0dfUkVTUE9OU0VfIiwg dHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBJbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2Ugewor LQkJQUxMT1csCistCQlERU5ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5H X0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24geworLQkJTk9ORSwKKy0JCVdPUktT UEFDRV8xLAorLQkJV09SS1NQQUNFXzIsCistCQlXT1JLU1BBQ0VfMywKKy0JCVdPUktTUEFDRV80 LAorLQkJV09SS1NQQUNFXzUsCistCQlXT1JLU1BBQ0VfNiwKKy0JCVdPUktTUEFDRV83LAorLQkJ V09SS1NQQUNFXzgsCistCQlXT1JLU1BBQ0VfOSwKKy0JCVdPUktTUEFDRV8xMCwKKy0JCVdPUktT UEFDRV8xMSwKKy0JCVdPUktTUEFDRV8xMiwKKy0JCVdPUktTUEFDRV9MRUZULAorLQkJV09SS1NQ QUNFX1JJR0hULAorLQkJV09SS1NQQUNFX1VQLAorLQkJV09SS1NQQUNFX0RPV04sCistCQlXT1JL U1BBQ0VfTEFTVCwKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlMsCistCQlTV0lUQ0hfQVBQTElDQVRJ T05TX0JBQ0tXQVJELAorLQkJU1dJVENIX0dST1VQLAorLQkJU1dJVENIX0dST1VQX0JBQ0tXQVJE LAorLQkJU1dJVENIX1dJTkRPV1MsCistCQlTV0lUQ0hfV0lORE9XU19CQUNLV0FSRCwKKy0JCVNX SVRDSF9QQU5FTFMsCistCQlTV0lUQ0hfUEFORUxTX0JBQ0tXQVJELAorLQkJQ1lDTEVfR1JPVVAs CistCQlDWUNMRV9HUk9VUF9CQUNLV0FSRCwKKy0JCUNZQ0xFX1dJTkRPV1MsCistCQlDWUNMRV9X SU5ET1dTX0JBQ0tXQVJELAorLQkJQ1lDTEVfUEFORUxTLAorLQkJQ1lDTEVfUEFORUxTX0JBQ0tX QVJELAorLQkJU0hPV19ERVNLVE9QLAorLQkJUEFORUxfTUFJTl9NRU5VLAorLQkJUEFORUxfUlVO X0RJQUxPRywKKy0JCVRPR0dMRV9SRUNPUkRJTkcsCistCQlTRVRfU1BFV19NQVJLLAorLQkJQUNU SVZBVEVfV0lORE9XX01FTlUsCistCQlUT0dHTEVfRlVMTFNDUkVFTiwKKy0JCVRPR0dMRV9NQVhJ TUlaRUQsCistCQlUT0dHTEVfVElMRURfTEVGVCwKKy0JCVRPR0dMRV9USUxFRF9SSUdIVCwKKy0J CVRPR0dMRV9BQk9WRSwKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0JCVRPR0dMRV9T SEFERUQsCistCQlNSU5JTUlaRSwKKy0JCUNMT1NFLAorLQkJQkVHSU5fTU9WRSwKKy0JCUJFR0lO X1JFU0laRSwKKy0JCVRPR0dMRV9PTl9BTExfV09SS1NQQUNFUywKKy0JCU1PVkVfVE9fV09SS1NQ QUNFXzEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8yLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMywK Ky0JCU1PVkVfVE9fV09SS1NQQUNFXzQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV81LAorLQkJTU9W RV9UT19XT1JLU1BBQ0VfNiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzcsCistCQlNT1ZFX1RPX1dP UktTUEFDRV84LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOSwKKy0JCU1PVkVfVE9fV09SS1NQQUNF XzEwLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMiwK Ky0JCU1PVkVfVE9fV09SS1NQQUNFX0xFRlQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9SSUdIVCwK Ky0JCU1PVkVfVE9fV09SS1NQQUNFX1VQLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfRE9XTiwKKy0J CU1PVkVfVE9fV09SS1NQQUNFX0xBU1QsCistCQlNT1ZFX1RPX01PTklUT1JfTEVGVCwKKy0JCU1P VkVfVE9fTU9OSVRPUl9SSUdIVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9VUCwKKy0JCU1PVkVfVE9f TU9OSVRPUl9ET1dOLAorLQkJUkFJU0VfT1JfTE9XRVIsCistCQlSQUlTRSwKKy0JCUxPV0VSLAor LQkJTUFYSU1JWkVfVkVSVElDQUxMWSwKKy0JCU1BWElNSVpFX0hPUklaT05UQUxMWSwKKy0JCU1P VkVfVE9fQ09STkVSX05XLAorLQkJTU9WRV9UT19DT1JORVJfTkUsCistCQlNT1ZFX1RPX0NPUk5F Ul9TVywKKy0JCU1PVkVfVE9fQ09STkVSX1NFLAorLQkJTU9WRV9UT19TSURFX04sCistCQlNT1ZF X1RPX1NJREVfUywKKy0JCU1PVkVfVE9fU0lERV9FLAorLQkJTU9WRV9UT19TSURFX1csCistCQlN T1ZFX1RPX0NFTlRFUiwKKy0JCU9WRVJMQVlfS0VZLAorLQkJSVNPX05FWFRfR1JPVVAsCistCQlB TFdBWVNfT05fVE9QLAorLQkJU1dJVENIX01PTklUT1IsCistCQlST1RBVEVfTU9OSVRPUiwKKy0J CUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQg PSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1 YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CistCQlOT05FLAorLQkJUEVSX1dJTkRPVywKKy0J CUJVSUxUSU4sCistCQlJU19SRVZFUlNFRCwKKy0JCU5PTl9NQVNLQUJMRSwKKy0JCUlHTk9SRV9B VVRPUkVQRUFUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lkID0g Im1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMYXRlclR5cGUg eworLQkJUkVTSVpFLAorLQkJQ0FMQ19TSE9XSU5HLAorLQkJQ0hFQ0tfRlVMTFNDUkVFTiwKKy0J CVNZTkNfU1RBQ0ssCistCQlCRUZPUkVfUkVEUkFXLAorLQkJSURMRQorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJl Zml4ID0gIk1FVEFfTE9DQUxFX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbG9jYWxlX2Rp cmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMb2NhbGVEaXJlY3Rpb24gewor LQkJTFRSLAorLQkJUlRMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0 eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQor LQlwdWJsaWMgZW51bSBNYXhpbWl6ZUZsYWdzIHsKKy0JCUhPUklaT05UQUwsCistCQlWRVJUSUNB TCwKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQg PSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGlj IGVudW0gTW9kYWxPcHRpb25zIHsKKy0JCVBPSU5URVJfQUxSRUFEWV9HUkFCQkVELAorLQkJS0VZ Qk9BUkRfQUxSRUFEWV9HUkFCQkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9S X1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190 eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1vbml0b3JTd2l0Y2hDb25maWdUeXBl IHsKKy0JCUFMTF9NSVJST1IsCistCQlBTExfTElORUFSLAorLQkJRVhURVJOQUwsCistCQlCVUlM VElOLAorLQkJVU5LTk9XTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5 cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBl bnVtIE1vdGlvbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAorLQkJUklH SFQsCistCQlVUF9MRUZULAorLQkJVVBfUklHSFQsCistCQlET1dOX0xFRlQsCistCQlET1dOX1JJ R0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9QQURfQUNUSU9OXyIsIHR5cGVfaWQgPSAi bWV0YV9wYWRfYWN0aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUGFkQWN0 aW9uVHlwZSB7CistCQlCVVRUT04sCistCQlSSU5HLAorLQkJU1RSSVAKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX1BSRUZfIiwgdHlwZV9pZCA9ICJtZXRhX3ByZWZlcmVuY2VfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGVudW0gUHJlZmVyZW5jZSB7CistCQlNT1VTRV9CVVRUT05fTU9EUywK Ky0JCUZPQ1VTX01PREUsCistCQlGT0NVU19ORVdfV0lORE9XUywKKy0JCUFUVEFDSF9NT0RBTF9E SUFMT0dTLAorLQkJUkFJU0VfT05fQ0xJQ0ssCistCQlBQ1RJT05fRE9VQkxFX0NMSUNLX1RJVExF QkFSLAorLQkJQUNUSU9OX01JRERMRV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9SSUdIVF9D TElDS19USVRMRUJBUiwKKy0JCUFVVE9fUkFJU0UsCistCQlBVVRPX1JBSVNFX0RFTEFZLAorLQkJ Rk9DVVNfQ0hBTkdFX09OX1BPSU5URVJfUkVTVCwKKy0JCVRJVExFQkFSX0ZPTlQsCistCQlOVU1f V09SS1NQQUNFUywKKy0JCURZTkFNSUNfV09SS1NQQUNFUywKKy0JCUtFWUJJTkRJTkdTLAorLQkJ RElTQUJMRV9XT1JLQVJPVU5EUywKKy0JCUJVVFRPTl9MQVlPVVQsCistCQlXT1JLU1BBQ0VfTkFN RVMsCistCQlWSVNVQUxfQkVMTCwKKy0JCUFVRElCTEVfQkVMTCwKKy0JCVZJU1VBTF9CRUxMX1RZ UEUsCistCQlHTk9NRV9BQ0NFU1NJQklMSVRZLAorLQkJR05PTUVfQU5JTUFUSU9OUywKKy0JCUNV UlNPUl9USEVNRSwKKy0JCUNVUlNPUl9TSVpFLAorLQkJUkVTSVpFX1dJVEhfUklHSFRfQlVUVE9O LAorLQkJRURHRV9USUxJTkcsCistCQlGT1JDRV9GVUxMU0NSRUVOLAorLQkJV09SS1NQQUNFU19P TkxZX09OX1BSSU1BUlksCistCQlEUkFHR0FCTEVfQk9SREVSX1dJRFRILAorLQkJQVVUT19NQVhJ TUlaRSwKKy0JCUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURSQUdfVEhSRVNIT0xEOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKy0JCUFVVE8sCistCQlGT1JDRURfT0ZG LAorLQkJRk9SQ0VEX09OCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9TSURFXyIsIHR5cGVf aWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpZGUgeworLQkJ TEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXgg PSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7CistCQlNQVhJTUlaRSwKKy0JCVVO TUFYSU1JWkUsCistCQlGVUxMU0NSRUVOLAorLQkJVU5GVUxMU0NSRUVOCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNw cmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU3RhY2tMYXllciB7CistCQlERVNLVE9QLAorLQkJQk9U VE9NLAorLQkJTk9STUFMLAorLQkJVE9QLAorLQkJRE9DSywKKy0JCU9WRVJSSURFX1JFRElSRUNU LAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9p ZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYkxpc3Qg eworLQkJTk9STUFMLAorLQkJRE9DS1MsCistCQlHUk9VUCwKKy0JCU5PUk1BTF9BTEwKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hv d190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKy0JCUlD T04sCistCQlJTlNUQU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwg dHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdz XQorLQlwdWJsaWMgZW51bSBWaXJ0dWFsTW9kaWZpZXIgeworLQkJU0hJRlRfTUFTSywKKy0JCUNP TlRST0xfTUFTSywKKy0JCUFMVF9NQVNLLAorLQkJTUVUQV9NQVNLLAorLQkJU1VQRVJfTUFTSywK Ky0JCUhZUEVSX01BU0ssCistCQlNT0QyX01BU0ssCistCQlNT0QzX01BU0ssCistCQlNT0Q0X01B U0ssCistCQlNT0Q1X01BU0sKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19DTElF TlRfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2NsaWVudF90eXBlX2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIFdpbmRvd0NsaWVudFR5cGUgeworLQkJV0FZTEFORCwKKy0JCVgx MQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJt ZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93 TWVudVR5cGUgeworLQkJV00sCistCQlBUFAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJ TkRPV18iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGVudW0gV2luZG93VHlwZSB7CistCQlOT1JNQUwsCistCQlERVNLVE9QLAorLQkJRE9DSywK Ky0JCURJQUxPRywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVRPT0xCQVIsCistCQlNRU5VLAorLQkJ VVRJTElUWSwKKy0JCVNQTEFTSFNDUkVFTiwKKy0JCURST1BET1dOX01FTlUsCistCQlQT1BVUF9N RU5VLAorLQkJVE9PTFRJUCwKKy0JCU5PVElGSUNBVElPTiwKKy0JCUNPTUJPLAorLQkJRE5ELAor LQkJT1ZFUlJJREVfT1RIRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVi bGljIGRlbGVnYXRlIHZvaWQgSWRsZU1vbml0b3JXYXRjaEZ1bmMgKE1ldGEuSWRsZU1vbml0b3Ig bW9uaXRvciwgdWludCB3YXRjaF9pZCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorLQlw dWJsaWMgZGVsZWdhdGUgdm9pZCBLZXlIYW5kbGVyRnVuYyAoTWV0YS5EaXNwbGF5IGRpc3BsYXks IE1ldGEuV2luZG93IHdpbmRvdywgW0NDb2RlICh0eXBlID0gIkNsdXR0ZXJLZXlFdmVudCoiKV0g Q2x1dHRlci5LZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZzQ2hhbmdl ZEZ1bmMgKE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSld CistCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFdpbmRvd0ZvcmVhY2hGdW5jIChNZXRhLldpbmRvdyB3 aW5kb3cpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9DVVJSRU5UX1RJTUUiKV0KKy0JcHVibGljIGNv bnN0IGludCBDVVJSRU5UX1RJTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRfSUNPTl9O QU1FIildCistCXB1YmxpYyBjb25zdCBzdHJpbmcgREVGQVVMVF9JQ09OX05BTUU7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj bmFtZSA9ICJNRVRBX0lDT05fSEVJR0hUIildCistCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlH SFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0IGlu dCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NQUpPUl9WRVJTSU9OIildCistCXB1 YmxpYyBjb25zdCBpbnQgTUFKT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9f VkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFt ZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5JX0lD T05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKy0JcHVi bGljIGNvbnN0IGludCBNSU5JX0lDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9S X1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25h bWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBQTFVH SU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9SRV9SRURS QVciKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9CRUZPUkVfUkVEUkFXOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKy0JcHVibGljIGNvbnN0IGlu dCBQUklPUklUWV9QUkVGU19OT1RJRlk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JF RFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1l ID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlf UkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0K Ky0JcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFt ZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQg VklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGFj dGl2YXRlX3Nlc3Npb24gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1l dGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIu T3B0aW9uQ29udGV4dCBnZXRfb3B0aW9uX2NvbnRleHQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0 YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIGluaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGlzX3Jlc3Rh cnQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHF1aXQgKE1ldGEuRXhpdENvZGUg Y29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lv biAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nPyBtZXNz YWdlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGludCBydW4gKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdtX2tleWJp bmRpbmdzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3dtX25hbWUgKHN0cmlu ZyB3bV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgeDExX2luaXRfZ2RrX2Rp c3BsYXkgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRl ci01LmRlcHMgdmFwaS9saWJtdXR0ZXItNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDUwJQorcmVu YW1lIGZyb20gdmFwaS9saWJtdXR0ZXItNS5kZXBzCityZW5hbWUgdG8gdmFwaS9saWJtdXR0ZXIt Ni5kZXBzCitpbmRleCA0OGFhNzU2My4uMjIzNTI1ZTQgMTAwNjQ0CistLS0gdmFwaS9saWJtdXR0 ZXItNS5kZXBzCisrKysgdmFwaS9saWJtdXR0ZXItNi5kZXBzCitAQCAtMSw1ICsxLDYgQEAKKyBn dGsrLTMuMAorIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY2x1dHRlci01CisrbXV0dGVyLWNsdXR0 ZXItNgorIHgxMQorIHhmaXhlcy00LjAKKytncmFwaGVuZS1nb2JqZWN0LTEuMAorZGlmZiAtLWdp dCB2YXBpL2xpYm11dHRlci01LnZhcGkgdmFwaS9saWJtdXR0ZXItNi52YXBpCitzaW1pbGFyaXR5 IGluZGV4IDk3JQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItNS52YXBpCityZW5hbWUgdG8g dmFwaS9saWJtdXR0ZXItNi52YXBpCitpbmRleCBiOTVhMjhlNi4uYjM2YmUxYjcgMTAwNjQ0Cist LS0gdmFwaS9saWJtdXR0ZXItNS52YXBpCisrKysgdmFwaS9saWJtdXR0ZXItNi52YXBpCitAQCAt MSwxMiArMSwxMCBAQAorLS8qIGxpYm11dHRlci01LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4s IGRvIG5vdCBtb2RpZnkuICovCisrLyogbGlibXV0dGVyLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFw aWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdp cl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVm aXggPSAibWV0YV8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2Ug PSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8i KV0KKyBuYW1lc3BhY2UgTWV0YSB7CisgCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKyAJCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9 ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRp YyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3Bs YXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlz cGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQor IAkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRh LkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0K K0BAIC0yMSw4ICsxOSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBHTGliLkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3Bs YXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5kb3df Z3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRh X3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3Rh Z2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9uIHJl Z2lvbik7CisgCX0KKyAJbmFtZXNwYWNlIFByZWZzIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJs ZSIpXQorQEAgLTE2NCw3ICsxNjAsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdm9p ZCBzZXRfbnVtbG9jayAoYm9vbCBudW1sb2NrX3N0YXRlKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBrZXltYXBfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0 X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0 X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0 X2RldmljZV9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChib29sIG9iamVjdCk7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0eXBl X2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorQEAgLTE3NCw3ICsxNzAsNyBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZp bGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUp OworIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0 eWxlIHN0eWxlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGU/IGZpbGUsIEdE ZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGll bnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0dGVy LkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9jb2xvcik7CisgCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQgZ2V0 OyBjb25zdHJ1Y3Q7IH0KK0BAIC0yNzUsNyArMjcxLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7CisgCQlwdWJsaWMgdm9p ZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29sIHZpc2libGUpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9tb3Zl ZCAoZmxvYXQgb2JqZWN0LCBmbG9hdCBwMCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29y X21vdmVkIChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB2aXNpYmls aXR5X2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv ZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KK0BAIC0z MjcsNiArMzIzLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGJvb2wgeHNlcnZlcl90 aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIpOworIAkJcHVibGljIE1l dGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGFj Y2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2UgcDAs IHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGNsb3NpbmcgKCk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgY3Vyc29yX3VwZGF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xf dmlkZW9fbWVtb3J5X3B1cmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2Jl Z2luIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEp OworQEAgLTM1MCw2ICszNDcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgd29ya2FyZWFzX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rp c3BsYXlfY2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9vcGVu ZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfc2V0dXAgKCk7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1kbmQuaCIsIHR5cGVfaWQg PSAibWV0YV9kbmRfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIERuZCA6IEdMaWIuT2Jq ZWN0IHsKK0BAIC0zNzAsMTEgKzM2OCwxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMg dWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEuSWRs ZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyB1aW50IGFkZF91c2VyX2Fj dGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOwor IAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7Cist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2RldmljZSAo aW50IGRldmljZV9pZCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOworIAkJcHVi bGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENs dXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTUz NiwxNSArNTMzLDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBj aGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4dHVyZV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0 ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1 dHRlci5TY3JpcHRhYmxlIHsKKysJcHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBHTGliLk9i amVjdCwgQ2x1dHRlci5Db250ZW50IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVibGljIENh aXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7CisrCQlwdWJs aWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOwor IAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVibGlj IHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBzIChib29sIGNyZWF0ZV9taXBtYXBzKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9tYXNrX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBtYXNrX3RleHR1cmUpOworIAkJ cHVibGljIHZvaWQgc2V0X29wYXF1ZV9yZWdpb24gKG93bmVkIENhaXJvLlJlZ2lvbiBvcGFxdWVf cmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIHVwZGF0ZV9hcmVhIChpbnQgeCwgaW50IHksIGludCB3 aWR0aCwgaW50IGhlaWdodCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgp OworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc291bmQtcGxh eWVyLmgiLCB0eXBlX2lkID0gIm1ldGFfc291bmRfcGxheWVyX2dldF90eXBlICgpIildCitAQCAt NzU2LDE3ICs3NTIsMTYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgYWJzdHJhY3QgY2xh c3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIu QW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgV2lu ZG93QWN0b3IgKCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5S ZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X21l dGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfdGV4dHVy ZSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2hhcGVkVGV4dHVyZSBnZXRfdGV4dHVyZSAo KTsKKyAJCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN5bmNf dmlzaWJpbGl0eSAoKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7IGdldDsg Y29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hh ZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CisrCQlwdWJs aWMgc2lnbmFsIHZvaWQgZGFtYWdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBlZmZlY3Rz X2NvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKysJ CXB1YmxpYyBzaWduYWwgdm9pZCB0aGF3ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5k b3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFdpbmRvd0dyb3VwIDogQ2x1 dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIu Q29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTgxMyw3ICs4MDgsNyBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZl X3dvcmtzcGFjZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXgg KCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworKwkJ cHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGlu dCBpbmRleCk7CisgCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRh LkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50 IG5fcm93cywgaW50IG5fY29sdW1ucyk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNl IChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGlj IHZvaWQgcmVvcmRlcl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgaW50IG5l d19pbmRleCk7CitAQCAtODMzLDExICs4MjgsMTMgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJs aWMgY2xhc3MgWDExRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBYMTFEaXNwbGF5ICgpOworKwkJ cHVibGljIHZvaWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVnaW9uICgpOworIAkJcHVibGljIGludCBn ZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVy ICgpOworIAkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBi b29sIGhhc19zaGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7Cisr CQlwdWJsaWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChYLlhzZXJ2ZXJSZWdpb24gcmVn aW9uKTsKKyAJCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2lu ZG93IHh3aW5kb3cpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxvZ0ludGVyZmFj ZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KK0BAIC04OTks NyArODk2LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNy bzsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25fYXBpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5 cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0 cnVjdCBSZWN0YW5nbGUgeworIAkJcHVibGljIGludCB4OworIAkJcHVibGljIGludCB5OworQEAg LTE0NDMsNiArMTQ0MCw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBhY3RpdmF0ZV9z ZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K KysJcHVibGljIHN0YXRpYyB2b2lkIGFkZF9jbHV0dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVyLkRl YnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRyYXdfZmxhZ3MsIENs dXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0IChNZXRhLkV4 aXRDb2RlIGNvZGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKyAJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNp emVfdCBuKTsKK0BAIC0xNDU5LDYgKzE0NTgsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZv aWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9jbHV0dGVyX2Rl YnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVi dWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0 aWMgdm9pZCByZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBpbnQgcnVuICgpOworQEAg LTE0NjcsNSArMTQ2OCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFt ZSAoc3RyaW5nIHdtX25hbWUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoKTsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCB4 MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9CitkaWZmIC0tZ2l0 IHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFs YQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4xZTBiOTE3YworLS0tIC9k ZXYvbnVsbAorKysrIHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEKK0BAIC0wLDAgKzEsNyBA QAorK1tDQ29kZSAoaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBiZWZvcmVf ZnJhbWUgeworK30KKysKKytbQ0NvZGUgKGhhc190eXBlX2lkID0gZmFsc2UpXQorK3B1YmxpYyBz dHJ1Y3QgZnJhbWUgeworK30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNy5kZXBzIHZhcGkv bGlibXV0dGVyLTcuZGVwcworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4y ZWY5MTllZQorLS0tIC9kZXYvbnVsbAorKysrIHZhcGkvbGlibXV0dGVyLTcuZGVwcworQEAgLTAs MCArMSw2IEBACisrZ3RrKy0zLjAKKytqc29uLWdsaWItMS4wCisrbXV0dGVyLWNsdXR0ZXItNwor K3gxMQorK3hmaXhlcy00LjAKKytncmFwaGVuZS1nb2JqZWN0LTEuMAorZGlmZiAtLWdpdCB2YXBp L2xpYm11dHRlci0zLnZhcGkgdmFwaS9saWJtdXR0ZXItNy52YXBpCitzaW1pbGFyaXR5IGluZGV4 IDc1JQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItMy52YXBpCityZW5hbWUgdG8gdmFwaS9s aWJtdXR0ZXItNy52YXBpCitpbmRleCAxNzE1YWE4Zi4uOTBjNDE1OTAgMTAwNjQ0CistLS0gdmFw aS9saWJtdXR0ZXItMy52YXBpCisrKysgdmFwaS9saWJtdXR0ZXItNy52YXBpCitAQCAtMSwxMiAr MSwxMCBAQAorLS8qIGxpYm11dHRlci0zLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5v dCBtb2RpZnkuICovCisrLyogbGlibXV0dGVyLTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwg ZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1l c3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjMiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAi bWV0YV8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0 YSIsIGdpcl92ZXJzaW9uID0gIjciLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKyBu YW1lc3BhY2UgTWV0YSB7CisgCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKyAJCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRh X2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lk IGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIs IGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7 CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVi bGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3Bs YXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KK0BAIC0y MSw4ICsxOSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH TGliLkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlzcGxheSBk aXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0K KyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5kb3dfZ3JvdXBf Zm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9z dGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5w dXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7 CisgCX0KKyAJbmFtZXNwYWNlIFByZWZzIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJsZSIpXQor QEAgLTQ3LDYgKzQzLDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyBNZXRh LkJ1dHRvbkxheW91dCBwcmVmc19nZXRfYnV0dG9uX2xheW91dCAoKTsKKyAJCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9j ZW50ZXJfbmV3X3dpbmRvd3MiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY2Vu dGVyX25ld193aW5kb3dzICgpOworKwkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NoZWNrX2FsaXZlX3RpbWVvdXQiKV0K KysJCXB1YmxpYyBzdGF0aWMgdWludCBwcmVmc19nZXRfY2hlY2tfYWxpdmVfdGltZW91dCAoKTsK KyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX2dldF9jb21wb3NpdGluZ19tYW5hZ2VyIildCisgCQlwdWJsaWMgc3RhdGljIGJv b2wgcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY3Vyc29y X3NpemUiKV0KK0BAIC03NSw4ICs3Myw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBz dGF0aWMgYm9vbCBwcmVmc19nZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSAoKTsKKyAJCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF9nbm9tZV9hbmltYXRpb25zIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2du b21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRs ZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9pZ25vcmVfcmVxdWVzdF9o aWRlX3RpdGxlYmFyICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9uIildCisgCQlw dWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGluZ0FjdGlvbiBwcmVmc19nZXRfa2V5YmluZGluZ19h Y3Rpb24gKHN0cmluZyBuYW1lKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSIpXQor QEAgLTEwNSw4ICsxMDEsNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZv aWQgcHJlZnNfaW5pdCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9mb3JjZV9mdWxsc2NyZWVuIildCisgCQlw dWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hldGhl cik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19zZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyIChi b29sIHdoZXRoZXIpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X251bV93b3Jrc3BhY2VzIildCisgCQlwdWJsaWMg c3RhdGljIHZvaWQgcHJlZnNfc2V0X251bV93b3Jrc3BhY2VzIChpbnQgbl93b3Jrc3BhY2VzKTsK KyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX3NldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51IildCitAQCAtMTE3LDEyICsxMTEs MTAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF92ZXJib3Nl X3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9leHRlcm5hbF9iaW5kaW5nX25hbWVf Zm9yX2FjdGlvbiIpXQorIAkJcHVibGljIHN0YXRpYyBzdHJpbmcgZXh0ZXJuYWxfYmluZGluZ19u YW1lX2Zvcl9hY3Rpb24gKHVpbnQga2V5YmluZGluZ19hY3Rpb24pOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhfc3RybmR1 cCIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMs IHNpemVfdCBuKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNuYW1lID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24iKV0KKyAJCXB1YmxpYyBzdGF0aWMg TWV0YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7CisgCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZpdHlf dG9fc3RyaW5nIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9f c3RyaW5nIChpbnQgZ3Jhdml0eSk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdy YXZpdHlfdG9fc3RyaW5nIChNZXRhLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX2RlYnVnZ2luZyIp XQorIAkJcHVibGljIHN0YXRpYyBib29sIGlzX2RlYnVnZ2luZyAoKTsKKyAJCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfc3luY2luZyIp XQorQEAgLTE2NSwxMiArMTU3LDEzIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93 bmVkIE1ldGEuRG5kIGdldF9kbmQgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLlJlbW90ZUFj Y2Vzc0NvbnRyb2xsZXIgZ2V0X3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlciAoKTsKKyAJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlICgpOworKwkJcHVibGljIGJvb2wgaXNf cmVuZGVyaW5nX2hhcmR3YXJlX2FjY2VsZXJhdGVkICgpOworIAkJcHVibGljIHZvaWQgbG9ja19s YXlvdXRfZ3JvdXAgKHVpbnQgaWR4KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9rZXltYXAgKHN0cmlu ZyBsYXlvdXRzLCBzdHJpbmcgdmFyaWFudHMsIHN0cmluZyBvcHRpb25zKTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9udW1sb2NrIChib29sIG51bWxvY2tfc3RhdGUpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIGtleW1hcF9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9sYXlv dXRfZ3JvdXBfY2hhbmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxh c3RfZGV2aWNlX2NoYW5nZWQgKGludCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGxh c3RfZGV2aWNlX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKyAJCXB1Ymxp YyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIsIHR5 cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCitAQCAtMTgwLDcgKzE3Myw3 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2FsbCAo KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZpbGUg ZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHls ZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJ cHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5k U3R5bGUgc3R5bGUpOworKwkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZT8gZmlsZSwg R0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ncmFk aWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0 ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKyAJCVtOb0FjY2Vz c29yTWV0aG9kXQorIAkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorQEAgLTE5MCw5ICsxODMsMTggQEAgbmFtZXNwYWNlIE1ldGEgewor IAlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxl bWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNj cmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5 cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJcHVibGljIEJhY2tncm91bmRBY3RvciAoTWV0YS5E aXNwbGF5IGRpc3BsYXksIGludCBtb25pdG9yKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJ cHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsg fQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgaW50IG1vbml0b3IgeyBnZXQ7IGNv bnN0cnVjdDsgfQorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt YmFja2dyb3VuZC1jb250ZW50LmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9jb250ZW50 X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQ29udGVudCA6IEdMaWIu T2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIEJhY2tncm91bmRDb250ZW50ICgpOworKwkJcHVi bGljIHN0YXRpYyBDbHV0dGVyLkNvbnRlbnQgQG5ldyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIGlu dCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91 bmQgYmFja2dyb3VuZCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKGJvb2wgZW5hYmxl ZCwgaW50IGhlaWdodCwgZG91YmxlIHRvbmVfc3RhcnQpOworLQkJcHVibGljIHZvaWQgc2V0X21v bml0b3IgKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBl bmFibGVkLCBkb3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVk IGdldDsgc2V0OyB9CitAQCAtMjc3LDE0ICsyNzksMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ3Vyc29yVHJhY2tlciBnZXRfZm9yX2Rpc3BsYXkg KE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCXB1YmxpYyB2b2lkIGdldF9ob3QgKG91dCBpbnQg eCwgb3V0IGludCB5KTsKKyAJCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyIChpbnQgeCwgaW50IHks IENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZHMpOworKwkJcHVibGljIGJvb2wgZ2V0X3BvaW50ZXJf dmlzaWJsZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgp OworIAkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKysJ CVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEuQmFja2VuZCBiYWNrZW5kIHsgb3du ZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdl ZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX2RidXNfZGlzcGxheV9jb25maWdfc2tlbGV0 b25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIERCdXNEaXNwbGF5Q29uZmlnU2tlbGV0 b24gOiBHTGliLkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBE QnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNv cl9tb3ZlZCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdmlzaWJp bGl0eV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgpIildCisgCXB1 YmxpYyBjbGFzcyBEaXNwbGF5IDogR0xpYi5PYmplY3QgeworQEAgLTMwOSwzMiArMzExLDM5IEBA IG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBib29sIGdldF9tb25pdG9yX2luX2Z1bGxzY3Jl ZW4gKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfaW5kZXhfZm9yX3Jl Y3QgKE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRvcl9uZWln aGJvcl9pbmRleCAoaW50IHdoaWNoX21vbml0b3IsIE1ldGEuRGlzcGxheURpcmVjdGlvbiBkaXIp OworKwkJcHVibGljIGZsb2F0IGdldF9tb25pdG9yX3NjYWxlIChpbnQgbW9uaXRvcik7CisgCQlw dWJsaWMgaW50IGdldF9uX21vbml0b3JzICgpOworIAkJcHVibGljIHN0cmluZyBnZXRfcGFkX2Fj dGlvbl9sYWJlbCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIE1ldGEuUGFkQWN0aW9uVHlwZSBh Y3Rpb25fdHlwZSwgdWludCBhY3Rpb25fbnVtYmVyKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3ByaW1h cnlfbW9uaXRvciAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2VsZWN0aW9uIGdldF9zZWxl Y3Rpb24gKCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGlu dCBoZWlnaHQpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5Tb3VuZFBsYXllciBnZXRfc291bmRf cGxheWVyICgpOworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9jdXJyZW50 IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKyAJCXB1Ymxp YyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gZ2V0X3RhYl9saXN0IChNZXRhLlRhYkxpc3Qg dHlwZSwgTWV0YS5Xb3Jrc3BhY2U/IHdvcmtzcGFjZSk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRh LldpbmRvdyBnZXRfdGFiX25leHQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3 b3Jrc3BhY2UsIE1ldGEuV2luZG93PyB3aW5kb3csIGJvb2wgYmFja3dhcmQpOworIAkJcHVibGlj IHVub3duZWQgTWV0YS5Xb3Jrc3BhY2VNYW5hZ2VyIGdldF93b3Jrc3BhY2VfbWFuYWdlciAoKTsK Ky0JCXB1YmxpYyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBhY2NlbGVyYXRvcik7Cisr CQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcgYWNjZWxlcmF0b3IsIE1ldGEu S2V5QmluZGluZ0ZsYWdzIGZsYWdzKTsKKyAJCXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0 aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKyAJCXB1Ymxp YyBib29sIHJlbW92ZV9rZXliaW5kaW5nIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCBy ZXF1ZXN0X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBib29sIGVkaXRpb25fbW9k ZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3IpOworKwkJ cHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3VzIChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9j dXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBN ZXRhLldpbmRvdz4gc29ydF93aW5kb3dzX2J5X3N0YWNraW5nIChHTGliLlNMaXN0PE1ldGEuV2lu ZG93PiB3aW5kb3dzKTsKKyAJCXB1YmxpYyBib29sIHN1cHBvcnRzX2V4dGVuZGVkX2JhcnJpZXJz ICgpOworIAkJcHVibGljIHZvaWQgdW5mcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXAp OworIAkJcHVibGljIGJvb2wgdW5ncmFiX2FjY2VsZXJhdG9yICh1aW50IGFjdGlvbl9pZCk7Cisg CQlwdWJsaWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVi bGljIHZvaWQgdW5zZXRfaW5wdXRfZm9jdXMgKHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGlj IGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIp OworIAkJcHVibGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorLQkJcHVibGlj IHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIHVpbnQgcDAs IHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAo dWludCBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2UgcDAsIHVpbnQgcDEpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIGNsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX3Vw ZGF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xfdmlkZW9fbWVtb3J5X3B1cmdlZCAo KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLkRpc3BsYXkgb2Jq ZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIGdyYWJfb3BfZW5kIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0 YS5HcmFiT3AgcDEpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGluX2Z1bGxzY3JlZW5fY2hhbmdl ZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgYm9vbCBpbml0X3hzZXJ2ZXIgKEdMaWIuVGFzayBvYmpl Y3QpOworIAkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3RpdmF0 ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgcGFkX21vZGVfc3dpdGNoIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwg dWludCBwMCwgdWludCBwMSk7CitAQCAtMzQ1LDcgKzM1NCw2IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc2l6ZV9wb3B1cCAoYm9vbCBvYmplY3QsIE1l dGEuUmVjdGFuZ2xlIHAwLCBpbnQgcDEsIGludCBwMik7CisgCQlwdWJsaWMgc2lnbmFsIGJvb2wg c2hvd19yZXN0YXJ0X21lc3NhZ2UgKHN0cmluZz8gbWVzc2FnZSk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg c3RhcnR1cF9zZXF1ZW5jZV9jaGFuZ2VkICh2b2lkKiBvYmplY3QpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0KTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0 LCBNZXRhLldpbmRvdyBwMCk7CitAQCAtMzU0LDYgKzM2Miw3IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lk IHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxh eV9zZXR1cCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LWRuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xh c3MgRG5kIDogR0xpYi5PYmplY3QgeworQEAgLTM2Myw3ICszNzIsNyBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX2xlYXZlICgpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIGRuZF9wb3NpdGlvbl9jaGFuZ2UgKGludCBvYmplY3QsIGludCBwMCk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgRnJhbWUgewor IAl9CitAQCAtMzc0LDEzICszODMsMTIgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVp bnQgYWRkX2lkbGVfd2F0Y2ggKHVpbnQ2NCBpbnRlcnZhbF9tc2VjLCBvd25lZCBNZXRhLklkbGVN b25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CisgCQlwdWJsaWMgdWludCBhZGRfdXNlcl9hY3Rp dmVfd2F0Y2ggKG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9jb3JlICgpOworLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZpY2UgKGlu dCBkZXZpY2VfaWQpOworIAkJcHVibGljIGludDY0IGdldF9pZGxldGltZSAoKTsKKyAJCXB1Ymxp YyB2b2lkIHJlbW92ZV93YXRjaCAodWludCBpZCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBpbnQgZGV2aWNlX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0 dGVyLklucHV0RGV2aWNlIGRldmljZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEva2V5YmluZGluZ3MuaCIsIGNvcHlfZnVu Y3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0 eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2Nv cHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlf YmluZGluZ19nZXRfdHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIEtleUJp bmRpbmcgeworIAkJcHVibGljIHVpbnQgZ2V0X21hc2sgKCk7CitAQCAtMzkxLDggKzM5OSwyMSBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlbQ0NvZGUgKGNuYW1lID0gIm1ldGFfa2V5YmluZGluZ3Nf c2V0X2N1c3RvbV9oYW5kbGVyIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgc2V0X2N1c3RvbV9o YW5kbGVyIChzdHJpbmcgbmFtZSwgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYz8gaGFuZGxlcik7 CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oIiwgdHlwZV9pZCA9ICJtZXRhX2xhdW5jaF9jb250ZXh0X2dldF90eXBlICgpIildCisr CXB1YmxpYyBjbGFzcyBMYXVuY2hDb250ZXh0IDogR0xpYi5BcHBMYXVuY2hDb250ZXh0IHsKKysJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBM YXVuY2hDb250ZXh0ICgpOworKwkJcHVibGljIHZvaWQgc2V0X3RpbWVzdGFtcCAodWludDMyIHRp bWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3 b3Jrc3BhY2UpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5 IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2Rd CisrCQlwdWJsaWMgdWludCB0aW1lc3RhbXAgeyBnZXQ7IHNldDsgfQorKwkJW05vQWNjZXNzb3JN ZXRob2RdCisrCQlwdWJsaWMgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlIHsgb3duZWQgZ2V0OyBz ZXQ7IH0KKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBNZXRhLkRCdXNE aXNwbGF5Q29uZmlnU2tlbGV0b24sIEdMaWIuREJ1c0ludGVyZmFjZSwgR0xpYi5EQnVzSW50ZXJm YWNlIHsKKysJcHVibGljIGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIE1v bml0b3JNYW5hZ2VyICgpOworIAkJcHVibGljIGJvb2wgY2FuX3N3aXRjaF9jb25maWcgKCk7CitA QCAtNDA3LDYgKzQyOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0 b3JzX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZF9p bnRlcm5hbCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwb3dlcl9zYXZlX21vZGVfY2hhbmdl ZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdp bi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgYWJz dHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5PYmplY3QgeworQEAgLTQzMCw2ICs0NTIsOCBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfc3dpdGNoX3dvcmtz cGFjZSAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfd2lu ZG93X2VmZmVjdHMgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworKwkJW05vV3JhcHBlcl0KKysJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgbG9jYXRlX3BvaW50ZXIgKCk7CisgCQlwdWJsaWMgc3RhdGlj IHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlwZSBndHlwZSk7CisgCQlbTm9X cmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1ldGEuV2luZG93QWN0b3IgYWN0 b3IpOworQEAgLTQ2NSwyNiArNDg5LDU2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJcHVibGljIGNs YXNzIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNz Q29udHJvbGxlciAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfcmVtb3RlX2FjY2VzcyAoKTsK KysJCXB1YmxpYyB2b2lkIHVuaW5oaWJpdF9yZW1vdGVfYWNjZXNzICgpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIG5ld19oYW5kbGUgKE1ldGEuUmVtb3RlQWNjZXNzSGFuZGxlIG9iamVjdCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9yZW1vdGVfYWNjZXNzX2hhbmRsZV9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzSGFuZGxlIDogR0xpYi5PYmpl Y3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJv dGVjdGVkIFJlbW90ZUFjY2Vzc0hhbmRsZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9kaXNhYmxl X2FuaW1hdGlvbnMgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0b3AgKCk7CisrCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBib29sIGlzX3JlY29yZGluZyB7IGdldDsgY29uc3Ry dWN0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RvcHBlZCAoKTsKKyAJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0 aW9uX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTZWxlY3Rpb24gOiBHTGliLk9iamVj dCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJs aWMgU2VsZWN0aW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisrCQlwdWJsaWMgR0xpYi5MaXN0 PHN0cmluZz4gZ2V0X21pbWV0eXBlcyAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBl KTsKKysJCXB1YmxpYyB2b2lkIHNldF9vd25lciAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlv bl90eXBlLCBNZXRhLlNlbGVjdGlvblNvdXJjZSBvd25lcik7CisrCQlwdWJsaWMgYXN5bmMgYm9v bCB0cmFuc2Zlcl9hc3luYyAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBzdHJp bmcgbWltZXR5cGUsIHNzaXplX3Qgc2l6ZSwgR0xpYi5PdXRwdXRTdHJlYW0gb3V0cHV0LCBHTGli LkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMg dm9pZCB1bnNldF9vd25lciAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBNZXRh LlNlbGVjdGlvblNvdXJjZSBvd25lcik7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3duZXJfY2hh bmdlZCAodWludCBvYmplY3QsIE1ldGEuU2VsZWN0aW9uU291cmNlIHAwKTsKKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc2Vs ZWN0aW9uX3NvdXJjZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU2VsZWN0aW9uU291 cmNlIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNlbGVjdGlvblNvdXJjZSAoKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIEdMaWIuTGlzdDxzdHJpbmc+IGdldF9taW1ldHlwZXMgKCk7CisrCQlwdWJsaWMgYm9vbCBp c19hY3RpdmUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBhc3luYyBHTGliLklucHV0U3RyZWFtIHJl YWRfYXN5bmMgKHN0cmluZyBtaW1ldHlwZSwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUp IHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0aXZh dGVkICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZGVhY3RpdmF0ZWQgKCk7Cisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9 ICJtZXRhX3NlbGVjdGlvbl9zb3VyY2VfbWVtb3J5X2dldF90eXBlICgpIildCisrCXB1YmxpYyBj bGFzcyBTZWxlY3Rpb25Tb3VyY2VNZW1vcnkgOiBNZXRhLlNlbGVjdGlvblNvdXJjZSB7CisrCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJNZXRhU2VsZWN0 aW9uU291cmNlKiIpXQorKwkJcHVibGljIFNlbGVjdGlvblNvdXJjZU1lbW9yeSAoc3RyaW5nIG1p bWV0eXBlLCBHTGliLkJ5dGVzIGNvbnRlbnQpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtc2V0dGluZ3MuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlb Q29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFNldHRpbmdzIHsKKyAJCXB1YmxpYyBpbnQgZ2V0X2Zv bnRfZHBpICgpOworIAkJcHVibGljIGludCBnZXRfdWlfc2NhbGluZ19mYWN0b3IgKCk7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o IiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0YV9zaGFk b3dfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJlZiIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCByZWZfZnVuY3Rpb24g PSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIs IHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCisgCVtDb21wYWN0XQorIAlw dWJsaWMgY2xhc3MgU2hhZG93IHsKKyAJCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKGludCB3aW5k b3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwg Q2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWludCAoaW50IHdp bmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0 LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7 CisrCQlwdWJsaWMgdm9pZCBwYWludCAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgaW50 IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVp Z2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3Rs eSk7CisgCQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVm ICgpOworIAl9CitAQCAtNDk5LDI4ICs1NTMsNzQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVi bGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBl ZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDog Q2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0 ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3MgU2hhcGVk VGV4dHVyZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUg KCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUlu dCBjbGlwKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3Rh bmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1 cmUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21p cG1hcHMpOworIAkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1h c2tfdGV4dHVyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fp cm8uUmVnaW9uIG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGlu dCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBzaXplX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oIiwgdHlwZV9pZCA9ICJtZXRhX3NvdW5kX3BsYXllcl9nZXRfdHlwZSAoKSIpXQorKwlwdWJs aWMgY2xhc3MgU291bmRQbGF5ZXIgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU291bmRQbGF5ZXIgKCk7Cisr CQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fZmlsZSAoR0xpYi5GaWxlIGZpbGUsIHN0cmluZyBkZXNj cmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKysJCXB1Ymxp YyB2b2lkIHBsYXlfZnJvbV90aGVtZSAoc3RyaW5nIG5hbWUsIHN0cmluZyBkZXNjcmlwdGlvbiwg R0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKysJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXN0YWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfc3Rh Z2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5TdGFnZSwg QXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBD bHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJcHJvdGVjdGVkIFN0YWdlICgpOworIAkJcHVibGljIHN0YXRpYyBib29sIGlz X2ZvY3VzZWQgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBh Y3RvcnNfcGFpbnRlZCAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9u b3RpZmljYXRpb25fZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0YXJ0dXBOb3RpZmlj YXRpb24gOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU3RhcnR1cE5vdGlmaWNhdGlvbiAoKTsKKysJCXB1Ymxp YyBNZXRhLkxhdW5jaENvbnRleHQgY3JlYXRlX2xhdW5jaGVyICgpOworKwkJW05vQWNjZXNzb3JN ZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0 cnVjdDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKHZvaWQqIG9iamVjdCk7Cisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9 ICJtZXRhX3N0YXJ0dXBfc2VxdWVuY2VfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0 YXJ0dXBTZXF1ZW5jZSA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTdGFydHVwU2VxdWVuY2UgKCk7CisrCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9uX2lkICgpOworKwkJcHVibGljIGJv b2wgZ2V0X2NvbXBsZXRlZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfaWNvbl9u YW1lICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pZCAoKTsKKysJCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKysJCXB1YmxpYyB1aW50NjQgZ2V0X3RpbWVzdGFt cCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21jbGFzcyAoKTsKKysJCXB1Ymxp YyBpbnQgZ2V0X3dvcmtzcGFjZSAoKTsKKysJCXB1YmxpYyBzdHJpbmcgYXBwbGljYXRpb25faWQg eyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyBpY29uX25hbWUgeyBnZXQ7IGNv bnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyBpZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlw dWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHVpbnQ2NCB0 aW1lc3RhbXAgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyB3bWNsYXNzIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBpbnQgd29ya3NwYWNlIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKysJCVtIYXNFbWl0dGVyXQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGNvbXBsZXRlICgp OworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3RoZW1lLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBUaGVtZSB7Cisg CQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtd2F5bGFuZC1jbGllbnQuaCIsIHR5cGVfaWQgPSAibWV0YV93YXlsYW5kX2Ns aWVudF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgV2F5bGFuZENsaWVudCA6IEdMaWIu T2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJ CXB1YmxpYyBXYXlsYW5kQ2xpZW50IChHTGliLlN1YnByb2Nlc3NMYXVuY2hlciBsYXVuY2hlcikg dGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCBoaWRlX2Zyb21fd2luZG93X2xpc3Qg KE1ldGEuV2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgYm9vbCBvd25zX3dpbmRvdyAoTWV0YS5X aW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyB2b2lkIHNob3dfaW5fd2luZG93X2xpc3QgKE1ldGEu V2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgR0xpYi5TdWJwcm9jZXNzIHNwYXdudiAoTWV0YS5E aXNwbGF5IGRpc3BsYXksIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxf dGVybWluYXRlZCA9IHRydWUpXSBzdHJpbmdbXSBhcmd2KSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIHR5cGVfaWQg PSAibWV0YV93aW5kb3dfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFdp bmRvdyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KK0BAIC01NDcsNiArNjQ3LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGlj IE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3RfdG9fY2xpZW50X3JlY3QgKE1ldGEuUmVjdGFuZ2xl IGZyYW1lX3JlY3QpOworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAo KTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7CisrCQlw dWJsaWMgTWV0YS5XaW5kb3dDbGllbnRUeXBlIGdldF9jbGllbnRfdHlwZSAoKTsKKyAJCXB1Ymxp YyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9jb21wb3NpdG9yX3ByaXZhdGUgKCk7CisgCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworIAkJcHVibGljIHVub3duZWQg TWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgpOworQEAgLTU2MSw2ICs2NjIsNyBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a191bmlxdWVfYnVzX25h bWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a193aW5kb3dfb2JqZWN0X3Bh dGggKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfaWNvbl9nZW9tZXRyeSAob3V0IE1ldGEuUmVjdGFu Z2xlIHJlY3QpOworKwkJcHVibGljIHVpbnQ2NCBnZXRfaWQgKCk7CisgCQlwdWJsaWMgTWV0YS5T dGFja0xheWVyIGdldF9sYXllciAoKTsKKyAJCXB1YmxpYyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0 X21heGltaXplZCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X21vbml0b3IgKCk7CitAQCAtNjEwLDgg KzcxMiw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2Zy YW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBp bnQgaCk7CisgCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKyAJ CXB1YmxpYyB2b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19j b21wb3NpdG9yICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBv c2l0b3IgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9i amVjdCBwcml2KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7CitA QCAtNjcyLDI0ICs3NzIsMjUgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2 b2lkIHNob3duICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCB1bm1hbmFnZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg dW5tYW5hZ2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAo KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3Is IENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJs ZSB7CisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3Is IEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwg Q2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBXaW5kb3dBY3RvciAoKTsKKysJCXB1YmxpYyB2b2lkIGZy ZWV6ZSAoKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3Rh bmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93 aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgp OworLQkJcHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKysJCXB1YmxpYyB1bm93bmVk IE1ldGEuU2hhcGVkVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJCXB1YmxpYyBib29sIGlzX2Rl c3Ryb3llZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKysJCXB1Ymxp YyB2b2lkIHRoYXcgKCk7CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cgbWV0YV93aW5kb3cgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgc3RyaW5nIHNo YWRvd19jbGFzcyB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBNZXRhLlNoYWRvd01vZGUgc2hhZG93X21vZGUgeyBnZXQ7IHNldDsgfQorKwkJcHVi bGljIHNpZ25hbCB2b2lkIGRhbWFnZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZWZmZWN0 c19jb21wbGV0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7Cisr CQlwdWJsaWMgc2lnbmFsIHZvaWQgdGhhd2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93LWdyb3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfd2lu ZG93X2dyb3VwX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBXaW5kb3dHcm91cCA6IENs dXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVy LkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03MjAsNyArODIxLDkgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9y X21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgaW5kZXggKCk7Cisg CQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0PiBz dHJ1dHMpOworKwkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1l dGEuU3RydXQ/PiBzdHJ1dHMpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgYm9v bCBhY3RpdmUgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIHVpbnQg bl93aW5kb3dzIHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC03MzYsMjcgKzgz OSwzMyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFj ZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jr c3BhY2VfaW5kZXggKCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQg aW5kZXgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2Vf YnlfaW5kZXggKGludCBpbmRleCk7CisgCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2Vf bGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2Fs X2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7CisgCQlwdWJsaWMgdm9pZCByZW1v dmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXAp OworKwkJcHVibGljIHZvaWQgcmVvcmRlcl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtz cGFjZSwgaW50IG5ld19pbmRleCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBp bnQgbGF5b3V0X2NvbHVtbnMgeyBnZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVi bGljIGludCBsYXlvdXRfcm93cyB7IGdldDsgfQorIAkJcHVibGljIGludCBuX3dvcmtzcGFjZXMg eyBnZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RpdmVfd29ya3NwYWNlX2NoYW5nZWQg KCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAsIE1l dGEuTW90aW9uRGlyZWN0aW9uIHAxKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2Vz X3Jlb3JkZXJlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfeDExX2Rpc3BsYXlfZ2V0X3R5cGUg KCkiKV0KKyAJcHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBHTGliLk9iamVjdCB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgWDExRGlz cGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cgKHVpbnQz MiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVnaW9uICgp OworIAkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgaW50 IGdldF9zY3JlZW5fbnVtYmVyICgpOworIAkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFz ZSAoKTsKKyAJCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9j bV9zZWxlY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9jdXNfd2luZG93IChN ZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXApOwor KwkJcHVibGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoWC5Yc2VydmVyUmVnaW9uIHJl Z2lvbik7CisgCQlwdWJsaWMgYm9vbCB4d2luZG93X2lzX2Ffbm9fZm9jdXNfd2luZG93IChYLldp bmRvdyB4d2luZG93KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oIiwgdHlwZV9jbmFtZSA9ICJNZXRhQ2xvc2VEaWFsb2dJbnRlcmZh Y2UiLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX2dldF90eXBlICgpIildCitAQCAtNzc5 LDI0ICs4ODgsMjQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgcmVzcG9uc2UgKE1ldGEuSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ1Jlc3Bv bnNlIHJlc3BvbnNlKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVj dCBCdXR0b25MYXlvdXQgeworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlw dWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s1XTsKKysJCXB1Ymxp YyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzRdOworIAkJW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0dG9uc19o YXNfc3BhY2VyWzVdOworKwkJcHVibGljIHdlYWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFzX3NwYWNl cls0XTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsg TWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzVdOworKwkJcHVibGljIHdlYWsgTWV0 YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzRdOworIAkJW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNl cls1XTsKKysJCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyWzRdOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CisgCQlwdWJs aWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKyAJCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBlOwor IAkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorIAlwdWJsaWMgc3RydWN0IEZyYW1lQm9yZGVycyB7CisgCQlwdWJsaWMgR3RrLkJvcmRl ciB2aXNpYmxlOworIAkJcHVibGljIEd0ay5Cb3JkZXIgaW52aXNpYmxlOworQEAgLTgxMSwxNCAr OTIwLDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBsaWNlbnNl OworIAkJcHVibGljIHdlYWsgc3RyaW5nIGRlc2NyaXB0aW9uOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7CisgCQlwdWJsaWMg dWludCB2ZXJzaW9uX21ham9yOworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9taW5vcjsKKyAJCXB1 YmxpYyB1aW50IHZlcnNpb25fbWljcm87CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX2FwaTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgdHlwZV9pZCA9 ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CisgCQlwdWJsaWMgaW50IHg7 CisgCQlwdWJsaWMgaW50IHk7CitAQCAtODM2LDcgKzk0NSw3IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOwor IAkJcHVibGljIGJvb2wgdmVydF9vdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IFNoYWRv d1BhcmFtcyB7CisgCQlwdWJsaWMgaW50IHJhZGl1czsKKyAJCXB1YmxpYyBpbnQgdG9wX2ZhZGU7 CitAQCAtODQ0LDEyICs5NTMsMTIgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGludCB5 X29mZnNldDsKKyAJCXB1YmxpYyB1aW50OCBvcGFjaXR5OworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCisgCXB1YmxpYyBzdHJ1Y3QgU3RydXQgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJl Y3Q7CisgCQlwdWJsaWMgTWV0YS5TaWRlIHNpZGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNU SU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1F VEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9u X2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gQmFycmllckRpcmVjdGlv biB7CisgCQlQT1NJVElWRV9YLAorQEAgLTg1NywyMSArOTY2LDIwIEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCU5FR0FUSVZFX1gsCisgCQlORUdBVElWRV9ZCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNU SU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9uX2Z1bmN0aW9uX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0aW9uIHsKKyAJCU1FTlUsCisgCQlN SU5JTUlaRSwKKyAJCU1BWElNSVpFLAorIAkJQ0xPU0UsCistCQlBUFBNRU5VLAorIAkJTEFTVAor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgiLCBjcHJlZml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAi bWV0YV9jbG9zZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NMT1NFX0RJQUxP R19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX3Jlc3BvbnNlX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBlbnVtIENsb3NlRGlhbG9nUmVzcG9uc2UgeworIAkJV0FJVCwK KyAJCUZPUkNFX0NMT1NFCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tcG9zaXRvci5oIiwgY3ByZWZpeCA9ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAi bWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlwZV9p ZCA9ICJtZXRhX2NvbXBfZWZmZWN0X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIENvbXBF ZmZlY3QgeworIAkJQ1JFQVRFLAorIAkJVU5NSU5JTUlaRSwKK0BAIC04NzksNyArOTg3LDcgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJTUlOSU1JWkUsCisgCQlOT05FCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09S XyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0 eXBlX2lkID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEN1cnNv ciB7CisgCQlOT05FLAorIAkJREVGQVVMVCwKK0BAIC05MDAsOSArMTAwOCwxMCBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlQT0lOVElOR19IQU5ELAorIAkJQ1JPU1NIQUlSLAorIAkJSUJFQU0sCisr CQlCTEFOSywKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRhX2RlYnVn X3RvcGljX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVidWdf dG9waWNfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBEZWJ1Z1RvcGlj IHsKKyAJCVZFUkJPU0UsCitAQCAtOTI4LDkgKzEwMzcsMTAgQEAgbmFtZXNwYWNlIE1ldGEgewor IAkJU0hBUEVTLAorIAkJQ09NUE9TSVRPUiwKKyAJCUVER0VfUkVTSVNUQU5DRSwKKy0JCURCVVMK KysJCURCVVMsCisrCQlJTlBVVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1l dGFfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJt ZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIERp cmVjdGlvbiB7CisgCQlMRUZULAorQEAgLTk0MiwyMSArMTA1MiwyMSBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0 eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlf IiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dldF90eXBlICgpIildCisgCXB1Ymxp YyBlbnVtIERpc3BsYXlDb3JuZXIgeworIAkJVE9QTEVGVCwKKyAJCVRPUFJJR0hULAorIAkJQk9U VE9NTEVGVCwKKyAJCUJPVFRPTVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9 ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5 cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMg ZW51bSBEaXNwbGF5RGlyZWN0aW9uIHsKKyAJCVVQLAorIAkJRE9XTiwKKyAJCUxFRlQsCisgCQlS SUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBj cHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1ldGFfZWRnZV90eXBlX2dldF90eXBl ICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVm aXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGVudW0gRWRnZVR5cGUgeworIAkJV0lORE9XLAorIAkJTU9OSVRPUiwKK0BA IC05NjcsMTIgKzEwNzcsMTEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJU1VDQ0VTUywKKyAJCUVS Uk9SCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBj cHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dldF90 eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNw cmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfZmxhZ3NfZ2V0X3R5 cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBGcmFtZUZsYWdzIHsKKyAJCUFMTE9X U19ERUxFVEUsCisgCQlBTExPV1NfTUVOVSwKKy0JCUFMTE9XU19BUFBNRU5VLAorIAkJQUxMT1dT X01JTklNSVpFLAorIAkJQUxMT1dTX01BWElNSVpFLAorIAkJQUxMT1dTX1ZFUlRJQ0FMX1JFU0la RSwKK0BAIC05ODQsMTIgKzEwOTMsMTEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJQUxMT1dTX1NI QURFLAorIAkJQUxMT1dTX01PVkUsCisgCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcsCisg CQlBQk9WRSwKKyAJCVRJTEVEX0xFRlQsCisgCQlUSUxFRF9SSUdIVAorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1F X1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZS QU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJ cHVibGljIGVudW0gRnJhbWVUeXBlIHsKKyAJCU5PUk1BTCwKKyAJCURJQUxPRywKK0BAIC0xMDAx LDcgKzExMDksNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlMQVNUOworIAkJcHVibGljIHVub3du ZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAi bWV0YV9ncmFiX29wX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0 YV9ncmFiX29wX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEdyYWJPcCB7CisgCQlOT05F LAorIAkJV0lORE9XX0JBU0UsCitAQCAtMTAyOCwxMiArMTEzNiwyNiBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlLRVlCT0FSRF9SRVNJWklOR19TRSwKKyAJCUtFWUJPQVJEX1JFU0laSU5HX1cKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oIiwgY3ByZWZpeCA9ICJNRVRBX0lOSElCSVRfU0hPUlRDVVRTX0RJQUxPR19S RVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX3Jlc3Bv bnNlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFWSVRZXyIsIHR5cGVfaWQgPSAibWV0YV9ncmF2aXR5 X2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIEdyYXZpdHkgeworKwkJTk9ORSwKKysJCU5P UlRIX1dFU1QsCisrCQlOT1JUSCwKKysJCU5PUlRIX0VBU1QsCisrCQlXRVNULAorKwkJQ0VOVEVS LAorKwkJRUFTVCwKKysJCVNPVVRIX1dFU1QsCisrCQlTT1VUSCwKKysJCVNPVVRIX0VBU1QsCisr CQlTVEFUSUMKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjcHJlZml4ID0gIk1FVEFfSU5ISUJJVF9TSE9SVENVVFNfRElBTE9HX1JFU1BPTlNFXyIsIHR5 cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0Y3V0c19kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUg KCkiKV0KKyAJcHVibGljIGVudW0gSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNlIHsKKyAJ CUFMTE9XLAorIAkJREVOWQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9 ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19B Q1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsKKyAJCU5PTkUsCisgCQlXT1JLU1BB Q0VfMSwKK0BAIC0xMTIyLDIyICsxMjQ0LDI1IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU1PVkVf VE9fU0lERV9XLAorIAkJTU9WRV9UT19DRU5URVIsCisgCQlPVkVSTEFZX0tFWSwKKysJCUxPQ0FU RV9QT0lOVEVSX0tFWSwKKyAJCUlTT19ORVhUX0dST1VQLAorIAkJQUxXQVlTX09OX1RPUCwKKyAJ CVNXSVRDSF9NT05JVE9SLAorIAkJUk9UQVRFX01PTklUT1IsCisgCQlMQVNUCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9L RVlfQklORElOR18iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZmxhZ3NfZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZp eCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFn c19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFn cyB7CisgCQlOT05FLAorIAkJUEVSX1dJTkRPVywKKyAJCUJVSUxUSU4sCisgCQlJU19SRVZFUlNF RCwKKy0JCU5PTl9NQVNLQUJMRQorKwkJTk9OX01BU0tBQkxFLAorKwkJSUdOT1JFX0FVVE9SRVBF QVQsCisrCQlOT19BVVRPX0dSQUIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFURVJfIiwgdHlwZV9pZCA9ICJtZXRhX2xh dGVyX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0YV9sYXRl cl90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIExhdGVyVHlwZSB7CisgCQlSRVNJ WkUsCisgCQlDQUxDX1NIT1dJTkcsCitAQCAtMTE0NiwyNSArMTI3MSwyNSBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlCRUZPUkVfUkVEUkFXLAorIAkJSURMRQorIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElSRUNU SU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dl dF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CisgCQlMVFIsCisg CQlSVEwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIs IGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxh Z3NfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6 ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIE1heGltaXpl RmxhZ3MgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMLAorIAkJQk9USAorIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBjcHJlZml4ID0g Ik1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgp IildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKyAJCVBPSU5URVJf QUxSRUFEWV9HUkFCQkVELAorIAkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIsIGNw cmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21v bml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRD SF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dl dF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIE1vbml0b3JTd2l0Y2hDb25maWdUeXBlIHsKKyAJ CUFMTF9NSVJST1IsCisgCQlBTExfTElORUFSLAorQEAgLTExNzIsNyArMTI5Nyw3IEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJCUJVSUxUSU4sCisgCQlVTktOT1dOCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIs IHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJ T05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJ cHVibGljIGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKyAJCVVQLAorIAkJRE9XTiwKK0BAIC0xMTgz LDcgKzEzMDgsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlET1dOX0xFRlQsCisgCQlET1dOX1JJ R0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwg Y3ByZWZpeCA9ICJNRVRBX1BBRF9BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX3BhZF9hY3Rpb25f dHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjcHJlZml4ID0gIk1FVEFfUEFEX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfcGFk X2FjdGlvbl90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFBhZEFjdGlvblR5cGUg eworIAkJQlVUVE9OLAorIAkJUklORywKK0BAIC0xMjIzLDMwICsxMzQ4LDM5IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCURSQUdHQUJMRV9CT1JERVJfV0lEVEgsCisgCQlBVVRPX01BWElNSVpFLAor IAkJQ0VOVEVSX05FV19XSU5ET1dTLAorLQkJRFJBR19USFJFU0hPTEQ7CisrCQlEUkFHX1RIUkVT SE9MRCwKKysJCUxPQ0FURV9QT0lOVEVSLAorKwkJQ0hFQ0tfQUxJVkVfVElNRU9VVDsKKyAJCXB1 YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9T SEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCkiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJN RVRBXyIsIHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlw dWJsaWMgZW51bSBTZWxlY3Rpb25UeXBlIHsKKysJCVNFTEVDVElPTl9QUklNQVJZLAorKwkJU0VM RUNUSU9OX0NMSVBCT0FSRCwKKysJCVNFTEVDVElPTl9ETkQsCisrCQlOX1NFTEVDVElPTl9UWVBF UworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVm aXggPSAiTUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0 X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2hhZG93TW9kZSB7CisgCQlBVVRPLAorIAkJRk9S Q0VEX09GRiwKKyAJCUZPUkNFRF9PTgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRh X3NpZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0 X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2lkZSB7CisgCQlMRUZULAorIAkJUklHSFQsCisg CQlUT1AsCisgCQlCT1RUT00KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21wb3NpdG9yLmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9pZCA9 ICJtZXRhX3NpemVfY2hhbmdlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBl X2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2l6 ZUNoYW5nZSB7CisgCQlNQVhJTUlaRSwKKyAJCVVOTUFYSU1JWkUsCisgCQlGVUxMU0NSRUVOLAor IAkJVU5GVUxMU0NSRUVOCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZRVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWNr X2xheWVyX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tf bGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU3RhY2tMYXllciB7CisgCQlERVNL VE9QLAorIAkJQk9UVE9NLAorQEAgLTEyNTYsMTkgKzEzOTAsMTkgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJT1ZFUlJJREVfUkVESVJFQ1QsCisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9MSVNUXyIs IHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwg dHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFRh Ykxpc3QgeworIAkJTk9STUFMLAorIAkJRE9DS1MsCisgCQlHUk9VUCwKKyAJCU5PUk1BTF9BTEwK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJl Zml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190eXBl X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKyAJCUlDT04sCisg CQlJTlNUQU5UTFkKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFs X21vZGlmaWVyX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92 aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0g VmlydHVhbE1vZGlmaWVyIHsKKyAJCVNISUZUX01BU0ssCitAQCAtMTI4MiwxNyArMTQxNiwxNyBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlNT0Q0X01BU0ssCisgCQlNT0Q1X01BU0sKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVU QV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19jbGllbnRfdHlw ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0 YV93aW5kb3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gV2luZG93 Q2xpZW50VHlwZSB7CisgCQlXQVlMQU5ELAorIAkJWDExCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVf IiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJ TkRPV19NRU5VXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfbWVudV90eXBlX2dldF90eXBlICgp IildCisgCXB1YmxpYyBlbnVtIFdpbmRvd01lbnVUeXBlIHsKKyAJCVdNLAorIAkJQVBQCisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4ID0g Ik1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0g Ik1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgZW51bSBXaW5kb3dUeXBlIHsKKyAJCU5PUk1BTCwKKyAJCURFU0tUT1AsCitA QCAtMTMxMSw1MSArMTQ0NSw1NyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlETkQsCisgCQlPVkVS UklERV9PVEhFUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAoTWV0YS5JZGxlTW9uaXRvciBtb25p dG9yLCB1aW50IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisgCXB1YmxpYyBkZWxlZ2F0 ZSB2b2lkIEtleUhhbmRsZXJGdW5jIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgTWV0YS5XaW5kb3cg d2luZG93LCBbQ0NvZGUgKHR5cGUgPSAiQ2x1dHRlcktleUV2ZW50KiIpXSBDbHV0dGVyLktleUV2 ZW50PyBldmVudCwgTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0K KyAJcHVibGljIGRlbGVnYXRlIHZvaWQgUHJlZnNDaGFuZ2VkRnVuYyAoTWV0YS5QcmVmZXJlbmNl IHByZWYpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGlu c3RhbmNlX3BvcyA9IDEuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFdpbmRv d0ZvcmVhY2hGdW5jIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfQ1VSUkVOVF9USU1FIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFf Q1VSUkVOVF9USU1FIildCisgCXB1YmxpYyBjb25zdCBpbnQgQ1VSUkVOVF9USU1FOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfREVG QVVMVF9JQ09OX05BTUUiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFNRSIpXQorIAlwdWJsaWMgY29uc3Qg c3RyaW5nIERFRkFVTFRfSUNPTl9OQU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9IRUlHSFQiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdI VCIpXQorIAlwdWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRB X0lDT05fV0lEVEgiKV0KKyAJcHVibGljIGNvbnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUFKT1Jf VkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj bmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBNQUpPUl9W RVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNu YW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKyAJcHVibGlj IGNvbnN0IGludCBNSUNST19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklf SUNPTl9IRUlHSFQiKV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fSEVJR0hUOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFf TUlOSV9JQ09OX1dJRFRIIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRIIildCisgCXB1YmxpYyBjb25zdCBp bnQgTUlOSV9JQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04i KV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUExVR0lOX0FQSV9WRVJT SU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIk1FVEFfUExVR0lOX0FQSV9WRVJTSU9OIildCisgCXB1YmxpYyBjb25zdCBpbnQgUExVR0lO X0FQSV9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24u aCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JF Rk9SRV9SRURSQVciKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9CRUZPUkVfUkVEUkFX OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0g Ik1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZIild CisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlf UkVEUkFXIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFXIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJ VFlfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCisg CXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tFWUJP QVJEX0lEIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCisgCXB1YmxpYyBjb25zdCBp bnQgVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQi KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAi TUVUQV9WSVJUVUFMX0NPUkVfUE9JTlRFUl9JRCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFZJUlRV QUxfQ09SRV9QT0lOVEVSX0lEOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGlj IHZvaWQgYWRkX2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2Zs YWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdG bGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfaW5pdCAoKTsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBl eGl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0 cmluZyBzcmMsIHNpemVfdCBuKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLk9wdGlvbkNvbnRleHQgZ2V0 X29wdGlvbl9jb250ZXh0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7 CitAQCAtMTM2OCw2ICsxNTA4LDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lz dGVyX3dpdGhfc2Vzc2lvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfY2x1dHRlcl9kZWJ1Z19mbGFn cyAoQ2x1dHRlci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3MsIENsdXR0ZXIuRHJhd0RlYnVnRmxhZyBk cmF3X2ZsYWdzLCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlja19mbGFncyk7CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQg cmVzdGFydCAoc3RyaW5nPyBtZXNzYWdlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgaW50IHJ1biAoKTsKK0BAIC0xMzc1LDYg KzE1MTcsMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2du b21lX3dtX2tleWJpbmRpbmdzIChzdHJpbmcgd21fa2V5YmluZGluZ3MpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNl dF93bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEteDExLWRpc3BsYXkuaCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoKTsKKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0 aWMgYm9vbCB4MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9Cisr W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImxpYm11dHRlci03LWN1c3RvbS5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBiZWZvcmVfZnJhbWUgeworK30KKytbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibGlibXV0dGVyLTctY3VzdG9tLmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGZyYW1lIHsKKyt9CitkaWZmIC0tZ2l0IHZhcGkv bGlibXV0dGVyLWNvZ2wtNC52YXBpIHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDdkYzE4NDc2Li4wMDAwMDAwMAorLS0tIHZhcGkvbGli bXV0dGVyLWNvZ2wtNC52YXBpCisrKysgL2Rldi9udWxsCitAQCAtMSwxMjcyICswLDAgQEAKKy0v KiBsaWJtdXR0ZXItY29nbC00LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2Rp ZnkuICovCistCistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNv Z2wiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCist bmFtZXNwYWNlIENvZ2wgeworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xh c3MgQml0bWFwIDogQ29nbC5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJpdG1hcCAoKTsKKy0JCXB1YmxpYyBzdGF0aWMg dWludDMyIGVycm9yX3F1YXJrICgpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIEJpdG1h cC5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGl4ZWxGb3JtYXQgZ2V0X2Zv cm1hdCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdl dF9oZWlnaHQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGlu dCBnZXRfcm93c3RyaWRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X3NpemVfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUs IG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0Nv bXBhY3RdCistCXB1YmxpYyBjbGFzcyBFdWxlciB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9z dXJlX2dldF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MTQiKV0KKy0JcHVibGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2Nv cHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9tYXRl cmlhbF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIE1hdGVyaWFs IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlw dWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuTWF0 ZXJpYWwgY29weSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBmb3JlYWNo X2xheWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9y IGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lv biAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENv Z2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJf aW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1v ZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9k ZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2ds Lk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgp OworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xh eWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9y IHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5IYW5kbGUgZ2V0 X3VzZXJfcHJvZ3JhbSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29n bC5IYW5kbGUgQHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lk IHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhhRnVu YyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2ds LkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNl dF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9y IGNvbnN0YW50X2NvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf Y29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9h dCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHVi ICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlm ZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChD b2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXIgKGludCBsYXllcl9pbmRleCwgQ29nbC5IYW5kbGUgdGV4dHVyZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxh eWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFudCAo aW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfZmlsdGVycyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsRmlsdGVy IG1pbl9maWx0ZXIsIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJpeCBt YXRyaXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVy X3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wg ZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxX cmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1v ZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21v ZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQg bGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hp bmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIg KENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIENvZ2wuSGFuZGxlIGdldF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2ds Lk1hdGVyaWFsTGF5ZXJUeXBlIGdldF90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9wICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9z ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUg Z2V0X3dyYXBfbW9kZV90ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9vYmplY3RfZ2V0X2d0eXBlICgpIildCistCXB1 YmxpYyBhYnN0cmFjdCBjbGFzcyBPYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE9iamVjdCAoKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2Zmc2Ny ZWVuX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgT2Zmc2NyZWVuIDogQ29nbC5PYmpl Y3QsIENvZ2wuRnJhbWVidWZmZXIgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE9mZnNjcmVlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCogQHJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgT2Zmc2NyZWVuLnRvX3RleHR1cmUg KENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1bnJlZiAo dm9pZCogb2Zmc2NyZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0JCXB1YmxpYyBPZmZzY3JlZW4ud2l0aF90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4 dHVyZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg dHlwZV9pZCA9ICJjb2dsX29uc2NyZWVuX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg T25zY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT25zY3JlZW4gKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuT25zY3JlZW5E aXJ0eUNsb3N1cmUgYWRkX2RpcnR5X2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9w b3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuRGlydHlDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2Vy RGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgYWRkX3Jlc2l6ZV9jYWxs YmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlblJl c2l6ZUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0 cm95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVpbnQgYWRkX3N3YXBfYnVmZmVy c19jYWxsYmFjayAoQ29nbC5Td2FwQnVmZmVyc05vdGlmeSBjYWxsYmFjayk7CistCQlwdWJsaWMg c3RhdGljIHZvaWQgY2x1dHRlcl9iYWNrZW5kX3NldF9zaXplX0NMVVRURVIgKGludCB3aWR0aCwg aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGlu dCBnZXRfYnVmZmVyX2FnZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlw dWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9yZXNpemFibGUgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBoaWRlICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9kaXJ0eV9jYWxsYmFjayAo Q29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE0IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfZnJhbWVfY2FsbGJhY2sgKENvZ2wuRnJh bWVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgcmVtb3ZlX3Jlc2l6ZV9jYWxsYmFjayAoQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1 cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9z d2FwX2J1ZmZlcnNfY2FsbGJhY2sgKHVpbnQgaWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoQ29nbC5Cb29sIHJlc2l6YWJsZSk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzaG93ICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVy cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzd2Fw X2J1ZmZlcnNfd2l0aF9kYW1hZ2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzd2FwX3JlZ2lv biAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9j b3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfb25z Y3JlZW5fZGlydHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBjbGFzcyBPbnNjcmVlbkRpcnR5Q2xvc3Vy ZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9yZXNpemVfY2xvc3VyZV9nZXRfZ3R5cGUgKCki KV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGNs YXNzIE9uc2NyZWVuUmVzaXplQ2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlwZSAo KSIpXQorLQlwdWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2dsLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxpbmUg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGlu ZSBjb3B5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg Zm9yZWFjaF9sYXllciAoQ29nbC5QaXBlbGluZUxheWVyQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVBbHBoYUZ1 bmMgZ2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3RfcmVmZXJlbmNlICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wu Q29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg Q29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBnZXRf Y3VsbF9mYWNlX21vZGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBl bWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5X aW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21hZ19maWx0 ZXIgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21pbl9maWx0ZXIgKGludCBsYXll cl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5C b29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRl eCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVub3duZWQgQ29n bC5UZXh0dXJlIGdldF9sYXllcl90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRf bGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFw X21vZGVfcyAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K Ky0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChp bnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IGludCBnZXRfbl9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgQ29nbC5Cb29sIGdldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVz cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9z cGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcgdW5pZm9ybV9u YW1lKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkhhbmRs ZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9u IChDb2dsLlBpcGVsaW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5j ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1i aWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9y KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0 X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAo Q29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJl ZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1 aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNr IGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2N1bGxfZmFjZV9tb2RlIChDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGN1bGxfZmFj ZV9tb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9udF9m YWNlX3dpbmRpbmcgKENvZ2wuV2luZGluZyBmcm9udF93aW5kaW5nKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGlu dCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29t YmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfZmls dGVycyAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1pbl9maWx0ZXIsIENv Z2wuUGlwZWxpbmVGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBD b2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5U ZXh0dXJlVHlwZSB0ZXh0dXJlX3R5cGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVk IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOwor LQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5U ZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5l V3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGlu ZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxp bmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVs aW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgQ29nbC5Cb29sIHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKENvZ2wuQm9vbCBlbmFibGUp IHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hp bmluZXNzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAoaW50IHVuaWZvcm1fbG9jYXRp b24sIGZsb2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IHZhbHVlKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3Jt X2Zsb2F0IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9uZW50cywgaW50IGNvdW50 LCBmbG9hdCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfdW5pZm9ybV9pbnQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25l bnRzLCBpbnQgY291bnQsIGludCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9u LCBpbnQgZGltZW5zaW9ucywgaW50IGNvdW50LCBDb2dsLkJvb2wgdHJhbnNwb3NlLCBmbG9hdCB2 YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf dXNlcl9wcm9ncmFtIChDb2dsLkhhbmRsZSBwcm9ncmFtKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0Nv bXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVidWZmZXJf Z2V0X2d0eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgRnJhbWVidWZmZXIgOiBDb2dsLk9i amVjdCB7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29s IGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIHZvaWQgY2xlYXIgKHVsb25nIGJ1ZmZlcnMsIENvZ2wuQ29sb3IgY29s b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY2xlYXI0 ZiAodWxvbmcgYnVmZmVycywgZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxv YXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg ZGlzY2FyZF9idWZmZXJzICh1bG9uZyBidWZmZXJzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X211bHRpdGV4dHVyZWRfcmVjdGFuZ2xlIChDb2ds LlBpcGVsaW5lIHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9h dCB5XzIsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMs IGludCB0ZXhfY29vcmRzX2xlbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgZHJhd19yZWN0YW5nbGUgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGZsb2F0 IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd19yZWN0YW5nbGVzIChDb2dsLlBpcGVs aW5lIHBpcGVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSBjb29y ZGluYXRlcywgdWludCBuX3JlY3RhbmdsZXMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfdGV4dHVyZWRfcmVjdGFuZ2xlIChDb2dsLlBpcGVsaW5l IHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZs b2F0IHNfMSwgZmxvYXQgdF8xLCBmbG9hdCBzXzIsIGZsb2F0IHRfMik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd190ZXh0dXJlZF9yZWN0YW5nbGVz IChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g ZmxvYXRbXSBjb29yZGluYXRlcywgdWludCBuX3JlY3RhbmdsZXMpOworLQkJcHVibGljIHN0YXRp YyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgZmluaXNoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBi b3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9hbHBoYV9iaXRzICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfYmx1ZV9iaXRzICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNr IGdldF9jb2xvcl9tYXNrICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRoX3RleHR1cmUgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVw dGhfdGV4dHVyZV9lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0J CXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kaXRoZXJfZW5hYmxl ZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2dy ZWVuX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50 IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pc19zdGVyZW8gKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuTWF0cml4IGdldF9t b2RlbHZpZXdfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXggKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9yZWRfYml0cyAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF9zYW1wbGVzX3Blcl9waXhl bCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIwIildCistCQlwdWJsaWMgQ29nbC5TdGVy ZW9Nb2RlIGdldF9zdGVyZW9fbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIGdldF92aWV3cG9ydDRmdiAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIG91dCB1bm93bmVkIGZsb2F0IHZpZXdwb3J0WzRdKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfaGVpZ2h0ICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9ydF93 aWR0aCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBn ZXRfdmlld3BvcnRfeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyBmbG9hdCBnZXRfdmlld3BvcnRfeSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyBpbnQgZ2V0X3dpZHRoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIGlkZW50aXR5X21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxv YXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwZXJzcGVjdGl2ZSAo ZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcG9wX2NsaXAgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcG9wX21hdHJp eCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwdXNo X21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9p ZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBm bG9hdCB5XzIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IHB1c2hfc2Npc3Nvcl9jbGlwIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFk X3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxG b3JtYXQgZm9ybWF0LCB1aW50OCBwaXhlbHMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBp bnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1w bGVzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgcmVz b2x2ZV9zYW1wbGVzX3JlZ2lvbiAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZSAo ZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1 bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0 ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2VuYWJs ZWQgKENvZ2wuQm9vbCBlbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCist CQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoQ29nbC5Cb29sIGRlcHRoX3dy aXRlX2VuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2RpdGhlcl9lbmFibGVkIChDb2dsLkJvb2wgZGl0aGVyX2VuYWJsZWQpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0 cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zYW1w bGVzX3Blcl9waXhlbCAoaW50IHNhbXBsZXNfcGVyX3BpeGVsKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIwIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3RlcmVvX21vZGUgKENvZ2wuU3RlcmVv TW9kZSBzdGVyZW9fbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgdm9pZCBzZXRfdmlld3BvcnQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9h dCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHopOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5 cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNl IFRleHR1cmUgOiBDb2dsLk9iamVjdCB7CistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgp IHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVy ZUNvbXBvbmVudHMgZ2V0X2NvbXBvbmVudHMgKCk7CistCQlwdWJsaWMgaW50IGdldF9kYXRhIChD b2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJ cHVibGljIENvZ2wuQm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwg b3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7CistCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOwor LQkJcHVibGljIGludCBnZXRfbWF4X3dhc3RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CistCQlwdWJs aWMgdWludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGlzX3NsaWNlZCAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJv bV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENv Z2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBo ZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwg Q29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRh dGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5l d19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENv Z2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9mb3Jl aWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQgaGVp Z2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9ybWF0 IGZvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVyZSBuZXdf ZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGlu dCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wu VGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0 dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9uZW50cyAo Q29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wg c2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBk YXRhLCBpbnQgbGV2ZWwpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcmVtdWx0aXBsaWVkIChDb2dsLkJvb2wgcHJl bXVsdGlwbGllZCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb24gKGludCBzcmNfeCwg aW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0 X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwg dWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uX2Zyb21fYml0bWFwIChpbnQgc3JjX3gs IGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRz dF9oZWlnaHQsIENvZ2wuQml0bWFwIGJpdG1hcCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtTaW1wbGVUeXBlXQorLQlwdWJsaWMgc3RydWN0 IEFuZ2xlIDogaW50MzIgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbU2ltcGxlVHlwZV0KKy0JcHVibGljIHN0cnVjdCBCb29sIDogaW50IHsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lk ID0gImNvZ2xfY29sb3JfZ2V0X2d0eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0cnVjdCBDb2xvciB7CistCQlwdWJsaWMgQ29nbC5Db2xvcj8gY29weSAo KTsKKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGVxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIp OworLQkJcHVibGljIGZsb2F0IGdldF9hbHBoYSAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfYWxw aGFfYnl0ZSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfZmxvYXQgKCk7CistCQlwdWJs aWMgZmxvYXQgZ2V0X2JsdWUgKCk7CistCQlwdWJsaWMgdWludDggZ2V0X2JsdWVfYnl0ZSAoKTsK Ky0JCXB1YmxpYyBmbG9hdCBnZXRfYmx1ZV9mbG9hdCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRf Z3JlZW4gKCk7CistCQlwdWJsaWMgdWludDggZ2V0X2dyZWVuX2J5dGUgKCk7CistCQlwdWJsaWMg ZmxvYXQgZ2V0X2dyZWVuX2Zsb2F0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF9yZWQgKCk7Cist CQlwdWJsaWMgdWludDggZ2V0X3JlZF9ieXRlICgpOworLQkJcHVibGljIGZsb2F0IGdldF9yZWRf ZmxvYXQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBp bml0X2Zyb21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFs cGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRf ZnJvbV80ZnYgKGZsb2F0IGNvbG9yX2FycmF5KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4s IHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2Iild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdF9mcm9tX2hzbCAob3V0IENvZ2wuQ29sb3IgY29s b3IsIGZsb2F0IGh1ZSwgZmxvYXQgc2F0dXJhdGlvbiwgZmxvYXQgbHVtaW5hbmNlKTsKKy0JCXB1 YmxpYyB2b2lkIHByZW11bHRpcGx5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfYnl0ZSAodWludDggYWxwaGEp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhh X2Zsb2F0IChmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfYmx1ZSAoZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChm bG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRm IChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWlu dDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2dyZWVuX2J5dGUgKHVp bnQ4IGdyZWVuKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9ncmVlbl9mbG9hdCAoZmxvYXQgZ3JlZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlZCAoZmxvYXQgcmVkKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWRfYnl0ZSAodWludDggcmVkKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWRfZmxv YXQgKGZsb2F0IHJlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGlj IHZvaWQgdG9faHNsIChvdXQgZmxvYXQgaHVlLCBvdXQgZmxvYXQgc2F0dXJhdGlvbiwgb3V0IGZs b2F0IGx1bWluYW5jZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCB1bnByZW11bHRpcGx5ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCXB1YmxpYyBzdHJ1Y3QgRGVidWdPYmplY3RUeXBlSW5mbyB7CistCQlwdWJs aWMgd2VhayBzdHJpbmcgbmFtZTsKKy0JCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1NpbXBs ZVR5cGVdCistCXB1YmxpYyBzdHJ1Y3QgSGFuZGxlIHsKKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5U eXBlIGdldF90eXBlICgpOworLQkJcHVibGljIENvZ2wuSGFuZGxlIEByZWYgKCk7CistCQlwdWJs aWMgdm9pZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfbWF0cml4X2dldF9ndHlwZSAoKSIpXQorLQlwdWJs aWMgc3RydWN0IE1hdHJpeCB7CistCQlwdWJsaWMgZmxvYXQgeHg7CistCQlwdWJsaWMgZmxvYXQg eXg7CistCQlwdWJsaWMgZmxvYXQgeng7CistCQlwdWJsaWMgZmxvYXQgd3g7CistCQlwdWJsaWMg ZmxvYXQgeHk7CistCQlwdWJsaWMgZmxvYXQgeXk7CistCQlwdWJsaWMgZmxvYXQgenk7CistCQlw dWJsaWMgZmxvYXQgd3k7CistCQlwdWJsaWMgZmxvYXQgeHo7CistCQlwdWJsaWMgZmxvYXQgeXo7 CistCQlwdWJsaWMgZmxvYXQgeno7CistCQlwdWJsaWMgZmxvYXQgd3o7CistCQlwdWJsaWMgZmxv YXQgeHc7CistCQlwdWJsaWMgZmxvYXQgeXc7CistCQlwdWJsaWMgZmxvYXQgenc7CistCQlwdWJs aWMgZmxvYXQgd3c7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29n bC5NYXRyaXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgc3RhdGljIENvZ2wuQm9vbCBlcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMg dm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9h dCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQkJcHVibGljIHVub3duZWQgZmxv YXRbXSBnZXRfYXJyYXkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgQ29nbC5Cb29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CistCQlw dWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJcHVibGlj IHZvaWQgaW5pdF9mcm9tX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfdHJhbnNs YXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBpc19pZGVudGl0eSAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9w b3NpdGlvbl94LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZs b2F0IG9iamVjdF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxk X3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3opOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9h dCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG9ncmFwaGljIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwg ZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlwdWJsaWMg dm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFy LCBmbG9hdCB6X2Zhcik7CistCQlwdWJsaWMgdm9pZCBwcm9qZWN0X3BvaW50cyAoaW50IG5fY29t cG9uZW50cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRl X291dCwgdm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKy0JCXB1YmxpYyB2b2lkIHJv dGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1 bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CistCQlwdWJs aWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzeik7CistCQlwdWJsaWMg dm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0 IHosIHJlZiBmbG9hdCB3KTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludHMgKGludCBu X2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0 cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CistCQlwdWJsaWMgdm9p ZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zcG9zZSAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHZpZXdfMmRfaW5fZnJ1c3R1bSAoZmxv YXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25l YXIsIGZsb2F0IHpfMmQsIGZsb2F0IHdpZHRoXzJkLCBmbG9hdCBoZWlnaHRfMmQpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgdmlld18yZF9pbl9wZXJzcGVj dGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6XzJk LCBmbG9hdCB3aWR0aF8yZCwgZmxvYXQgaGVpZ2h0XzJkKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0cnVjdCBPbnNjcmVlbkRpcnR5SW5m byB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdp ZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1 Y3QgVGV4dHVyZVZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5 OworLQkJcHVibGljIGZsb2F0IHo7CistCQlwdWJsaWMgZmxvYXQgdHg7CistCQlwdWJsaWMgZmxv YXQgdHk7CistCQlwdWJsaWMgQ29nbC5Db2xvciBjb2xvcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RydWN0IFVzZXJEYXRhS2V5IHsKKy0J CXB1YmxpYyBpbnQgdW51c2VkOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNuYW1lID0gIl9Db2dsQ29sb3JTaXplQ2hlY2siLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBfQ29sb3JTaXplQ2hlY2sgeworLQkJW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1l X2Fzc2VydF9Db2dsQ29sb3Jfc2l6ZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJfQ29nbE1hdHJpeFNpemVDaGVjayIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IF9NYXRyaXhTaXplQ2hlY2sgeworLQkJW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGls ZV90aW1lX2Fzc2VydF9Db2dsTWF0cml4X3NpemU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiX0NvZ2xUZXh0dXJlVmVydGV4U2l6ZUNo ZWNrIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgX1RleHR1cmVWZXJ0 ZXhTaXplQ2hlY2sgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJs aWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1lX2Fzc2VydF9Db2dsVGV4dHVyZVZlcnRleF9zaXpl OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9BVFRSSUJVVEVfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBBdHRyaWJ1dGVUeXBlIHsKKy0J CUJZVEUsCistCQlVTlNJR05FRF9CWVRFLAorLQkJU0hPUlQsCistCQlVTlNJR05FRF9TSE9SVCwK Ky0JCUZMT0FUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY3ByZWZpeCA9ICJDT0dMX0JJVE1BUF9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBCaXRtYXBFcnJvciB7 CistCQlGQUlMRUQsCistCQlVTktOT1dOX1RZUEUsCistCQlDT1JSVVBUX0lNQUdFCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X0JMRU5EX1NUUklOR19FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBCbGVuZFN0cmluZ0Vycm9yIHsKKy0JCVBB UlNFX0VSUk9SLAorLQkJQVJHVU1FTlRfUEFSU0VfRVJST1IsCistCQlJTlZBTElEX0VSUk9SLAor LQkJR1BVX1VOU1VQUE9SVEVEX0VSUk9SOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVhcmsg KCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX0JVRkZFUl9CSVRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFn c10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBCdWZmZXJCaXQg eworLQkJQ09MT1IsCistCQlERVBUSCwKKy0JCVNURU5DSUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlw dWJsaWMgZW51bSBCdWZmZXJUYXJnZXQgeworLQkJV0lORE9XX0JVRkZFUiwKKy0JCU9GRlNDUkVF Tl9CVUZGRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfQ09MT1JfTUFTS18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J W0ZsYWdzXQorLQlwdWJsaWMgZW51bSBDb2xvck1hc2sgeworLQkJTk9ORSwKKy0JCVJFRCwKKy0J CUdSRUVOLAorLQkJQkxVRSwKKy0JCUFMUEhBLAorLQkJQUxMCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0RFUFRIX1RFU1Rf RlVOQ1RJT05fIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIERlcHRoVGVz dEZ1bmN0aW9uIHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0JCUVRVUFMLAorLQkJTEVRVUFMLAor LQkJR1JFQVRFUiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFMLAorLQkJQUxXQVlTCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVS RV9SRUNUQU5HTEUsCistCQlURVhUVVJFX05QT1QsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRV UkVfUkVBRF9QSVhFTFMsCistCQlTSEFERVJTX0dMU0wsCistCQlPRkZTQ1JFRU4sCistCQlPRkZT Q1JFRU5fTVVMVElTQU1QTEUsCistCQlPRkZTQ1JFRU5fQkxJVCwKKy0JCUZPVVJfQ0xJUF9QTEFO RVMsCistCQlTVEVOQ0lMX0JVRkZFUiwKKy0JCVZCT1MsCistCQlQQk9TLAorLQkJVU5TSUdORURf SU5UX0lORElDRVMsCistCQlERVBUSF9SQU5HRSwKKy0JCVRFWFRVUkVfTlBPVF9CQVNJQywKKy0J CVRFWFRVUkVfTlBPVF9NSVBNQVAsCistCQlURVhUVVJFX05QT1RfUkVQRUFULAorLQkJUE9JTlRf U1BSSVRFLAorLQkJVEVYVFVSRV8zRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1JFQUQsCistCQlNQVBf QlVGRkVSX0ZPUl9XUklURSwKKy0JCU9OU0NSRUVOX01VTFRJUExFLAorLQkJREVQVEhfVEVYVFVS RQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVt IEZpbHRlclJldHVybiB7CistCQlDT05USU5VRSwKKy0JCVJFTU9WRQorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0dfTU9E RV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAorLQkJ RVhQT05FTlRJQUxfU1FVQVJFRAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JcHVibGljIGVudW0gRnJh bWVFdmVudCB7CistCQlTWU5DLAorLQkJQ09NUExFVEUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVCVUZGRVJfRVJS T1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEZyYW1lYnVmZmVyRXJy b3IgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZSQU1FQlVGRkVSX0VSUk9SX0FMTE9DQVRF IildCistCQlGUkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURTsKKy0JCXB1YmxpYyBzdGF0aWMgdWlu dDMyIHF1YXJrICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdORURfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEluZGljZXNUeXBlIHsKKy0JCUJZVEUsCistCQlT SE9SVCwKKy0JCUlOVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9BTFBIQV9GVU5DXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbEFscGhhRnVuYyB7CistCQlORVZFUiwK Ky0JCUxFU1MsCistCQlFUVVBTCwKKy0JCUxFUVVBTCwKKy0JCUdSRUFURVIsCistCQlOT1RFUVVB TCwKKy0JCUdFUVVBTCwKKy0JCUFMV0FZUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9GSUxURVJfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsRmlsdGVyIHsKKy0JCU5F QVJFU1QsCistCQlMSU5FQVIsCistCQlORUFSRVNUX01JUE1BUF9ORUFSRVNULAorLQkJTElORUFS X01JUE1BUF9ORUFSRVNULAorLQkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorLQkJTElORUFSX01J UE1BUF9MSU5FQVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBNYXRl cmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxfTEFZRVJf VFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xf TUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgeworLQkJUkVQ RUFULAorLQkJQ0xBTVBfVE9fRURHRSwKKy0JCUFVVE9NQVRJQworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9B TFBIQV9GVU5DXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBlbGlu ZUFscGhhRnVuYyB7CistCQlORVZFUiwKKy0JCUxFU1MsCistCQlFUVVBTCwKKy0JCUxFUVVBTCwK Ky0JCUdSRUFURVIsCistCQlOT1RFUVVBTCwKKy0JCUdFUVVBTCwKKy0JCUFMV0FZUworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9QSVBFTElORV9DVUxMX0ZBQ0VfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVi bGljIGVudW0gUGlwZWxpbmVDdWxsRmFjZU1vZGUgeworLQkJTk9ORSwKKy0JCUZST05ULAorLQkJ QkFDSywKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElQRUxJTkVfRklMVEVSXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZUZpbHRlciB7CistCQlORUFSRVNULAorLQkJ TElORUFSLAorLQkJTkVBUkVTVF9NSVBNQVBfTkVBUkVTVCwKKy0JCUxJTkVBUl9NSVBNQVBfTkVB UkVTVCwKKy0JCU5FQVJFU1RfTUlQTUFQX0xJTkVBUiwKKy0JCUxJTkVBUl9NSVBNQVBfTElORUFS CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX1BJUEVMSU5FX1dSQVBfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZVdyYXBNb2Rl IHsKKy0JCVJFUEVBVCwKKy0JCU1JUlJPUkVEX1JFUEVBVCwKKy0JCUNMQU1QX1RPX0VER0UsCist CQlBVVRPTUFUSUMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfUElYRUxfRk9STUFUXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVudW0g UGl4ZWxGb3JtYXQgeworLQkJQU5ZLAorLQkJQV84LAorLQkJUkdCXzU2NSwKKy0JCVJHQkFfNDQ0 NCwKKy0JCVJHQkFfNTU1MSwKKy0JCVlVViwKKy0JCUdfOCwKKy0JCVJHXzg4LAorLQkJUkdCXzg4 OCwKKy0JCUJHUl84ODgsCistCQlSR0JBXzg4ODgsCistCQlCR1JBXzg4ODgsCistCQlBUkdCXzg4 ODgsCistCQlBQkdSXzg4ODgsCistCQlSR0JBXzEwMTAxMDIsCistCQlCR1JBXzEwMTAxMDIsCist CQlBUkdCXzIxMDEwMTAsCistCQlBQkdSXzIxMDEwMTAsCistCQlSR0JBXzg4ODhfUFJFLAorLQkJ QkdSQV84ODg4X1BSRSwKKy0JCUFSR0JfODg4OF9QUkUsCistCQlBQkdSXzg4ODhfUFJFLAorLQkJ UkdCQV80NDQ0X1BSRSwKKy0JCVJHQkFfNTU1MV9QUkUsCistCQlSR0JBXzEwMTAxMDJfUFJFLAor LQkJQkdSQV8xMDEwMTAyX1BSRSwKKy0JCUFSR0JfMjEwMTAxMF9QUkUsCistCQlBQkdSXzIxMDEw MTBfUFJFLAorLQkJREVQVEhfMTYsCistCQlERVBUSF8zMiwKKy0JCURFUFRIXzI0X1NURU5DSUxf OAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J W0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFJlYWRQ aXhlbHNGbGFncyB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfUkVBRF9QSVhFTFNfQ09MT1Jf QlVGRkVSIildCistCQlSRUFEX1BJWEVMU19DT0xPUl9CVUZGRVIKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUkVOREVSRVJf RVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFJlbmRlcmVyRXJy b3IgeworLQkJWExJQl9ESVNQTEFZX09QRU4sCistCQlCQURfQ09OU1RSQUlOVAorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9T SEFERVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgZW51bSBTaGFkZXJUeXBlIHsKKy0JCVZFUlRFWCwKKy0JCUZSQUdN RU5UCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX1NURVJFT18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVu dW0gU3RlcmVvTW9kZSB7CistCQlCT1RILAorLQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1NZ U1RFTV9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorLQlwdWJsaWMgZW51bSBTeXN0ZW1FcnJvciB7CistCQlVTlNVUFBPUlRFRCwKKy0J CU5PX01FTU9SWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX0NPTVBPTkVOVFNfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBlbnVtIFRleHR1 cmVDb21wb25lbnRzIHsKKy0JCUEsCistCQlSRywKKy0JCVJHQiwKKy0JCVJHQkEsCistCQlERVBU SAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9URVhUVVJFX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBlbnVtIFRleHR1cmVFcnJvciB7CistCQlT SVpFLAorLQkJRk9STUFULAorLQkJQkFEX1BBUkFNRVRFUiwKKy0JCVRZUEU7CistCQlwdWJsaWMg c3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1Ymxp YyBlbnVtIFRleHR1cmVGbGFncyB7CistCQlOT05FLAorLQkJTk9fQVVUT19NSVBNQVAsCistCQlO T19TTElDSU5HLAorLQkJTk9fQVRMQVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV9UWVBFXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgZW51 bSBUZXh0dXJlVHlwZSB7CistCQlAMkQsCistCQlAM0QsCistCQlSRUNUQU5HTEUKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xf VkVSVElDRVNfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBWZXJ0aWNlc01vZGUgeworLQkJUE9JTlRTLAorLQkJ TElORVMsCistCQlMSU5FX0xPT1AsCistCQlMSU5FX1NUUklQLAorLQkJVFJJQU5HTEVTLAorLQkJ VFJJQU5HTEVfU1RSSVAsCistCQlUUklBTkdMRV9GQU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfV0lORElOR18iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gV2luZGluZyB7CistCQlDTE9DS1dJU0Us CistCQlDT1VOVEVSX0NMT0NLV0lTRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5TWVNfRkVBVFVSRV8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gV2luc3lzRmVhdHVyZSB7CistCQlNVUxUSVBM RV9PTlNDUkVFTiwKKy0JCVNXQVBfVEhST1RUTEUsCistCQlWQkxBTktfQ09VTlRFUiwKKy0JCVZC TEFOS19XQUlULAorLQkJVEVYVFVSRV9GUk9NX1BJWE1BUCwKKy0JCVNXQVBfQlVGRkVSU19FVkVO VCwKKy0JCVNXQVBfUkVHSU9OLAorLQkJU1dBUF9SRUdJT05fVEhST1RUTEUsCistCQlTV0FQX1JF R0lPTl9TWU5DSFJPTklaRUQsCistCQlCVUZGRVJfQUdFLAorLQkJU1lOQ19BTkRfQ09NUExFVEVf RVZFTlQsCistCQlOX0ZFQVRVUkVTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2Fs bGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBNYXRlcmlhbExheWVyQ2FsbGJh Y2sgKENvZ2wuTWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9pbmRleCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2Ny ZWVuRGlydHlDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVlbkRp cnR5SW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgaW5zdGFuY2VfcG9zID0gMy45KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlw dWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblJlc2l6ZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVu IG9uc2NyZWVuLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBPbnNjcmVlblgxMU1hc2tDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVl biwgdWludDMyIGV2ZW50X21hc2spOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgUGlwZWxpbmVMYXllckNhbGxiYWNrIChD b2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJs aWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFt ZWJ1ZmZlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhh c190YXJnZXQgPSBmYWxzZSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFVzZXJEYXRhRGVzdHJv eUNhbGxiYWNrICh2b2lkKiBkYXRhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9BRklSU1RfQklUIildCistCXB1YmxpYyBjb25zdCBp bnQgQUZJUlNUX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY25hbWUgPSAiQ09HTF9BX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IEFfQklUOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0JH Ul9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBCR1JfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0RFUFRIX0JJVCIpXQorLQlw dWJsaWMgY29uc3QgaW50IERFUFRIX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVNVUxUX0JJVCIpXQorLQlwdWJsaWMgY29u c3QgaW50IFBSRU1VTFRfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQg U1RFTkNJTF9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNuYW1lID0gIkNPR0xfVEVYVFVSRV9NQVhfV0FTVEUiKV0KKy0JcHVibGljIGNvbnN0IGludCBU RVhUVVJFX01BWF9XQVNURTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBiZWdpbl9nbCAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLkJvb2wgY2hlY2tfZXh0ZW5zaW9uIChzdHJpbmcgbmFtZSwgc3RyaW5n IGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wuQ29sb3IgY29sb3IsIHVsb25nIGJ1ZmZl cnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl9jaGVja19leHRlbnNpb25fQ0xVVFRFUiAoc3Ry aW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl93aW5zeXNfaGFz X2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfbWF0cml4X3ByaW50IChDb2dsLk1h dHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGVi dWdfb2JqZWN0X2ZvcmVhY2hfdHlwZSAoQ29nbC5EZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJh Y2sgZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19v YmplY3RfcHJpbnRfaW5zdGFuY2VzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfZm9nICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29s IGZlYXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQg Ym90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBD b2dsLkJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdl dF9iaXRtYXNrcyAob3V0IGludCByZWQsIG91dCBpbnQgZ3JlZW4sIG91dCBpbnQgYmx1ZSwgb3V0 IGludCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFibGVkICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5GcmFtZWJ1 ZmZlciBnZXRfZHJhd19mcmFtZWJ1ZmZlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRf bW9kZWx2aWV3X21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25H cm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVj dGlvbl9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQqIGdldF9zb3VyY2Ug KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgZ2V0X3ZpZXdwb3J0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0gb3V0IGZsb2F0IHZbNF0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ3R5cGVfbWF0cml4X2dl dF90eXBlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wg aXNfZnJhbWVidWZmZXIgKHZvaWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJs aWMgc3RhdGljIENvZ2wuQm9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfcGlwZWxpbmUgKHZvaWQqIG9i amVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc192ZXJ0ZXhfYnVmZmVy X2luZGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRv cCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxv YXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVyZVZl cnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBDb2dsLkJvb2wgdXNlX2NvbG9yKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBv cF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBy ZWN0YW5nbGUgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF9tdWx0 aXRleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5Miwg W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50IHRl eF9jb29yZHNfbGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJl Y3RhbmdsZV93aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgy LCBmbG9hdCB5MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQgdHkyKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXMgKFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjAuOC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzX3dpdGhf dGV4dHVyZV9jb29yZHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZl cnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFi bGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2RlcHRoX3Rlc3RfZW5h YmxlZCAoQ29nbC5Cb29sIHNldHRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb2cgKENvZ2wuQ29s b3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxvYXQgel9u ZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENv Z2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChD b2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3Vy Y2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291 cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUs IGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2Nv bG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0dXJlIChDb2dsLlRl eHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmlld3BvcnQg KGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFk ZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRlcl9n ZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlw ZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9v bCBzaGFkZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wu SGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hh ZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hhZGVyLCBzdHJpbmcgc291cmNlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAg Yml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5h bF9mb3JtYXQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgi LCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9u ZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZs YWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9m b3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENv Z2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkg dGhyb3dzIEdMaWIuRXJyb3I7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0 ZXh0dXJlX25ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3RhcmdldCwg dWludCB3aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rfd2Fz dGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5UZXh0dXJlIHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQs IENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1h dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBt YXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg eik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhhbmRsZSwg c3RyaW5nIGF0dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0cmlidXRl VHlwZSB0eXBlLCBDb2dsLkJvb2wgbm9ybWFsaXplZCwgdWludDE2IHN0cmlkZSwgdm9pZCogcG9p bnRlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kZWxldGUgKENvZ2wuSGFuZGxlIGhh bmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVy X2Rpc2FibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5W ZXJ0aWNlc01vZGUgbW9kZSwgaW50IGZpcnN0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZl cnRleF9idWZmZXJfZHJhd19lbGVtZW50cyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRp Y2VzTW9kZSBtb2RlLCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBpbnQgbWluX2luZGV4LCBpbnQgbWF4 X2luZGV4LCBpbnQgaW5kaWNlc19vZmZzZXQsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVy dGV4X2J1ZmZlcl9lbmFibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9u YW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3ZlcnRpY2VzIChDb2dsLkhh bmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNf Z2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNUeXBl IHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3ICh1aW50IG5fdmVydGljZXMpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfc3VibWl0IChDb2dsLkhhbmRsZSBoYW5kbGUp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIw LjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmlld3BvcnQgKHVpbnQgd2lkdGgsIHVpbnQg aGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfdmlzdWFsX3hpZCAoQ29nbC5P bnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHVp bnQzMiB4MTFfb25zY3JlZW5fZ2V0X3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4p OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX29uc2NyZWVuX3Nl dF9mb3JlaWduX3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiB4aWQs IFtDQ29kZSAoc2NvcGUgPSAiYXN5bmMiKV0gQ29nbC5PbnNjcmVlblgxMU1hc2tDYWxsYmFjayB1 cGRhdGUpOworLX0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxh IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYQorZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCBiOGQ4MzhkMC4uMDAwMDAwMDAKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTUt Y3VzdG9tLnZhbGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1OCArMCwwIEBACistbmFtZXNwYWNl IENsdXR0ZXIgeworLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RPUl9CT1gi LCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgc3Ry dWN0IEFjdG9yQm94IHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9m cm9tX3ZlcnRpY2VzIildCistICAgIHB1YmxpYyBBY3RvckJveC5mcm9tX3ZlcnRpY2VzIChDbHV0 dGVyLlZlcnRleFtdIHZlcnRzKTsKKy0gIH0KKy0KKy0gIHB1YmxpYyBzdHJ1Y3QgTWF0cml4IDog Q29nbC5NYXRyaXggeworLSAgfQorLQorLSAgcHVibGljIGNsYXNzIEJhY2tlbmQgOiBHTGliLk9i amVjdCB7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX29w dGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBw dWJsaWMgdmlydHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgpIHRocm93cyBHTGliLkVycm9yOwor LSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3Rh Z2VXaW5kb3cgY3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGli LkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3Vy ZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAg cHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9t YW5hZ2VyICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBDbHV0dGVy LkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1 YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAg IHB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9mZWF0dXJlcyAoKTsKKy0gICAgW05vV3JhcHBlcl0K Ky0gICAgcHVibGljIHZpcnR1YWwgYm9vbCBwb3N0X3BhcnNlICgpIHRocm93cyBHTGliLkVycm9y OworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYXJzZSAo KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1 YWwgdm9pZCByZWRyYXcgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLSAgfQorLQorLSAgW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2JveF9nZXRfdHlwZSAoKSIpXQorLSAgcHVibGljIGNsYXNzIEJveCA6IENsdXR0ZXIuQWN0 b3IgeworLSAgICBwdWJsaWMgQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIGxheW91dF9tYW5hZ2VyIHsg Z2V0OyBzZXQ7IH0KKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVf Q09MT1IiLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJs aWMgc3RydWN0IENvbG9yIHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zy b21faGxzIildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX2hscyAoZmxvYXQgaHVlLCBmbG9hdCBs dW1pbmFuY2UsIGZsb2F0IHNhdHVyYXRpb24pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfY29sb3JfZnJvbV9waXhlbCIpXQorLSAgICBwdWJsaWMgQ29sb3IuZnJvbV9waXhlbCAodWlu dDMyIHBpeGVsKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3Ry aW5nIildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CistICAg IFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3N0cmluZyIpXQorLSAgICBwdWJs aWMgYm9vbCBwYXJzZV9zdHJpbmcgKHN0cmluZyBzdHIpOworLSAgICBwdWJsaWMgc3RhdGljIHVu b3duZWQgQ2x1dHRlci5Db2xvcj8gZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBjb2xv cik7CistICB9CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY29udGFpbmVyX2dldF90eXBlICgpIildCistICBw dWJsaWMgaW50ZXJmYWNlIENvbnRhaW5lciA6IEdMaWIuT2JqZWN0IHsKKy0gICAgcHVibGljIHZv aWQgYWRkIChwYXJhbXMgQ2x1dHRlci5BY3RvcltdIGFjdG9ycyk7CistICAgIFtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSIpXQorLSAg ICBwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5 IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9j b250YWluZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIildCistICAgIHB1YmxpYyBjbGFz cyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjW10gbGlzdF9jaGlsZF9wcm9wZXJ0aWVzICgpOworLSAg fQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9nZXRfdHlwZSAoKSIpXQorLSAgW0NvbXBh Y3RdCistICBwdWJsaWMgY2xhc3MgRXZlbnQgeworLSAgICBwdWJsaWMgQ2x1dHRlci5BbnlFdmVu dCBhbnkgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQW55RXZlbnQgKikiKV0gZ2V0OyB9Cist ICAgIHB1YmxpYyBDbHV0dGVyLkJ1dHRvbkV2ZW50IGJ1dHRvbiB7IFtDQ29kZSAoY25hbWUgPSAi KENsdXR0ZXJCdXR0b25FdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuQ3Jv c3NpbmdFdmVudCBjcm9zc2luZyB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJDcm9zc2luZ0V2 ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5LZXlFdmVudCBrZXkgeyBbQ0Nv ZGUgKGNuYW1lID0gIihDbHV0dGVyS2V5RXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBD bHV0dGVyLk1vdGlvbkV2ZW50IG1vdGlvbiB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJNb3Rp b25FdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuU2Nyb2xsRXZlbnQgc2Ny b2xsIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclNjcm9sbEV2ZW50ICopIildIGdldDsgfQor LSAgICBwdWJsaWMgQ2x1dHRlci5TdGFnZVN0YXRlRXZlbnQgc3RhZ2Vfc3RhdGUgeyBbQ0NvZGUg KGNuYW1lID0gIihDbHV0dGVyU3RhZ2VTdGF0ZUV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJs aWMgQ2x1dHRlci5Ub3VjaEV2ZW50IHRvdWNoIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRv dWNoRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNocGFkUGluY2hF dmVudCB0b3VjaHBhZF9waW5jaCB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBhZFBp bmNoRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNocGFkU3dpcGVF dmVudCB0b3VjaHBhZF9zd2lwZSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBhZFN3 aXBlRXZlbnQgKikiKV0gZ2V0OyB9CistICB9CistCistICBbQ0NvZGUgKHR5cGVfaWQgPSAiY2x1 dHRlcl9zdGFnZV9nZXRfdHlwZSAoKSIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuR3JvdXAgeworLSAgICBb Q0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfcmVkcmF3IildCistICAgIHB1YmxpYyB2b2lkIHJlZHJh dyAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLSAgcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2JqZWN0 IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJh d19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistICAgIFtOb1dyYXBw ZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9t ZXRyeSBnZW9tZXRyeSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBp bnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBh YnN0cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dyYXBwZXIgKCk7CistICAgIFtOb1dy YXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIGhhc19yZWRyYXdfY2xpcHMgKCk7Cist ICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGhpZGUgKCk7CistICAg IFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIGlnbm9yaW5nX3JlZHJhd19j bGlwcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wgcmVh bGl6ZSAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVz aXplIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJs aWMgYWJzdHJhY3Qgdm9pZCBzZXRfY3Vyc29yX3Zpc2libGUgKGJvb2wgY3Vyc29yX3Zpc2libGUp OworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfZnVsbHNj cmVlbiAoYm9vbCBpc19mdWxsc2NyZWVuKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGlj IGFic3RyYWN0IHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLSAgICBbTm9XcmFwcGVy XQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdXNlcl9yZXNpemFibGUgKGJvb2wgaXNf cmVzaXphYmxlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQg c2hvdyAoYm9vbCBkb19yYWlzZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0 cmFjdCB2b2lkIHVucmVhbGl6ZSAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJj bHV0dGVyX3RleHR1cmVfZ2V0X3R5cGUgKCkiLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistICBwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3Igewor LSAgICBwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7IH0KKy0g ICAgcHVibGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBnZXQ7IHNldDsgfQorLSAgfQor LQorLSAgW0NvbXBhY3RdCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBUaW1lb3V0UG9vbCB7CistICAgIFtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0gICAgcHVibGljIFRpbWVvdXRQb29s IChpbnQgcHJpb3JpdHkpOworLSAgfQorLQorLSAgW0NDb2RlIChjcHJlZml4ID0gIkNMVVRURVJf RkVBVFVSRV8iLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBb RmxhZ3NdCistICBwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLSAgICBURVhUVVJFX05QT1Q7 CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2F2YWlsYWJsZSIpXQorLSAg ICBwdWJsaWMgYm9vbCBpc19hdmFpbGFibGUgKCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl9mZWF0dXJlX2dldF9hbGwiKV0KKy0gICAgcHVibGljIHN0YXRpYyBDbHV0dGVyLkZlYXR1 cmVGbGFncyBAZ2V0ICgpOworLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJf VFlQRV9VTklUUyIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0g IHB1YmxpYyBzdHJ1Y3QgVW5pdHMgeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5p dHNfZnJvbV9jbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9jbSAoZmxvYXQgY20pOworLSAg ICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9lbSIpXQorLSAgICBwdWJsaWMg VW5pdHMuZnJvbV9lbSAoZmxvYXQgZW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJf dW5pdHNfZnJvbV9lbV9mb3JfZm9udCIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9lbV9mb3Jf Zm9udCAoc3RyaW5nIGZvbnRfbmFtZSwgZmxvYXQgZW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfdW5pdHNfZnJvbV9tbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9tbSAoZmxv YXQgbW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9waXhlbHMi KV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fcGl4ZWxzIChpbnQgcHgpOworLSAgICBbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9wdCIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJv bV9wdCAoZmxvYXQgcHQpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJv bV9zdHJpbmciKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsK Ky0gIH0KKy19CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYSB2 YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggOTIlCity ZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEKK3JlbmFtZSB0byB2 YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK2luZGV4IGI4ZDgzOGQwLi44OTIyNGJl NiAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEKKysrKyB2YXBp L211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK0BAIC0xLDkgKzEsNCBAQAorIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9Y IiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIHN0 cnVjdCBBY3RvckJveCB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hf ZnJvbV92ZXJ0aWNlcyIpXQorLSAgICBwdWJsaWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAoQ2x1 dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CistICB9CisgCisgICBwdWJsaWMgc3RydWN0IE1hdHJpeCA6 IENvZ2wuTWF0cml4IHsKKyAgIH0KK0BAIC0xOCw4ICsxMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAgICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1cmVfY29u dGV4dCAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CisgICAgIFtOb1dyYXBwZXJdCistICAgIHB1Ymxp YyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdl ciAoKTsKKy0gICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0 dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworICAgICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMg dmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgpOworQEAgLTgzLDEwICs3Niw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAKKyAgIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorICAgcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2JqZWN0 IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJh d19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistICAgIFtOb1dyYXBw ZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9t ZXRyeSBnZW9tZXRyeSk7CisgICAgIFtOb1dyYXBwZXJdCisgICAgIHB1YmxpYyBhYnN0cmFjdCBp bnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7CisgICAgIFtOb1dyYXBwZXJdCitkaWZmIC0tZ2l0IHZh cGkvbXV0dGVyLWNsdXR0ZXItNS5kZXBzIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBzCitzaW1p bGFyaXR5IGluZGV4IDYzJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci01LmRlcHMK K3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYuZGVwcworaW5kZXggM2Y1YTkyYTYuLjdh NzBkNmRmIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS5kZXBzCisrKysgdmFwaS9t dXR0ZXItY2x1dHRlci02LmRlcHMKK0BAIC0xLDQgKzEsNCBAQAorIGF0aworIGNhaXJvCisganNv bi1nbGliLTEuMAorLW11dHRlci1jb2dsLTUKKyttdXR0ZXItY29nbC02CitkaWZmIC0tZ2l0IHZh cGkvbXV0dGVyLWNsdXR0ZXItNS52YXBpIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52YXBpCitzaW1p bGFyaXR5IGluZGV4IDkzJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci01LnZhcGkK K3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYudmFwaQoraW5kZXggMjRmN2Y2YjEuLjAx MzBhOTNjIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS52YXBpCisrKysgdmFwaS9t dXR0ZXItY2x1dHRlci02LnZhcGkKK0BAIC0xLDYgKzEsNiBAQAorLS8qIG11dHRlci1jbHV0dGVy LTUudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0 ZXItY2x1dHRlci02LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICov CisgCistW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0 ZXIiLCBnaXJfdmVyc2lvbiA9ICI1IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIild CisrW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIi LCBnaXJfdmVyc2lvbiA9ICI2IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisg bmFtZXNwYWNlIENsdXR0ZXIgeworIAluYW1lc3BhY2UgS2V5IHsKKyAJCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNuYW1lID0gIkNMVVRURVJfS0VZXzAi KV0KK0BAIC00NjYxLDIyICs0NjYxLDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBm bGFncyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Bbmlt YXRpb24gYW5pbWF0ZSAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgLi4uKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dp dGhfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX2FscGhhdiAo Q2x1dHRlci5BbHBoYSBhbHBoYSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9w ZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtD Q29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9w b3MgPSAxLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmUgKHVs b25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIC4uLik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX3Rp bWVsaW5ldiAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgW0NDb2RlIChh cnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIu NSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5f cHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVz KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlv biBhbmltYXRldiAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgW0NDb2RlIChhcnJheV9sZW5n dGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0cmlu Z1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGll cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV9y ZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBDbHV0 dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zv cm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBHcmFwaGVuZS5Qb2ludDNEIHBv aW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbTm9XcmFwcGVy XQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV90cmFuc2Zvcm0gKHJlZiBDbHV0dGVyLk1h dHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIENs dXR0ZXIuVmVydGV4IGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5WZXJ0ZXggcG9p bnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfdHJhbnNmb3JtX3RvX3BvaW50IChHcmFwaGVuZS5Q b2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIHZvaWQgYmluZF9tb2RlbCAoR0xp Yi5MaXN0TW9kZWw/IG1vZGVsLCBvd25lZCBDbHV0dGVyLkFjdG9yQ3JlYXRlQ2hpbGRGdW5jIGNy ZWF0ZV9jaGlsZF9mdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00Njg4 LDIwICs0NjgwLDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChDbHV0dGVyLkFjdG9yIGRlc2NlbmRh bnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY29udGlu dWVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoQ2x1dHRlci5QYWlu dENvbnRleHQgcGFpbnRfY29udGV4dCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9waWNrIChD bHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgUGFuZ28uQ29udGV4dCBjcmVhdGVfcGFuZ29fY29udGV4dCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5MYXlvdXQgY3Jl YXRlX3BhbmdvX2xheW91dCAoc3RyaW5nPyB0ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdm9pZCBkZXN0cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBkZXRhY2hfYW5pbWF0aW9uICgpOworIAkJW0NDb2Rl IChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBi b29sIGNhcHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZv aWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNbNF0pOworKwkJcHVibGljIHZvaWQgZ2V0X2Fic19h bGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhl bmUuUG9pbnQzRCB2ZXJ0c1s0XSk7CisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIEF0ay5PYmpl Y3QgZ2V0X2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdGlvbiBnZXRfYWN0aW9uIChzdHJpbmcgbmFtZSk7CitA QCAtNDcwOSwxNiArNDcwMCwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgR0xp Yi5MaXN0PHdlYWsgQ2x1dHRlci5BY3Rpb24+IGdldF9hY3Rpb25zICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggZ2V0X2FsbG9jYXRp b25fYm94ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdlb21ldHJ5 IGdldF9hbGxvY2F0aW9uX2dlb21ldHJ5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2FsbG9jYXRpb25fdmVydGljZXMgKENsdXR0ZXIuQWN0b3I/ IGFuY2VzdG9yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXgg dmVydHNbNF0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbmNob3Jf cG9pbnQgKG91dCBmbG9hdCBhbmNob3JfeCwgb3V0IGZsb2F0IGFuY2hvcl95KTsKKysJCXB1Ymxp YyB2b2lkIGdldF9hbGxvY2F0aW9uX3ZlcnRpY2VzIChDbHV0dGVyLkFjdG9yPyBhbmNlc3Rvciwg W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIEdyYXBoZW5lLlBvaW50M0QgdmVydHNbNF0p OworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X2FuY2hv cl9wb2ludF9ncmF2aXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQW5pbWF0aW9uIGdldF9hbmltYXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2JhY2tncm91bmRfY29sb3Ig KCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0X2FjdG9yX2J5X2dpZCIpXQorQEAg LTQ3NjgsOCArNDc1Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGdl dF9maXhlZF9wb3NpdGlvbl9zZXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgQ2x1dHRlci5BY3RvckZsYWdzIGdldF9mbGFncyAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl9hY3Rvcl9oYXNfcG9pbnRlciIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor IAkJcHVibGljIGJvb2wgZ2V0X2hhc19wb2ludGVyICgpOworQEAgLTQ4NDgsOCArNDgzMSw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gZ2V0 X3RleHRfZGlyZWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtYXRpb25fbWF0cml4ICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Q YWludFZvbHVtZSBnZXRfdHJhbnNmb3JtZWRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLkFjdG9yIHJl bGF0aXZlX3RvX2FuY2VzdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC00 ODkyLDcgKzQ4NzMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNf bWFwcGVkX2Nsb25lcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1Ymxp YyB2aXJ0dWFsIGJvb2wgaGFzX292ZXJsYXBzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKysJCVtO b1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVfYWxsICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGluc2VydF9jaGlsZF9hYm92ZSAo Q2x1dHRlci5BY3RvciBjaGlsZCwgQ2x1dHRlci5BY3Rvcj8gc2libGluZyk7CitAQCAtNDkxMiwx MCArNDg5Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGlzX3NjYWxl ZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgYm9vbCBpc192 aXNpYmxlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyIChDbHV0dGVyLkFjdG9yPyBhYm92 ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXJfYm90dG9tICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKCk7CisgCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjAuNiIpXQorQEAgLTQ5MjgsMTcgKzQ5MDUsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIGJvb2wgbmVlZHNfZXhwYW5kIChDbHV0dGVyLk9yaWVudGF0aW9uIG9yaWVudGF0aW9u KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X25vZGUgKENs dXR0ZXIuUGFpbnROb2RlIHJvb3QpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lk IHBpY2tfYm94IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCwgQ2x1dHRlci5BY3Rv ckJveCBib3gpOworIAkJcHVibGljIHZvaWQgcG9wX2ludGVybmFsICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjIiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfaW50ZXJuYWwgKCk7CisgCQlwdWJsaWMgdm9pZCBx dWV1ZV9yZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHZvaWQgcXVldWVfcmVkcmF3X3dpdGhfY2xpcCAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCByYWlzZSAoQ2x1dHRlci5BY3Rvcj8gYmVsb3cpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIHJhaXNlX3RvcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9hY3Rpb24gKENsdXR0ZXIuQWN0aW9uIGFjdGlvbik7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDk2MCw4ICs0OTMyLDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2VmZmVjdF9ieV9uYW1lIChzdHJp bmcgbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQg cmVtb3ZlX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlw dWJsaWMgdm9pZCByZXBhcmVudCAoQ2x1dHRlci5BY3RvciBuZXdfcGFyZW50KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByZXBsYWNlX2NoaWxkIChDbHV0 dGVyLkFjdG9yIG9sZF9jaGlsZCwgQ2x1dHRlci5BY3RvciBuZXdfY2hpbGQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01MDQ2LDggKzUwMTYsNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGUgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUg c2NhbGVfeSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlX2Z1 bGwgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwgZmxvYXQgY2VudGVyX3gsIGZsb2F0 IGNlbnRlcl95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVf d2l0aF9ncmF2aXR5IChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ksIENsdXR0ZXIuR3Jh dml0eSBncmF2aXR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMg dm9pZCBzZXRfc2NhbGVfeiAoZG91YmxlIHNjYWxlX3opOworIAkJcHVibGljIHZvaWQgc2V0X3Np emUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworQEAgLTUxMTAsMTEgKzUwNzgsOCBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIGJvb2wgY2hpbGRfdHJhbnNmb3JtX3NldCB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgY2xpcCB7IG93bmVkIGdldDsgc2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9Cisr CQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgY2xpcF90b19hbGxvY2F0 aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxOTksMTIgKzUx NjQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgb3BhY2l0eSB7IGdl dDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsg c2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7 IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCBw aXZvdF9wb2ludF96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBvc2l0aW9u IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbiB7 IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJs aWMgYm9vbCByZWFjdGl2ZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BA IC01MjI1LDEzICs1MTkwLDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3Vi bGUgcm90YXRpb25fYW5nbGVfeiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2Vu dGVyX3ggeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgcm90 YXRpb25fY2VudGVyX3ggeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2Rd CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2Nl bnRlcl95IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHJv dGF0aW9uX2NlbnRlcl95IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9j ZW50ZXJfeiB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBy b3RhdGlvbl9jZW50ZXJfeiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHJvdGF0aW9u X2NlbnRlcl96X2dyYXZpdHkgeyBnZXQ7IHNldDsgfQorQEAgLTUyNTcsNyArNTIyMiw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHNob3dfb25fc2V0X3BhcmVudCB7IGdl dDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsgfQor KwkJcHVibGljIEdyYXBoZW5lLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIHRl eHRfZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUz MTksMTEgKzUyODQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwg c2lnbmFsIGJvb2wgbW90aW9uX2V2ZW50IChDbHV0dGVyLk1vdGlvbkV2ZW50IGV2ZW50KTsKKyAJ CVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnQgKENs dXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFyZW50X3NldCAoQ2x1dHRl ci5BY3Rvcj8gb2xkX3BhcmVudCk7CisrCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIu Q29sb3IgY29sb3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAoQ2x1dHRl ci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBxdWV1ZV9y ZWxheW91dCAoKTsKK0BAIC01MzYxLDYgKzUzMjcsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGJvb2wgZW5hYmxlZCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgc3RyaW5nIG5h bWUgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9ub2RlX2dldF90eXBlICgp IildCisrCXB1YmxpYyBjbGFzcyBBY3Rvck5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFp bnROb2RlKiIpXQorKwkJcHVibGljIEFjdG9yTm9kZSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7Cisr CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2FsaWduX2NvbnN0cmFpbnRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgQWxpZ25Db25zdHJhaW50IDogQ2x1 dHRlci5Db25zdHJhaW50IHsKK0BAIC01Mzg4LDE5ICs1MzU5LDEyIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bG9uZyBnZXRf bW9kZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0X3RpbWVsaW5l ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bG9u ZyByZWdpc3Rlcl9jbG9zdXJlIChHTGliLkNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Z1bmMgKENs dXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9mdW5jIChvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb2RlICh1bG9uZyBtb2Rl KTsKKyAJCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGlu ZSk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQWxwaGEud2l0aF9mdW5jIChDbHV0dGVy LlRpbWVsaW5lIHRpbWVsaW5lLCBvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJCXB1 YmxpYyBkb3VibGUgYWxwaGEgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB1bG9uZyBtb2RlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CitAQCAtNTQxMSwz NSArNTM3NSwyNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1YmxpYyBjbGFzcyBBbmltYXRp b24gOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBBbmltYXRpb24gKCk7CistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kIChzdHJpbmcgcHJvcGVydHlfbmFt ZSwgR0xpYi5WYWx1ZSBmaW5hbCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlv biBiaW5kX2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgb3duZWQgQ2x1dHRlci5JbnRl cnZhbCBpbnRlcnZhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7CisgCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKCk7 CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkludGVydmFsIGdldF9pbnRlcnZhbCAoc3RyaW5n IHByb3BlcnR5X25hbWUpOworIAkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CisgCQlwdWJsaWMg dWxvbmcgZ2V0X21vZGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2Jq ZWN0ICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUg KCk7CisgCQlwdWJsaWMgYm9vbCBoYXNfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIuQWxw aGEgYWxwaGEpOworIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9sb29wIChib29sIGxvb3ApOworIAkJcHVibGljIHZvaWQgc2V0X21v ZGUgKHVsb25nIG1vZGUpOworIAkJcHVibGljIHZvaWQgc2V0X29iamVjdCAoR0xpYi5PYmplY3Qg b2JqZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZT8g dGltZWxpbmUpOworLQkJcHVibGljIHZvaWQgdW5iaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVy dHlfbmFtZSk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRhdGUgKHN0 cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2b2lkIHVw ZGF0ZV9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2YWwgaW50 ZXJ2YWwpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIu QWxwaGEgYWxwaGEgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJcHVibGljIHVpbnQgZHVyYXRpb24g eyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGJvb2wgbG9vcCB7IGdldDsgc2V0OyB9CisgCQlwdWJs aWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgR0xpYi5PYmplY3Qgb2JqZWN0 IHsgZ2V0OyBzZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIEdMaWIuT2Jq ZWN0IG9iamVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGlu ZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9CistCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIHN0YXJ0ZWQgKCk7CisgCX0KK0BAIC01NDYwLDIxICs1NDE1LDE4IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXByb3RlY3RlZCBCYWNrZW5kICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOwor LQkJcHVibGljIHZvaWQgYmVsbF9ub3RpZnkgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGlj IHZpcnR1YWwgYm9vbCBjcmVhdGVfY29udGV4dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtO b1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5kb3cg Y3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9yOwor IAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQgKENs dXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVu b3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKysJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuU2VhdCBnZXRfZGVmYXVsdF9zZWF0ICgpOworIAkJW05vV3Jh cHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJl cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENh aXJvLkZvbnRPcHRpb25zIGdldF9mb250X29wdGlvbnMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLklucHV0TWV0aG9kIGdldF9pbnB1dF9tZXRob2QgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworIAkJcHVibGljIGRvdWJsZSBnZXRfcmVz b2x1dGlvbiAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRf ZXZlbnRzICgpOworQEAgLTU0OTYsOTUgKzU0NDgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHNldHRp bmdzX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9nZXRfdHlwZSAoKSIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42 Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCZWhhdmlvdXIgOiBH TGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCZWhhdmlvdXIgKCk7CistCQlwdWJs aWMgdm9pZCBhY3RvcnNfZm9yZWFjaCAoQ2x1dHRlci5CZWhhdmlvdXJGb3JlYWNoRnVuYyBmdW5j KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFscGhhX25vdGlmeSAo ZG91YmxlIGFscGhhX3ZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIGFwcGx5IChDbHV0dGVyLkFjdG9y IGFjdG9yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5BY3Rvcj4gZ2V0X2Fj dG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhhICgpOwor LQkJcHVibGljIGludCBnZXRfbl9hY3RvcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yIGdldF9udGhfYWN0b3IgKGludCBpbmRleF8pOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNCIpXQorLQkJcHVibGljIGJvb2wgaXNfYXBwbGllZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7 CistCQlwdWJsaWMgdm9pZCByZW1vdmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCQlwdWJsaWMgQ2x1 dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhcHBsaWVkIChDbHV0dGVyLkFjdG9y IGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCB2b2lkIHJlbW92ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9iZWhhdmlvdXJfZGVwdGhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlw dWJsaWMgY2xhc3MgQmVoYXZpb3VyRGVwdGggOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0 eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40Iild CistCQlwdWJsaWMgQmVoYXZpb3VyRGVwdGggKENsdXR0ZXIuQWxwaGE/IGFscGhhLCBpbnQgZGVw dGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGludCBkZXB0aF9zdGFydCwgb3V0IGludCBk ZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQg c2V0X2JvdW5kcyAoaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGludCBk ZXB0aF9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX3N0YXJ0IHsgZ2V0OyBzZXQ7 IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX29wYWNpdHlfZ2V0X3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNp bmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyT3BhY2l0eSA6IENsdXR0ZXIu QmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1Ymxp YyBCZWhhdmlvdXJPcGFjaXR5IChDbHV0dGVyLkFscGhhPyBhbHBoYSwgdWludDggb3BhY2l0eV9z dGFydCwgdWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IHVpbnQ4IG9wYWNpdHlfc3RhcnQsIG91dCB1 aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgdm9pZCBzZXRfYm91bmRzICh1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2Vu ZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG9wYWNpdHlfZW5kIHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0 eV9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9zY2FsZV9n ZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJT Y2FsZSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91 cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJTY2FsZSAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIGRv dWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2NhbGVf ZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBvdXQg ZG91YmxlIHlfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeF9zY2FsZV9lbmQsIG91dCBkb3VibGUg eV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZv aWQgc2V0X2JvdW5kcyAoZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0 LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUg eF9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHhfc2NhbGVfc3RhcnQgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IGRvdWJsZSB5X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmlu X2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1 YmxpYyBjbGFzcyBCaW5MYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1h bmFnZXIqIildCisgCQlwdWJsaWMgQmluTGF5b3V0IChDbHV0dGVyLkJpbkFsaWdubWVudCB4X2Fs aWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQuU1RBUlQsIENsdXR0ZXIuQmluQWxpZ25tZW50IHlf YWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIHZvaWQgYWRkIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdu bWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGls ZCwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJpbkFsaWdu bWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxp Z25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGln biwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGln biB7IGdldDsgc2V0OyB9CitAQCAtNTc1OCwzNyArNTYyNiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2NhaXJvX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIGNsYXNzIENhaXJvVGV4dHVyZSA6IENsdXR0ZXIuVGV4dHVyZSwgQXRrLkltcGxlbWVudG9y LCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFi bGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIENhaXJvVGV4dHVyZSAodWludCB3aWR0aCwgdWlu dCBoZWlnaHQpOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGVfcmVnaW9uIChpbnQgeF9vZmZzZXQsIGludCB5X29m ZnNldCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyBib29sIGdldF9hdXRvX3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdl dF9zdXJmYWNlX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZSAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfcmVj dGFuZ2xlIChDYWlyby5SZWN0YW5nbGVJbnQ/IHJlY3QpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmVzaXplIChib29sIHZhbHVlKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9zdXJmYWNlX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGF1dG9fcmVzaXpl IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3Vy ZmFjZV9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgdWludCBzdXJmYWNlX3dpZHRoIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBDYWlyby5TdXJmYWNlIGNyZWF0ZV9z dXJmYWNlICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmF3IChDYWlyby5Db250ZXh0 IGNyKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2FudmFzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBDYW52YXMgOiBHTGliLk9iamVjdCwg Q2x1dHRlci5Db250ZW50IHsKK0BAIC01OTIwLDYyICs1NzU3LDI0IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVi bGljIGRvdWJsZSBmYWN0b3IgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZXZpY2Vf bWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCXB1 YmxpYyBhYnN0cmFjdCBjbGFzcyBEZXZpY2VNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERldmlj ZU1hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRf ZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRB MTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50 IHRvX2Rpc2NhcmQpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZp Y2UgY3JlYXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2Vf dHlwZSk7CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0 X2NvcmVfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZWZhdWx0ICgp OworLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZp Y2UgKGludCBkZXZpY2VfaWQpOworLQkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdz IChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdm9pZCBnZXRf cG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGlu Z3MpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsRGV2aWNlVHlwZSBnZXRfc3Vw cG9ydGVkX3ZpcnR1YWxfZGV2aWNlX3R5cGVzICgpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2Vh ayBDbHV0dGVyLklucHV0RGV2aWNlPiBsaXN0X2RldmljZXMgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBHTGliLlNMaXN0PENsdXR0ZXIuSW5wdXREZXZpY2U+IHBlZWtfZGV2aWNlcyAoKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlbW92ZV9kZXZpY2UgKENsdXR0ZXIu SW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHNlbGVjdF9zdGFnZV9ldmVudHMgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJcHVibGlj IHZvaWQgc2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0 aW5ncyk7CistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUg KENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0 aW5ncyBzZXR0aW5ncyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVy LkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgZGV2aWNlX2FkZGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX3JlbW92ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2 aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9mbGFnc19jaGFuZ2VkICh1aW50 IHNldHRpbmdzX2ZsYWdzLCB1aW50IGNoYW5nZWRfbWFzayk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQga2JkX2ExMXlfbW9kc19zdGF0ZV9jaGFuZ2VkICh1aW50IGxhdGNoZWRfbWFzaywgdWludCBs b2NrZWRfbWFzayk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfZHdlbGxfY2xpY2tf dHlwZV9jaGFuZ2VkIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlw ZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdGFydGVkIChDbHV0 dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRp bWVvdXRfdHlwZSwgdWludCBkZWxheSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlf dGltZW91dF9zdG9wcGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2lu dGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg dG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1dERl dmljZVRvb2wgcDApOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmFnX2FjdGlvbl9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBEcmFnQWN0aW9u IDogQ2x1dHRlci5BY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBEcmFnQWN0aW9uICgp OworLQkJcHVibGljIGJvb2wgZ2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSk7 CisrCQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChHcmFwaGVuZS5SZWN0IGRyYWdfYXJlYSk7 CisgCQlwdWJsaWMgQ2x1dHRlci5EcmFnQXhpcyBnZXRfZHJhZ19heGlzICgpOworIAkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZHJhZ19oYW5kbGUgKCk7CisgCQlwdWJsaWMgdm9p ZCBnZXRfZHJhZ190aHJlc2hvbGQgKG91dCB1aW50IHhfdGhyZXNob2xkLCBvdXQgdWludCB5X3Ro cmVzaG9sZCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfbW90aW9uX2Nvb3JkcyAob3V0IGZsb2F0IG1v dGlvbl94LCBvdXQgZmxvYXQgbW90aW9uX3kpOworIAkJcHVibGljIHZvaWQgZ2V0X3ByZXNzX2Nv b3JkcyAob3V0IGZsb2F0IHByZXNzX3gsIG91dCBmbG9hdCBwcmVzc195KTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVjdD8gZHJhZ19hcmVhKTsKKysJCXB1YmxpYyB2 b2lkIHNldF9kcmFnX2FyZWEgKEdyYXBoZW5lLlJlY3Q/IGRyYWdfYXJlYSk7CisgCQlwdWJsaWMg dm9pZCBzZXRfZHJhZ19heGlzIChDbHV0dGVyLkRyYWdBeGlzIGF4aXMpOworIAkJcHVibGljIHZv aWQgc2V0X2RyYWdfaGFuZGxlIChDbHV0dGVyLkFjdG9yPyBoYW5kbGUpOworIAkJcHVibGljIHZv aWQgc2V0X2RyYWdfdGhyZXNob2xkIChpbnQgeF90aHJlc2hvbGQsIGludCB5X3RocmVzaG9sZCk7 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlw dWJsaWMgR3JhcGhlbmUuUmVjdCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05v QWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGlj IGJvb2wgZHJhZ19hcmVhX3NldCB7IGdldDsgfQorQEAgLTYwMTEsMTMgKzU4MTAsMTMgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wg bW9kaWZ5X3BhaW50X3ZvbHVtZSAoQ2x1dHRlci5QYWludFZvbHVtZSB2b2x1bWUpOworIAkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuRWZmZWN0UGFp bnRGbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLlBh aW50Q29udGV4dCBwYWludF9jb250ZXh0LCBDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3Mp OworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5F ZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1 dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9z dF9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdmly dHVhbCBib29sIHByZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZXBh aW50ICgpOworIAl9CitAQCAtNjA2OCw3ICs1ODY3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHVpbnQgZ2V0X21vZGVfZ3JvdXAgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcGFk X2V2ZW50X2RldGFpbHMgKG91dCB1aW50IG51bWJlciwgb3V0IHVpbnQgbW9kZSwgb3V0IGRvdWJs ZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQg Z2V0X3Bvc2l0aW9uIChDbHV0dGVyLlBvaW50IHBvc2l0aW9uKTsKKysJCXB1YmxpYyB2b2lkIGdl dF9wb3NpdGlvbiAoR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24pOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcmVsYXRlZCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNjMwOCw3ICs2MTA3LDcgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVi bGljIGJvb2wgZ2V0X2F4aXNfdmFsdWUgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBk b3VibGVbXSBheGVzLCBDbHV0dGVyLklucHV0QXhpcyBheGlzLCBvdXQgZG91YmxlIHZhbHVlKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBnZXRfY29vcmRz IChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBDbHV0dGVyLlBvaW50IHBvaW50KTsK KysJCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVu Y2UsIEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KK0BAIC02MzIyLDcgKzYxMjEsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9ncmFiYmVkX2FjdG9yICgpOworLQkJ cHVibGljIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9oYXNfY3Vyc29yICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzNDQsMTYgKzYxNDMsMTcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TdGFnZSBnZXRfcG9pbnRlcl9zdGFn ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X3Byb2R1Y3RfaWQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQg Z2V0X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgR0xp Yi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gZ2V0X3NsYXZlX2RldmljZXMgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF92ZW5kb3JfaWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHZvaWQgZ3JhYiAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgYm9vbCBpc19ncm91 cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVyX2RldmljZSk7CistCQlwdWJsaWMgYm9vbCBp c19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKysJCXB1Ymxp YyB2aXJ0dWFsIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZp Y2UpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQg Z3JvdXAsIHVpbnQgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQg ZXZkZXZfa2V5Y29kZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWNvZGVfdG9fZXZkZXYg KHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwgdWludCBldmRldl9rZXljb2RlKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHNlcXVl bmNlX2dldF9ncmFiYmVkX2FjdG9yIChDbHV0dGVyLkV2ZW50U2VxdWVuY2Ugc2VxdWVuY2UpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC02MzY5LDEyICs2MTY5LDExIEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHVuZ3JhYiAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9mcm9tX2V2ZW50IChDbHV0 dGVyLkV2ZW50IGV2ZW50LCBib29sIHVwZGF0ZV9zdGFnZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJ cHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfZnJvbV90b29sIChDbHV0dGVyLklucHV0RGV2aWNl VG9vbCB0b29sKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBj b25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7 IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dE1vZGUgZGV2 aWNlX21vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHN0cmluZyBkZXZpY2Vfbm9k ZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAt NjM5Nyw2ICs2MTk2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHN0cmluZyBu YW1lIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIy IildCisgCQlwdWJsaWMgc3RyaW5nIHByb2R1Y3RfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJ cHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHZlbmRvcl9pZCB7IGdldDsgY29u c3RydWN0OyB9CisgCX0KK0BAIC02NDM0LDcgKzYyMzQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgdm9pZCBzZXRfY2FuX3Nob3dfcHJlZWRpdCAoYm9vbCBjYW5fc2hvd19wcmVl ZGl0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X2hpbnRzIChDbHV0dGVyLklucHV0Q29u dGVudEhpbnRGbGFncyBoaW50KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3B1cnBvc2Ug KENsdXR0ZXIuSW5wdXRDb250ZW50UHVycG9zZSBwdXJwb3NlKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIHNl dF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsKKyAJ CVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0 cmluZyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CitAQCAtNjQ1Myw3ICs2MjUzLDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVz ZXQgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfY3Vyc29y X2xvY2F0aW9uIChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNl dF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmluZz8gcHJlZWRpdCwgdWludCBjdXJz b3IpOworIAkJW05vV3JhcHBlcl0KK0BAIC02NDcwLDcgKzYyNzAsNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIGNvbnRlbnRfcHVy cG9zZSB7IGdldDsgc2V0OyB9CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBjb21taXQgKHN0cmluZyB0ZXh0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9j YXRpb25fY2hhbmdlZCAoQ2x1dHRlci5SZWN0IG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZv aWQgY3Vyc29yX2xvY2F0aW9uX2NoYW5nZWQgKEdyYXBoZW5lLlJlY3Qgb2JqZWN0KTsKKyAJCVtI YXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAodWlu dCBvZmZzZXQsIHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBpbnB1dF9wYW5lbF9z dGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgb2JqZWN0KTsKK0BAIC02NTQ2LDI3ICs2MzQ2 LDMxIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBLZXltYXAgKCk7CisgCQlwdWJsaWMgdmlydHVh bCBib29sIGdldF9jYXBzX2xvY2tfc3RhdGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBQYW5nby5E aXJlY3Rpb24gZ2V0X2RpcmVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X251 bV9sb2NrX3N0YXRlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXRlX2NoYW5nZWQgKCk7 CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2xheWVyX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNs YXNzIExheWVyTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlw dWJsaWMgTGF5ZXJOb2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uLCBDYWlyby5SZWN0YW5nbGUg dmlld3BvcnQsIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIHVpbnQ4IG9wYWNpdHkpOworKwl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9sYXlvdXRfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBMYXlvdXRNYW5hZ2VyIDog R0xpYi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBMYXlvdXRNYW5hZ2VyICgpOworIAkJcHVibGljIHZp cnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVy LkFjdG9yQm94IGFsbG9jYXRpb24sIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQWxwaGEg YmVnaW5fYW5pbWF0aW9uICh1aW50IGR1cmF0aW9uLCB1bG9uZyBtb2RlKTsKKyAJCXB1YmxpYyB2 b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9y IGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0X3Byb3BlcnR5IChDbHV0dGVy LkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0 eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldCAoQ2x1 dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJ cHVibGljIHZvaWQgY2hpbGRfc2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWlu ZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVl IHZhbHVlKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0 ZXIuTGF5b3V0TWV0YSBjcmVhdGVfY2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFp bmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisrCQlbTm9XcmFw cGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBlbmRfYW5pbWF0aW9uICgpOworIAkJcHVibGlj IHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIG5hbWUp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjIiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCBk b3VibGUgZ2V0X2FuaW1hdGlvbl9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBnZXRfY2hpbGRfbWV0 YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKK0BA IC02NjIzLDEyICs2NDI3LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBP ZmZzY3JlZW5FZmZlY3QgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBDb2dsLkhhbmRsZSBjcmVhdGVf dGV4dHVyZSAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3RhcmdldF9yZWN0IChvdXQgdW5vd25lZCBD bHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1 bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGlj IGJvb2wgZ2V0X3RhcmdldF9zaXplIChvdXQgZmxvYXQgd2lkdGgsIG91dCBmbG9hdCBoZWlnaHQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wu SGFuZGxlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF90YXJn ZXQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X3RhcmdldCAoQ2x1dHRlci5QYWlu dENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhZ2VfdHVybl9lZmZl Y3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTY2NDUs NiArNjQ0OSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHBlcmlv ZCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgZmxvYXQgcmFkaXVzIHsgZ2V0OyBzZXQ7IH0KKyAJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCByZWZf ZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRl cl9wYWludF9jb250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9w YWludF9jb250ZXh0X3VucmVmIildCisrCVtDb21wYWN0XQorKwlwdWJsaWMgY2xhc3MgUGFpbnRD b250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBD b2dsLkZyYW1lYnVmZmVyIGdldF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHBvcF9m cmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hfZnJhbWVidWZmZXIgKENvZ2wuRnJh bWVidWZmZXIgZnJhbWVidWZmZXIpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludENv bnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9wYWludF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQYWludE5vZGUgeworQEAgLTY2NTQsNyArNjQ2OCw4 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkZF9tdWx0aXRleHR1cmVf cmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHRleHRfY29vcmRzLCB1aW50 IHRleHRfY29vcmRzX2xlbik7CisgCQlwdWJsaWMgdm9pZCBhZGRfcmVjdGFuZ2xlIChDbHV0dGVy LkFjdG9yQm94IHJlY3QpOworIAkJcHVibGljIHZvaWQgYWRkX3RleHR1cmVfcmVjdGFuZ2xlIChD bHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZs b2F0IHlfMik7CistCQlwdWJsaWMgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENv Z2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcGFpbnQg KENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJcHVibGljIHVub3duZWQg Q2x1dHRlci5QYWludE5vZGUgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJp bmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKK0BAIC02NjcyLDcgKzY0ODcsNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlw dWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBnZXRfb3JpZ2luICgpOworKwkJcHVibGljIHZvaWQg Z2V0X29yaWdpbiAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02NjgyLDcgKzY0OTcsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9p ZCBzZXRfaGVpZ2h0IChmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorLQkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoQ2x1dHRlci5WZXJ0ZXggb3JpZ2luKTsKKysJ CXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKEdyYXBoZW5lLlBvaW50M0Qgb3JpZ2luKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF93aWR0aCAoZmxvYXQg d2lkdGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY3NjksMjYgKzY1ODQs MTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aCBwYXRoIHsg Z2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBub2RlX3JlYWNoZWQgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIHVpbnQgaW5kZXgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29u dGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19jb250ZXh0X2dldF90eXBlICgpIiwg dW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBh Y3RdCisrCXB1YmxpYyBjbGFzcyBQaWNrQ29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0cm95 ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QaWNrQ29udGV4dCBAcmVmICgpOworKwkJ cHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpcGVsaW5lX25vZGVfZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNz IFBpcGVsaW5lTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBQaXBlbGluZU5vZGUgKCk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFBvaW50IHsKKy0J CXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgc3RhdGljIENs dXR0ZXIuUG9pbnQgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBjb3B5ICgpOwor LQkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChDbHV0dGVyLlBvaW50IGIsIG91dCBmbG9hdCB4X2Rp c3RhbmNlLCBvdXQgZmxvYXQgeV9kaXN0YW5jZSk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENs dXR0ZXIuUG9pbnQgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5Qb2ludCBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IHplcm8gKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Byb3Bl cnR5X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJcHVibGljIGNsYXNzIFByb3BlcnR5VHJhbnNpdGlvbiA6IENsdXR0ZXIuVHJhbnNpdGlv biwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC02Nzk4LDMzICs2NjA2LDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3Byb3BlcnR5X25hbWUgKHN0cmluZz8gcHJv cGVydHlfbmFtZSk7CisgCQlwdWJsaWMgc3RyaW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7IHNldDsg fQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVk X2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVjdF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFj dF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFJlY3Qgewor LQkJcHVibGljIHdlYWsgQ2x1dHRlci5Qb2ludCBvcmlnaW47CistCQlwdWJsaWMgd2VhayBDbHV0 dGVyLlNpemUgc2l6ZTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5SZWN0IGFsbG9jICgpOwor LQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWlu c19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19y ZWN0IChDbHV0dGVyLlJlY3QgYik7CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNvcHkgKCk7Cist CQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZy ZWUgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfY2VudGVyIChDbHV0dGVyLlBvaW50IGNlbnRlcik7 CistCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfd2lk dGggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3kg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlJlY3QgaW5pdCAoZmxvYXQgeCwgZmxvYXQg eSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CistCQlwdWJsaWMgdm9pZCBpbnNldCAoZmxv YXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChDbHV0dGVy LlJlY3QgYiwgQ2x1dHRlci5SZWN0PyByZXMpOworLQkJcHVibGljIENsdXR0ZXIuUmVjdCBub3Jt YWxpemUgKCk7CistCQlwdWJsaWMgdm9pZCBvZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsK Ky0JCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCBzX3gsIGZsb2F0IHNfeSk7CistCQlwdWJsaWMg dm9pZCB1bmlvbiAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdCByZXMpOworLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCB6ZXJvICgpOworLQl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9y ZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlw dWJsaWMgY2xhc3MgUmVjdGFuZ2xlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBD bHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworQEAgLTY5MDcsOCArNjY4OCw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0K KyAJCXB1YmxpYyBTY3JvbGxBY3RvciAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUg Z2V0X3Njcm9sbF9tb2RlICgpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50IChDbHV0 dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChDbHV0dGVy LlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQgKEdyYXBoZW5lLlBv aW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChHcmFwaGVuZS5SZWN0 IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X3Njcm9sbF9tb2RlIChDbHV0dGVyLlNjcm9sbE1v ZGUgbW9kZSk7CisgCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIHNjcm9sbF9tb2RlIHsgZ2V0 OyBzZXQ7IH0KKyAJfQorQEAgLTY5MzAsNiArNjcxMSw0NCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9zZWF0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBTZWF0IDogR0xp Yi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor KwkJcHJvdGVjdGVkIFNlYXQgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwg dm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0 dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBiZWxsX25vdGlmeSAoKTsKKysJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0 dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgY29weV9ldmVudF9kYXRhIChDbHV0dGVyLkV2ZW50IHNyYywgQ2x1dHRlci5FdmVudCBk ZXN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbElucHV0RGV2aWNlIGNyZWF0 ZV92aXJ0dWFsX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUpOwor KwkJcHVibGljIHZvaWQgZW5zdXJlX2ExMXlfc3RhdGUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJ cHVibGljIHZpcnR1YWwgdm9pZCBmcmVlX2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgZXZlbnQp OworKwkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlT ZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5w dXREZXZpY2UgZ2V0X2tleWJvYXJkICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0 dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0 dGVyLklucHV0RGV2aWNlIGdldF9wb2ludGVyICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3BvaW50 ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsK KysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbERldmljZVR5cGUgZ2V0X3N1cHBvcnRl ZF92aXJ0dWFsX2RldmljZV90eXBlcyAoKTsKKysJCXB1YmxpYyBib29sIGdldF90b3VjaF9tb2Rl ICgpOworKwkJcHVibGljIHZpcnR1YWwgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmlj ZT4gbGlzdF9kZXZpY2VzICgpOworKwkJcHVibGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRpbmdz IChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9pZCBzZXRf cG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENs aWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfc2V0 dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMg dmlydHVhbCB2b2lkIHdhcnBfcG9pbnRlciAoaW50IHgsIGludCB5KTsKKysJCVtOb0FjY2Vzc29y TWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBj b25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBib29sIHRvdWNoX21vZGUgeyBnZXQ7IH0KKysJCXB1Ymxp YyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsK KysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmlj ZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQg KHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWdu YWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1 aW50IGxvY2tlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV9kd2VsbF9j bGlja190eXBlX2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlj a190eXBlKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0YXJ0ZWQg KENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5 cGUgdGltZW91dF90eXBlLCB1aW50IGRlbGF5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJf YTExeV90aW1lb3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVy LlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlLCBib29sIGNsaWNrZWQpOworKwkJ cHVibGljIHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmpl Y3QsIENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2V0dGlu Z3NfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMg Y2xhc3MgU2V0dGluZ3MgOiBHTGliLk9iamVjdCB7CitAQCAtNzAwMiwxOCArNjgyMSw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXByb3RlY3RlZCBTaGFkZXJNYXRyaXggKCk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9zaXplX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgU2l6ZSB7CistCQlwdWJsaWMgZmxvYXQgaGVpZ2h0 OworLQkJcHVibGljIGZsb2F0IHdpZHRoOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlNpemUg YWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5TaXplIGNvcHkgKCk7CistCQlwdWJsaWMgYm9v bCBlcXVhbHMgKENsdXR0ZXIuU2l6ZSBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlNpemUgaW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo dCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NuYXBfY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCXB1YmxpYyBjbGFzcyBTbmFwQ29uc3RyYWludCA6 IENsdXR0ZXIuQ29uc3RyYWludCB7CitAQCAtNzA1MiwxNCArNjg1OSwxMiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBkYXRlcyAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9hY2NlcHRfZm9jdXMgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIu UGlja01vZGUgcGlja19tb2RlLCBpbnQgeCwgaW50IHkpOworKwkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BY3RvciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwg ZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY2FwdHVyZV9maW5hbF9zaXpl IChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBmbG9hdCBz Y2FsZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworIAkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBnZXRfZm9nICgpOworIAkJcHVi bGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfa2V5X2ZvY3VzICgpOwor QEAgLTcwNjcsMTkgKzY4NzIsMTQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZv aWQgZ2V0X21pbmltdW1fc2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhlaWdodCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfbW90aW9uX2V2 ZW50c19lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IGJvb2wgZ2V0X25vX2NsZWFyX2hpbnQgKCk7CisgCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2 ZSBnZXRfcGVyc3BlY3RpdmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlw dWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IGdldF9yZWRyYXdfY2xpcF9ib3VuZHMgKCk7CisrCQlw dWJsaWMgQ2Fpcm8uUmVnaW9uIGdldF9yZWRyYXdfY2xpcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGdldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRzICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF90aXRsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBi b29sIGdldF91c2VfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wg Z2V0X3VzZV9mb2cgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMg dm9pZCBoaWRlX2N1cnNvciAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCitAQCAtNzA5NCwxNiArNjg5 NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfYWNjZXB0X2Zv Y3VzIChib29sIGFjY2VwdF9mb2N1cyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChD bHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBz ZXRfZm9nIChDbHV0dGVyLkZvZyBmb2cpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor IAkJcHVibGljIHZvaWQgc2V0X2tleV9mb2N1cyAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X21pbmltdW1fc2l6 ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAkJcHVibGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFibGVk KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ub19j bGVhcl9oaW50IChib29sIG5vX2NsZWFyKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wZXJzcGVjdGl2 ZSAoQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGhyb3R0bGVfbW90aW9uX2V2ZW50cyAoYm9v bCB0aHJvdHRsZSk7CitAQCAtNzExMSw4ICs2OTA3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZV9hbHBoYSAoYm9vbCB1c2VfYWxw aGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfZm9nIChib29s IGZvZyk7CisgCQlwdWJsaWMgdm9pZCBzaG93X2N1cnNvciAoKTsKKyAJCXB1YmxpYyB2b2lkIHRo YXdfdXBkYXRlcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9yZXNvdXJjZV9zY2FsZXMgKCk7 CitAQCAtNzEyMiwyMCArNjkxNiwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg Q2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KyAJCXB1YmxpYyBib29sIGN1cnNvcl92aXNpYmxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5Gb2cgZm9nIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGtleV9mb2N1cyB7 IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9v bCBub19jbGVhcl9oaW50IHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgi KV0KKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlIHsgZ2V0OyBzZXQ7 IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdGl0bGUg eyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJv b2wgdXNlX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg Ym9vbCB1c2VfZm9nIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K KyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdGl2YXRlICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMjAiKV0KK0BAIC03MTU4LDggKzY5NDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgR0xpYi5TTGlzdDx3 ZWFrIENsdXR0ZXIuU3RhZ2U+IGxpc3Rfc3RhZ2VzICgpOworIAkJcHVibGljIHVub3duZWQgR0xp Yi5TTGlzdDxDbHV0dGVyLlN0YWdlPiBwZWVrX3N0YWdlcyAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9kZWZhdWx0X3N0YWdlIChDbHV0dGVyLlN0YWdlIHN0YWdlKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlN0YWdlIGRl ZmF1bHRfc3RhZ2UgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03 MjA2LDE2ICs2OTkyLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUs IHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLlN0YXRlS2V5PiBnZXRfa2V5cyAoc3RyaW5nPyBzb3Vy Y2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9i amVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXRlICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyBHTGliLkxpc3Q8d2VhayBzdHJpbmc+IGdldF9zdGF0ZXMgKCk7CisgCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2tleSAoc3RyaW5nPyBz b3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/ IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmlu Zz8gdGFyZ2V0X3N0YXRlX25hbWUsIHVpbnQgZHVyYXRpb24pOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhdGUgc2V0X2tleSAoc3RyaW5nPyBzb3VyY2Vf c3RhdGVfbmFtZSwgc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdCBvYmplY3Qs IHN0cmluZyBwcm9wZXJ0eV9uYW1lLCB1aW50IG1vZGUsIEdMaWIuVmFsdWUgdmFsdWUsIGRvdWJs ZSBwcmVfZGVsYXksIGRvdWJsZSBwb3N0X2RlbGF5KTsKK0BAIC03MjM2LDI0ICs3MDE2LDggQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAlwdWJsaWMgY2xhc3MgU3RhdGVLZXkgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5v d25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyBkb3VibGUgZ2V0X3Bvc3RfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIGRvdWJsZSBnZXRfcHJlX2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgR0xpYi5UeXBlIGdldF9wcm9wZXJ0eV90eXBlICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc291cmNlX3N0YXRlX25hbWUgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90YXJnZXRf c3RhdGVfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdmFs dWUgKEdMaWIuVmFsdWUgdmFsdWUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zd2lwZV9hY3Rpb25fZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTcyNjUsNTMgKzcw MjksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIp XQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc3dpcGUgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIENsdXR0ZXIuU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf dGFibGVfbGF5b3V0X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBj bGFzcyBUYWJsZUxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdl cioiKV0KKy0JCXB1YmxpYyBUYWJsZUxheW91dCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRl ci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB5X2Fs aWduKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2NvbHVtbl9jb3VudCAoKTsKKy0JCXB1YmxpYyB1aW50 IGdldF9jb2x1bW5fc3BhY2luZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWlu dCBnZXRfZWFzaW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1 bG9uZyBnZXRfZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgZ2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9leHBhbmQsIG91 dCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRf ZmlsbCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9maWxsLCBvdXQgYm9vbCB5X2Zp bGwpOworLQkJcHVibGljIGludCBnZXRfcm93X2NvdW50ICgpOworLQkJcHVibGljIHVpbnQgZ2V0 X3Jvd19zcGFjaW5nICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NwYW4gKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIG91dCBpbnQgY29sdW1uX3NwYW4sIG91dCBpbnQgcm93X3NwYW4pOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfYW5pbWF0aW9ucyAoKTsKKy0JCXB1Ymxp YyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW4sIGludCByb3cpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5UYWJs ZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2x1bW5fc3BhY2luZyAo dWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZWFz aW5nX2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfZWFzaW5nX21vZGUgKHVsb25nIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9leHBh bmQsIGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOwor LQkJcHVibGljIHZvaWQgc2V0X3Jvd19zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJcHVibGlj IHZvaWQgc2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW5fc3BhbiwgaW50 IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2Fu aW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlwdWJsaWMgdWludCBjb2x1bW5fc3BhY2luZyB7 IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZWFzaW5nX2R1 cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcg ZWFzaW5nX21vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQgcm93X3NwYWNpbmcgeyBn ZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbmltYXRp b25zIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFwX2FjdGlvbl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgY2xhc3MgVGFwQWN0 aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKK0BAIC03MzM5LDcgKzcwNTYsNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY3Vyc29yX2NvbG9y ICgpOworIAkJcHVibGljIGludCBnZXRfY3Vyc29yX3Bvc2l0aW9uICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0IHVu b3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9yZWN0 IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHVpbnQgZ2V0X2N1 cnNvcl9zaXplICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2N1cnNvcl92aXNpYmxlICgpOworIAkJ cHVibGljIGJvb2wgZ2V0X2VkaXRhYmxlICgpOworQEAgLTc0NTgsNyArNzE3NSw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKENsdXR0ZXIuR2Vv bWV0cnkgZ2VvbWV0cnkpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2 ZW50IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3RleHQgKGludCBz dGFydF9wb3MsIGludCBlbmRfcG9zKTsKK0BAIC03NDk3LDkyICs3MjE0LDkgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIFRleHROb2RlIChQYW5nby5MYXlvdXQ/IGxheW91dCwgQ2x1 dHRlci5Db2xvcj8gY29sb3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFRleHR1cmUg OiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1 dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJ cHVibGljIFRleHR1cmUgKCk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgVGV4dHVyZS5mcm9tX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBm aWxlbmFtZSkgdGhyb3dzIENsdXR0ZXIuVGV4dHVyZUVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lk IGdldF9iYXNlX3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29nbF9tYXRlcmlh bCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBn ZXRfY29nbF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVy LlRleHR1cmVRdWFsaXR5IGdldF9maWx0ZXJfcXVhbGl0eSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgYm9vbCBnZXRfa2VlcF9hc3BlY3RfcmF0aW8gKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvYWRfYXN5bmMgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIGJvb2wgZ2V0X2xvYWRfZGF0YV9hc3luYyAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgaW50IGdldF9tYXhfdGlsZV93YXN0ZSAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgYm9vbCBnZXRfcGlja193aXRoX2FscGhhICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9yZXBlYXQgKG91dCBib29sIHJlcGVhdF94LCBvdXQg Ym9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3N5 bmNfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCBzZXRfYXJlYV9m cm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRh LCBib29sIGhhc19hbHBoYSwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGlu dCByb3dzdHJpZGUsIGludCBicHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF9t YXRlcmlhbCAoQ29nbC5IYW5kbGUgY29nbF9tYXRlcmlhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2NvZ2xfdGV4dHVyZSAoQ29nbC5IYW5kbGUgY29nbF90ZXgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWx0ZXJfcXVhbGl0eSAoQ2x1 dHRlci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQor LQkJcHVibGljIGJvb2wgc2V0X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9yZ2Jf ZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgYm9vbCBo YXNfYWxwaGEsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwg Q2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX3l1dl9kYXRhIChbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENs dXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfa2VlcF9hc3BlY3RfcmF0aW8gKGJvb2wga2VlcF9h c3BlY3QpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2FkX2FzeW5j IChib29sIGxvYWRfYXN5bmMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9sb2FkX2RhdGFfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3BpY2tfd2l0aF9hbHBoYSAoYm9vbCBwaWNrX3dpdGhfYWxwaGEp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZXBlYXQgKGJvb2wgcmVw ZWF0X3gsIGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9zeW5jX3NpemUgKGJvb2wgc3luY19zaXplKTsKKysJcHVibGljIGNsYXNzIFRleHR1cmUg OiBDbHV0dGVyLkFjdG9yIHsKKyAJCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0ZXJpYWwg eyBnZXQ7IHNldDsgfQorIAkJcHVibGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkaXNhYmxlX3Ns aWNpbmcgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJ cHVibGljIHN0cmluZyBmaWxlbmFtZSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1 dHRlci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSB7IGdldDsgc2V0IGNvbnN0cnVjdDsg fQorLQkJcHVibGljIGJvb2wga2VlcF9hc3BlY3RfcmF0aW8geyBnZXQ7IHNldDsgfQorLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfYXN5bmMgeyBzZXQ7IH0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBsb2FkX2RhdGFfYXN5bmMgeyBzZXQ7IH0KKy0JCXB1 YmxpYyBib29sIHBpY2tfd2l0aF9hbHBoYSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBib29sIHJlcGVhdF94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3kgeyBnZXQ7IHNldDsgfQorLQkJcHVi bGljIGJvb2wgc3luY19zaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGludCB0aWxlX3dhc3RlIHsgZ2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgbG9hZF9maW5pc2hlZCAoR0xpYi5FcnJvciBlcnJv cik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGl4YnVmX2NoYW5nZSAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzaXplX2NoYW5nZSAoaW50IHdpZHRo LCBpbnQgaGVpZ2h0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dHVyZV9ub2RlX2dldF90eXBlICgp IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzYwOCw3ICs3MjQyLDcgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVi bGljIGJvb2wgZ2V0X2F1dG9fcmV2ZXJzZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCistCQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0dGVyLlBv aW50IGNfMSwgQ2x1dHRlci5Qb2ludCBjXzIpOworKwkJcHVibGljIGJvb2wgZ2V0X2N1YmljX2Jl emllcl9wcm9ncmVzcyAoR3JhcGhlbmUuUG9pbnQgY18xLCBHcmFwaGVuZS5Qb2ludCBjXzIpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRf cmVwZWF0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorQEAgLTc2NDUsNyArNzI3 OSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9hdXRvX3JldmVyc2UgKGJvb2wgcmV2ZXJzZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jlemllcl9w cm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18yKTsKKysJCXB1Ymxp YyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNfMSwgR3Jh cGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9kZWxheSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCitAQCAtNzc0NCw2ICs3Mzc4LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RyYW5zZm9y bV9ub2RlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBUcmFuc2Zvcm1Ob2RlIDogQ2x1 dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBUcmFuc2Zvcm1Ob2Rl IChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNpdGlvbl9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgYWJz dHJhY3QgY2xhc3MgVHJhbnNpdGlvbiA6IENsdXR0ZXIuVGltZWxpbmUsIENsdXR0ZXIuU2NyaXB0 YWJsZSB7CitAQCAtNzc4Myw3ICs3NDIyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFZpcnR1 YWxJbnB1dERldmljZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV90eXBlICgpOworLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9tYW5hZ2VyICgpOworIAkJ cHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfYWJzb2x1dGVfbW90aW9uICh1aW50NjQgdGltZV91 cywgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2J1 dHRvbiAodWludDY0IHRpbWVfdXMsIHVpbnQzMiBidXR0b24sIENsdXR0ZXIuQnV0dG9uU3RhdGUg YnV0dG9uX3N0YXRlKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2Rpc2NyZXRlX3Nj cm9sbCAodWludDY0IHRpbWVfdXMsIENsdXR0ZXIuU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwg Q2x1dHRlci5TY3JvbGxTb3VyY2Ugc2Nyb2xsX3NvdXJjZSk7CitAQCAtNzc5NCwyNSArNzQzMiwy NSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90 b3VjaF9kb3duICh1aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBkb3VibGUgeSk7 CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9tb3Rpb24gKHVpbnQ2NCB0aW1l X3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgbm90aWZ5X3RvdWNoX3VwICh1aW50NjQgdGltZV91cywgaW50IHNsb3QpOworLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9tYW5h Z2VyIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2 aWNlVHlwZSBkZXZpY2VfdHlwZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7IG93bmVkIGdldDsgY29uc3RydWN0 OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3pvb21fYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCisgCXB1YmxpYyBjbGFzcyBab29tQWN0aW9uIDogQ2x1dHRl ci5HZXN0dXJlQWN0aW9uIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCisgCQlwdWJsaWMgWm9vbUFjdGlvbiAoKTsK Ky0JCXB1YmxpYyB2b2lkIGdldF9mb2NhbF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7Cist CQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKENsdXR0ZXIuUG9pbnQg cG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Qb2ludCBw b2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKEdyYXBo ZW5lLlBvaW50IHBvaW50KTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpvb21BeGlzIGdldF96b29tX2F4 aXMgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfem9vbV9heGlzIChDbHV0dGVyLlpvb21BeGlzIGF4 aXMpOworIAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMgem9vbV9heGlzIHsgZ2V0OyBzZXQ7IH0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENsdXR0ZXIuQWN0b3IgYWN0b3Is IENsdXR0ZXIuUG9pbnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIHZp cnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3RvciBhY3RvciwgR3JhcGhlbmUuUG9p bnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0b3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfY25hbWUgPSAiQ2x1dHRlckFuaW1h dGFibGVJbnRlcmZhY2UiLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0YWJsZV9nZXRfdHlwZSAo KSIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIEFuaW1hdGFibGUgOiBHTGliLk9iamVjdCB7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2lu Y2UgPSAiMS4wIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IGJvb2wgYW5p bWF0ZV9wcm9wZXJ0eSAoQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0aW9uLCBzdHJpbmcgcHJvcGVy dHlfbmFtZSwgR0xpYi5WYWx1ZSBpbml0aWFsX3ZhbHVlLCBHTGliLlZhbHVlIGZpbmFsX3ZhbHVl LCBkb3VibGUgcHJvZ3Jlc3MsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmlu ZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworQEAgLTc4MzAsOCArNzQ2OCw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJhZGQiKV0KKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfYWN0b3IgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZF92 YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0 dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAg LTc4NTMsMTAgKzc0ODksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGZpbmRfY2hpbGRfYnlfbmFtZSAoc3RyaW5nIGNoaWxkX25hbWUpOwor IAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3By b3BlcnR5IildCisgCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2No aWxkX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQor LQkJcHVibGljIGFic3RyYWN0IHZvaWQgQGZvcmVhY2ggKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJh Y2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZm9yZWFjaF93 aXRoX2ludGVybmFscyAoQ2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQ2hpbGRN ZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40 IildCitAQCAtNzg3NCw4ICs3NTA2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2Rl ICh2ZnVuY19uYW1lID0gInJlbW92ZSIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBh YnN0cmFjdCB2b2lkIHJlbW92ZV9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3ZhbGlzdCAoQ2x1dHRlci5BY3RvciBm aXJzdF9hY3RvciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorIAkJcHVi bGljIGFic3RyYWN0IHZvaWQgc29ydF9kZXB0aF9vcmRlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCB2b2lkIGFjdG9yX2FkZGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKK0BAIC03ODky LDcgKzc1MjIsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBpbnZhbGlkYXRlICgpOworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgaW52YWxpZGF0ZV9zaXpl ICgpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2NvbnRl bnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUGFpbnROb2RlIG5vZGUpOworKwkJcHVi bGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1 dHRlci5QYWludE5vZGUgbm9kZSwgQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgYXR0YWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KK0BAIC03OTA4LDEwICs3NTM4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor IAlwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5H ZW9tZXRyeSBzdGFnZV9yZWN0YW5nbGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0 cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CisgCQlb Tm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsK KyAJCVtOb1dyYXBwZXJdCitAQCAtNzkzOSwxNCArNzU2NSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgp OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRf Y29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2FjdG9yX2JveF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKyAJ CXB1YmxpYyBmbG9hdCB4MTsKKyAJCXB1YmxpYyBmbG9hdCB5MTsKKyAJCXB1YmxpYyBmbG9hdCB4 MjsKKyAJCXB1YmxpYyBmbG9hdCB5MjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisr CQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFsbG9jICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CisrCQlw dWJsaWMgc3RhdGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKHJlZiBDbHV0dGVyLkFjdG9yQm94IGJv eCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjb250YWlu cyAoZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAt Nzk1NSw4ICs3NTgzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1 YWwgKENsdXR0ZXIuQWN0b3JCb3ggYm94X2IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9h Y3Rvcl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLQkJcHVibGljIEFjdG9yQm94LmZyb21fdmVydGlj ZXMgKENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorQEAgLTgwMDIsNyArNzYyOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB3ZWFrIENhaXJvLlN1cmZhY2UgaW1hZ2U7CisgCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50 IHJlY3Q7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVk X2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ0xVVFRF Ul9UWVBFX0NPTE9SIildCisgCXB1YmxpYyBzdHJ1Y3QgQ29sb3IgeworIAkJcHVibGljIHVpbnQ4 IHJlZDsKKyAJCXB1YmxpYyB1aW50OCBncmVlbjsKK0BAIC04MDQxLDI0ICs3NjY3LDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGlj IHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvZ19nZXRfdHlwZSAoKSIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RydWN0IEZvZyB7CistCQlwdWJsaWMgZmxv YXQgel9uZWFyOworLQkJcHVibGljIGZsb2F0IHpfZmFyOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZW9t ZXRyeV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0IEdlb21ldHJ5IHsKKy0JCXB1 YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyB1aW50IHdpZHRoOworLQkJ cHVibGljIHVpbnQgaGVpZ2h0OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIGJvb2wgaW50ZXJzZWN0cyAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeTEpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgdW5pb24g KENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnlfYik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1 YmxpYyBzdHJ1Y3QgS2JkQTExeVNldHRpbmdzIHsKKyAJCXB1YmxpYyBDbHV0dGVyLktleWJvYXJk QTExeUZsYWdzIGNvbnRyb2xzOworQEAgLTgwNjksNyArNzY3Nyw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX21heF9zcGVlZDsKKyAJCXB1YmxpYyBpbnQg bW91c2VrZXlzX2FjY2VsX3RpbWU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9rbm90X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0cnVjdCBLbm90IHsKKyAJCXB1YmxpYyBpbnQgeDsK K0BAIC04MTIxLDcgKzc3MjksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91 YmxlIHZhbHVlOworIAkJcHVibGljIHVpbnQzMiBtb2RlOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRo X25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0 aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFBh dGhOb2RlIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlBhdGhOb2RlVHlwZSB0eXBlOworQEAgLTgxMzEs NyArNzczOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChD bHV0dGVyLlBhdGhOb2RlIG5vZGVfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRf Y29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K KyAJcHVibGljIHN0cnVjdCBQZXJzcGVjdGl2ZSB7CisgCQlwdWJsaWMgZmxvYXQgZm92eTsKK0BA IC04MTYyLDcgKzc3NzAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgd2VhayBD bHV0dGVyLkFjdG9yIHNvdXJjZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2Ug ZGV2aWNlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRTIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hl ZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNMVVRU RVJfVFlQRV9VTklUUyIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBz dHJ1Y3QgVW5pdHMgeworIAkJcHVibGljIENsdXR0ZXIuVW5pdHM/IGNvcHkgKCk7CitAQCAtODE4 NiwyMyArNzc5NCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB0b19w aXhlbHMgKCk7CisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfdmVydGV4X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0J cHVibGljIHN0cnVjdCBWZXJ0ZXggeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxv YXQgeTsKKy0JCXB1YmxpYyBmbG9hdCB6OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5WZXJ0ZXg/IGFsbG9jICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4PyBjb3B5ICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIu VmVydGV4IHZlcnRleF9iKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIGZyZWUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5WZXJ0ZXg/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHop OworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNwcmVmaXggPSAiQ0xVVFRFUl9BQ1RPUl9BTElHTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0 b3JfYWxpZ25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ cHVibGljIGVudW0gQWN0b3JBbGlnbiB7CitAQCAtODM0MCw2ICs3OTMxLDI3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVlfQVhJUywKKyAJCUJPVEgKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdf IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdz XQorKwlwdWJsaWMgZW51bSBEZWJ1Z0ZsYWcgeworKwkJTUlTQywKKysJCUFDVE9SLAorKwkJVEVY VFVSRSwKKysJCUVWRU5ULAorKwkJUEFJTlQsCisrCQlQQU5HTywKKysJCUJBQ0tFTkQsCisrCQlT Q0hFRFVMRVIsCisrCQlTQ1JJUFQsCisrCQlTSEFERVIsCisrCQlNVUxUSVNUQUdFLAorKwkJQU5J TUFUSU9OLAorKwkJTEFZT1VULAorKwkJUElDSywKKysJCUVWRU5UTE9PUCwKKysJCUNMSVBQSU5H LAorKwkJT09CX1RSQU5TRk9STVMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRFJBR18iLCB0eXBlX2lkID0g ImNsdXR0ZXJfZHJhZ19heGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJcHVibGljIGVudW0gRHJhZ0F4aXMgeworQEAgLTgzNDcsNiArNzk1OSwxOSBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlYX0FYSVMsCisgCQlZX0FYSVMKKyAJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYXdfZGVidWdfZmxhZ19nZXRfdHlwZSAo KSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERyYXdEZWJ1Z0ZsYWcgeworKwkJRElTQUJM RV9TV0FQX0VWRU5UUywKKysJCURJU0FCTEVfQ0xJUFBFRF9SRURSQVdTLAorKwkJUkVEUkFXUywK KysJCVBBSU5UX1ZPTFVNRVMsCisrCQlESVNBQkxFX0NVTExJTkcsCisrCQlESVNBQkxFX09GRlND UkVFTl9SRURJUkVDVCwKKysJCUNPTlRJTlVPVVNfUkVEUkFXLAorKwkJUEFJTlRfREVGT1JNX1RJ TEVTLAorKwkJUEFJTlRfREFNQUdFX1JFR0lPTgorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJ TlRfQUNUT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19nZXRfdHlw ZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVmZmVjdFBhaW50RmxhZ3MgeworQEAg LTgzOTgsOCArODAyMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGVudW0gRmVh dHVyZUZsYWdzIHsKKyAJCVRFWFRVUkVfTlBPVCwKKyAJCVNXQVBfVEhST1RUTEUsCistCQlURVhU VVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCisgCQlTVEFHRV9TVEFUSUMsCisgCQlT VEFHRV9DVVJTT1IsCisgCQlTSEFERVJTX0dMU0wsCitAQCAtODY1Nyw2ICs4MjgwLDExIEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVJFTF9MSU5FX1RPLAorIAkJUkVMX0NVUlZFX1RPCisgCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZp eCA9ICJDTFVUVEVSX0RFQlVHX05PUF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19kZWJ1Z19m bGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gUGlja0RlYnVnRmxh ZyB7CisrCQlQSUNLSU5HCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1BJQ0tfIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3BpY2tfbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisgCXB1YmxpYyBlbnVtIFBpY2tNb2RlIHsKK0BAIC04ODUxLDEzICs4NDc5LDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJTEVGVCwKKyAJCVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RBQkxF X0FMSUdOTUVOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFibGVfYWxpZ25tZW50X2dldF90eXBl ICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjIyIiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIFRhYmxlQWxpZ25tZW50IHsK Ky0JCVNUQVJULAorLQkJQ0VOVEVSLAorLQkJRU5ECistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RFWFRfRElS RUNUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBlbnVtIFRleHREaXJlY3Rp b24geworQEAgLTg5MzMsMjggKzg1NTQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJVkFM VUU7CisgCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVU VEVSX1RFWFRVUkVfRVJST1JfIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVi bGljIGVycm9yZG9tYWluIFRleHR1cmVFcnJvciB7CistCQlPVVRfT0ZfTUVNT1JZLAorLQkJTk9f WVVWLAorLQkJQkFEX0ZPUk1BVDsKKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAo KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAlw dWJsaWMgZGVsZWdhdGUgQ2x1dHRlci5BY3RvciBBY3RvckNyZWF0ZUNoaWxkRnVuYyAoR0xpYi5P YmplY3QgaXRlbSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBk ZWxlZ2F0ZSBkb3VibGUgQWxwaGFGdW5jIChDbHV0dGVyLkFscGhhIGFscGhhKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0g Mi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBCZWhhdmlvdXJG b3JlYWNoRnVuYyAoQ2x1dHRlci5CZWhhdmlvdXIgYmVoYXZpb3VyLCBDbHV0dGVyLkFjdG9yIGFj dG9yKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg aW5zdGFuY2VfcG9zID0gNC45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJs aWMgZGVsZWdhdGUgYm9vbCBCaW5kaW5nQWN0aW9uRnVuYyAoR0xpYi5PYmplY3QgZ29iamVjdCwg c3RyaW5nIGFjdGlvbl9uYW1lLCB1aW50IGtleV92YWwsIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1v ZGlmaWVycyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIENhbGxiYWNr IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKysJcHVibGljIGRlbGVnYXRl IHZvaWQgRW1pdElucHV0RGV2aWNlRXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIu SW5wdXREZXZpY2UgZGV2aWNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTgiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgRXZlbnRGaWx0ZXJGdW5jIChDbHV0dGVy LkV2ZW50IGV2ZW50KTsKK0BAIC04OTg1LDkgKzg1OTcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklU WV9SRURSQVc7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0 ZXIuQWN0b3JCb3g/IGFjdG9yX2JveF9hbGxvYyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBiYXNlX2lu aXQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTkwNTEsOSArODY2MCw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMg c3RhdGljIHVub3duZWQgUGFuZ28uRm9udE1hcCBnZXRfZm9udF9tYXAgKCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9r ZXlib2FyZF9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RhdGlj IEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTA2MSwxNyArODY2Nyw4IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdl dF9vcHRpb25fZ3JvdXBfd2l0aG91dF9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor LQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9ncmFiICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5n IGdldF9zY3JpcHRfaWQgKEdMaWIuT2JqZWN0IGdvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9rZXlib2FyZCAoQ2x1dHRlci5BY3RvciBh Y3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFi X3BvaW50ZXIgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLkluaXRF cnJvciBpbml0IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJhcmdjIiwgYXJyYXlfbGVu Z3RoX3BvcyA9IDAuNSldIHJlZiB1bm93bmVkIHN0cmluZ1tdPyBhcmd2KTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjIiKV0KK0BAIC05MDg3LDI5ICs4Njg0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVi bGljIHN0YXRpYyB2b2lkIHNldF9jdXN0b21fYmFja2VuZF9mdW5jICh2b2lkKiBmdW5jKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2FkZF9kYXRh X2Z1bGwgKHN0cmluZyB0ZXN0X3BhdGgsIG93bmVkIEdMaWIuVGVzdERhdGFGdW5jIHRlc3RfZnVu Yyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgdGVzdF9j aGVja19hY3Rvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Qb2ludCBw b2ludCwgQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuQWN0b3I/IHJlc3VsdCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgdGVzdF9jaGVja19j b2xvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Qb2ludCBwb2ludCwg Q2x1dHRlci5Db2xvciBjb2xvciwgb3V0IENsdXR0ZXIuQ29sb3IgcmVzdWx0KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHRl c3RfZ2V0X3N0YWdlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoaW50IGFyZ2MsIHN0 cmluZyBhcmd2KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgaW50 IHRlc3RfcnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdW5ncmFiX2tleWJvYXJkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdW5ncmFiX3BvaW50ZXIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAlwdWJsaWMgc3RhdGljIHVpbnQgdW5pY29kZV90b19rZXlzeW0gKHVpbnQzMiB3Yyk7CisgfQor ZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTQuZGVwcyB2YXBpL211dHRlci1jbHV0dGVy LTcuZGVwcworc2ltaWxhcml0eSBpbmRleCA1NCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNs dXR0ZXItNC5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY2x1dHRlci03LmRlcHMKK2luZGV4 IDk1MDk0MDI2Li42YmQxY2NmNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQuZGVw cworKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy5kZXBzCitAQCAtMSw1ICsxLDQgQEAKKyBhdGsK KyBjYWlybworIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY29nbC00CistcGFuZ28KKyttdXR0ZXIt Y29nbC03CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC52YXBpIHZhcGkvbXV0dGVy LWNsdXR0ZXItNy52YXBpCitzaW1pbGFyaXR5IGluZGV4IDg2JQorcmVuYW1lIGZyb20gdmFwaS9t dXR0ZXItY2x1dHRlci00LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTcudmFw aQoraW5kZXggYzhhMWQyM2IuLmFlYTZhMzFhIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0 ZXItNC52YXBpCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci03LnZhcGkKK0BAIC0xLDYgKzEsNiBA QAorLS8qIG11dHRlci1jbHV0dGVyLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90 IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY2x1dHRlci03LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGln ZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBn aXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9j cHJlZml4ID0gImNsdXR0ZXJfIildCisrW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJf bmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI3IiwgbG93ZXJfY2FzZV9jcHJl Zml4ID0gImNsdXR0ZXJfIildCisgbmFtZXNwYWNlIENsdXR0ZXIgeworIAluYW1lc3BhY2UgS2V5 IHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNu YW1lID0gIkNMVVRURVJfS0VZXzAiKV0KK0BAIC00NTc2LDIwICs0NTc2LDggQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBzdGF0 aWMgdWludCBhZGRfcmVwYWludF9mdW5jX2Z1bGwgKENsdXR0ZXIuUmVwYWludEZsYWdzIGZsYWdz LCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgZW50ZXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBsZWF2ZSAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92 ZV9yZXBhaW50X2Z1bmMgKHVpbnQgaGFuZGxlX2lkKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9sb2NrX2Z1bmN0aW9ucyAoR0xpYi5DYWxsYmFj ayBlbnRlcl9mbiwgR0xpYi5DYWxsYmFjayBsZWF2ZV9mbik7CisgCX0KKyAJbmFtZXNwYWNlIFZh bHVlIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorQEAgLTQ2MzYsNyArNDYyNCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBz dGF0aWMgdm9pZCB0YWtlX3BhaW50X25vZGUgKEdMaWIuVmFsdWUgdmFsdWUsIENsdXR0ZXIuUGFp bnROb2RlPyBub2RlKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0aW9uX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEFjdGlv biA6IENsdXR0ZXIuQWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBBY3Rpb24gKCk7CitAQCAtNDY2NCwzMyArNDY1MSwy MyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHZvaWQgYWRkX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lLCBDbHV0dGVyLlRyYW5z aXRpb24gdHJhbnNpdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5B bGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAo Q2x1dHRlci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgYWxsb2NhdGVfYWxpZ25fZmlsbCAoQ2x1dHRlci5BY3RvckJveCBib3gsIGRv dWJsZSB4X2FsaWduLCBkb3VibGUgeV9hbGlnbiwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsLCBD bHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9h bGlnbl9maWxsIChDbHV0dGVyLkFjdG9yQm94IGJveCwgZG91YmxlIHhfYWxpZ24sIGRvdWJsZSB5 X2FsaWduLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgYWxsb2NhdGVfYXZhaWxhYmxlX3NpemUgKGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IGF2YWlsYWJsZV93aWR0aCwgZmxvYXQgYXZhaWxhYmxlX2hlaWdodCwg Q2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZvaWQgYWxsb2NhdGVf YXZhaWxhYmxlX3NpemUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGF2YWlsYWJsZV93aWR0aCwg ZmxvYXQgYXZhaWxhYmxlX2hlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5BbGxvY2F0aW9u RmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQW5pbWF0aW9uIGFuaW1hdGUgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIC4uLik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5p bWF0ZV93aXRoX2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhLCAuLi4pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF9h bHBoYXYgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0g Im5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUpXSBzdHJpbmdbXSBwcm9wZXJ0 aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9s ZW5ndGhfcG9zID0gMS41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX3RpbWVs aW5lICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCAuLi4pOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVf d2l0aF90aW1lbGluZXYgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIFtD Q29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9w b3MgPSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFt ZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5WYWx1ZVtd IHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B bmltYXRpb24gYW5pbWF0ZXYgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIFtDQ29kZSAoYXJy YXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUp XSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3By b3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7 CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6ZSAoZmxvYXQgeCwgZmxvYXQg eSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0 ZXggYXBwbHlfcmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBhbmNl c3RvciwgQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfcmVsYXRp dmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgR3JhcGhlbmUu UG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJ W05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfdHJhbnNmb3JtIChyZWYg Q2x1dHRlci5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIu VmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAo R3JhcGhlbmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0 ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJCXB1YmxpYyB2b2lkIGJpbmRf bW9kZWwgKEdMaWIuTGlzdE1vZGVsPyBtb2RlbCwgb3duZWQgQ2x1dHRlci5BY3RvckNyZWF0ZUNo aWxkRnVuYyBjcmVhdGVfY2hpbGRfZnVuYyk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZp cnR1YWwgZmxvYXQgY2FsY3VsYXRlX3Jlc291cmNlX3NjYWxlIChpbnQgcGhhc2UpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgY2xlYXJfYWN0aW9ucyAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00NzAwLDIwICs0Njc3LDE5IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyBib29sIGNvbnRhaW5zIChDbHV0dGVyLkFjdG9yIGRlc2NlbmRhbnQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY29udGludWVfcGFpbnQgKCk7CisrCQlw dWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29u dGV4dCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9waWNrIChDbHV0dGVyLlBpY2tDb250ZXh0 IHBpY2tfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg UGFuZ28uQ29udGV4dCBjcmVhdGVfcGFuZ29fY29udGV4dCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5MYXlvdXQgY3JlYXRlX3BhbmdvX2xheW91dCAo c3RyaW5nPyB0ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dm9pZCBkZXN0cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBkZXRhY2hfYW5pbWF0aW9uICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVy X2FjdG9yX2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMg Ym9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIGNhcHR1cmUpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0 aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0 ZXggdmVydHNbNF0pOworKwkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2Vz IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0c1s0 XSk7CisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIEF0ay5PYmplY3QgZ2V0X2FjY2Vzc2libGUg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFjdGlvbiBnZXRfYWN0aW9uIChzdHJpbmcgbmFtZSk7CitAQCAtNDcyMSwyMSArNDY5Nyw4 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVy LkFjdGlvbj4gZ2V0X2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisg CQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBnZXRfYWxsb2NhdGlvbl9ib3ggKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgZ2V0X2FsbG9jYXRpb25fZ2Vv bWV0cnkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBn ZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FuY2hvcl9wb2ludCAob3V0IGZsb2F0IGFu Y2hvcl94LCBvdXQgZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLkdyYXZpdHkgZ2V0X2FuY2hvcl9wb2ludF9ncmF2aXR5ICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGdldF9hbmltYXRp b24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIu Q29sb3IgZ2V0X2JhY2tncm91bmRfY29sb3IgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfZ2V0X2FjdG9yX2J5X2dpZCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2J5X2dpZCAodWludDMyIGlkXyk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBn ZXRfY2hpbGRfYXRfaW5kZXggKGludCBpbmRleF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KK0BAIC00NzYyLDggKzQ3MjUsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgdm9pZCBnZXRfY29udGVudF9zY2FsaW5nX2ZpbHRlcnMgKG91dCBDbHV0dGVyLlNjYWxpbmdG aWx0ZXIgbWluX2ZpbHRlciwgb3V0IENsdXR0ZXIuU2NhbGluZ0ZpbHRlciBtYWdfZmlsdGVyKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LlBhaW50Vm9sdW1lIGdldF9kZWZhdWx0X3BhaW50X3ZvbHVtZSAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMg ZmxvYXQgZ2V0X2RlcHRoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB1aW50IGdldF9lYXNpbmdfZGVsYXkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorQEAgLTQ3NzYsMTIgKzQ3MzcsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuRWZmZWN0PiBnZXRfZWZmZWN0cyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF9maXJzdF9jaGlsZCAoKTsKKysJCXB1YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlvbiAo b3V0IGZsb2F0IHgsIG91dCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0K KyAJCXB1YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlvbl9zZXQgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckZsYWdzIGdldF9mbGFncyAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsKKyAJCVtD Q29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9oYXNfcG9pbnRlciIpXQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19wb2ludGVyICgpOworQEAg LTQ4MzksMTcgKzQ3OTksMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wg Z2V0X3JlYWN0aXZlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGlj IENsdXR0ZXIuUmVxdWVzdE1vZGUgZ2V0X3JlcXVlc3RfbW9kZSAoKTsKKy0JCXB1YmxpYyBib29s IGdldF9yZXNvdXJjZV9zY2FsZSAob3V0IGZsb2F0IHJlc291cmNlX3NjYWxlKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC44IildCistCQlwdWJsaWMgZG91YmxlIGdldF9yb3RhdGlvbiAoQ2x1dHRlci5Sb3RhdGVB eGlzIGF4aXMsIG91dCBmbG9hdCB4LCBvdXQgZmxvYXQgeSwgb3V0IGZsb2F0IHopOworKwkJcHVi bGljIGZsb2F0IGdldF9yZXNvdXJjZV9zY2FsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdldF9yb3RhdGlvbl9hbmdsZSAoQ2x1dHRlci5Sb3Rh dGVBeGlzIGF4aXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZv aWQgZ2V0X3NjYWxlIChvdXQgZG91YmxlIHNjYWxlX3gsIG91dCBkb3VibGUgc2NhbGVfeSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NjYWxlX2NlbnRlciAob3V0IGZs b2F0IGNlbnRlcl94LCBvdXQgZmxvYXQgY2VudGVyX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X3NjYWxlX2dyYXZpdHkgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGRvdWJsZSBnZXRfc2NhbGVfeiAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC00ODYwLDggKzQ4MTQsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIGdldF90ZXh0X2Rp cmVjdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1 dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgQ2x1dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybWF0aW9uX21hdHJpeCAoKTsKKysJCXB1Ymxp YyB2b2lkIGdldF90cmFuc2Zvcm1lZF9leHRlbnRzIChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0 IHJlY3QpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHVub3duZWQg Q2x1dHRlci5QYWludFZvbHVtZSBnZXRfdHJhbnNmb3JtZWRfcGFpbnRfdm9sdW1lIChDbHV0dGVy LkFjdG9yIHJlbGF0aXZlX3RvX2FuY2VzdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgi KV0KK0BAIC00ODg1LDEwICs0ODM4LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGJvb2wgZ2V0X3lfZXhwYW5kICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJ CXB1YmxpYyBmbG9hdCBnZXRfel9wb3NpdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgQ2x1dHRlci5HcmF2aXR5IGdldF96X3JvdGF0aW9uX2dyYXZpdHkgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBncmFiX2tleV9mb2N1cyAoKTsK KysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaGFzX2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGJvb2wgaGFzX2FjdGlvbnMgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDkwMCwxOCArNDg1MiwyMCBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfZWZmZWN0cyAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGhhc19rZXlfZm9jdXMgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIGJvb2wgaGFzX21hcHBlZF9jbG9uZXMg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBib29s IGhhc19vdmVybGFwcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCisrCQlbTm9XcmFwcGVyXQorIAkJ cHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX2FsbCAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRf Y3VsbGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBpbnNlcnRfY2hpbGRfYWJvdmUgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQWN0b3I/ IHNpYmxpbmcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lk IGluc2VydF9jaGlsZF9hdF9pbmRleCAoQ2x1dHRlci5BY3RvciBjaGlsZCwgaW50IGluZGV4Xyk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0X2No aWxkX2JlbG93IChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nKTsK KysJCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfdHJhbnNmb3JtICgpOworKwkJcHVibGljIGJvb2wg aXNfZWZmZWN0aXZlbHlfb25fc3RhZ2VfdmlldyAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBpc19pbl9jbG9uZV9w YWludCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCitAQCAtNDkyNCwzMyArNDg3 OCwyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBpc19zY2FsZWQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIGJvb2wgaXNfdmlzaWJs ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBsb3dlciAoQ2x1dHRlci5BY3Rvcj8gYWJvdmUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyX2JvdHRvbSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWFwICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyB2b2lkIG1vdmVfYW5jaG9yX3BvaW50IChmbG9hdCBhbmNob3JfeCwgZmxv YXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIG1vdmVfYW5j aG9yX3BvaW50X2Zyb21fZ3Jhdml0eSAoQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgbW92ZV9ieSAoZmxvYXQgZHgs IGZsb2F0IGR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9v bCBuZWVkc19leHBhbmQgKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJW05v V3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfbm9kZSAoQ2x1dHRlci5QYWlu dE5vZGUgcm9vdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcG9wX2ludGVy bmFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfaW50ZXJuYWwg KCk7CisrCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRlci5TdGFnZVZpZXc+IHBlZWtf c3RhZ2Vfdmlld3MgKCk7CisrCQlwdWJsaWMgdm9pZCBwaWNrX2JveCAoQ2x1dHRlci5QaWNrQ29u dGV4dCBwaWNrX2NvbnRleHQsIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKysJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuRnJhbWVDbG9jayBwaWNrX2ZyYW1lX2Nsb2NrICgpOworIAkJcHVibGljIHZv aWQgcXVldWVfcmVkcmF3ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIHF1ZXVlX3JlZHJhd193aXRoX2NsaXAgKENhaXJvLlJlY3RhbmdsZUludD8gY2xp cCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmFpc2UgKENsdXR0ZXIuQWN0b3I/IGJlbG93KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCByYWlzZV90b3AgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfYWN0aW9uIChDbHV0dGVyLkFjdGlvbiBhY3Rpb24p OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ5NzIsOCArNDkxMyw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9lZmZlY3RfYnlfbmFtZSAo c3RyaW5nIG5hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 b2lkIHJlbW92ZV90cmFuc2l0aW9uIChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQor LQkJcHVibGljIHZvaWQgcmVwYXJlbnQgKENsdXR0ZXIuQWN0b3IgbmV3X3BhcmVudCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcmVwbGFjZV9jaGlsZCAo Q2x1dHRlci5BY3RvciBvbGRfY2hpbGQsIENsdXR0ZXIuQWN0b3IgbmV3X2NoaWxkKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNDk4MSwxMSArNDkyMCw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBzYXZlX2Vhc2luZ19zdGF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCBzZXRfYWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvckJveCBib3gsIENsdXR0 ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg dm9pZCBzZXRfYW5jaG9yX3BvaW50IChmbG9hdCBhbmNob3JfeCwgZmxvYXQgYW5jaG9yX3kpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbmNob3JfcG9pbnRfZnJvbV9n cmF2aXR5IChDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfYWxs b2NhdGlvbiAoQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kX2NvbG9yIChDbHV0dGVyLkNvbG9y PyBjb2xvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTUwMDgsOCArNDk0 Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3Jl cGVhdCAoQ2x1dHRlci5Db250ZW50UmVwZWF0IHJlcGVhdCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfc2NhbGluZ19maWx0ZXJzIChD bHV0dGVyLlNjYWxpbmdGaWx0ZXIgbWluX2ZpbHRlciwgQ2x1dHRlci5TY2FsaW5nRmlsdGVyIG1h Z19maWx0ZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aCAoZmxvYXQgZGVwdGgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdf ZGVsYXkgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01 MDM5LDggKzQ5NzIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRf b2Zmc2NyZWVuX3JlZGlyZWN0IChDbHV0dGVyLk9mZnNjcmVlblJlZGlyZWN0IHJlZGlyZWN0KTsK KyAJCXB1YmxpYyB2b2lkIHNldF9vcGFjaXR5ICh1aW50OCBvcGFjaXR5KTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9vcGFjaXR5X292ZXJyaWRlIChpbnQgb3BhY2l0eSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3BhcmVudCAoQ2x1dHRlci5BY3RvciBwYXJlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9waXZvdF9wb2ludCAoZmxvYXQgcGl2b3Rf eCwgZmxvYXQgcGl2b3RfeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTUw NTAsMTYgKzQ5ODEsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0 X3JlYWN0aXZlIChib29sIHJlYWN0aXZlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9yZXF1ZXN0X21vZGUgKENsdXR0ZXIuUmVxdWVzdE1vZGUgbW9k ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JvdGF0aW9uIChDbHV0 dGVyLlJvdGF0ZUF4aXMgYXhpcywgZG91YmxlIGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h dCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRf cm90YXRpb25fYW5nbGUgKENsdXR0ZXIuUm90YXRlQXhpcyBheGlzLCBkb3VibGUgYW5nbGUpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlIChk b3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9zY2FsZV9mdWxsIChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ks IGZsb2F0IGNlbnRlcl94LCBmbG9hdCBjZW50ZXJfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3NjYWxlX3dpdGhfZ3Jhdml0eSAoZG91YmxlIHNjYWxlX3gsIGRvdWJs ZSBzY2FsZV95LCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3ogKGRvdWJsZSBzY2FsZV96KTsK KyAJCXB1YmxpYyB2b2lkIHNldF9zaXplIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKK0BA IC01MDg1LDE3ICs1MDEwLDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lk IHNldF95X2V4cGFuZCAoYm9vbCBleHBhbmQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF96X3Bvc2l0aW9uIChmbG9hdCB6X3Bvc2l0aW9uKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfel9yb3RhdGlvbl9mcm9tX2dyYXZp dHkgKGRvdWJsZSBhbmdsZSwgQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJcHVibGljIGJv b2wgc2hvdWxkX3BpY2tfcGFpbnQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCBzaG93X2FsbCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJ CXB1YmxpYyBib29sIHRyYW5zZm9ybV9zdGFnZV9wb2ludCAoZmxvYXQgeCwgZmxvYXQgeSwgb3V0 IGZsb2F0IHhfb3V0LCBvdXQgZmxvYXQgeV9vdXQpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0 X2N1bGxpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdmly dHVhbCB2b2lkIHVubWFwICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHVu cGFyZW50ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQg dW5zZXRfZmxhZ3MgKENsdXR0ZXIuQWN0b3JGbGFncyBmbGFncyk7CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KK0BAIC01MTAzLDE2ICs1MDIzLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIENsdXR0ZXIuQWN0aW9uIGFjdGlvbnMgeyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuQWN0b3JC b3ggYWxsb2NhdGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBhbmNob3JfZ3Jhdml0eSB7IGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJs aWMgZmxvYXQgYW5jaG9yX3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGZsb2F0IGFuY2hvcl95IHsgZ2V0OyBzZXQ7IH0K KysJCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24geyBvd25lZCBnZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBiYWNr Z3JvdW5kX2NvbG9yIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUx MjIsMTEgKzUwMzMsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgY2hpbGRfdHJhbnNmb3JtX3NldCB7IGdldDsgfQor IAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgY2xp cCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdl dDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBnZXQ7 IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgY2xp cF90b19hbGxvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAg LTUxNDAsOCArNTA0OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVy LkNvbnRlbnRHcmF2aXR5IGNvbnRlbnRfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29udGVudFJlcGVhdCBjb250 ZW50X3JlcGVhdCB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGZs b2F0IGRlcHRoIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIENsdXR0ZXIuRWZmZWN0IGVmZmVjdCB7IHNl dDsgfQorQEAgLTUyMTEsMTIgKzUxMTcsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHVpbnQgb3BhY2l0eSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwaXZv dF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2 b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyBmbG9hdCBwaXZvdF9wb2ludF96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludCBwb3NpdGlvbiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCByZWFjdGl2ZSB7IGdldDsgc2V0OyB9CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjI1LDggKzUxMzEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5SZXF1 ZXN0TW9kZSByZXF1ZXN0X21vZGUgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgZmxvYXQgcmVzb3VyY2Vfc2NhbGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGRvdWJsZSBy b3RhdGlvbl9hbmdsZV94IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAg LTUyMzYsMjcgKzUxNDAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91YmxlIHJvdGF0aW9uX2FuZ2xlX3ogeyBnZXQ7IHNl dDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRl eCByb3RhdGlvbl9jZW50ZXJfeSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2Vu dGVyX3ogeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSByb3RhdGlvbl9jZW50ZXJfel9ncmF2aXR5 IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBmbG9hdCBzY2FsZV9jZW50ZXJfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgc2NhbGVfY2Vu dGVyX3kgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBzY2FsZV9ncmF2aXR5IHsgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor IAkJcHVibGljIGRvdWJsZSBzY2FsZV94IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorQEAgLTUyNjksNyArNTE1Miw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBib29sIHNob3dfb25fc2V0X3BhcmVudCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5T aXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlNpemUgc2l6 ZSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIHRleHRfZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0K KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyOTksOCArNTE4Miw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHlfZXhwYW5kIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgel9wb3NpdGlvbiB7IGdldDsg c2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc2lnbmFsIHZv aWQgYWxsb2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5BbGxv Y2F0aW9uRmxhZ3MgZmxhZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgYnV0dG9uX3ByZXNzX2V2ZW50IChDbHV0dGVyLkJ1dHRv bkV2ZW50IGV2ZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KK0BAIC01MzMxLDIy ICs1MjEyLDI1IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCBib29sIG1vdGlvbl9ldmVudCAoQ2x1dHRlci5Nb3Rpb25FdmVudCBldmVudCk7CisgCQlbSGFz RW1pdHRlcl0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCBwYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhaW50IChDbHV0dGVy LlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIi KV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhcmVudF9zZXQgKENsdXR0ZXIuQWN0 b3I/IG9sZF9wYXJlbnQpOworKwkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaWNrIChDbHV0dGVyLkNvbG9y IGNvbG9yKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIuUGlj a0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcXVldWVfcmVsYXlv dXQgKCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCByZWFsaXplICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgcmVzb3VyY2Vfc2NhbGVfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHNjcm9sbF9ldmVudCAoQ2x1dHRlci5T Y3JvbGxFdmVudCBldmVudCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNob3cgKCk7CisrCQlwdWJs aWMgc2lnbmFsIHZvaWQgc3RhZ2Vfdmlld3NfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB0b3VjaF9ldmVudCAo Q2x1dHRlci5FdmVudCBldmVudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAg LTUzNTgsMjEgKzUyNDIsMzMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIHZvaWQgdW5yZWFsaXplICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9tZXRh X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFi c3RyYWN0IGNsYXNzIEFjdG9yTWV0YSA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQWN0b3JN ZXRhICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKyAJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9hY3RvciAoQ2x1dHRlci5BY3Rvcj8gYWN0 b3IpOworLQkJcHVibGljIHZvaWQgc2V0X2VuYWJsZWQgKGJvb2wgaXNfZW5hYmxlZCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9lbmFi bGVkIChib29sIGlzX2VuYWJsZWQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X25hbWUgKHN0cmluZyBuYW1lKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGFjdG9yIHsgZ2V0OyB9CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBlbmFibGVkIHsgZ2V0OyBzZXQ7 IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7 IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX25vZGVfZ2V0X3R5cGUgKCkiKV0K KysJcHVibGljIGNsYXNzIEFjdG9yTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5v ZGUqIildCisrCQlwdWJsaWMgQWN0b3JOb2RlIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfYWxpZ25fY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBBbGlnbkNvbnN0cmFpbnQgOiBDbHV0dGVy LkNvbnN0cmFpbnQgeworQEAgLTUzODAsODEgKzUyNzYsMTggQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIEFsaWduQ29uc3RyYWludCAoQ2x1dHRlci5BY3Rvcj8gc291cmNlLCBDbHV0 dGVyLkFsaWduQXhpcyBheGlzLCBmbG9hdCBmYWN0b3IpOworIAkJcHVibGljIENsdXR0ZXIuQWxp Z25BeGlzIGdldF9hbGlnbl9heGlzICgpOworIAkJcHVibGljIGZsb2F0IGdldF9mYWN0b3IgKCk7 CisrCQlwdWJsaWMgdm9pZCBnZXRfcGl2b3RfcG9pbnQgKG91dCB1bm93bmVkIEdyYXBoZW5lLlBv aW50IHBpdm90X3BvaW50KTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3Nv dXJjZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9hbGlnbl9heGlzIChDbHV0dGVyLkFsaWduQXhp cyBheGlzKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGZsb2F0IGZhY3Rvcik7CisrCQlw dWJsaWMgdm9pZCBzZXRfcGl2b3RfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBpdm90X3BvaW50KTsK KyAJCXB1YmxpYyB2b2lkIHNldF9zb3VyY2UgKENsdXR0ZXIuQWN0b3I/IHNvdXJjZSk7CisgCQlw dWJsaWMgQ2x1dHRlci5BbGlnbkF4aXMgYWxpZ25fYXhpcyB7IGdldDsgc2V0IGNvbnN0cnVjdDsg fQorIAkJcHVibGljIGZsb2F0IGZhY3RvciB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorKwkJW05v QWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQgeyBv d25lZCBnZXQ7IHNldDsgfQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3Igc291cmNlIHsgZ2V0OyBz ZXQgY29uc3RydWN0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FscGhhX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBBbHBoYSA6IEdMaWIuSW5pdGlhbGx5VW5v d25lZCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBBbHBoYSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBBbHBoYS5mdWxsIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCB1bG9uZyBtb2Rl KTsKKy0JCXB1YmxpYyBkb3VibGUgZ2V0X2FscGhhICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Nsb3N1cmUgKEdMaWIuQ2xv c3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdWxvbmcgcmVnaXN0ZXJfZnVuYyAoQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY2xvc3VyZSAoR0xp Yi5DbG9zdXJlIGNsb3N1cmUpOworLQkJcHVibGljIHZvaWQgc2V0X2Z1bmMgKG93bmVkIENsdXR0 ZXIuQWxwaGFGdW5jIGZ1bmMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworLQkJcHVibGljIHZvaWQgc2V0X3RpbWVs aW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBBbHBoYS53aXRoX2Z1bmMgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIG93bmVkIENs dXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworLQkJcHVibGljIGRvdWJsZSBhbHBoYSB7IGdldDsgfQor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7 IHNldCBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lIHsg Z2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0aW9uX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBjbGFzcyBBbmltYXRpb24gOiBHTGliLk9iamVjdCwg Q2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXB1YmxpYyBBbmltYXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFuaW1hdGlvbiBiaW5kIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBmaW5h bCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kX2ludGVydmFsIChz dHJpbmcgcHJvcGVydHlfbmFtZSwgb3duZWQgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxw aGEgKCk7CistCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkludGVydmFsIGdldF9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUpOwor LQkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlwdWJsaWMgYm9v bCBoYXNfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQkJcHVi bGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9s b29wIChib29sIGxvb3ApOworLQkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOwor LQkJcHVibGljIHZvaWQgc2V0X29iamVjdCAoR0xpYi5PYmplY3Qgb2JqZWN0KTsKKy0JCXB1Ymxp YyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZT8gdGltZWxpbmUpOworLQkJcHVi bGljIHZvaWQgdW5iaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRhdGUgKHN0cmluZyBwcm9wZXJ0eV9uYW1l LCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9pbnRlcnZhbCAoc3Ry aW5nIHByb3BlcnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0J CXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIGxvb3Ag eyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVi bGljIEdMaWIuT2JqZWN0IG9iamVjdCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5U aW1lbGluZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIHN0YXJ0ZWQgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCitAQCAtNTQ2NywzNyArNTMwMCwxNCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JhY2tlbmRfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2VuZCA6IEdM aWIuT2JqZWN0IHsKKysJcHVibGljIGFic3RyYWN0IGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVj dCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90 ZWN0ZWQgQmFja2VuZCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lk IGFkZF9vcHRpb25zIChHTGliLk9wdGlvbkdyb3VwIGdyb3VwKTsKKy0JCXB1YmxpYyB2b2lkIGJl bGxfbm90aWZ5ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgY3Jl YXRlX2NvbnRleHQgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLlN0YWdlV2luZG93IGNyZWF0ZV9zdGFnZSAoQ2x1 dHRlci5TdGFnZSB3cmFwcGVyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdl KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2 aWNlTWFuYWdlciBnZXRfZGV2aWNlX21hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworKwkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9kZWZhdWx0X3NlYXQgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdW5vd25lZCBDYWlyby5Gb250T3B0aW9ucyBn ZXRfZm9udF9vcHRpb25zICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1dE1ldGhv ZCBnZXRfaW5wdXRfbWV0aG9kICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5LZXltYXAg Z2V0X2tleW1hcCAoKTsKKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3Jlc29sdXRpb24gKCk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZmVhdHVyZXMgKCk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwb3N0X3BhcnNlICgpIHRocm93cyBH TGliLkVycm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3Bh cnNlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgcmVkcmF3IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9mb250X29wdGlvbnMgKENhaXJvLkZvbnRP cHRpb25zIG9wdGlvbnMpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X21ldGhvZCAoQ2x1dHRl ci5JbnB1dE1ldGhvZCBtZXRob2QpOworQEAgLTU1MDgsOTUgKzUzMTgsMTEgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHNpZ25h bCB2b2lkIHNldHRpbmdzX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9n ZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBC ZWhhdmlvdXIgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCZWhhdmlvdXIg KCk7CistCQlwdWJsaWMgdm9pZCBhY3RvcnNfZm9yZWFjaCAoQ2x1dHRlci5CZWhhdmlvdXJGb3Jl YWNoRnVuYyBmdW5jKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFs cGhhX25vdGlmeSAoZG91YmxlIGFscGhhX3ZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIGFwcGx5IChD bHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5B Y3Rvcj4gZ2V0X2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWxwaGEgZ2V0 X2FscGhhICgpOworLQkJcHVibGljIGludCBnZXRfbl9hY3RvcnMgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGdldF9udGhfYWN0b3IgKGludCBpbmRleF8pOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgaXNfYXBwbGllZCAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCByZW1vdmUgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2Fs bCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7Cist CQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhcHBsaWVkIChD bHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHJlbW92ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfZGVwdGhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0g IjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyRGVwdGggOiBDbHV0dGVyLkJlaGF2aW91 ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC40IildCistCQlwdWJsaWMgQmVoYXZpb3VyRGVwdGggKENsdXR0ZXIuQWxwaGE/IGFs cGhhLCBpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGludCBkZXB0aF9zdGFy dCwgb3V0IGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2JvdW5kcyAoaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5kKTsK Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJ cHVibGljIGludCBkZXB0aF9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX3N0YXJ0 IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX29wYWNpdHlfZ2V0X3R5 cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyT3BhY2l0 eSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioi KV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJPcGFjaXR5IChDbHV0dGVyLkFscGhhPyBhbHBoYSwgdWlu dDggb3BhY2l0eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IHVpbnQ4IG9wYWNpdHlf c3RhcnQsIG91dCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzICh1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50 OCBvcGFjaXR5X2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG9w YWNpdHlfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IHVpbnQgb3BhY2l0eV9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2 aW91cl9zY2FsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFz cyBCZWhhdmlvdXJTY2FsZSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckJlaGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJTY2FsZSAoQ2x1dHRlci5BbHBo YT8gYWxwaGEsIGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwgZG91 YmxlIHhfc2NhbGVfZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGRvdWJsZSB4X3NjYWxl X3N0YXJ0LCBvdXQgZG91YmxlIHlfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeF9zY2FsZV9lbmQs IG91dCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor LQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5 X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyBkb3VibGUgeF9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHhfc2Nh bGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfZW5kIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIGRvdWJsZSB5X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfYmluX2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisgCXB1YmxpYyBjbGFzcyBCaW5MYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckxheW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQmluTGF5b3V0IChDbHV0dGVyLkJpbkFs aWdubWVudCB4X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQuU1RBUlQsIENsdXR0ZXIuQmlu QWxpZ25tZW50IHlfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgYWRkIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0 dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVy LkFjdG9yPyBjaGlsZCwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0 dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg dm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgQ2x1dHRlci5CaW5BbGln bm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5CaW5BbGln bm1lbnQgeF9hbGlnbiB7IGdldDsgc2V0OyB9CitAQCAtNTY0NCw5OCArNTM3MCwyOSBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyRWZmZWN0KiIpXQorIAkJcHVibGljIEJsdXJFZmZlY3QgKCk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2JveF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCistCXB1YmxpYyBjbGFzcyBCb3ggOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50 b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0 YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIEJveCAoQ2x1 dHRlci5MYXlvdXRNYW5hZ2VyIG1hbmFnZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkxheW91dE1hbmFnZXIgZ2V0X2xheW91dF9tYW5hZ2VyICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja19hZnRlciAo Q2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8gc2libGluZywgLi4uKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrX2F0IChDbHV0dGVyLkFjdG9yIGFjdG9y LCBpbnQgcG9zaXRpb24sIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQg cGFja19iZWZvcmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcs IC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja3YgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIs IGFycmF5X2xlbmd0aF9wb3MgPSAxLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50IildIHN0 cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVy dGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50 IildIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvcj8gY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9sYXlvdXRfbWFuYWdlciAoQ2x1dHRlci5MYXlvdXRNYW5hZ2Vy IG1hbmFnZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNv bG9yIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyBib29sIGNvbG9yX3NldCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1 dHRlci5MYXlvdXRNYW5hZ2VyIGxheW91dF9tYW5hZ2VyIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfYm94X2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisgCXB1YmxpYyBjbGFzcyBCb3hMYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckxheW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQm94TGF5b3V0ICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIG91dCBDbHV0dGVyLkJveEFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5Cb3hBbGln bm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2Vh c2luZ19kdXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWxvbmcgZ2V0 X2Vhc2luZ19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9l eHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2ZpbGwsIG91 dCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMg Ym9vbCBnZXRfaG9tb2dlbmVvdXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor IAkJcHVibGljIENsdXR0ZXIuT3JpZW50YXRpb24gZ2V0X29yaWVudGF0aW9uICgpOworIAkJcHVi bGljIGJvb2wgZ2V0X3BhY2tfc3RhcnQgKCk7CisgCQlwdWJsaWMgdWludCBnZXRfc3BhY2luZyAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlvbnMg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3ZlcnRpY2FsICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIGJvb2wgZXhwYW5kLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwsIENsdXR0ZXIuQm94QWxp Z25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQm94QWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIENsdXR0ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQm94QWxpZ25tZW50IHlf YWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfZHVy YXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9lYXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCBleHBhbmQpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWxsIChDbHV0dGVyLkFjdG9yIGFj dG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2hvbW9nZW5lb3VzIChib29sIGhvbW9nZW5lb3VzKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfb3JpZW50 YXRpb24gKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJcHVibGljIHZvaWQg c2V0X3BhY2tfc3RhcnQgKGJvb2wgcGFja19zdGFydCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfc3Bh Y2luZyAodWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBz ZXRfdXNlX2FuaW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3ZlcnRpY2FsIChib29sIHZlcnRpY2FsKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgdWludCBlYXNpbmdfZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bG9uZyBlYXNpbmdfbW9kZSB7IGdldDsgc2V0OyB9Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBob21vZ2VuZW91cyB7 IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENs dXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24geyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGJv b2wgcGFja19zdGFydCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCBzcGFjaW5nIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0aW9u cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgdmVydGlj YWwgeyBnZXQ7IHNldDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9icmlnaHRuZXNzX2NvbnRyYXN0X2Vm ZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTU3 NDksOSArNTQwNiw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9j b250cmFzdCAoZmxvYXQgY29udHJhc3QpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRyYXN0X2Z1 bGwgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUpOworIAkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBicmlnaHRuZXNzIHsgZ2V0OyBzZXQ7IH0K KysJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJyaWdodG5lc3MgeyBvd25lZCBnZXQ7IHNldDsgfQor IAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb250cmFzdCB7 IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb250cmFzdCB7IG93bmVkIGdl dDsgc2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorQEAgLTU3NzAsMzcg KzU0MjcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1 YmxpYyBmbG9hdCB5OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jYWlyb190ZXh0dXJlX2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBjbGFzcyBDYWlyb1RleHR1cmUgOiBDbHV0 dGVyLlRleHR1cmUsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVy LkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBD YWlyb1RleHR1cmUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGNs ZWFyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRl ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRlX3Jl Z2lvbiAoaW50IHhfb2Zmc2V0LCBpbnQgeV9vZmZzZXQsIGludCB3aWR0aCwgaW50IGhlaWdodCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19y ZXNpemUgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc3VyZmFjZV9zaXplIChvdXQgdWludCB3aWR0 aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIGludmFsaWRhdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlX3JlY3RhbmdsZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBy ZWN0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9h dXRvX3Jlc2l6ZSAoYm9vbCB2YWx1ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfc3VyZmFjZV9zaXpl ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgYm9vbCBhdXRvX3Jlc2l6ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHN1cmZhY2VfaGVpZ2h0IHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV93aWR0aCB7IGdldDsg c2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgQ2Fpcm8uU3VyZmFjZSBjcmVhdGVfc3VyZmFjZSAodWludCB3aWR0aCwgdWludCBoZWln aHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2ln bmFsIGJvb2wgZHJhdyAoQ2Fpcm8uQ29udGV4dCBjcik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhbnZh c19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMg Y2xhc3MgQ2FudmFzIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CitAQCAtNTgyNywx NyArNTQ1MywyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db250 YWluZXIgY29udGFpbmVyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2xp Y2tfYWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ cHVibGljIGNsYXNzIENsaWNrQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0K KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBDbGlja0FjdGlvbiAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1aW50IGdldF9idXR0b24g KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRfY29v cmRzIChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuTW9kaWZpZXJUeXBlIGdldF9zdGF0 ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbGVh c2UgKCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyBib29sIGhlbGQgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTU4NDYsNyArNTQ3NSw5IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBp bnQgbG9uZ19wcmVzc190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRo b2RdCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBwcmVzc2Vk IHsgZ2V0OyB9CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBjbGlja2VkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGxvbmdfcHJl c3MgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuTG9uZ1ByZXNzU3RhdGUgc3RhdGUpOwor QEAgLTU4ODgsOCArNTUxOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBD b25zdHJhaW50ICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBk YXRlX2FsbG9jYXRpb24gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3JCb3ggYWxs b2NhdGlvbik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVf cHJlZmVycmVkX3NpemUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50YXRpb24g ZGlyZWN0aW9uLCBmbG9hdCBmb3Jfc2l6ZSwgZmxvYXQgbWluaW11bV9zaXplLCBmbG9hdCBuYXR1 cmFsX3NpemUpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfcHJlZmVycmVkX3NpemUg KENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50YXRpb24gZGlyZWN0aW9uLCBmbG9h dCBmb3Jfc2l6ZSwgcmVmIGZsb2F0IG1pbmltdW1fc2l6ZSwgcmVmIGZsb2F0IG5hdHVyYWxfc2l6 ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorQEAgLTU4OTgsNiArNTUyOCw3 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXREZXZp Y2UgZGV2aWNlOworIAkJcHVibGljIENsdXR0ZXIuRXZlbnRGbGFncyBmbGFnczsKKyAJCXB1Ymxp YyB3ZWFrIENsdXR0ZXIuQWN0b3IgcmVsYXRlZDsKKysJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuRXZl bnRTZXF1ZW5jZSBzZXF1ZW5jZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3Igc291cmNl OworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5TdGFnZSBzdGFnZTsKKyAJCXB1YmxpYyB1aW50MzIg dGltZTsKK0BAIC01OTMxLDk4ICs1NTYyLDIxIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyB2b2lkIHNldF9mYWN0b3IgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIGRvdWJsZSBm YWN0b3IgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZXZpY2VfbWFuYWdlcl9nZXRf dHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBEZXZpY2VNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERldmljZU1hbmFnZXIgKCk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfZGV2aWNlIChDbHV0 dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mg c2V0dGluZ3MpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJl c3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQp OworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRlX3Zp cnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlw dWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2NvcmVfZGV2aWNl IChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZWZhdWx0ICgpOworLQkJcHVibGlj IHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZpY2UgKGludCBkZXZp Y2VfaWQpOworLQkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLkti ZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1 YWxEZXZpY2VUeXBlIGdldF9zdXBwb3J0ZWRfdmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7CistCQlw dWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5JbnB1dERldmljZT4gcGVl a19kZXZpY2VzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVt b3ZlX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2VsZWN0X3N0YWdlX2V2ZW50cyAoQ2x1dHRlci5TdGFn ZSBzdGFnZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIu S2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2 aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1 dERldmljZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2No YW5nZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9t YXNrLCB1aW50IGxvY2tlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB0b29sX2NoYW5n ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlVG9vbCBw MCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIERyYWdBY3Rpb24gOiBDbHV0dGVy LkFjdGlvbiB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorLQkJcHVibGljIERyYWdBY3Rpb24gKCk7CistCQlwdWJs aWMgYm9vbCBnZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3QgZHJhZ19hcmVhKTsKKy0JCXB1Ymxp YyBDbHV0dGVyLkRyYWdBeGlzIGdldF9kcmFnX2F4aXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFjdG9yIGdldF9kcmFnX2hhbmRsZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9kcmFn X3RocmVzaG9sZCAob3V0IHVpbnQgeF90aHJlc2hvbGQsIG91dCB1aW50IHlfdGhyZXNob2xkKTsK Ky0JCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzIChvdXQgZmxvYXQgbW90aW9uX3gsIG91 dCBmbG9hdCBtb3Rpb25feSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzIChvdXQg ZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworLQkJcHVibGljIHZvaWQgc2V0X2Ry YWdfYXJlYSAoQ2x1dHRlci5SZWN0PyBkcmFnX2FyZWEpOworLQkJcHVibGljIHZvaWQgc2V0X2Ry YWdfYXhpcyAoQ2x1dHRlci5EcmFnQXhpcyBheGlzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFn X2hhbmRsZSAoQ2x1dHRlci5BY3Rvcj8gaGFuZGxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFn X3RocmVzaG9sZCAoaW50IHhfdGhyZXNob2xkLCBpbnQgeV90aHJlc2hvbGQpOworLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENs dXR0ZXIuUmVjdCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZHJh Z19hcmVhX3NldCB7IGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuRHJhZ0F4aXMgZHJhZ19heGlz IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGRyYWdfaGFuZGxlIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4X2RyYWdfdGhy ZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGlu dCB5X2RyYWdfdGhyZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIGRyYWdfYmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZs b2F0IGV2ZW50X3ksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZGlmaWVycyk7CistCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCBkcmFnX2VuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQg ZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsK Ky0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyYWdfbW90aW9uIChDbHV0dGVyLkFjdG9y IGFjdG9yLCBmbG9hdCBkZWx0YV94LCBmbG9hdCBkZWx0YV95KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmFnX3Byb2dyZXNz IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBkZWx0YV94LCBmbG9hdCBkZWx0YV95KTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfZHJvcF9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQlwdWJsaWMgY2xhc3MgRHJvcEFjdGlvbiA6IENsdXR0ZXIuQWN0aW9u IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNs dXR0ZXJBY3Rpb24qIildCistCQlwdWJsaWMgRHJvcEFjdGlvbiAoKTsKKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCBib29sIGNhbl9kcm9wIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVu dF94LCBmbG9hdCBldmVudF95KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyb3Ag KENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3kpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkcm9wX2Nh bmNlbCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSk7 CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBvdmVyX2luIChDbHV0dGVyLkFjdG9yIGFj dG9yKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIG92ZXJfb3V0IChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEVmZmVjdCA6 IENsdXR0ZXIuQWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBFZmZlY3QgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgYm9vbCBnZXRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLlBhaW50Vm9sdW1lIHZv bHVtZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIG1vZGlmeV9wYWludF92b2x1bWUgKENsdXR0 ZXIuUGFpbnRWb2x1bWUgdm9sdW1lKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHBhaW50IChDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVibGlj IHZpcnR1YWwgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCwg Q2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7Cisr CQlwdWJsaWMgdmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250 ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQg KCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250 ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJv b2wgcHJlX3BhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKENsdXR0 ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorIAkJcHVibGljIHZvaWQgcXVldWVfcmVwYWludCAoKTsKKyAJfQorQEAgLTYwMzMsOCAr NTU4NywxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudFR5 cGUgdHlwZTsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXB1YmxpYyBFdmVudCAoQ2x1dHRlci5FdmVudFR5cGUgdHlwZSk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHN0YXRpYyB1aW50IGFkZF9maWx0ZXIgKENsdXR0ZXIu U3RhZ2U/IHN0YWdlLCBbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAyLjIsIGRlc3Ryb3lf bm90aWZ5X3BvcyA9IDIuMSldIG93bmVkIENsdXR0ZXIuRXZlbnRGaWx0ZXJGdW5jIGZ1bmMpOwor IAkJcHVibGljIENsdXR0ZXIuRXZlbnQgY29weSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIu RXZlbnQgQGdldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMg ZG91YmxlIGdldF9hbmdsZSAoQ2x1dHRlci5FdmVudCB0YXJnZXQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorQEAgLTYwNzMsNyArNTYzMSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyB1aW50IGdldF9tb2RlX2dyb3VwICgpOworIAkJcHVibGljIGJvb2wgZ2V0X3Bh ZF9ldmVudF9kZXRhaWxzIChvdXQgdWludCBudW1iZXIsIG91dCB1aW50IG1vZGUsIG91dCBkb3Vi bGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lk IGdldF9wb3NpdGlvbiAoQ2x1dHRlci5Qb2ludCBwb3NpdGlvbik7CisrCQlwdWJsaWMgdm9pZCBn ZXRfcG9zaXRpb24gKEdyYXBoZW5lLlBvaW50IHBvc2l0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3JlbGF0ZWQg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTYxMDYsOCArNTY2NCwxMiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfc2hpZnRfbW9kaWZpZXIg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgaXNfcG9p bnRlcl9lbXVsYXRlZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKysJCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50IHBlZWsgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBwdXQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xOCIpXQorKwkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9maWx0ZXIgKHVpbnQgaWQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2J1dHRv biAodWludDMyIGJ1dHRvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNjE0 MCwxNiArNTcwMiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9z dGF0ZSAoQ2x1dHRlci5Nb2RpZmllclR5cGUgc3RhdGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3RpbWUgKHVpbnQzMiB0aW1lXyk7CistCQlwdWJs aWMgQ2x1dHRlci5BbnlFdmVudCBhbnkge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJBbnlFdmVu dCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5CdXR0b25FdmVudCBidXR0b24ge1tD Q29kZSAoY25hbWUgPSAiKENsdXR0ZXJCdXR0b25FdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJs aWMgQ2x1dHRlci5Dcm9zc2luZ0V2ZW50IGNyb3NzaW5nIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0 dGVyQ3Jvc3NpbmdFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5LZXlFdmVu dCBrZXkge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJLZXlFdmVudCAqKSIpXSAgZ2V0OyB9Cist CQlwdWJsaWMgQ2x1dHRlci5Nb3Rpb25FdmVudCBtb3Rpb24ge1tDQ29kZSAoY25hbWUgPSAiKENs dXR0ZXJNb3Rpb25FdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxF dmVudCBzY3JvbGwge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTY3JvbGxFdmVudCAqKSIpXSAg Z2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5TdGFnZVN0YXRlRXZlbnQgc3RhZ2Vfc3RhdGUge1tD Q29kZSAoY25hbWUgPSAiKENsdXR0ZXJTdGFnZVN0YXRlRXZlbnQgKikiKV0gIGdldDsgfQorLQkJ cHVibGljIENsdXR0ZXIuVG91Y2hFdmVudCB0b3VjaCB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRl clRvdWNoRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVG91Y2hwYWRQaW5j aEV2ZW50IHRvdWNocGFkX3BpbmNoIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hwYWRQ aW5jaEV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRvdWNocGFkU3dpcGVF dmVudCB0b3VjaHBhZF9zd2lwZSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNocGFkU3dp cGVFdmVudCAqKSIpXSAgZ2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9zZXF1 ZW5jZV9nZXRfdHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC02MTk4LDEwICs1NzUwLDI0IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlw dWJsaWMgYm9vbCBzbmFwX3RvX2dyaWQgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9m cmFtZV9jbG9ja19nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgRnJhbWVDbG9jayA6IEdM aWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KysJCXB1YmxpYyBGcmFtZUNsb2NrIChmbG9hdCByZWZyZXNoX3JhdGUsIENsdXR0ZXIuRnJhbWVM aXN0ZW5lcklmYWNlIGlmYWNlLCB2b2lkKiB1c2VyX2RhdGEpOworKwkJcHVibGljIHZvaWQgYWRk X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKysJCXB1YmxpYyBmbG9hdCBn ZXRfcmVmcmVzaF9yYXRlICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdCAoKTsKKysJCXB1Ymxp YyB2b2lkIHJlbW92ZV90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSk7CisrCQlw dWJsaWMgdm9pZCBzY2hlZHVsZV91cGRhdGUgKCk7CisrCQlwdWJsaWMgdm9pZCBzY2hlZHVsZV91 cGRhdGVfbm93ICgpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0ICgpOworKwkJW0hhc0VtaXR0 ZXJdCisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVzdHJveSAoKTsKKysJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf Z2VzdHVyZV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAlwdWJsaWMgY2xhc3MgR2VzdHVyZUFjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rp b24qIildCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgR2VzdHVyZUFj dGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBj YW5jZWwgKCk7CitAQCAtNjIxMSw2ICs1Nzc3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfZGV2aWNlICh1aW50IHBvaW50 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkV2ZW50IGdldF9sYXN0X2V2ZW50ICh1aW50IHBvaW50KTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzICh1aW50IHBvaW50 LCBvdXQgZmxvYXQgbW90aW9uX3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IGdldF9tb3Rpb25fZGVsdGEgKHVpbnQg cG9pbnQsIG91dCBmbG9hdCBkZWx0YV94LCBvdXQgZmxvYXQgZGVsdGFfeSk7CitAQCAtNjIxOCw3 ICs1Nzg1LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0X25fY3Vy cmVudF9wb2ludHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGlj IGludCBnZXRfbl90b3VjaF9wb2ludHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CisgCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxvYXQg cHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAkJcHVibGljIHZvaWQgZ2V0X3JlbGVhc2VfY29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxv YXQgcmVsZWFzZV94LCBvdXQgZmxvYXQgcmVsZWFzZV95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50U2VxdWVuY2UgZ2V0X3Nl cXVlbmNlICh1aW50IHBvaW50KTsKK0BAIC02MjQ2LDkgKzU4MTUsMTMgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHRocmVzaG9sZF90cmlnZ2VyX2Rpc3RhbmNlX3kgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1Ymxp YyBDbHV0dGVyLkdlc3R1cmVUcmlnZ2VyRWRnZSB0aHJlc2hvbGRfdHJpZ2dlcl9lZGdlIHsgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCBib29sIGdlc3R1cmVfYmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgZ2VzdHVyZV9jYW5jZWwgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZ2VzdHVyZV9lbmQg KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZ2VzdHVyZV9wcm9ncmVzcyAoQ2x1dHRlci5BY3Rv ciBhY3Rvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dyaWRfbGF5b3V0X2dldF90eXBlICgpIildCitA QCAtNjI3OCwxOSArNTg1MSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29s IHJvd19ob21vZ2VuZW91cyB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCByb3dfc3BhY2lu ZyB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dyb3VwX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEdyb3VwIDogQ2x1dHRl ci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29u dGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBH cm91cCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgaW50IGdldF9uX2NoaWxkcmVu ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Ig Z2V0X250aF9jaGlsZCAoaW50IGluZGV4Xyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2Fs bCAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIEltYWdlIDogR0xpYi5PYmplY3QsIENs dXR0ZXIuQ29udGVudCB7CitAQCAtNjMwNiw2ICs1ODY2LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAlwdWJsaWMgY2xhc3MgSW5wdXREZXZpY2UgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgSW5wdXREZXZp Y2UgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFjdG9yIGdldF9hY3RvciAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LklucHV0RGV2aWNlIGdldF9hc3NvY2lhdGVkX2RldmljZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KK0BAIC02MzEzLDcgKzU4NzUsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXhpc192YWx1 ZSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGRvdWJsZVtdIGF4ZXMsIENsdXR0ZXIu SW5wdXRBeGlzIGF4aXMsIG91dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5j ZT8gc2VxdWVuY2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZ2V0X2Nv b3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSwgR3JhcGhlbmUuUG9pbnQgcG9p bnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGludCBnZXRfZGV2 aWNlX2lkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzMjUsMTIgKzU4 ODcsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dERldmlj ZVR5cGUgZ2V0X2RldmljZV90eXBlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIGJvb2wgZ2V0X2VuYWJsZWQgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfZ2V0X2lucHV0X2RldmljZV9mb3JfaWQiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCQlwdWJs aWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfZm9yX2lkIChpbnQgaWRf KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFjdG9yIGdldF9ncmFiYmVkX2FjdG9yICgpOworLQkJcHVibGljIGludCBnZXRfZ3JvdXBf bl9tb2RlcyAoaW50IGdyb3VwKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGludCBnZXRfZ3JvdXBfbl9t b2RlcyAoaW50IGdyb3VwKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1Ymxp YyBib29sIGdldF9oYXNfY3Vyc29yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor QEAgLTYzNDYsMjMgKzU5MDUsMjEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGlu dCBnZXRfbl9tb2RlX2dyb3VwcyAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fcmluZ3MgKCk7Cisg CQlwdWJsaWMgaW50IGdldF9uX3N0cmlwcyAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9waHlzaWNh bF9zaXplIChkb3VibGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9h Y3RvciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuU3RhZ2UgZ2V0X3BvaW50ZXJfc3RhZ2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9kdWN0X2lkICgpOwor KwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9zZWF0ICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXRE ZXZpY2U+IGdldF9zbGF2ZV9kZXZpY2VzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIi KV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdmVuZG9yX2lkICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGdyYWIgKENsdXR0ZXIuQWN0b3Ig YWN0b3IpOworLQkJcHVibGljIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBv dGhlcl9kZXZpY2UpOworLQkJcHVibGljIGJvb2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50 IGdyb3VwLCB1aW50IGJ1dHRvbik7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX2dyb3VwZWQg KENsdXR0ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJv b2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wga2V5Y29kZV90b19ldmRl diAodWludCBoYXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworKwkJcHVibGlj IHZpcnR1YWwgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVp bnQgZXZkZXZfa2V5Y29kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBzZXF1ZW5jZV9nZXRfZ3JhYmJlZF9hY3RvciAoQ2x1 dHRlci5FdmVudFNlcXVlbmNlIHNlcXVlbmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCitAQCAtNjM3OCwxMiArNTkzNSwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgdm9pZCB1bmdyYWIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJs aWMgdm9pZCB1cGRhdGVfZnJvbV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgYm9vbCB1cGRh dGVfc3RhZ2UpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRl X2Zyb21fdG9vbCAoQ2x1dHRlci5JbnB1dERldmljZVRvb2wgdG9vbCk7CisgCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDbHV0dGVy LkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVy LkRldmljZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQor IAkJcHVibGljIENsdXR0ZXIuSW5wdXRNb2RlIGRldmljZV9tb2RlIHsgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKyAJCXB1YmxpYyBzdHJpbmcgZGV2aWNlX25vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTY0MDYsNiArNTk2Miw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3RydWN0 OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0cmluZyBwcm9k dWN0X2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7 IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVi bGljIHN0cmluZyB2ZW5kb3JfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CitAQCAtNjQzMCw3 ICs1OTg3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgY29tbWl0X3RleHQgKHN0cmluZyB0ZXh0KTsKKyAJCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAodWludCBvZmZzZXQs IHVpbnQgbGVuKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nIChp bnQgb2Zmc2V0LCB1aW50IGxlbik7CisgCQlwdWJsaWMgYm9vbCBmaWx0ZXJfa2V5X2V2ZW50IChD bHV0dGVyLktleUV2ZW50IGtleSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg dm9pZCBmb2N1c19pbiAoQ2x1dHRlci5JbnB1dE1ldGhvZCBpbnB1dF9tZXRob2QpOworQEAgLTY0 NDMsNyArNjAwMCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9j YW5fc2hvd19wcmVlZGl0IChib29sIGNhbl9zaG93X3ByZWVkaXQpOworIAkJcHVibGljIHZvaWQg c2V0X2NvbnRlbnRfaGludHMgKENsdXR0ZXIuSW5wdXRDb250ZW50SGludEZsYWdzIGhpbnQpOwor IAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfcHVycG9zZSAoQ2x1dHRlci5JbnB1dENvbnRlbnRQ dXJwb3NlIHB1cnBvc2UpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1 dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3Jh cGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAo Q2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nIHByZWVkaXQsIHVpbnQgY3Vy c29yKTsKK0BAIC02NDYyLDcgKzYwMTksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9X cmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCByZXNldCAoKTsKKyAJCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVj dCByZWN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3Jh cGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAo Q2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJcHVibGljIHZvaWQgc2V0X3ByZWVk aXRfdGV4dCAoc3RyaW5nPyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CisgCQlbTm9XcmFwcGVyXQor QEAgLTY0NzksOSArNjAzNiw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0 dGVyLklucHV0Q29udGVudFB1cnBvc2UgY29udGVudF9wdXJwb3NlIHsgZ2V0OyBzZXQ7IH0KKyAJ CVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGNvbW1pdCAoc3RyaW5nIHRleHQp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVy LlJlY3Qgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25fY2hh bmdlZCAoR3JhcGhlbmUuUmVjdCBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCistCQlwdWJsaWMg c2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50IG9mZnNldCwgdWludCBsZW4pOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAoaW50IG9mZnNldCwgdWlu dCBsZW4pOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGlucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVy LklucHV0UGFuZWxTdGF0ZSBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgcmVxdWVzdF9zdXJyb3VuZGluZyAoKTsKK0BAIC02NTU1LDI4ICs2MTEyLDI4IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBLZXltYXAgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBib29s IGdldF9jYXBzX2xvY2tfc3RhdGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBQYW5nby5EaXJlY3Rp b24gZ2V0X2RpcmVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X251bV9sb2Nr X3N0YXRlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXRlX2NoYW5nZWQgKCk7CisgCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2xheWVyX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIExh eWVyTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMg TGF5ZXJOb2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uLCBDYWlyby5SZWN0YW5nbGUgdmlld3Bv cnQsIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIHVpbnQ4IG9wYWNpdHkpOworKwl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9sYXlvdXRfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBMYXlvdXRNYW5hZ2VyIDogR0xpYi5J bml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXByb3RlY3RlZCBMYXlvdXRNYW5hZ2VyICgpOworLQkJcHVibGljIHZpcnR1YWwg dm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9y Qm94IGFsbG9jYXRpb24sIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQWxwaGEgYmVnaW5f YW5pbWF0aW9uICh1aW50IGR1cmF0aW9uLCB1bG9uZyBtb2RlKTsKKysJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3Rv ckJveCBhbGxvY2F0aW9uKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5Db250 YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZv aWQgY2hpbGRfZ2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0 ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsK KyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBD bHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0X3Byb3Bl cnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0 cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtOb1dyYXBwZXJdCisg CQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBjcmVhdGVfY2hpbGRf bWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuZF9hbmltYXRpb24g KCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5 IChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZpcnR1YWwgZG91 YmxlIGdldF9hbmltYXRpb25fcHJvZ3Jlc3MgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkxheW91dE1ldGEgZ2V0X2NoaWxkX21ldGEg KENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlb Tm9XcmFwcGVyXQorQEAgLTY2MzIsMTIgKzYxODksMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHJvdGVjdGVkIE9mZnNjcmVlbkVmZmVjdCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIENvZ2wu SGFuZGxlIGNyZWF0ZV90ZXh0dXJlIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3Qg KG91dCB1bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyBib29sIGdldF90YXJn ZXRfcmVjdCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS44 IildCisgCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3NpemUgKG91dCBmbG9hdCB3aWR0aCwgb3V0 IGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHBhaW50X3RhcmdldCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFyZ2V0 IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf cGFnZV90dXJuX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCitAQCAtNjY1NCw2ICs2MjExLDE3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBkb3VibGUgcGVyaW9kIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBmbG9hdCByYWRpdXMgeyBn ZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfcmVmIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlv biA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1Ymxp YyBjbGFzcyBQYWludENvbnRleHQgeworKwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJCXB1 YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVi bGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uIGdldF9yZWRyYXdfY2xpcCAoKTsKKysJCXB1YmxpYyB2 b2lkIHBvcF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hfZnJhbWVidWZmZXIg KENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5QYWludENvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9wYWludF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQYWludE5vZGUgeworQEAgLTY2NjMs NyArNjIzMSw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkZF9tdWx0 aXRleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHRleHRfY29v cmRzLCB1aW50IHRleHRfY29vcmRzX2xlbik7CisgCQlwdWJsaWMgdm9pZCBhZGRfcmVjdGFuZ2xl IChDbHV0dGVyLkFjdG9yQm94IHJlY3QpOworIAkJcHVibGljIHZvaWQgYWRkX3RleHR1cmVfcmVj dGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9h dCB4XzIsIGZsb2F0IHlfMik7CistCQlwdWJsaWMgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB1 bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZv aWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5QYWludE5vZGUgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9u YW1lIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKK0BAIC02NjgxLDcg KzYyNTAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBnZXRfb3JpZ2luICgpOworKwkJcHVi bGljIHZvaWQgZ2V0X29yaWdpbiAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF93aWR0 aCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02NjkxLDcgKzYyNjAsNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlw dWJsaWMgdm9pZCBzZXRfaGVpZ2h0IChmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoQ2x1dHRlci5WZXJ0ZXggb3Jp Z2luKTsKKysJCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKEdyYXBoZW5lLlBvaW50M0Qgb3JpZ2lu KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF93aWR0 aCAoZmxvYXQgd2lkdGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY3Nzgs ODggKzYzNDcsMjkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuUGF0 aCBwYXRoIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBub2RlX3JlYWNoZWQg KENsdXR0ZXIuQWN0b3IgYWN0b3IsIHVpbnQgaW5kZXgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVy X3BpY2tfY29udGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19jb250ZXh0X2dldF90 eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfdW5yZWYiKV0K KysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQaWNrQ29udGV4dCB7CisrCQlwdWJsaWMgdm9p ZCBkZXN0cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QaWNrQ29udGV4dCBAcmVm ICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpcGVsaW5l X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVi bGljIGNsYXNzIFBpcGVsaW5lTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKyAJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBQaXBlbGluZU5v ZGUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludF9nZXRfdHlwZSAoKSIpXQorLQlb Q29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFBv aW50IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMg c3RhdGljIENsdXR0ZXIuUG9pbnQgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBj b3B5ICgpOworLQkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChDbHV0dGVyLlBvaW50IGIsIG91dCBm bG9hdCB4X2Rpc3RhbmNlLCBvdXQgZmxvYXQgeV9kaXN0YW5jZSk7CistCQlwdWJsaWMgYm9vbCBl cXVhbHMgKENsdXR0ZXIuUG9pbnQgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5Qb2ludCBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKy0JCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IHplcm8gKCk7CistCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3Byb3BlcnR5X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFByb3BlcnR5VHJhbnNpdGlvbiA6IENsdXR0ZXIu VHJhbnNpdGlvbiwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJUcmFuc2l0aW9uKiIpXQorIAkJcHVi bGljIFByb3BlcnR5VHJhbnNpdGlvbiAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKysJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJUcmFuc2l0 aW9uKiIpXQorKwkJcHVibGljIFByb3BlcnR5VHJhbnNpdGlvbi5mb3JfYWN0b3IgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X3Byb3BlcnR5X25hbWUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcHJvcGVydHlf bmFtZSAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyBzdHJpbmcgcHJvcGVydHlf bmFtZSB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1 bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0X2dldF90eXBl ICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJs aWMgY2xhc3MgUmVjdCB7CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlBvaW50IG9yaWdpbjsKKy0J CXB1YmxpYyB3ZWFrIENsdXR0ZXIuU2l6ZSBzaXplOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVy LlJlY3QgYWxsb2MgKCk7CistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKy0JCXB1 YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1Ymxp YyBib29sIGNvbnRhaW5zX3JlY3QgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyBDbHV0dGVy LlJlY3QgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5SZWN0IGIpOwor LQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9jZW50ZXIgKENsdXR0 ZXIuUG9pbnQgY2VudGVyKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworLQkJcHVi bGljIGZsb2F0IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKy0JCXB1 YmxpYyBmbG9hdCBnZXRfeSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCBpbml0 IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JCXB1Ymxp YyB2b2lkIGluc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgYm9vbCBpbnRl cnNlY3Rpb24gKENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3Q/IHJlcyk7CistCQlwdWJsaWMg Q2x1dHRlci5SZWN0IG5vcm1hbGl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG9mZnNldCAoZmxvYXQg ZF94LCBmbG9hdCBkX3kpOworLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNfeCwgZmxvYXQg c195KTsKKy0JCXB1YmxpYyB2b2lkIHVuaW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0 IHJlcyk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5SZWN0IHplcm8gKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBSZWN0YW5nbGUgOiBDbHV0dGVyLkFjdG9yLCBB dGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENs dXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIFJlY3RhbmdsZSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfYm9yZGVy X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB1aW50IGdldF9ib3JkZXJf d2lkdGggKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9ib3JkZXJfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3JkZXJfd2lkdGggKHVpbnQg d2lkdGgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xv cik7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIFJlY3RhbmdsZS53aXRoX2NvbG9yIChDbHV0 dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJvcmRlcl9jb2xvciB7 IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWludCBib3JkZXJfd2lkdGggeyBnZXQ7IHNldDsgfQor LQkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBoYXNfYm9yZGVyIHsgZ2V0OyBzZXQ7IH0KKysJCXB1 YmxpYyB2b2lkIHNldF9wcm9wZXJ0eV9uYW1lIChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworKwkJ cHVibGljIHN0cmluZyBwcm9wZXJ0eV9uYW1lIHsgZ2V0OyBzZXQ7IH0KKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfcm9vdF9ub2RlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBSb290Tm9kZSA6IENs dXR0ZXIuUGFpbnROb2RlIHsKK0BAIC02ODgwLDE1ICs2MzkwLDExIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBTY3JpcHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CisgCQlwdWJsaWMgdm9pZCBhZGRfc2VhcmNoX3BhdGhzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9j bmFtZSA9ICJuX3BhdGhzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuMSwgYXJyYXlfbGVuZ3RoX3R5 cGUgPSAiZ3NpemUiKV0gc3RyaW5nW10gcGF0aHMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIGFkZF9zdGF0ZXMgKHN0cmluZz8gbmFtZSwgQ2x1dHRlci5TdGF0ZSBzdGF0ZSk7 CisgCQlwdWJsaWMgdm9pZCBjb25uZWN0X3NpZ25hbHMgKHZvaWQqIHVzZXJfZGF0YSk7CisgCQlw dWJsaWMgdm9pZCBjb25uZWN0X3NpZ25hbHNfZnVsbCAoQ2x1dHRlci5TY3JpcHRDb25uZWN0RnVu YyBmdW5jKTsKKyAJCXB1YmxpYyB2b2lkIGVuc3VyZV9vYmplY3RzICgpOworIAkJcHVibGljIHVu b3duZWQgR0xpYi5PYmplY3QgZ2V0X29iamVjdCAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIGlu dCBnZXRfb2JqZWN0cyAoLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLlN0YXRlIGdldF9zdGF0ZXMgKHN0cmluZz8gbmFtZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90cmFuc2xhdGlv bl9kb21haW4gKCk7CisgCQlwdWJsaWMgdmlydHVhbCBHTGliLlR5cGUgZ2V0X3R5cGVfZnJvbV9u YW1lIChzdHJpbmcgdHlwZV9uYW1lKTsKK0BAIC02OTE2LDggKzY0MjIsOCBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlwdWJsaWMgU2Nyb2xsQWN0b3IgKCk7CisgCQlwdWJs aWMgQ2x1dHRlci5TY3JvbGxNb2RlIGdldF9zY3JvbGxfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lk IHNjcm9sbF90b19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgdm9pZCBz Y3JvbGxfdG9fcmVjdCAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2Nyb2xs X3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxf dG9fcmVjdCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zY3JvbGxf bW9kZSAoQ2x1dHRlci5TY3JvbGxNb2RlIG1vZGUpOworIAkJcHVibGljIENsdXR0ZXIuU2Nyb2xs TW9kZSBzY3JvbGxfbW9kZSB7IGdldDsgc2V0OyB9CisgCX0KK0BAIC02OTM5LDYgKzY0NDUsNDcg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxv YXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2VhdF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgYWJz dHJhY3QgY2xhc3MgU2VhdCA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTZWF0ICgpOworKwkJW05vV3JhcHBl cl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0 ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYmVs bF9ub3RpZnkgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbXByZXNzX21vdGlvbiAoQ2x1 dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5FdmVudCB0b19kaXNjYXJkKTsKKysJCVtOb1dyYXBw ZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvcHlfZXZlbnRfZGF0YSAoQ2x1dHRlci5FdmVu dCBzcmMsIENsdXR0ZXIuRXZlbnQgZGVzdCk7CisrCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZp cnR1YWxJbnB1dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZp Y2VUeXBlIGRldmljZV90eXBlKTsKKysJCXB1YmxpYyB2b2lkIGVuc3VyZV9hMTF5X3N0YXRlICgp OworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZnJlZV9ldmVudF9kYXRh IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9rYmRfYTExeV9zZXR0 aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1 YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9rZXlib2FyZCAoKTsKKysJCXB1Ymxp YyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1hcCAoKTsKKysJCXB1Ymxp YyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfcG9pbnRlciAoKTsKKysJ CXB1YmxpYyB2b2lkIGdldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckEx MXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgYm9vbCBnZXRfdG91Y2hfbW9kZSAoKTsK KysJCXB1YmxpYyB2b2lkIGluaGliaXRfdW5mb2N1cyAoKTsKKysJCXB1YmxpYyBib29sIGlzX3Vu Zm9jdXNfaW5oaWJpdGVkICgpOworKwkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuSW5w dXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKysJCXB1YmxpYyB2b2lkIHNldF9rYmRfYTExeV9z ZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZv aWQgc2V0X3BvaW50ZXJfYTExeV9kd2VsbF9jbGlja190eXBlIChDbHV0dGVyLlBvaW50ZXJBMTF5 RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9h MTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJ cHVibGljIHZvaWQgdW5pbmhpYml0X3VuZm9jdXMgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lk IHdhcnBfcG9pbnRlciAoaW50IHgsIGludCB5KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJ cHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0K KysJCXB1YmxpYyBib29sIHRvdWNoX21vZGUgeyBnZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9p ZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIGlzX3VuZm9jdXNfaW5oaWJpdGVkX2NoYW5nZWQgKCk7Cisr CQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3NfY2hhbmdlZCAodWludCBzZXR0aW5n c19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9h MTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVkX21hc2ssIHVpbnQgbG9ja2VkX21h c2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGVfY2hh bmdlZCAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworKwkJ cHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RhcnRlZCAoQ2x1dHRlci5JbnB1 dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5 cGUsIHVpbnQgZGVsYXkpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRf c3RvcHBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlU aW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIGJvb2wgY2xpY2tlZCk7CisrCQlwdWJsaWMgc2lnbmFs IHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5J bnB1dERldmljZVRvb2wgcDApOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZXR0aW5nc19nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBTZXR0aW5n cyA6IEdMaWIuT2JqZWN0IHsKK0BAIC03MDExLDE4ICs2NTU4LDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJv dGVjdGVkIFNoYWRlck1hdHJpeCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZy ZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NpemVfZ2V0 X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCist CXB1YmxpYyBjbGFzcyBTaXplIHsKKy0JCXB1YmxpYyBmbG9hdCBoZWlnaHQ7CistCQlwdWJsaWMg ZmxvYXQgd2lkdGg7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuU2l6ZSBhbGxvYyAoKTsKKy0J CXB1YmxpYyBDbHV0dGVyLlNpemUgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1 dHRlci5TaXplIGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuU2l6ZSBpbml0IChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfc25hcF9jb25zdHJhaW50X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKyAJcHVibGljIGNsYXNzIFNuYXBDb25zdHJhaW50IDogQ2x1dHRlci5Db25z dHJhaW50IHsKK0BAIC03MDQzLDEzNSArNjU3OCw2NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3N0YWdlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5Hcm91cCwgQXRrLkltcGxl bWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNj cmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1w bGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIu U2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwg dHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisg CQlwdWJsaWMgU3RhZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBjYXB0dXJlIChib29sIHBhaW50LCBD YWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgQ2x1dHRlci5DYXB0dXJlIGNhcHR1cmVzLCBpbnQgbl9j YXB0dXJlcyk7CisgCQlwdWJsaWMgdm9pZCBjYXB0dXJlX2ludG8gKGJvb2wgcGFpbnQsIENhaXJv LlJlY3RhbmdsZUludCByZWN0LCB1aW50OCBkYXRhKTsKKysJCXB1YmxpYyB2b2lkIGNsZWFyX3N0 YWdlX3ZpZXdzICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3N0YWdlX2V2ZW50Iild CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50 IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg c2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBlbnN1cmVfY3VycmVudCAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGVuc3VyZV9yZWRyYXcgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBlbnN1cmVfdmll d3BvcnQgKCk7CistCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBkYXRlcyAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBib29sIGdldF9hY2NlcHRfZm9jdXMgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIu UGlja01vZGUgcGlja19tb2RlLCBpbnQgeCwgaW50IHkpOworKwkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BY3RvciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwg ZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY2FwdHVyZV9maW5hbF9zaXpl IChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBmbG9hdCBz Y2FsZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBnZXRfZm9nICgpOworIAkJcHVi bGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2Z1bGxzY3JlZW4gKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlfZm9j dXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBnZXRf bWluaW11bV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9tb3Rpb25fZXZlbnRzX2Vu YWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBn ZXRfbm9fY2xlYXJfaGludCAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIGdldF9w ZXJzcGVjdGl2ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBD YWlyby5SZWN0YW5nbGVJbnQgZ2V0X3JlZHJhd19jbGlwX2JvdW5kcyAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGdldF90aHJvdHRsZV9tb3Rpb25fZXZl bnRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF90aXRsZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1 YmxpYyBib29sIGdldF91c2VfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IGJvb2wgZ2V0X3VzZV9mb2cgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlw dWJsaWMgYm9vbCBnZXRfdXNlcl9yZXNpemFibGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCistCQlwdWJsaWMgdm9pZCBoaWRlX2N1cnNvciAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgYm9vbCBpc19kZWZhdWx0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIHF1ZXVlX3JlZHJhdyAoKTsKKysJCXB1YmxpYyBib29sIHBhaW50X3RvX2J1ZmZl ciAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIGZsb2F0IHNjYWxlLCB1aW50OCBkYXRhLCBpbnQg c3RyaWRlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ2x1dHRlci5QYWludEZsYWcgcGFpbnRf ZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHZvaWQgcGFpbnRfdG9fZnJhbWVi dWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIsIENhaXJvLlJlY3RhbmdsZUludCBy ZWN0LCBmbG9hdCBzY2FsZSwgQ2x1dHRlci5QYWludEZsYWcgcGFpbnRfZmxhZ3MpOworIAkJW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCisgCQlwdWJsaWMgdWludDhbXSByZWFkX3BpeGVs cyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGggPSAtMSwgaW50IGhlaWdodCA9IC0xKTsKKy0JCVtD Q29kZSAoY25hbWUgPSAiY2x1dHRlcl9yZWRyYXciKV0KKy0JCXB1YmxpYyB2b2lkIHJlZHJhdyAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hY2Nl cHRfZm9jdXMgKGJvb2wgYWNjZXB0X2ZvY3VzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29s b3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9mb2cgKENsdXR0ZXIuRm9nIGZvZyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBmdWxsc2NyZWVuKTsKKysJ CXB1YmxpYyB2b2lkIHNjaGVkdWxlX3VwZGF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9rZXlfZm9jdXMgKENsdXR0ZXIuQWN0b3I/IGFjdG9y KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9taW5p bXVtX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQgKGJvb2wg ZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfbm9fY2xlYXJfaGludCAoYm9vbCBub19jbGVhcik7CistCQlwdWJsaWMgdm9pZCBzZXRfcGVy c3BlY3RpdmUgKENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Rocm90dGxlX21vdGlvbl9ldmVu dHMgKGJvb2wgdGhyb3R0bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZV9hbHBoYSAoYm9vbCB1c2VfYWxwaGEpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfZm9nIChib29sIGZvZyk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9y ZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfY3Vyc29yICgp OworLQkJcHVibGljIHZvaWQgdGhhd191cGRhdGVzICgpOworLQkJcHVibGljIHZvaWQgdXBkYXRl X3Jlc291cmNlX3NjYWxlcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1 YmxpYyBib29sIGFjY2VwdF9mb2N1cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0 ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgYm9vbCBjdXJzb3JfdmlzaWJsZSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGZvZyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW5fc2V0IHsgZ2V0OyB9CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBrZXlfZm9jdXMg eyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJv b2wgbm9fY2xlYXJfaGludCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgYm9vbCBvZmZzY3JlZW4geyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUg eyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUg eyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcg dGl0bGUgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIGJvb2wgdXNlX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgYm9vbCB1c2VfZm9nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZXJfcmVzaXphYmxlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFj dGl2YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBhZnRlcl9wYWludCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBhZnRlcl9wYWlu dCAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWZ0ZXJf dXBkYXRlIChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBi ZWZvcmVfcGFpbnQgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIGJlZm9yZV91cGRhdGUgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZGVhY3RpdmF0 ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCBib29sIGRlbGV0ZV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBmdWxsc2Ny ZWVuICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgdW5mdWxsc2NyZWVuICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgcGFpbnRfdmlldyAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldywgQ2Fpcm8uUmVnaW9uIHJlZHJh d19jbGlwKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzE4NSw4ICs2NjUxLDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIEdM aWIuU0xpc3Q8d2VhayBDbHV0dGVyLlN0YWdlPiBsaXN0X3N0YWdlcyAoKTsKKyAJCXB1YmxpYyB1 bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5TdGFnZT4gcGVla19zdGFnZXMgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2Ug PSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVmYXVsdF9zdGFnZSAoQ2x1dHRlci5TdGFn ZSBzdGFnZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRl ci5TdGFnZSBkZWZhdWx0X3N0YWdlIHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44 IildCitAQCAtNzIwNiw2MyArNjY3MCwzMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgdWludDMyIHRpbWU7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudFR5cGUgdHlwZTsKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfc3RhdGVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorLQlwdWJsaWMgY2xhc3MgU3RhdGUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRh YmxlIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX3ZpZXdfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNs YXNzIFN0YWdlVmlldyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgU3RhdGUgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2R1cmF0aW9uIChzdHJpbmc/ IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5TdGF0ZUtleT4gZ2V0 X2tleXMgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25h bWUsIEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGF0ZSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgc3RyaW5nPiBnZXRfc3RhdGVz ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxp bmUgZ2V0X3RpbWVsaW5lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJl bW92ZV9rZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRl X25hbWUsIEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uIChzdHJpbmc/IHNvdXJj ZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCB1aW50IGR1cmF0aW9uKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YXRlIHNldF9r ZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZyB0YXJnZXRfc3RhdGVfbmFtZSwg R0xpYi5PYmplY3Qgb2JqZWN0LCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgdWludCBtb2RlLCBHTGli LlZhbHVlIHZhbHVlLCBkb3VibGUgcHJlX2RlbGF5LCBkb3VibGUgcG9zdF9kZWxheSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBzZXRfc3Rh dGUgKHN0cmluZyB0YXJnZXRfc3RhdGVfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSB3YXJwX3RvX3N0YXRlIChzdHJpbmcgdGFyZ2V0 X3N0YXRlX25hbWUpOworKwkJcHJvdGVjdGVkIFN0YWdlVmlldyAoKTsKKysJCXB1YmxpYyB2b2lk IGFzc2lnbl9uZXh0X3NjYW5vdXQgKENvZ2wuU2Nhbm91dCBzY2Fub3V0KTsKKysJCXB1YmxpYyB1 bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZv aWQgZ2V0X2xheW91dCAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QpOworKwkJcHVibGljIHZpcnR1 YWwgdm9pZCBnZXRfb2Zmc2NyZWVuX3RyYW5zZm9ybWF0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXgg bWF0cml4KTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X29uc2NyZWVu ICgpOworKwkJcHVibGljIGZsb2F0IGdldF9zY2FsZSAoKTsKKysJCXB1YmxpYyB2b2lkIGludmFs aWRhdGVfb2Zmc2NyZWVuX2JsaXRfcGlwZWxpbmUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVi bGljIHZpcnR1YWwgdm9pZCBzZXR1cF9vZmZzY3JlZW5fYmxpdF9waXBlbGluZSAoQ29nbC5QaXBl bGluZSBwaXBlbGluZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCB0 cmFuc2Zvcm1fcmVjdF90b19vbnNjcmVlbiAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHNyY19yZWN0LCBp bnQgZHN0X3dpZHRoLCBpbnQgZHN0X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGRzdF9yZWN0 KTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1 aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQg bGF5b3V0IHsgb3duZWQgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgc3RyaW5nIHN0YXRlIHsgb3duZWQgZ2V0 OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCBjb21wbGV0ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0 aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGF0ZV9rZXlfZ2V0X3R5 cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVi bGljIGNsYXNzIFN0YXRlS2V5IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcg Z2V0X21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgR0xpYi5P YmplY3QgZ2V0X29iamVjdCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZG91Ymxl IGdldF9wb3N0X2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBkb3VibGUg Z2V0X3ByZV9kZWxheSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X3Byb3BlcnR5X25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IEdMaWIuVHlwZSBnZXRfcHJvcGVydHlfdHlwZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3NvdXJjZV9zdGF0ZV9uYW1lICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGFyZ2V0X3N0YXRlX25hbWUg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3ZhbHVlIChHTGliLlZh bHVlIHZhbHVlKTsKKysJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3RydWN0 OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBmbG9hdCByZWZyZXNoX3JhdGUg eyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGlj IGZsb2F0IHNjYWxlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKysJCXB1YmxpYyBDbHV0dGVyLlN0YWdlIHN0YWdlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGJvb2wgdXNlX3NoYWRvd2ZiIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3dpcGVfYWN0aW9uX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC03Mjc0LDUzICs2NzA4LDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJ CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHN3aXBlIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBD bHV0dGVyLlN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhYmxl X2xheW91dF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3Mg VGFibGVMYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIild CistCQlwdWJsaWMgVGFibGVMYXlvdXQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuVGFi bGVBbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9hbGlnbik7 CistCQlwdWJsaWMgaW50IGdldF9jb2x1bW5fY291bnQgKCk7CistCQlwdWJsaWMgdWludCBnZXRf Y29sdW1uX3NwYWNpbmcgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZ2V0 X2Vhc2luZ19kdXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcg Z2V0X2Vhc2luZ19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZXhwYW5kLCBvdXQgYm9v bCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2ZpbGwg KENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZmlsbCwgb3V0IGJvb2wgeV9maWxsKTsK Ky0JCXB1YmxpYyBpbnQgZ2V0X3Jvd19jb3VudCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9yb3df c3BhY2luZyAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFjdG9y LCBvdXQgaW50IGNvbHVtbl9zcGFuLCBvdXQgaW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlvbnMgKCk7CistCQlwdWJsaWMgdm9p ZCBwYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29sdW1uLCBpbnQgcm93KTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9y IGFjdG9yLCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuVGFibGVBbGln bm1lbnQgeV9hbGlnbik7CistCQlwdWJsaWMgdm9pZCBzZXRfY29sdW1uX3NwYWNpbmcgKHVpbnQg c3BhY2luZyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19k dXJhdGlvbiAodWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2Vhc2luZ19tb2RlICh1bG9uZyBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBzZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZXhwYW5kLCBi b29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZmls bCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9yb3dfc3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29sdW1uX3NwYW4sIGludCByb3df c3Bhbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9hbmltYXRp b25zIChib29sIGFuaW1hdGUpOworLQkJcHVibGljIHVpbnQgY29sdW1uX3NwYWNpbmcgeyBnZXQ7 IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGVhc2luZ19kdXJhdGlv biB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25nIGVhc2lu Z19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IHJvd19zcGFjaW5nIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0aW9ucyB7 IGdldDsgc2V0OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhcF9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGNsYXNzIFRhcEFjdGlvbiA6 IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CitAQCAtNzM0OCw3ICs2NzM1LDcgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2N1cnNvcl9jb2xvciAoKTsK KyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnNvcl9wb3NpdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBnZXRfY3Vyc29yX3JlY3QgKG91dCB1bm93bmVk IENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0 IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB1aW50IGdldF9jdXJzb3Jf c2l6ZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9jdXJzb3JfdmlzaWJsZSAoKTsKKyAJCXB1Ymxp YyBib29sIGdldF9lZGl0YWJsZSAoKTsKK0BAIC03NDY3LDcgKzY4NTQsNyBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50IChDbHV0dGVyLkdlb21ldHJ5 IGdlb21ldHJ5KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9ldmVudCAo R3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV90ZXh0IChpbnQgc3RhcnRf cG9zLCBpbnQgZW5kX3Bvcyk7CitAQCAtNzUwNSw5NCArNjg5Miw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0g IkNsdXR0ZXJQYWludE5vZGUqIildCisgCQlwdWJsaWMgVGV4dE5vZGUgKFBhbmdvLkxheW91dD8g bGF5b3V0LCBDbHV0dGVyLkNvbG9yPyBjb2xvcik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVf Z2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xh c3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5Bbmlt YXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rvcioi KV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIildCistCQlwdWJsaWMgVGV4dHVyZSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOwor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRl ckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmls ZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgQ2x1dHRlci5UZXh0dXJlRXJyb3I7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2Jhc2Vfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9j b2dsX21hdGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENv Z2wuSGFuZGxlIGdldF9jb2dsX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVi bGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZ2V0X2ZpbHRlcl9xdWFsaXR5ICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9rZWVwX2FzcGVjdF9yYXRpbyAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9hc3luYyAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9kYXRhX2FzeW5jICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X21heF90aWxlX3dhc3RlICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9waWNrX3dpdGhfYWxwaGEgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3JlcGVhdCAob3V0IGJvb2wgcmVw ZWF0X3gsIG91dCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg Ym9vbCBnZXRfc3luY19zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29s IHNldF9hcmVhX2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1 aW50OFtdIGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50 IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxh Z3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9jb2dsX21hdGVyaWFsIChDb2dsLkhhbmRsZSBjb2dsX21hdGVyaWFsKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF90ZXh0dXJlIChDb2dsLkhhbmRsZSBj b2dsX3RleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbHRlcl9x dWFsaXR5IChDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC44IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUp IHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNl dF9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBk YXRhLCBib29sIGhhc19hbHBoYSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRl LCBpbnQgYnBwLCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21feXV2X2RhdGEgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCB3aWR0aCwgaW50 IGhlaWdodCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9rZWVwX2FzcGVjdF9yYXRpbyAo Ym9vbCBrZWVwX2FzcGVjdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2xvYWRfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2xvYWRfZGF0YV9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcGlja193aXRoX2FscGhhIChib29sIHBpY2tf d2l0aF9hbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlcGVh dCAoYm9vbCByZXBlYXRfeCwgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3N5bmNfc2l6ZSAoYm9vbCBzeW5jX3NpemUpOworLQkJcHVibGljIENv Z2wuTWF0ZXJpYWwgY29nbF9tYXRlcmlhbCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ29nbC5U ZXh0dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIGRpc2FibGVfc2xpY2luZyB7IGdldDsgY29uc3RydWN0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3RyaW5nIGZpbGVuYW1lIHsgb3duZWQg Z2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFs aXR5IHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CistCQlwdWJsaWMgYm9vbCBrZWVwX2FzcGVjdF9y YXRpbyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9h ZF9hc3luYyB7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRf ZGF0YV9hc3luYyB7IHNldDsgfQorLQkJcHVibGljIGJvb2wgcGlja193aXRoX2FscGhhIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3gg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBl YXRfeSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBzeW5jX3NpemUgeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHRpbGVfd2FzdGUgeyBnZXQ7 IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBsb2Fk X2ZpbmlzaGVkIChHTGliLkVycm9yIGVycm9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBwaXhidWZfY2hhbmdlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIHNpemVfY2hhbmdlIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl90ZXh0dXJlX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJcHVibGljIGNsYXNzIFRleHR1cmVOb2RlIDogQ2x1dHRlci5QaXBlbGluZU5vZGUgewor QEAgLTc2MDQsNyArNjkwMyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGNsYXNz IFRpbWVsaW5lIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgVGltZWxpbmUgKHVpbnQgbXNlY3MpOworKwkJcHVibGljIFRpbWVs aW5lICh1aW50IGR1cmF0aW9uX21zKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisg CQlwdWJsaWMgdm9pZCBhZGRfbWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUsIGRvdWJsZSBwcm9n cmVzcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzYxMiwxMiArNjkxMSwx NSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBhZHZhbmNlICh1aW50IG1z ZWNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGFkdmFu Y2VfdG9fbWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIGNsb25lICgpOworKwkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHVibGljIFRpbWVsaW5lLmZvcl9hY3RvciAoQ2x1 dHRlci5BY3RvciBhY3RvciwgdWludCBkdXJhdGlvbl9tcyk7CisrCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgVGltZWxpbmUuZm9yX2ZyYW1lX2Ns b2NrIChDbHV0dGVyLkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2ssIHVpbnQgZHVyYXRpb25fbXMpOwor KwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXZlcnNlICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jdWJpY19i ZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7Cisr CQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2ludCBj XzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIGludCBnZXRfY3VycmVudF9yZXBlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCitAQCAtNzYzMSw4ICs2OTMzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQ2NCBnZXRfZHVyYXRpb25f aGludCAoKTsKKyAJCXB1YmxpYyB1aW50IGdldF9lbGFwc2VkX3RpbWUgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIGJvb2wgZ2V0X2xvb3AgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlw dWJsaWMgZG91YmxlIGdldF9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCitAQCAtNzY1MSwxOCArNjk1MSwxOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfbWFya2VyIChzdHJp bmcgbWFya2VyX25hbWUpOworIAkJcHVibGljIHZvaWQgcmV3aW5kICgpOworKwkJcHVibGljIHZv aWQgc2V0X2FjdG9yIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXZlcnNlIChib29sIHJldmVyc2Up OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jdWJp Y19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7 CisrCQlwdWJsaWMgdm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2lu dCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40Iild CisgCQlwdWJsaWMgdm9pZCBzZXRfZGVsYXkgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RpcmVjdGlvbiAoQ2x1dHRlci5UaW1l bGluZURpcmVjdGlvbiBkaXJlY3Rpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor IAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dm9pZCBzZXRfbG9vcCAoYm9vbCBsb29wKTsKKysJCXB1YmxpYyB2b2lkIHNldF9mcmFtZV9jbG9j ayAoQ2x1dHRlci5GcmFtZUNsb2NrIGZyYW1lX2Nsb2NrKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcHJvZ3Jlc3NfZnVuYyAob3duZWQgQ2x1dHRl ci5UaW1lbGluZVByb2dyZXNzRnVuYz8gZnVuYyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorQEAgLTc2NzQsNiArNjk3NCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB2b2lkIHNraXAgKHVpbnQgbXNlY3MpOworIAkJcHVibGljIHZvaWQgc3RhcnQgKCk7CisgCQlw dWJsaWMgdm9pZCBzdG9wICgpOworKwkJcHVibGljIENsdXR0ZXIuQWN0b3IgYWN0b3IgeyBnZXQ7 IHNldCBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1Ymxp YyBib29sIGF1dG9fcmV2ZXJzZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCitAQCAtNzY4Miw4ICs2OTgzLDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIENsdXR0ZXIuVGltZWxpbmVEaXJlY3Rpb24gZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBsb29wIHsgZ2V0OyBzZXQ7IH0KKysJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9jbG9jayB7 IG93bmVkIGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFuaW1hdGlvbk1vZGUgcHJvZ3Jlc3NfbW9kZSB7IGdldDsg c2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc2OTcsMTIgKzY5OTgs NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor IAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc3RvcHBlZCAoYm9vbCBpc19maW5pc2hlZCk7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGltZW91dFBvb2wgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIFRpbWVvdXRQb29sIChp bnQgcHJpb3JpdHkpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03NzUzLDYgKzcwNDgsMTEgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfdHJhbnNmb3JtX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRy YW5zZm9ybU5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVi bGljIFRyYW5zZm9ybU5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24pOworKwl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl90cmFuc2l0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBUcmFuc2l0aW9uIDogQ2x1dHRlci5UaW1lbGlu ZSwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03NzkyLDcgKzcwOTIsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlwcm90ZWN0ZWQgVmlydHVhbElucHV0RGV2aWNlICgpOworIAkJcHVibGljIGludCBnZXRfZGV2 aWNlX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0 X21hbmFnZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9hYnNvbHV0ZV9tb3Rp b24gKHVpbnQ2NCB0aW1lX3VzLCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1 YWwgdm9pZCBub3RpZnlfYnV0dG9uICh1aW50NjQgdGltZV91cywgdWludDMyIGJ1dHRvbiwgQ2x1 dHRlci5CdXR0b25TdGF0ZSBidXR0b25fc3RhdGUpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBu b3RpZnlfZGlzY3JldGVfc2Nyb2xsICh1aW50NjQgdGltZV91cywgQ2x1dHRlci5TY3JvbGxEaXJl Y3Rpb24gZGlyZWN0aW9uLCBDbHV0dGVyLlNjcm9sbFNvdXJjZSBzY3JvbGxfc291cmNlKTsKK0BA IC03ODAzLDI4ICs3MTAyLDI3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgbm90aWZ5X3RvdWNoX2Rvd24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91 YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX21v dGlvbiAodWludDY0IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJ cHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfdXAgKHVpbnQ2NCB0aW1lX3VzLCBpbnQg c2xvdCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1h bmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGlj IENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K KysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgb3du ZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfem9vbV9hY3Rpb25fZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJcHVibGljIGNsYXNzIFpv b21BY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1Ymxp YyBab29tQWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChDbHV0dGVy LlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2lu dCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQg KEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9m b2NhbF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJcHVibGljIENsdXR0ZXIuWm9v bUF4aXMgZ2V0X3pvb21fYXhpcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF96b29tX2F4aXMgKENs dXR0ZXIuWm9vbUF4aXMgYXhpcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhpcyB6b29tX2F4 aXMgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1 dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rv cik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVyLkFjdG9yIGFj dG9yLCBHcmFwaGVuZS5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9jbmFt ZSA9ICJDbHV0dGVyQW5pbWF0YWJsZUludGVyZmFjZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmlt YXRhYmxlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgQW5pbWF0YWJsZSA6IEdM aWIuT2JqZWN0IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGFu aW1hdGVfcHJvcGVydHkgKENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGlvbiwgc3RyaW5nIHByb3Bl cnR5X25hbWUsIEdMaWIuVmFsdWUgaW5pdGlhbF92YWx1ZSwgR0xpYi5WYWx1ZSBmaW5hbF92YWx1 ZSwgZG91YmxlIHByb2dyZXNzLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZp bmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKysJCXB1YmxpYyBhYnN0cmFjdCB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2luaXRpYWxfc3RhdGUgKHN0cmlu ZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KK0BAIC03ODM1LDEyICs3MTMzLDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfY29udGFpbmVyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KKyAJcHVibGljIGludGVyZmFjZSBDb250YWluZXIgOiBHTGliLk9iamVjdCB7CistCQlw dWJsaWMgdm9pZCBhZGQgKHBhcmFtcyBDbHV0dGVyLkFjdG9yW10gYWN0b3JzKTsKKyAJCVtDQ29k ZSAodmZ1bmNfbmFtZSA9ICJhZGQiKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYWJz dHJhY3Qgdm9pZCBhZGRfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZF92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0 b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJ cHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTc4NjAsMTggKzcxNTUsMTAgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95X2NoaWxkX21ldGEgKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBmaW5kX2NoaWxkX2J5X25hbWUgKHN0cmluZyBjaGls ZF9uYW1lKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfZmlu ZF9jaGlsZF9wcm9wZXJ0eSIpXQorLQkJcHVibGljIGNsYXNzIHVub3duZWQgR0xpYi5QYXJhbVNw ZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjQiKV0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIEBmb3JlYWNoIChDbHV0dGVyLkNhbGxi YWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCB2b2lk IGZvcmVhY2hfd2l0aF9pbnRlcm5hbHMgKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0 dGVyLkNoaWxkTWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNCIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuQWN0b3I+IGdl dF9jaGlsZHJlbiAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xh c3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIildCistCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGli LlBhcmFtU3BlY1tdIGxpc3RfY2hpbGRfcHJvcGVydGllcyAoKTsKKyAJCVtDQ29kZSAodmZ1bmNf bmFtZSA9ICJsb3dlciIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgbG93ZXJfY2hpbGQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNpYmxp bmcgPSBudWxsKTsKK0BAIC03ODgzLDggKzcxNzAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbQ0NvZGUgKHZmdW5jX25hbWUgPSAicmVtb3ZlIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorIAkJ cHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfdmFsaXN0IChDbHV0dGVy LkFjdG9yIGZpcnN0X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42Iild CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzb3J0X2RlcHRoX29yZGVyICgpOworIAkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0b3JfYWRkZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOwor QEAgLTc5MDEsNyArNzE4Niw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBhYnN0 cmFjdCB2b2lkIGludmFsaWRhdGUgKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlk YXRlX3NpemUgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFp bnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSk7 CisrCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFj dG9yLCBDbHV0dGVyLlBhaW50Tm9kZSBub2RlLCBDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9j b250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBhdHRhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc5MTUsNDcgKzcyMDAsMTYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2N1c3RvbV9wcm9wZXJ0eSAoQ2x1 dHRlci5TY3JpcHQgc2NyaXB0LCBzdHJpbmcgbmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlw dWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfaWQgKHN0cmluZyBpZF8pOworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgaW50ZXJm YWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBzdGFnZV9y ZWN0YW5nbGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9n ZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93cmFwcGVyICgp OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGhhc19yZWRyYXdfY2xp cHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAoKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBpZ25vcmluZ19yZWRyYXdf Y2xpcHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wgcmVhbGl6 ZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXNpemUgKGlu dCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0 IHZvaWQgc2V0X2N1cnNvcl92aXNpYmxlIChib29sIGN1cnNvcl92aXNpYmxlKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBpc19m dWxsc2NyZWVuKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRf dGl0bGUgKHN0cmluZyB0aXRsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0 IHZvaWQgc2V0X3VzZXJfcmVzaXphYmxlIChib29sIGlzX3Jlc2l6YWJsZSk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoYm9vbCBkb19yYWlzZSk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZy ZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2Jv eF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKyAJCXB1YmxpYyBm bG9hdCB4MTsKKyAJCXB1YmxpYyBmbG9hdCB5MTsKKyAJCXB1YmxpYyBmbG9hdCB4MjsKKyAJCXB1 YmxpYyBmbG9hdCB5MjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMg c3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFsbG9jICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CisrCQlwdWJsaWMgc3Rh dGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKHJlZiBDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjb250YWlucyAoZmxvYXQg eCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzk2NCw4ICs3 MjE4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0 ZXIuQWN0b3JCb3ggYm94X2IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hf ZnJvbV92ZXJ0aWNlcyIpXQorLQkJcHVibGljIEFjdG9yQm94LmZyb21fdmVydGljZXMgKENsdXR0 ZXIuVmVydGV4W10gdmVydHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIGZsb2F0IGdldF9hcmVhICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorQEAg LTc5ODYsNiArNzIzOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGlu aXRfcmVjdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBp bnRlcnBvbGF0ZSAoQ2x1dHRlci5BY3RvckJveCBmaW5hbCwgZG91YmxlIHByb2dyZXNzKTsKKysJ CXB1YmxpYyBib29sIGlzX2luaXRpYWxpemVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNjYWxlKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KK0BAIC04MDExLDcgKzcyNjQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgd2VhayBDYWlyby5TdXJmYWNlIGltYWdlOworIAkJcHVibGljIENhaXJvLlJl Y3RhbmdsZUludCByZWN0OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0NPTE9SIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24g PSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lk ID0gImNsdXR0ZXJfY29sb3JfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBDb2xvciB7 CisgCQlwdWJsaWMgdWludDggcmVkOworIAkJcHVibGljIHVpbnQ4IGdyZWVuOworQEAgLTgwMjcs MTIgKzcyODAsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwg KENsdXR0ZXIuQ29sb3IgdjIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVi bGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9t X2hscyIpXQorLQkJcHVibGljIENvbG9yLmZyb21faGxzIChmbG9hdCBodWUsIGZsb2F0IGx1bWlu YW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29s b3JfZnJvbV9waXhlbCIpXQorLQkJcHVibGljIENvbG9yLmZyb21fcGl4ZWwgKHVpbnQzMiBwaXhl bCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmciKV0KKy0J CXB1YmxpYyBDb2xvci5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CisrCQlwdWJsaWMgc3RhdGlj IHZvaWQgZnJvbV9obHMgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0 IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgZnJv bV9waXhlbCAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHVpbnQzMiBwaXhlbCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIGJvb2wgZnJvbV9zdHJpbmcg KG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBzdHJpbmcgc3RyKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkNvbG9yPyBnZXRf c3RhdGljIChDbHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyB1aW50IGhhc2ggKCk7CitAQCAtODA0MSw4ICs3MjkzLDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVi bGljIENsdXR0ZXIuQ29sb3IgaW50ZXJwb2xhdGUgKENsdXR0ZXIuQ29sb3IgZmluYWwsIGRvdWJs ZSBwcm9ncmVzcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBsaWdodGVuICgpOworLQkJW0ND b2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCistCQlwdWJsaWMgYm9v bCBwYXJzZV9zdHJpbmcgKHN0cmluZyBzdHIpOworIAkJcHVibGljIENsdXR0ZXIuQ29sb3Igc2hh ZGUgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIENsdXR0ZXIuQ29sb3Igc3VidHJhY3QgKENs dXR0ZXIuQ29sb3IgYik7CisgCQlwdWJsaWMgdm9pZCB0b19obHMgKG91dCBmbG9hdCBodWUsIG91 dCBmbG9hdCBsdW1pbmFuY2UsIG91dCBmbG9hdCBzYXR1cmF0aW9uKTsKK0BAIC04MDUwLDIzICs3 MzAwLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIi KV0KKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mb2df Z2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0cnVjdCBGb2cgewor LQkJcHVibGljIGZsb2F0IHpfbmVhcjsKKy0JCXB1YmxpYyBmbG9hdCB6X2ZhcjsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfZ2VvbWV0cnlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0cnVjdCBHZW9t ZXRyeSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgdWlu dCB3aWR0aDsKKy0JCXB1YmxpYyB1aW50IGhlaWdodDsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyBib29sIGludGVyc2VjdHMgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0 cnkxKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdl b21ldHJ5IHVuaW9uIChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5X2IpOworKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKysJcHVibGljIHN0cnVjdCBGcmFtZUxpc3RlbmVySWZhY2UgeworKwkJcHVibGljIHdlYWsg Z2xvYmFsOjpiZWZvcmVfZnJhbWUgYmVmb3JlX2ZyYW1lOworKwkJcHVibGljIHdlYWsgZ2xvYmFs OjpmcmFtZSBmcmFtZTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBLYmRB MTF5U2V0dGluZ3MgeworQEAgLTgwNzgsNyArNzMxNSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX21heF9zcGVlZDsKKyAJCXB1YmxpYyBpbnQgbW91c2Vr ZXlzX2FjY2VsX3RpbWU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9rbm90X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjIiKV0KKyAJcHVibGljIHN0cnVjdCBLbm90IHsKKyAJCXB1YmxpYyBpbnQgeDsKK0BAIC04 MDg3LDggKzczMjQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1 YWwgKENsdXR0ZXIuS25vdCBrbm90X2IpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJD T0dMX1RZUEVfTUFUUklYIildCisgCXB1YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5NYXRyaXgg eworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRl ci5NYXRyaXg/IGFsbG9jICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1 YmxpYyB2b2lkIGZyZWUgKCk7CisrCQlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBnZXRfdHlwZSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLk1hdHJpeD8gaW5pdF9mcm9tX2FycmF5IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl KV0gZmxvYXQgdmFsdWVzWzE2XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5NYXRyaXg/IGluaXRfZnJvbV9tYXRyaXggKENsdXR0ZXIu TWF0cml4IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuTWF0cml4PyBpbml0X2lkZW50aXR5ICgpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorIAlwdWJsaWMgc3RydWN0IFBhZEJ1dHRvbkV2ZW50IHsKK0BAIC04MTMwLDcgKzczNzgsNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHZhbHVlOworIAkJcHVibGlj IHVpbnQzMiBtb2RlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFBhdGhOb2RlIHsKKyAJCXB1YmxpYyBD bHV0dGVyLlBhdGhOb2RlVHlwZSB0eXBlOworQEAgLTgxNDAsNyArNzM4OCw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlBhdGhOb2RlIG5vZGVf Yik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wZXJzcGVjdGl2 ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIHN0cnVjdCBQZXJz cGVjdGl2ZSB7CisgCQlwdWJsaWMgZmxvYXQgZm92eTsKK0BAIC04MTQ5LDYgKzczOTcsMTkgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHpfZmFyOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IFBvaW50ZXJBMTF5U2V0dGluZ3MgeworKwkJcHVibGlj IENsdXR0ZXIuUG9pbnRlckExMXlGbGFncyBjb250cm9sczsKKysJCXB1YmxpYyBDbHV0dGVyLlBv aW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgZHdlbGxfY2xpY2tfdHlwZTsKKysJCXB1YmxpYyBDbHV0 dGVyLlBvaW50ZXJBMTF5RHdlbGxNb2RlIGR3ZWxsX21vZGU7CisrCQlwdWJsaWMgQ2x1dHRlci5Q b2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVfc2luZ2xlOworKwkJcHVibGlj IENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0dXJlX2RvdWJsZTsK KysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2VzdHVy ZV9kcmFnOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2Vs bF9nZXN0dXJlX3NlY29uZGFyeTsKKysJCXB1YmxpYyBpbnQgc2Vjb25kYXJ5X2NsaWNrX2RlbGF5 OworKwkJcHVibGljIGludCBkd2VsbF9kZWxheTsKKysJCXB1YmxpYyBpbnQgZHdlbGxfdGhyZXNo b2xkOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yOCIpXQor IAlwdWJsaWMgc3RydWN0IFByb3hpbWl0eUV2ZW50IHsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50 VHlwZSB0eXBlOworQEAgLTgxNTgsNDcgKzc0MTksMTYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciBzb3VyY2U7CisgCQlwdWJsaWMgd2VhayBDbHV0 dGVyLklucHV0RGV2aWNlIGRldmljZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9VTklUUyIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1 bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3VuaXRzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0cnVjdCBVbml0cyB7CisgCQlwdWJsaWMgQ2x1dHRlci5V bml0cz8gY29weSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9jbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fY20gKGZs b2F0IGNtKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtIildCist CQlwdWJsaWMgVW5pdHMuZnJvbV9lbSAoZmxvYXQgZW0pOworLQkJW0NDb2RlIChjbmFtZSA9ICJj bHV0dGVyX3VuaXRzX2Zyb21fZW1fZm9yX2ZvbnQiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX2Vt X2Zvcl9mb250IChzdHJpbmcgZm9udF9uYW1lLCBmbG9hdCBlbSk7CistCQlbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9tbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fbW0gKGZs b2F0IG1tKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3BpeGVscyIp XQorLQkJcHVibGljIFVuaXRzLmZyb21fcGl4ZWxzIChpbnQgcHgpOworLQkJW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fcHQiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3B0IChm bG9hdCBwdCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9zdHJpbmci KV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CisgCQlwdWJsaWMg Q2x1dHRlci5Vbml0VHlwZSBnZXRfdW5pdF90eXBlICgpOworIAkJcHVibGljIGZsb2F0IGdldF91 bml0X3ZhbHVlICgpOworIAkJcHVibGljIGZsb2F0IHRvX3BpeGVscyAoKTsKKyAJCXB1YmxpYyBz dHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl92ZXJ0ZXhfZ2V0X3R5cGUgKCki KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RydWN0IFZlcnRleCB7 CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJcHVibGljIGZsb2F0 IHo7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHN0YXRpYyBDbHV0 dGVyLlZlcnRleD8gYWxsb2MgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgQ2x1dHRlci5WZXJ0ZXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5WZXJ0ZXggdmVydGV4X2IpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlZlcnRl eD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0FD VE9SX0FMSUdOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9hbGlnbl9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgZW51bSBBY3RvckFsaWdu IHsKK0BAIC04MjIzLDE0ICs3NDUzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWV9BWElT LAorIAkJQk9USAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxsb2Nh dGlvbl9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKy0JcHVibGljIGVudW0gQWxsb2NhdGlvbkZsYWdzIHsKKy0JCUFMTE9DQVRJT05f Tk9ORSwKKy0JCUFCU09MVVRFX09SSUdJTl9DSEFOR0VELAorLQkJREVMRUdBVEVfTEFZT1VUCist CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRpb25fbW9kZV9nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBlbnVtIEFu aW1hdGlvbk1vZGUgeworQEAgLTgzMzYsNiArNzU1OCwyNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlZX0FYSVMsCisgCQlCT1RICisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHXyIsIHR5cGVfaWQg PSAiY2x1dHRlcl9kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGlj IGVudW0gRGVidWdGbGFnIHsKKysJCU1JU0MsCisrCQlBQ1RPUiwKKysJCVRFWFRVUkUsCisrCQlF VkVOVCwKKysJCVBBSU5ULAorKwkJUEFOR08sCisrCQlCQUNLRU5ELAorKwkJU0NIRURVTEVSLAor KwkJU0NSSVBULAorKwkJU0hBREVSLAorKwkJTVVMVElTVEFHRSwKKysJCUFOSU1BVElPTiwKKysJ CUxBWU9VVCwKKysJCVBJQ0ssCisrCQlFVkVOVExPT1AsCisrCQlDTElQUElORywKKysJCU9PQl9U UkFOU0ZPUk1TCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RSQUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Ry YWdfYXhpc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1 YmxpYyBlbnVtIERyYWdBeGlzIHsKK0BAIC04MzQzLDExICs3NTg2LDI0IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVhfQVhJUywKKyAJCVlfQVhJUworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1Rf UEFJTlRfQUNUT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYXdf ZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERyYXdE ZWJ1Z0ZsYWcgeworKwkJRElTQUJMRV9TV0FQX0VWRU5UUywKKysJCURJU0FCTEVfQ0xJUFBFRF9S RURSQVdTLAorKwkJUkVEUkFXUywKKysJCVBBSU5UX1ZPTFVNRVMsCisrCQlESVNBQkxFX0NVTExJ TkcsCisrCQlESVNBQkxFX09GRlNDUkVFTl9SRURJUkVDVCwKKysJCUNPTlRJTlVPVVNfUkVEUkFX LAorKwkJUEFJTlRfREVGT1JNX1RJTEVTLAorKwkJUEFJTlRfREFNQUdFX1JFR0lPTgorKwl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXgg PSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWlu dF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVmZmVjdFBh aW50RmxhZ3MgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF9BQ1RP Ul9ESVJUWSIpXQorLQkJQUNUT1JfRElSVFkKKysJCUFDVE9SX0RJUlRZLAorKwkJQllQQVNTX0VG RkVDVAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FVkVOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZXZlbnRf ZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorQEAgLTgzOTIsMjEgKzc2NDgsMTIgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAlbRmxhZ3NdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKyAJcHVibGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVNX QVBfVEhST1RUTEUsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCisg CQlTVEFHRV9TVEFUSUMsCistCQlTVEFHRV9VU0VSX1JFU0laRSwKKyAJCVNUQUdFX0NVUlNPUiwK KyAJCVNIQURFUlNfR0xTTCwKKyAJCU9GRlNDUkVFTiwKKyAJCVNUQUdFX01VTFRJUExFLAorLQkJ U1dBUF9FVkVOVFM7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZmVhdHVyZV9hdmFpbGFi bGUiKV0KKy0JCXB1YmxpYyBib29sIGlzX2F2YWlsYWJsZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUg PSAiY2x1dHRlcl9mZWF0dXJlX2dldF9hbGwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5G ZWF0dXJlRmxhZ3MgQGdldCAoKTsKKysJCVNXQVBfRVZFTlRTCisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZM T1dfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Zsb3dfb3JpZW50YXRpb25fZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTg0MTQsMTIgKzc2NjEsMTAgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX0ZPTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvbnRfZmxhZ3NfZ2V0X3R5cGUgKCki KV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4yMiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb250RmxhZ3Mg eworLQkJTUlQTUFQUElORywKKy0JCUhJTlRJTkcKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZSQU1FX1JFU1VMVF8i LCB0eXBlX2lkID0gImNsdXR0ZXJfZnJhbWVfcmVzdWx0X2dldF90eXBlICgpIildCisrCXB1Ymxp YyBlbnVtIEZyYW1lUmVzdWx0IHsKKysJCVBFTkRJTkdfUFJFU0VOVEVELAorKwkJSURMRQorIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9HRVNUVVJFX1RSSUdHRVJfRURHRV8iLCB0eXBlX2lkID0gImNsdXR0ZXJf Z2VzdHVyZV90cmlnZ2VyX2VkZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTgiKV0KK0BAIC04NjM0LDcgKzc4NzksOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGVudW0gT2Zmc2NyZWVuUmVkaXJlY3Qg eworIAkJQVVUT01BVElDX0ZPUl9PUEFDSVRZLAorLQkJQUxXQVlTCisrCQlBTFdBWVMsCisrCQlP Tl9JRExFCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX09SSUVOVEFUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9vcmllbnRhdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorQEAgLTg2NDIsNiArNzg4OCwxMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlIT1JJWk9O VEFMLAorIAkJVkVSVElDQUwKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUEFJTlRfRkxBR18iLCB0eXBlX2lk ID0gImNsdXR0ZXJfcGFpbnRfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1Ymxp YyBlbnVtIFBhaW50RmxhZyB7CisrCQlOT05FLAorKwkJTk9fQ1VSU09SUywKKysJCUZPUkNFX0NV UlNPUlMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUEFOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYW5fYXhp c19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAlwdWJsaWMg ZW51bSBQYW5BeGlzIHsKK0BAIC04NjYxLDYgKzc5MTQsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJUkVMX0xJTkVfVE8sCisgCQlSRUxfQ1VSVkVfVE8KKyAJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVC VUdfTk9QXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCki KV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBQaWNrRGVidWdGbGFnIHsKKysJCVBJQ0tJTkcK KysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj cHJlZml4ID0gIkNMVVRURVJfUElDS18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19tb2RlX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVudW0g UGlja01vZGUgeworQEAgLTg2NjgsMTMgKzc5MjYsNDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJUkVBQ1RJVkUsCisgCQlBTEwKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9EV0VMTF9DTElDS19U WVBFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9n ZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIHsK KysJCU5PTkUsCisrCQlQUklNQVJZLAorKwkJU0VDT05EQVJZLAorKwkJTUlERExFLAorKwkJRE9V QkxFLAorKwkJRFJBRworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZX0RXRUxMX0RJUkVDVElPTl8iLCB0 eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2R3ZWxsX2RpcmVjdGlvbl9nZXRfdHlwZSAo KSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIHsKKysJCU5PTkUs CisrCQlMRUZULAorKwkJUklHSFQsCisrCQlVUCwKKysJCURPV04KKysJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf QTExWV9EV0VMTF9NT0RFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxf bW9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsTW9kZSB7 CisrCQlXSU5ET1csCisrCQlHRVNUVVJFCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3Nd CisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RmxhZ3MgeworKwkJU0VDT05EQVJZX0NMSUNLX0VO QUJMRUQsCisrCQlEV0VMTF9FTkFCTEVECisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfVElNRU9VVF9U WVBFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfdGltZW91dF90eXBlX2dldF90 eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5VGltZW91dFR5cGUgeworKwkJU0VD T05EQVJZX0NMSUNLLAorKwkJRFdFTEwsCisrCQlHRVNUVVJFCisrCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1JF UEFJTlRfRkxBR1NfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlcGFpbnRfZmxhZ3NfZ2V0X3R5cGUg KCkiKV0KKyAJW0ZsYWdzXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMg ZW51bSBSZXBhaW50RmxhZ3MgeworIAkJUFJFX1BBSU5ULAorLQkJUE9TVF9QQUlOVCwKKy0JCVFV RVVFX1JFRFJBV19PTl9BREQKKysJCVBPU1RfUEFJTlQKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUkVRVUVT VF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVxdWVzdF9tb2RlX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC04NzU1LDggKzgwNDYsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCVtGbGFnc10KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJs aWMgZW51bSBTdGFnZVN0YXRlIHsKKy0JCUZVTExTQ1JFRU4sCistCQlPRkZTQ1JFRU4sCisgCQlB Q1RJVkFURUQKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQ09MT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0 YXRpY19jb2xvcl9nZXRfdHlwZSAoKSIpXQorQEAgLTg4MjMsMTMgKzgxMTIsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlMRUZULAorIAkJUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEFCTEVf QUxJR05NRU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9hbGlnbm1lbnRfZ2V0X3R5cGUg KCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMjIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gVGFibGVBbGlnbm1lbnQgewor LQkJU1RBUlQsCistCQlDRU5URVIsCistCQlFTkQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVF9ESVJF Q1RJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHRfZGlyZWN0aW9uX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGVudW0gVGV4dERpcmVjdGlv biB7CitAQCAtODkwNSwyOCArODE4NywxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlWQUxV RTsKKyAJCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfVEVYVFVSRV9FUlJPUl8iKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJs aWMgZXJyb3Jkb21haW4gVGV4dHVyZUVycm9yIHsKKy0JCU9VVF9PRl9NRU1PUlksCistCQlOT19Z VVYsCistCQlCQURfRk9STUFUOworLQkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgp OworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCXB1 YmxpYyBkZWxlZ2F0ZSBDbHV0dGVyLkFjdG9yIEFjdG9yQ3JlYXRlQ2hpbGRGdW5jIChHTGliLk9i amVjdCBpdGVtKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGRl bGVnYXRlIGRvdWJsZSBBbHBoYUZ1bmMgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAy LjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEJlaGF2aW91ckZv cmVhY2hGdW5jIChDbHV0dGVyLkJlaGF2aW91ciBiZWhhdmlvdXIsIENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBp bnN0YW5jZV9wb3MgPSA0LjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1Ymxp YyBkZWxlZ2F0ZSBib29sIEJpbmRpbmdBY3Rpb25GdW5jIChHTGliLk9iamVjdCBnb2JqZWN0LCBz dHJpbmcgYWN0aW9uX25hbWUsIHVpbnQga2V5X3ZhbCwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9k aWZpZXJzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgQ2FsbGJhY2sg KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorKwlwdWJsaWMgZGVsZWdhdGUg dm9pZCBFbWl0SW5wdXREZXZpY2VFdmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5J bnB1dERldmljZSBkZXZpY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBFdmVudEZpbHRlckZ1bmMgKENsdXR0ZXIu RXZlbnQgZXZlbnQpOworQEAgLTg5NTcsOSArODIyNyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZ X1JFRFJBVzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRl ci5BY3RvckJveD8gYWN0b3JfYm94X2FsbG9jICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGJhc2VfaW5p dCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtODk3MSwzNyArODIzOCwxMiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1Ymxp YyBzdGF0aWMgYm9vbCBjaGVja193aW5kb3dpbmdfYmFja2VuZCAoc3RyaW5nIGJhY2tlbmRfdHlw ZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXJfZ2x5cGhfY2FjaGUg KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgY29sb3JfZnJvbV9obHMgKG91dCBDbHV0dGVyLkNvbG9yIGNv bG9yLCBmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgY29sb3JfZnJvbV9waXhlbCAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHVp bnQzMiBwaXhlbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgYm9v bCBjb2xvcl9mcm9tX3N0cmluZyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHN0cmluZyBzdHIp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRl ci5Db2xvcj8gY29sb3JfZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBjb2xvcik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9hY2Nl c3NpYmlsaXR5ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIHZv aWQgZG9fZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKy0JcHVibGljIHN0YXRpYyB1aW50IGV2ZW50X2FkZF9maWx0ZXIgKENsdXR0ZXIuU3RhZ2U/ IHN0YWdlLCBbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAyLjIsIGRlc3Ryb3lfbm90aWZ5 X3BvcyA9IDIuMSldIG93bmVkIENsdXR0ZXIuRXZlbnRGaWx0ZXJGdW5jIGZ1bmMpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRXZlbnQgZXZlbnRfZ2V0 ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1 dHRlci5FdmVudCBldmVudF9wZWVrICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIGV2ZW50X3JlbW92ZV9maWx0ZXIgKHVpbnQgaWQpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZXZlbnRzX3BlbmRpbmcgKCk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkw MTQsOSArODI1Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQzMiBnZXRfY3VycmVudF9ldmVudF90aW1lICgp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JcHVibGljIHN0YXRpYyBib29sIGdldF9kZWJ1Z19lbmFibGVkICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5CYWNrZW5kIGdldF9k ZWZhdWx0X2JhY2tlbmQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorQEAgLTkwMjYsMTggKzgyNjUsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLlRl eHREaXJlY3Rpb24gZ2V0X2RlZmF1bHRfdGV4dF9kaXJlY3Rpb24gKCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRm9udEZsYWdzIGdldF9mb250X2ZsYWdzICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udE1h cCBnZXRfZm9udF9tYXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlib2FyZF9ncmFiICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIp XQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdl dF9vcHRpb25fZ3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorQEAgLTkwNDUsMjYgKzgyNzUsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwX3dpdGhv dXRfaW5pdCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3BvaW50ZXJfZ3JhYiAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIw LjYiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBnZXRfc2NyaXB0X2lkIChHTGli Lk9iamVjdCBnb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRf c2hvd19mcHMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHVsb25nIGdldF90aW1lc3RhbXAgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX2tleWJvYXJkIChD bHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIGdyYWJfcG9pbnRlciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9wb2ludGVyX2Zvcl9kZXZpY2UgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIGludCBpZF8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLkluaXRFcnJvciBpbml0 IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJhcmdjIiwgYXJyYXlfbGVuZ3RoX3BvcyA9 IDAuNSldIHJlZiB1bm93bmVkIHN0cmluZ1tdPyBhcmd2KTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIi KV0KK0BAIC05MDgwLDQxICs4MjkyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRp YyB2b2lkIHNldF9jdXN0b21fYmFja2VuZF9mdW5jICh2b2lkKiBmdW5jKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVmYXVsdF9mcmFtZV9yYXRlICh1aW50IGZyYW1l c19wZXJfc2VjKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9udF9m bGFncyAoQ2x1dHRlci5Gb250RmxhZ3MgZmxhZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFibGUpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfYWRkX2RhdGFfZnVs bCAoc3RyaW5nIHRlc3RfcGF0aCwgb3duZWQgR0xpYi5UZXN0RGF0YUZ1bmMgdGVzdF9mdW5jKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNr X2FjdG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50 LCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5BY3Rvcj8gcmVzdWx0KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2NvbG9y X2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0 dGVyLkNvbG9yIGNvbG9yLCBvdXQgQ2x1dHRlci5Db2xvciByZXN1bHQpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgdGVzdF9n ZXRfc3RhZ2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0IChpbnQgYXJnYywgc3RyaW5n IGFyZ3YpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQgdGVz dF9ydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1 bmdyYWJfa2V5Ym9hcmQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB1bmdyYWJfcG9pbnRlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCB1bmdyYWJfcG9pbnRlcl9mb3JfZGV2aWNlIChpbnQgaWRfKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgdWludCB1bmljb2RlX3RvX2tleXN5bSAodWludDMy IHdjKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNS1jdXN0b20udmFsYSB2YXBp L211dHRlci1jb2dsLTYtY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1l IGZyb20gdmFwaS9tdXR0ZXItY29nbC01LWN1c3RvbS52YWxhCityZW5hbWUgdG8gdmFwaS9tdXR0 ZXItY29nbC02LWN1c3RvbS52YWxhCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNC5kZXBz IHZhcGkvbXV0dGVyLWNvZ2wtNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBm cm9tIHZhcGkvbXV0dGVyLWNvZ2wtNC5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC02 LmRlcHMKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LnZhcGkgdmFwaS9tdXR0ZXItY29n bC02LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggNjglCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1j b2dsLTUudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNi52YXBpCitpbmRleCBhODk2 MTIyNC4uMTk1ZTNiMTcgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY29nbC01LnZhcGkKKysrKyB2 YXBpL211dHRlci1jb2dsLTYudmFwaQorQEAgLTEsNiArMSw2IEBACistLyogbXV0dGVyLWNvZ2wt NS52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIG11dHRl ci1jb2dsLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAK Ky1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92 ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKytbQ0NvZGUgKGNw cmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjYi LCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKyBuYW1lc3BhY2UgQ29nbCB7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5k bGUiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0K K0BAIC0yOCw5ICsyOCwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBzZXRf ZGF0YSAoc2l6ZV90IG9mZnNldCwgW0NDb2RlIChhcnJheV9sZW5ndGhfdHlwZSA9ICJzaXplX3Qi KV0gdWludDhbXSBkYXRhKTsKKyAJCXB1YmxpYyB2b2lkIHVubWFwICgpOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEV1bGVyIHsKKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2NvbnRleHRfZ2V0X2d0 eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBDb250ZXh0IDogQ29nbC5PYmplY3QgeworKwkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIENvbnRl eHQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorIAlb Q29tcGFjdF0KK0BAIC02NSw2MiArNjYsMTcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBNYXRlcmlh bCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5ICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wu TWF0ZXJpYWxMYXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9y IGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfbGF5ZXJf cG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBf bW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBD b2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5k ZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUg Z2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGljIHVub3du ZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9n cmFtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wu SGFuZGxlIEByZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBy ZW1vdmVfbGF5ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBoYUZ1bmMg YWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5D b2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgc2V0X2JsZW5k IChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3Rh bnRfY29sb3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAo Q29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhh KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4 IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29s b3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXll ciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCisgCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBz dHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC0xMzMsNDEgKzg5LDEz IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBz ZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIGJv b2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2Rl IG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFw X21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQg c2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3Vs YXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXll ciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRf d3JhcF9tb2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUg KCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CitAQCAtMTc4LDEzICsxMDYs OSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9i amVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVy ZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVm ICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0 ZXh0dXJlKTsKKyAJfQorQEAgLTE5Niw5ICsxMjAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlw dWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29k ZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNr IGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLk9uc2NyZWVuUmVzaXplQ2xv c3VyZSBhZGRfcmVzaXplX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAx LjUpXSBDb2dsLk9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFE ZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dWludCBhZGRfc3dhcF9idWZmZXJzX2NhbGxiYWNrIChDb2dsLlN3YXBCdWZmZXJzTm90aWZ5IGNh bGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2JhY2tlbmRfc2V0X3NpemVf Q0xVVFRFUiAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE0IildCisgCQlwdWJsaWMgaW50IGdldF9idWZmZXJfYWdlICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTQiKV0KK0BAIC0yMTMsOCArMTM0LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJ cHVibGljIHZvaWQgcmVtb3ZlX2ZyYW1lX2NhbGxiYWNrIChDb2dsLkZyYW1lQ2xvc3VyZSBjbG9z dXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92 ZV9yZXNpemVfY2FsbGJhY2sgKENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGNsb3N1cmUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQi LCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfc3dhcF9idWZmZXJzX2Nh bGxiYWNrICh1aW50IGlkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KK0BAIC0yNDQsNyArMTYzLDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlw ZWxpbmVfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2Jq ZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBQaXBlbGluZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJCXB1 YmxpYyBQaXBlbGluZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmUgY29weSAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KK0BAIC0yNTQsMTYgKzE3NCwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhh X3Rlc3RfcmVmZXJlbmNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxGYWNl TW9kZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29n bC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgQ29nbC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVy X21hZ19maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CitAQCAtMjc0LDggKzE4OCw2IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5v d25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBN b2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xh eWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9t b2RlX3QgKGludCBsYXllcl9pbmRleCk7CitAQCAtMjg2LDEwICsxOTgsNiBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0 X3BvaW50X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg ZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9u IChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CitAQCAtMjk4 LDEwICsyMDYsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBlbGlu ZUFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29s b3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVu ZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50 X2NvbG9yKTsKK0BAIC0zMTQsMTAgKzIxOCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9kZSAo Q29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBjdWxsX2ZhY2VfbW9kZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBk aWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfZnJvbnRfZmFjZV93aW5kaW5nIChDb2dsLldpbmRp bmcgZnJvbnRfd2luZGluZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRf c3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC0zMzUsOCArMjM1LDYgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUg bW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2Rl IG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9k ZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1v ZGUgbW9kZSk7CitAQCAtMzQ1LDEwICsyNDMsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxv YXQgcG9pbnRfc2l6ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1 bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91 bmlmb3JtXzFmIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgZmxvYXQgdmFsdWUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGludCB1 bmlmb3JtX2xvY2F0aW9uLCBpbnQgdmFsdWUpOworQEAgLTM4MiwxMCArMjc2LDYgQEAgbmFtZXNw YWNlIENvZ2wgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIHVuaWZvcm1fbWF0cml4IChpbnQgdW5p Zm9ybV9ubywgaW50IHNpemUsIGJvb2wgdHJhbnNwb3NlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9w b3MgPSAyLjkpXSBmbG9hdFtdIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIHVzZSAoKTsKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKy0JfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2ds SGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfc2hhZGVyX3JlZiIsIHVucmVmX2Z1bmN0aW9u ID0gImNvZ2xfc2hhZGVyX3VucmVmIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgU2hh ZGVyIDogQ29nbC5IYW5kbGUgeworQEAgLTQ2NSwxMiArMzU1LDEwIEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FscGhhX2JpdHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCisgCQlwdWJsaWMgaW50IGdldF9ibHVlX2JpdHMgKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkNvbnRleHQgZ2V0X2NvbnRl eHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9k ZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB1 bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVk ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9k ZXB0aF93cml0ZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAg LTUxNiw2ICs0MDQsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBwdXNoX21h dHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBw dXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9h dCB5XzIpOworKwkJcHVibGljIHZvaWQgcHVzaF9yZWdpb25fY2xpcCAoQ2Fpcm8uUmVnaW9uIHJl Z2lvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcHVz aF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTI5LDEzICs0MTgsOSBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQg cm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wu RXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1 YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9h dCB5LCBmbG9hdCB6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMg dm9pZCBzZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkIChib29sIGVuYWJsZWQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFi bGVkIChib29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorQEAgLTYzNSwxMCArNTIwLDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZv aWQgc2V0X2JsdWVfYnl0ZSAodWludDggYmx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9mbG9hdCAoZmxvYXQgYmx1ZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9hdCBn cmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2Zyb21fNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVl LCB1aW50OCBhbHBoYSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMg dm9pZCBzZXRfZ3JlZW4gKGZsb2F0IGdyZWVuKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KK0BAIC02NjIsNyArNTQzLDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHdlYWsg c3RyaW5nIG5hbWU7CisgCQlwdWJsaWMgdWxvbmcgaW5zdGFuY2VfY291bnQ7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJDT0dMX1RZ UEVfTUFUUklYIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVk X2ZyZWUiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKyAJcHVibGljIHN0cnVjdCBN YXRyaXggeworIAkJcHVibGljIGZsb2F0IHh4OworIAkJcHVibGljIGZsb2F0IHl4OworQEAgLTY5 Miw4ICs1NzMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBnZXRfaW52ZXJz ZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21h dHJpeF9pbml0X2lkZW50aXR5IildCisgCQlwdWJsaWMgTWF0cml4LmlkZW50aXR5ICgpOworLQkJ cHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCXB1Ymxp YyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7 CisrCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGluaXRfdHJhbnNs YXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorQEAgLTcwMiwxOSArNTgyLDE1IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1 YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9zaXRp b25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmplY3Rf eSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ksIGZs b2F0IHdvcmxkX3VwX3opOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9tdWx0aXBs eSIpXQorIAkJcHVibGljIE1hdHJpeC5tdWx0aXBseSAoQ29nbC5NYXRyaXggYSwgQ29nbC5NYXRy aXggYik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0 LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZs b2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxv YXQgZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQg YXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHByb2pl Y3RfcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2lu dHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMp OworIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBy b3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBx dWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIg ZXVsZXIpOworIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQg c3opOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgZmxvYXQgeCwgcmVmIGZs b2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQg dHJhbnNmb3JtX3BvaW50IChyZWYgQ29nbC5NYXRyaXggbWF0cml4LCByZWYgZmxvYXQgeCwgcmVm IGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisgCQlwdWJsaWMgdm9pZCB0cmFu c2Zvcm1fcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBw b2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2lu dHMpOworIAkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtODE4LDM4ICs2OTQsMzMgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJTk9ORSwKKyAJCU5PX0dFVF9EQVRBCisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRV UkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9ZVVYs CistCQlURVhUVVJFX1JFQURfUElYRUxTLAorLQkJT0ZGU0NSRUVOLAorLQkJT0ZGU0NSRUVOX01V TFRJU0FNUExFLAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJ VkJPUywKKy0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdF LAorLQkJUE9JTlRfU1BSSVRFLAorLQkJTUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9CVUZG RVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUsCistCQlERVBUSF9URVhUVVJFCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9GRUFUVVJFX0lEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBGZWF0dXJlSUQgeworKwkJW0NDb2RlIChjbmFtZSA9 ICJDT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMiKV0KKysJCU9HTF9GRUFUVVJF X0lEX1VOU0lHTkVEX0lOVF9JTkRJQ0VTLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRV UkVfSURfTUFQX0JVRkZFUl9GT1JfUkVBRCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZF Ul9GT1JfUkVBRCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01BUF9CVUZG RVJfRk9SX1dSSVRFIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9XUklURSwK KysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1NXQVBfQlVGRkVSU19FVkVOVCIp XQorKwkJT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5ULAorKwkJW0NDb2RlIChjbmFt ZSA9ICJDT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUiKV0KKysJCU9HTF9GRUFUVVJF X0lEX1BSRVNFTlRBVElPTl9USU1FLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVf SURfRkVOQ0UiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0ZFTkNFLAorKwkJW0NDb2RlIChjbmFtZSA9 ICJDT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9SRyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVEVYVFVS RV9SRywKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JVRkZFUl9BR0UiKV0K KysJCU9HTF9GRUFUVVJFX0lEX0JVRkZFUl9BR0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xf RkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTCIpXQorKwkJT0dMX0ZFQVRVUkVf SURfVEVYVFVSRV9FR0xfSU1BR0VfRVhURVJOQUwKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRklMVEVSXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1cm4geworIAkJQ09OVElOVUUs CisgCQlSRU1PVkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gRm9nTW9kZSB7CistCQlM SU5FQVIsCistCQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5USUFMX1NRVUFSRUQKKy0JfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xf RlJBTUVfRVZFTlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE0IildCisgCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQgeworQEAgLTg2Miw2ICs3MzMsMTQg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NBVEU7CisgCQlw dWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfR1JBUEhJQ1NfUkVTRVRfU1RB VFVTXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgZW51bSBHcmFwaGljc1Jlc2V0 U3RhdHVzIHsKKysJCU5PX0VSUk9SLAorKwkJR1VJTFRZX0NPTlRFWFRfUkVTRVQsCisrCQlJTk5P Q0VOVF9DT05URVhUX1JFU0VULAorKwkJVU5LTk9XTl9DT05URVhUX1JFU0VULAorKwkJUFVSR0VE X0NPTlRFWFRfUkVTRVQKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBFX1VOU0lHTkVEXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBJbmRpY2VzVHlwZSB7CisgCQlCWVRFLAorQEAg LTg4OCwxMiArNzY3LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTkVBUkVTVF9NSVBNQVBfTElO RUFSLAorIAkJTElORUFSX01JUE1BUF9MSU5FQVIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQ RV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNP R0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlFUl9UWVBF X1RFWFRVUkUKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIE1hdGVyaWFs V3JhcE1vZGUgeworQEAgLTk3MSw2ICs4NDQsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlERVBU SF8xNiwKKyAJCURFUFRIXzMyLAorIAkJREVQVEhfMjRfU1RFTkNJTF84OworKwkJcHVibGljIGlu dCBnZXRfYnl0ZXNfcGVyX3BpeGVsIChpbnQgcGxhbmUpOworKwkJcHVibGljIGludCBnZXRfbl9w bGFuZXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KK0BAIC0xMDY0LDkg KzkzOSw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2Fs bGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgTWF0ZXJpYWxMYXllckNhbGxiYWNrIChD b2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBpbnQgbGF5ZXJfaW5kZXgpOworKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbVmVy c2lvbiAoc2luY2UgPSAiMC4xMCIpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBGZWF0dXJlQ2Fs bGJhY2sgKENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5Q2FsbGJh Y2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUluZm8gaW5mbyk7 CitAQCAtMTA3NCwxMyArOTQ5LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2FsbGJh Y2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIu OSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxiYWNrIChDb2ds Lk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgUGlwZWxpbmVMYXll ckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAx LjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29nbC5GcmFt ZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFRl eHR1cmUyREVHTEltYWdlRXh0ZXJuYWxBbGxvYyAoQ29nbC5UZXh0dXJlMkQgdGV4XzJkKSB0aHJv d3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgVXNlckRhdGFE ZXN0cm95Q2FsbGJhY2sgKHZvaWQqIGRhdGEpOworQEAgLTEwOTIsNiArOTYzLDggQEAgbmFtZXNw YWNlIENvZ2wgeworIAlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIildCisg CXB1YmxpYyBjb25zdCBpbnQgREVQVEhfQklUOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BJWEVMX0ZPUk1BVF9NQVhfUExBTkVTIild CisrCXB1YmxpYyBjb25zdCBpbnQgUElYRUxfRk9STUFUX01BWF9QTEFORVM7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUFJFTVVMVF9C SVQiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJVCIpXQor QEAgLTEwOTksMTkgKzk3Miw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9URVhUVVJFX01BWF9XQVNU RSIpXQorIAlwdWJsaWMgY29uc3QgaW50IFRFWFRVUkVfTUFYX1dBU1RFOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIGJlZ2luX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGJsaXRfZnJhbWVidWZmZXIg KENvZ2wuRnJhbWVidWZmZXIgc3JjLCBDb2dsLkZyYW1lYnVmZmVyIGRlc3QsIGludCBzcmNfeCwg aW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB0 aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGNoZWNrX2V4dGVuc2lvbiAoc3RyaW5nIG5h bWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChDb2dsLkNvbG9yIGNvbG9yLCB1 bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBjbHV0dGVyX2NoZWNrX2V4dGVuc2lvbl9DTFVUVEVS IChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgY2x1dHRlcl93aW5zeXNfaGFz X2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorQEAgLTExMjksNTcgKzk5MSwzOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnX29iamVjdF9w cmludF9pbnN0YW5jZXMgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9mb2cgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgZW5kX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGZlYXR1cmVzX2F2 YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9h dCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgZm9yZWFjaF9mZWF0dXJlIChDb2dsLkNvbnRl eHQgY29udGV4dCwgQ29nbC5GZWF0dXJlQ2FsbGJhY2sgY2FsbGJhY2spOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyBib29s IGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfYml0bWFz a3MgKG91dCBpbnQgcmVkLCBvdXQgaW50IGdyZWVuLCBvdXQgaW50IGJsdWUsIG91dCBpbnQgYWxw aGEpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgc3RhdGljIGludDY0 IGdldF9jbG9ja190aW1lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0 X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRp YyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2RyYXdfZnJhbWVidWZmZXIgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIp XQorLQlwdWJsaWMgc3RhdGljIENvZ2wuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBz dGF0aWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CisrCXB1YmxpYyBzdGF0 aWMgQ29nbC5HcmFwaGljc1Jlc2V0U3RhdHVzIGdldF9ncmFwaGljc19yZXNldF9zdGF0dXMgKENv Z2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25H cm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLkNhbGxiYWNrIGdldF9wcm9jX2Fk ZHJlc3MgKHN0cmluZyBzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X3Byb2plY3Rpb25fbWF0 cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkKiBnZXRfc291cmNlICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIGdldF92aWV3cG9ydCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIG91 dCBmbG9hdCB2WzRdKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE4IildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGd0eXBlX21hdHJpeF9nZXRfdHlwZSAo KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBoYXNfZmVhdHVyZSAo Q29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX2NvbnRleHQgKHZvaWQqIG9iamVjdCk7 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorKwlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZnJhbWVidWZmZXIg KHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTExOTMsNTMgKzEwMzYsOSBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1Ymxp YyBzdGF0aWMgYm9vbCBpc190ZXh0dXJlXzJkX3NsaWNlZCAodm9pZCogb2JqZWN0KTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CistCXB1YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBtYXRy aXhfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRv cCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxv YXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVyZVZl cnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBib29sIHVzZV9jb2xvcik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgcG9wX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfc291 cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHB1c2hfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFu Z2xlIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVsdGl0ZXh0 dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29v cmRzX2xlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5n bGVfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxv YXQgeTIsIGZsb2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzIChbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjguNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlc193aXRoX3RleHR1 cmVfY29vcmRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywg dWludCBuX3JlY3RzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4 LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQg eSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAo Ym9vbCBzZXR0aW5nKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCitAQCAtMTI0Nyw1MyArMTA0NiwxMSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF9mb2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwg ZmxvYXQgZGVuc2l0eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg c2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg c2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwg ZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1 aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X3NvdXJjZV90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfdmlld3BvcnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgc3RyaW5nIHNoYWRlcl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJs aWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIGJvb2wgc2hhZGVyX2lzX2NvbXBpbGVkIChDb2dsLkhhbmRsZSBoYW5k bGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFuZGxl IGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hhZGVy LCBzdHJpbmcgc291cmNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFuZGxl IGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor IAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIs IHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25l d19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFn cywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KK0BAIC0xMzA2LDU5ICsxMDYzLDYgQEAgbmFtZXNw YWNlIENvZ2wgeworIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVy ZSB0ZXh0dXJlX25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRl eHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBh dHRyaWJ1dGVfbmFtZSwgdWludDggbl9jb21wb25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5cGUgdHlw ZSwgYm9vbCBub3JtYWxpemVkLCB1aW50MTYgc3RyaWRlLCB2b2lkKiBwb2ludGVyKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RlbGV0ZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcg YXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGlzYWJsZSAoQ29n bC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZl cnRleF9idWZmZXJfZHJhdyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBt b2RlLCBpbnQgZmlyc3QsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9k cmF3X2VsZW1lbnRzIChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUs IENvZ2wuSGFuZGxlIGluZGljZXMsIGludCBtaW5faW5kZXgsIGludCBtYXhfaW5kZXgsIGludCBp bmRpY2VzX29mZnNldCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Vu YWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyB1aW50IHZlcnRleF9idWZmZXJfZ2V0X25fdmVydGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF9m b3JfcXVhZHMgKHVpbnQgbl9pbmRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5JbmRpY2VzVHlwZSB2ZXJ0 ZXhfYnVmZmVyX2luZGljZXNfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGluZGljZXMpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3ICh1aW50IG5fdmVydGljZXMp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJs aWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9yZWYgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9zdWJtaXQgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4y IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3VucmVmIChDb2dsLkhhbmRs ZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIs IHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2aWV3cG9ydCAodWludCB3 aWR0aCwgdWludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF92aXN1YWxf eGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1Ymxp YyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfd2luZG93X3hpZCAoQ29nbC5PbnNjcmVl biBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFf b25zY3JlZW5fc2V0X2ZvcmVpZ25fd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwg dWludDMyIHhpZCwgW0NDb2RlIChzY29wZSA9ICJhc3luYyIpXSBDb2dsLk9uc2NyZWVuWDExTWFz a0NhbGxiYWNrIHVwZGF0ZSk7CisgfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTQtY3Vz dG9tLnZhbGEgdmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitzaW1pbGFyaXR5IGluZGV4 IDgxJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00LWN1c3RvbS52YWxhCityZW5hbWUg dG8gdmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitpbmRleCAyNTUxODg1YS4uYzRkNGI5 M2EgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY29nbC00LWN1c3RvbS52YWxhCisrKysgdmFwaS9t dXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitAQCAtMSwxMCArMSw0IEBACisgbmFtZXNwYWNlIENv Z2wgeworLQlbQ29tcGFjdF0KKy0JW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIildCistCXB1 YmxpYyBjbGFzcyBCaXRtYXA6IEhhbmRsZSB7CistCQlwdWJsaWMgc3RhdGljIEJpdG1hcCBuZXdf ZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworLQl9CistCisg CVtDb21wYWN0XQorIAlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiKV0KKyAJcHVibGljIGNs YXNzIEJ1ZmZlcjogSGFuZGxlIHsKK0BAIC00Miw3ICszNiw3IEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJCXB1YmxpYyBib29sIGlzX3ZlcnRleF9idWZmZXIgKCk7CisgCX0KKyAKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJjb2dsX3Bh dGhfY29weSIpXSAKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y29weV9mdW5jdGlvbiA9ICJjb2dsX3BhdGhfY29weSIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGlj IGNsYXNzIFBhdGggeworIAkJcHVibGljIHN0YXRpYyB2b2lkIEBuZXcgKCk7CitAQCAtODIsMTgg Kzc2LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgc291cmNlIChzdHJpbmcg c291cmNlKTsKKyAJfQorIAorLQlbQ29tcGFjdF0KKy0JW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFu ZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9 ICJjb2dsX3RleHR1cmVfdW5yZWYiKV0KKy0JcHVibGljIGNsYXNzIFRleHR1cmU6IEhhbmRsZSB7 CistCQlwdWJsaWMgQ29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJcHVibGljIHVp bnQgZ2V0X3Jvd3N0cmlkZSAoKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYml0bWFwIChDb2ds LkJpdG1hcCBibXBfaGFuZGxlLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZv cm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9kYXRhICh1aW50 IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxG b3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgdWludCByb3dz dHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1Y2hhcltdIGRhdGEpOworLQkJ cHVibGljIFRleHR1cmUuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZs YWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIu RXJyb3I7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX3N1Yl90ZXh0dXJlIChDb2dsLlRleHR1cmUg ZnVsbF90ZXh0dXJlLCBpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1 Yl9oZWlnaHQpOworLQkJcHVibGljIFRleHR1cmUud2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50 IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJu YWxfZm9ybWF0KTsKKy0JfQorLQorIAlbQ29tcGFjdF0KKyAJW0NDb2RlIChjbmFtZSA9ICJDb2ds SGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl9yZWYiLCB1bnJlZl9m dW5jdGlvbiA9ICJjb2dsX3ZlcnRleF9idWZmZXJfdW5yZWYiKV0KKyAJcHVibGljIGNsYXNzIFZl cnRleEJ1ZmZlcjogSGFuZGxlIHsKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LmRlcHMg dmFwaS9tdXR0ZXItY29nbC03LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZy b20gdmFwaS9tdXR0ZXItY29nbC01LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTcu ZGVwcworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTQudmFwaSB2YXBpL211dHRlci1jb2ds LTcudmFwaQorc2ltaWxhcml0eSBpbmRleCA1OSUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNv Z2wtNC52YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC03LnZhcGkKK2luZGV4IDVkZThm NDQ3Li42MjBjMjMxNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTQudmFwaQorKysrIHZh cGkvbXV0dGVyLWNvZ2wtNy52YXBpCitAQCAtMSwxMiArMSwxMyBAQAorLS8qIG11dHRlci1jb2ds LTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0 ZXItY29nbC03LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisg CistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJf dmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisrW0NDb2RlIChj cHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI3 IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisgbmFtZXNwYWNlIENvZ2wgeworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFu ZGxlIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3Rd CistCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLkhhbmRsZSB7CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0 eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLk9iamVjdCB7CisrCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQml0bWFw ICgpOworIAkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDb2dsQml0bWFwKiIpXQor KwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIEJpdG1hcC5mcm9tX2ZpbGUgKHN0cmluZyBmaWxl bmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor QEAgLTE2LDEwICsxNyw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgaW50IGdldF9yb3dzdHJpZGUgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfc2l6ZV9mcm9t X2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgb3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOwor KwkJcHVibGljIHN0YXRpYyBib29sIGdldF9zaXplX2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1l LCBvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIGludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgc3RhdGljIENv Z2wuQml0bWFwIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJy b3I7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25h bWUgPSAiQ29nbEhhbmRsZSIpXQorIAlbQ29tcGFjdF0KK0BAIC0yOCwxNSArMjgsMjggQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGJvb2wgc2V0X2RhdGEgKHNpemVfdCBvZmZzZXQsIFtD Q29kZSAoYXJyYXlfbGVuZ3RoX3R5cGUgPSAic2l6ZV90IildIHVpbnQ4W10gZGF0YSk7CisgCQlw dWJsaWMgdm9pZCB1bm1hcCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1Ymxp YyBjbGFzcyBFdWxlciB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIHR5cGVfaWQgPSAiY29nbF9jb250ZXh0X2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xh c3MgQ29udGV4dCA6IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBDb250ZXh0ICgpOworKwkJcHVibGljIGJvb2wg aXNfaGFyZHdhcmVfYWNjZWxlcmF0ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJl X2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQi KV0KKyAJcHVibGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7CisgCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2luZm9fZ2V0 X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBGcmFtZUluZm8gOiBDb2dsLk9iamVjdCB7Cisr CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQg RnJhbWVJbmZvICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBp bnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CisrCQlwdWJsaWMgaW50NjQgZ2V0X3ByZXNlbnRhdGlvbl90aW1lICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfcmVmcmVzaF9yYXRlICgpOwor Kwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHJlZl9mdW5j dGlvbiA9ICJjb2dsX2hhbmRsZV9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX2hhbmRsZV91 bnJlZiIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIEhhbmRsZSB7CitAQCAtNjUsNjUg Kzc4LDIwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29weSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2xheWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFj ayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmll bnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENv Z2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nv b3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1 YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5 ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3Jh cE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBf bW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PENv Z2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg ZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZs b2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg Z2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIEByZWYgKENv Z2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5ZXIgKGlu dCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Fs cGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxv YXQgYWxwaGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfYmxlbmQgKHN0cmluZyBi bGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2JsZW5k IChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3Rh bnRfY29sb3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAo Q29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhh KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4 IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29s b3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXll ciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5k ZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJv b2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmlu ZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBj b25zdGFudCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorQEAgLTEzMSw0MyArOTksMTUgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBsYXllcl9pbmRleCwgQ29nbC5N YXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNl dF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgQ29n bC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1h dGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFw TW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJf d3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVf dCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CisrCQlwdWJs aWMgYm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJf aW5kZXgsIGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmlu ZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENv Z2wuQ29sb3Igc3BlY3VsYXIpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGlj IENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9t b2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFw TW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUgKCkiKV0K KyAJcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CitAQCAtMTc4LDEzICsxMTgsOSBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9iamVjdCwg Q29nbC5GcmFtZWJ1ZmZlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVyZSAoQ29n bC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmICh2b2lk KiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJl KTsKKyAJfQorQEAgLTE5NCwxNyArMTMwLDE2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXByb3Rl Y3RlZCBPbnNjcmVlbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJs aWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAo ZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNh bGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE0IildCisrCQlwdWJsaWMgQ29nbC5GcmFtZUNsb3N1cmUgYWRkX2Zy YW1lX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLkZy YW1lQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ry b3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuT25zY3Jl ZW5SZXNpemVDbG9zdXJlIGFkZF9yZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFy Z2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5SZXNpemVDYWxsYmFjayBjYWxsYmFjaywgQ29n bC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB1aW50IGFkZF9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dhcEJ1ZmZl cnNOb3RpZnkgY2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfYmFja2Vu ZF9zZXRfc2l6ZV9DTFVUVEVSIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3Vu dGVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9v bCBnZXRfcmVzaXphYmxlICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3Jlc2l6YWJsZSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGhpZGUgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorQEAgLTIxMywxOCArMTQ4LDE2IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFtZV9jYWxsYmFjayAoQ29nbC5GcmFt ZUNsb3N1cmUgY2xvc3VyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCByZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3Vy ZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3N3 YXBfYnVmZmVyc19jYWxsYmFjayAodWludCBpZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChDb2dsLkJvb2wgcmVzaXphYmxlKTsK KysJCXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNob3cgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzICgpOworKwkJ cHVibGljIHZvaWQgc3dhcF9idWZmZXJzIChDb2dsLkZyYW1lSW5mbyBmcmFtZV9pbmZvKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnNf d2l0aF9kYW1hZ2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsKKysJCXB1Ymxp YyB2b2lkIHN3YXBfYnVmZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBuX3Jl Y3RhbmdsZXMsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChpbnQgcmVjdGFuZ2xlcywgaW50IG5f cmVjdGFuZ2xlcyk7CisrCQlwdWJsaWMgdm9pZCBzd2FwX3JlZ2lvbiAoaW50IHJlY3RhbmdsZXMs IGludCBuX3JlY3RhbmdsZXMsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hl ZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xf b25zY3JlZW5fZGlydHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitAQCAt MjQ0LDcgKzE3Nyw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlwZSAo KSIpXQorIAlwdWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2dsLk9iamVjdCB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxpbmUg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisrCQlwdWJsaWMgUGlwZWxpbmUgKENv Z2wuQ29udGV4dCBjb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyBDb2dsLlBpcGVsaW5lIGNvcHkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CitAQCAtMjU0LDQ0ICsxODgsMzAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9hbHBoYV90ZXN0X3JlZmVyZW5jZSAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbWJp ZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor IAkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVDdWxsRmFj ZU1vZGUgZ2V0X2N1bGxfZmFjZV9tb2RlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24gKENv Z2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIENvZ2wuV2luZGluZyBnZXRfZnJvbnRfZmFjZV93aW5kaW5nICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9sYXll cl9tYWdfZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9sYXllcl9taW5fZmlsdGVy IChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQg bGF5ZXJfaW5kZXgpOworKwkJcHVibGljIGJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29y ZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGlu dCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMg Q29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2lu ZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVs aW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9k ZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Blcl92ZXJ0ZXhf cG9pbnRfc2l6ZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9wZXJfdmVydGV4X3BvaW50X3NpemUg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3Bv aW50X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxv YXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChz dHJpbmcgdW5pZm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CitAQCAtMzAwLDEx ICsyMjAsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBlbGluZUFs cGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3Ig YW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAoc3RyaW5nIGJs ZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQg KHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNv bG9yIGNvbnN0YW50X2NvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0z MTMsNDYgKzIyOSwzNSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29s b3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHVi ICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAo Q29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgdm9pZCBzZXRfY3VsbF9mYWNlX21vZGUgKENvZ2wuUGlwZWxpbmVDdWxsRmFj ZU1vZGUgY3VsbF9mYWNlX21vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29s b3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoQ29nbC5XaW5kaW5nIGZyb250X3dpbmRpbmcpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5 ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJf aW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2NvbWJpbmVfY29u c3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBjb25zdGFudCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2ZpbHRlcnMgKGlu dCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZUZpbHRlciBtaW5fZmlsdGVyLCBDb2dsLlBpcGVs aW5lRmlsdGVyIG1hZ19maWx0ZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRy aXggbWF0cml4KTsKKysJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXhfbWlwbWFwX2xldmVsIChp bnQgbGF5ZXIsIGludCBtYXhfbGV2ZWwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwg Q29nbC5UZXh0dXJlVHlwZSB0ZXh0dXJlX3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0X2xheWVy X251bGxfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNf ZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5F cnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJs ZWQgKGludCBsYXllcl9pbmRleCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJ cHVibGljIHZvaWQgc2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0 dXJlIHRleHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3Jh cE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdy YXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVX cmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5l V3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg Q29nbC5Cb29sIHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKENvZ2wuQm9vbCBlbmFibGUpIHRo cm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6 ZSAoYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5p bmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAoaW50 IHVuaWZvcm1fbG9jYXRpb24sIGZsb2F0IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9sb2NhdGlv biwgaW50IHZhbHVlKTsKK0BAIC0zNjEsNyArMjY2LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1faW50 IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9uZW50cywgaW50IGNvdW50LCBpbnQg dmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3VuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IGRpbWVuc2lvbnMsIGlu dCBjb3VudCwgQ29nbC5Cb29sIHRyYW5zcG9zZSwgZmxvYXQgdmFsdWUpOworKwkJcHVibGljIHZv aWQgc2V0X3VuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IGRpbWVuc2lv bnMsIGludCBjb3VudCwgYm9vbCB0cmFuc3Bvc2UsIGZsb2F0IHZhbHVlKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wu SGFuZGxlIHByb2dyYW0pOworIAl9CitAQCAtMzg4LDcgKzI5Myw3IEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9u IHsKKysJcHVibGljIGNsYXNzIFNjYW5vdXQgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24g PSAiY29nbF9zaGFkZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfdW5yZWYi KV0KKyAJW0NvbXBhY3RdCitAQCAtNDAxLDQ4ICszMDYsMjMgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJcHVibGljIGJvb2wgaXNfY29tcGlsZWQgKCk7CisgCQlwdWJsaWMgdm9pZCBzb3VyY2UgKHN0 cmluZyBzb3VyY2UpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJl X3JlZiIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIsIHVucmVmX2Z1bmN0 aW9uID0gImNvZ2xfdGV4dHVyZV91bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNz IFRleHR1cmUgOiBDb2dsLkhhbmRsZSB7CistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgp IHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsg KCk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYm1wX2hhbmRs ZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9y bWF0KTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZGF0YSAodWludCB3aWR0aCwgdWludCBoZWln aHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29n bC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gdWNoYXJbXSBkYXRhKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZy b21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5Q aXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGlj IFRleHR1cmUuZnJvbV9zdWJfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIGZ1bGxfdGV4dHVyZSwgaW50 IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5UZXh0dXJlQ29tcG9uZW50 cyBnZXRfY29tcG9uZW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhdGEgKENvZ2wuUGl4ZWxG b3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlwdWJsaWMgQ29n bC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZ2xf dGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7 CistCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGludCBnZXRfbWF4X3dh c3RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfcm93c3RyaWRlICgp OworLQkJcHVibGljIHVpbnQgZ2V0X3dpZHRoICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBpc19z bGljZWQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1 cmUgbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdz IGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZGF0YSAoaW50IHdp ZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1h dCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRl LCB1aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wu VGV4dHVyZSBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdz IGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJy b3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3 X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5kbGUsIHVpbnQgZ2xfdGFyZ2V0LCB1aW50IHdpZHRo LCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93YXN0ZSwgdWludCB5X3BvdF93YXN0ZSwgQ29nbC5Q aXhlbEZvcm1hdCBmb3JtYXQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLlRl eHR1cmUgbmV3X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3Vi X3dpZHRoLCBpbnQgc3ViX2hlaWdodCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0 YXRpYyBDb2dsLlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQs IENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1h dCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Nv bXBvbmVudHMgKENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29tcG9uZW50cyk7CistCQlwdWJsaWMg Q29nbC5Cb29sIHNldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgaW50IHJvd3N0cmlk ZSwgdWludDggZGF0YSwgaW50IGxldmVsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfcHJlbXVsdGlwbGllZCAoQ29n bC5Cb29sIHByZW11bHRpcGxpZWQpOworLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uIChp bnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRo LCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1h dCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3JlZ2lvbl9mcm9tX2JpdG1hcCAo aW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0 aCwgdWludCBkc3RfaGVpZ2h0LCBDb2dsLkJpdG1hcCBiaXRtYXApOworLQkJcHVibGljIFRleHR1 cmUud2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3Mg ZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgbG93ZXJfY2FzZV9jc3VmZml4ID0gInRleHR1 cmVfMmQiLCB0eXBlX2lkID0gImNvZ2xfdGV4dHVyZV8yZF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVi bGljIGNsYXNzIFRleHR1cmUyRCA6IENvZ2wuT2JqZWN0LCBDb2dsLlRleHR1cmUgeworKwkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFRleHR1 cmUyRCAoKTsKKysJCXB1YmxpYyB2b2lkIGVnbF9pbWFnZV9leHRlcm5hbF9hbGxvY19maW5pc2gg KHZvaWQqIHVzZXJfZGF0YSwgR0xpYi5EZXN0cm95Tm90aWZ5IGRlc3Ryb3kpOworKwkJcHVibGlj IHZvaWQgZWdsX2ltYWdlX2V4dGVybmFsX2JpbmQgKCk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisrCQlw dWJsaWMgVGV4dHVyZTJELmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXApOworKwl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGxvd2VyX2Nhc2VfY3N1 ZmZpeCA9ICJ0ZXh0dXJlXzJkX3NsaWNlZCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlXzJkX3Ns aWNlZF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRleHR1cmUyRFNsaWNlZCA6IENv Z2wuT2JqZWN0LCBDb2dsLlRleHR1cmUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFRleHR1cmUyRFNsaWNlZCAoKTsKKysJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE2IildCisrCQlwdWJsaWMgVGV4dHVyZTJEU2xpY2VkLmZyb21fYml0bWFwIChDb2dsLkJp dG1hcCBibXAsIGludCBtYXhfd2FzdGUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAi Y29nbF92ZXJ0ZXhfYnVmZmVyX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1 ZmZlcl91bnJlZiIpXQorIAlbQ29tcGFjdF0KK0BAIC00NjgsNyArMzQ4LDcgQEAgbmFtZXNwYWNl IENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBl X2lkID0gImNvZ2xfZnJhbWVidWZmZXJfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZh Y2UgRnJhbWVidWZmZXIgOiBDb2dsLk9iamVjdCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOwor KwkJcHVibGljIGJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBjbGVhciAodWxvbmcgYnVmZmVycywg Q29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNDg4 LDYgKzM2OCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIGVy cm9yX3F1YXJrICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 b2lkIGZpbmlzaCAoKTsKKysJCXB1YmxpYyB2b2lkIGZsdXNoICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0 IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zh cik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNDk1LDIyICszNzYsMTggQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGlj IGludCBnZXRfYmx1ZV9iaXRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworKwkJcHVibGljIHVub3du ZWQgQ29nbC5Db250ZXh0IGdldF9jb250ZXh0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE0IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRoX3Rl eHR1cmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIENvZ2wu Qm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7 CisrCQlwdWJsaWMgYm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RpdGhlcl9lbmFibGVk ICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2RpdGhlcl9lbmFibGVkICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRfZ3JlZW5fYml0cyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2hlaWdodCAoKTsKKy0J CXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2lzX3N0ZXJlbyAoKTsKKysJCXB1YmxpYyBib29sIGdldF9p c19zdGVyZW8gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENv Z2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KK0BAIC01NDcsMTIgKzQyNCwxMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJs aWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwg ZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworKwkJcHVibGljIHZvaWQgcHVzaF9yZWdpb25fY2xpcCAo Q2Fpcm8uUmVnaW9uIHJlZ2lvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHZvaWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBp bnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29n bC5Cb29sIHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwg Q29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CisrCQlwdWJsaWMgYm9vbCBy ZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4 ZWxGb3JtYXQgZm9ybWF0LCB1aW50OCBwaXhlbHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4 LCBpbnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXAp OworKwkJcHVibGljIGJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQgeSwg Q29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1wbGVzICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTU2MCwxOSArNDM4LDEzIEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAo Q29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOwor KwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0 dXJlX2VuYWJsZWQgKENvZ2wuQm9vbCBlbmFibGVkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoQ29nbC5Cb29s IGRlcHRoX3dyaXRlX2VuYWJsZWQpOworKwkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3dyaXRlX2Vu YWJsZWQgKGJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKENvZ2wuQm9vbCBkaXRo ZXJfZW5hYmxlZCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKGJvb2wgZGl0 aGVyX2VuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01ODgsNiArNDYwLDM5IEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCB0cmFuc2xh dGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlw ZSAoKSIpXQorKwlwdWJsaWMgaW50ZXJmYWNlIFRleHR1cmUgOiBDb2dsLk9iamVjdCB7CisrCQlw dWJsaWMgYm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0 aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0K KysJCXB1YmxpYyBDb2dsLlRleHR1cmVDb21wb25lbnRzIGdldF9jb21wb25lbnRzICgpOworKwkJ cHVibGljIGludCBnZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3Ry aWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXT8gZGF0YSk7CisrCQlw dWJsaWMgYm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVp bnQgb3V0X2dsX3RhcmdldCk7CisrCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworKwkJcHVi bGljIGludCBnZXRfbWF4X3dhc3RlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0K KysJCXB1YmxpYyBib29sIGdldF9wcmVtdWx0aXBsaWVkICgpOworKwkJcHVibGljIHVpbnQgZ2V0 X3dpZHRoICgpOworKwkJcHVibGljIGJvb2wgaXNfc2xpY2VkICgpOworKwkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2JpdG1hcCAoQ29nbC5C aXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBp bnRlcm5hbF9mb3JtYXQpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ29n bC5UZXh0dXJlIG5ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0 dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0 IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIHVpbnQ4W10gZGF0YSk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRp YyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1 cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBH TGliLkVycm9yOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBDb2dsLlRleHR1cmUgbmV3 X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBp bnQgc3ViX2hlaWdodCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2ds LlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4 dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHZvaWQgc2V0X2NvbXBvbmVudHMg KENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29tcG9uZW50cyk7CisrCQlwdWJsaWMgYm9vbCBzZXRf ZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIGludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCBsZXZlbCkgdGhyb3dzIEdMaWIu RXJyb3I7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHZvaWQgc2V0 X3ByZW11bHRpcGxpZWQgKGJvb2wgcHJlbXVsdGlwbGllZCk7CisrCQlwdWJsaWMgYm9vbCBzZXRf cmVnaW9uIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQg ZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5Q aXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKysJ CXB1YmxpYyBib29sIHNldF9yZWdpb25fZnJvbV9iaXRtYXAgKGludCBzcmNfeCwgaW50IHNyY195 LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwg Q29nbC5CaXRtYXAgYml0bWFwKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKyAJW1NpbXBsZVR5cGVdCisgCXB1YmxpYyBzdHJ1Y3QgQW5nbGUgOiBp bnQzMiB7CitAQCAtNjM1LDEwICs1NDAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMg dm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBibHVlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9hdCByZWQsIGZsb2F0 IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJs dWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorQEAgLTY2Miw3ICs1NjMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgd2Vh ayBzdHJpbmcgbmFtZTsKKyAJCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gIkNPR0xf VFlQRV9NQVRSSVgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94 ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorIAlwdWJsaWMgc3RydWN0 IE1hdHJpeCB7CisgCQlwdWJsaWMgZmxvYXQgeHg7CisgCQlwdWJsaWMgZmxvYXQgeXg7CitAQCAt Njg5LDMyICs1OTAsMjcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgZnJ1c3R1 bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9h dCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB1bm93bmVkIGZsb2F0W10gZ2V0X2Fy cmF5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuQm9v bCBnZXRfaW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworKwkJcHVibGljIGJvb2wg Z2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNlKTsKKyAJCVtDQ29kZSAoY25hbWUg PSAiY29nbF9tYXRyaXhfaW5pdF9pZGVudGl0eSIpXQorIAkJcHVibGljIE1hdHJpeC5pZGVudGl0 eSAoKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7 CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1 YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChHcmFwaGVuZS5FdWxl ciBldWxlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBp bml0X3RyYW5zbGF0aW9uIChmbG9hdCB0eCwgZmxvYXQgdHksIGZsb2F0IHR6KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgaXNfaWRlbnRpdHkgKCk7 CisrCQlwdWJsaWMgYm9vbCBpc19pZGVudGl0eSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKyAJCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94LCBmbG9h dCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVjdF94LCBm bG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZsb2F0IHdv cmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3opOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21h dHJpeF9tdWx0aXBseSIpXQorIAkJcHVibGljIE1hdHJpeC5tdWx0aXBseSAoQ29nbC5NYXRyaXgg YSwgQ29nbC5NYXRyaXggYik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQs IGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQg ZmFyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBvcnRo b2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxv YXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBm b3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1Ymxp YyB2b2lkIHByb2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2lu LCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBp bnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQg eCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wu UXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3Jh cGhlbmUuRXVsZXIgZXVsZXIpOworIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4LCBmbG9h dCBzeSwgZmxvYXQgc3opOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgZmxv YXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisrCQlwdWJsaWMg c3RhdGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgQ29nbC5NYXRyaXggbWF0cml4LCByZWYg ZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisgCQlwdWJs aWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRl X2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0 LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9h dCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtODAxLDE2 ICs2OTcsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlXSU5ET1dfQlVGRkVSLAorIAkJT0ZGU0NS RUVOX0JVRkZFUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9DT0xPUl9NQVNLXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIENvbG9yTWFzayB7CistCQlOT05FLAorLQkJUkVELAor LQkJR1JFRU4sCistCQlCTFVFLAorLQkJQUxQSEEsCistCQlBTEwKKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfREVQVEhfVEVT VF9GVU5DVElPTl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0gRGVwdGhU ZXN0RnVuY3Rpb24geworIAkJTkVWRVIsCitAQCAtODIyLDQ2ICs3MDgsNDEgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJR0VRVUFMLAorIAkJQUxXQVlTCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9FR0xfSU1BR0VfRkxBR18iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKyAJW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVt IEZlYXR1cmVGbGFncyB7CistCQlURVhUVVJFX1JFQ1RBTkdMRSwKKy0JCVRFWFRVUkVfTlBPVCwK Ky0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKy0JCVNIQURFUlNfR0xT TCwKKy0JCU9GRlNDUkVFTiwKKy0JCU9GRlNDUkVFTl9NVUxUSVNBTVBMRSwKKy0JCU9GRlNDUkVF Tl9CTElULAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJVkJP UywKKy0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdFLAor LQkJVEVYVFVSRV9OUE9UX0JBU0lDLAorLQkJVEVYVFVSRV9OUE9UX01JUE1BUCwKKy0JCVRFWFRV UkVfTlBPVF9SRVBFQVQsCistCQlQT0lOVF9TUFJJVEUsCistCQlURVhUVVJFXzNELAorLQkJTUFQ X0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5f TVVMVElQTEUsCistCQlERVBUSF9URVhUVVJFCisrCXB1YmxpYyBlbnVtIEVnbEltYWdlRmxhZ3Mg eworKwkJTk9ORSwKKysJCU5PX0dFVF9EQVRBCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfSURfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBl bnVtIEZlYXR1cmVJRCB7CisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9VTlNJ R05FRF9JTlRfSU5ESUNFUyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElD RVMsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9S RUFEIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFELAorKwkJW0NDb2Rl IChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUiKV0KKysJCU9H TF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1dSSVRFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJD T0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5UIildCisrCQlPR0xfRkVBVFVSRV9JRF9T V0FQX0JVRkZFUlNfRVZFTlQsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9Q UkVTRU5UQVRJT05fVElNRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUs CisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9GRU5DRSIpXQorKwkJT0dMX0ZF QVRVUkVfSURfRkVOQ0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9URVhU VVJFX1JHIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHLAorKwkJW0NDb2RlIChjbmFt ZSA9ICJDT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfQlVG RkVSX0FHRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdM X0lNQUdFX0VYVEVSTkFMIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9F WFRFUk5BTCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JMSVRfRlJBTUVC VUZGRVIiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0JMSVRfRlJBTUVCVUZGRVIKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRklM VEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1cm4g eworIAkJQ09OVElOVUUsCisgCQlSRU1PVkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0g Rm9nTW9kZSB7CistCQlMSU5FQVIsCistCQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5USUFMX1NR VUFSRUQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfRlJBTUVfRVZFTlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQgeworQEAg LTg3NCw2ICs3NTUsMTQgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJRlJBTUVCVUZGRVJfRVJST1Jf QUxMT0NBVEU7CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKyAJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfR1JB UEhJQ1NfUkVTRVRfU1RBVFVTXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgZW51 bSBHcmFwaGljc1Jlc2V0U3RhdHVzIHsKKysJCU5PX0VSUk9SLAorKwkJR1VJTFRZX0NPTlRFWFRf UkVTRVQsCisrCQlJTk5PQ0VOVF9DT05URVhUX1JFU0VULAorKwkJVU5LTk9XTl9DT05URVhUX1JF U0VULAorKwkJUFVSR0VEX0NPTlRFWFRfUkVTRVQKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBFX1VOU0lH TkVEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBJbmRpY2VzVHlwZSB7 CisgCQlCWVRFLAorQEAgLTkwMCwxMiArNzg5LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTkVB UkVTVF9NSVBNQVBfTElORUFSLAorIAkJTElORUFSX01JUE1BUF9MSU5FQVIKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFU RVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0Nv ZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRF UklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1Ymxp YyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgeworQEAgLTk3MCw2ICs4NTMsMTAgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJQkdSQV8xMDEwMTAyLAorIAkJQVJHQl8yMTAxMDEwLAorIAkJQUJHUl8yMTAx MDEwLAorKwkJUkdCQV9GUF8xNjE2MTYxNiwKKysJCUJHUkFfRlBfMTYxNjE2MTYsCisrCQlBUkdC X0ZQXzE2MTYxNjE2LAorKwkJQUJHUl9GUF8xNjE2MTYxNiwKKyAJCVJHQkFfODg4OF9QUkUsCisg CQlCR1JBXzg4ODhfUFJFLAorIAkJQVJHQl84ODg4X1BSRSwKK0BAIC05ODAsOSArODY3LDE2IEBA IG5hbWVzcGFjZSBDb2dsIHsKKyAJCUJHUkFfMTAxMDEwMl9QUkUsCisgCQlBUkdCXzIxMDEwMTBf UFJFLAorIAkJQUJHUl8yMTAxMDEwX1BSRSwKKysJCVJHQkFfRlBfMTYxNjE2MTZfUFJFLAorKwkJ QkdSQV9GUF8xNjE2MTYxNl9QUkUsCisrCQlBUkdCX0ZQXzE2MTYxNjE2X1BSRSwKKysJCUFCR1Jf RlBfMTYxNjE2MTZfUFJFLAorIAkJREVQVEhfMTYsCisgCQlERVBUSF8zMiwKKy0JCURFUFRIXzI0 X1NURU5DSUxfOAorKwkJREVQVEhfMjRfU1RFTkNJTF84OworKwkJcHVibGljIGludCBnZXRfYnl0 ZXNfcGVyX3BpeGVsIChpbnQgcGxhbmUpOworKwkJcHVibGljIGludCBnZXRfbl9wbGFuZXMgKCk7 CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRUFEX1BJ WEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0ZsYWdzXQorQEAgLTEwNDEs MTMgKzkzNSw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCU5PX1NMSUNJTkcsCisgCQlOT19BVExB UworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9URVhUVVJFX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBlbnVtIFRleHR1cmVUeXBlIHsKKy0JCUAy RCwKKy0JCUAzRCwKKy0JCVJFQ1RBTkdMRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9WRVJUSUNFU19NT0RFXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBl bnVtIFZlcnRpY2VzTW9kZSB7CitAQCAtMTA2Nyw3ICs5NTQsNiBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9XSU5TWVNfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVu dW0gV2luc3lzRmVhdHVyZSB7CisgCQlNVUxUSVBMRV9PTlNDUkVFTiwKKy0JCVNXQVBfVEhST1RU TEUsCisgCQlWQkxBTktfQ09VTlRFUiwKKyAJCVZCTEFOS19XQUlULAorIAkJVEVYVFVSRV9GUk9N X1BJWE1BUCwKK0BAIC0xMDgyLDkgKzk2OCwxMiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSld CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgRGVi dWdPYmplY3RGb3JlYWNoVHlwZUNhbGxiYWNrIChDb2dsLkRlYnVnT2JqZWN0VHlwZUluZm8gaW5m byk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNl X3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJv b2wgTWF0ZXJpYWxMYXllckNhbGxiYWNrIChDb2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBpbnQgbGF5 ZXJfaW5kZXgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBp bnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMCIpXQorKwlwdWJs aWMgZGVsZWdhdGUgdm9pZCBGZWF0dXJlQ2FsbGJhY2sgKENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUp OworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9w b3MgPSAzLjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgZGVsZWdh dGUgdm9pZCBGcmFtZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBDb2dsLkZyYW1l RXZlbnQgZXZlbnQsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5Q2Fs bGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUluZm8gaW5m byk7CitAQCAtMTA5MiwxMiArOTgxLDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblJlc2l6ZUNh bGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3Mg PSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblgxMU1hc2tDYWxsYmFjayAo Q29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIGV2ZW50X21hc2spOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgUGlw ZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5k ZXgpOworKwlwdWJsaWMgZGVsZWdhdGUgYm9vbCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wu UGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBk ZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVm ZmVyKTsKKysJcHVibGljIGRlbGVnYXRlIGJvb2wgVGV4dHVyZTJERUdMSW1hZ2VFeHRlcm5hbEFs bG9jIChDb2dsLlRleHR1cmUyRCB0ZXhfMmQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQor IAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBVc2VyRGF0YURlc3Ryb3lDYWxsYmFjayAodm9pZCogZGF0 YSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0g IkNPR0xfQUZJUlNUX0JJVCIpXQorQEAgLTExMDgsNiArOTk1LDggQEAgbmFtZXNwYWNlIENvZ2wg eworIAlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIildCisgCXB1YmxpYyBj b25zdCBpbnQgREVQVEhfQklUOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BJWEVMX0ZPUk1BVF9NQVhfUExBTkVTIildCisrCXB1Ymxp YyBjb25zdCBpbnQgUElYRUxfRk9STUFUX01BWF9QTEFORVM7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUFJFTVVMVF9CSVQiKV0KKyAJ cHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJVCIpXQorQEAgLTExMTUs MjEgKzEwMDQsMTIgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RFWFRVUkVfTUFYX1dBU1RFIildCisg CXB1YmxpYyBjb25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgYmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNoZWNrX2V4dGVuc2lvbiAo c3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChDb2dsLkNvbG9y IGNvbG9yLCB1bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0ZXJfY2hlY2tfZXh0 ZW5zaW9uX0NMVVRURVIgKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKysJcHVibGljIHN0YXRp YyBib29sIGJsaXRfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgc3JjLCBDb2dsLkZyYW1l YnVmZmVyIGRlc3QsIGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29s IGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVyZSBm ZWF0dXJlKTsKKysJcHVibGljIHN0YXRpYyBib29sIGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0dXJl X0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJlKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K Ky0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY29sb3JfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2 Mik7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBjb2xvcl9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYy KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9pbml0X2Zy b21faHNsIChvdXQgQ29nbC5Db2xvciBjb2xvciwgZmxvYXQgaHVlLCBmbG9hdCBzYXR1cmF0aW9u LCBmbG9hdCBsdW1pbmFuY2UpOworQEAgLTExNDMsMjM0ICsxMDIzLDg3IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQg ZGVidWdfb2JqZWN0X3ByaW50X2luc3RhbmNlcyAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX2Zv ZyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmRfZ2wgKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuQm9vbCBmZWF0dXJlc19hdmFpbGFibGUgKENvZ2wuRmVhdHVyZUZsYWdzIGZlYXR1cmVzKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGZsdXNoICgpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjguMiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQs IGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGZvcmVhY2hf ZmVhdHVyZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUNhbGxiYWNrIGNhbGxi YWNrKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7 CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkICgpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgZ2V0X2JpdG1hc2tzIChvdXQgaW50IHJlZCwgb3V0IGludCBncmVlbiwgb3V0 IGludCBibHVlLCBvdXQgaW50IGFscGhhKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0K KysJcHVibGljIHN0YXRpYyBpbnQ2NCBnZXRfY2xvY2tfdGltZSAoQ29nbC5Db250ZXh0IGNvbnRl eHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKysJcHVi bGljIHN0YXRpYyBib29sIGdldF9kZXB0aF90ZXN0X2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9kcmF3X2Zy YW1lYnVmZmVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkZlYXR1cmVGbGFncyBn ZXRfZmVhdHVyZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4 ICgpOworKwlwdWJsaWMgc3RhdGljIENvZ2wuR3JhcGhpY3NSZXNldFN0YXR1cyBnZXRfZ3JhcGhp Y3NfcmVzZXRfc3RhdHVzIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMg c3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5D YWxsYmFjayBnZXRfcHJvY19hZGRyZXNzIChzdHJpbmcgcyk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4 IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCog Z2V0X3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSBvdXQgZmxvYXQgdls0XSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBndHlw ZV9tYXRyaXhfZ2V0X3R5cGUgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuQm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKysJcHVibGljIHN0YXRp YyBib29sIGhhc19mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlSUQg ZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBp c19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKysJcHVibGljIHN0YXRpYyBib29sIGlzX2NvbnRl eHQgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5Cb29sIGlzX3BpcGVsaW5lICh2b2lkKiBvYmplY3QpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLkJvb2wgaXNfdmVydGV4X2J1ZmZlcl9pbmRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUp OworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZnJhbWVfaW5mbyAodm9pZCogb2JqZWN0KTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgbWF0cml4X2VxdWFsICh2 b2lkKiB2MSwgdm9pZCogdjIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIG9ydGhvIChm bG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IG5l YXIsIGZsb2F0IGZhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnksIGZs b2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb2x5Z29uIChDb2dsLlRleHR1cmVWZXJ0ZXggdmVydGlj ZXMsIHVpbnQgbl92ZXJ0aWNlcywgQ29nbC5Cb29sIHVzZV9jb2xvcik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cG9wX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfc291cmNlICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHB1c2hfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlIChm bG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVsdGl0ZXh0dXJlX2Nv b3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29vcmRzX2xl bik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0 aF90ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIs IGZsb2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7CisrCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZWJ1ZmZlciAo dm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJl Y3RhbmdsZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1 aW50IG5fcmVjdHMpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3Rh dGljIGJvb2wgaXNfb25zY3JlZW4gKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44LjYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXNfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7 CisrCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX3Bp cGVsaW5lICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUs IGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdGV4 dHVyZV8yZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgeik7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBz dGF0aWMgYm9vbCBpc190ZXh0dXJlXzJkX3NsaWNlZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7Cisr CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJcHVibGljIHN0YXRpYyBib29sIG1hdHJpeF9l cXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9l bmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFj a2ZhY2VfY3VsbGluZ19lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9m b2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVuc2l0 eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf ZGVwdGhfdGVzdF9lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9tb2Rl bHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworKwlwdWJsaWMgc3RhdGljIHZvaWQg c2V0X3RyYWNpbmdfZGlzYWJsZWRfb25fdGhyZWFkICh2b2lkKiBkYXRhKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfcHJvamVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworKwlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X3RyYWNpbmdfZW5hYmxlZF9vbl90aHJlYWQgKHZvaWQqIGRhdGEsIHN0 cmluZyBncm91cCwgc3RyaW5nIGZpbGVuYW1lKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfc291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZs b2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf c291cmNlX2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50 OCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0dXJl IChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf dmlld3BvcnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgc3RyaW5n IHNoYWRlcl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisrCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfdHJhY2luZ19lbmFibGVkX29uX3RocmVhZF93aXRoX2ZkICh2b2lkKiBkYXRh LCBzdHJpbmcgZ3JvdXAsIGludCBmZCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJf Z2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBzaGFkZXJf aXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5I YW5kbGUgc2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFk ZXJfc291cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmluZyBzb3VyY2UpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHNoYWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBz dGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBi aXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFs X2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor IAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIs IHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25l d19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxh Z3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zv cm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CisrCXB1YmxpYyBzdGF0aWMgQ29nbC5U ZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxG b3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5U ZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1 cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBH TGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgi LCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9u ZXdfZnJvbV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lk dGgsIHVpbnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2ds LlBpeGVsRm9ybWF0IGZvcm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVy ZSB0ZXh0dXJlX25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRl eHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBh dHRyaWJ1dGVfbmFtZSwgdWludDggbl9jb21wb25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5cGUgdHlw ZSwgQ29nbC5Cb29sIG5vcm1hbGl6ZWQsIHVpbnQxNiBzdHJpZGUsIHZvaWQqIHBvaW50ZXIpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGVsZXRlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0 cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kaXNhYmxl IChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdmVydGV4X2J1ZmZlcl9kcmF3IChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNN b2RlIG1vZGUsIGludCBmaXJzdCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVm ZmVyX2RyYXdfZWxlbWVudHMgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUg bW9kZSwgQ29nbC5IYW5kbGUgaW5kaWNlcywgaW50IG1pbl9pbmRleCwgaW50IG1heF9pbmRleCwg aW50IGluZGljZXNfb2Zmc2V0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZm ZXJfZW5hYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHVpbnQgdmVydGV4X2J1ZmZlcl9nZXRfbl92ZXJ0aWNlcyAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNf Z2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNUeXBl IHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQgbl92ZXJ0 aWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCist CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX3JlZiAoQ29n bC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3N1Ym1pdCAoQ29n bC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfdW5yZWYgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS44Iiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZpZXdwb3J0ICh1 aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3Zp c3VhbF94aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ cHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF93aW5kb3dfeGlkIChDb2dsLk9u c2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHgxMV9vbnNjcmVlbl9zZXRfZm9yZWlnbl93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2Ny ZWVuLCB1aW50MzIgeGlkLCBbQ0NvZGUgKHNjb3BlID0gImFzeW5jIildIENvZ2wuT25zY3JlZW5Y MTFNYXNrQ2FsbGJhY2sgdXBkYXRlKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvcG9sa2l0LWdvYmpl Y3QtMS52YXBpIHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBpCitpbmRleCA5M2VmZjhhNS4uZmVk YzZhNGEgMTAwNjQ0CistLS0gdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkKKysrKyB2YXBpL3Bv bGtpdC1nb2JqZWN0LTEudmFwaQorQEAgLTcsNyArNyw3IEBAIG5hbWVzcGFjZSBQb2xraXQgewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVk IEFjdGlvbkRlc2NyaXB0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9hY3Rp b25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Fubm90YXRpb24gKHN0cmlu ZyBrZXkpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRfYW5ub3RhdGlvbiAoc3RyaW5n IGtleSk7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1p bmF0ZWQgPSB0cnVlKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZ1tdIGdldF9hbm5vdGF0aW9u X2tleXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOwor QEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlwdWJsaWMgUG9sa2l0LkF1 dGhvcml0eUZlYXR1cmVzIGdldF9iYWNrZW5kX2ZlYXR1cmVzICgpOworIAkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9iYWNrZW5kX25hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2JhY2tlbmRfdmVyc2lvbiAoKTsKKy0JCXB1YmxpYyBzdHJpbmcgZ2V0X293bmVyICgpOwor KwkJcHVibGljIHN0cmluZz8gZ2V0X293bmVyICgpOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQu QXV0aG9yaXR5IGdldF9zeW5jIChHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwp IHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIGFzeW5jIGJvb2wgcmVnaXN0ZXJfYXV0aGVu dGljYXRpb25fYWdlbnQgKFBvbGtpdC5TdWJqZWN0IHN1YmplY3QsIHN0cmluZyBsb2NhbGUsIHN0 cmluZyBvYmplY3RfcGF0aCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBH TGliLkVycm9yOworIAkJcHVibGljIGJvb2wgcmVnaXN0ZXJfYXV0aGVudGljYXRpb25fYWdlbnRf c3luYyAoUG9sa2l0LlN1YmplY3Qgc3ViamVjdCwgc3RyaW5nIGxvY2FsZSwgc3RyaW5nIG9iamVj dF9wYXRoLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGli LkVycm9yOworQEAgLTU2LDIxICs1NiwyMiBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJcHVibGlj IGNsYXNzIEF1dGhvcml6YXRpb25SZXN1bHQgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgQXV0aG9yaXphdGlvblJl c3VsdCAoYm9vbCBpc19hdXRob3JpemVkLCBib29sIGlzX2NoYWxsZW5nZSwgUG9sa2l0LkRldGFp bHM/IGRldGFpbHMpOworLQkJcHVibGljIHVub3duZWQgUG9sa2l0LkRldGFpbHMgZ2V0X2RldGFp bHMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBQb2xraXQuRGV0YWlscz8gZ2V0X2RldGFpbHMgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMDEiKV0KKyAJCXB1YmxpYyBib29sIGdldF9kaXNt aXNzZWQgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfaXNfYXV0aG9yaXplZCAoKTsKKyAJCXB1Ymxp YyBib29sIGdldF9pc19jaGFsbGVuZ2UgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcmV0YWluc19h dXRob3JpemF0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90ZW1wb3Jhcnlf YXV0aG9yaXphdGlvbl9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZz8gZ2V0X3RlbXBv cmFyeV9hdXRob3JpemF0aW9uX2lkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJwb2xraXQvcG9sa2l0LmgiLCB0eXBlX2lkID0gInBvbGtpdF9kZXRhaWxzX2dldF90eXBl ICgpIildCisgCXB1YmxpYyBjbGFzcyBEZXRhaWxzIDogR0xpYi5PYmplY3QgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIERldGFpbHMgKCk7 CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQg PSB0cnVlKV0KKy0JCXB1YmxpYyBzdHJpbmdbXSBnZXRfa2V5cyAoKTsKKysJCXB1YmxpYyBzdHJp bmdbXT8gZ2V0X2tleXMgKCk7CisgCQlwdWJsaWMgdm9pZCBpbnNlcnQgKHN0cmluZyBrZXksIHN0 cmluZz8gdmFsdWUpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGxvb2t1cCAoc3RyaW5nIGtl eSk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGxvb2t1cCAoc3RyaW5nIGtleSk7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQg PSAicG9sa2l0X3Blcm1pc3Npb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFBlcm1p c3Npb24gOiBHTGliLlBlcm1pc3Npb24sIEdMaWIuQXN5bmNJbml0YWJsZSwgR0xpYi5Jbml0YWJs ZSB7CitAQCAtODgsNyArODksOCBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTeXN0ZW1CdXNOYW1l ICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIFBv bGtpdC5TdWJqZWN0IGdldF9wcm9jZXNzX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxh YmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgUG9sa2l0LlN1YmplY3Q/ IGdldF9wcm9jZXNzX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkg dGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgUG9sa2l0LlVuaXhVc2VyPyBnZXRfdXNlcl9z eW5jIChHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVy cm9yOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBAbmV3IChzdHJpbmcgbmFtZSk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIHN0cmlu ZyBuYW1lIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CitAQCAtMTQ2LDkgKzE0OCwxMCBAQCBuYW1l c3BhY2UgUG9sa2l0IHsKKyAJCXByb3RlY3RlZCBVbml4U2Vzc2lvbiAoKTsKKyAJCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfc2Vzc2lvbl9pZCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgUG9sa2l0 LlN1YmplY3QgQG5ldyAoc3RyaW5nIHNlc3Npb25faWQpOworLQkJcHVibGljIHN0YXRpYyBhc3lu YyBQb2xraXQuU3ViamVjdCBuZXdfZm9yX3Byb2Nlc3MgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFi bGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1YmxpYyBzdGF0aWMgUG9s a2l0LlN1YmplY3QgbmV3X2Zvcl9wcm9jZXNzX3N5bmMgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFi bGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgc3Rh dGljIGFzeW5jIFBvbGtpdC5TdWJqZWN0PyBuZXdfZm9yX3Byb2Nlc3MgKGludCBwaWQsIEdMaWIu Q2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBz dGF0aWMgUG9sa2l0LlN1YmplY3Q/IG5ld19mb3JfcHJvY2Vzc19zeW5jIChpbnQgcGlkLCBHTGli LkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworIAkJ cHVibGljIHZvaWQgc2V0X3Nlc3Npb25faWQgKHN0cmluZyBzZXNzaW9uX2lkKTsKKysJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJcHVibGljIGludCBwaWQgeyBjb25zdHJ1Y3Q7IH0KKyAJCXB1Ymxp YyBzdHJpbmcgc2Vzc2lvbl9pZCB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAl9CitAQCAtMTU2 LDE3ICsxNTksMTcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCXB1YmxpYyBjbGFzcyBVbml4VXNl ciA6IEdMaWIuT2JqZWN0LCBQb2xraXQuSWRlbnRpdHkgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFVuaXhVc2VyICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5n PyBnZXRfbmFtZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3VpZCAoKTsKKyAJCXB1YmxpYyBzdGF0 aWMgUG9sa2l0LklkZW50aXR5IEBuZXcgKGludCB1aWQpOworLQkJcHVibGljIHN0YXRpYyBQb2xr aXQuSWRlbnRpdHkgbmV3X2Zvcl9uYW1lIChzdHJpbmcgbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7 CisrCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8gbmV3X2Zvcl9uYW1lIChzdHJpbmcg bmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgdm9pZCBzZXRfdWlkIChpbnQgdWlk KTsKKyAJCXB1YmxpYyBpbnQgdWlkIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9s a2l0X2lkZW50aXR5X2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgSWRlbnRpdHkg OiBHTGliLk9iamVjdCB7CisgCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBlcXVhbCAoUG9sa2l0Lklk ZW50aXR5IGIpOworLQkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgZnJvbV9zdHJpbmcg KHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyBQb2xraXQu SWRlbnRpdHk/IGZyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJ CXB1YmxpYyBhYnN0cmFjdCB1aW50IGhhc2ggKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgc3RyaW5n IHRvX3N0cmluZyAoKTsKKyAJfQorQEAgLTIwMSw3ICsyMDQsNyBAQCBuYW1lc3BhY2UgUG9sa2l0 IHsKKyAJCUFETUlOSVNUUkFUT1JfQVVUSEVOVElDQVRJT05fUkVRVUlSRURfUkVUQUlORUQsCisg CQlBVVRIT1JJWkVEOworIAkJcHVibGljIHN0YXRpYyBib29sIGZyb21fc3RyaW5nIChzdHJpbmcg c3RyaW5nLCBQb2xraXQuSW1wbGljaXRBdXRob3JpemF0aW9uIG91dF9pbXBsaWNpdF9hdXRob3Jp emF0aW9uKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nIChQb2xr aXQuSW1wbGljaXRBdXRob3JpemF0aW9uIGltcGxpY2l0X2F1dGhvcml6YXRpb24pOworKwkJcHVi bGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgY3ByZWZpeCA9ICJQT0xLSVRfRVJST1JfIild CisgCXB1YmxpYyBlcnJvcmRvbWFpbiBFcnJvciB7CitAQCAtMjEyLDcgKzIxNSw3IEBAIG5hbWVz cGFjZSBQb2xraXQgeworIAkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiKV0KKy0JcHVi bGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgaWRlbnRpdHlfZnJvbV9zdHJpbmcgKHN0cmluZyBz dHIpIHRocm93cyBHTGliLkVycm9yOworKwlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8g aWRlbnRpdHlfZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIildCisgCXB1YmxpYyBz dGF0aWMgUG9sa2l0LlN1YmplY3Qgc3ViamVjdF9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhy b3dzIEdMaWIuRXJyb3I7CisgfQorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9i dWRnaWUtZGVza3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUK aW5kZXggYjMyZTc3MzRkM2IuLmFlNWE5ZDVmNzY5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2J1ZGdp ZS1kZXNrdG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdidWRnaWUtZGVza3RvcCcKIHBr Z25hbWU9YnVkZ2llLWRlc2t0b3AKIHZlcnNpb249MTAuNS4xCi1yZXZpc2lvbj0zCityZXZpc2lv bj00CiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPWdpcgogY29uZmlndXJlX2FyZ3M9 Ii1Ed2l0aC1ndGstZG9jPWZhbHNlIC1Ed2l0aC1kZXNrdG9wLWljb25zPW5vbmUiCg== --===============7292310585723094593==--