From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Denis Arnaud To: git-commits@fedoraproject.org Subject: [rpms/soci] epel10: - First import into Fedora Date: Sat, 27 Jun 2026 21:54:45 GMT Message-ID: <178259728567.1.16180851727440810845.rpms-soci-d275e621b594@fedoraproject.org> List-ID: X-Git-Repo: rpms/soci X-Git-Branch: epel10 X-Git-Rev: d275e621b5946683cf01eb1e7baaad6fc2a7802e QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvc29jaQpCcmFuY2gg OiBlcGVsMTAKQ29tbWl0IDogZDI3NWU2MjFiNTk0NjY4M2NmMDFlYjFlN2JhYWFkNmZjMmE3ODAy ZQpBdXRob3IgOiBEZW5pcyBBcm5hdWQgPGRlbmlzYXJuYXVkQGZlZG9yYXByb2plY3Qub3JnPgpE YXRlICAgOiAyMDA5LTA1LTA0VDIxOjU2OjExKzAwOjAwClN0YXRzICA6ICs2MDU2Mi8tMCBpbiA2 IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9zb2Np L2MvZDI3NWU2MjFiNTk0NjY4M2NmMDFlYjFlN2JhYWFkNmZjMmE3ODAyZT9icmFuY2g9ZXBlbDEw CgpMb2c6Ci0gRmlyc3QgaW1wb3J0IGludG8gRmVkb3JhCgotLS0KZGlmZiAtLWdpdCBhLy5jdnNp Z25vcmUgYi8uY3ZzaWdub3JlCmluZGV4IGU2OWRlMjkuLjlhZjQxYTMgMTAwNjQ0Ci0tLSBhLy5j dnNpZ25vcmUKKysrIGIvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitzb2NpLTMuMC4wLnRhci5n egoKZGlmZiAtLWdpdCBhL2ltcG9ydC5sb2cgYi9pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjRjMzFjNzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQubG9n CkBAIC0wLDAgKzEgQEAKK3NvY2ktM18wXzAtNl9mYzEwOkhFQUQ6c29jaS0zLjAuMC02LmZjMTAu c3JjLnJwbToxMjQxNDczOTE1CgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC1maXgtZ2NjNDMtY29t cGF0aWJpbGl0eS5wYXRjaCBiL3NvY2ktMy4wLjAtZml4LWdjYzQzLWNvbXBhdGliaWxpdHkucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMzOGM0MQotLS0gL2Rldi9u dWxsCisrKyBiL3NvY2ktMy4wLjAtZml4LWdjYzQzLWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAs MCArMSw0NyBAQAorZGlmZiAtdSAtciBzb2NpLTMuMC4wX3JlZi9zcmMvYmFja2VuZHMvbXlzcWwv Y29tbW9uLmggc29jaS0zLjAuMF93b3JraW5nL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAor LS0tIHNvY2ktMy4wLjBfcmVmL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaCAgMjAwOC0wNy0w MyAwOToyMjo1Ny4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3dvcmtpbmcvc3JjL2Jh Y2tlbmRzL215c3FsL2NvbW1vbi5oICAgICAgMjAwOS0wMy0yNiAxNTozMzozMy4wMDAwMDAwMDAg KzAxMDAKK0BAIC0xMCw2ICsxMCw3IEBACisKKyAjaW5jbHVkZSA8c3N0cmVhbT4KKyAjaW5jbHVk ZSAic29jaS1teXNxbC5oIgorKyNpbmNsdWRlIDxjdGltZT4KKworIG5hbWVzcGFjZSBzb2NpCisg eworZGlmZiAtdSAtciBzb2NpLTMuMC4wX3JlZi9zcmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5j cHAgc29jaS0zLjAuMF93b3JraW5nL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAorLS0t IHNvY2ktMy4wLjBfcmVmL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCAgICAgICAyMDA4 LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfd29ya2luZy9z cmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgICAyMDA5LTAzLTI2IDE1OjM0OjUwLjAwMDAw MDAwMCArMDEwMAorQEAgLTExLDcgKzExLDggQEAKKyAjaW5jbHVkZSA8Y2N0eXBlPgorICNpbmNs dWRlIDxjZXJybm8+CisgI2luY2x1ZGUgPGNpc282NDY+CistCisrI2luY2x1ZGUgPGNzdGRsaWI+ CisrI2luY2x1ZGUgPGNsaW1pdHM+CisKKyAjaWZkZWYgX01TQ19WRVIKKyAjcHJhZ21hIHdhcm5p bmcoZGlzYWJsZTo0MzU1KQorZGlmZiAtdSAtciBzb2NpLTMuMC4wX3JlZi9zcmMvYmFja2VuZHMv bXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3dvcmtpbmcvc3JjL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wX3JlZi9zcmMv YmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCAgICAyMDA4LTA1LTMwIDEzOjMz OjQ1LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfd29ya2luZy9zcmMvYmFja2VuZHMv bXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCAgICAgICAgMjAwOS0wMy0yNiAxNTozNDowOS4w MDAwMDAwMDAgKzAxMDAKK0BAIC0xMiw2ICsxMiw4IEBACisgI2luY2x1ZGUgImNvbW1vbi5oIgor ICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxjYXNzZXJ0PgorKyNpbmNsdWRlIDxjdGlt ZT4KKysjaW5jbHVkZSA8Y3N0cmluZz4KKworICNpZmRlZiBfTVNDX1ZFUgorICNwcmFnbWEgd2Fy bmluZyhkaXNhYmxlOjQzNTUpCitkaWZmIC11IC1yIHNvY2ktMy4wLjBfcmVmL3NyYy9iYWNrZW5k cy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfd29ya2luZy9zcmMvYmFja2Vu ZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfcmVmL3NyYy9iYWNr ZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwICAgICAgIDIwMDgtMDUtMTUgMTU6NTg6Mzgu MDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF93b3JraW5nL3NyYy9iYWNrZW5kcy9teXNx bC92ZWN0b3ItdXNlLXR5cGUuY3BwICAgMjAwOS0wMy0yNiAxNTozMzoxNC4wMDAwMDAwMDAgKzAx MDAKK0BAIC0xMyw2ICsxMyw3IEBACisgI2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGxp bWl0cz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KKysjaW5jbHVkZSA8Y3RpbWU+CisKKyAjaWZkZWYg X01TQ19WRVIKKyAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzU1KQoKZGlmZiAtLWdpdCBhL3Nv Y2ktMy4wLjAtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaCBiL3NvY2ktMy4w LjAtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi40YzMxZmY1Ci0tLSAvZGV2L251bGwKKysrIGIvc29jaS0zLjAu MC1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoCkBAIC0wLDAgKzEsNjAyMTgg QEAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2FsLm00IHNvY2ktMy4wLjBfdHJl cDMwMC9hY2xvY2FsLm00CistLS0gc29jaS0zLjAuMF80LXBhY2svYWNsb2NhbC5tNAkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9hY2xv Y2FsLm00CTIwMDktMDUtMDMgMDA6MjA6MzMuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDc1 MTIgQEAKKysjIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IGFjbG9jYWwgMS4xMC4xIC0qLSBB dXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwg MjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwKKysjIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgg IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29m dHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBw ZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhv dXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisr CisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBw ZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0Uu CisrCisrbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKKysgIFttNF9jb3B5KFttNF9Q QUNLQUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlkbmwKKyttNF9pZihBQ19B VVRPQ09ORl9WRVJTSU9OLCBbMi42M10sLAorK1ttNF93YXJuaW5nKFt0aGlzIGZpbGUgd2FzIGdl bmVyYXRlZCBmb3IgYXV0b2NvbmYgMi42My4KKytZb3UgaGF2ZSBhbm90aGVyIHZlcnNpb24gb2Yg YXV0b2NvbmYuICBJdCBtYXkgd29yaywgYnV0IGlzIG5vdCBndWFyYW50ZWVkIHRvLgorK0lmIHlv dSBoYXZlIHByb2JsZW1zLCB5b3UgbWF5IG5lZWQgdG8gcmVnZW5lcmF0ZSB0aGUgYnVpbGQgc3lz dGVtIGVudGlyZWx5LgorK1RvIGRvIHNvLCB1c2UgdGhlIHByb2NlZHVyZSBkb2N1bWVudGVkIGJ5 IHRoZSBwYWNrYWdlLCB0eXBpY2FsbHkgYGF1dG9yZWNvbmYnLl0pXSkKKysKKysjIGxpYnRvb2wu bTQgLSBDb25maWd1cmUgbGlidG9vbCBmb3IgdGhlIGhvc3Qgc3lzdGVtLiAtKi1BdXRvY29uZi0q LQorKworKyMgc2VyaWFsIDUyIEFDX1BST0dfTElCVE9PTAorKworKworKyMgQUNfUFJPVklERV9J RkVMU0UoTUFDUk8tTkFNRSwgSUYtUFJPVklERUQsIElGLU5PVC1QUk9WSURFRCkKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBJZiB0aGlzIG1hY3JvIGlzIG5vdCBkZWZpbmVkIGJ5IEF1dG9jb25mLCBkZWZpbmUgaXQgaGVy ZS4KKyttNF9pZmRlZihbQUNfUFJPVklERV9JRkVMU0VdLAorKyAgICAgICAgIFtdLAorKyAgICAg ICAgIFttNF9kZWZpbmUoW0FDX1BST1ZJREVfSUZFTFNFXSwKKysJICAgICAgICAgW200X2lmZGVm KFtBQ19QUk9WSURFXyQxXSwKKysJCSAgICAgICAgICAgWyQyXSwgWyQzXSldKV0pCisrCisrCisr IyBBQ19QUk9HX0xJQlRPT0wKKysjIC0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtBQ19QUk9H X0xJQlRPT0xdLAorK1tBQ19SRVFVSVJFKFtfQUNfUFJPR19MSUJUT09MXSlkbmwKKytkbmwgSWYg QUNfUFJPR19DWFggaGFzIGFscmVhZHkgYmVlbiBleHBhbmRlZCwgcnVuIEFDX0xJQlRPT0xfQ1hY CisrZG5sIGltbWVkaWF0ZWx5LCBvdGhlcndpc2UsIGhvb2sgaXQgaW4gYXQgdGhlIGVuZCBvZiBB Q19QUk9HX0NYWC4KKysgIEFDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCisrICAgIFtB Q19MSUJUT09MX0NYWF0sCisrICAgIFtkZWZpbmUoW0FDX1BST0dfQ1hYXSwgZGVmbihbQUNfUFJP R19DWFhdKVtBQ19MSUJUT09MX0NYWAorKyAgXSldKQorK2RubCBBbmQgYSBzaW1pbGFyIHNldHVw IGZvciBGb3J0cmFuIDc3IHN1cHBvcnQKKysgIEFDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0Y3 N10sCisrICAgIFtBQ19MSUJUT09MX0Y3N10sCisrICAgIFtkZWZpbmUoW0FDX1BST0dfRjc3XSwg ZGVmbihbQUNfUFJPR19GNzddKVtBQ19MSUJUT09MX0Y3NworK10pXSkKKysKKytkbmwgUXVvdGUg QV1bTV9QUk9HX0dDSiBzbyB0aGF0IGFjbG9jYWwgZG9lc24ndCBicmluZyBpdCBpbiBuZWVkbGVz c2x5LgorK2RubCBJZiBlaXRoZXIgQUNfUFJPR19HQ0ogb3IgQV1bTV9QUk9HX0dDSiBoYXZlIGFs cmVhZHkgYmVlbiBleHBhbmRlZCwgcnVuCisrZG5sIEFDX0xJQlRPT0xfR0NKIGltbWVkaWF0ZWx5 LCBvdGhlcndpc2UsIGhvb2sgaXQgaW4gYXQgdGhlIGVuZCBvZiBib3RoLgorKyAgQUNfUFJPVklE RV9JRkVMU0UoW0FDX1BST0dfR0NKXSwKKysgICAgW0FDX0xJQlRPT0xfR0NKXSwKKysgICAgW0FD X1BST1ZJREVfSUZFTFNFKFtBXVtNX1BST0dfR0NKXSwKKysgICAgICBbQUNfTElCVE9PTF9HQ0pd LAorKyAgICAgIFtBQ19QUk9WSURFX0lGRUxTRShbTFRfQUNfUFJPR19HQ0pdLAorKwlbQUNfTElC VE9PTF9HQ0pdLAorKyAgICAgIFtpZmRlZihbQUNfUFJPR19HQ0pdLAorKwkgICAgIFtkZWZpbmUo W0FDX1BST0dfR0NKXSwgZGVmbihbQUNfUFJPR19HQ0pdKVtBQ19MSUJUT09MX0dDSl0pXSkKKysg ICAgICAgaWZkZWYoW0FdW01fUFJPR19HQ0pdLAorKwkgICAgIFtkZWZpbmUoW0FdW01fUFJPR19H Q0pdLCBkZWZuKFtBXVtNX1BST0dfR0NKXSlbQUNfTElCVE9PTF9HQ0pdKV0pCisrICAgICAgIGlm ZGVmKFtMVF9BQ19QUk9HX0dDSl0sCisrCSAgICAgW2RlZmluZShbTFRfQUNfUFJPR19HQ0pdLAor KwkJZGVmbihbTFRfQUNfUFJPR19HQ0pdKVtBQ19MSUJUT09MX0dDSl0pXSldKV0pCisrXSldKSMg QUNfUFJPR19MSUJUT09MCisrCisrCisrIyBfQUNfUFJPR19MSUJUT09MCisrIyAtLS0tLS0tLS0t LS0tLS0tCisrQUNfREVGVU4oW19BQ19QUk9HX0xJQlRPT0xdLAorK1tBQ19SRVFVSVJFKFtBQ19M SUJUT09MX1NFVFVQXSlkbmwKKytBQ19CRUZPUkUoWyQwXSxbQUNfTElCVE9PTF9DWFhdKWRubAor K0FDX0JFRk9SRShbJDBdLFtBQ19MSUJUT09MX0Y3N10pZG5sCisrQUNfQkVGT1JFKFskMF0sW0FD X0xJQlRPT0xfR0NKXSlkbmwKKysKKysjIFRoaXMgY2FuIGJlIHVzZWQgdG8gcmVidWlsZCBsaWJ0 b29sIHdoZW4gbmVlZGVkCisrTElCVE9PTF9ERVBTPSIkYWNfYXV4X2Rpci9sdG1haW4uc2giCisr CisrIyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4KKytMSUJUT09MPSckKFNIRUxMKSAkKHRv cF9idWlsZGRpcikvbGlidG9vbCcKKytBQ19TVUJTVChMSUJUT09MKWRubAorKworKyMgUHJldmVu dCBtdWx0aXBsZSBleHBhbnNpb24KKytkZWZpbmUoW0FDX1BST0dfTElCVE9PTF0sIFtdKQorK10p IyBfQUNfUFJPR19MSUJUT09MCisrCisrCisrIyBBQ19MSUJUT09MX1NFVFVQCisrIyAtLS0tLS0t LS0tLS0tLS0tCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfU0VUVVBdLAorK1tBQ19QUkVSRVEoMi41 MClkbmwKKytBQ19SRVFVSVJFKFtBQ19FTkFCTEVfU0hBUkVEXSlkbmwKKytBQ19SRVFVSVJFKFtB Q19FTkFCTEVfU1RBVElDXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19FTkFCTEVfRkFTVF9JTlNUQUxM XSlkbmwKKytBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisrQUNfUkVRVUlSRShb QUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKKytB Q19SRVFVSVJFKFtBQ19QUk9HX0xEXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0xEX1JFTE9B RF9GTEFHXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX05NXSlkbmwKKysKKytBQ19SRVFVSVJF KFtBQ19QUk9HX0xOX1NdKWRubAorK0FDX1JFUVVJUkUoW0FDX0RFUExJQlNfQ0hFQ0tfTUVUSE9E XSlkbmwKKysjIEF1dG9jb25mIDIuMTMncyBBQ19PQkpFWFQgYW5kIEFDX0VYRUVYVCBtYWNyb3Mg b25seSB3b3JrcyBmb3IgQyBjb21waWxlcnMhCisrQUNfUkVRVUlSRShbQUNfT0JKRVhUXSlkbmwK KytBQ19SRVFVSVJFKFtBQ19FWEVFWFRdKWRubAorK2RubAorK0FDX0xJQlRPT0xfU1lTX01BWF9D TURfTEVOCisrQUNfTElCVE9PTF9TWVNfR0xPQkFMX1NZTUJPTF9QSVBFCisrQUNfTElCVE9PTF9P QkpESVIKKysKKytBQ19SRVFVSVJFKFtfTFRfQUNfU1lTX0NPTVBJTEVSXSlkbmwKKytfTFRfQUNf UFJPR19FQ0hPX0JBQ0tTTEFTSAorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgzKikKKysgICMg QUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0u ICBGb3Igc29tZQorKyAgIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZp cm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCisrICAjIHZhbmlzaCBpbiBhIHB1ZmYgb2Yg c21va2UuCisrICBpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4K KysgICAgQ09MTEVDVF9OQU1FUz0KKysgICAgZXhwb3J0IENPTExFQ1RfTkFNRVMKKysgIGZpCisr ICA7OworK2VzYWMKKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1 c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisrIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFy ZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KKytYc2VkPSdzZWQg LWUgMXMvXlgvLycKKytbc2VkX3F1b3RlX3N1YnN0PSdzL1woW1xcIlxcYCRcXFxcXVwpL1xcXDEv ZyddCisrCisrIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVy ZW5jZXMuCisrW2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFtcXCJcXGBcXFxcXVwpL1xcXDEvZydd CisrCisrIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVk IHNoZWxsIHZhcmlhYmxlIGluIGEKKysjIGRvdWJsZV9xdW90ZV9zdWJzdCdlZCBzdHJpbmcuCisr ZGVsYXlfdmFyaWFibGVfc3Vic3Q9J3MvXFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKKysKKysjIFNl ZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhw cmVzc2lvbnMKKytub19nbG9iX3N1YnN0PSdzL1wqL1xcXCovZycKKysKKysjIENvbnN0YW50czoK KytybT0icm0gLWYiCisrCisrIyBHbG9iYWwgdmFyaWFibGVzOgorK2RlZmF1bHRfb2ZpbGU9bGli dG9vbAorK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCisrCisrIyBBbGwga25vd24gbGlua2VycyByZXF1 aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCisrIyB3 aGljaCBuZWVkcyAnLmxpYicpLgorK2xpYmV4dD1hCisrbHRtYWluPSIkYWNfYXV4X2Rpci9sdG1h aW4uc2giCisrb2ZpbGU9IiRkZWZhdWx0X29maWxlIgorK3dpdGhfZ251X2xkPSIkbHRfY3ZfcHJv Z19nbnVfbGQiCisrCisrQUNfQ0hFQ0tfVE9PTChBUiwgYXIsIGZhbHNlKQorK0FDX0NIRUNLX1RP T0woUkFOTElCLCByYW5saWIsIDopCisrQUNfQ0hFQ0tfVE9PTChTVFJJUCwgc3RyaXAsIDopCisr Cisrb2xkX0NDPSIkQ0MiCisrb2xkX0NGTEFHUz0iJENGTEFHUyIKKysKKysjIFNldCBzYW5lIGRl ZmF1bHRzIGZvciB2YXJpb3VzIHZhcmlhYmxlcworK3Rlc3QgLXogIiRBUiIgJiYgQVI9YXIKKyt0 ZXN0IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQorK3Rlc3QgLXogIiRBUyIgJiYgQVM9 YXMKKyt0ZXN0IC16ICIkQ0MiICYmIENDPWNjCisrdGVzdCAteiAiJExUQ0MiICYmIExUQ0M9JEND CisrdGVzdCAteiAiJExUQ0ZMQUdTIiAmJiBMVENGTEFHUz0kQ0ZMQUdTCisrdGVzdCAteiAiJERM TFRPT0wiICYmIERMTFRPT0w9ZGxsdG9vbAorK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKKyt0ZXN0 IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCisrdGVzdCAteiAiJE1BR0lDX0NNRCIgJiYgTUFH SUNfQ01EPWZpbGUKKyt0ZXN0IC16ICIkTk0iICYmIE5NPW5tCisrdGVzdCAteiAiJFNFRCIgJiYg U0VEPXNlZAorK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKKyt0ZXN0IC16 ICIkUkFOTElCIiAmJiBSQU5MSUI9OgorK3Rlc3QgLXogIiRTVFJJUCIgJiYgU1RSSVA9OgorK3Rl c3QgLXogIiRhY19vYmpleHQiICYmIGFjX29iamV4dD1vCisrCisrIyBEZXRlcm1pbmUgY29tbWFu ZHMgdG8gY3JlYXRlIG9sZC1zdHlsZSBzdGF0aWMgYXJjaGl2ZXMuCisrb2xkX2FyY2hpdmVfY21k cz0nJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMnCisrb2xkX3Bvc3RpbnN0YWxsX2NtZHM9 J2NobW9kIDY0NCAkb2xkbGliJworK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9CisrCisraWYgdGVz dCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIG9wZW5ic2QqKQor KyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElC IC10IFwkb2xkbGliIgorKyAgICA7OworKyAgKikKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9 IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKKysgICAgOzsKKysgIGVz YWMKKysgIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkb2xk bGliIgorK2ZpCisrCisrX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQorKworKyMgT25seSBw ZXJmb3JtIHRoZSBjaGVjayBmb3IgZmlsZSwgaWYgdGhlIGNoZWNrIG1ldGhvZCByZXF1aXJlcyBp dAorK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrZmlsZV9tYWdpYyopCisrICBpZiB0 ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCisrICAgIEFDX1BBVEhf TUFHSUMKKysgIGZpCisrICA7OworK2VzYWMKKysKKytfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNL UworKworK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19MSUJUT09MX0RMT1BFTl0sIGVuYWJsZV9kbG9w ZW49eWVzLCBlbmFibGVfZGxvcGVuPW5vKQorK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19MSUJUT09M X1dJTjMyX0RMTF0sCisrZW5hYmxlX3dpbjMyX2RsbD15ZXMsIGVuYWJsZV93aW4zMl9kbGw9bm8p CisrCisrQUNfQVJHX0VOQUJMRShbbGlidG9vbC1sb2NrXSwKKysgICAgW0FDX0hFTFBfU1RSSU5H KFstLWRpc2FibGUtbGlidG9vbC1sb2NrXSwKKysJW2F2b2lkIGxvY2tpbmcgKG1pZ2h0IGJyZWFr IHBhcmFsbGVsIGJ1aWxkcyldKV0pCisrdGVzdCAieCRlbmFibGVfbGlidG9vbF9sb2NrIiAhPSB4 bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15ZXMKKysKKytBQ19BUkdfV0lUSChbcGljXSwKKysg ICAgW0FDX0hFTFBfU1RSSU5HKFstLXdpdGgtcGljXSwKKysJW3RyeSB0byB1c2Ugb25seSBQSUMv bm9uLVBJQyBvYmplY3RzIEA8OkBkZWZhdWx0PXVzZSBib3RoQDo+QF0pXSwKKysgICAgW3BpY19t b2RlPSIkd2l0aHZhbCJdLAorKyAgICBbcGljX21vZGU9ZGVmYXVsdF0pCisrdGVzdCAteiAiJHBp Y19tb2RlIiAmJiBwaWNfbW9kZT1kZWZhdWx0CisrCisrIyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQg Y29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKKyt0YWduYW1lPQorK0FDX0xJQlRP T0xfTEFOR19DX0NPTkZJRworK19MVF9BQ19UQUdDT05GSUcKKytdKSMgQUNfTElCVE9PTF9TRVRV UAorKworKworKyMgX0xUX0FDX1NZU19DT01QSUxFUgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQor K0FDX0RFRlVOKFtfTFRfQUNfU1lTX0NPTVBJTEVSXSwKKytbQUNfUkVRVUlSRShbQUNfUFJPR19D Q10pZG5sCisrCisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KKytM VENDPSR7TFRDQy0iJENDIn0KKysKKysjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVj aWZpZWQsIHVzZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9CisrCisr IyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytjb21waWxl cj0kQ0MKKytdKSMgX0xUX0FDX1NZU19DT01QSUxFUgorKworKworKyMgX0xUX0NDX0JBU0VOQU1F KENDKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2FsY3VsYXRlIGNjX2Jhc2VuYW1lLiAg U2tpcCBrbm93biBjb21waWxlciB3cmFwcGVycyBhbmQgY3Jvc3MtcHJlZml4LgorK0FDX0RFRlVO KFtfTFRfQ0NfQkFTRU5BTUVdLAorK1tmb3IgY2NfdGVtcCBpbiAkMSIiOyBkbworKyAgY2FzZSAk Y2NfdGVtcCBpbgorKyAgICBjb21waWxlIHwgKltbXFwvXV1jb21waWxlIHwgY2NhY2hlIHwgKltb XFwvXV1jY2FjaGUgKSA7OworKyAgICBkaXN0Y2MgfCAqW1tcXC9dXWRpc3RjYyB8IHB1cmlmeSB8 ICpbW1xcL11dcHVyaWZ5ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAqKSBicmVhazs7CisrICBl c2FjCisrZG9uZQorK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdz JS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorK10pCisrCisrCisrIyBfTFRfQ09NUElM RVJfQk9JTEVSUExBVEUKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgZm9y IGNvbXBpbGVyIGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRoCisrIyB0aGUgc2lt cGxlIGNvbXBpbGVyIHRlc3QgY29kZS4KKytBQ19ERUZVTihbX0xUX0NPTVBJTEVSX0JPSUxFUlBM QVRFXSwKKytbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRubAorK2FjX291dGZpbGU9Y29u ZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5j b25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRT RUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2NvbXBpbGVyX2JvaWxlcnBs YXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRybSBjb25mdGVzdCoKKytdKSMgX0xUX0NPTVBJTEVS X0JPSUxFUlBMQVRFCisrCisrCisrIyBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayBmb3IgbGlua2VyIGJvaWxlcnBsYXRlIG91dHB1dCBv ciB3YXJuaW5ncyB3aXRoCisrIyB0aGUgc2ltcGxlIGxpbmsgdGVzdCBjb2RlLgorK0FDX0RFRlVO KFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSwKKytbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURd KWRubAorK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRsdF9zaW1wbGVf bGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2xpbmsiIDI+JjEg Pi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2xp bmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskcm0gLXIgY29uZnRlc3QqCisr XSkjIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKKysKKysjIF9MVF9SRVFVSVJFRF9EQVJXSU5fQ0hF Q0tTCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgZm9yIHNvbWUgdGhp bmdzIG9uIGRhcndpbgorK0FDX0RFRlVOKFtfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLU10sWwor KyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBkYXJ3aW4qKQorKyAgICBBQ19D SEVDS19UT09MKFtEU1lNVVRJTF0sIFtkc3ltdXRpbF0sIFs6XSkKKysgICAgQUNfQ0hFQ0tfVE9P TChbTk1FRElUXSwgW25tZWRpdF0sIFs6XSkKKysKKysgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciAt c2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZ10sW2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2RdLAor KyAgICAgIFtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPW5vCisrICAgICAgaWYgdGVzdCAteiAi JHtMVF9NVUxUSV9NT0RVTEV9IjsgdGhlbgorKyAgICMgQnkgZGVmYXVsdCB3ZSB3aWxsIGFkZCB0 aGUgLXNpbmdsZV9tb2R1bGUgZmxhZy4gWW91IGNhbiBvdmVycmlkZQorKyAgICMgYnkgZWl0aGVy IHNldHRpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIExUX01VTFRJX01PRFVMRQorKyAgICMg bm9uLWVtcHR5IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBieSBhZGRpbmcgLW11bHRpX21vZHVsZSB0 byB0aGUKKysgICAjIGxpbmsgZmxhZ3MuCisrICAgZWNobyAiaW50IGZvbyh2b2lkKXtyZXR1cm4g MTt9IiA+IGNvbmZ0ZXN0LmMKKysgICAkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29u ZnRlc3QuZHlsaWIgXAorKyAgICAgLWR5bmFtaWNsaWIgJHt3bH0tc2luZ2xlX21vZHVsZSBjb25m dGVzdC5jCisrICAgaWYgdGVzdCAtZiBsaWJjb25mdGVzdC5keWxpYjsgdGhlbgorKyAgICAgbHRf Y3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKKysgICAgIHJtIC1yZiBsaWJjb25mdGVzdC5keWxp YioKKysgICBmaQorKyAgIHJtIGNvbmZ0ZXN0LmMKKysgICAgICBmaV0pCisrICAgIEFDX0NBQ0hF X0NIRUNLKFtmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZ10sCisrICAgICAg W2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdF0sCisrICAgICAgW2x0X2N2X2xkX2V4cG9y dGVkX3N5bWJvbHNfbGlzdD1ubworKyAgICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUworKyAgICAg IGVjaG8gIl9tYWluIiA+IGNvbmZ0ZXN0LnN5bQorKyAgICAgIExERkxBR1M9IiRMREZMQUdTIC1X bCwtZXhwb3J0ZWRfc3ltYm9sc19saXN0LGNvbmZ0ZXN0LnN5bSIKKysgICAgICBBQ19MSU5LX0lG RUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCisrICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5 bWJvbHNfbGlzdD15ZXNdLAorKyAgIFtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm9d KQorKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrICAgIF0pCisrICAgIGNhc2UgJGhvc3Rf b3MgaW4KKysgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bWzAxMjNdXSkKKysgICAgICBfbHRfZGFy X2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7CisrICAg IGRhcndpbjEuKikKKysgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25h bWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysgICAgZGFyd2luKikK KysgICAgICAjIGlmIHJ1bm5pbmcgb24gMTAuNSBvciBsYXRlciwgdGhlIGRlcGxveW1lbnQgdGFy Z2V0IGRlZmF1bHRzCisrICAgICAgIyB0byB0aGUgT1MgdmVyc2lvbiwgaWYgb24geDg2LCBhbmQg MTAuNCwgdGhlIGRlcGxveW1lbnQKKysgICAgICAjIHRhcmdldCBkZWZhdWx0cyB0byAxMC40LiBE b24ndCB5b3UgbG92ZSBpdD8KKysgICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU LTEwLjB9LCRob3N0IGluCisrICAgMTAuMCwqODYqLWRhcndpbjgqfDEwLjAsKi1kYXJ3aW5bWzkx XV0qKQorKyAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3ds fWR5bmFtaWNfbG9va3VwJyA7OworKyAgIDEwLltbMDEyXV0qKQorKyAgICAgX2x0X2Rhcl9hbGxv d191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1 cHByZXNzJyA7OworKyAgIDEwLiopCisrICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3 bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7CisrICAgICAgZXNhYworKyAgICA7 OworKyAgZXNhYworKyAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPSAi eWVzIjsgdGhlbgorKyAgICAgIF9sdF9kYXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUnCisr ICAgIGZpCisrICAgIGlmIHRlc3QgIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID0g InllcyI7IHRoZW4KKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0ZWRf c3ltYm9sc19saXN0LCRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0nCisr ICAgIGVsc2UKKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPSJ+JE5NRURJVCAtcyBcJG91dHB1 dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gXCR7bGlifSIKKysgICAgZmkKKysg ICAgaWYgdGVzdCAiJERTWU1VVElMIiAhPSAiOiI7IHRoZW4KKysgICAgICBfbHRfZHN5bXV0aWw9 In4kRFNZTVVUSUwgXCRsaWIgfHwgOiIKKysgICAgZWxzZQorKyAgICAgIF9sdF9kc3ltdXRpbD0K KysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKytdKQorKworKyMgX0xUX0FDX1NZU19MSUJQQVRI X0FJWAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgTGlua3MgYSBtaW5pbWFsIHByb2dy YW0gYW5kIGNoZWNrcyB0aGUgZXhlY3V0YWJsZQorKyMgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBo YXJkY29kZWQgbGlicmFyeSBwYXRoLiBJbiBtb3N0IGNhc2VzLAorKyMgdGhpcyBpcyAvdXNyL2xp YjovbGliLCBidXQgd2hlbiB0aGUgTVBJIGNvbXBpbGVycyBhcmUgdXNlZAorKyMgdGhlIGxvY2F0 aW9uIG9mIHRoZSBjb21tdW5pY2F0aW9uIGFuZCBNUEkgbGlicyBhcmUgaW5jbHVkZWQgdG9vLgor KyMgSWYgd2UgZG9uJ3QgZmluZCBhbnl0aGluZywgdXNlIHRoZSBkZWZhdWx0IGxpYnJhcnkgcGF0 aCBhY2NvcmRpbmcKKysjIHRvIHRoZSBhaXggbGQgbWFudWFsLgorK0FDX0RFRlVOKFtfTFRfQUNf U1lTX0xJQlBBVEhfQUlYXSwKKytbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRubAorK0FD X0xJTktfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTSxbCisrbHRfYWl4X2xpYnBhdGhfc2VkPScKKysg ICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8geworKwkvXjAvIHsKKysJICAgIHMvXjAgICpc KC4qXCkkL1wxLworKwkgICAgcAorKwl9CisrICAgIH0nCisrYWl4X2xpYnBhdGg9YGR1bXAgLUgg Y29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJw YXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5k IGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKysgIGFpeF9saWJw YXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4g LWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorK2ZpXSxbXSkKKytpZiB0ZXN0IC16ICIkYWl4X2xp YnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKytdKSMgX0xUX0FD X1NZU19MSUJQQVRIX0FJWAorKworKworKyMgX0xUX0FDX1NIRUxMX0lOSVQoQVJHKQorKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtfTFRfQUNfU0hFTExfSU5JVF0sCisrW2lm ZGVmKFtBQ19ESVZFUlNJT05fTk9USUNFXSwKKysJICAgICBbQUNfRElWRVJUX1BVU0goQUNfRElW RVJTSU9OX05PVElDRSldLAorKwkgW0FDX0RJVkVSVF9QVVNIKE5PVElDRSldKQorKyQxCisrQUNf RElWRVJUX1BPUAorK10pIyBfTFRfQUNfU0hFTExfSU5JVAorKworKworKyMgX0xUX0FDX1BST0df RUNIT19CQUNLU0xBU0gKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBBZGQgc29t ZSBjb2RlIHRvIHRoZSBzdGFydCBvZiB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQgd2hp Y2gKKysjIHdpbGwgZmluZCBhbiBlY2hvIGNvbW1hbmQgd2hpY2ggZG9lc24ndCBpbnRlcnByZXQg YmFja3NsYXNoZXMuCisrQUNfREVGVU4oW19MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNIXSwKKytb X0xUX0FDX1NIRUxMX0lOSVQoWworKyMgQ2hlY2sgdGhhdCB3ZSBhcmUgcnVubmluZyB1bmRlciB0 aGUgY29ycmVjdCBzaGVsbC4KKytTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQorKworK2Nh c2UgWCRFQ0hPIGluCisrWCotLWZhbGxiYWNrLWVjaG8pCisrICAjIFJlbW92ZSBvbmUgbGV2ZWwg b2YgcXVvdGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgorKyAgRUNITz1gZWNo byAiJEVDSE8iIHwgc2VkICdzLFxcXFxcWyRdXFxbJF0wLCdbJF0wJywnYAorKyAgOzsKKytlc2Fj CisrCisrZWNobz0ke0VDSE8tZWNob30KKytpZiB0ZXN0ICJYWyRdMSIgPSBYLS1uby1yZWV4ZWM7 IHRoZW4KKysgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgor KyAgc2hpZnQKKytlbGlmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KKysg ICMgQXZvaWQgaW5saW5lIGRvY3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKKysgIDoK KytlbGlmIHRlc3QgIlhgKCRlY2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyA7IHRoZW4K KysgICMgWWlwcGVlLCAkZWNobyB3b3JrcyEKKysgIDoKKytlbHNlCisrICAjIFJlc3RhcnQgdW5k ZXIgdGhlIGNvcnJlY3Qgc2hlbGwuCisrICBleGVjICRTSEVMTCAiWyRdMCIgLS1uby1yZWV4ZWMg JHsxKyJbJF1AIn0KKytmaQorKworK2lmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVjaG87 IHRoZW4KKysgICMgdXNlZCBhcyBmYWxsYmFjayBlY2hvCisrICBzaGlmdAorKyAgY2F0IDw8RU9G CisrWyRdKgorK0VPRgorKyAgZXhpdCAwCisrZmkKKysKKysjIFRoZSBIUC1VWCBrc2ggYW5kIFBP U0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAorKyMgaWYgQ0RQ QVRIIGlzIHNldC4KKysodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQ QVRICisrCisraWYgdGVzdCAteiAiJEVDSE8iOyB0aGVuCisraWYgdGVzdCAiWCR7ZWNob190ZXN0 X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0aGVuCisrIyBmaW5kIGEgc3RyaW5nIGFzIGxhcmdlIGFz IHBvc3NpYmxlLCBhcyBsb25nIGFzIHRoZSBzaGVsbCBjYW4gY29wZSB3aXRoIGl0CisrICBmb3Ig Y21kIGluICdzZWQgNTBxICJbJF0wIicgJ3NlZCAyMHEgIlskXTAiJyAnc2VkIDEwcSAiWyRdMCIn ICdzZWQgMnEgIlskXTAiJyAnZWNobyB0ZXN0JzsgZG8KKysgICAgIyBleHBlY3RlZCBzaXplczog bGVzcyB0aGFuIDJLYiwgMUtiLCA1MTIgYnl0ZXMsIDE2IGJ5dGVzLCAuLi4KKysgICAgaWYgKGVj aG9fdGVzdF9zdHJpbmc9YGV2YWwgJGNtZGApIDI+L2Rldi9udWxsICYmCisrICAgICAgIGVjaG9f dGVzdF9zdHJpbmc9YGV2YWwgJGNtZGAgJiYKKysgICAgICAgKHRlc3QgIlgkZWNob190ZXN0X3N0 cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGwKKysgICAgdGhlbgorKyAg ICAgIGJyZWFrCisrICAgIGZpCisrICBkb25lCisrZmkKKysKKytpZiB0ZXN0ICJYYCgkZWNobyAn XHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAo JGVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCisrICAgdGVzdCAiWCRl Y2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrICA6Cisr ZWxzZQorKyAgIyBUaGUgU29sYXJpcywgQUlYLCBhbmQgRGlnaXRhbCBVbml4IGRlZmF1bHQgZWNo byBwcm9ncmFtcyB1bnF1b3RlCisrICAjIGJhY2tzbGFzaGVzLiAgVGhpcyBtYWtlcyBpdCBpbXBv c3NpYmxlIHRvIHF1b3RlIGJhY2tzbGFzaGVzIHVzaW5nCisrICAjICAgZWNobyAiJHNvbWV0aGlu ZyIgfCBzZWQgJ3MvXFwvXFxcXC9nJworKyAgIworKyAgIyBTbywgZmlyc3Qgd2UgbG9vayBmb3Ig YSB3b3JraW5nIGVjaG8gaW4gdGhlIHVzZXIncyBQQVRILgorKworKyAgbHRfc2F2ZV9pZnM9IiRJ RlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrICBmb3IgZGlyIGluICRQQVRIIC91c3IvdWNiOyBk bworKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgaWYgKHRlc3QgLWYgJGRpci9lY2hvIHx8 IHRlc3QgLWYgJGRpci9lY2hvJGFjX2V4ZWV4dCkgJiYKKysgICAgICAgdGVzdCAiWGAoJGRpci9l Y2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgorKyAgICAgICBlY2hvX3Rlc3Rpbmdf c3RyaW5nPWAoJGRpci9lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgor KyAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmlu ZyI7IHRoZW4KKysgICAgICBlY2hvPSIkZGlyL2VjaG8iCisrICAgICAgYnJlYWsKKysgICAgZmkK KysgIGRvbmUKKysgIElGUz0iJGx0X3NhdmVfaWZzIgorKworKyAgaWYgdGVzdCAiWCRlY2hvIiA9 IFhlY2hvOyB0aGVuCisrICAgICMgV2UgZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNobywgc28gbG9v ayBmb3IgYWx0ZXJuYXRpdmVzLgorKyAgICBpZiB0ZXN0ICJYYChwcmludCAtciAnXHQnKSAyPi9k ZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKHByaW50 IC1yICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKyAgICAgICB0ZXN0ICJY JGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKysgICAg ICAjIFRoaXMgc2hlbGwgaGFzIGEgYnVpbHRpbiBwcmludCAtciB0aGF0IGRvZXMgdGhlIHRyaWNr LgorKyAgICAgIGVjaG89J3ByaW50IC1yJworKyAgICBlbGlmICh0ZXN0IC1mIC9iaW4va3NoIHx8 IHRlc3QgLWYgL2Jpbi9rc2gkYWNfZXhlZXh0KSAmJgorKwkgdGVzdCAiWCRDT05GSUdfU0hFTEwi ICE9IFgvYmluL2tzaDsgdGhlbgorKyAgICAgICMgSWYgd2UgaGF2ZSBrc2gsIHRyeSBydW5uaW5n IGNvbmZpZ3VyZSBhZ2FpbiB3aXRoIGl0LgorKyAgICAgIE9SSUdJTkFMX0NPTkZJR19TSEVMTD0k e0NPTkZJR19TSEVMTC0vYmluL3NofQorKyAgICAgIGV4cG9ydCBPUklHSU5BTF9DT05GSUdfU0hF TEwKKysgICAgICBDT05GSUdfU0hFTEw9L2Jpbi9rc2gKKysgICAgICBleHBvcnQgQ09ORklHX1NI RUxMCisrICAgICAgZXhlYyAkQ09ORklHX1NIRUxMICJbJF0wIiAtLW5vLXJlZXhlYyAkezErIlsk XUAifQorKyAgICBlbHNlCisrICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgorKyAgICAgIGVjaG89 J3ByaW50ZiAlc1xuJworKyAgICAgIGlmIHRlc3QgIlhgKCRlY2hvICdcdCcpIDI+L2Rldi9udWxs YCIgPSAnWFx0JyAmJgorKwkgZWNob190ZXN0aW5nX3N0cmluZz1gKCRlY2hvICIkZWNob190ZXN0 X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKwkgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5n IiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCSMgQ29vbCwgcHJpbnRmIHdvcmtzCisr CToKKysgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NI RUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxgICYmCisrCSAgIHRl c3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgorKwkgICBlY2hvX3Rlc3Rpbmdf c3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICIk ZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKwkgICB0ZXN0ICJYJGVjaG9fdGVz dGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKysJQ09ORklHX1NIRUxM PSRPUklHSU5BTF9DT05GSUdfU0hFTEwKKysJZXhwb3J0IENPTkZJR19TSEVMTAorKwlTSEVMTD0i JENPTkZJR19TSEVMTCIKKysJZXhwb3J0IFNIRUxMCisrCWVjaG89IiRDT05GSUdfU0hFTEwgWyRd MCAtLWZhbGxiYWNrLWVjaG8iCisrICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENP TkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgor KwkgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKKysJICAgZWNob190 ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAiJGVj aG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKKysJICAgdGVzdCAiWCRlY2hvX3Rlc3Rp bmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCWVjaG89IiRDT05GSUdf U0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iCisrICAgICAgZWxzZQorKwkjIG1heWJlIHdpdGgg YSBzbWFsbGVyIHN0cmluZy4uLgorKwlwcmV2PToKKysKKysJZm9yIGNtZCBpbiAnZWNobyB0ZXN0 JyAnc2VkIDJxICJbJF0wIicgJ3NlZCAxMHEgIlskXTAiJyAnc2VkIDIwcSAiWyRdMCInICdzZWQg NTBxICJbJF0wIic7IGRvCisrCSAgaWYgKHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWGBl dmFsICRjbWRgIikgMj4vZGV2L251bGwKKysJICB0aGVuCisrCSAgICBicmVhaworKwkgIGZpCisr CSAgcHJldj0iJGNtZCIKKysJZG9uZQorKworKwlpZiB0ZXN0ICIkcHJldiIgIT0gJ3NlZCA1MHEg IlskXTAiJzsgdGhlbgorKwkgIGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJHByZXZgCisrCSAgZXhw b3J0IGVjaG9fdGVzdF9zdHJpbmcKKysJICBleGVjICR7T1JJR0lOQUxfQ09ORklHX1NIRUxMLSR7 Q09ORklHX1NIRUxMLS9iaW4vc2h9fSAiWyRdMCIgJHsxKyJbJF1AIn0KKysJZWxzZQorKwkgICMg T29wcy4gIFdlIGxvc3QgY29tcGxldGVseSwgc28ganVzdCBzdGljayB3aXRoIGVjaG8uCisrCSAg ZWNobz1lY2hvCisrCWZpCisrICAgICAgZmkKKysgICAgZmkKKysgIGZpCisrZmkKKytmaQorKwor KyMgQ29weSBlY2hvIGFuZCBxdW90ZSB0aGUgY29weSBzdWl0YWJseSBmb3IgcGFzc2luZyB0byBs aWJ0b29sIGZyb20KKysjIHRoZSBNYWtlZmlsZSwgaW5zdGVhZCBvZiBxdW90aW5nIHRoZSBvcmln aW5hbCwgd2hpY2ggaXMgdXNlZCBsYXRlci4KKytFQ0hPPSRlY2hvCisraWYgdGVzdCAiWCRFQ0hP IiA9ICJYJENPTkZJR19TSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyI7IHRoZW4KKysgICBFQ0hP PSIkQ09ORklHX1NIRUxMIFxcXCRcWyRdMCAtLWZhbGxiYWNrLWVjaG8iCisrZmkKKysKKytBQ19T VUJTVChFQ0hPKQorK10pXSkjIF9MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNICisrCisrCisrIyBf TFRfQUNfTE9DSworKyMgLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbX0xUX0FDX0xPQ0tdLAorK1tB Q19BUkdfRU5BQkxFKFtsaWJ0b29sLWxvY2tdLAorKyAgICBbQUNfSEVMUF9TVFJJTkcoWy0tZGlz YWJsZS1saWJ0b29sLWxvY2tdLAorKwlbYXZvaWQgbG9ja2luZyAobWlnaHQgYnJlYWsgcGFyYWxs ZWwgYnVpbGRzKV0pXSkKKyt0ZXN0ICJ4JGVuYWJsZV9saWJ0b29sX2xvY2siICE9IHhubyAmJiBl bmFibGVfbGlidG9vbF9sb2NrPXllcworKworKyMgU29tZSBmbGFncyBuZWVkIHRvIGJlIHByb3Bh Z2F0ZWQgdG8gdGhlIGNvbXBpbGVyIG9yIGxpbmtlciBmb3IgZ29vZAorKyMgbGlidG9vbCBzdXBw b3J0LgorK2Nhc2UgJGhvc3QgaW4KKytpYTY0LSotaHB1eCopCisrICAjIEZpbmQgb3V0IHdoaWNo IEFCSSB3ZSBhcmUgdXNpbmcuCisrICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAor KyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KKysgICAgY2FzZSBgL3Vzci9iaW4v ZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgorKyAgICAqRUxGLTMyKikKKysgICAgICBIUFVY X0lBNjRfTU9ERT0iMzIiCisrICAgICAgOzsKKysgICAgKkVMRi02NCopCisrICAgICAgSFBVWF9J QTY0X01PREU9IjY0IgorKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYgY29u ZnRlc3QqCisrICA7OworKyotKi1pcml4NiopCisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBh cmUgdXNpbmcuCisrICBlY2hvICdbI11saW5lIF9fb2xpbmVfXyAiY29uZmlndXJlIicgPiBjb25m dGVzdC4kYWNfZXh0CisrICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorKyAgIGlm IHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgY2FzZSBgL3Vzci9i aW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgorKyAgICAqMzItYml0KikKKysgICAgICBM RD0iJHtMRC1sZH0gLW1lbGYzMmJzbWlwIgorKyAgICAgIDs7CisrICAgICpOMzIqKQorKyAgICAg IExEPSIke0xELWxkfSAtbWVsZjMyYm1pcG4zMiIKKysgICAgICA7OworKyAgICAqNjQtYml0KikK KysgICAgICBMRD0iJHtMRC1sZH0gLW1lbGY2NGJtaXAiCisrICAgICAgOzsKKysgICAgZXNhYwor KyAgIGVsc2UKKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBp bgorKyAgICAqMzItYml0KikKKysgICAgICBMRD0iJHtMRC1sZH0gLTMyIgorKyAgICAgIDs7Cisr ICAgICpOMzIqKQorKyAgICAgIExEPSIke0xELWxkfSAtbjMyIgorKyAgICAgIDs7CisrICAgICo2 NC1iaXQqKQorKyAgICAgIExEPSIke0xELWxkfSAtNjQiCisrICAgICAgOzsKKysgICAgZXNhYwor KyAgIGZpCisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KgorKyAgOzsKKysKKyt4ODZfNjQtKmtm cmVlYnNkKi1nbnV8eDg2XzY0LSpsaW51eCp8cHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCp8 IFwKKytzMzkwKi0qbGludXgqfHNwYXJjKi0qbGludXgqKQorKyAgIyBGaW5kIG91dCB3aGljaCBB Qkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKKysg IGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCisrICAgIGNhc2UgYC91c3IvYmluL2Zp bGUgY29uZnRlc3Qub2AgaW4KKysgICAgKjMyLWJpdCopCisrICAgICAgY2FzZSAkaG9zdCBpbgor KyAgICAgICAgeDg2XzY0LSprZnJlZWJzZCotZ251KQorKyAgICAgICAgICBMRD0iJHtMRC1sZH0g LW0gZWxmX2kzODZfZmJzZCIKKysgICAgICAgICAgOzsKKysgICAgICAgIHg4Nl82NC0qbGludXgq KQorKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODYiCisrICAgICAgICAgIDs7Cisr ICAgICAgICBwcGM2NC0qbGludXgqfHBvd2VycGM2NC0qbGludXgqKQorKyAgICAgICAgICBMRD0i JHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKKysgICAgICAgICAgOzsKKysgICAgICAgIHMzOTB4 LSpsaW51eCopCisrICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKKysgICAgICAg ICAgOzsKKysgICAgICAgIHNwYXJjNjQtKmxpbnV4KikKKysgICAgICAgICAgTEQ9IiR7TEQtbGR9 IC1tIGVsZjMyX3NwYXJjIgorKyAgICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7Owor KyAgICAqNjQtYml0KikKKysgICAgICBsaWJzdWZmPTY0CisrICAgICAgY2FzZSAkaG9zdCBpbgor KyAgICAgICAgeDg2XzY0LSprZnJlZWJzZCotZ251KQorKyAgICAgICAgICBMRD0iJHtMRC1sZH0g LW0gZWxmX3g4Nl82NF9mYnNkIgorKyAgICAgICAgICA7OworKyAgICAgICAgeDg2XzY0LSpsaW51 eCopCisrICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGZfeDg2XzY0IgorKyAgICAgICAgICA7 OworKyAgICAgICAgcHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCopCisrICAgICAgICAgIExE PSIke0xELWxkfSAtbSBlbGY2NHBwYyIKKysgICAgICAgICAgOzsKKysgICAgICAgIHMzOTAqLSps aW51eCopCisrICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zMzkwIgorKyAgICAgICAg ICA7OworKyAgICAgICAgc3BhcmMqLSpsaW51eCopCisrICAgICAgICAgIExEPSIke0xELWxkfSAt bSBlbGY2NF9zcGFyYyIKKysgICAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysg ICAgZXNhYworKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrCisrKi0qLXNjbzMu MnY1KikKKysgICMgT24gU0NPIE9wZW5TZXJ2ZXIgNSwgd2UgbmVlZCAtYmVsZiB0byBnZXQgZnVs bC1mZWF0dXJlZCBiaW5hcmllcy4KKysgIFNBVkVfQ0ZMQUdTPSIkQ0ZMQUdTIgorKyAgQ0ZMQUdT PSIkQ0ZMQUdTIC1iZWxmIgorKyAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEMgY29tcGls ZXIgbmVlZHMgLWJlbGZdLCBsdF9jdl9jY19uZWVkc19iZWxmLAorKyAgICBbQUNfTEFOR19QVVNI KEMpCisrICAgICBBQ19UUllfTElOSyhbXSxbXSxbbHRfY3ZfY2NfbmVlZHNfYmVsZj15ZXNdLFts dF9jdl9jY19uZWVkc19iZWxmPW5vXSkKKysgICAgIEFDX0xBTkdfUE9QXSkKKysgIGlmIHRlc3Qg eCIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgIT0geCJ5ZXMiOyB0aGVuCisrICAgICMgdGhpcyBpcyBw cm9iYWJseSBnY2MgMi44LjAsIGVnY3MgMS4wIG9yIG5ld2VyOyBubyBuZWVkIGZvciAtYmVsZgor KyAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIKKysgIGZpCisrICA7OworK3NwYXJjKi0qc29sYXJp cyopCisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCisrICBlY2hvICdpbnQg aTsnID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRo ZW4KKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgorKyAgICAqNjQtYml0 KikKKysgICAgICBjYXNlICRsdF9jdl9wcm9nX2dudV9sZCBpbgorKyAgICAgIHllcyopIExEPSIk e0xELWxkfSAtbSBlbGY2NF9zcGFyYyIgOzsKKysgICAgICAqKQorKyAgICAgICAgaWYgJHtMRC1s ZH0gLTY0IC1yIC1vIGNvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0Lm8gPi9kZXYvbnVsbCAyPiYxOyB0aGVu CisrCSAgTEQ9IiR7TEQtbGR9IC02NCIKKysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAg OzsKKysgICAgZXNhYworKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrCisrQUNf UFJPVklERV9JRkVMU0UoW0FDX0xJQlRPT0xfV0lOMzJfRExMXSwKKytbKi0qLWN5Z3dpbiogfCAq LSotbWluZ3cqIHwgKi0qLXB3MzIqKQorKyAgQUNfQ0hFQ0tfVE9PTChETExUT09MLCBkbGx0b29s LCBmYWxzZSkKKysgIEFDX0NIRUNLX1RPT0woQVMsIGFzLCBmYWxzZSkKKysgIEFDX0NIRUNLX1RP T0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2UpCisrICA7OworKyAgXSkKKytlc2FjCisrCisrbmVl ZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCisrCisrXSkjIF9MVF9BQ19MT0NLCisrCisr CisrIyBBQ19MSUJUT09MX0NPTVBJTEVSX09QVElPTihNRVNTQUdFLCBWQVJJQUJMRS1OQU1FLCBG TEFHUywKKysjCQlbT1VUUFVULUZJTEVdLCBbQUNUSU9OLVNVQ0NFU1NdLCBbQUNUSU9OLUZBSUxV UkVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gY29tcGlsZXIgb3B0 aW9uIHdvcmtzCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwKKytbQUNf UkVRVUlSRShbTFRfQUNfUFJPR19TRURdKQorK0FDX0NBQ0hFX0NIRUNLKFskMV0sIFskMl0sCisr ICBbJDI9bm8KKysgIGlmZWxzZShbJDRdLCAsIFthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpl eHRdLCBbYWNfb3V0ZmlsZT0kNF0pCisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3Rf Y29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrICAgbHRfY29tcGlsZXJfZmxhZz0iJDMiCisrICAg IyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJp YWJsZSwgb3IKKysgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIs IG9yICgzKSBhdCB0aGUgZW5kLgorKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBk b2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKKysgICAjIHdpdGggYSBkb2xs YXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5 LgorKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lk IGNvbmZ1c2luZyBzZWQuCisrICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNF RCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcg XAorKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcg XAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJc JGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysg ICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPwor KyAgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgIGVjaG8gIiRhc19t ZTpfX29saW5lX186IFwkPyA9ICRhY19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICBp ZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KKysgICAg ICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5v dCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3Ro ZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgorKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2Jv aWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAn L14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0 ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rl di9udWxsOyB0aGVuCisrICAgICAgICQyPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRybSBj b25mdGVzdCoKKytdKQorKworK2lmIHRlc3QgeCJbJF0kMiIgPSB4eWVzOyB0aGVuCisrICAgIGlm ZWxzZShbJDVdLCAsIDosIFskNV0pCisrZWxzZQorKyAgICBpZmVsc2UoWyQ2XSwgLCA6LCBbJDZd KQorK2ZpCisrXSkjIEFDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OCisrCisrCisrIyBBQ19MSUJU T09MX0xJTktFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFCTEUtTkFNRSwgRkxBR1MsCisrIyAgICAg ICAgICAgICAgICAgICAgICAgICAgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gY29tcGlsZXIgb3B0aW9uIHdvcmtz CisrQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sCisrW0FDX1JFUVVJUkUoW0xU X0FDX1BST0dfU0VEXSlkbmwKKytBQ19DQUNIRV9DSEVDSyhbJDFdLCBbJDJdLAorKyAgWyQyPW5v CisrICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFHUyAkMyIK KysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQK KysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVz dCRhY19leGVleHQ7IHRoZW4KKysgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBp Z25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYg dGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgor KyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgorKyAgICAgICBj YXQgY29uZnRlc3QuZXJyIDE+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgICAgICRlY2hvICJYJF9s dF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAor KyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIK KysgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRo ZW4KKysgICAgICAgICAkMj15ZXMKKysgICAgICAgZmkKKysgICAgIGVsc2UKKysgICAgICAgJDI9 eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJHJtIC1yIGNvbmZ0ZXN0KgorKyAgIExERkxBR1M9 IiRzYXZlX0xERkxBR1MiCisrXSkKKysKKytpZiB0ZXN0IHgiWyRdJDIiID0geHllczsgdGhlbgor KyAgICBpZmVsc2UoWyQ0XSwgLCA6LCBbJDRdKQorK2Vsc2UKKysgICAgaWZlbHNlKFskNV0sICwg OiwgWyQ1XSkKKytmaQorK10pIyBBQ19MSUJUT09MX0xJTktFUl9PUFRJT04KKysKKysKKysjIEFD X0xJQlRPT0xfU1lTX01BWF9DTURfTEVOCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor K0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xFTl0sCisrWyMgZmluZCB0aGUgbWF4 aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cworK0FDX01TR19DSEVDS0lORyhb dGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHNdKQorK0FDX0NBQ0hF X1ZBTChbbHRfY3Zfc3lzX21heF9jbWRfbGVuXSwgW2RubAorKyAgaT0wCisrICB0ZXN0c3RyaW5n PSJBQkNEIgorKworKyAgY2FzZSAkYnVpbGRfb3MgaW4KKysgIG1zZG9zZGpncHAqKQorKyAgICAj IE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5IGR1ZSB0byBwcm9i bGVtcyBpbiBsaWJjCisrICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhjZWVkaW5nIDIwMDAg Ynl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KKysgICAgIyBkdXJpbmcgZ2xvYiBleHBhbnNp b24pLiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9mIHRoaXMKKysgICAgIyBj aGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCisrICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKKysgICAgOzsKKysKKysg IGdudSopCisrICAgICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBpcyBub3QgcmVxdWlyZWQg YmVjYXVzZSB0aGVyZSBpcworKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5ndGggb2YgY29tbWFu ZCBsaW5lIGFyZ3VtZW50cy4KKysgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFzIG5v IGxpbWl0IHdoYXRzb2V2ZXIKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xOworKyAgICA7 OworKworKyAgY3lnd2luKiB8IG1pbmd3KikKKysgICAgIyBPbiBXaW45eC9NRSwgdGhpcyB0ZXN0 IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMKKysgICAgIyBhYm91dCA1IG1pbnV0 ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxseS4KKysgICAgIyBXb3JzZSwg c2luY2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5IG11bHRpdGFza2luZywKKysgICAgIyB5 b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwgZXZlbiB0aG91Z2ggd2l0aCBwYXRp ZW5jZQorKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdpdGggYSBtYXggbGlu ZSBsZW5ndGggb2YgMjU2aykuCisrICAgICMgSW5zdGVhZCwgbGV0J3MganVzdCBwdW50OiB1c2Ug dGhlIG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBieQorKyAgICAjIGFsbCBvZiB0aGUgc3Vw cG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFApLgorKyAgICBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49ODE5MjsKKysgICAgOzsKKysKKysgIGFtaWdhb3MqKQorKyAgICAjIE9uIEFtaWdh T1Mgd2l0aCBwZGtzaCwgdGhpcyB0ZXN0IHRha2VzIGhvdXJzLCBsaXRlcmFsbHkuCisrICAgICMg U28gd2UganVzdCBwdW50IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUgbGVuZ3RoIG9mIDgxOTIuCisr ICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOworKyAgICA7OworKworKyAgbmV0YnNkKiB8 IGZyZWVic2QqIHwgb3BlbmJzZCogfCBkYXJ3aW4qIHwgZHJhZ29uZmx5KikKKysgICAgIyBUaGlz IGhhcyBiZWVuIGFyb3VuZCBzaW5jZSAzODZCU0QsIGF0IGxlYXN0LiAgTGlrZWx5IGZ1cnRoZXIu CisrICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY3RsOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21h eF9jbWRfbGVuPWAvc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCisrICAgIGVsaWYgdGVzdCAt eCAvdXNyL3NiaW4vc3lzY3RsOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAv dXNyL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAorKyAgICBlbHNlCisrICAgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPTY1NTM2CSMgdXNhYmxlIGRlZmF1bHQgZm9yIGFsbCBCU0RzCisrICAg IGZpCisrICAgICMgQW5kIGFkZCBhIHNhZmV0eSB6b25lCisrICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCisrICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCisrICAgIDs7Cisr CisrICBpbnRlcml4KikKKysgICAgIyBXZSBrbm93IHRoZSB2YWx1ZSAyNjIxNDQgYW5kIGhhcmRj b2RlIGl0IHdpdGggYSBzYWZldHkgem9uZSAobGlrZSBCU0QpCisrICAgIGx0X2N2X3N5c19tYXhf Y21kX2xlbj0xOTY2MDgKKysgICAgOzsKKysKKysgIG9zZiopCisrICAgICMgRHIuIEhhbnMgRWtr ZWhhcmQgUGxlc3NlciByZXBvcnRzIHNlZWluZyBhIGtlcm5lbCBwYW5pYyBydW5uaW5nIGNvbmZp Z3VyZQorKyAgICAjIGR1ZSB0byB0aGlzIHRlc3Qgd2hlbiBleGVjX2Rpc2FibGVfYXJnX2xpbWl0 IGlzIDEgb24gVHJ1NjQuIEl0IGlzIG5vdAorKyAgICAjIG5pY2UgdG8gY2F1c2Uga2VybmVsIHBh bmljcyBzbyBsZXRzIGF2b2lkIHRoZSBsb29wIGJlbG93LgorKyAgICAjIEZpcnN0IHNldCBhIHJl YXNvbmFibGUgZGVmYXVsdC4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE2Mzg0CisrICAg ICMKKysgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjb25maWc7IHRoZW4KKysgICAgICBjYXNlIGAv c2Jpbi9zeXNjb25maWcgLXEgcHJvYyBleGVjX2Rpc2FibGVfYXJnX2xpbWl0YCBpbgorKyAgICAg ICAgKjEqKSBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTEgOzsKKysgICAgICBlc2FjCisrICAgIGZp CisrICAgIDs7CisrICBzY28zLjJ2NSopCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMDI0 MDAKKysgICAgOzsKKysgIHN5c3Y1KiB8IHNjbzV2NiogfCBzeXN2NC4ydXcyKikKKysgICAga2Fy Z21heD1gZ3JlcCBBUkdfTUFYIC9ldGMvY29uZi9jZi5kL3N0dW5lIDI+L2Rldi9udWxsYAorKyAg ICBpZiB0ZXN0IC1uICIka2FyZ21heCI7IHRoZW4KKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49YGVjaG8gJGthcmdtYXggfCBzZWQgJ3MvLipbWyAJXV0vLydgCisrICAgIGVsc2UKKysgICAg ICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MzI3NjgKKysgICAgZmkKKysgICAgOzsKKysgICopCisr ICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gKGdldGNvbmYgQVJHX01BWCkgMj4gL2Rldi9udWxs YAorKyAgICBpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX21heF9jbWRfbGVuIjsgdGhlbgorKyAgICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRg CisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9s ZW4gXCogM2AKKysgICAgZWxzZQorKyAgICAgIFNIRUxMPSR7U0hFTEwtJHtDT05GSUdfU0hFTEwt L2Jpbi9zaH19CisrICAgICAgd2hpbGUgKHRlc3QgIlgiYCRTSEVMTCBbJF0wIC0tZmFsbGJhY2st ZWNobyAiWCR0ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAorKwkgICAgICAgPSAiWFgkdGVzdHN0 cmluZyIpID4vZGV2L251bGwgMj4mMSAmJgorKwkgICAgICBuZXdfcmVzdWx0PWBleHByICJYJHRl c3RzdHJpbmciIDogIi4qIiAyPiYxYCAmJgorKwkgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49 JG5ld19yZXN1bHQgJiYKKysJICAgICAgdGVzdCAkaSAhPSAxNyAjIDEvMiBNQiBzaG91bGQgYmUg ZW5vdWdoCisrICAgICAgZG8KKysgICAgICAgIGk9YGV4cHIgJGkgKyAxYAorKyAgICAgICAgdGVz dHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCisrICAgICAgZG9uZQorKyAgICAgIHRlc3Rz dHJpbmc9CisrICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJlY2F1c2Ug QysrIGNvbXBpbGVycyBjYW4gdGFjayBvbiBtYXNzaXZlCisrICAgICAgIyBhbW91bnRzIG9mIGFk ZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlIGxpbmtlci4KKysg ICAgICAjIEl0IGFwcGVhcnMgYXMgdGhvdWdoIDEvMiBpcyBhIHVzYWJsZSB2YWx1ZS4KKysgICAg ICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyAy YAorKyAgICBmaQorKyAgICA7OworKyAgZXNhYworK10pCisraWYgdGVzdCAtbiAkbHRfY3Zfc3lz X21heF9jbWRfbGVuIDsgdGhlbgorKyAgQUNfTVNHX1JFU1VMVCgkbHRfY3Zfc3lzX21heF9jbWRf bGVuKQorK2Vsc2UKKysgIEFDX01TR19SRVNVTFQobm9uZSkKKytmaQorK10pIyBBQ19MSUJUT09M X1NZU19NQVhfQ01EX0xFTgorKworKworKyMgX0xUX0FDX0NIRUNLX0RMRkNOCisrIyAtLS0tLS0t LS0tLS0tLS0tLS0KKytBQ19ERUZVTihbX0xUX0FDX0NIRUNLX0RMRkNOXSwKKytbQUNfQ0hFQ0tf SEVBREVSUyhkbGZjbi5oKWRubAorK10pIyBfTFRfQUNfQ0hFQ0tfRExGQ04KKysKKysKKysjIF9M VF9BQ19UUllfRExPUEVOX1NFTEYgKEFDVElPTi1JRi1UUlVFLCBBQ1RJT04tSUYtVFJVRS1XLVVT Q09SRSwKKysjICAgICAgICAgICAgICAgICAgICAgICAgICAgQUNUSU9OLUlGLUZBTFNFLCBBQ1RJ T04tSUYtQ1JPU1MtQ09NUElMSU5HKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW19MVF9B Q19UUllfRExPUEVOX1NFTEZdLAorK1tBQ19SRVFVSVJFKFtfTFRfQUNfQ0hFQ0tfRExGQ05dKWRu bAorK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKKysgIFskNF0KKytl bHNlCisrICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29y ZT0yCisrICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgorKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4 dCA8PEVPRgorK1sjbGluZSBfX29saW5lX18gImNvbmZpZ3VyZSIKKysjaW5jbHVkZSAiY29uZmRl ZnMuaCIKKysKKysjaWYgSEFWRV9ETEZDTl9ICisrI2luY2x1ZGUgPGRsZmNuLmg+CisrI2VuZGlm CisrCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrCisrI2lmZGVmIFJUTERfR0xPQkFMCisrIyAgZGVm aW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAorKyNlbHNlCisrIyAgaWZkZWYgRExfR0xPQkFM CisrIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAorKyMgIGVsc2UKKysjICAgIGRl ZmluZSBMVF9ETEdMT0JBTAkJMAorKyMgIGVuZGlmCisrI2VuZGlmCisrCisrLyogV2UgbWF5IGhh dmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3ZQor KyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KKysjaWZu ZGVmIExUX0RMTEFaWV9PUl9OT1cKKysjICBpZmRlZiBSVExEX0xBWlkKKysjICAgIGRlZmluZSBM VF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKKysjICBlbHNlCisrIyAgICBpZmRlZiBETF9MQVpZ CisrIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCisrIyAgICBlbHNlCisr IyAgICAgIGlmZGVmIFJUTERfTk9XCisrIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJ UlRMRF9OT1cKKysjICAgICAgZWxzZQorKyMgICAgICAgIGlmZGVmIERMX05PVworKyMgICAgICAg ICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCisrIyAgICAgICAgZWxzZQorKyMgICAg ICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAorKyMgICAgICAgIGVuZGlmCisrIyAgICAg IGVuZGlmCisrIyAgICBlbmRpZgorKyMgIGVuZGlmCisrI2VuZGlmCisrCisrI2lmZGVmIF9fY3Bs dXNwbHVzCisrZXh0ZXJuICJDIiB2b2lkIGV4aXQgKGludCk7CisrI2VuZGlmCisrCisrdm9pZCBm bm9yZCgpIHsgaW50IGk9NDI7fQorK2ludCBtYWluICgpCisreworKyAgdm9pZCAqc2VsZiA9IGRs b3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7CisrICBpbnQgc3RhdHVzID0g JGx0X2RsdW5rbm93bjsKKysKKysgIGlmIChzZWxmKQorKyAgICB7CisrICAgICAgaWYgKGRsc3lt IChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7CisrICAgICAg ZWxzZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMgPSAkbHRfZGxuZWVkX3VzY29y ZTsKKysgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KKysgICAgfQorKyAgZWxzZQorKyAgICBw dXRzIChkbGVycm9yICgpKTsKKysKKysgICAgZXhpdCAoc3RhdHVzKTsKKyt9XQorK0VPRgorKyAg aWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAy Pi9kZXYvbnVsbDsgdGhlbgorKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JkFTX01FU1NBR0Vf TE9HX0ZEIDI+L2Rldi9udWxsCisrICAgIGx0X3N0YXR1cz0kPworKyAgICBjYXNlIHgkbHRfc3Rh dHVzIGluCisrICAgICAgeCRsdF9kbG5vX3VzY29yZSkgJDEgOzsKKysgICAgICB4JGx0X2RsbmVl ZF91c2NvcmUpICQyIDs7CisrICAgICAgeCRsdF9kbHVua25vd258eCopICQzIDs7CisrICAgIGVz YWMKKysgIGVsc2UgOgorKyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAorKyAgICAkMworKyAgZmkK KytmaQorK3JtIC1mciBjb25mdGVzdCoKKytdKSMgX0xUX0FDX1RSWV9ETE9QRU5fU0VMRgorKwor KworKyMgQUNfTElCVE9PTF9ETE9QRU5fU0VMRgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor K0FDX0RFRlVOKFtBQ19MSUJUT09MX0RMT1BFTl9TRUxGXSwKKytbQUNfUkVRVUlSRShbX0xUX0FD X0NIRUNLX0RMRkNOXSlkbmwKKytpZiB0ZXN0ICJ4JGVuYWJsZV9kbG9wZW4iICE9IHh5ZXM7IHRo ZW4KKysgIGVuYWJsZV9kbG9wZW49dW5rbm93bgorKyAgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25v d24KKysgIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93bgorK2Vsc2UKKysgIGx0X2N2 X2Rsb3Blbj1ubworKyAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrCisrICBjYXNlICRob3N0X29zIGlu CisrICBiZW9zKikKKysgICAgbHRfY3ZfZGxvcGVuPSJsb2FkX2FkZF9vbiIKKysgICAgbHRfY3Zf ZGxvcGVuX2xpYnM9CisrICAgIGx0X2N2X2Rsb3Blbl9zZWxmPXllcworKyAgICA7OworKworKyAg bWluZ3cqIHwgcHczMiopCisrICAgIGx0X2N2X2Rsb3Blbj0iTG9hZExpYnJhcnkiCisrICAgIGx0 X2N2X2Rsb3Blbl9saWJzPQorKyAgIDs7CisrCisrICBjeWd3aW4qKQorKyAgICBsdF9jdl9kbG9w ZW49ImRsb3BlbiIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgOzsKKysKKysgIGRhcndp biopCisrICAjIGlmIGxpYmRsIGlzIGluc3RhbGxlZCB3ZSBuZWVkIHRvIGxpbmsgYWdhaW5zdCBp dAorKyAgICBBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Blbl0sCisrCQlbbHRfY3ZfZGxvcGVuPSJk bG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIl0sWworKyAgICBsdF9jdl9kbG9wZW49ImR5 bGQiCisrICAgIGx0X2N2X2Rsb3Blbl9saWJzPQorKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMK KysgICAgXSkKKysgICA7OworKworKyAgKikKKysgICAgQUNfQ0hFQ0tfRlVOQyhbc2hsX2xvYWRd LAorKwkgIFtsdF9jdl9kbG9wZW49InNobF9sb2FkIl0sCisrICAgICAgW0FDX0NIRUNLX0xJQihb ZGxkXSwgW3NobF9sb2FkXSwKKysJICAgIFtsdF9jdl9kbG9wZW49InNobF9sb2FkIiBsdF9jdl9k bG9wZW5fbGlicz0iLWxkbGQiXSwKKysJW0FDX0NIRUNLX0ZVTkMoW2Rsb3Blbl0sCisrCSAgICAg IFtsdF9jdl9kbG9wZW49ImRsb3BlbiJdLAorKwkgIFtBQ19DSEVDS19MSUIoW2RsXSwgW2Rsb3Bl bl0sCisrCQlbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIl0s CisrCSAgICBbQUNfQ0hFQ0tfTElCKFtzdmxkXSwgW2Rsb3Blbl0sCisrCQkgIFtsdF9jdl9kbG9w ZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sc3ZsZCJdLAorKwkgICAgICBbQUNfQ0hF Q0tfTElCKFtkbGRdLCBbZGxkX2xpbmtdLAorKwkJICAgIFtsdF9jdl9kbG9wZW49ImRsZF9saW5r IiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQiXSkKKysJICAgICAgXSkKKysJICAgIF0pCisrCSAg XSkKKysJXSkKKysgICAgICBdKQorKyAgICA7OworKyAgZXNhYworKworKyAgaWYgdGVzdCAieCRs dF9jdl9kbG9wZW4iICE9IHhubzsgdGhlbgorKyAgICBlbmFibGVfZGxvcGVuPXllcworKyAgZWxz ZQorKyAgICBlbmFibGVfZGxvcGVuPW5vCisrICBmaQorKworKyAgY2FzZSAkbHRfY3ZfZGxvcGVu IGluCisrICBkbG9wZW4pCisrICAgIHNhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKysgICAgdGVz dCAieCRhY19jdl9oZWFkZXJfZGxmY25faCIgPSB4eWVzICYmIENQUEZMQUdTPSIkQ1BQRkxBR1Mg LURIQVZFX0RMRkNOX0giCisrCisrICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCisrICAgIHds PSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjXCIKKysKKysgICAgc2F2ZV9MSUJTPSIkTElCUyIKKysgICAgTElCUz0i JGx0X2N2X2Rsb3Blbl9saWJzICRMSUJTIgorKworKyAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhl ciBhIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGZdLAorKwkgIGx0X2N2X2Rsb3Blbl9zZWxmLCBb ZG5sCisrCSAgX0xUX0FDX1RSWV9ETE9QRU5fU0VMRigKKysJICAgIGx0X2N2X2Rsb3Blbl9zZWxm PXllcywgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzLAorKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGY9bm8s IGx0X2N2X2Rsb3Blbl9zZWxmPWNyb3NzKQorKyAgICBdKQorKworKyAgICBpZiB0ZXN0ICJ4JGx0 X2N2X2Rsb3Blbl9zZWxmIiA9IHh5ZXM7IHRoZW4KKysgICAgICB3bD0kbHRfcHJvZ19jb21waWxl cl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIK KysgICAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dy YW0gY2FuIGRsb3BlbiBpdHNlbGZdLAorKyAgICAJICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMs IFtkbmwKKysJICBfTFRfQUNfVFJZX0RMT1BFTl9TRUxGKAorKwkgICAgbHRfY3ZfZGxvcGVuX3Nl bGZfc3RhdGljPXllcywgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcywKKysJICAgIGx0X2N2 X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubywgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1jcm9zcykK KysgICAgICBdKQorKyAgICBmaQorKworKyAgICBDUFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1MiCisr ICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrICAgIExJQlM9IiRzYXZlX0xJQlMiCisrICAg IDs7CisrICBlc2FjCisrCisrICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZiBpbgorKyAgeWVzfG5v KSBlbmFibGVfZGxvcGVuX3NlbGY9JGx0X2N2X2Rsb3Blbl9zZWxmIDs7CisrICAqKSBlbmFibGVf ZGxvcGVuX3NlbGY9dW5rbm93biA7OworKyAgZXNhYworKworKyAgY2FzZSAkbHRfY3ZfZGxvcGVu X3NlbGZfc3RhdGljIGluCisrICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9JGx0 X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyA7OworKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRp Yz11bmtub3duIDs7CisrICBlc2FjCisrZmkKKytdKSMgQUNfTElCVE9PTF9ETE9QRU5fU0VMRgor KworKworKyMgQUNfTElCVE9PTF9QUk9HX0NDX0NfTyhbVEFHTkFNRV0pCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHRvIHNlZSBpZiBvcHRpb25zIC1jIGFu ZCAtbyBhcmUgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyCisrQUNfREVGVU4o W0FDX0xJQlRPT0xfUFJPR19DQ19DX09dLAorK1tBQ19SRVFVSVJFKFtMVF9BQ19QUk9HX1NFRF0p ZG5sCisrQUNfUkVRVUlSRShbX0xUX0FDX1NZU19DT01QSUxFUl0pZG5sCisrQUNfQ0FDSEVfQ0hF Q0soW2lmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHRdLAorKyAgW19M VF9BQ19UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKV0sCisrICBbX0xUX0FDX1RB R1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEpPW5vCisrICAgJHJtIC1yIGNvbmZ0ZXN0 IDI+L2Rldi9udWxsCisrICAgbWtkaXIgY29uZnRlc3QKKysgICBjZCBjb25mdGVzdAorKyAgIG1r ZGlyIG91dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRl c3QuJGFjX2V4dAorKworKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFj X29iamV4dCIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxh c3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmlu ZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2Nv bXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAg ICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQg d29yayBjb3JyZWN0bHkuCisrICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNF RCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcg XAorKyAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcg XAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJc JGFzX21lOl9fb2xpbmVfXzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysg ICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9 JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgZWNo byAiJGFzX21lOl9fb2xpbmVfXzogXCQ/ID0gJGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xPR19G RAorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNf b2JqZXh0CisrICAgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQg aWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlm IHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBs YXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcv XiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAg aWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91 dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBfTFRfQUNfVEFHVkFSKGx0 X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgY2ht b2QgdSt3IC4gMj4mQVNfTUVTU0FHRV9MT0dfRkQKKysgICAkcm0gY29uZnRlc3QqCisrICAgIyBT R0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgor KyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYm ICRybSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKKysgICAkcm0gb3V0Lyog JiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysgICBybWRpciBjb25mdGVzdAorKyAgICRybSBjb25m dGVzdCoKKytdKQorK10pIyBBQ19MSUJUT09MX1BST0dfQ0NfQ19PCisrCisrCisrIyBBQ19MSUJU T09MX1NZU19IQVJEX0xJTktfTE9DS1MoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gZG8gaGFy ZCBsaW5rcyB0byBsb2NrIHNvbWUgZmlsZXMgaWYgbmVlZGVkCisrQUNfREVGVU4oW0FDX0xJQlRP T0xfU1lTX0hBUkRfTElOS19MT0NLU10sCisrW0FDX1JFUVVJUkUoW19MVF9BQ19MT0NLXSlkbmwK KysKKytoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCisraWYgdGVzdCAiJF9MVF9BQ19UQUdWQVIobHRf Y3ZfcHJvZ19jb21waWxlcl9jX28sICQxKSIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0g bm87IHRoZW4KKysgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBw cm92aWRlZCBieSB0aGUgdXNlcgorKyAgQUNfTVNHX0NIRUNLSU5HKFtpZiB3ZSBjYW4gbG9jayB3 aXRoIGhhcmQgbGlua3NdKQorKyAgaGFyZF9saW5rcz15ZXMKKysgICRybSBjb25mdGVzdCoKKysg IGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCisr ICB0b3VjaCBjb25mdGVzdC5hCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBo YXJkX2xpbmtzPW5vCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYg aGFyZF9saW5rcz1ubworKyAgQUNfTVNHX1JFU1VMVChbJGhhcmRfbGlua3NdKQorKyAgaWYgdGVz dCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KKysgICAgQUNfTVNHX1dBUk4oW2AkQ0MnIGRvZXMg bm90IHN1cHBvcnQgYC1jIC1vJywgc28gYG1ha2UgLWonIG1heSBiZSB1bnNhZmVdKQorKyAgICBu ZWVkX2xvY2tzPXdhcm4KKysgIGZpCisrZWxzZQorKyAgbmVlZF9sb2Nrcz1ubworK2ZpCisrXSkj IEFDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLUworKworKworKyMgQUNfTElCVE9PTF9PQkpE SVIKKysjIC0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfT0JKRElSXSwK KytbQUNfQ0FDSEVfQ0hFQ0soW2ZvciBvYmpkaXJdLCBbbHRfY3Zfb2JqZGlyXSwKKytbcm0gLWYg LmxpYnMgMj4vZGV2L251bGwKKytta2RpciAubGlicyAyPi9kZXYvbnVsbAorK2lmIHRlc3QgLWQg LmxpYnM7IHRoZW4KKysgIGx0X2N2X29iamRpcj0ubGlicworK2Vsc2UKKysgICMgTVMtRE9TIGRv ZXMgbm90IGFsbG93IGZpbGVuYW1lcyB0aGF0IGJlZ2luIHdpdGggYSBkb3QuCisrICBsdF9jdl9v YmpkaXI9X2xpYnMKKytmaQorK3JtZGlyIC5saWJzIDI+L2Rldi9udWxsXSkKKytvYmpkaXI9JGx0 X2N2X29iamRpcgorK10pIyBBQ19MSUJUT09MX09CSkRJUgorKworKworKyMgQUNfTElCVE9PTF9Q Uk9HX0xEX0hBUkRDT0RFX0xJQlBBVEgoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgaGFyZGNvZGluZyBhdHRyaWJ1 dGVzLgorK0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfTERfSEFSRENPREVfTElCUEFUSF0sCisr W0FDX01TR19DSEVDS0lORyhbaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9n cmFtc10pCisrX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT0KKytpZiB0ZXN0IC1u ICIkX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkiIHx8IFwKKysg ICB0ZXN0IC1uICIkX0xUX0FDX1RBR1ZBUihydW5wYXRoX3ZhciwgJDEpIiB8fCBcCisrICAgdGVz dCAiWCRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpIiA9ICJYeWVzIiA7IHRo ZW4KKysKKysgICMgV2UgY2FuIGhhcmRjb2RlIG5vbi1leGlzdGFudCBkaXJlY3Rvcmllcy4KKysg IGlmIHRlc3QgIiRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpIiAhPSBubyAmJgor KyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGluZyBpcyBzaGxp YnBhdGhfdmFyLCB3ZQorKyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNlIHdlIG1pZ2h0 IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFyeQorKyAgICAgIyB3aGVuIHdlIHNob3VsZCBi ZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9uZQorKyAgICAgIyMgdGVzdCAi JF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpIiAhPSBubyAmJgorKyAg ICAgdGVzdCAiJF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpIiAhPSBubzsgdGhl bgorKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkg ZGlyZWN0b3J5LgorKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPXJlbGlu aworKyAgZWxzZQorKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQgaGFyZGNvZGluZywgYW5kIHdl IGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgorKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX2FjdGlvbiwgJDEpPWltbWVkaWF0ZQorKyAgZmkKKytlbHNlCisrICAjIFdlIGNhbm5vdCBo YXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29kZSBleGlzdGluZwor KyAgIyBkaXJlY3Rvcmllcy4KKysgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSk9 dW5zdXBwb3J0ZWQKKytmaQorK0FDX01TR19SRVNVTFQoWyRfTFRfQUNfVEFHVkFSKGhhcmRjb2Rl X2FjdGlvbiwgJDEpXSkKKysKKytpZiB0ZXN0ICIkX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9hY3Rp b24sICQxKSIgPSByZWxpbms7IHRoZW4KKysgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1 cHBvcnRlZAorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubworK2VsaWYgdGVzdCAiJHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKKysgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVk IiA9IG5vOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKKysg IGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKKytmaQorK10pIyBBQ19MSUJUT09MX1BST0df TERfSEFSRENPREVfTElCUEFUSAorKworKworKyMgQUNfTElCVE9PTF9TWVNfTElCX1NUUklQCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfTElC X1NUUklQXSwKKytbc3RyaXBsaWI9Cisrb2xkX3N0cmlwbGliPQorK0FDX01TR19DSEVDS0lORyhb d2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlXSkKKytpZiB0ZXN0IC1uICIk U1RSSVAiICYmICRTVFJJUCAtViAyPiYxIHwgZ3JlcCAiR05VIHN0cmlwIiA+L2Rldi9udWxsOyB0 aGVuCisrICB0ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRfc3RyaXBsaWI9IiRTVFJJUCAt LXN0cmlwLWRlYnVnIgorKyAgdGVzdCAteiAiJHN0cmlwbGliIiAmJiBzdHJpcGxpYj0iJFNUUklQ IC0tc3RyaXAtdW5uZWVkZWQiCisrICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorK2Vsc2UKKysjIEZJ WE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24ndCByZWFsbHkgZ29vZCBl bm91Z2gKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICBkYXJ3aW4qKQorKyAgICAgICBpZiB0ZXN0 IC1uICIkU1RSSVAiIDsgdGhlbgorKyAgICAgICAgIHN0cmlwbGliPSIkU1RSSVAgLXgiCisrICAg ICAgICAgb2xkX3N0cmlwbGliPSIkU1RSSVAgLVMiCisrICAgICAgICAgQUNfTVNHX1JFU1VMVChb eWVzXSkKKysgICAgICAgZWxzZQorKyAgQUNfTVNHX1JFU1VMVChbbm9dKQorK2ZpCisrICAgICAg IDs7CisrICAgKikKKysgIEFDX01TR19SRVNVTFQoW25vXSkKKysgICAgOzsKKysgIGVzYWMKKytm aQorK10pIyBBQ19MSUJUT09MX1NZU19MSUJfU1RSSVAKKysKKysKKysjIEFDX0xJQlRPT0xfU1lT X0RZTkFNSUNfTElOS0VSCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUE9S VE1FIEZpbGwgaW4geW91ciBsZC5zbyBjaGFyYWN0ZXJpc3RpY3MKKytBQ19ERUZVTihbQUNfTElC VE9PTF9TWVNfRFlOQU1JQ19MSU5LRVJdLAorK1tBQ19SRVFVSVJFKFtMVF9BQ19QUk9HX1NFRF0p ZG5sCisrQUNfTVNHX0NIRUNLSU5HKFtkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3NdKQor K2xpYnJhcnlfbmFtZXNfc3BlYz0KKytsaWJuYW1lX3NwZWM9J2xpYiRuYW1lJworK3NvbmFtZV9z cGVjPQorK3NocmV4dF9jbWRzPSIuc28iCisrcG9zdGluc3RhbGxfY21kcz0KKytwb3N0dW5pbnN0 YWxsX2NtZHM9CisrZmluaXNoX2NtZHM9CisrZmluaXNoX2V2YWw9Cisrc2hsaWJwYXRoX3Zhcj0K KytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93bgorK3ZlcnNpb25fdHlwZT1ub25l CisrZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgorK3N5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPSIvbGliIC91c3IvbGliIgorK200X2lmKCQxLFtdLFsKKytpZiB0ZXN0ICIkR0NDIiA9 IHllczsgdGhlbgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBkYXJ3aW4qKSBsdF9hd2tfYXJn PSIvXmxpYnJhcmllczovLC9MUi8iIDs7CisrICAgICopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVz Oi8iIDs7CisrICBlc2FjCisrICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJj aC1kaXJzIHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAi cyw9LywvLGciYAorKyAgaWYgZWNobyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgZ3JlcCAnOycg Pi9kZXYvbnVsbCA7IHRoZW4KKysgICAgIyBpZiB0aGUgcGF0aCBjb250YWlucyAiOyIgdGhlbiB3 ZSBhc3N1bWUgaXQgdG8gYmUgdGhlIHNlcGFyYXRvcgorKyAgICAjIG90aGVyd2lzZSBkZWZhdWx0 IHRvIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAiOiIpIC0gaXQgaXMKKysgICAg IyBhc3N1bWVkIHRoYXQgbm8gcGFydCBvZiBhIG5vcm1hbCBwYXRobmFtZSBjb250YWlucyAiOyIg YnV0IHRoYXQgc2hvdWxkCisrICAgICMgb2theSBpbiB0aGUgcmVhbCB3b3JsZCB3aGVyZSAiOyIg aW4gZGlycGF0aHMgaXMgaXRzZWxmIHByb2JsZW1hdGljLgorKyAgICBsdF9zZWFyY2hfcGF0aF9z cGVjPWBlY2hvICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKysg IGVsc2UKKysgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJGx0X3NlYXJjaF9wYXRoX3Nw ZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCisrICBmaQorKyAgIyBPaywg bm93IHdlIGhhdmUgdGhlIHBhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMsIHdlIGNhbiBzdGVwIHRo cm91Z2ggaXQKKysgICMgYW5kIGFkZCBtdWx0aWxpYiBkaXIgaWYgbmVjZXNzYXJ5LgorKyAgbHRf dG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9CisrICBsdF9tdWx0aV9vc19kaXI9YCRDQyAkQ1BQRkxB R1MgJENGTEFHUyAkTERGTEFHUyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5IDI+L2Rldi9udWxs YAorKyAgZm9yIGx0X3N5c19wYXRoIGluICRsdF9zZWFyY2hfcGF0aF9zcGVjOyBkbworKyAgICBp ZiB0ZXN0IC1kICIkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciI7IHRoZW4KKysgICAgICBs dF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRs dF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIgorKyAgICBlbHNlCisrICAgICAgdGVzdCAtZCAi JGx0X3N5c19wYXRoIiAmJiBcCisrCWx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1w X2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoIgorKyAgICBmaQorKyAgZG9uZQorKyAg bHRfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgfCBh d2sgJworK0JFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9IHsKKysgIGx0X2Zvbz0iIjsKKysgIGx0 X2NvdW50PTA7CisrICBmb3IgKGx0X2kgPSBORjsgbHRfaSA+IDA7IGx0X2ktLSkgeworKyAgICBp ZiAoJGx0X2kgIT0gIiIgJiYgJGx0X2kgIT0gIi4iKSB7CisrICAgICAgaWYgKCRsdF9pID09ICIu LiIpIHsKKysgICAgICAgIGx0X2NvdW50Kys7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIGlm IChsdF9jb3VudCA9PSAwKSB7CisrICAgICAgICAgIGx0X2Zvbz0iLyIgJGx0X2kgbHRfZm9vOwor KyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgbHRfY291bnQtLTsKKysgICAgICAgIH0KKysg ICAgICB9CisrICAgIH0KKysgIH0KKysgIGlmIChsdF9mb28gIT0gIiIpIHsgbHRfZnJlcVtbbHRf Zm9vXV0rKzsgfQorKyAgaWYgKGx0X2ZyZXFbW2x0X2Zvb11dID09IDEpIHsgcHJpbnQgbHRfZm9v OyB9CisrfSdgCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGVjaG8gJGx0X3NlYXJjaF9w YXRoX3NwZWNgCisrZWxzZQorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3Iv bGliIC91c3IvbG9jYWwvbGliIgorK2ZpXSkKKytuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgorK2hh cmRjb2RlX2ludG9fbGlicz1ubworKworKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBu bywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgorKyMgZmxhZ3MgdG8g YmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cworK25lZWRfdmVyc2lvbj11bmtub3duCisrCisrY2Fz ZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JGxpYm5hbWUuYScKKysgIHNobGlicGF0aF92YXI9TElCUEFUSAorKworKyAgIyBBSVggMyBoYXMg bm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRo ZSBuYW1lLgorKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKKysgIDs7CisrCisrYWl4W1s0LTldXSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgK KysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICAj IEFJWCA1IHN1cHBvcnRzIElBNjQKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBlbHNlCisrICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54 LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKKysgICAgIyBmb3IgZGVwZW5k ZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAorKyAgICAj IHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5 IHRvCisrICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGlicmFyeS4gIFRo aXMgd2FzIGZpeGVkIGluCisrICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBwcmlv ciB0byAzLjAuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXg0IHwgYWl4NC5bWzAx XV0gfCBhaXg0LltbMDFdXS4qKQorKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8 fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCisrCSAgIGVjaG8gJyB5 ZXMgJworKwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8IGdyZXAgeWVzID4gL2Rl di9udWxsOyB0aGVuCisrCToKKysgICAgICBlbHNlCisrCWNhbl9idWlsZF9zaGFyZWQ9bm8KKysg ICAgICBmaQorKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgIyBBSVggKG9uIFBvd2VyKikgaGFz IG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gY3VycmVudGx5IHdlIGNhbiBub3QgaGFyZGNvZGUg Y29ycmVjdAorKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNhbiBh ZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRvCisrICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9uYWwg bGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCisrICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1 bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUgbGlu a2luZyAob24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbworKyAgICAgICMgaW5z dGVhZCBvZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUgbm90 CisrICAgICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFyaWVzLgorKyAgICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JworKyAgICBlbHNlCisrICAgICAgIyBXZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNpb24gZm9y IHNoYXJlZCBsaWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIKKysgICAgICAjIGFuZCBsYXRlciB3aGVu IHdlIGFyZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4KKysgICAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKKysgICAgICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBmaQor KyAgICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIGZpCisrICA7OworKworK2FtaWdhb3MqKQor KyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKKysg ICMgQ3JlYXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMuCisr ICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYv bnVsbGA7IGRvIGxpYm5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChb W14vXV0qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJHJtIC9zeXMvbGlicy8ke2xpYm5h bWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJu YW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1f aXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJworKyAgOzsKKysKKytiZW9zKikKKysgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBkeW5hbWljX2xpbmtl cj0iJGhvc3Rfb3MgbGQuc28iCisrICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAorKyAgOzsK KysKKytic2RpW1s0NV1dKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF92ZXJzaW9u PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmlu IiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAv dXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorKyAgIyB0aGUgZGVm YXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKKysgICMg L3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxl dCB1cyBhbGxvdworKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1z CisrICA7OworKworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKKysgIHZlcnNpb25fdHlwZT13 aW5kb3dzCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrCisrICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KKysgIHllcyxjeWd3 aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKikKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSck bGlibmFtZS5kbGwuYScKKysgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9i aW4gYnkgcG9zdGluc3RhbGxfY21kcworKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9 YGJhc2VuYW1lIFwke2ZpbGV9YH4KKysgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycu ICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTtlY2hvIFwkZGxuYW1lJ1wnJ2B+CisrICAgICAg ZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhgfgorKyAgICAgIHRlc3QgLWQgXCRkbGRp ciB8fCBta2RpciAtcCBcJGRsZGlyfgorKyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1l IFwkZGxkaXIvJGRsbmFtZX4KKysgICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1lJworKyAg ICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsg ZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CisrICAgICAg ICRybSBcJGRscGF0aCcKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKwor KyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGN5Z3dpbiopCisrICAgICAgIyBDeWd3aW4gRExM cyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgc29uYW1lX3NwZWM9 J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9 IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91 c3IvbG9jYWwvbGliIgorKyAgICAgIDs7CisrICAgIG1pbmd3KikKKysgICAgICAjIE1pbkdXIERM THMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAorKyAgICAgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZp eH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1w cmludC1zZWFyY2gtZGlycyB8IGdyZXAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJh cmllczovLyIgLWUgInMsPS8sLyxnImAKKysgICAgICBpZiBlY2hvICIkc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjIiB8IFtncmVwICc7W2MtekMtWl06LycgPi9kZXYvbnVsbF07IHRoZW4KKysgICAg ICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEggcHJpbnRlZCBi eQorKyAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4uIEdj YyBwcmludHMgaXRzIHNlYXJjaAorKyAgICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3JzLCBh bmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRoZQorKyAgICAgICAgIyBkcml2 ZSBsZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRzIHRoZW0pLCBzbyBsZWF2ZSB0 aGVtLAorKyAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91bmQg dGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1wLAorKyAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1bmRl cnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPWBlY2hvICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3Mv Oy8gL2cnYAorKyAgICAgIGVsc2UKKysgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1g ZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBB UkFUT1IvIC9nImAKKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIHB3MzIqKQorKyAgICAgICMg cHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJworKyAgICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVj aG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJl ZF9leHR9JworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgOzsKKysKKysgICopCisrICAgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdz L1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCisrICAg IDs7CisrICBlc2FjCisrICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJworKyAgIyBGSVhN RTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRh YmxlIGlzIGluCisrICBzaGxpYnBhdGhfdmFyPVBBVEgKKysgIDs7CisrCisrZGFyd2luKiB8IHJo YXBzb2R5KikKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgorKyAgdmVyc2lvbl90 eXBlPWRhcndpbgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3ZlcnN1ZmZpeH0kc2hh cmVkX2V4dCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1l fSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpv cn0kc2hhcmVkX2V4dCcKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIHNo bGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKKysgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1v ZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJworKyAgbTRfaWYoWyQxXSwg W10sWworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjIC91c3IvbG9jYWwvbGliIl0pIAorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91 c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCisrICA7OworKworK2RndXgqKQorKyAgdmVyc2lv bl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubwor KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICA7Owor KworK2ZyZWVic2QxKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK2ZyZWVic2Qq IHwgZHJhZ29uZmx5KikKKysgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4v aWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKysgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVz dCB0aGlzLgorKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KKysgICAgb2Jq Zm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisrICBlbHNlCisrICAgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgICAgZnJlZWJzZFtbMTIzXV0qKSBvYmpmb3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpm b3JtYXQ9ZWxmIDs7CisrICAgIGVzYWMKKysgIGZpCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0k b2JqZm9ybWF0CisrICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQor KyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIG5lZWRfbGliX3By ZWZpeD1ubworKyAgICAgIDs7CisrICAgIGZyZWVic2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5h bWUke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAg ICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNl ICRob3N0X29zIGluCisrICBmcmVlYnNkMiopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLltbMDFdXSogfCBmcmVlYnNkZWxmMy5bWzAx XV0qKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLltbMi05XV0qIHwgZnJlZWJzZGVs ZjMuW1syLTldXSogfCBcCisrICBmcmVlYnNkNC5bWzAtNV1dIHwgZnJlZWJzZGVsZjQuW1swLTVd XSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2RlbGY0LjEuMSkKKysgICAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysg ICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25GbHkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICBl c2FjCisrICA7OworKworK2dudSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK KysgIDs7CisrCisraHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisrICAjIEdpdmUgYSBzb25h bWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1 c2VzIHRvCisrICAjIGxpbmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9ucy4KKysgIHZlcnNpb25fdHlw ZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGNh c2UgJGhvc3RfY3B1IGluCisrICBpYTY0KikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbycKKysgICAg aGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxk LnNvIgorKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisr ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgICBpZiB0ZXN0ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgz MjsgdGhlbgorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDMy IC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIKKysgICAgZWxzZQorKyAgICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDY0IC91c3IvbG9jYWwvbGli L2hwdXg2NCIKKysgICAgZmkKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7OworKyAgIGhwcGEqNjQqKQorKyAgICAgc2hyZXh0 X2NtZHM9Jy5zbCcKKysgICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgIGR5bmFtaWNf bGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BBVEgKKysgICAgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KKysg ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JworKyAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vz ci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIKKysgICAgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKKysgICAgIDs7CisrICAgKikK KysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRs ZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRICisrICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBTSExJQl9QQVRICisr ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAgZXNhYworKyAgIyBIUC1VWCBydW5zICpy ZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUgbW9kZSA1NTUuCisrICBw b3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKKysgIDs7CisrCisraW50ZXJpeFtbMy05 XV0qKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5l ZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBkeW5hbWljX2xpbmtlcj0nSW50 ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKKysgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikK KysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0 b3B1eCA7OworKyAgICAqKQorKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0 aGVuCisrCQl2ZXJzaW9uX3R5cGU9bGludXgKKysJZWxzZQorKwkJdmVyc2lvbl90eXBlPWlyaXgK KysJZmkgOzsKKysgIGVzYWMKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9u PW5vCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9Jwor KyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKKysgICAgbGlic3Vm Zj0gc2hsaWJzdWZmPQorKyAgICA7OworKyAgKikKKysgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29s Lm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAorKyAgICAqLTMyfCoiLTMy ICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQorKyAgICAgIGxpYnN1ZmY9IHNobGli c3VmZj0gbGlibWFnaWM9MzItYml0OzsKKysgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlw bjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKKysgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIg bGlibWFnaWM9TjMyOzsKKysgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRi bWlwICIpCisrICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsK KysgICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICAg IGVzYWMKKysgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hs aWJzdWZmfV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91 c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIv dXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCisrICBoYXJkY29kZV9pbnRvX2xpYnM9 eWVzCisrICA7OworKworKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwg YW91dCwgb3IgY29mZi4KKytsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYq KQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrIyBUaGlzIG11c3QgYmUgTGludXgg RUxGLgorK2xpbnV4KiB8IGsqYnNkKi1nbnUpCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisr ICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJwor KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD1ubworKyAgIyBUaGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBpcyB1 bmFjY2VwdGFibGUuCisrICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93IGZv ciBmYXN0X2luc3RhbGwKKysgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli JHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCisrICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1 ZmZ9IgorKworKyAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBh dGgKKysgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCisrICAgIGx0X2xkX2V4dHJh PWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9k ZXYvbnVsbCIsIFxbJF0yKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcWyRdMDsg c2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwgJFNFRCAtZSAncy8jLiovLzsvXlsgCV0q aHdjYXBbIAldL2Q7cy9bOiwJXS8gL2c7cy89W149XSokLy87cy89W149IF0qIC8gL2c7L14kL2Qn IHwgdHIgJ1xuJyAnICdgCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJhIgorKyAgZmkKKysKKysgICMgV2UgdXNl ZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBv bgorKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxp YnJhcmllcyB3aXRoIHRoZQorKyAgIyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdh cyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCisrICAjIG1vc3QgcG93ZXJwYy1saW51eCBi b3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0aGVzZSBkYXlzIGFuZAorKyAgIyBwZW9wbGUg Y2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdl CisrICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlua2VyIGlzIGluIHVzZS4KKysg IGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28nCisrICA7OworKworK25ldGJzZCopCisr ICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJz aW9uPW5vCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rl di9udWxsOyB0aGVuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXgnCisrICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRs aWJkaXInCisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKKysgIGVs c2UKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk e2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCBs ZC5lbGZfc28nCisrICBmaQorKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK KysgIDs7CisrCisrbmV3c29zNikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcworKyAgOzsKKysKKytudG8tcW54KikKKysgIHZlcnNpb25fdHlwZT1s aW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICA7OworKworK29wZW5ic2QqKQorKyAgdmVyc2lvbl90 eXBlPXN1bm9zCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIiCisrICBu ZWVkX2xpYl9wcmVmaXg9bm8KKysgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgz LjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4KKysgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMuKikgbmVlZF92ZXJzaW9uPXllcyA7Owor KyAgICAqKSAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkX3ZlcnNpb249bm8gIDs7CisrICBl c2FjCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgZmlu aXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKKysgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9f IHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUi ID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAg ICAgIG9wZW5ic2QyLltbODldXSB8IG9wZW5ic2QyLltbODldXS4qKQorKwlzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9bm8KKysJOzsKKysgICAgICAqKQorKwlzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCisrCTs7CisrICAgICAgZXNhYworKyAgZWxzZQorKyAgICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBmaQorKyAgOzsKKysKKytvczIqKQorKyAgbGlibmFt ZV9zcGVjPSckbmFtZScKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAgbmVlZF9saWJfcHJlZml4 PW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAkbGlibmFt ZS5hJworKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJworKyAgc2hsaWJwYXRoX3Zhcj1M SUJQQVRICisrICA7OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgIHZlcnNpb25fdHlw ZT1vc2YKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBscnMv Y2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKKysgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorKyAgOzsKKysKKytyZG9z KikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK3NvbGFyaXMqKQorKyAgdmVyc2lv bl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubwor KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK KysgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCisrICBw b3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJworKyAgOzsKKysKKytzdW5vczQqKQorKyAg dmVyc2lvbl90eXBlPXN1bm9zCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRjb25maWcg JGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0 aGVuCisrICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgZmkKKysgIG5lZWRfdmVyc2lvbj15ZXMK KysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGNhc2Ug JGhvc3RfdmVuZG9yIGluCisrICAgIHNuaSkKKysgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBleHBvcnRfZHluYW1p Y19mbGFnX3NwZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKKysgICAgICBydW5wYXRoX3Zhcj1MRF9S VU5fUEFUSAorKyAgICAgIDs7CisrICAgIHNpZW1lbnMpCisrICAgICAgbmVlZF9saWJfcHJlZml4 PW5vCisrICAgICAgOzsKKysgICAgbW90b3JvbGEpCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5v CisrICAgICAgbmVlZF92ZXJzaW9uPW5vCisrICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3IvbGliIC91 c3IvY2NzL2xpYicKKysgICAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzeXN2NCpNUCopCisr ICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrICAgIHZlcnNpb25fdHlwZT1saW51eAorKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRs aWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBz b25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKKysgICAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGZpCisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1 KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgdmVy c2lvbl90eXBlPWZyZWVic2QtZWxmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVy c2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7 IHRoZW4KKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNy L2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCisrICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubworKyAgZWxzZQorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc2NvMy4ydjUqKQorKyAgICAgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9saWIi CisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0n L3Vzci9saWInCisrICA7OworKworK3V0czQqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgOzsKKysK KysqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrZXNhYworK0FDX01TR19SRVNVTFQo WyRkeW5hbWljX2xpbmtlcl0pCisrdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9i dWlsZF9zaGFyZWQ9bm8KKysKKytBQ19DQUNIRV9WQUwoW2x0X2N2X3N5c19saWJfc2VhcmNoX3Bh dGhfc3BlY10sCisrW2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYyJdKQorK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19s aWJfc2VhcmNoX3BhdGhfc3BlYyIKKytBQ19DQUNIRV9WQUwoW2x0X2N2X3N5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjXSwKKytbbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYyJdKQorK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIk bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCisrCisrdmFyaWFibGVzX3NhdmVkX2Zv cl9yZWxpbms9IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFyIgorK2lmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCisrICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxl c19zYXZlZF9mb3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllf UEFUSCIKKytmaQorK10pIyBBQ19MSUJUT09MX1NZU19EWU5BTUlDX0xJTktFUgorKworKworKyMg X0xUX0FDX1RBR0NPTkZJRworKyMgLS0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtfTFRfQUNf VEFHQ09ORklHXSwKKytbQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKWRubAorK0FDX0FSR19X SVRIKFt0YWdzXSwKKysgICAgW0FDX0hFTFBfU1RSSU5HKFstLXdpdGgtdGFnc0A8OkA9VEFHU0A6 PkBdLAorKyAgICAgICAgW2luY2x1ZGUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9ucyBAPDpAYXV0 b21hdGljQDo+QF0pXSwKKysgICAgW3RhZ25hbWVzPSIkd2l0aHZhbCJdKQorKworK2lmIHRlc3Qg LWYgIiRsdG1haW4iICYmIHRlc3QgLW4gIiR0YWduYW1lcyI7IHRoZW4KKysgIGlmIHRlc3QgISAt ZiAiJHtvZmlsZX0iOyB0aGVuCisrICAgIEFDX01TR19XQVJOKFtvdXRwdXQgZmlsZSBgJG9maWxl JyBkb2VzIG5vdCBleGlzdF0pCisrICBmaQorKworKyAgaWYgdGVzdCAteiAiJExUQ0MiOyB0aGVu CisrICAgIGV2YWwgImAkU0hFTEwgJHtvZmlsZX0gLS1jb25maWcgfCBncmVwICdeTFRDQz0nYCIK KysgICAgaWYgdGVzdCAteiAiJExUQ0MiOyB0aGVuCisrICAgICAgQUNfTVNHX1dBUk4oW291dHB1 dCBmaWxlIGAkb2ZpbGUnIGRvZXMgbm90IGxvb2sgbGlrZSBhIGxpYnRvb2wgc2NyaXB0XSkKKysg ICAgZWxzZQorKyAgICAgIEFDX01TR19XQVJOKFt1c2luZyBgTFRDQz0kTFRDQycsIGV4dHJhY3Rl ZCBmcm9tIGAkb2ZpbGUnXSkKKysgICAgZmkKKysgIGZpCisrICBpZiB0ZXN0IC16ICIkTFRDRkxB R1MiOyB0aGVuCisrICAgIGV2YWwgImAkU0hFTEwgJHtvZmlsZX0gLS1jb25maWcgfCBncmVwICde TFRDRkxBR1M9J2AiCisrICBmaQorKworKyAgIyBFeHRyYWN0IGxpc3Qgb2YgYXZhaWxhYmxlIHRh Z2dlZCBjb25maWd1cmF0aW9ucyBpbiAkb2ZpbGUuCisrICAjIE5vdGUgdGhhdCB0aGlzIGFzc3Vt ZXMgdGhlIGVudGlyZSBsaXN0IGlzIG9uIG9uZSBsaW5lLgorKyAgYXZhaWxhYmxlX3RhZ3M9YGdy ZXAgIl5hdmFpbGFibGVfdGFncz0iICIke29maWxlfSIgfCAkU0VEIC1lICdzL2F2YWlsYWJsZV90 YWdzPVwoLiokXCkvXDEvJyAtZSAncy9cIi8vZydgCisrCisrICBsdF9zYXZlX2lmcz0iJElGUyI7 IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgIGZvciB0YWduYW1lIGluICR0YWduYW1l czsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICMgQ2hlY2sgd2hldGhlciB0YWdu YW1lIGNvbnRhaW5zIG9ubHkgdmFsaWQgY2hhcmFjdGVycworKyAgICBjYXNlIGAkZWNobyAiWCR0 YWduYW1lIiB8ICRYc2VkIC1lICdzOltbLV9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2Rl ZmdoaWprbG1ub3BxcnN0dXZ3eHl6MTIzNDU2Nzg5MCwvXV06OmcnYCBpbgorKyAgICAiIikgOzsK KysgICAgKikgIEFDX01TR19FUlJPUihbaW52YWxpZCB0YWcgbmFtZTogJHRhZ25hbWVdKQorKwk7 OworKyAgICBlc2FjCisrCisrICAgIGlmIGdyZXAgIl4jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBD T05GSUc6ICR0YWduYW1lJCIgPCAiJHtvZmlsZX0iID4gL2Rldi9udWxsCisrICAgIHRoZW4KKysg ICAgICBBQ19NU0dfRVJST1IoW3RhZyBuYW1lIFwiJHRhZ25hbWVcIiBhbHJlYWR5IGV4aXN0c10p CisrICAgIGZpCisrCisrICAgICMgVXBkYXRlIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSB0YWdzLgor KyAgICBpZiB0ZXN0IC1uICIkdGFnbmFtZSI7IHRoZW4KKysgICAgICBlY2hvIGFwcGVuZGluZyBj b25maWd1cmF0aW9uIHRhZyBcIiR0YWduYW1lXCIgdG8gJG9maWxlCisrCisrICAgICAgY2FzZSAk dGFnbmFtZSBpbgorKyAgICAgIENYWCkKKysJaWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJY JENYWCIgIT0gIlhubyIgJiYKKysJICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBgZysr IC12ID4vZGV2L251bGwgMj4mMWAgKSB8fAorKwkgICAgKHRlc3QgIlgkQ1hYIiAhPSAiWGcrKyIp KSkgOyB0aGVuCisrCSAgQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUcKKysJZWxzZQorKwkgIHRh Z25hbWU9IiIKKysJZmkKKysJOzsKKysKKysgICAgICBGNzcpCisrCWlmIHRlc3QgLW4gIiRGNzci ICYmIHRlc3QgIlgkRjc3IiAhPSAiWG5vIjsgdGhlbgorKwkgIEFDX0xJQlRPT0xfTEFOR19GNzdf Q09ORklHCisrCWVsc2UKKysJICB0YWduYW1lPSIiCisrCWZpCisrCTs7CisrCisrICAgICAgR0NK KQorKwlpZiB0ZXN0IC1uICIkR0NKIiAmJiB0ZXN0ICJYJEdDSiIgIT0gIlhubyI7IHRoZW4KKysJ ICBBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJRworKwllbHNlCisrCSAgdGFnbmFtZT0iIgorKwlm aQorKwk7OworKworKyAgICAgIFJDKQorKwlBQ19MSUJUT09MX0xBTkdfUkNfQ09ORklHCisrCTs7 CisrCisrICAgICAgKikKKysJQUNfTVNHX0VSUk9SKFtVbnN1cHBvcnRlZCB0YWcgbmFtZTogJHRh Z25hbWVdKQorKwk7OworKyAgICAgIGVzYWMKKysKKysgICAgICAjIEFwcGVuZCB0aGUgbmV3IHRh ZyBuYW1lIHRvIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSB0YWdzLgorKyAgICAgIGlmIHRlc3QgLW4g IiR0YWduYW1lIiA7IHRoZW4KKysgICAgICBhdmFpbGFibGVfdGFncz0iJGF2YWlsYWJsZV90YWdz ICR0YWduYW1lIgorKyAgICBmaQorKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9p ZnMiCisrCisrICAjIE5vdyBzdWJzdGl0dXRlIHRoZSB1cGRhdGVkIGxpc3Qgb2YgYXZhaWxhYmxl IHRhZ3MuCisrICBpZiBldmFsICJzZWQgLWUgJ3MvXmF2YWlsYWJsZV90YWdzPS4qXCQvYXZhaWxh YmxlX3RhZ3M9XCIkYXZhaWxhYmxlX3RhZ3NcIi8nIFwiJG9maWxlXCIgPiBcIiR7b2ZpbGV9VFwi IjsgdGhlbgorKyAgICBtdiAiJHtvZmlsZX1UIiAiJG9maWxlIgorKyAgICBjaG1vZCAreCAiJG9m aWxlIgorKyAgZWxzZQorKyAgICBybSAtZiAiJHtvZmlsZX1UIgorKyAgICBBQ19NU0dfRVJST1Io W3VuYWJsZSB0byB1cGRhdGUgbGlzdCBvZiBhdmFpbGFibGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb25z Ll0pCisrICBmaQorK2ZpCisrXSkjIF9MVF9BQ19UQUdDT05GSUcKKysKKysKKysjIEFDX0xJQlRP T0xfRExPUEVOCisrIyAtLS0tLS0tLS0tLS0tLS0tLQorKyMgZW5hYmxlIGNoZWNrcyBmb3IgZGxv cGVuIHN1cHBvcnQKKytBQ19ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5dLAorKyBbQUNfQkVGT1JF KFskMF0sW0FDX0xJQlRPT0xfU0VUVVBdKQorK10pIyBBQ19MSUJUT09MX0RMT1BFTgorKworKwor KyMgQUNfTElCVE9PTF9XSU4zMl9ETEwKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBkZWNs YXJlIHBhY2thZ2Ugc3VwcG9ydCBmb3IgYnVpbGRpbmcgd2luMzIgRExMcworK0FDX0RFRlVOKFtB Q19MSUJUT09MX1dJTjMyX0RMTF0sCisrW0FDX0JFRk9SRShbJDBdLCBbQUNfTElCVE9PTF9TRVRV UF0pCisrXSkjIEFDX0xJQlRPT0xfV0lOMzJfRExMCisrCisrCisrIyBBQ19FTkFCTEVfU0hBUkVE KFtERUZBVUxUXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgaW1wbGVtZW50 IHRoZSAtLWVuYWJsZS1zaGFyZWQgZmxhZworKyMgREVGQVVMVCBpcyBlaXRoZXIgYHllcycgb3Ig YG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGB5ZXMnLgorK0FDX0RFRlVOKFtBQ19F TkFCTEVfU0hBUkVEXSwKKytbZGVmaW5lKFtBQ19FTkFCTEVfU0hBUkVEX0RFRkFVTFRdLCBpZmVs c2UoJDEsIG5vLCBubywgeWVzKSlkbmwKKytBQ19BUkdfRU5BQkxFKFtzaGFyZWRdLAorKyAgICBb QUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXNoYXJlZEA8OkA9UEtHU0A6PkBdLAorKwlbYnVpbGQg c2hhcmVkIGxpYnJhcmllcyBAPDpAZGVmYXVsdD1dQUNfRU5BQkxFX1NIQVJFRF9ERUZBVUxUW0A6 PkBdKV0sCisrICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwg aW4KKysgICAgeWVzKSBlbmFibGVfc2hhcmVkPXllcyA7OworKyAgICBubykgZW5hYmxlX3NoYXJl ZD1ubyA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKysgICAgICAjIExvb2sg YXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFy YXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFS QVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9zYXZl X2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfc2hhcmVk PXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAg ICA7OworKyAgICBlc2FjXSwKKysgICAgW2VuYWJsZV9zaGFyZWQ9XUFDX0VOQUJMRV9TSEFSRURf REVGQVVMVCkKKytdKSMgQUNfRU5BQkxFX1NIQVJFRAorKworKworKyMgQUNfRElTQUJMRV9TSEFS RUQKKysjIC0tLS0tLS0tLS0tLS0tLS0tCisrIyBzZXQgdGhlIGRlZmF1bHQgc2hhcmVkIGZsYWcg dG8gLS1kaXNhYmxlLXNoYXJlZAorK0FDX0RFRlVOKFtBQ19ESVNBQkxFX1NIQVJFRF0sCisrW0FD X0JFRk9SRShbJDBdLFtBQ19MSUJUT09MX1NFVFVQXSlkbmwKKytBQ19FTkFCTEVfU0hBUkVEKG5v KQorK10pIyBBQ19ESVNBQkxFX1NIQVJFRAorKworKworKyMgQUNfRU5BQkxFX1NUQVRJQyhbREVG QVVMVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIGltcGxlbWVudCB0aGUg LS1lbmFibGUtc3RhdGljIGZsYWcKKysjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycu ICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KKytBQ19ERUZVTihbQUNfRU5BQkxF X1NUQVRJQ10sCisrW2RlZmluZShbQUNfRU5BQkxFX1NUQVRJQ19ERUZBVUxUXSwgaWZlbHNlKCQx LCBubywgbm8sIHllcykpZG5sCisrQUNfQVJHX0VOQUJMRShbc3RhdGljXSwKKysgICAgW0FDX0hF TFBfU1RSSU5HKFstLWVuYWJsZS1zdGF0aWNAPDpAPVBLR1NAOj5AXSwKKysJW2J1aWxkIHN0YXRp YyBsaWJyYXJpZXMgQDw6QGRlZmF1bHQ9XUFDX0VOQUJMRV9TVEFUSUNfREVGQVVMVFtAOj5AXSld LAorKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2FzZSAkZW5hYmxldmFsIGluCisr ICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKKysgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8g OzsKKysgICAgKikKKysgICAgIGVuYWJsZV9zdGF0aWM9bm8KKysgICAgICAjIExvb2sgYXQgdGhl IGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMu CisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwi CisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9zYXZlX2lmcyIK KysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfc3RhdGljPXllcwor KwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICA7Owor KyAgICBlc2FjXSwKKysgICAgW2VuYWJsZV9zdGF0aWM9XUFDX0VOQUJMRV9TVEFUSUNfREVGQVVM VCkKKytdKSMgQUNfRU5BQkxFX1NUQVRJQworKworKworKyMgQUNfRElTQUJMRV9TVEFUSUMKKysj IC0tLS0tLS0tLS0tLS0tLS0tCisrIyBzZXQgdGhlIGRlZmF1bHQgc3RhdGljIGZsYWcgdG8gLS1k aXNhYmxlLXN0YXRpYworK0FDX0RFRlVOKFtBQ19ESVNBQkxFX1NUQVRJQ10sCisrW0FDX0JFRk9S RShbJDBdLFtBQ19MSUJUT09MX1NFVFVQXSlkbmwKKytBQ19FTkFCTEVfU1RBVElDKG5vKQorK10p IyBBQ19ESVNBQkxFX1NUQVRJQworKworKworKyMgQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTChbREVG QVVMVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIGltcGxlbWVu dCB0aGUgLS1lbmFibGUtZmFzdC1pbnN0YWxsIGZsYWcKKysjIERFRkFVTFQgaXMgZWl0aGVyIGB5 ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KKytBQ19ERUZV TihbQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF0sCisrW2RlZmluZShbQUNfRU5BQkxFX0ZBU1RfSU5T VEFMTF9ERUZBVUxUXSwgaWZlbHNlKCQxLCBubywgbm8sIHllcykpZG5sCisrQUNfQVJHX0VOQUJM RShbZmFzdC1pbnN0YWxsXSwKKysgICAgW0FDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1mYXN0LWlu c3RhbGxAPDpAPVBLR1NAOj5AXSwKKysgICAgW29wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlv biBAPDpAZGVmYXVsdD1dQUNfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZBVUxUW0A6PkBdKV0sCisr ICAgIFtwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAg eWVzKSBlbmFibGVfZmFzdF9pbnN0YWxsPXllcyA7OworKyAgICBubykgZW5hYmxlX2Zhc3RfaW5z dGFsbD1ubyA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KKysgICAg ICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBs aXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQ QVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9 IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFi bGVfZmFzdF9pbnN0YWxsPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9z YXZlX2lmcyIKKysgICAgICA7OworKyAgICBlc2FjXSwKKysgICAgW2VuYWJsZV9mYXN0X2luc3Rh bGw9XUFDX0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVCkKKytdKSMgQUNfRU5BQkxFX0ZBU1Rf SU5TVEFMTAorKworKworKyMgQUNfRElTQUJMRV9GQVNUX0lOU1RBTEwKKysjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBzZXQgdGhlIGRlZmF1bHQgdG8gLS1kaXNhYmxlLWZhc3QtaW5zdGFs bAorK0FDX0RFRlVOKFtBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sCisrW0FDX0JFRk9SRShbJDBd LFtBQ19MSUJUT09MX1NFVFVQXSlkbmwKKytBQ19FTkFCTEVfRkFTVF9JTlNUQUxMKG5vKQorK10p IyBBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTAorKworKworKyMgQUNfTElCVE9PTF9QSUNNT0RFKFtN T0RFXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0t d2l0aC1waWMgZmxhZworKyMgTU9ERSBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0 ZWQsIGl0IGRlZmF1bHRzIHRvIGBib3RoJy4KKytBQ19ERUZVTihbQUNfTElCVE9PTF9QSUNNT0RF XSwKKytbQUNfQkVGT1JFKFskMF0sW0FDX0xJQlRPT0xfU0VUVVBdKWRubAorK3BpY19tb2RlPWlm ZWxzZSgkIywxLCQxLGRlZmF1bHQpCisrXSkjIEFDX0xJQlRPT0xfUElDTU9ERQorKworKworKyMg QUNfUFJPR19FR1JFUAorKyMgLS0tLS0tLS0tLS0tLQorKyMgVGhpcyBpcyBwcmVkZWZpbmVkIHN0 YXJ0aW5nIHdpdGggQXV0b2NvbmYgMi41NCwgc28gdGhpcyBjb25kaXRpb25hbAorKyMgZGVmaW5p dGlvbiBjYW4gYmUgcmVtb3ZlZCBvbmNlIHdlIHJlcXVpcmUgQXV0b2NvbmYgMi41NCBvciBsYXRl ci4KKyttNF9pZm5kZWYoW0FDX1BST0dfRUdSRVBdLCBbQUNfREVGVU4oW0FDX1BST0dfRUdSRVBd LAorK1tBQ19DQUNIRV9DSEVDSyhbZm9yIGVncmVwXSwgW2FjX2N2X3Byb2dfZWdyZXBdLAorKyAg IFtpZiBlY2hvIGEgfCAoZ3JlcCAtRSAnKGF8YiknKSA+L2Rldi9udWxsIDI+JjEKKysgICAgdGhl biBhY19jdl9wcm9nX2VncmVwPSdncmVwIC1FJworKyAgICBlbHNlIGFjX2N2X3Byb2dfZWdyZXA9 J2VncmVwJworKyAgICBmaV0pCisrIEVHUkVQPSRhY19jdl9wcm9nX2VncmVwCisrIEFDX1NVQlNU KFtFR1JFUF0pCisrXSldKQorKworKworKyMgQUNfUEFUSF9UT09MX1BSRUZJWAorKyMgLS0tLS0t LS0tLS0tLS0tLS0tLQorKyMgZmluZCBhIGZpbGUgcHJvZ3JhbSB3aGljaCBjYW4gcmVjb2duaXpl IHNoYXJlZCBsaWJyYXJ5CisrQUNfREVGVU4oW0FDX1BBVEhfVE9PTF9QUkVGSVhdLAorK1tBQ19S RVFVSVJFKFtBQ19QUk9HX0VHUkVQXSlkbmwKKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkMV0pCisr QUNfQ0FDSEVfVkFMKGx0X2N2X3BhdGhfTUFHSUNfQ01ELAorK1tjYXNlICRNQUdJQ19DTUQgaW4K KytbW1xcLypdIHwgID86W1xcL10qXSkKKysgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkTUFHSUNf Q01EIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKysgIDs7 CisrKikKKysgIGx0X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIgorKyAgbHRfc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZG5sICRhY19kdW1teSBmb3JjZXMgc3BsaXR0 aW5nIG9uIGNvbnN0YW50IHVzZXItc3VwcGxpZWQgcGF0aHMuCisrZG5sIFBPU0lYLjIgd29yZCBz cGxpdHRpbmcgaXMgZG9uZSBvbmx5IG9uIHRoZSBvdXRwdXQgb2Ygd29yZCBleHBhbnNpb25zLAor K2RubCBub3QgZXZlcnkgd29yZC4gIFRoaXMgY2xvc2VzIGEgbG9uZ3N0YW5kaW5nIHNoIHNlY3Vy aXR5IGhvbGUuCisrICBhY19kdW1teT0iaWZlbHNlKFskMl0sICwgJFBBVEgsIFskMl0pIgorKyAg Zm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAg ICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICRhY19kaXIv JDE7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8kMSIKKysgICAg ICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0aGVuCisrCWNhc2UgJGRlcGxp YnNfY2hlY2tfbWV0aG9kIGluCisrCSJmaWxlX21hZ2ljICIqKQorKwkgIGZpbGVfbWFnaWNfcmVn ZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiZmlsZV9tYWdpYyBcKC4qXCkiYAor KwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorKwkgIGlmIGV2YWwgJGZpbGVf bWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9udWxsIHwKKysJICAgICRF R1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICA6CisrCSAg ZWxzZQorKwkgICAgY2F0IDw8RU9GIDE+JjIKKysKKysqKiogV2FybmluZzogdGhlIGNvbW1hbmQg bGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAorKyoqKiAkZmlsZV9tYWdp Y19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJlY29nbml6ZS4KKysq KiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8gcmVjb2duaXplIHNoYXJl ZCBsaWJyYXJpZXMKKysqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNyZWF0aW9u IG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKKysqKiogZGVwZW5kIG9uIHNoYXJlZCBsaWJyYXJp ZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKKysqKiogbGlicmFyaWVz IHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5ldmVydGhlbGVzcywgeW91 CisrKioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3VyIHN5c3RlbSBtYW5h Z2VyIGFuZC9vciB0bworKyoqKiBidWctbGlidG9vbEBnbnUub3JnCisrCisrRU9GCisrCSAgZmkg OzsKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgYnJlYWsKKysgICAgZmkKKysgIGRvbmUKKysg IElGUz0iJGx0X3NhdmVfaWZzIgorKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQiCisr ICA7OworK2VzYWNdKQorK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorK2lmIHRl c3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCisrICBBQ19NU0dfUkVTVUxUKCRNQUdJQ19DTUQpCisr ZWxzZQorKyAgQUNfTVNHX1JFU1VMVChubykKKytmaQorK10pIyBBQ19QQVRIX1RPT0xfUFJFRklY CisrCisrCisrIyBBQ19QQVRIX01BR0lDCisrIyAtLS0tLS0tLS0tLS0tCisrIyBmaW5kIGEgZmls ZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUgYSBzaGFyZWQgbGlicmFyeQorK0FDX0RFRlVO KFtBQ19QQVRIX01BR0lDXSwKKytbQUNfUEFUSF9UT09MX1BSRUZJWCgke2FjX3Rvb2xfcHJlZml4 fWZpbGUsIC91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgpCisraWYgdGVzdCAteiAiJGx0X2N2 X3BhdGhfTUFHSUNfQ01EIjsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4Ijsg dGhlbgorKyAgICBBQ19QQVRIX1RPT0xfUFJFRklYKGZpbGUsIC91c3IvYmluJFBBVEhfU0VQQVJB VE9SJFBBVEgpCisrICBlbHNlCisrICAgIE1BR0lDX0NNRD06CisrICBmaQorK2ZpCisrXSkjIEFD X1BBVEhfTUFHSUMKKysKKysKKysjIEFDX1BST0dfTEQKKysjIC0tLS0tLS0tLS0KKysjIGZpbmQg dGhlIHBhdGhuYW1lIHRvIHRoZSBHTlUgb3Igbm9uLUdOVSBsaW5rZXIKKytBQ19ERUZVTihbQUNf UFJPR19MRF0sCisrW0FDX0FSR19XSVRIKFtnbnUtbGRdLAorKyAgICBbQUNfSEVMUF9TVFJJTkco Wy0td2l0aC1nbnUtbGRdLAorKwlbYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxkIEA8 OkBkZWZhdWx0PW5vQDo+QF0pXSwKKysgICAgW3Rlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdpdGhf Z251X2xkPXllc10sCisrICAgIFt3aXRoX2dudV9sZD1ub10pCisrQUNfUkVRVUlSRShbTFRfQUNf UFJPR19TRURdKWRubAorK0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorK0FDX1JFUVVJUkUo W0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERd KWRubAorK2FjX3Byb2c9bGQKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgIyBDaGVj ayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCisrICBBQ19NU0dfQ0hF Q0tJTkcoW2ZvciBsZCB1c2VkIGJ5ICRDQ10pCisrICBjYXNlICRob3N0IGluCisrICAqLSotbWlu Z3cqKQorKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2gg dXBzZXRzIG1pbmd3CisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4m NSB8IHRyIC1kICdcMDE1J2AgOzsKKysgICopCisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXBy b2ctbmFtZT1sZCkgMj4mNWAgOzsKKysgIGVzYWMKKysgIGNhc2UgJGFjX3Byb2cgaW4KKysgICAg IyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCisrICAgIFtbXFwvXV0qIHwgPzpbW1xcL11dKikKKysg ICAgICByZV9kaXJlbHQ9Jy9bW14vXV1bW14vXV0qL1wuXC4vJworKyAgICAgICMgQ2Fub25pY2Fs aXplIHRoZSBwYXRobmFtZSBvZiBsZAorKyAgICAgIGFjX3Byb2c9YGVjaG8gJGFjX3Byb2d8ICRT RUQgJ3MlXFxcXCUvJWcnYAorKyAgICAgIHdoaWxlIGVjaG8gJGFjX3Byb2cgfCBncmVwICIkcmVf ZGlyZWx0IiA+IC9kZXYvbnVsbCAyPiYxOyBkbworKwlhY19wcm9nPWBlY2hvICRhY19wcm9nfCAk U0VEICJzJSRyZV9kaXJlbHQlLyUiYAorKyAgICAgIGRvbmUKKysgICAgICB0ZXN0IC16ICIkTEQi ICYmIExEPSIkYWNfcHJvZyIKKysgICAgICA7OworKyAgIiIpCisrICAgICMgSWYgaXQgZmFpbHMs IHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0NDLgorKyAgICBhY19wcm9nPWxkCisrICAg IDs7CisrICAqKQorKyAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhl IGZpcnN0IGxkIGluIFBBVEguCisrICAgIHdpdGhfZ251X2xkPXVua25vd24KKysgICAgOzsKKysg IGVzYWMKKytlbGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgIEFDX01TR19D SEVDS0lORyhbZm9yIEdOVSBsZF0pCisrZWxzZQorKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3Igbm9u LUdOVSBsZF0pCisrZmkKKytBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9MRCwKKytbaWYgdGVzdCAt eiAiJExEIjsgdGhlbgorKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9S CisrICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbworKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysg ICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysgICAgaWYgdGVzdCAtZiAiJGFjX2Rp ci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0aGVu CisrICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKKysgICAgICAjIENoZWNr IHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNp b24sCisrICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZhcmlhbnRzIG9mIEdOVSBsZCBvbmx5 IGFjY2VwdCAtdi4KKysgICAgICAjIEJyZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9uLUdO VSBsZCB0aGF0IHdlIHByZWZlci4KKysgICAgICBjYXNlIGAiJGx0X2N2X3BhdGhfTEQiIC12IDI+ JjEgPC9kZXYvbnVsbGAgaW4KKysgICAgICAqR05VKiB8ICond2l0aCBCRkQnKikKKysJdGVzdCAi JHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhaworKwk7OworKyAgICAgICopCisrCXRlc3QgIiR3 aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCisrCTs7CisrICAgICAgZXNhYworKyAgICBmaQor KyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrZWxzZQorKyAgbHRfY3ZfcGF0aF9MRD0i JExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKytmaV0p CisrTEQ9IiRsdF9jdl9wYXRoX0xEIgorK2lmIHRlc3QgLW4gIiRMRCI7IHRoZW4KKysgIEFDX01T R19SRVNVTFQoJExEKQorK2Vsc2UKKysgIEFDX01TR19SRVNVTFQobm8pCisrZmkKKyt0ZXN0IC16 ICIkTEQiICYmIEFDX01TR19FUlJPUihbbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEhd KQorK0FDX1BST0dfTERfR05VCisrXSkjIEFDX1BST0dfTEQKKysKKysKKysjIEFDX1BST0dfTERf R05VCisrIyAtLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtBQ19QUk9HX0xEX0dOVV0sCisrW0FD X1JFUVVJUkUoW0FDX1BST0dfRUdSRVBdKWRubAorK0FDX0NBQ0hFX0NIRUNLKFtpZiB0aGUgbGlu a2VyICgkTEQpIGlzIEdOVSBsZF0sIGx0X2N2X3Byb2dfZ251X2xkLAorK1sjIEknZCByYXRoZXIg dXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBhY2Nl cHQgLXYuCisrY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KKysqR05VKiB8ICond2l0 aCBCRkQnKikKKysgIGx0X2N2X3Byb2dfZ251X2xkPXllcworKyAgOzsKKysqKQorKyAgbHRfY3Zf cHJvZ19nbnVfbGQ9bm8KKysgIDs7CisrZXNhY10pCisrd2l0aF9nbnVfbGQ9JGx0X2N2X3Byb2df Z251X2xkCisrXSkjIEFDX1BST0dfTERfR05VCisrCisrCisrIyBBQ19QUk9HX0xEX1JFTE9BRF9G TEFHCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBmaW5kIHJlbG9hZCBmbGFnIGZvciBs aW5rZXIKKysjICAgLS0gUE9SVE1FIFNvbWUgbGlua2VycyBtYXkgbmVlZCBhIGRpZmZlcmVudCBy ZWxvYWQgZmxhZy4KKytBQ19ERUZVTihbQUNfUFJPR19MRF9SRUxPQURfRkxBR10sCisrW0FDX0NB Q0hFX0NIRUNLKFtmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzXSwKKysgIGx0 X2N2X2xkX3JlbG9hZF9mbGFnLAorKyAgW2x0X2N2X2xkX3JlbG9hZF9mbGFnPSctciddKQorK3Jl bG9hZF9mbGFnPSRsdF9jdl9sZF9yZWxvYWRfZmxhZworK2Nhc2UgJHJlbG9hZF9mbGFnIGluCisr IiIgfCAiICIqKSA7OworKyopIHJlbG9hZF9mbGFnPSIgJHJlbG9hZF9mbGFnIiA7OworK2VzYWMK KytyZWxvYWRfY21kcz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisr Y2FzZSAkaG9zdF9vcyBpbgorKyAgZGFyd2luKikKKysgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KKysgICAgICByZWxvYWRfY21kcz0nJExUQ0MgJExUQ0ZMQUdTIC1ub3N0ZGxpYiAke3ds fS1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisrICAgIGVsc2UKKysgICAgICByZWxvYWRfY21k cz0nJExEJHJlbG9hZF9mbGFnIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisrICAgIGZpCisrICAg IDs7CisrZXNhYworK10pIyBBQ19QUk9HX0xEX1JFTE9BRF9GTEFHCisrCisrCisrIyBBQ19ERVBM SUJTX0NIRUNLX01FVEhPRAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIGhvdyB0byBj aGVjayBmb3IgbGlicmFyeSBkZXBlbmRlbmNpZXMKKysjICAtLSBQT1JUTUUgZmlsbCBpbiB3aXRo IHRoZSBkeW5hbWljIGxpYnJhcnkgY2hhcmFjdGVyaXN0aWNzCisrQUNfREVGVU4oW0FDX0RFUExJ QlNfQ0hFQ0tfTUVUSE9EXSwKKytbQUNfQ0FDSEVfQ0hFQ0soW2hvdyB0byByZWNvZ25pemUgZGVw ZW5kZW50IGxpYnJhcmllc10sCisrbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QsCisrW2x0X2N2 X2ZpbGVfbWFnaWNfY21kPSckTUFHSUNfQ01EJworK2x0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxl PQorK2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSd1bmtub3duJworKyMgTmVlZCB0byBzZXQg dGhlIHByZWNlZGluZyB2YXJpYWJsZSBvbiBhbGwgcGxhdGZvcm1zIHRoYXQgc3VwcG9ydAorKyMg aW50ZXJsaWJyYXJ5IGRlcGVuZGVuY2llcy4KKysjICdub25lJyAtLSBkZXBlbmRlbmNpZXMgbm90 IHN1cHBvcnRlZC4KKysjIGB1bmtub3duJyAtLSBzYW1lIGFzIG5vbmUsIGJ1dCBkb2N1bWVudHMg dGhhdCB3ZSByZWFsbHkgZG9uJ3Qga25vdy4KKysjICdwYXNzX2FsbCcgLS0gYWxsIGRlcGVuZGVu Y2llcyBwYXNzZWQgd2l0aCBubyBjaGVja3MuCisrIyAndGVzdF9jb21waWxlJyAtLSBjaGVjayBi eSBtYWtpbmcgdGVzdCBwcm9ncmFtLgorKyMgJ2ZpbGVfbWFnaWMgW1tyZWdleF1dJyAtLSBjaGVj ayBieSBsb29raW5nIGZvciBmaWxlcyBpbiBsaWJyYXJ5IHBhdGgKKysjIHdoaWNoIHJlc3BvbmRz IHRvIHRoZSAkZmlsZV9tYWdpY19jbWQgd2l0aCBhIGdpdmVuIGV4dGVuZGVkIHJlZ2V4LgorKyMg SWYgeW91IGhhdmUgYGZpbGUnIG9yIGVxdWl2YWxlbnQgb24geW91ciBzeXN0ZW0gYW5kIHlvdSdy ZSBub3Qgc3VyZQorKyMgd2hldGhlciBgcGFzc19hbGwnIHdpbGwgKmFsd2F5cyogd29yaywgeW91 IHByb2JhYmx5IHdhbnQgdGhpcyBvbmUuCisrCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeFtbNC05 XV0qKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisr YmVvcyopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysK Kytic2RpW1s0NV1dKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2lj IEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTUxdXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMg bGliKScKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvdXNyL2Jpbi9maWxlIC1MJworKyAgbHRf Y3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3NobGliL2xpYmMuc28KKysgIDs7CisrCisrY3lnd2lu KikKKysgICMgZnVuY193aW4zMl9saWJpZCBpcyBhIHNoZWxsIGZ1bmN0aW9uIGRlZmluZWQgaW4g bHRtYWluLnNoCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2 IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJworKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNf d2luMzJfbGliaWQnCisrICA7OworKworK21pbmd3KiB8IHB3MzIqKQorKyAgIyBCYXNlIE1TWVMv TWluR1cgZG8gbm90IHByb3ZpZGUgdGhlICdmaWxlJyBjb21tYW5kIG5lZWRlZCBieQorKyAgIyBm dW5jX3dpbjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBiYXNl ZCBvbiAnb2JqZHVtcCcsCisrICAjIHVubGVzcyB3ZSBmaW5kICdmaWxlJywgZm9yIGV4YW1wbGUg YmVjYXVzZSB3ZSBhcmUgY3Jvc3MtY29tcGlsaW5nLgorKyAgaWYgKCBmaWxlIC8gKSA+L2Rldi9u dWxsIDI+JjE7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFn aWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19j bWQ9J2Z1bmNfd2luMzJfbGliaWQnCisrICBlbHNlCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlaSotaTM4NiguKmFyY2hpdGVjdHVyZTog aTM4Nik/JworKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCisrICBmaQor KyAgOzsKKysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAgaWYg ZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4K KysgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgaSo4NiApCisrICAgICAgIyBOb3Qgc3VyZSB3 aGV0aGVyIHRoZSBwcmVzZW5jZSBvZiBPcGVuQlNEIGhlcmUgd2FzIGEgbWlzdGFrZS4KKysgICAg ICAjIExldCdzIGFjY2VwdCBib3RoIG9mIHRoZW0gdW50aWwgdGhpcyBpcyBjbGVhcmVkIHVwLgor KyAgICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChGcmVlQlNEfE9w ZW5CU0R8RHJhZ29uRmx5KS9pW1szLTldXTg2IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJl ZCBsaWJyYXJ5JworKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKKysg ICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvLipg CisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD1wYXNzX2FsbAorKyAgZmkKKysgIDs7CisrCisrZ251KikKKysgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2hwdXgxMC4yMCogfCBocHV4MTEq KQorKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgY2FzZSAkaG9zdF9j cHUgaW4KKysgIGlhNjQqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9t YWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxFTEYtW1swLTldXVtbMC05XV0pIHNoYXJlZCBv YmplY3QgZmlsZSAtIElBNjQnCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3Iv bGliL2hwdXgzMi9saWJjLnNvCisrICAgIDs7CisrICBocHBhKjY0KikKKysgICAgW2x0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRi1bMC05 XVswLTldKSBzaGFyZWQgb2JqZWN0IGZpbGUgLSBQQS1SSVNDIFswLTldLlswLTldJ10KKysgICAg bHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCisrICAg IDs7CisrICAqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAo c1tbMC05XV1bWzAtOV1dW1swLTldXXxQQS1SSVNDW1swLTldXS5bWzAtOV1dKSBzaGFyZWQgbGli cmFyeScKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGliYy5zbAor KyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytpbnRlcml4W1szLTldXSopCisrICAjIFBJQyBj b2RlIGlzIGJyb2tlbiBvbiBJbnRlcml4IDMueCwgdGhhdCdzIHdoeSB8XC5hIG5vdCB8X3BpY1wu YSBoZXJlCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGli W1teL11dKyhcLnNvfFwuYSkkJworKyAgOzsKKysKKytpcml4NSogfCBpcml4NiogfCBub25zdG9w dXgqKQorKyAgY2FzZSAkTEQgaW4KKysgICotMzJ8KiItMzIgIikgbGlibWFnaWM9MzItYml0OzsK KysgICotbjMyfCoiLW4zMiAiKSBsaWJtYWdpYz1OMzI7OworKyAgKi02NHwqIi02NCAiKSBsaWJt YWdpYz02NC1iaXQ7OworKyAgKikgbGlibWFnaWM9bmV2ZXItbWF0Y2g7OworKyAgZXNhYworKyAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrIyBUaGlzIG11 c3QgYmUgTGludXggRUxGLgorK2xpbnV4KiB8IGsqYnNkKi1nbnUpCisrICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytuZXRic2QqKQorKyAgaWYgZWNobyBf X0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KKysgICAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5z b1wuW1swLTldXStcLltbMC05XV0rfF9waWNcLmEpJCcKKysgIGVsc2UKKysgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb3xfcGljXC5h KSQnCisrICBmaQorKyAgOzsKKysKKytuZXdvczYqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKGV4ZWN1 dGFibGV8ZHluYW1pYyBsaWIpJworKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmls ZQorKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCisrICA7 OworKworK250by1xbngqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93bgor KyAgOzsKKysKKytvcGVuYnNkKikKKysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0Mg LUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3Bl bmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0n bWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8XC5zb3xf cGljXC5hKSQnCisrICBlbHNlCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRj aF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc29cLltbMC05XV0rXC5bWzAtOV1dK3xfcGljXC5hKSQn CisrICBmaQorKyAgOzsKKysKKytvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytyZG9zKikKKysgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK3NvbGFyaXMqKQorKyAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2 NC4zKikKKysgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICBtb3Rvcm9sYSkKKysgICAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQg W1tNTF1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpIE1bWzAtOV1dW1swLTldXSogVmVy c2lvbiBbWzAtOV1dJworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNy L2xpYi9saWJjLnNvKmAKKysgICAgOzsKKysgIG5jcikKKysgICAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIHNlcXVlbnQpCisrICAgIGx0X2N2X2ZpbGVf bWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdm aWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTE1dXVNCIChzaGFyZWQgb2JqZWN0 fGR5bmFtaWMgbGliICknCisrICAgIDs7CisrICBzbmkpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNf Y21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSJmaWxlX21h Z2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTE1dXVNCIGR5bmFtaWMgbGliIgorKyAgICBs dF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xpYmMuc28KKysgICAgOzsKKysgIHNpZW1l bnMpCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICAgIDs7Cisr ICBwYykKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsK KysgIGVzYWMKKysgIDs7CisrCisrc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3 YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD1wYXNzX2FsbAorKyAgOzsKKytlc2FjCisrXSkKKytmaWxlX21hZ2ljX2NtZD0kbHRfY3Zf ZmlsZV9tYWdpY19jbWQKKytkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2QKKyt0ZXN0IC16ICIkZGVwbGlic19jaGVja19tZXRob2QiICYmIGRlcGxpYnNfY2hl Y2tfbWV0aG9kPXVua25vd24KKytdKSMgQUNfREVQTElCU19DSEVDS19NRVRIT0QKKysKKysKKysj IEFDX1BST0dfTk0KKysjIC0tLS0tLS0tLS0KKysjIGZpbmQgdGhlIHBhdGhuYW1lIHRvIGEgQlNE LWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIKKytBQ19ERUZVTihbQUNfUFJPR19OTV0sCisrW0FDX0NB Q0hFX0NIRUNLKFtmb3IgQlNELWNvbXBhdGlibGUgbm1dLCBsdF9jdl9wYXRoX05NLAorK1tpZiB0 ZXN0IC1uICIkTk0iOyB0aGVuCisrICAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4K KysgIGx0X2N2X3BhdGhfTk09IiROTSIKKytlbHNlCisrICBsdF9ubV90b19jaGVjaz0iJHthY190 b29sX3ByZWZpeH1ubSIKKysgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCIgJiYgdGVzdCAi JGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4KKysgICAgbHRfbm1fdG9fY2hlY2s9IiRsdF9ubV90b19j aGVjayBubSIKKysgIGZpCisrICBmb3IgbHRfdG1wX25tIGluICRsdF9ubV90b19jaGVjazsgZG8K KysgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrICAgIGZvciBh Y19kaXIgaW4gJFBBVEggL3Vzci9jY3MvYmluL2VsZiAvdXNyL2Njcy9iaW4gL3Vzci91Y2IgL2Jp bjsgZG8KKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICB0ZXN0IC16ICIkYWNfZGly IiAmJiBhY19kaXI9LgorKyAgICAgIHRtcF9ubT0iJGFjX2Rpci8kbHRfdG1wX25tIgorKyAgICAg IGlmIHRlc3QgLWYgIiR0bXBfbm0iIHx8IHRlc3QgLWYgIiR0bXBfbm0kYWNfZXhlZXh0IiA7IHRo ZW4KKysJIyBDaGVjayB0byBzZWUgaWYgdGhlIG5tIGFjY2VwdHMgYSBCU0QtY29tcGF0IGZsYWcu CisrCSMgQWRkaW5nIHRoZSBgc2VkIDFxJyBwcmV2ZW50cyBmYWxzZSBwb3NpdGl2ZXMgb24gSFAt VVgsIHdoaWNoIHNheXM6CisrCSMgICBubTogdW5rbm93biBvcHRpb24gIkIiIGlnbm9yZWQKKysJ IyBUcnU2NCdzIG5tIGNvbXBsYWlucyB0aGF0IC9kZXYvbnVsbCBpcyBhbiBpbnZhbGlkIG9iamVj dCBmaWxlCisrCWNhc2UgYCIkdG1wX25tIiAtQiAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBp bgorKwkqL2Rldi9udWxsKiB8IConSW52YWxpZCBmaWxlIG9yIG9iamVjdCB0eXBlJyopCisrCSAg bHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtQiIKKysJICBicmVhaworKwkgIDs7CisrCSopCisrCSAg Y2FzZSBgIiR0bXBfbm0iIC1wIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCisrCSAgKi9k ZXYvbnVsbCopCisrCSAgICBsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1wIgorKwkgICAgYnJlYWsK KysJICAgIDs7CisrCSAgKikKKysJICAgIGx0X2N2X3BhdGhfTk09JHtsdF9jdl9wYXRoX05NPSIk dG1wX25tIn0gIyBrZWVwIHRoZSBmaXJzdCBtYXRjaCwgYnV0CisrCSAgICBjb250aW51ZSAjIHNv IHRoYXQgd2UgY2FuIHRyeSB0byBmaW5kIG9uZSB0aGF0IHN1cHBvcnRzIEJTRCBmbGFncworKwkg ICAgOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgIGRvbmUKKysg ICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICBkb25lCisrICB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9O TSIgJiYgbHRfY3ZfcGF0aF9OTT1ubQorK2ZpXSkKKytOTT0iJGx0X2N2X3BhdGhfTk0iCisrXSkj IEFDX1BST0dfTk0KKysKKysKKysjIEFDX0NIRUNLX0xJQk0KKysjIC0tLS0tLS0tLS0tLS0KKysj IGNoZWNrIGZvciBtYXRoIGxpYnJhcnkKKytBQ19ERUZVTihbQUNfQ0hFQ0tfTElCTV0sCisrW0FD X1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKKytMSUJNPQorK2Nhc2UgJGhvc3QgaW4K KysqLSotYmVvcyogfCAqLSotY3lnd2luKiB8ICotKi1wdzMyKiB8ICotKi1kYXJ3aW4qKQorKyAg IyBUaGVzZSBzeXN0ZW0gZG9uJ3QgaGF2ZSBsaWJtLCBvciBkb24ndCBuZWVkIGl0CisrICA7Owor KyotbmNyLXN5c3Y0LjMqKQorKyAgQUNfQ0hFQ0tfTElCKG13LCBfbXd2YWxpZGNoZWNrbCwgTElC TT0iLWxtdyIpCisrICBBQ19DSEVDS19MSUIobSwgY29zLCBMSUJNPSIkTElCTSAtbG0iKQorKyAg OzsKKysqKQorKyAgQUNfQ0hFQ0tfTElCKG0sIGNvcywgTElCTT0iLWxtIikKKysgIDs7CisrZXNh YworK10pIyBBQ19DSEVDS19MSUJNCisrCisrCisrIyBBQ19MSUJMVERMX0NPTlZFTklFTkNFKFtE SVJFQ1RPUlldKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIHNl dHMgTElCTFRETCB0byB0aGUgbGluayBmbGFncyBmb3IgdGhlIGxpYmx0ZGwgY29udmVuaWVuY2Ug bGlicmFyeSBhbmQKKysjIExURExJTkNMIHRvIHRoZSBpbmNsdWRlIGZsYWdzIGZvciB0aGUgbGli bHRkbCBoZWFkZXIgYW5kIGFkZHMKKysjIC0tZW5hYmxlLWx0ZGwtY29udmVuaWVuY2UgdG8gdGhl IGNvbmZpZ3VyZSBhcmd1bWVudHMuICBOb3RlIHRoYXQKKysjIEFDX0NPTkZJR19TVUJESVJTIGlz IG5vdCBjYWxsZWQgaGVyZS4gIElmIERJUkVDVE9SWSBpcyBub3QgcHJvdmlkZWQsCisrIyBpdCBp cyBhc3N1bWVkIHRvIGJlIGBsaWJsdGRsJy4gIExJQkxUREwgd2lsbCBiZSBwcmVmaXhlZCB3aXRo CisrIyAnJHt0b3BfYnVpbGRkaXJ9LycgYW5kIExURExJTkNMIHdpbGwgYmUgcHJlZml4ZWQgd2l0 aCAnJHt0b3Bfc3JjZGlyfS8nCisrIyAobm90ZSB0aGUgc2luZ2xlIHF1b3RlcyEpLiAgSWYgeW91 ciBwYWNrYWdlIGlzIG5vdCBmbGF0IGFuZCB5b3UncmUgbm90CisrIyB1c2luZyBhdXRvbWFrZSwg ZGVmaW5lIHRvcF9idWlsZGRpciBhbmQgdG9wX3NyY2RpciBhcHByb3ByaWF0ZWx5IGluCisrIyB0 aGUgTWFrZWZpbGVzLgorK0FDX0RFRlVOKFtBQ19MSUJMVERMX0NPTlZFTklFTkNFXSwKKytbQUNf QkVGT1JFKFskMF0sW0FDX0xJQlRPT0xfU0VUVVBdKWRubAorKyAgY2FzZSAkZW5hYmxlX2x0ZGxf Y29udmVuaWVuY2UgaW4KKysgIG5vKSBBQ19NU0dfRVJST1IoW3RoaXMgcGFja2FnZSBuZWVkcyBh IGNvbnZlbmllbmNlIGxpYmx0ZGxdKSA7OworKyAgIiIpIGVuYWJsZV9sdGRsX2NvbnZlbmllbmNl PXllcworKyAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgLS1lbmFi bGUtbHRkbC1jb252ZW5pZW5jZSIgOzsKKysgIGVzYWMKKysgIExJQkxUREw9JyR7dG9wX2J1aWxk ZGlyfS8naWZlbHNlKCQjLDEsWyQxXSxbJ2xpYmx0ZGwnXSkvbGlibHRkbGMubGEKKysgIExURExJ TkNMPSctSSR7dG9wX3NyY2Rpcn0vJ2lmZWxzZSgkIywxLFskMV0sWydsaWJsdGRsJ10pCisrICAj IEZvciBiYWNrd2FyZHMgbm9uLWdldHRleHQgY29uc2lzdGVudCBjb21wYXRpYmlsaXR5Li4uCisr ICBJTkNMVERMPSIkTFRETElOQ0wiCisrXSkjIEFDX0xJQkxURExfQ09OVkVOSUVOQ0UKKysKKysK KysjIEFDX0xJQkxURExfSU5TVEFMTEFCTEUoW0RJUkVDVE9SWV0pCisrIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgc2V0cyBMSUJMVERMIHRvIHRoZSBsaW5rIGZsYWdz IGZvciB0aGUgbGlibHRkbCBpbnN0YWxsYWJsZSBsaWJyYXJ5IGFuZAorKyMgTFRETElOQ0wgdG8g dGhlIGluY2x1ZGUgZmxhZ3MgZm9yIHRoZSBsaWJsdGRsIGhlYWRlciBhbmQgYWRkcworKyMgLS1l bmFibGUtbHRkbC1pbnN0YWxsIHRvIHRoZSBjb25maWd1cmUgYXJndW1lbnRzLiAgTm90ZSB0aGF0 CisrIyBBQ19DT05GSUdfU1VCRElSUyBpcyBub3QgY2FsbGVkIGhlcmUuICBJZiBESVJFQ1RPUlkg aXMgbm90IHByb3ZpZGVkLAorKyMgYW5kIGFuIGluc3RhbGxlZCBsaWJsdGRsIGlzIG5vdCBmb3Vu ZCwgaXQgaXMgYXNzdW1lZCB0byBiZSBgbGlibHRkbCcuCisrIyBMSUJMVERMIHdpbGwgYmUgcHJl Zml4ZWQgd2l0aCAnJHt0b3BfYnVpbGRkaXJ9LycjIGFuZCBMVERMSU5DTCB3aXRoCisrIyAnJHt0 b3Bfc3JjZGlyfS8nIChub3RlIHRoZSBzaW5nbGUgcXVvdGVzISkuICBJZiB5b3VyIHBhY2thZ2Ug aXMgbm90CisrIyBmbGF0IGFuZCB5b3UncmUgbm90IHVzaW5nIGF1dG9tYWtlLCBkZWZpbmUgdG9w X2J1aWxkZGlyIGFuZCB0b3Bfc3JjZGlyCisrIyBhcHByb3ByaWF0ZWx5IGluIHRoZSBNYWtlZmls ZXMuCisrIyBJbiB0aGUgZnV0dXJlLCB0aGlzIG1hY3JvIG1heSBoYXZlIHRvIGJlIGNhbGxlZCBh ZnRlciBBQ19QUk9HX0xJQlRPT0wuCisrQUNfREVGVU4oW0FDX0xJQkxURExfSU5TVEFMTEFCTEVd LAorK1tBQ19CRUZPUkUoWyQwXSxbQUNfTElCVE9PTF9TRVRVUF0pZG5sCisrICBBQ19DSEVDS19M SUIobHRkbCwgbHRfZGxpbml0LAorKyAgW3Rlc3QgeCIkZW5hYmxlX2x0ZGxfaW5zdGFsbCIgIT0g eHllcyAmJiBlbmFibGVfbHRkbF9pbnN0YWxsPW5vXSwKKysgIFtpZiB0ZXN0IHgiJGVuYWJsZV9s dGRsX2luc3RhbGwiID0geG5vOyB0aGVuCisrICAgICBBQ19NU0dfV0FSTihbbGlibHRkbCBub3Qg aW5zdGFsbGVkLCBidXQgaW5zdGFsbGF0aW9uIGRpc2FibGVkXSkKKysgICBlbHNlCisrICAgICBl bmFibGVfbHRkbF9pbnN0YWxsPXllcworKyAgIGZpCisrICBdKQorKyAgaWYgdGVzdCB4IiRlbmFi bGVfbHRkbF9pbnN0YWxsIiA9IHgieWVzIjsgdGhlbgorKyAgICBhY19jb25maWd1cmVfYXJncz0i JGFjX2NvbmZpZ3VyZV9hcmdzIC0tZW5hYmxlLWx0ZGwtaW5zdGFsbCIKKysgICAgTElCTFRETD0n JHt0b3BfYnVpbGRkaXJ9LydpZmVsc2UoJCMsMSxbJDFdLFsnbGlibHRkbCddKS9saWJsdGRsLmxh CisrICAgIExURExJTkNMPSctSSR7dG9wX3NyY2Rpcn0vJ2lmZWxzZSgkIywxLFskMV0sWydsaWJs dGRsJ10pCisrICBlbHNlCisrICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2Fy Z3MgLS1lbmFibGUtbHRkbC1pbnN0YWxsPW5vIgorKyAgICBMSUJMVERMPSItbGx0ZGwiCisrICAg IExURExJTkNMPQorKyAgZmkKKysgICMgRm9yIGJhY2t3YXJkcyBub24tZ2V0dGV4dCBjb25zaXN0 ZW50IGNvbXBhdGliaWxpdHkuLi4KKysgIElOQ0xUREw9IiRMVERMSU5DTCIKKytdKSMgQUNfTElC TFRETF9JTlNUQUxMQUJMRQorKworKworKyMgQUNfTElCVE9PTF9DWFgKKysjIC0tLS0tLS0tLS0t LS0tCisrIyBlbmFibGUgc3VwcG9ydCBmb3IgQysrIGxpYnJhcmllcworK0FDX0RFRlVOKFtBQ19M SUJUT09MX0NYWF0sCisrW0FDX1JFUVVJUkUoW19MVF9BQ19MQU5HX0NYWF0pCisrXSkjIEFDX0xJ QlRPT0xfQ1hYCisrCisrCisrIyBfTFRfQUNfTEFOR19DWFgKKysjIC0tLS0tLS0tLS0tLS0tLQor K0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DWFhdLAorK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NYWF0p CisrQUNfUkVRVUlSRShbX0xUX0FDX1BST0dfQ1hYQ1BQXSkKKytfTFRfQUNfU0hFTExfSU5JVChb dGFnbmFtZXM9JHt0YWduYW1lcyske3RhZ25hbWVzfSx9Q1hYXSkKKytdKSMgX0xUX0FDX0xBTkdf Q1hYCisrCisrIyBfTFRfQUNfUFJPR19DWFhDUFAKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorK0FD X0RFRlVOKFtfTFRfQUNfUFJPR19DWFhDUFBdLAorK1sKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0NY WF0pCisraWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYKKysg ICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCAp IHx8CisrICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgorKyAgQUNfUFJPR19D WFhDUFAKKytmaQorK10pIyBfTFRfQUNfUFJPR19DWFhDUFAKKysKKysjIEFDX0xJQlRPT0xfRjc3 CisrIyAtLS0tLS0tLS0tLS0tLQorKyMgZW5hYmxlIHN1cHBvcnQgZm9yIEZvcnRyYW4gNzcgbGli cmFyaWVzCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfRjc3XSwKKytbQUNfUkVRVUlSRShbX0xUX0FD X0xBTkdfRjc3XSkKKytdKSMgQUNfTElCVE9PTF9GNzcKKysKKysKKysjIF9MVF9BQ19MQU5HX0Y3 NworKyMgLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N10sCisrW0FD X1JFUVVJUkUoW0FDX1BST0dfRjc3XSkKKytfTFRfQUNfU0hFTExfSU5JVChbdGFnbmFtZXM9JHt0 YWduYW1lcyske3RhZ25hbWVzfSx9Rjc3XSkKKytdKSMgX0xUX0FDX0xBTkdfRjc3CisrCisrCisr IyBBQ19MSUJUT09MX0dDSgorKyMgLS0tLS0tLS0tLS0tLS0KKysjIGVuYWJsZSBzdXBwb3J0IGZv ciBHQ0ogbGlicmFyaWVzCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfR0NKXSwKKytbQUNfUkVRVUlS RShbX0xUX0FDX0xBTkdfR0NKXSkKKytdKSMgQUNfTElCVE9PTF9HQ0oKKysKKysKKysjIF9MVF9B Q19MQU5HX0dDSgorKyMgLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW19MVF9BQ19MQU5HX0dD Sl0sCisrW0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0dDSl0sW10sCisrICBbQUNfUFJPVklE RV9JRkVMU0UoW0FdW01fUFJPR19HQ0pdLFtdLAorKyAgICBbQUNfUFJPVklERV9JRkVMU0UoW0xU X0FDX1BST0dfR0NKXSxbXSwKKysgICAgICBbaWZkZWYoW0FDX1BST0dfR0NKXSxbQUNfUkVRVUlS RShbQUNfUFJPR19HQ0pdKV0sCisrCSBbaWZkZWYoW0FdW01fUFJPR19HQ0pdLFtBQ19SRVFVSVJF KFtBXVtNX1BST0dfR0NKXSldLAorKwkgICBbQUNfUkVRVUlSRShbQV1bQ19QUk9HX0dDSl9PUl9B XVtNX1BST0dfR0NKXSldKV0pXSldKV0pCisrX0xUX0FDX1NIRUxMX0lOSVQoW3RhZ25hbWVzPSR7 dGFnbmFtZXMrJHt0YWduYW1lc30sfUdDSl0pCisrXSkjIF9MVF9BQ19MQU5HX0dDSgorKworKwor KyMgQUNfTElCVE9PTF9SQworKyMgLS0tLS0tLS0tLS0tLQorKyMgZW5hYmxlIHN1cHBvcnQgZm9y IFdpbmRvd3MgcmVzb3VyY2UgZmlsZXMKKytBQ19ERUZVTihbQUNfTElCVE9PTF9SQ10sCisrW0FD X1JFUVVJUkUoW0xUX0FDX1BST0dfUkNdKQorK19MVF9BQ19TSEVMTF9JTklUKFt0YWduYW1lcz0k e3RhZ25hbWVzKyR7dGFnbmFtZXN9LH1SQ10pCisrXSkjIEFDX0xJQlRPT0xfUkMKKysKKysKKysj IEFDX0xJQlRPT0xfTEFOR19DX0NPTkZJRworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJzIGZvciB0aGUgQyBjb21waWxlciBh cmUKKysjIHN1aXRhYmx5IGRlZmluZWQuICBUaG9zZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRs eSB1c2VkIGJ5CisrIyBBQ19MSUJUT09MX0NPTkZJRyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29u ZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCisrQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19DX0NP TkZJR10sIFtfTFRfQUNfTEFOR19DX0NPTkZJR10pCisrQUNfREVGVU4oW19MVF9BQ19MQU5HX0Nf Q09ORklHXSwKKytbbHRfc2F2ZV9DQz0iJENDIgorK0FDX0xBTkdfUFVTSChDKQorKworKyMgU291 cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDIHRlc3Qgc291cmNlcy4KKythY19leHQ9YworKworKyMg T2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDIHRlc3Qgc291cmNlcy4KKytvYmpl eHQ9bworK19MVF9BQ19UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgQ29kZSB0byBi ZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisrbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9j b2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNp bXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbigpe3Jl dHVybigwKTt9JworKworK19MVF9BQ19TWVNfQ09NUElMRVIKKysKKysjIHNhdmUgd2FybmluZ3Mv Ym9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorK19MVF9DT01QSUxFUl9CT0lMRVJQTEFU RQorK19MVF9MSU5LRVJfQk9JTEVSUExBVEUKKysKKytBQ19MSUJUT09MX1BST0dfQ09NUElMRVJf Tk9fUlRUSSgkMSkKKytBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDKCQxKQorK0FDX0xJQlRP T0xfUFJPR19DQ19DX08oJDEpCisrQUNfTElCVE9PTF9TWVNfSEFSRF9MSU5LX0xPQ0tTKCQxKQor K0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlMoJDEpCisrQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19M SU5LRVIoJDEpCisrQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEgoJDEpCisrQUNf TElCVE9PTF9TWVNfTElCX1NUUklQCisrQUNfTElCVE9PTF9ETE9QRU5fU0VMRgorKworKyMgUmVw b3J0IHdoaWNoIGxpYnJhcnkgdHlwZXMgd2lsbCBhY3R1YWxseSBiZSBidWlsdAorK0FDX01TR19D SEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKKytBQ19NU0df UkVTVUxUKFskY2FuX2J1aWxkX3NoYXJlZF0pCisrCisrQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVy IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQorK3Rlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9 ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubworKworKyMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVz IGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAorKyMgYXJl IGFsbCBidWlsdCBmcm9tIFBJQy4KKytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisrICB0ZXN0 ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworKyAgaWYgdGVzdCAt biAiJFJBTkxJQiI7IHRoZW4KKysgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFO TElCIFwkbGliIgorKyAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCisrICBmaQor KyAgOzsKKysKKythaXhbWzQtOV1dKikKKysgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NCAm JiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBubyA7IHRoZW4KKysgICAgdGVzdCAi JGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKysgIGZpCisrICAgIDs7 CisrZXNhYworK0FDX01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKKysKKytBQ19NU0dfQ0hF Q0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCisrIyBNYWtlIHN1cmUg ZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCisrdGVzdCAiJGVu YWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisrQUNfTVNHX1JFU1VMVChb JGVuYWJsZV9zdGF0aWNdKQorKworK0FDX0xJQlRPT0xfQ09ORklHKCQxKQorKworK0FDX0xBTkdf UE9QCisrQ0M9IiRsdF9zYXZlX0NDIgorK10pIyBBQ19MSUJUT09MX0xBTkdfQ19DT05GSUcKKysK KysKKysjIEFDX0xJQlRPT0xfTEFOR19DWFhfQ09ORklHCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFycyBmb3IgdGhlIEMg Y29tcGlsZXIgYXJlCisrIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhvc2UgdmFyaWFibGVzIGFyZSBz dWJzZXF1ZW50bHkgdXNlZCBieQorKyMgQUNfTElCVE9PTF9DT05GSUcgdG8gd3JpdGUgdGhlIGNv bXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorK0FDX0RFRlVOKFtBQ19MSUJUT09M X0xBTkdfQ1hYX0NPTkZJR10sIFtfTFRfQUNfTEFOR19DWFhfQ09ORklHKENYWCldKQorK0FDX0RF RlVOKFtfTFRfQUNfTEFOR19DWFhfQ09ORklHXSwKKytbQUNfTEFOR19QVVNIKEMrKykKKytBQ19S RVFVSVJFKFtBQ19QUk9HX0NYWF0pCisrQUNfUkVRVUlSRShbX0xUX0FDX1BST0dfQ1hYQ1BQXSkK KysKKytfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKytfTFRfQUNf VEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihhbHdheXNf ZXhwb3J0X3N5bWJvbHMsICQxKT1ubworK19MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21k cywgJDEpPQorK19MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Cisr X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworK19MVF9BQ19UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQorK19MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQorK19MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciwgJDEpPQorK19MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCisr X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9dW5zdXBwb3J0ZWQKKytf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCisrX0xUX0FDX1RBR1ZBUiht b2R1bGVfY21kcywgJDEpPQorK19MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9 CisrX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorK19MVF9BQ19U QUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCisrX0xUX0FDX1RB R1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPQorK19MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWMsICQxKT0KKytfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0 aWNfcnVudGltZXMsICQxKT1ubworKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSBh bmQgYWZ0ZXIgdGhlIG9iamVjdCBiZWluZyBsaW5rZWQ6CisrX0xUX0FDX1RBR1ZBUihwcmVkZXBf b2JqZWN0cywgJDEpPQorK19MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9CisrX0xU X0FDX1RBR1ZBUihwcmVkZXBzLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihwb3N0ZGVwcywgJDEpPQor K19MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSk9CisrX0xUX0FDX1RB R1ZBUihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT0KKysKKysjIFNvdXJjZSBmaWxlIGV4 dGVuc2lvbiBmb3IgQysrIHRlc3Qgc291cmNlcy4KKythY19leHQ9Y3BwCisrCisrIyBPYmplY3Qg ZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMrKyB0ZXN0IHNvdXJjZXMuCisrb2JqZXh0PW8K KytfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNl ZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0i aW50IHNvbWVfdmFyaWFibGUgPSAwOyIKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUg bGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oaW50LCBjaGFy ICpbW11dKSB7IHJldHVybigwKTsgfScKKysKKysjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0 YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisrX0xUX0FDX1NZ U19DT01QSUxFUgorKworKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVz dCBjb2RlCisrX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrX0xUX0xJTktFUl9CT0lMRVJQTEFU RQorKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisr bHRfc2F2ZV9DQz0kQ0MKKytsdF9zYXZlX0xEPSRMRAorK2x0X3NhdmVfR0NDPSRHQ0MKKytHQ0M9 JEdYWAorK2x0X3NhdmVfd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCisrbHRfc2F2ZV9wYXRoX0xE PSRsdF9jdl9wYXRoX0xECisraWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4eCtzZXR9 IjsgdGhlbgorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkY3h4CisrZWxz ZQorKyAgJGFzX3Vuc2V0IGx0X2N2X3Byb2dfZ251X2xkCisrZmkKKytpZiB0ZXN0IC1uICIke2x0 X2N2X3BhdGhfTERDWFgrc2V0fSI7IHRoZW4KKysgIGx0X2N2X3BhdGhfTEQ9JGx0X2N2X3BhdGhf TERDWFgKKytlbHNlCisrICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9MRAorK2ZpCisrdGVzdCAteiAi JHtMRENYWCtzZXR9IiB8fCBMRD0kTERDWFgKKytDQz0ke0NYWC0iYysrIn0KKytjb21waWxlcj0k Q0MKKytfTFRfQUNfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCisrX0xUX0NDX0JBU0VOQU1FKFsk Y29tcGlsZXJdKQorKworKyMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2VwdGlvbiB3ZW4gY29tcGls aW5nIEMrKyBjb2RlLCBzbyBzZXQgdGhlCisrIyBub19idWlsdGluX2ZsYWcgc2VwYXJhdGVseQor K2lmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9JyAtZm5vLWJ1aWx0aW4nCisrZWxzZQorKyAgX0xU X0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPQorK2ZpCisr CisraWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICMgU2V0IHVwIGRlZmF1bHQgR05VIEMr KyBjb25maWd1cmF0aW9uCisrCisrICBBQ19QUk9HX0xECisrCisrICAjIENoZWNrIGlmIEdOVSBD KysgdXNlcyBHTlUgbGQgYXMgdGhlIHVuZGVybHlpbmcgbGlua2VyLCBzaW5jZSB0aGUKKysgICMg YXJjaGl2aW5nIGNvbW1hbmRzIGJlbG93IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1c2Vk LgorKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICBfTFRfQUNfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9z eW1ib2xzIC1vICRsaWInCisrCisrICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICBfTFRfQUNfVEFH VkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMn CisrCisrICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxk IGJlIGVtcHR5CisrICAgICMgWFhYIEkgdGhpbmsgd2xhcmMgY2FuIGJlIGVsaW1pbmF0ZWQgaW4g bHRjZi1jeHgsIGJ1dCBJIG5lZWQgdG8KKysgICAgIyAgICAgaW52ZXN0aWdhdGUgaXQgYSBsaXR0 bGUgYml0IG1vcmUuIChNTSkKKysgICAgd2xhcmM9JyR7d2x9JworKworKyAgICAjIGFuY2llbnQg R05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCisrICAgIGlmIGV2 YWwgImAkQ0MgLXByaW50LXByb2ctbmFtZT1sZGAgLS1oZWxwIDI+JjEiIHwgXAorKwlncmVwICdu by13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgIF9MVF9BQ19UQUdWQVIo d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29u dmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgZWxzZQorKyAgICAg IF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKysgICAgZmkKKysg IGVsc2UKKysgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgd2xhcmM9CisrCisrICAgICMgQSBnZW5l cmljIGFuZCB2ZXJ5IHNpbXBsZSBkZWZhdWx0IHNoYXJlZCBsaWJyYXJ5IGNyZWF0aW9uCisrICAg ICMgY29tbWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ugd2hlcmUgaXQgdXNlcyB0aGUgbmF0 aXZlCisrICAgICMgbGlua2VyLCBpbnN0ZWFkIG9mIEdOVSBsZC4gIElmIHBvc3NpYmxlLCB0aGlz IHNldHRpbmcgc2hvdWxkCisrICAgICMgb3ZlcnJpZGRlbiB0byB0YWtlIGFkdmFudGFnZSBvZiB0 aGUgbmF0aXZlIGxpbmtlciBmZWF0dXJlcyBvbgorKyAgICAjIHRoZSBwbGF0Zm9ybSBpdCBpcyBi ZWluZyB1c2VkIG9uLgorKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCisrICBmaQorKworKyAgIyBDb21t YW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwor KyAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUg dXNlZCB3aGVuCisrICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysgIG91dHB1dF92ZXJi b3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4m MSB8IGdyZXAgIlwtTCInCisrCisrZWxzZQorKyAgR1hYPW5vCisrICB3aXRoX2dudV9sZD1ubwor KyAgd2xhcmM9CisrZmkKKysKKysjIFBPUlRNRTogZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlv dXIgc3lzdGVtJ3MgQysrIGxpbmsgY2hhcmFjdGVyaXN0aWNzCisrQUNfTVNHX0NIRUNLSU5HKFt3 aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJp ZXNdKQorK19MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCisrY2FzZSAkaG9zdF9vcyBp bgorKyAgYWl4MyopCisrICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKyAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgIDs7CisrICBh aXhbWzQtOV1dKikKKysgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysgICAg ICAjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGltZSBsaW5raW5nIGJ5IGRlZmF1bHQs IHNvIHdlIGRvbid0CisrICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisrICAg ICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKyAgICAgIGV4cF9zeW1fZmxhZz0nLUJleHBv cnQnCisrICAgICAgbm9fZW50cnlfZmxhZz0iIgorKyAgICBlbHNlCisrICAgICAgYWl4X3VzZV9y dW50aW1lbGlua2luZz1ubworKworKyAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVz ZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAorKyAgICAgICMgQUlYIHN0eWxlIGxpbmtpbmcu IElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQorKyAgICAgICMgbmVlZCB0byBk byBydW50aW1lIGxpbmtpbmcuCisrICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMjNdXXxh aXg0LltbMjNdXS4qfGFpeFtbNS05XV0qKQorKwlmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8K KysJICBjYXNlICRsZF9mbGFnIGluCisrCSAgKi1icnRsKikKKysJICAgIGFpeF91c2VfcnVudGlt ZWxpbmtpbmc9eWVzCisrCSAgICBicmVhaworKwkgICAgOzsKKysJICBlc2FjCisrCWRvbmUKKysJ OzsKKysgICAgICBlc2FjCisrCisrICAgICAgZXhwX3N5bV9mbGFnPSctYmV4cG9ydCcKKysgICAg ICBub19lbnRyeV9mbGFnPSctYm5vZW50cnknCisrICAgIGZpCisrCisrICAgICMgV2hlbiBsYXJn ZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KKysg ICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxp bmtpbmcgYSBsaWJyYXJ5CisrICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mg b3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCisrICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZv ciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90CisrICAgICMgZW5vdWdo IHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgorKworKyAg ICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPScnCisrICAgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciwgJDEpPSc6JworKyAgICBfTFRfQUNfVEFHVkFSKGxpbmtfYWxsX2RlcGxp YnMsICQxKT15ZXMKKysKKysgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICBj YXNlICRob3N0X29zIGluIGFpeDQuW1swMTJdXXxhaXg0LltbMDEyXV0uKikKKysgICAgICAjIFdl IG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKKysg ICAgICAjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysK KysJY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAorKwlpZiB0 ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJiBcCisrCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUi IHwgZ3JlcCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJdGhlbgorKwkgICMgV2UgaGF2 ZSByZXdvcmtlZCBjb2xsZWN0MgorKwkgIDoKKysJZWxzZQorKwkgICMgV2UgaGF2ZSBvbGQgY29s bGVjdDIKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVk CisrCSAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1 bmluc3RhbGxlZAorKwkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0 dGluZyBoYXJkY29kZV9taW51c19MCisrCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5r aW5nCisrCSAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrCSAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKysJ ICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKysJZmkKKysJ OzsKKysgICAgICBlc2FjCisrICAgICAgc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCisrICAgICAgaWYg dGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCXNoYXJlZF9mbGFn PSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJworKyAgICAgIGZpCisrICAgIGVsc2UKKysgICAgICAj IG5vdCB1c2luZyBnY2MKKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgor KwkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRh IDMgUmVsZWFzZQorKwkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBj b3JyZWN0OgorKwlzaGFyZWRfZmxhZz0nLUcnCisrICAgICAgZWxzZQorKwlpZiB0ZXN0ICIkYWl4 X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJICBzaGFyZWRfZmxhZz0nJHt3bH0t RycKKysJZWxzZQorKwkgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCisrCWZpCisrICAgICAg ZmkKKysgICAgZmkKKysKKysgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4 cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0 IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQuCisrICAg IF9MVF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCisrICAgIGlmIHRl c3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKyAgICAgICMgV2Fybmlu ZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwp LAorKyAgICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1 Y2UgYSBicm9rZW4gbGlicmFyeS4KKysgICAgICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5l ZF9mbGFnLCAkMSk9Jy1iZXJvaycKKysgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJw YXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KKysgICAg ICBfTFRfQUNfU1lTX0xJQlBBVEhfQUlYCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBh dGgiCisrCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9Ilwk Q0MiJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9 JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVm aW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuIGVjaG8gIiR7d2x9JHthbGxvd191bmRlZmluZWRfZmxh Z30iOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAk c2hhcmVkX2ZsYWciCisrICAgICBlbHNlCisrICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlh NjQ7IHRoZW4KKysJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworKwlfTFRfQUNfVEFHVkFSKGFsbG93X3Vu ZGVmaW5lZF9mbGFnLCAkMSk9Ii16IG5vZGVmcyIKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVy X2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5bV9mbGFn OlwkZXhwb3J0X3N5bWJvbHMiCisrICAgICAgZWxzZQorKwkjIERldGVybWluZSB0aGUgZGVmYXVs dCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4K KysJX0xUX0FDX1NZU19MSUJQQVRIX0FJWAorKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIK KysJIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBm bGFncywKKysJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVj ZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwlfTFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAk MSk9JyAke3dsfS1iZXJub3RvaycKKysJX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxh ZywgJDEpPScgJHt3bH0tYmVyb2snCisrCSMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVk IGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworKwlfTFRfQUNfVEFHVkFSKHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyRjb252ZW5pZW5jZScKKysJX0xUX0FDX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKwkjIFRoaXMgaXMgc2ltaWxhciB0byBob3cg QUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgorKwlfTFRfQUNf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAk b3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRj b21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9m bGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0 cHV0X29iamRpci8kc29uYW1lJworKyAgICAgIGZpCisrICAgIGZpCisrICAgIDs7CisrCisrICBi ZW9zKikKKysgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0 czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgIyBKb3NlcGggQmVja2VuYmFj aCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYworKyAgICAgICMgc3Vw cG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklY TUUKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW5vc3RhcnQg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1l IC1vICRsaWInCisrICAgIGVsc2UKKysgICAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrICAgIGZpCisrICAgIDs7CisrCisrICBjaG9ydXMqKQorKyAgICBjYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgICopCisrCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAorKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCTs7CisrICAgIGVz YWMKKysgICAgOzsKKysKKysgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKKysgICAgIyBfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFu aW5nbGVzcywKKysgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysg ICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRp cicKKysgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9y dGVkCisrICAgIF9MVF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KKysg ICAgX0xUX0FDX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9 eWVzCisrCisrICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ2F1dG8taW1wb3J0JyA+IC9k ZXYvbnVsbDsgdGhlbgorKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk e3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5r ZXIgJGxpYicKKysgICAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMg YSAuZGVmIGZpbGUgKDFzdCBsaW5lCisrICAgICAgIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlz OyBvdGhlcndpc2UsIHByZXBlbmQuLi4KKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhw c3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVY UE9SVFM7IHRoZW4KKysJY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUu ZGVmOworKyAgICAgIGVsc2UKKysJZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZS5kZWY7CisrCWNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWY7CisrICAgICAgZml+CisrICAgICAgJENDIC1zaGFyZWQgLW5vc3RkbGliICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9 LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAk bGliJworKyAgICBlbHNlCisrICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwor KyAgICBmaQorKyAgOzsKKysgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgIF9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKyAgICAgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2Rl X2F1dG9tYXRpYywgJDEpPXllcworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYywgJDEpPScnCisrICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBs aWJzLCAkMSk9eWVzCisrICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCisrICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5 ZXMgOyB0aGVuCisrICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCisrICAgICAg X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93 X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9m bGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJf c2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKKysgICAgICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9j bWRzLCAkMSk9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwk bGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKKysgICAg ICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwg XCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4 cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRs aWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9c JHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0 X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5 bV9jbWRzLCAkMSk9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1 dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5l ZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2Zs YWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAgICBpZiB0ZXN0 ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0gInllcyI7IHRoZW4KKysgICAgICAgIF9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRl cm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWlj bGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRl cGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2 ZXJzdHJpbmcke19sdF9kc3ltdXRpbH0iCisrICAgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0 cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1yIC1rZWVwX3ByaXZh dGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAt ZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVy Lm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29u YW1lIFwkdmVyc3RyaW5nJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysg ICAgICBmaQorKyAgICAgIGVsc2UKKysgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAg ICAgeGxjKikKKysgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysgICAg ICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1xbWtzaHJvYmogJHt3 bH0tc2luZ2xlX21vZHVsZSAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9YGVjaG8gJHJw YXRoLyRzb25hbWVgICR4bGN2ZXJzdHJpbmcnCisrICAgICAgICAgIF9MVF9BQ19UQUdWQVIobW9k dWxlX2NtZHMsICQxKT0nJENDICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliIC1idW5kbGUg JGxpYm9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgICAgICMgRG9uJ3QgZml4 IHRoaXMgYnkgdXNpbmcgdGhlIGxkIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgZmxhZywgaXQgZG9l c24ndCBleGlzdCBpbiBvbGRlciBkYXJ3aW4gbGRzCisrICAgICAgICAgIF9MVF9BQ19UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0q LCwiIC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRp ci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAtcW1rc2hyb2JqICR7d2x9LXNpbmdsZV9t b2R1bGUgJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LWluc3RhbGxfbmFtZSAke3dsfSRycGF0aC8kc29uYW1lICR4bGN2 ZXJzdHJpbmd+bm1lZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBz eW0gJHtsaWJ9JworKyAgICAgICAgICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywg JDEpPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5cKC4uKlwpLF8m LCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMu ZXhwc3ltfiRDQyAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgIC1vICRsaWIgLWJ1bmRsZSAkbGlib2Jq cyAkZGVwbGlicyRjb21waWxlcl9mbGFnc35ubWVkaXQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJu YW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCisrICAgICAgICAgIDs7CisrICAgICAgICopCisr ICAgICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgICA7Owor KyAgICAgIGVzYWMKKysgICAgICBmaQorKyAgICAgICAgOzsKKysKKysgIGRndXgqKQorKyAgICBj YXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIGVjKysqKQorKwkjIEZJWE1FOiBpbnNlcnQgcHJv cGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bworKwk7OworKyAgICAgIGdoY3gqKQorKwkjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJX0xUX0FDX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubworKwk7OworKyAgICAgICopCisrCSMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrCTs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGZyZWVic2RbWzEyXV0qKQorKyAgICAj IEMrKyBzaGFyZWQgbGlicmFyaWVzIHJlcG9ydGVkIHRvIGJlIGZhaXJseSBicm9rZW4gYmVmb3Jl IHN3aXRjaCB0byBFTEYKKysgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAg ICA7OworKyAgZnJlZWJzZC1lbGYqKQorKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19u ZWVkX2xjLCAkMSk9bm8KKysgICAgOzsKKysgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICAg IyBGcmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBHTlUgbGQgd2l0aCBzdGFuZGFy ZCBFTEYKKysgICAgIyBjb252ZW50aW9ucworKyAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywg JDEpPXllcworKyAgICA7OworKyAgZ251KikKKysgICAgOzsKKysgIGhwdXg5KikKKysgICAgX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0k bGliZGlyJworKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQx KT06CisrICAgIF9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LUUnCisrICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUgc2Vh cmNoIFBBVEgsCisrCQkJCSMgYnV0IGFzIHRoZSBkZWZhdWx0CisrCQkJCSMgbG9jYXRpb24gb2Yg dGhlIGxpYnJhcnkuCisrCisrICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgIENDKikKKysg ICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICBf TFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgOzsKKysgICAgYUNDKikKKysg ICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckcm0gJG91dHB1dF9vYmpkaXIv JHNvbmFtZX4kQ0MgLWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGli IHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICAjIENvbW1hbmRzIHRv IG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrICAgICAg IyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNl ZCB3aGVuCisrICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrICAgICAgIworKyAg ICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNv bXBpbGVyIGZyb20KKysgICAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZp bGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKyAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNv IHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysgICAgICAjIGRl cGVuZGVuY2llcy4KKysgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgk Q0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgZ3JlcCAiW1stXV1MImA7 IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2Jq ZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztl c2FjOyBkb25lOyBlY2hvICRsaXN0JworKyAgICAgIDs7CisrICAgICopCisrICAgICAgaWYgdGVz dCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRybSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAt ZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25h bWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgIGVsc2UKKysgICAgICAgICMgRklYTUU6 IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgX0xUX0FDX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgZXNhYworKyAg ICA7OworKyAgaHB1eDEwKnxocHV4MTEqKQorKyAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5v OyB0aGVuCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAg ICAgIGhwcGEqNjQqfGlhNjQqKSA7OworKyAgICAgICopCisrCV9MVF9BQ19UQUdWQVIoZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrICAgICAgICA7OworKyAgICAgIGVz YWMKKysgICAgZmkKKysgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgaHBwYSo2NCp8aWE2NCop CisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgICAgIF9M VF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysg ICAgKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKyAg ICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUg c2VhcmNoIFBBVEgsCisrCQkJCQkgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAorKwkJCQkJICAg ICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysgICAgICA7OworKyAgICBlc2FjCisrCisr ICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgQ0MqKQorKwkjIEZJWE1FOiBpbnNlcnQg cHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubworKwk7OworKyAgICAgIGFDQyopCisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQq KQorKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7 d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwlpYTY0KikKKysJICBfTFRf QUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUg JHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJKikKKysJ ICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRz b25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJ ICA7OworKwllc2FjCisrCSMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJv c2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0 IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSMgbGlua2luZyBhIHNoYXJlZCBsaWJy YXJ5LgorKwkjCisrCSMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVu dCB0aGlzIGNvbXBpbGVyIGZyb20KKysJIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVj dCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJIyBmcm9tIHRoZSBvdXRwdXQgc28g dGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkjIGRlcGVuZGVu Y2llcy4KKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxB R1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8IGdyZXAgIlwtTCJgOyBsaXN0PSIiOyBmb3Ig eiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxp c3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZWNo byAkbGlzdCcKKysJOzsKKysgICAgICAqKQorKwlpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgor KwkgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRoZW4KKysJICAgIGNhc2UgJGhvc3RfY3B1 IGluCisrCSAgICBocHBhKjY0KikKKysJICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lIC1v ICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICA7OworKwkgICAgaWE2NCopCisrCSAgICAgIF9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAk e3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cycKKysJICAgICAgOzsKKysJICAgICopCisrCSAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFt ZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAg ICA7OworKwkgICAgZXNhYworKwkgIGZpCisrCWVsc2UKKysJICAjIEZJWE1FOiBpbnNlcnQgcHJv cGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrCWZpCisrCTs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGludGVyaXhbWzMtOV1dKikK KysgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgICBfTFRfQUNf VEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysg ICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScK KysgICAgIyBIYWNrOiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1 c2Ugb2YgYSBicm9rZW4gZ2NjLgorKyAgICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJl IGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisrICAgICMgZGVmYXVsdCkg YW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1v cnkKKysgICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0 aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorKyAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNl IGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisrICAgICMgdGltZS4g IE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNl LgorKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAk e3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQg KyAxMzQyMTc3MjgwYCAtbyAkbGliJworKyAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIv JHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUs JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtS QU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysg ICAgOzsKKysgIGlyaXg1KiB8IGlyaXg2KikKKysgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysg ICAgICBDQyopCisrCSMgU0dJIEMrKworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0 ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBk YXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCisr CSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1 c2luZworKwkjICJDQyAtYXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBJUklYIEMrKyBjb21waWxlci4g IFRoaXMgaXMKKysJIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0 ZXMgYXJlIGluY2x1ZGVkCisrCSMgaW4gdGhlIGFyY2hpdmUuCisrCV9MVF9BQ19UQUdWQVIob2xk X2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLWFyIC1XUiwtdSAtbyAkb2xkbGliICRvbGRvYmpzJwor Kwk7OworKyAgICAgICopCisrCWlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrCSAgaWYgdGVz dCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk e3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNp b24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9v YmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkgIGVsc2UKKysJICAgIF9MVF9BQ19UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3ds fS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgIC1vICRsaWInCisrCSAgZmkKKysJZmkKKysJ X0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisrCTs7CisrICAgIGVzYWMK KysgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yLCAkMSk9OgorKyAgICA7OworKyAgbGludXgqIHwgaypic2QqLWdudSkKKysgICAg Y2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBLQ0MqKQorKwkjIEt1Y2sgYW5kIEFzc29jaWF0 ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisrCisrCSMgS0NDIHdpbGwgb25seSBjcmVhdGUg YSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKKysJIyBlbmRzIHdpdGggIi5zbyIg KG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQorKwkjIHRvIGl0cyBw cm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgorKwlfTFRfQUNfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAn XCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8g JGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAt LXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCisrCV9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRf ZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7 IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsg JENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAke3dsfS1yZXRhaW4t c3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRsaWInCisrCSMgQ29t bWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMK KysJIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUg dXNlZCB3aGVuCisrCSMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkjCisrCSMgVGhlcmUg ZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20K KysJIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRv IHN0cmlwIHRoZW0KKysJIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBp bmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkjIGRlcGVuZGVuY2llcy4KKysJb3V0cHV0X3ZlcmJv c2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1v IGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMSB8IGdyZXAgImxkImA7IHJtIC1mIGxpYmNvbmZ0 ZXN0JHNoYXJlZF9leHQ7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBp biBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlz dD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRsaXN0JworKworKwlfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXJwYXRoLCRsaWJkaXInCisr CV9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBv cnQtZHluYW1pYycKKysKKysJIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMg bXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSMgIkNDIC1Cc3RhdGljIiwgd2hlcmUgIkNDIiBpcyB0 aGUgS0FJIEMrKyBjb21waWxlci4KKysJX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJworKwk7OworKyAgICAgIGljcGMq KQorKwkjIEludGVsIEMrKworKwl3aXRoX2dudV9sZD15ZXMKKysJIyB2ZXJzaW9uIDguMCBhbmQg YWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbHMKKysJIyBpZiB3 ZSBhZGQgJHByZWRlcF9vYmplY3RzIGFuZCAkcG9zdGRlcF9vYmplY3RzLCBob3dldmVyIDcuMSBh bmQKKysJIyBlYXJsaWVyIGRvIG5vdCBhZGQgdGhlIG9iamVjdHMgdGhlbXNlbHZlcy4KKysJY2Fz ZSBgJENDIC1WIDI+JjFgIGluCisrCSoiVmVyc2lvbiA3LiIqKQorKyAgCSAgX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lIC1vICRsaWInCisrICAJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7 d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAg OzsKKysJKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3ZXIKKysJICB0bXBfaWR5bj0KKysJICBjYXNl ICRob3N0X2NwdSBpbgorKwkgICAgaWE2NCopIHRtcF9pZHluPScgLWlfZHluYW1pYyc7OworKwkg IGVzYWMKKysgIAkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk JyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9s cy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkgIDs7CisrCWVzYWMKKysJX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrCV9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworKwlf TFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0 LWR5bmFtaWMnCisrCV9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0n JHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUn CisrCTs7CisrICAgICAgcGdDQyogfCBwZ2NwcCopCisrICAgICAgICAjIFBvcnRsYW5kIEdyb3Vw IEMrKyBjb21waWxlcgorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxp YicKKysgIAlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJl dGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysKKysJX0xU X0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1ycGF0aCAk e3dsfSRsaWJkaXInCisrCV9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysJX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVu aWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5l d19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAg JHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrICAgICAgICA7OworKyAgICAgIGN4eCopCisrCSMg Q29tcGFxIEMrKworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3 bCRleHBvcnRfc3ltYm9scycKKysKKysJcnVucGF0aF92YXI9TERfUlVOX1BBVEgKKysJX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwor KwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisrCSMg Q29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlz dHMKKysJIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBh cmUgdXNlZCB3aGVuCisrCSMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkjCisrCSMgVGhl cmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZy b20KKysJIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVk IHRvIHN0cmlwIHRoZW0KKysJIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdl dCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkjIGRlcGVuZGVuY2llcy4KKysJb3V0cHV0X3Zl cmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0 LiRvYmpleHQgMj4mMSB8IGdyZXAgImxkImA7IHRlbXBsaXN0PWBlY2hvICR0ZW1wbGlzdCB8ICRT RUQgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAk dGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoi OzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZWNobyAkbGlz dCcKKysJOzsKKysgICAgICAqKQorKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysJ KlN1blwgQyopCisrCSAgIyBTdW4gQysrIDUuOQorKwkgIF9MVF9BQ19UQUdWQVIobm9fdW5kZWZp bmVkX2ZsYWcsICQxKT0nIC16ZGVmcycKKysJICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MnCisrCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAt RyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzJworKwkgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrCSAgX0xU X0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJj aGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0 ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRj b252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUt YXJjaGl2ZScKKysKKysJICAjIE5vdCBzdXJlIHdoZXRoZXIgc29tZXRoaW5nIGJhc2VkIG9uCisr CSAgIyAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJl ZF9leHQgMj4mMQorKwkgICMgd291bGQgYmUgYmV0dGVyLgorKwkgIG91dHB1dF92ZXJib3NlX2xp bmtfY21kPSdlY2hvJworKworKwkgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZp bGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlz IHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcworKwkgICMgbmVjZXNzYXJ5IHRvIG1ha2Ug c3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorKwkgICMgaW4gdGhlIGFy Y2hpdmUuCisrCSAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAteGFy IC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICBlc2FjCisr ICAgIDs7CisrICBseW54b3MqKQorKyAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKKysgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICA7 OworKyAgbTg4ayopCisrICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKyAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgIDs7CisrICBt dnMqKQorKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIGN4eCopCisrCSMgRklYTUU6 IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlfTFRfQUNfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCisrCTs7CisrICAgICAgKikKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0CisrCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJ OzsKKysgICAgZXNhYworKyAgICA7OworKyAgbmV0YnNkKikKKysgICAgaWYgZWNobyBfX0VMRl9f IHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgIF9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAgLW8gJGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkbGlua2VyX2Zs YWdzJworKyAgICAgIHdsYXJjPQorKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0 aF92YXIsICQxKT1ubworKyAgICBmaQorKyAgICAjIFdvcmthcm91bmQgc29tZSBicm9rZW4gcHJl LTEuNSB0b29sY2hhaW5zCisrICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJl ZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgY29uZnRlc3QuJG9iamV4 dCB8ICRTRUQgLWUgInM6LWxnY2MgLWxjIC1sZ2NjOjoiJworKyAgICA7OworKyAgb3BlbmJzZDIq KQorKyAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIGFyZSBmYWlybHkgYnJva2VuCisrICAgIF9M VF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgOzsKKysgIG9wZW5ic2QqKQorKyAg ICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKyAgICAgIF9MVF9BQ19UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCisrICAgICAg X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRo LCRsaWJkaXInCisrICAgICAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwg Z3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44 LXBvd2VycGMiOyB0aGVuCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZp bGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCV9MVF9BQ19UQUdWQVIoZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrCV9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIk d2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgICBmaQorKyAgICAgIG91dHB1dF92ZXJi b3NlX2xpbmtfY21kPSdlY2hvJworKyAgICBlbHNlCisrICAgICAgX0xUX0FDX1RBR1ZBUihsZF9z aGxpYnMsICQxKT1ubworKyAgICBmaQorKyAgICA7OworKyAgb3NmMyopCisrICAgIGNhc2UgJGNj X2Jhc2VuYW1lIGluCisrICAgICAgS0NDKikKKysJIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMu IChLQUkpIEMrKyBDb21waWxlcgorKworKwkjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVk IGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCisrCSMgZW5kcyB3aXRoICIuc28iIChvciAiLnNs IiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKKysJIyB0byBpdHMgcHJvcGVyIG5h bWUgKHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChb W14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAk U0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUg JHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJworKworKwlfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicK KysJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKworKwkj IEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNp bmcKKysJIyAiQ0MgLUJzdGF0aWMiLCB3aGVyZSAiQ0MiIGlzIHRoZSBLQUkgQysrIGNvbXBpbGVy LgorKwlfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1Cc3RhdGljIC1v ICRvbGRsaWIgJG9sZG9ianMnCisrCisrCTs7CisrICAgICAgUkNDKikKKysJIyBSYXRpb25hbCBD KysgMi40LjEKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Cisr CV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJOzsKKysgICAgICBjeHgqKQorKwlf TFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5y ZXNvbHZlZCAke3dsfVwqJworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAkdmVy c3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1v ICRsaWInCisrCisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHBy b2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkjIHdoYXQgImhpZGRlbiIgbGlicmFy aWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJIyBsaW5raW5nIGEg c2hhcmVkIGxpYnJhcnkuCisrCSMKKysJIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdh eSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkjIGV4cGxpY2l0bHkgbGlua2luZyBz eXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKwkjIGZyb20gdGhl IG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Cisr CSMgZGVwZW5kZW5jaWVzLgorKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRD QyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAibGQiIHwg Z3JlcCAtdiAibGQ6ImA7IHRlbXBsaXN0PWBlY2hvICR0ZW1wbGlzdCB8ICRTRUQgInMvXCheLips ZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8g Y2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQp OzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBlY2hvICRsaXN0JworKwk7OworKyAg ICAgICopCisrCWlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBu bzsgdGhlbgorKwkgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7 d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5n IiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRl X3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysK KysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t cnBhdGggJHt3bH0kbGliZGlyJworKwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciwgJDEpPToKKysKKysJICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVj ZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmll cywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgIyBsaW5raW5nIGEg c2hhcmVkIGxpYnJhcnkuCisrCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVk ICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAiXC1MIicKKysKKysJZWxz ZQorKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgIF9M VF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJZmkKKysJOzsKKysgICAgZXNhYworKyAg ICA7OworKyAgb3NmNCogfCBvc2Y1KikKKysgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAg ICBLQ0MqKQorKwkjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVy CisrCisrCSMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0 cHV0IGZpbGUKKysJIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJl bmFtZSB0aGUgbGlicmFyeQorKwkjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBh ZnRlciBsaW5raW5nLgorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0ZW1wZXh0 PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwp L1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4 dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxp YjsgbXYgXCR0ZW1wbGliICRsaWInCisrCisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJworKwlfTFRfQUNfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisrCSMgQXJjaGl2ZXMgY29udGFpbmlu ZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkjIHRoZSBLQUkgQysr IGNvbXBpbGVyLgorKwlfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1v ICRvbGRsaWIgJG9sZG9ianMnCisrCTs7CisrICAgICAgUkNDKikKKysJIyBSYXRpb25hbCBDKysg Mi40LjEKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCV9M VF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJOzsKKysgICAgICBjeHgqKQorKwlfTFRf QUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQg XConCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxv d191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAt biAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9y ZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwlfTFRfQUNf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5 bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRs aWIuZXhwOyBkb25lfgorKwkgIGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSAgJENDIC1z aGFyZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFt ZSAtV2wsLWlucHV0IC1XbCwkbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8g LXNldF92ZXJzaW9uCSR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGly fS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KKysJICAkcm0gJGxpYi5leHAnCisrCisrCV9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKKysJ X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKworKwkjIENv bW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3Rz CisrCSMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJl IHVzZWQgd2hlbgorKwkjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJIworKwkjIFRoZXJl IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9t CisrCSMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0 byBzdHJpcCB0aGVtCisrCSMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQg aW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJIyBkZXBlbmRlbmNpZXMuCisrCW91dHB1dF92ZXJi b3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4k b2JqZXh0IDI+JjEgfCBncmVwICJsZCIgfCBncmVwIC12ICJsZDoiYDsgdGVtcGxpc3Q9YGVjaG8g JHRlbXBsaXN0IHwgJFNFRCAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlzdD0i IjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxp c3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRv bmU7IGVjaG8gJGxpc3QnCisrCTs7CisrICAgICAgKikKKysJaWYgdGVzdCAiJEdYWCIgPSB5ZXMg JiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCSAgX0xUX0FDX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicK KysJIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxp YiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25h bWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92 ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysKKysJICBfTFRfQUNfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwor KwkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJ ICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0 IGxpc3RzCisrCSAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBm bGFncyBhcmUgdXNlZCB3aGVuCisrCSAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAg b3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3Qu JG9iamV4dCAyPiYxIHwgZ3JlcCAiXC1MIicKKysKKysJZWxzZQorKwkgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgIF9MVF9BQ19UQUdWQVIobGRfc2hsaWJz LCAkMSk9bm8KKysJZmkKKysJOzsKKysgICAgZXNhYworKyAgICA7OworKyAgcHNvcyopCisrICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICBfTFRfQUNf VEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgIDs7CisrICBzdW5vczQqKQorKyAgICBjYXNl ICRjY19iYXNlbmFtZSBpbgorKyAgICAgIENDKikKKysJIyBTdW4gQysrIDQueAorKwkjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJX0xUX0FDX1RBR1ZBUihsZF9z aGxpYnMsICQxKT1ubworKwk7OworKyAgICAgIGxjYyopCisrCSMgTHVjaWQKKysJIyBGSVhNRTog aW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCV9MVF9BQ19UQUdWQVIobGRfc2hs aWJzLCAkMSk9bm8KKysJOzsKKysgICAgICAqKQorKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKKysJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwk7 OworKyAgICBlc2FjCisrICAgIDs7CisrICBzb2xhcmlzKikKKysgICAgY2FzZSAkY2NfYmFzZW5h bWUgaW4KKysgICAgICBDQyopCisrCSMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBD KysKKysgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsJDEpPXllcwor KwlfTFRfQUNfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtemRlZnMnCisrCV9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 ICAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9l eHBzeW1fY21kcywgJDEpPSckZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0 X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH4kZWNobyAibG9j YWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30g ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JHJtICRs aWIuZXhwJworKworKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nLVIkbGliZGlyJworKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQx KT1ubworKwljYXNlICRob3N0X29zIGluCisrCSAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMy LltbMC01XV0uKikgOzsKKysJICAqKQorKwkgICAgIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwg Y29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKKysJICAgICMgYnV0IHVuZGVyc3Rh bmRzIGAteiBsaW5rZXJfZmxhZycuCisrCSAgICAjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIu NiAobWF5YmUgMi41LjE/KQorKwkgICAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0Jwor KwkgICAgOzsKKysJZXNhYworKwlfTFRfQUNfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15 ZXMKKysKKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCisrCisrCSMgQXJjaGl2ZXMg Y29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkjICJD QyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBjb21waWxlci4gIFRoaXMgaXMKKysJ IyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1 ZGVkCisrCSMgaW4gdGhlIGFyY2hpdmUuCisrCV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21k cywgJDEpPSckQ0MgLXhhciAtbyAkb2xkbGliICRvbGRvYmpzJworKwk7OworKyAgICAgIGdjeCop CisrCSMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxp YicKKysKKysJIyBUaGUgQysrIGNvbXBpbGVyIG11c3QgYmUgdXNlZCB0byBjcmVhdGUgdGhlIGFy Y2hpdmUuCisrCV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgJExERkxB R1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJOzsKKysgICAgICAqKQorKwkjIEdO VSBDKysgY29tcGlsZXIgd2l0aCBTb2xhcmlzIGxpbmtlcgorKwlpZiB0ZXN0ICIkR1hYIiA9IHll cyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJICBfTFRfQUNfVEFHVkFSKG5v X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS16ICR7d2x9ZGVmcycKKysJICBpZiAkQ0MgLS12 ZXJzaW9uIHwgZ3JlcCAtdiAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICBfTFRfQUNf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJExERkxBR1Mg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+ Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhw fiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorKwkJJENDIC1zaGFyZWQgLW5vc3Rk bGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJwor KworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRw dXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZp bGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGli cmFyeS4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSIkQ0MgLXNoYXJlZCAkQ0ZMQUdT IC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAgXCJcLUxcIiIKKysJICBlbHNlCisrCSAg ICAjIGcrKyAyLjcgYXBwZWFycyB0byByZXF1aXJlIGAtRycgTk9UIGAtc2hhcmVkJyBvbiB0aGlz CisrCSAgICAjIHBsYXRmb3JtLgorKwkgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1HIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1l IC1vICRsaWInCisrCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0n JGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAt ZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+JGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxp Yi5leHB+CisrCQkkQ0MgLUcgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3N+JHJtICRsaWIuZXhwJworKworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBp bGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRk ZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAg ICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtf Y21kPSIkQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVwIFwiXC1M XCIiCisrCSAgZmkKKysKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tUiAkd2wkbGliZGlyJworKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICBz b2xhcmlzMi5bWzAtNV1dIHwgc29sYXJpczIuW1swLTVdXS4qKSA7OworKwkgICopCisrCSAgICBf TFRfQUNfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXogJHt3bH1h bGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKKysJICAg IDs7CisrCSAgZXNhYworKwlmaQorKwk7OworKyAgICBlc2FjCisrICAgIDs7CisrICBzeXN2NCp1 dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bWzAxXV0uW1sxMF1dKiB8IHVu aXh3YXJlNyogfCBzY28zLjJ2NS4wLltbMDI0XV0qKQorKyAgICBfTFRfQUNfVEFHVkFSKG5vX3Vu ZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKysgICAgX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hs aWJwYXRoX3ZhciwgJDEpPW5vCisrICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysg ICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBDQyopCisrCV9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwk7Owor KyAgICAgICopCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJOzsKKysgICAgZXNhYworKyAgICA7 OworKyAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKKysgICAgIyBOb3RlOiBXZSBjYW4g Tk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKKysg ICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2Vk IGZyb20gbGliYyB0bworKyAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFucyBq dXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKKysgICAgIyBldmVyIGxpbmsgY29ycmVjdGx5LiAg SWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorKyAgICAjIHRob3VnaCwg d2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5k ZWQKKysgICAgIyBhcyAteiBkZWZzLgorKyAgICAjIEZvciBzZWN1cml0eSByZWFzb25zLCBpdCBp cyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgYWx3YXlzCisrICAgICMgdXNlIGFic29sdXRl IHBhdGhzIGZvciBuYW1pbmcgc2hhcmVkIGxpYnJhcmllcywgYW5kIGV4Y2x1ZGUgdGhlCisrICAg ICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBleGVjdXRhYmxlcyBhbmQgbGlicmFyaWVzLiAgQnV0IGRv aW5nIHNvCisrICAgICMgcmVxdWlyZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5nIHR3aWNl LCB3aGljaCBpcyBhIHBhaW4uCisrICAgICMgU28gdGhhdCBiZWhhdmlvdXIgaXMgb25seSBlbmFi bGVkIGlmIFNDT0FCU1BBVEggaXMgc2V0IHRvIGEKKysgICAgIyBub24tZW1wdHkgdmFsdWUgaW4g dGhlIGVudmlyb25tZW50LiAgTW9zdCBsaWtlbHkgb25seSB1c2VmdWwgZm9yCisrICAgICMgY3Jl YXRpbmcgb2ZmaWNpYWwgZGlzdHJpYnV0aW9ucyBvZiBwYWNrYWdlcy4KKysgICAgIyBUaGlzIGlz IGEgaGFjayB1bnRpbCBsaWJ0b29sIG9mZmljaWFsbHkgc3VwcG9ydHMgYWJzb2x1dGUgcGF0aAor KyAgICAjIG5hbWVzIGZvciBzaGFyZWQgbGlicmFyaWVzLgorKyAgICBfTFRfQUNfVEFHVkFSKG5v X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKysgICAgX0xUX0FDX1RBR1ZBUihh bGxvd191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LG5vZGVmcycKKysgICAgX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAgIF9MVF9BQ19UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3 bH0tUiwkbGliZGlyYCcKKysgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yLCAkMSk9JzonCisrICAgIF9MVF9BQ19UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXll cworKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3ds fS1CZXhwb3J0JworKyAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgIGNhc2Ug JGNjX2Jhc2VuYW1lIGluCisrICAgICAgQ0MqKQorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLUcgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99 JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0 OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9 L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwk7 OworKyAgICAgICopCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCV9MVF9BQ19UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBv cnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwk7OworKyAg ICBlc2FjCisrICAgIDs7CisrICB0YW5kZW0qKQorKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgor KyAgICAgIE5DQyopCisrCSMgTm9uU3RvcC1VWCBOQ0MgMy4yMAorKwkjIEZJWE1FOiBpbnNlcnQg cHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubworKwk7OworKyAgICAgICopCisrCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAorKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCTs7CisrICAg IGVzYWMKKysgICAgOzsKKysgIHZ4d29ya3MqKQorKyAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVy IEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bworKyAgICA7OworKyAgKikKKysgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFy eSBzdXBwb3J0CisrICAgIF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgOzsK Kytlc2FjCisrQUNfTVNHX1JFU1VMVChbJF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSldKQor K3Rlc3QgIiRfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpIiA9IG5vICYmIGNhbl9idWlsZF9z aGFyZWQ9bm8KKysKKytfTFRfQUNfVEFHVkFSKEdDQywgJDEpPSIkR1hYIgorK19MVF9BQ19UQUdW QVIoTEQsICQxKT0iJExEIgorKworK0FDX0xJQlRPT0xfUE9TVERFUF9QUkVERVAoJDEpCisrQUNf TElCVE9PTF9QUk9HX0NPTVBJTEVSX1BJQygkMSkKKytBQ19MSUJUT09MX1BST0dfQ0NfQ19PKCQx KQorK0FDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLUygkMSkKKytBQ19MSUJUT09MX1BST0df TERfU0hMSUJTKCQxKQorK0FDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQorK0FDX0xJ QlRPT0xfUFJPR19MRF9IQVJEQ09ERV9MSUJQQVRIKCQxKQorKworK0FDX0xJQlRPT0xfQ09ORklH KCQxKQorKworK0FDX0xBTkdfUE9QCisrQ0M9JGx0X3NhdmVfQ0MKKytMRENYWD0kTEQKKytMRD0k bHRfc2F2ZV9MRAorK0dDQz0kbHRfc2F2ZV9HQ0MKKyt3aXRoX2dudV9sZGN4eD0kd2l0aF9nbnVf bGQKKyt3aXRoX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAorK2x0X2N2X3BhdGhfTERDWFg9 JGx0X2N2X3BhdGhfTEQKKytsdF9jdl9wYXRoX0xEPSRsdF9zYXZlX3BhdGhfTEQKKytsdF9jdl9w cm9nX2dudV9sZGN4eD0kbHRfY3ZfcHJvZ19nbnVfbGQKKytsdF9jdl9wcm9nX2dudV9sZD0kbHRf c2F2ZV93aXRoX2dudV9sZAorK10pIyBBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJRworKworKyMg QUNfTElCVE9PTF9QT1NUREVQX1BSRURFUChbVEFHTkFNRV0pCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEZpZ3VyZSBvdXQgImhpZGRlbiIgbGlicmFyeSBkZXBl bmRlbmNpZXMgZnJvbSB2ZXJib3NlCisrIyBjb21waWxlciBvdXRwdXQgd2hlbiBsaW5raW5nIGEg c2hhcmVkIGxpYnJhcnkuCisrIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0 IHRoZSBuZWNlc3NhcnkKKysjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4K KytBQ19ERUZVTihbQUNfTElCVE9PTF9QT1NUREVQX1BSRURFUF0sCisrW0FDX1JFUVVJUkUoW0xU X0FDX1BST0dfU0VEXSlkbmwKKytkbmwgd2UgY2FuJ3QgdXNlIHRoZSBsdF9zaW1wbGVfY29tcGls ZV90ZXN0X2NvZGUgaGVyZSwKKytkbmwgYmVjYXVzZSBpdCBjb250YWlucyBjb2RlIGludGVuZGVk IGZvciBhbiBleGVjdXRhYmxlLAorK2RubCBub3QgYSBsaWJyYXJ5LiAgSXQncyBwb3NzaWJsZSB3 ZSBzaG91bGQgbGV0IGVhY2gKKytkbmwgdGFnIGRlZmluZSBhIG5ldyBsdF8/Pz8/X2xpbmtfdGVz dF9jb2RlIHZhcmlhYmxlLAorK2RubCBidXQgaXQncyBvbmx5IHVzZWQgaGVyZS4uLgorK2lmZWxz ZShbJDFdLFtdLFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCisraW50IGE7Cisrdm9pZCBm b28gKHZvaWQpIHsgYSA9IDA7IH0KKytFT0YKKytdLFskMV0sW0NYWF0sW2NhdCA+IGNvbmZ0ZXN0 LiRhY19leHQgPDxFT0YKKytjbGFzcyBGb28KKyt7CisrcHVibGljOgorKyAgRm9vICh2b2lkKSB7 IGEgPSAwOyB9CisrcHJpdmF0ZToKKysgIGludCBhOworK307CisrRU9GCisrXSxbJDFdLFtGNzdd LFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCisrICAgICAgc3Vicm91dGluZSBmb28KKysg ICAgICBpbXBsaWNpdCBub25lCisrICAgICAgaW50ZWdlcio0IGEKKysgICAgICBhPTAKKysgICAg ICByZXR1cm4KKysgICAgICBlbmQKKytFT0YKKytdLFskMV0sW0dDSl0sW2NhdCA+IGNvbmZ0ZXN0 LiRhY19leHQgPDxFT0YKKytwdWJsaWMgY2xhc3MgZm9vIHsKKysgIHByaXZhdGUgaW50IGE7Cisr ICBwdWJsaWMgdm9pZCBiYXIgKHZvaWQpIHsKKysgICAgYSA9IDA7CisrICB9CisrfTsKKytFT0YK KytdKQorK2RubCBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNl c3NhcnkKKytkbmwgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgorK2lmIEFD X1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCisrICAjIFBhcnNlIHRoZSBjb21waWxlciBvdXRw dXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQorKyAgIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5k IGxpYnJhcnkgZmxhZ3MuCisrCisrICAjIFNlbnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3 aGV0aGVyIG9yIG5vdCB3ZSBhcmUgYmVmb3JlCisrICAjIHRoZSBjb25mdGVzdCBvYmplY3QgZmls ZS4KKysgIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KKysKKysgICMgVGhlIGAqJyBpbiB0 aGUgY2FzZSBtYXRjaGVzIGZvciBhcmNoaXRlY3R1cmVzIHRoYXQgdXNlIGBjYXNlJyBpbgorKyAg IyAkb3V0cHV0X3ZlcmJvc2VfY21kIGNhbiB0cmlnZ2VyIGdsb2IgZXhwYW5zaW9uIGR1cmluZyB0 aGUgbG9vcAorKyAgIyBldmFsIHdpdGhvdXQgdGhpcyBzdWJzdGl0dXRpb24uCisrICBvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD1gJGVjaG8gIlgkb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQiIHwgJFhz ZWQgLWUgIiRub19nbG9iX3N1YnN0ImAKKysKKysgIGZvciBwIGluIGBldmFsICRvdXRwdXRfdmVy Ym9zZV9saW5rX2NtZGA7IGRvCisrICAgIGNhc2UgJHAgaW4KKysKKysgICAgLUwqIHwgLVIqIHwg LWwqKQorKyAgICAgICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17TCxS fSIgYW5kIHRoZSBwYXRoLgorKyAgICAgICAjIFJlbW92ZSB0aGUgc3BhY2UuCisrICAgICAgIGlm IHRlc3QgJHAgPSAiLUwiIFwKKysJICB8fCB0ZXN0ICRwID0gIi1SIjsgdGhlbgorKwkgcHJldj0k cAorKwkgY29udGludWUKKysgICAgICAgZWxzZQorKwkgcHJldj0KKysgICAgICAgZmkKKysKKysg ICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KKysJ IGNhc2UgJHAgaW4KKysJIC1MKiB8IC1SKikKKysJICAgIyBJbnRlcm5hbCBjb21waWxlciBsaWJy YXJ5IHBhdGhzIHNob3VsZCBjb21lIGFmdGVyIHRob3NlCisrCSAgICMgcHJvdmlkZWQgdGhlIHVz ZXIuICBUaGUgcG9zdGRlcHMgYWxyZWFkeSBjb21lIGFmdGVyIHRoZQorKwkgICAjIHVzZXIgc3Vw cGxpZWQgbGlicyBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nlc3MgdGhlbS4KKysJICAgaWYg dGVzdCAteiAiJF9MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkiOyB0 aGVuCisrCSAgICAgX0xUX0FDX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKT0i JHtwcmV2fSR7cH0iCisrCSAgIGVsc2UKKysJICAgICBfTFRfQUNfVEFHVkFSKGNvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aCwgJDEpPSIke19MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9w YXRoLCAkMSl9ICR7cHJldn0ke3B9IgorKwkgICBmaQorKwkgICA7OworKwkgIyBUaGUgIi1sIiBj YXNlIHdvdWxkIG5ldmVyIGNvbWUgYmVmb3JlIHRoZSBvYmplY3QgYmVpbmcKKysJICMgbGlua2Vk LCBzbyBkb24ndCBib3RoZXIgaGFuZGxpbmcgdGhpcyBjYXNlLgorKwkgZXNhYworKyAgICAgICBl bHNlCisrCSBpZiB0ZXN0IC16ICIkX0xUX0FDX1RBR1ZBUihwb3N0ZGVwcywgJDEpIjsgdGhlbgor KwkgICBfTFRfQUNfVEFHVkFSKHBvc3RkZXBzLCAkMSk9IiR7cHJldn0ke3B9IgorKwkgZWxzZQor KwkgICBfTFRfQUNfVEFHVkFSKHBvc3RkZXBzLCAkMSk9IiR7X0xUX0FDX1RBR1ZBUihwb3N0ZGVw cywgJDEpfSAke3ByZXZ9JHtwfSIKKysJIGZpCisrICAgICAgIGZpCisrICAgICAgIDs7CisrCisr ICAgICouJG9iamV4dCkKKysgICAgICAgIyBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgdGVzdCBvYmpl Y3QgZmlsZSBvbmx5IHNob3dzIHVwCisrICAgICAgICMgb25jZSBpbiB0aGUgY29tcGlsZXIgb3V0 cHV0LgorKyAgICAgICBpZiB0ZXN0ICIkcCIgPSAiY29uZnRlc3QuJG9iamV4dCI7IHRoZW4KKysJ IHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9eWVzCisrCSBjb250aW51ZQorKyAgICAgICBmaQor KworKyAgICAgICBpZiB0ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhl bgorKwkgaWYgdGVzdCAteiAiJF9MVF9BQ19UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSI7IHRo ZW4KKysJICAgX0xUX0FDX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPSIkcCIKKysJIGVsc2UK KysJICAgX0xUX0FDX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpPSIkX0xUX0FDX1RBR1ZBUihw cmVkZXBfb2JqZWN0cywgJDEpICRwIgorKwkgZmkKKysgICAgICAgZWxzZQorKwkgaWYgdGVzdCAt eiAiJF9MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSkiOyB0aGVuCisrCSAgIF9MVF9B Q19UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9IiRwIgorKwkgZWxzZQorKwkgICBfTFRfQUNf VEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPSIkX0xUX0FDX1RBR1ZBUihwb3N0ZGVwX29iamVj dHMsICQxKSAkcCIKKysJIGZpCisrICAgICAgIGZpCisrICAgICAgIDs7CisrCisrICAgICopIDs7 ICMgSWdub3JlIHRoZSByZXN0LgorKworKyAgICBlc2FjCisrICBkb25lCisrCisrICAjIENsZWFu IHVwLgorKyAgcm0gLWYgYS5vdXQgYS5leGUKKytlbHNlCisrICBlY2hvICJsaWJ0b29sLm00OiBl cnJvcjogcHJvYmxlbSBjb21waWxpbmcgJDEgdGVzdCBwcm9ncmFtIgorK2ZpCisrCisrJHJtIC1m IGNvbmZlc3QuJG9iamV4dAorKworK19MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9k aXJzLCAkMSk9CisraWYgdGVzdCAtbiAiJF9MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJj aF9wYXRoLCAkMSkiOyB0aGVuCisrICBfTFRfQUNfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hf ZGlycywgJDEpPWBlY2hvICIgJHtfTFRfQUNfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aCwgJDEpfSIgfCAke1NFRH0gLWUgJ3MhIC1MISAhZycgLWUgJ3MhXiAhISdgCisrZmkKKysKKysj IFBPUlRNRTogb3ZlcnJpZGUgYWJvdmUgdGVzdCBvbiBzeXN0ZW1zIHdoZXJlIGl0IGlzIGJyb2tl bgorK2lmZWxzZShbJDFdLFtDWFhdLAorK1tjYXNlICRob3N0X29zIGluCisraW50ZXJpeFtbMy05 XV0qKQorKyAgIyBJbnRlcml4IDMuNSBpbnN0YWxscyBjb21wbGV0ZWx5IGhvc2VkIC5sYSBmaWxl cyBmb3IgQysrLCBzbyByYXRoZXIgdGhhbgorKyAgIyBoYWNrIGFsbCBhcm91bmQgaXQsIGxldCdz IGp1c3QgdHJ1c3QgImcrKyIgdG8gRFRSVC4KKysgIF9MVF9BQ19UQUdWQVIocHJlZGVwX29iamVj dHMsJDEpPQorKyAgX0xUX0FDX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsJDEpPQorKyAgX0xUX0FD X1RBR1ZBUihwb3N0ZGVwcywkMSk9CisrICA7OworKworK2xpbnV4KikKKysgIGNhc2UgYCRDQyAt ViAyPiYxIHwgc2VkIDVxYCBpbgorKyAgKlN1blwgQyopCisrICAgICMgU3VuIEMrKyA1LjkKKysg ICAgIworKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJh cnkgaXMKKysgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBz cGVjaWZ5aW5nCisrICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4g YXMKKysgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgorKyAgICBjYXNlICIg JENYWCAkQ1hYRkxBR1MgIiBpbgorKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKKysgICAg ICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKKysgICAgICA7OworKyAgICBlc2FjCisrICAgIGlm IHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCisrICAgICAgX0xUX0FD X1RBR1ZBUihwb3N0ZGVwcywkMSk9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKKysgICAg ZmkKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrc29sYXJpcyopCisrICBjYXNlICRjY19i YXNlbmFtZSBpbgorKyAgQ0MqKQorKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5n IHN0bHBvcnQ0IGxpYnJhcnkgaXMKKysgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBs aWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCisrICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4g SWdub3JlIGxpYkNydW4gYXMKKysgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0 LgorKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgorKyAgICAqIiAtbGlicmFyeT1zdGxw b3J0NCAiKikKKysgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKKysgICAgICA7OworKyAg ICBlc2FjCisrCisrICAgICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMgYSBrbm93bi1nb29kIHNldHVw IG9mIHNoYXJlZCBsaWJyYXJpZXMgZm9yCisrICAgICMgU3VuIGNvbXBpbGVyIHZlcnNpb25zIGJl Zm9yZSA1LjYsIGVsc2UgUElDIG9iamVjdHMgZnJvbSBhbiBvbGQKKysgICAgIyBhcmNoaXZlIHdp bGwgYmUgbGlua2VkIGludG8gdGhlIG91dHB1dCwgbGVhZGluZyB0byBzdWJ0bGUgYnVncy4KKysg ICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKysgICAgICBf TFRfQUNfVEFHVkFSKHBvc3RkZXBzLCQxKT0nLWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVuJwor KyAgICBmaQorKyAgICA7OworKyAgZXNhYworKyAgOzsKKytlc2FjCisrXSkKKytjYXNlICIgJF9M VF9BQ19UQUdWQVIocG9zdGRlcHMsICQxKSAiIGluCisrKiIgLWxjICIqKSBfTFRfQUNfVEFHVkFS KGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8gOzsKKytlc2FjCisrXSkjIEFDX0xJQlRPT0xf UE9TVERFUF9QUkVERVAKKysKKysjIEFDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24g dmFycyBmb3IgdGhlIEMgY29tcGlsZXIgYXJlCisrIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhvc2Ug dmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieQorKyMgQUNfTElCVE9PTF9DT05GSUcg dG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorK0FDX0RF RlVOKFtBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJR10sIFtfTFRfQUNfTEFOR19GNzdfQ09ORklH KEY3NyldKQorK0FDX0RFRlVOKFtfTFRfQUNfTEFOR19GNzdfQ09ORklHXSwKKytbQUNfUkVRVUlS RShbQUNfUFJPR19GNzddKQorK0FDX0xBTkdfUFVTSChGb3J0cmFuIDc3KQorKworK19MVF9BQ19U QUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworK19MVF9BQ19UQUdWQVIoYWxsb3df dW5kZWZpbmVkX2ZsYWcsICQxKT0KKytfTFRfQUNfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9s cywgJDEpPW5vCisrX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xU X0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KKytfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisrX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X2xkLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9 CisrX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KKytfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCisrX0xUX0FDX1RBR1ZBUihtb2R1bGVfY21kcywg JDEpPQorK19MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX0FDX1RB R1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorK19MVF9BQ19UQUdWQVIob2xkX2Fy Y2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCisrX0xUX0FDX1RBR1ZBUihub191bmRl ZmluZWRfZmxhZywgJDEpPQorK19MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0KKytfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMs ICQxKT1ubworKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmNzcgdGVzdCBzb3VyY2Vz LgorK2FjX2V4dD1mCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIGY3 NyB0ZXN0IHNvdXJjZXMuCisrb2JqZXh0PW8KKytfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEpPSRv YmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAorKyAgICAgIHN1YnJvdXRpbmUgdAorKyAgICAg IHJldHVybgorKyAgICAgIGVuZAorKyIKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUg bGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iXAorKyAgICAgIHByb2dyYW0g dAorKyAgICAgIGVuZAorKyIKKysKKysjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQg Y29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisrX0xUX0FDX1NZU19DT01Q SUxFUgorKworKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2Rl CisrX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrX0xUX0xJTktFUl9CT0lMRVJQTEFURQorKwor KyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisrbHRfc2F2 ZV9DQz0iJENDIgorK0NDPSR7Rjc3LSJmNzcifQorK2NvbXBpbGVyPSRDQworK19MVF9BQ19UQUdW QVIoY29tcGlsZXIsICQxKT0kQ0MKKytfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisrCisr QUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQor K0FDX01TR19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKKysKKytBQ19NU0dfQ0hFQ0tJTkco W3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCisrdGVzdCAiJGNhbl9idWlsZF9z aGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCisrCisrIyBPbiBBSVgsIHNoYXJlZCBs aWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFjZSwgYW5k CisrIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgzKikK KysgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisrICBp ZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZlX2Nt ZHN+XCRSQU5MSUIgXCRsaWIiCisrICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicK KysgIGZpCisrICA7OworK2FpeFtbNC05XV0qKQorKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBp YTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgorKyAgICB0 ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubworKyAgZmkKKysg IDs7CisrZXNhYworK0FDX01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKKysKKytBQ19NU0df Q0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCisrIyBNYWtlIHN1 cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCisrdGVzdCAi JGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisrQUNfTVNHX1JFU1VM VChbJGVuYWJsZV9zdGF0aWNdKQorKworK19MVF9BQ19UQUdWQVIoR0NDLCAkMSk9IiRHNzciCisr X0xUX0FDX1RBR1ZBUihMRCwgJDEpPSIkTEQiCisrCisrQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVS X1BJQygkMSkKKytBQ19MSUJUT09MX1BST0dfQ0NfQ19PKCQxKQorK0FDX0xJQlRPT0xfU1lTX0hB UkRfTElOS19MT0NLUygkMSkKKytBQ19MSUJUT09MX1BST0dfTERfU0hMSUJTKCQxKQorK0FDX0xJ QlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQorK0FDX0xJQlRPT0xfUFJPR19MRF9IQVJEQ09E RV9MSUJQQVRIKCQxKQorKworK0FDX0xJQlRPT0xfQ09ORklHKCQxKQorKworK0FDX0xBTkdfUE9Q CisrQ0M9IiRsdF9zYXZlX0NDIgorK10pIyBBQ19MSUJUT09MX0xBTkdfRjc3X0NPTkZJRworKwor KworKyMgQUNfTElCVE9PTF9MQU5HX0dDSl9DT05GSUcKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJzIGZvciB0aGUgQyBj b21waWxlciBhcmUKKysjIHN1aXRhYmx5IGRlZmluZWQuICBUaG9zZSB2YXJpYWJsZXMgYXJlIHN1 YnNlcXVlbnRseSB1c2VkIGJ5CisrIyBBQ19MSUJUT09MX0NPTkZJRyB0byB3cml0ZSB0aGUgY29t cGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCisrQUNfREVGVU4oW0FDX0xJQlRPT0xf TEFOR19HQ0pfQ09ORklHXSwgW19MVF9BQ19MQU5HX0dDSl9DT05GSUcoR0NKKV0pCisrQUNfREVG VU4oW19MVF9BQ19MQU5HX0dDSl9DT05GSUddLAorK1tBQ19MQU5HX1NBVkUKKysKKysjIFNvdXJj ZSBmaWxlIGV4dGVuc2lvbiBmb3IgSmF2YSB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PWphdmEKKysK KysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgSmF2YSB0ZXN0IHNvdXJjZXMu Cisrb2JqZXh0PW8KKytfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKysKKysjIENv ZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxl X3Rlc3RfY29kZT0iY2xhc3MgZm9vIHt9IgorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBs ZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdwdWJsaWMgY2xhc3MgY29u ZnRlc3QgeyBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbW11dIGFyZ3YpIHt9OyB9Jwor KworKyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBt YWtlIHN1cmUgJENDIGlzIHNldC4KKytfTFRfQUNfU1lTX0NPTVBJTEVSCisrCisrIyBzYXZlIHdh cm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKytfTFRfQ09NUElMRVJfQk9J TEVSUExBVEUKKytfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrIyBBbGxvdyBDQyB0byBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytsdF9zYXZlX0NDPSIkQ0MiCisrQ0M9JHtH Q0otImdjaiJ9CisrY29tcGlsZXI9JENDCisrX0xUX0FDX1RBR1ZBUihjb21waWxlciwgJDEpPSRD QworK19MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKysKKysjIEdDSiBkaWQgbm90IGV4aXN0 IGF0IHRoZSB0aW1lIEdDQyBkaWRuJ3QgaW1wbGljaXRseSBsaW5rIGxpYmMgaW4uCisrX0xUX0FD X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrCisrX0xUX0FDX1RBR1ZBUihv bGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKKysKKytBQ19MSUJUT09MX1BS T0dfQ09NUElMRVJfTk9fUlRUSSgkMSkKKytBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDKCQx KQorK0FDX0xJQlRPT0xfUFJPR19DQ19DX08oJDEpCisrQUNfTElCVE9PTF9TWVNfSEFSRF9MSU5L X0xPQ0tTKCQxKQorK0FDX0xJQlRPT0xfUFJPR19MRF9TSExJQlMoJDEpCisrQUNfTElCVE9PTF9T WVNfRFlOQU1JQ19MSU5LRVIoJDEpCisrQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBB VEgoJDEpCisrCisrQUNfTElCVE9PTF9DT05GSUcoJDEpCisrCisrQUNfTEFOR19SRVNUT1JFCisr Q0M9IiRsdF9zYXZlX0NDIgorK10pIyBBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJRworKworKwor KyMgQUNfTElCVE9PTF9MQU5HX1JDX0NPTkZJRworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFycyBmb3IgdGhlIFdpbmRvd3Mg cmVzb3VyY2UgY29tcGlsZXIgYXJlCisrIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhvc2UgdmFyaWFi bGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieQorKyMgQUNfTElCVE9PTF9DT05GSUcgdG8gd3Jp dGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorK0FDX0RFRlVOKFtB Q19MSUJUT09MX0xBTkdfUkNfQ09ORklHXSwgW19MVF9BQ19MQU5HX1JDX0NPTkZJRyhSQyldKQor K0FDX0RFRlVOKFtfTFRfQUNfTEFOR19SQ19DT05GSUddLAorK1tBQ19MQU5HX1NBVkUKKysKKysj IFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgUkMgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1yYwor KworKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBSQyB0ZXN0IHNvdXJjZXMu Cisrb2JqZXh0PW8KKytfTFRfQUNfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKysKKysjIENv ZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxl X3Rlc3RfY29kZT0nc2FtcGxlIE1FTlUgeyBNRU5VSVRFTSAiJlNvdXAiLCAxMDAsIENIRUNLRUQg fScKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBs ZV9saW5rX3Rlc3RfY29kZT0iJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIKKysKKysjIGx0 bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJl ICRDQyBpcyBzZXQuCisrX0xUX0FDX1NZU19DT01QSUxFUgorKworKyMgc2F2ZSB3YXJuaW5ncy9i b2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRF CisrX0xUX0xJTktFUl9CT0lMRVJQTEFURQorKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmd1bWVudHMuCisrbHRfc2F2ZV9DQz0iJENDIgorK0NDPSR7UkMtIndpbmRy ZXMifQorK2NvbXBpbGVyPSRDQworK19MVF9BQ19UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKKytf TFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisrX0xUX0FDX1RBR1ZBUihsdF9jdl9wcm9nX2Nv bXBpbGVyX2NfbywgJDEpPXllcworKworK0FDX0xJQlRPT0xfQ09ORklHKCQxKQorKworK0FDX0xB TkdfUkVTVE9SRQorK0NDPSIkbHRfc2F2ZV9DQyIKKytdKSMgQUNfTElCVE9PTF9MQU5HX1JDX0NP TkZJRworKworKworKyMgQUNfTElCVE9PTF9DT05GSUcoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgSWYgVEFHTkFNRSBpcyBub3QgcGFzc2VkLCB0aGVuIGNy ZWF0ZSBhbiBpbml0aWFsIGxpYnRvb2wgc2NyaXB0CisrIyB3aXRoIGEgZGVmYXVsdCBjb25maWd1 cmF0aW9uIGZyb20gdGhlIHVudGFnZ2VkIGNvbmZpZyB2YXJzLiAgT3RoZXJ3aXNlCisrIyBhZGQg Y29kZSB0byBjb25maWcuc3RhdHVzIGZvciBhcHBlbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gbmFt ZWQgYnkKKysjIFRBR05BTUUgZnJvbSB0aGUgbWF0Y2hpbmcgdGFnZ2VkIGNvbmZpZyB2YXJzLgor K0FDX0RFRlVOKFtBQ19MSUJUT09MX0NPTkZJR10sCisrWyMgVGhlIGVsc2UgY2xhdXNlIHNob3Vs ZCBvbmx5IGZpcmUgd2hlbiBib290c3RyYXBwaW5nIHRoZQorKyMgbGlidG9vbCBkaXN0cmlidXRp b24sIG90aGVyd2lzZSB5b3UgZm9yZ290IHRvIHNoaXAgbHRtYWluLnNoCisrIyB3aXRoIHlvdXIg cGFja2FnZSwgYW5kIHlvdSB3aWxsIGdldCBjb21wbGFpbnRzIHRoYXQgdGhlcmUgYXJlCisrIyBu byBydWxlcyB0byBnZW5lcmF0ZSBsdG1haW4uc2guCisraWYgdGVzdCAtZiAiJGx0bWFpbiI7IHRo ZW4KKysgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9u cyB3aGljaCBhbGxvdyBvdXIgY29tbWFuZHMgdGhyb3VnaAorKyAgIyB3aXRob3V0IHJlbW92YWwg b2YgXCBlc2NhcGVzLgorKyAgaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4K KysgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKysgIGZpCisrICAjIE5vdyBxdW90ZSBhbGwgdGhl IHRoaW5ncyB0aGF0IG1heSBjb250YWluIG1ldGFjaGFyYWN0ZXJzIHdoaWxlIGJlaW5nCisrICAj IGNhcmVmdWwgbm90IHRvIG92ZXJxdW90ZSB0aGUgQUNfU1VCU1RlZCB2YWx1ZXMuICBXZSB0YWtl IGNvcGllcyBvZiB0aGUKKysgICMgdmFyaWFibGVzIGFuZCBxdW90ZSB0aGUgY29waWVzIGZvciBn ZW5lcmF0aW9uIG9mIHRoZSBsaWJ0b29sIHNjcmlwdC4KKysgIGZvciB2YXIgaW4gZWNobyBvbGRf Q0Mgb2xkX0NGTEFHUyBBUiBBUl9GTEFHUyBFR1JFUCBSQU5MSUIgTE5fUyBMVENDIExUQ0ZMQUdT IE5NIFwKKysgICAgU0VEIFNIRUxMIFNUUklQIFwKKysgICAgbGlibmFtZV9zcGVjIGxpYnJhcnlf bmFtZXNfc3BlYyBzb25hbWVfc3BlYyBleHRyYWN0X2V4cHN5bXNfY21kcyBcCisrICAgIG9sZF9z dHJpcGxpYiBzdHJpcGxpYiBmaWxlX21hZ2ljX2NtZCBmaW5pc2hfY21kcyBmaW5pc2hfZXZhbCBc CisrICAgIGRlcGxpYnNfY2hlY2tfbWV0aG9kIHJlbG9hZF9mbGFnIHJlbG9hZF9jbWRzIG5lZWRf bG9ja3MgXAorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIGx0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3RvX2NkZWNsIFwKKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19u YW1lX2FkZHJlc3MgXAorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWMgXAorKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcyBvbGRfcG9zdHVuaW5z dGFsbF9jbWRzIFwKKysgICAgX0xUX0FDX1RBR1ZBUihjb21waWxlciwgJDEpIFwKKysgICAgX0xU X0FDX1RBR1ZBUihDQywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihMRCwgJDEpIFwKKysgICAg X0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkgXAorKyAgICBfTFRfQUNfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkgXAorKyAgICBfTFRfQUNfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfc3RhdGljLCAkMSkgXAorKyAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkgXAorKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlYywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUih0aHJlYWRfc2FmZV9m bGFnX3NwZWMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19y dW50aW1lcywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSkg XAorKyAgICBfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKSBcCisr ICAgIF9MVF9BQ19UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdW QVIocG9zdGRlcF9vYmplY3RzLCAkMSkgXAorKyAgICBfTFRfQUNfVEFHVkFSKHByZWRlcHMsICQx KSBcCisrICAgIF9MVF9BQ19UQUdWQVIocG9zdGRlcHMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdW QVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkgXAorKyAgICBfTFRfQUNfVEFHVkFSKGNv bXBpbGVyX2xpYl9zZWFyY2hfZGlycywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp IFwKKysgICAgX0xUX0FDX1RBR1ZBUihwb3N0aW5zdGFsbF9jbWRzLCAkMSkgXAorKyAgICBfTFRf QUNfVEFHVkFSKHBvc3R1bmluc3RhbGxfY21kcywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihv bGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihh bGxvd191bmRlZmluZWRfZmxhZywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihub191bmRlZmlu ZWRfZmxhZywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAk MSkgXAorKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBc CisrICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpIFwK KysgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSkgXAorKyAg ICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpIFwKKysgICAgX0xUX0FDX1RB R1ZBUihtb2R1bGVfY21kcywgJDEpIFwKKysgICAgX0xUX0FDX1RBR1ZBUihtb2R1bGVfZXhwc3lt X2NtZHMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28s ICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIoZml4X3NyY2ZpbGVfcGF0aCwgJDEpIFwKKysgICAg X0xUX0FDX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKSBcCisrICAgIF9MVF9BQ19UQUdWQVIo aW5jbHVkZV9leHBzeW1zLCAkMSk7IGRvCisrCisrICAgIGNhc2UgJHZhciBpbgorKyAgICBfTFRf QUNfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKSB8IFwKKysgICAgX0xUX0FDX1RBR1ZBUihv bGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSkgfCBcCisrICAgIF9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSkgfCBcCisrICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21k cywgJDEpIHwgXAorKyAgICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSkgfCBcCisrICAg IF9MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSkgfCBcCisrICAgIF9MVF9BQ19U QUdWQVIob2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMsICQxKSB8IFwKKysgICAgX0xUX0FD X1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSkgfCBcCisrICAgIGV4dHJhY3RfZXhwc3lt c19jbWRzIHwgcmVsb2FkX2NtZHMgfCBmaW5pc2hfY21kcyB8IFwKKysgICAgcG9zdGluc3RhbGxf Y21kcyB8IHBvc3R1bmluc3RhbGxfY21kcyB8IFwKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHMg fCBvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWMgfCBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYykKKysgICAgICAjIERvdWJsZS1xdW90ZSBk b3VibGUtZXZhbGVkIHN0cmluZ3MuCisrICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8g XCJYXCQkdmFyXCIgfCBcJFhzZWQgLWUgXCJcJGRvdWJsZV9xdW90ZV9zdWJzdFwiIC1lIFwiXCRz ZWRfcXVvdGVfc3Vic3RcIiAtZSBcIlwkZGVsYXlfdmFyaWFibGVfc3Vic3RcIlxgXFxcIiIKKysg ICAgICA7OworKyAgICAqKQorKyAgICAgIGV2YWwgImx0XyR2YXI9XFxcIlxgXCRlY2hvIFwiWFwk JHZhclwiIHwgXCRYc2VkIC1lIFwiXCRzZWRfcXVvdGVfc3Vic3RcIlxgXFxcIiIKKysgICAgICA7 OworKyAgICBlc2FjCisrICBkb25lCisrCisrICBjYXNlICRsdF9lY2hvIGluCisrICAqJ1xbJF0w IC0tZmFsbGJhY2stZWNobyInKQorKyAgICBsdF9lY2hvPWAkZWNobyAiWCRsdF9lY2hvIiB8ICRY c2VkIC1lICdzL1xcXFxcXFxbJF0wIC0tZmFsbGJhY2stZWNobyJbJF0vWyRdMCAtLWZhbGxiYWNr LWVjaG8iLydgCisrICAgIDs7CisrICBlc2FjCisrCisraWZlbHNlKFskMV0sIFtdLAorKyAgW2Nm Z2ZpbGU9IiR7b2ZpbGV9VCIKKysgIHRyYXAgIiRybSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIgMSAy IDE1CisrICAkcm0gLWYgIiRjZmdmaWxlIgorKyAgQUNfTVNHX05PVElDRShbY3JlYXRpbmcgJG9m aWxlXSldLAorKyAgW2NmZ2ZpbGU9IiRvZmlsZSJdKQorKworKyAgY2F0IDw8X19FT0ZfXyA+PiAi JGNmZ2ZpbGUiCisraWZlbHNlKFskMV0sIFtdLAorK1sjISAkU0hFTEwKKysKKysjIGAkZWNobyAi JGNmZ2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5 LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisrIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBi eSAkUFJPR1JBTSAoR05VICRQQUNLQUdFICRWRVJTSU9OJFRJTUVTVEFNUCkKKysjIE5PVEU6IENo YW5nZXMgbWFkZSB0byB0aGlzIGZpbGUgd2lsbCBiZSBsb3N0OiBsb29rIGF0IGx0bWFpbi5zaC4K KysjCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEs IDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgKKysjIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0 b29sOgorKyMgT3JpZ2luYWxseSBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0 LmVkdT4sIDE5OTYKKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us IG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LCBidXQKKysjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMu LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEs IFVTQS4KKysjCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9m IGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVy YXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2FtZSBk aXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dy YW0uCisrCisrIyBBIHNlZCBwcm9ncmFtIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0Lgor K1NFRD0kbHRfU0VECisrCisrIyBTZWQgdGhhdCBoZWxwcyB1cyBhdm9pZCBhY2NpZGVudGFsbHkg dHJpZ2dlcmluZyBlY2hvKDEpIG9wdGlvbnMgbGlrZSAtbi4KKytYc2VkPSIkU0VEIC1lIDFzL15Y Ly8iCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0 IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFU SCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworKyMgVGhlIG5hbWVzIG9mIHRo ZSB0YWdnZWQgY29uZmlndXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgorK2F2YWls YWJsZV90YWdzPQorKworKyMgIyMjIEJFR0lOIExJQlRPT0wgQ09ORklHXSwKKytbIyAjIyMgQkVH SU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZV0pCisrCisrIyBMaWJ0b29sIHdhcyBjb25m aWd1cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQg MXFgOgorKworKyMgU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4KKytT SEVMTD0kbHRfU0hFTEwKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJy YXJpZXMuCisrYnVpbGRfbGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVkCisrCisrIyBXaGV0aGVy IG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLgorK2J1aWxkX29sZF9saWJzPSRlbmFi bGVfc3RhdGljCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBz aGFyZWQgbGlicmFyaWVzLgorK2J1aWxkX2xpYnRvb2xfbmVlZF9sYz0kX0xUX0FDX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxv dyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljCisrYWxsb3dfbGlidG9v bF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRf d2l0aF9zdGF0aWNfcnVudGltZXMsICQxKQorKworKyMgV2hldGhlciBvciBub3QgdG8gb3B0aW1p emUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uLgorK2Zhc3RfaW5zdGFsbD0kZW5hYmxlX2Zhc3RfaW5z dGFsbAorKworKyMgVGhlIGhvc3Qgc3lzdGVtLgorK2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMKKyto b3N0PSRob3N0CisraG9zdF9vcz0kaG9zdF9vcworKworKyMgVGhlIGJ1aWxkIHN5c3RlbS4KKyti dWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKKytidWlsZD0kYnVpbGQKKytidWlsZF9vcz0kYnVpbGRf b3MKKysKKysjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGludGVycHJldCBiYWNrc2xh c2hlcy4KKytlY2hvPSRsdF9lY2hvCisrCisrIyBUaGUgYXJjaGl2ZXIuCisrQVI9JGx0X0FSCisr QVJfRkxBR1M9JGx0X0FSX0ZMQUdTCisrCisrIyBBIEMgY29tcGlsZXIuCisrTFRDQz0kbHRfTFRD QworKworKyMgTFRDQyBjb21waWxlciBmbGFncy4KKytMVENGTEFHUz0kbHRfTFRDRkxBR1MKKysK KysjIEEgbGFuZ3VhZ2Utc3BlY2lmaWMgY29tcGlsZXIuCisrQ0M9JGx0X1tdX0xUX0FDX1RBR1ZB Uihjb21waWxlciwgJDEpCisrCisrIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBDIGNvbXBpbGVy PworK3dpdGhfZ2NjPSRfTFRfQUNfVEFHVkFSKEdDQywgJDEpCisrCisrIyBBbiBFUkUgbWF0Y2hl ci4KKytFR1JFUD0kbHRfRUdSRVAKKysKKysjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJy YXJpZXMuCisrTEQ9JGx0X1tdX0xUX0FDX1RBR1ZBUihMRCwgJDEpCisrCisrIyBXaGV0aGVyIHdl IG5lZWQgaGFyZCBvciBzb2Z0IGxpbmtzLgorK0xOX1M9JGx0X0xOX1MKKysKKysjIEEgQlNELWNv bXBhdGlibGUgbm0gcHJvZ3JhbS4KKytOTT0kbHRfTk0KKysKKysjIEEgc3ltYm9sIHN0cmlwcGlu ZyBwcm9ncmFtCisrU1RSSVA9JGx0X1NUUklQCisrCisrIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFy aWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zICJmaWxlIgorK01BR0lDX0NNRD0kTUFHSUNf Q01ECisrCisrIyBVc2VkIG9uIGN5Z3dpbjogRExMIGNyZWF0aW9uIHByb2dyYW0uCisrRExMVE9P TD0iJERMTFRPT0wiCisrCisrIyBVc2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBlci4KKytPQkpE VU1QPSIkT0JKRFVNUCIKKysKKysjIFVzZWQgb24gY3lnd2luOiBhc3NlbWJsZXIuCisrQVM9IiRB UyIKKysKKysjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3Jh cnkgbGlidG9vbCBmaWxlcy4KKytvYmpkaXI9JG9iamRpcgorKworKyMgSG93IHRvIGNyZWF0ZSBy ZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KKytyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcKKyty ZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKKysKKysjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZs YWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCisrd2w9JGx0X1tdX0xUX0FDX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3dsLCAkMSkKKysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8i KS4KKytvYmpleHQ9IiRhY19vYmpleHQiCisrCisrIyBPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1h bGx5ICJhIikuCisrbGliZXh0PSIkbGliZXh0IgorKworKyMgU2hhcmVkIGxpYnJhcnkgc3VmZml4 IChub3JtYWxseSAiLnNvIikuCisrc2hyZXh0X2NtZHM9JyRzaHJleHRfY21kcycKKysKKysjIEV4 ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KKytleGVleHQ9IiRleGVleHQiCisr CisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVj dHMuCisrcGljX2ZsYWc9JGx0X1tdX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpCisrcGljX21vZGU9JHBpY19tb2RlCisrCisrIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0 aCBvZiBhIGNvbW1hbmQ/CisrbWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhfY21kX2xlbgorKwor KyMgRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25z PworK2NvbXBpbGVyX2Nfbz0kbHRfW11fTFRfQUNfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJf Y19vLCAkMSkKKysKKysjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9u PworK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKKysKKysjIERvIHdlIG5lZWQgdGhlIGxpYiBw cmVmaXggZm9yIG1vZHVsZXM/CisrbmVlZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVmaXgKKysK KysjIERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/CisrbmVlZF92ZXJzaW9uPSRu ZWVkX3ZlcnNpb24KKysKKysjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRlZC4KKytkbG9wZW5f c3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgorKworKyMgV2hldGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMg aXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKKysKKysjIFdo ZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4K KytkbG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMKKysKKysjIENv bXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCisrbGlua19zdGF0aWNfZmxh Zz0kbHRfW11fTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSkKKysKKysj IENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCisrbm9fYnVpbHRp bl9mbGFnPSRsdF9bXV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2Zs YWcsICQxKQorKworKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4K KytleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X1tdX0xUX0FDX1RBR1ZBUihleHBvcnRfZHlu YW1pY19mbGFnX3NwZWMsICQxKQorKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFy ZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgorK3dob2xlX2FyY2hpdmVfZmxhZ19z cGVjPSRsdF9bXV9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKQorKwor KyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQtc2FmZSBvYmplY3RzLgorK3RocmVh ZF9zYWZlX2ZsYWdfc3BlYz0kbHRfW11fTFRfQUNfVEFHVkFSKHRocmVhZF9zYWZlX2ZsYWdfc3Bl YywgJDEpCisrCisrIyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4KKyt2ZXJzaW9uX3R5cGU9JHZl cnNpb25fdHlwZQorKworKyMgRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXguCisrbGlibmFt ZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKKysKKysjIExpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4gIEZp cnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3MuCisrIyBUaGUgbGFz dCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1FLgorK2xp YnJhcnlfbmFtZXNfc3BlYz0kbHRfbGlicmFyeV9uYW1lc19zcGVjCisrCisrIyBUaGUgY29kZWQg bmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZS4KKytz b25hbWVfc3BlYz0kbHRfc29uYW1lX3NwZWMKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQg YW5kIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCisrUkFOTElCPSRsdF9SQU5MSUIKKytv bGRfYXJjaGl2ZV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEp Cisrb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRzCisrb2xkX3Bv c3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcworKworKyMgQ3JlYXRl IGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2 ZV9mcm9tX25ld19jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdf Y21kcywgJDEpCisrCisrIyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8g bGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUuCisrb2xkX2FyY2hpdmVfZnJvbV9leHBz eW1zX2NtZHM9JGx0X1tdX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21k cywgJDEpCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGEgc2hhcmVk IGFyY2hpdmUuCisrYXJjaGl2ZV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSkKKythcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9l eHBzeW1fY21kcywgJDEpCisrcG9zdGluc3RhbGxfY21kcz0kbHRfcG9zdGluc3RhbGxfY21kcwor K3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfcG9zdHVuaW5zdGFsbF9jbWRzCisrCisrIyBDb21tYW5k cyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIChhc3N1bWVkIHNhbWUgYXMgYWJvdmUg aWYgZW1wdHkpCisrbW9kdWxlX2NtZHM9JGx0X1tdX0xUX0FDX1RBR1ZBUihtb2R1bGVfY21kcywg JDEpCisrbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9bXV9MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5 bV9jbWRzLCAkMSkKKysKKysjIENvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllcy4KKytvbGRfc3Ry aXBsaWI9JGx0X29sZF9zdHJpcGxpYgorK3N0cmlwbGliPSRsdF9zdHJpcGxpYgorKworKyMgRGVw ZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3Jl YXRlIGEKKysjIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcF9vYmplY3RzPSRsdF9bXV9MVF9BQ19U QUdWQVIocHJlZGVwX29iamVjdHMsICQxKQorKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGFm dGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQorKyMgc2hhcmVkIGxpYnJh cnkuCisrcG9zdGRlcF9vYmplY3RzPSRsdF9bXV9MVF9BQ19UQUdWQVIocG9zdGRlcF9vYmplY3Rz LCAkMSkKKysKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgdGhlIG9iamVjdHMgYmVp bmcgbGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGlicmFyeS4KKytwcmVkZXBzPSRsdF9b XV9MVF9BQ19UQUdWQVIocHJlZGVwcywgJDEpCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2Ug YWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGli cmFyeS4KKytwb3N0ZGVwcz0kbHRfW11fTFRfQUNfVEFHVkFSKHBvc3RkZXBzLCAkMSkKKysKKysj IFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcg YSBzaGFyZWQKKysjIGxpYnJhcnkKKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X1tdX0xU X0FDX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKQorKworKyMgVGhlIGxpYnJh cnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtp bmcKKysjIGEgc2hhcmVkIGxpYnJhcnkuCisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9b XV9MVF9BQ19UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSkKKysKKysjIE1ldGhv ZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3Rz LgorK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAorKworKyMg Q29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSBmaWxlX21hZ2ljLgor K2ZpbGVfbWFnaWNfY21kPSRsdF9maWxlX21hZ2ljX2NtZAorKworKyMgRmxhZyB0aGF0IGFsbG93 cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisr YWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X1tdX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpCisrCisrIyBGbGFnIHRoYXQgZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgor K25vX3VuZGVmaW5lZF9mbGFnPSRsdF9bXV9MVF9BQ19UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcs ICQxKQorKworKyMgQ29tbWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkgaW5z dGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5LgorK2ZpbmlzaF9jbWRzPSRsdF9maW5pc2hfY21kcwor KworKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBiZSBl dmFsZWQgYnV0IG5vdCBzaG93bi4KKytmaW5pc2hfZXZhbD0kbHRfZmluaXNoX2V2YWwKKysKKysj IFRha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJv bHMgYW5kIEMgbmFtZXMuCisrZ2xvYmFsX3N5bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF9waXBlCisrCisrIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHByb3Bl ciBDIGRlY2xhcmF0aW9uCisrZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0kbHRfbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfdG9fY2RlY2wKKysKKysjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGlu IGEgQyBuYW1lIGFkZHJlc3MgcGFpcgorK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9 JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCisrCisrIyBUaGlz IGlzIHRoZSBzaGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGUuCisrcnVucGF0aF92 YXI9JHJ1bnBhdGhfdmFyCisrCisrIyBUaGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBwYXRoIHZh cmlhYmxlLgorK3NobGlicGF0aF92YXI9JHNobGlicGF0aF92YXIKKysKKysjIElzIHNobGlicGF0 aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8KKytz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aAor KworKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1 dGFibGUuCisraGFyZGNvZGVfYWN0aW9uPSRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwg JDEpCisrCisrIyBXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8g bGlicmFyaWVzLgorK2hhcmRjb2RlX2ludG9fbGlicz0kaGFyZGNvZGVfaW50b19saWJzCisrCisr IyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcu CisrIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgorK2hh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JGx0X1tdX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSkKKysKKysjIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFn IHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8KKysjIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLiBU aGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMKKysjIG5vdCBleGlzdC4KKytoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9bXV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19sZCwgJDEpCisrCisrIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgLXJw YXRoIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KKytoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yPSRsdF9bXV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEp CisrCisrIyBTZXQgdG8geWVzIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJp bmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8gdGhlCisrIyByZXN1bHRpbmcgYmluYXJ5Lgor K2hhcmRjb2RlX2RpcmVjdD0kX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKQorKwor KyMgU2V0IHRvIHllcyBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2luZyBoYXJk Y29kZXMgRElSIGludG8gdGhlCisrIyByZXN1bHRpbmcgYmluYXJ5LgorK2hhcmRjb2RlX21pbnVz X0w9JF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpCisrCisrIyBTZXQgdG8geWVz IGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIg aW50bworKyMgdGhlIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0k X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSkKKysKKysjIFNldCB0byB5 ZXMgaWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBE SVIgaW50byB0aGUgbGlicmFyeQorKyMgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQg ZXhlY3V0YWJsZXMgbGlua2VkIGFnYWluc3QgaXQuCisraGFyZGNvZGVfYXV0b21hdGljPSRfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpCisrCisrIyBWYXJpYWJsZXMgd2hvc2Ug dmFsdWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0cyBhbmQKKysj IHJlc3RvcmVkIGF0IHJlbGluayB0aW1lLgorK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIk dmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsiCisrCisrIyBXaGV0aGVyIGxpYnRvb2wgbXVzdCBs aW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJpZXMuCisrbGlu a19hbGxfZGVwbGlicz0kX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSkKKysKKysj IENvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcworK3N5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCisrCisrIyBSdW4t dGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcworK3N5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSRsdF9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYworKworKyMgRml4IHRoZSBz aGVsbCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlci4KKytmaXhfc3JjZmlsZV9w YXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoCisrCisrIyBTZXQgdG8geWVzIGlmIGV4cG9ydGVkIHN5 bWJvbHMgYXJlIHJlcXVpcmVkLgorK2Fsd2F5c19leHBvcnRfc3ltYm9scz0kX0xUX0FDX1RBR1ZB UihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKQorKworKyMgVGhlIGNvbW1hbmRzIHRvIGxpc3Qg ZXhwb3J0ZWQgc3ltYm9scy4KKytleHBvcnRfc3ltYm9sc19jbWRzPSRsdF9bXV9MVF9BQ19UQUdW QVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpCisrCisrIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFj dCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgorK2V4dHJh Y3RfZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcworKworKyMgU3ltYm9scyB0 aGF0IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KKytleGNs dWRlX2V4cHN5bXM9JGx0X1tdX0xUX0FDX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKQorKwor KyMgU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgorK2luY2x1ZGVfZXhwc3lt cz0kbHRfW11fTFRfQUNfVEFHVkFSKGluY2x1ZGVfZXhwc3ltcywgJDEpCisrCisraWZlbHNlKFsk MV0sW10sCisrWyMgIyMjIEVORCBMSUJUT09MIENPTkZJR10sCisrWyMgIyMjIEVORCBMSUJUT09M IFRBRyBDT05GSUc6ICR0YWduYW1lXSkKKysKKytfX0VPRl9fCisrCisraWZlbHNlKFskMV0sW10s IFsKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGFpeDMqKQorKyAgICBjYXQgPDxcRU9GID4+ICIk Y2ZnZmlsZSIKKysKKysjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBj b2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKKysjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xM RUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKKysjIHZhbmlzaCBp biBhIHB1ZmYgb2Ygc21va2UuCisraWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBY c2V0OyB0aGVuCisrICBDT0xMRUNUX05BTUVTPQorKyAgZXhwb3J0IENPTExFQ1RfTkFNRVMKKytm aQorK0VPRgorKyAgICA7OworKyAgZXNhYworKworKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2Yg Y2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCisrICAjIGlmIGZpbmRz IG1peGVkIENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCisr ICAjIHRleHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlz IGJhc2ggcHJvYmxlbQorKyAgIyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4g b24gb2xkIHZlcnNpb25zIHRvbz8KKysgIHNlZCAnJHEnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUi IHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCisrCisrICBtdiAtZiAiJGNmZ2ZpbGUiICIk b2ZpbGUiIHx8IFwKKysgICAgKHJtIC1mICIkb2ZpbGUiICYmIGNwICIkY2ZnZmlsZSIgIiRvZmls ZSIgJiYgcm0gLWYgIiRjZmdmaWxlIikKKysgIGNobW9kICt4ICIkb2ZpbGUiCisrXSkKKytlbHNl CisrICAjIElmIHRoZXJlIGlzIG5vIE1ha2VmaWxlIHlldCwgd2UgcmVseSBvbiBhIG1ha2UgcnVs ZSB0byBleGVjdXRlCisrICAjIGBjb25maWcuc3RhdHVzIC0tcmVjaGVjaycgdG8gcmVydW4gdGhl c2UgdGVzdHMgYW5kIGNyZWF0ZSB0aGUKKysgICMgbGlidG9vbCBzY3JpcHQgdGhlbi4KKysgIGx0 bWFpbl9pbj1gZWNobyAkbHRtYWluIHwgc2VkIC1lICdzL1wuc2gkLy5pbi8nYAorKyAgaWYgdGVz dCAtZiAiJGx0bWFpbl9pbiI7IHRoZW4KKysgICAgdGVzdCAtZiBNYWtlZmlsZSAmJiBtYWtlICIk bHRtYWluIgorKyAgZmkKKytmaQorK10pIyBBQ19MSUJUT09MX0NPTkZJRworKworKworKyMgQUNf TElCVE9PTF9QUk9HX0NPTVBJTEVSX05PX1JUVEkoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtBQ19MSUJUT09MX1BS T0dfQ09NUElMRVJfTk9fUlRUSV0sCisrW0FDX1JFUVVJUkUoW19MVF9BQ19TWVNfQ09NUElMRVJd KWRubAorKworK19MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcs ICQxKT0KKysKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWlsdGluJworKwor KyAgQUNfTElCVE9PTF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBzdXBwb3J0cyAtZm5v LXJ0dGkgLWZuby1leGNlcHRpb25zXSwKKysgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4 Y2VwdGlvbnMsCisrICAgIFstZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zXSwgW10sCisrICAgIFtf TFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9IiRfTFRf QUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkgLWZuby1ydHRp IC1mbm8tZXhjZXB0aW9ucyJdKQorK2ZpCisrXSkjIEFDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9O T19SVFRJCisrCisrCisrIyBBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9MX1BJUEUKKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZ U19HTE9CQUxfU1lNQk9MX1BJUEVdLAorK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0p CisrQUNfUkVRVUlSRShbTFRfQUNfUFJPR19TRURdKQorK0FDX1JFUVVJUkUoW0FDX1BST0dfTk1d KQorK0FDX1JFUVVJUkUoW0FDX09CSkVYVF0pCisrIyBDaGVjayBmb3IgY29tbWFuZCB0byBncmFi IHRoZSByYXcgc3ltYm9sIG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1ib2wgZnJvbSBubS4KKytBQ19N U0dfQ0hFQ0tJTkcoW2NvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBv YmplY3RdKQorK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sCisr WworKyMgVGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEgZmV3 IG9sZCBzeXN0ZW1zLgorKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUg b2xkZXIgdGhhbiBVbHRyaXg/ISEgOyldCisrCisrIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3JpYmlu ZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVzLgorK3N5bWNvZGU9J1tbQkNERUdSU1RdXScKKysKKysj IFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGZy b20gQy4KKytzeW1wYXQ9J1woW1tfQS1aYS16XV1bW19BLVphLXowLTldXSpcKScKKysKKysjIFRy YW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xhcmF0 aW9uCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9eLiAu KiBcKC4qXCkkL2V4dGVybiBpbnQgXDE7L3AnIgorKworKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3Rl ZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcworK2x0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChb W14gXV0qXCkgJC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2Rl IFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8gIHtcIlwyXCIsIChsdF9wdHIpIFwmXDJ9LC9wJyIK KysKKysjIERlZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgorK2Nhc2UgJGhvc3Rfb3Mg aW4KKythaXgqKQorKyAgc3ltY29kZT0nW1tCQ0RUXV0nCisrICA7OworK2N5Z3dpbiogfCBtaW5n dyogfCBwdzMyKikKKysgIHN5bWNvZGU9J1tbQUJDREdJU1RXXV0nCisrICA7OworK2hwdXgqKSAj IEl0cyBsaW5rZXIgZGlzdGluZ3Vpc2hlcyBkYXRhIGZyb20gY29kZSBzeW1ib2xzCisrICBpZiB0 ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICBzeW1jb2RlPSdbW0FCQ0RFR1JTVF1d JworKyAgZmkKKysgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUg J3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiog XCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCciCisrICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90 b19jX25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpICQvICB7XFxcIlwx XFxcIiwgKGx0X3B0cikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14g XV0qXCkkLyAge1wiXDJcIiwgKGx0X3B0cikgXCZcMn0sL3AnIgorKyAgOzsKKytsaW51eCogfCBr KmJzZCotZ251KQorKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysgICAgc3lt Y29kZT0nW1tBQkNER0lSU1RXXV0nCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2Nk ZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1lICdz L14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCciCisrICAgIGx0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbW14g XV0qXCkgJC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBc KFtbXiBdXSpcKSBcKFtbXiBdXSpcKSQvICB7XCJcMlwiLCAobHRfcHRyKSBcJlwyfSwvcCciCisr ICBmaQorKyAgOzsKKytpcml4KiB8IG5vbnN0b3B1eCopCisrICBzeW1jb2RlPSdbW0JDREVHUlNU XV0nCisrICA7OworK29zZiopCisrICBzeW1jb2RlPSdbW0JDREVHUVJTVF1dJworKyAgOzsKKytz b2xhcmlzKikKKysgIHN5bWNvZGU9J1tbQkRSVF1dJworKyAgOzsKKytzY28zLjJ2NSopCisrICBz eW1jb2RlPSdbW0RUXV0nCisrICA7OworK3N5c3Y0LjJ1dzIqKQorKyAgc3ltY29kZT0nW1tEVF1d JworKyAgOzsKKytzeXN2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQorKyAg c3ltY29kZT0nW1tBQkRUXV0nCisrICA7OworK3N5c3Y0KQorKyAgc3ltY29kZT0nW1tERk5TVFVd XScKKysgIDs7CisrZXNhYworKworKyMgSGFuZGxlIENSTEYgaW4gbWluZ3cgdG9vbCBjaGFpbgor K29wdF9jcj0KKytjYXNlICRidWlsZF9vcyBpbgorK21pbmd3KikKKysgIG9wdF9jcj1gZWNobyAn eFx7MCwxXH0nIHwgdHIgeCAnXDAxNSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAorKyAgOzsKKytl c2FjCisrCisrIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFyZCBz eW1ib2wgY29kZXMuCisrY2FzZSBgJE5NIC1WIDI+JjFgIGluCisrKkdOVSogfCAqJ3dpdGggQkZE JyopCisrICBzeW1jb2RlPSdbW0FCQ0RHSVJTVFddXScgOzsKKytlc2FjCisrCisrIyBUcnkgd2l0 aG91dCBhIHByZWZpeCB1bmRlcmNvcmUsIHRoZW4gd2l0aCBpdC4KKytmb3IgYWNfc3ltcHJmeCBp biAiIiAiXyI7IGRvCisrCisrICAjIFRyYW5zZm9ybSBzeW1jb2RlLCBzeW1wYXQsIGFuZCBzeW1w cmZ4IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMgc3ltYm9sLgorKyAgc3lteGZybT0iXFwxICRh Y19zeW1wcmZ4XFwyIFxcMiIKKysKKysgICMgV3JpdGUgdGhlIHJhdyBhbmQgQyBpZGVudGlmaWVy cy4KKysgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbWyAJ XV1cKCRzeW1jb2RlJHN5bWNvZGUqXClbWyAJXV1bWyAJXV0qJGFjX3N5bXByZngkc3ltcGF0JG9w dF9jciQvJHN5bXhmcm0vcCciCisrCisrICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBwaXBlIHdv cmtzIGNvcnJlY3RseS4KKysgIHBpcGVfd29ya3M9bm8KKysKKysgIHJtIC1mIGNvbmZ0ZXN0Kgor KyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgorKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4 dGVybiAiQyIgeworKyNlbmRpZgorK2NoYXIgbm1fdGVzdF92YXI7Cisrdm9pZCBubV90ZXN0X2Z1 bmMoKXt9CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZgorK2ludCBtYWluKCl7bm1f dGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9CisrRU9GCisrCisrICBpZiBB Q19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorKyAgICAjIE5vdyB0cnkgdG8gZ3JhYiB0aGUg c3ltYm9scy4KKysgICAgbmxpc3Q9Y29uZnRlc3Qubm0KKysgICAgaWYgQUNfVFJZX0VWQUwoTk0g Y29uZnRlc3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBcPiAk bmxpc3QpICYmIHRlc3QgLXMgIiRubGlzdCI7IHRoZW4KKysgICAgICAjIFRyeSBzb3J0aW5nIGFu ZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgorKyAgICAgIGlmIHNvcnQgIiRubGlzdCIgfCB1bmlx ID4gIiRubGlzdCJUOyB0aGVuCisrCW12IC1mICIkbmxpc3QiVCAiJG5saXN0IgorKyAgICAgIGVs c2UKKysJcm0gLWYgIiRubGlzdCJUCisrICAgICAgZmkKKysKKysgICAgICAjIE1ha2Ugc3VyZSB0 aGF0IHdlIHNuYWdnZWQgYWxsIHRoZSBzeW1ib2xzIHdlIG5lZWQuCisrICAgICAgaWYgZ3JlcCAn IG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgorKwlpZiBncmVwICcgbm1f dGVzdF9mdW5jJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgorKwkgIGNhdCA8PEVPRiA+IGNv bmZ0ZXN0LiRhY19leHQKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiIHsKKysjZW5k aWYKKysKKytFT0YKKysJICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCisrCSAgZXZh bCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiB8IGdyZXAg LXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0JworKworKwkgIGNhdCA8PEVPRiA+PiBjb25mdGVz dC4kYWNfZXh0CisrI2lmIGRlZmluZWQgKF9fU1REQ19fKSAmJiBfX1NURENfXworKyMgZGVmaW5l IGx0X3B0cl90IHZvaWQgKgorKyNlbHNlCisrIyBkZWZpbmUgbHRfcHRyX3QgY2hhciAqCisrIyBk ZWZpbmUgY29uc3QKKysjZW5kaWYKKysKKysvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBu YW1lcyBhbmQgc3ltYm9scy4gKi8KKytjb25zdCBzdHJ1Y3QgeworKyAgY29uc3QgY2hhciAqbmFt ZTsKKysgIGx0X3B0cl90IGFkZHJlc3M7CisrfQorK2x0X3ByZWxvYWRlZF9zeW1ib2xzW1tdXSA9 CisreworK0VPRgorKwkgICRTRUQgInMvXiRzeW1jb2RlJHN5bWNvZGUqIFwoLipcKSBcKC4qXCkk LyAge1wiXDJcIiwgKGx0X3B0cl90KSBcJlwyfSwvIiA8ICIkbmxpc3QiIHwgZ3JlcCAtdiBtYWlu ID4+IGNvbmZ0ZXN0LiRhY19leHQKKysJICBjYXQgPDxcRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQK KysgIHswLCAobHRfcHRyX3QpIDB9CisrfTsKKysKKysjaWZkZWYgX19jcGx1c3BsdXMKKyt9Cisr I2VuZGlmCisrRU9GCisrCSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhlIHR3byBmaWxlcy4KKysJICBt diBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKKysJICBsdF9zYXZlX0xJ QlM9IiRMSUJTIgorKwkgIGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgorKwkgIExJQlM9ImNvbmZ0 c3RtLiRhY19vYmpleHQiCisrCSAgQ0ZMQUdTPSIkQ0ZMQUdTJF9MVF9BQ19UQUdWQVIobHRfcHJv Z19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKSIKKysJICBpZiBBQ19UUllfRVZBTChhY19s aW5rKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCisrCSAgICBwaXBlX3dv cmtzPXllcworKwkgIGZpCisrCSAgTElCUz0iJGx0X3NhdmVfTElCUyIKKysJICBDRkxBR1M9IiRs dF9zYXZlX0NGTEFHUyIKKysJZWxzZQorKwkgIGVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfZnVu YyBpbiAkbmxpc3QiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysJZmkKKysgICAgICBlbHNlCisrCWVj aG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIgPiZBU19NRVNTQUdFX0xPR19G RAorKyAgICAgIGZpCisrICAgIGVsc2UKKysgICAgICBlY2hvICJjYW5ub3QgcnVuICRsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF9waXBlIiA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgIGZpCisrICBl bHNlCisrICAgIGVjaG8gIiRwcm9nbmFtZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiZBU19NRVNT QUdFX0xPR19GRAorKyAgICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysgIGZpCisrICBybSAt cmYgY29uZnRlc3QqIGNvbmZ0c3QqCisrCisrICAjIERvIG5vdCB1c2UgdGhlIGdsb2JhbF9zeW1i b2xfcGlwZSB1bmxlc3MgaXQgd29ya3MuCisrICBpZiB0ZXN0ICIkcGlwZV93b3JrcyIgPSB5ZXM7 IHRoZW4KKysgICAgYnJlYWsKKysgIGVsc2UKKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf cGlwZT0KKysgIGZpCisrZG9uZQorK10pCisraWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3BpcGUiOyB0aGVuCisrICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0K KytmaQorK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlJGx0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIjsgdGhlbgorKyAgQUNfTVNHX1JFU1VMVChmYWlsZWQp CisrZWxzZQorKyAgQUNfTVNHX1JFU1VMVChvaykKKytmaQorK10pICMgQUNfTElCVE9PTF9TWVNf R0xPQkFMX1NZTUJPTF9QSVBFCisrCisrCisrIyBBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElD KFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor K0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDXSwKKytbX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9CisrX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPQorK19MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT0KKysKKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2Ug UElDXSkKKysgaWZlbHNlKFskMV0sW0NYWF0sWworKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9y IHBpYywgc3RhdGljLCB3bCwgZXRjLgorKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgIF9M VF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysKKysg ICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAgICAgICMgQWxsIEFJWCBjb2RlIGlz IFBJQy4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1 IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAg YW1pZ2FvcyopCisrICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRv IGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAy MCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorKyAgICAg ICMgbGlrZSBgLW02ODA0MCcuCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAg ICAgOzsKKysgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyog fCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBP U2VzLgorKyAgICAgIDs7CisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiopCisr ICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hl dGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAo YW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgIyBBbHRob3Vn aCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1z dHlsZQorKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCisrICAgICAg bTRfaWYoWyQxXSwgW0dDSl0sIFtdLAorKwlbX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKKysgICAgICA7OworKyAgICBkYXJ3aW4qIHwgcmhh cHNvZHkqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KKysg ICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCisrICAg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1vbicK KysgICAgICA7OworKyAgICAqZGpncHAqKQorKyAgICAgICMgREpHUFAgZG9lcyBub3Qgc3VwcG9y dCBzaGFyZWQgbGlicmFyaWVzIGF0IGFsbAorKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0KKysgICAgICA7OworKyAgICBpbnRlcml4W1szLTldXSopCisrICAg ICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4g Y29kZS4KKysgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQg cnVudGltZS4KKysgICAgICA7OworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYgdGVzdCAtZCAv dXNyL25lYzsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9 LUtjb25mb3JtX3BpYworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgaHB1eCopCisrICAgICAg IyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0LWJpdCBIUC1VWCwgYnV0 CisrICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisr ICAgICAgaHBwYSo2NCp8aWE2NCopCisrCTs7CisrICAgICAgKikKKysJX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKysJOzsKKysgICAgICBlc2FjCisrICAg ICAgOzsKKysgICAgKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9Jy1mUElDJworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGVsc2UKKysgICAgY2FzZSAk aG9zdF9vcyBpbgorKyAgICAgIGFpeFtbNC05XV0qKQorKwkjIEFsbCBBSVggY29kZSBpcyBQSUMu CisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBBSVggNSBub3cgc3Vw cG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwllbHNlCisrCSAgX0xUX0FDX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCisrCWZp CisrCTs7CisrICAgICAgY2hvcnVzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJY3hjaDY4 KikKKysJICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICMgX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSItLW5vX2F1dG9faW5zdGFudGlhdGlvbiAtdSBf X21haW4gLXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09PTF9ESVIvbGliL2xpYk9yYi5hICRN Vk1FX0RJUi9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIvY2xhc3NpeC9saWJjeC5zLmEiCisr CSAgOzsKKysJZXNhYworKwk7OworKyAgICAgICBkYXJ3aW4qKQorKyAgICAgICAgICMgUElDIGlz IHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KKysgICAgICAgICAjIENvbW1vbiBzeW1ib2xz IG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCisrICAgICAgICAgY2FzZSAkY2NfYmFzZW5h bWUgaW4KKysgICAgICAgICAgIHhsYyopCisrICAgICAgICAgICBfTFRfQUNfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Jy1xbm9jb21tb24nCisrICAgICAgICAgICBfTFRfQUNfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAgICAgIDs7CisrICAg ICAgICAgZXNhYworKyAgICAgICA7OworKyAgICAgIGRndXgqKQorKwljYXNlICRjY19iYXNlbmFt ZSBpbgorKwkgIGVjKysqKQorKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPSctS1BJQycKKysJICAgIDs7CisrCSAgZ2hjeCopCisrCSAgICAjIEdyZWVuIEhpbGxz IEMrKyBDb21waWxlcgorKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAg ICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysJIyBGcmVlQlNEIHVzZXMgR05VIEMrKworKwk7 OworKyAgICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKwljYXNlICRjY19iYXNlbmFt ZSBpbgorKwkgIENDKikKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwg JDEpPSctV2wsJworKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0g aWE2NDsgdGhlbgorKwkgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9JytaJworKwkgICAgZmkKKysJICAgIDs7CisrCSAgYUNDKikKKysJICAgIF9MVF9BQ19UQUdW QVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAg IGNhc2UgJGhvc3RfY3B1IGluCisrCSAgICBocHBhKjY0KnxpYTY0KikKKysJICAgICAgIyArWiB0 aGUgZGVmYXVsdAorKwkgICAgICA7OworKwkgICAgKikKKysJICAgICAgX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPScrWicKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJ ICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBpbnRlcml4KikK KysJIyBUaGlzIGlzIGM4OSwgd2hpY2ggaXMgTVMgVmlzdWFsIEMrKyAobm8gc2hhcmVkIGxpYnMp CisrCSMgQW55b25lIHdhbnRzIHRvIGRvIGEgcG9ydD8KKysJOzsKKysgICAgICBpcml4NSogfCBp cml4NiogfCBub25zdG9wdXgqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJ ICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAg X0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcK KysJICAgICMgQ0MgcGljIGZsYWcgLUtQSUMgaXMgdGhlIGRlZmF1bHQuCisrCSAgICA7OworKwkg ICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgbGludXgqIHwgaypic2QqLWdudSkK KysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBLQ0MqKQorKwkgICAgIyBLQUkgQysrIENvbXBp bGVyCisrCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1iYWNr ZW5kIC1XbCwnCisrCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9 Jy1mUElDJworKwkgICAgOzsKKysJICBpY3BjKiB8IGVjcGMqKQorKwkgICAgIyBJbnRlbCBDKysK KysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysJICAg IF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysJ ICAgIDs7CisrCSAgcGdDQyogfCBwZ2NwcCopCisrCSAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBj b21waWxlci4KKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSct V2wsJworKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZnBp YycKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJz dGF0aWMnCisrCSAgICA7OworKwkgIGN4eCopCisrCSAgICAjIENvbXBhcSBDKysKKysJICAgICMg TWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxw aGEKKysJICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4K KysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KKysJICAgIF9M VF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCisr CSAgICA7OworKwkgICopCisrCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysJ ICAgICpTdW5cIEMqKQorKwkgICAgICAjIFN1biBDKysgNS45CisrCSAgICAgIF9MVF9BQ19UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICAgIF9MVF9BQ19UQUdW QVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrCSAgICAgIF9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCisrCSAgICAg IDs7CisrCSAgICBlc2FjCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgbHlueG9zKikK KysJOzsKKysgICAgICBtODhrKikKKysJOzsKKysgICAgICBtdnMqKQorKwljYXNlICRjY19iYXNl bmFtZSBpbgorKwkgIGN4eCopCisrCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9Jy1XIGMsZXhwb3J0YWxsJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJ ZXNhYworKwk7OworKyAgICAgIG5ldGJzZCopCisrCTs7CisrICAgICAgb3NmMyogfCBvc2Y0KiB8 IG9zZjUqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIEtDQyopCisrCSAgICBfTFRfQUNf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLS1iYWNrZW5kIC1XbCwnCisrCSAgICA7 OworKwkgIFJDQyopCisrCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQorKwkgICAgX0xUX0FDX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJworKwkgICAgOzsKKysJICBjeHgq KQorKwkgICAgIyBEaWdpdGFsL0NvbXBhcSBDKysKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJv Z19jb21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFn IGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQorKwkgICAgIyBMaW51eCBhbmQg Q29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElDLgorKwkgICAgX0xUX0FDX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysJICAgIDs7CisrCSAgKikKKysJICAg IDs7CisrCWVzYWMKKysJOzsKKysgICAgICBwc29zKikKKysJOzsKKysgICAgICBzb2xhcmlzKikK KysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAgICAjIFN1biBDKysgNC4yLCA1 LnggYW5kIENlbnRlcmxpbmUgQysrCisrCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9Jy1LUElDJworKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCisrCSAgICA7OworKwkgIGdjeCopCisrCSAgICAj IEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctUElDJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNh YworKwk7OworKyAgICAgIHN1bm9zNCopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgQ0Mq KQorKwkgICAgIyBTdW4gQysrIDQueAorKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctcGljJworKwkgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICAgIDs7CisrCSAgbGNjKikKKysJICAgICMgTHVj aWQKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycK KysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICB0YW5kZW0q KQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIE5DQyopCisrCSAgICAjIE5vblN0b3AtVVgg TkNDIDMuMjAKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LUtQSUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAg c3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKKysJ Y2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAgICBfTFRfQUNfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgOzsKKysJZXNhYworKwk7OworKyAg ICAgIHZ4d29ya3MqKQorKwk7OworKyAgICAgICopCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl9jYW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KKysJOzsKKysgICAgZXNhYworKyAgZmkK KytdLAorK1sKKysgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIF9MVF9BQ19UQUdW QVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAgICBfTFRfQUNfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCisrCisrICAgIGNhc2UgJGhvc3Rf b3MgaW4KKysgICAgICBhaXgqKQorKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysgICAg ICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBwb3J0 cyBJQTY0IHByb2Nlc3NvcgorKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgYW1pZ2Fvcyop CisrICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNo YXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0 byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorKyAgICAgICMgbGlrZSBg LW02ODA0MCcuCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAgOzsKKysK KysgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0 KiB8IG9zZjUqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgor KyAgICAgIDs7CisrCisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiopCisrICAg ICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhl ciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5k IHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgIyBBbHRob3VnaCB0 aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHls ZQorKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCisrICAgICAgbTRf aWYoWyQxXSwgW0dDSl0sIFtdLAorKwlbX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPSctRERMTF9FWFBPUlQnXSkKKysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhh cHNvZHkqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KKysg ICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCisrICAg ICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1vbicK KysgICAgICA7OworKworKyAgICBpbnRlcml4W1szLTldXSopCisrICAgICAgIyBJbnRlcml4IDMu eCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9ucyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KKysgICAgICAj IEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KKysgICAg ICA7OworKworKyAgICBtc2Rvc2RqZ3BwKikKKysgICAgICAjIEp1c3QgYmVjYXVzZSB3ZSB1c2Ug R0NDIGRvZXNuJ3QgbWVhbiB3ZSBzdWRkZW5seSBnZXQgc2hhcmVkIGxpYnJhcmllcworKyAgICAg ICMgb24gc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbS4KKysgICAgICBfTFRfQUNfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwgJDEpPW5vCisrICAgICAgZW5h YmxlX3NoYXJlZD1ubworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0 ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0tS2NvbmZvcm1fcGljCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBocHV4 KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0 IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9z dF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7 OworKyAgICAgICopCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LWZQSUMnCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAg X0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKysgICAgICA7 OworKyAgICBlc2FjCisrICBlbHNlCisrICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBh c3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KKysgICAgY2FzZSAk aG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctV2wsJworKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0 aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCV9MVF9BQ19UQUdW QVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgZWxzZQor KwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ibnNvIC1iSTov bGliL3N5c2NhbGxzLmV4cCcKKysgICAgICBmaQorKyAgICAgIDs7CisrICAgICAgZGFyd2luKikK KysgICAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KKysgICAgICAg ICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICAg Y2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICB4bGMqKQorKyAgICAgICAgIF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXFub2NvbW1vbicKKysgICAgICAgICBf TFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAgICA7 OworKyAgICAgICBlc2FjCisrICAgICAgIDs7CisrCisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBw dzMyKiB8IG9zMiopCisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZp bGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1 c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisr ICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAorKwlbX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKKysgICAgICA7OworKworKyAgICBocHV4 OSogfCBocHV4MTAqIHwgaHB1eDExKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2 NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVgu CisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJIyAr WiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nK1onCisrCTs7CisrICAgICAgZXNhYworKyAgICAgICMgSXMgdGhl cmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBi dW5kbGVkIENDPworKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMs ICQxKT0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrICAgICAgOzsKKysKKysgICAgaXJpeDUqIHwg aXJpeDYqIHwgbm9uc3RvcHV4KikKKysgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1 bHQuCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct bm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIF9MVF9BQ19U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrICAgICAgX0xUX0FDX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICA7Owor KworKyAgICBsaW51eCogfCBrKmJzZCotZ251KQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu CisrICAgICAgaWNjKiB8IGVjYyopCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93 bCwgJDEpPSctV2wsJworKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9 Jy1LUElDJworKwlfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1z dGF0aWMnCisrICAgICAgICA7OworKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdm OTUqKQorKyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50 aXVtIGdjYyBjb21waWxlciwKKysJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkK KysJX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZwaWMnCisrCV9MVF9BQ19UQUdW QVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgICA7Owor KyAgICAgIGNjYyopCisrICAgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKT0nLVdsLCcKKysgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgorKyAgICAgICAg X0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcK KysgICAgICAgIDs7CisrICAgICAgKikKKysgICAgICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2Vk IDVxYCBpbgorKwkqU3VuXCBDKikKKysJICAjIFN1biBDIDUuOQorKwkgIF9MVF9BQ19UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgX0xUX0FDX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICBfTFRfQUNfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICA7OworKwkqU3VuXCBGKikKKysJICAj IFN1biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlu a2VyCisrCSAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycK KysJICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGlj JworKwkgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPScnCisrCSAgOzsK KysJZXNhYworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBvc2YzKiB8IG9z ZjQqIHwgb3NmNSopCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCisrICAgICAgIyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCisrICAgICAgX0xUX0FD X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysgICAg ICA7OworKworKyAgICByZG9zKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMq KQorKyAgICAgIF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMn CisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0 YXRpYycKKysgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIGY3NyogfCBmOTAqIHwg Zjk1KikKKysJX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9u IGxkICc7OworKyAgICAgICopCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwg JDEpPSctV2wsJzs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisr ICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxk ICcKKysgICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1QSUMn CisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0 YXRpYycKKysgICAgICA7OworKworKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyop CisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisr ICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysg ICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGlj JworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3Iv bmVjIDt0aGVuCisrCV9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtj b25mb3JtX3BpYycKKysJX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PSctQnN0YXRpYycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHVuaXh3 YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCisrICAgICAgX0xUX0FDX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAgX0xUX0FDX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysgICAgICBfTFRfQUNfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisr ICAgIHVuaWNvcyopCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1XbCwnCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWls ZF9zaGFyZWQsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIF9MVF9B Q19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycKKysgICAgICBfTFRfQUNf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7 CisrCisrICAgICopCisrICAgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9i dWlsZF9zaGFyZWQsICQxKT1ubworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrXSkKKytB Q19NU0dfUkVTVUxUKFskX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpXSkK KysKKysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdvcmtz LgorKyMKKytpZiB0ZXN0IC1uICIkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpIjsgdGhlbgorKyAgQUNfTElCVE9PTF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBQ SUMgZmxhZyAkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIHdvcmtzXSwK KysgICAgX0xUX0FDX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcywgJDEpLAor KyAgICBbJF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKWlmZWxzZShbJDFd LFtdLFsgLURQSUNdLFtpZmVsc2UoWyQxXSxbQ1hYXSxbIC1EUElDXSxbXSldKV0sIFtdLAorKyAg ICBbY2FzZSAkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIGluCisrICAg ICAiIiB8ICIgIiopIDs7CisrICAgICAqKSBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf cGljLCAkMSk9IiAkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIiA7Owor KyAgICAgZXNhY10sCisrICAgIFtfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9CisrICAgICBfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJl ZCwgJDEpPW5vXSkKKytmaQorK2Nhc2UgJGhvc3Rfb3MgaW4KKysgICMgRm9yIHBsYXRmb3JtcyB3 aGljaCBkbyBub3Qgc3VwcG9ydCBQSUMsIC1EUElDIGlzIG1lYW5pbmdsZXNzOgorKyAgKmRqZ3Bw KikKKysgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorKyAgICA7 OworKyAgKikKKysgICAgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSIk X0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpaWZlbHNlKFskMV0sW10sWyAt RFBJQ10sW2lmZWxzZShbJDFdLFtDWFhdLFsgLURQSUNdLFtdKV0pIgorKyAgICA7OworK2VzYWMK KysKKysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdv cmtzLgorKyMKKyt3bD0kX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkgZXZh bCBsdF90bXBfc3RhdGljX2ZsYWc9XCIkX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpXCIKKytBQ19MSUJUT09MX0xJTktFUl9PUFRJT04oW2lmICRjb21waWxlciBzdGF0 aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzXSwKKysgIF9MVF9BQ19UQUdWQVIobHRf Y3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MsICQxKSwKKysgICRsdF90bXBfc3RhdGljX2Zs YWcsCisrICBbXSwKKysgIFtfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAk MSk9XSkKKytdKQorKworKworKyMgQUNfTElCVE9PTF9QUk9HX0xEX1NITElCUyhbVEFHTkFNRV0p CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNlZSBpZiB0aGUg bGlua2VyIHN1cHBvcnRzIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCisrQUNfREVGVU4oW0FD X0xJQlRPT0xfUFJPR19MRF9TSExJQlNdLAorK1tBQ19SRVFVSVJFKFtMVF9BQ19QUk9HX1NFRF0p ZG5sCisrQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQp IHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNdKQorK2lmZWxzZShbJDFdLFtDWFhdLFsKKysgIF9M VF9BQ19UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZl bmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29y dCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICBjYXNlICRob3N0X29zIGluCisrICBhaXhb WzQtOV1dKikKKysgICAgIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2Fu dCB0aGUgIi1DIiBvcHRpb24uCisrICAgICMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBi dXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKysgICAgaWYgJE5NIC1WIDI+JjEg fCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgX0xUX0FDX1RBR1ZBUihleHBv cnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3 ayAnXCcneyBpZiAoKChcWyRdMiA9PSAiVCIpIHx8IChcWyRdMiA9PSAiRCIpIHx8IChcWyRdMiA9 PSAiQiIpKSAmJiAoW3N1YnN0cl0oXFskXTMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFxbJF0zIH0g fSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgICBlbHNlCisrICAgICAgX0xU X0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGlib2JqcyAk Y29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXFskXTIgPT0gIlQiKSB8fCAoXFskXTIgPT0g IkQiKSB8fCAoXFskXTIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFxbJF0zLDEsMSkgIT0gIi4iKSkg eyBwcmludCBcWyRdMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysgICAg ZmkKKysgICAgOzsKKysgIHB3MzIqKQorKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9zeW1ib2xz X2NtZHMsICQxKT0iJGx0ZGxsX2NtZHMiCisrICA7OworKyAgY3lnd2luKiB8IG1pbmd3KikKKysg ICAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAk Y29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bW0JDREdS U11dW1sgXV0vcy8uKltbIF1dXChbW14gXV0qXCkvXDEgREFUQS87L14uKltbIF1dX19ubV9fL3Mv Xi4qW1sgXV1fX25tX19cKFtbXiBdXSpcKVtbIF1dW1teIF1dKi9cMSBEQVRBLzsvXklbWyBdXS9k Oy9eW1tBSVRXXV1bWyBdXS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRf c3ltYm9scycKKysgIDs7CisrICAqKQorKyAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9zeW1ib2xz X2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3Bp cGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xz JworKyAgOzsKKysgIGVzYWMKKysgIF9MVF9BQ19UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9 WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQorK10sWworKyAgcnVu cGF0aF92YXI9CisrICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Cisr ICBfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1u bworKyAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0KKysgIF9MVF9BQ19UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQorKyAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9G cm9tX25ld19jbWRzLCAkMSk9CisrICBfTFRfQUNfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fZXhw c3ltc19jbWRzLCAkMSk9CisrICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl YywgJDEpPQorKyAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQor KyAgX0xUX0FDX1RBR1ZBUih0aHJlYWRfc2FmZV9mbGFnX3NwZWMsICQxKT0KKysgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQorKyAgX0xUX0FDX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CisrICBfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KKysgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9bm8KKysgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCisr ICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAor KyAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9dW5rbm93bgorKyAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubworKyAgX0xUX0FDX1RBR1ZBUihtb2R1 bGVfY21kcywgJDEpPQorKyAgX0xUX0FDX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0K KysgIF9MVF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KKysgIF9MVF9B Q19UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmll bmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8 IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICAjIGluY2x1ZGVfZXhwc3ltcyBzaG91bGQgYmUg YSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMqCisrICAjIGlu Y2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAorKyAgX0xUX0FDX1RBR1ZBUihpbmNsdWRlX2V4cHN5 bXMsICQxKT0KKysgICMgZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCByZWdleHAg b2Ygc3ltYm9scyB0byBleGNsdWRlCisrICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBgICgnIGFu ZCBgKSQnLCBzbyBvbmUgbXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5nIG9yCisrICAjIGVuZCBvZiBs aW5lLiAgRXhhbXBsZTogYGF8YmN8LipkLionIHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9scyBgYScg YW5kIGBiYycsCisrICAjIGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zIGBkJy4K KysgIF9MVF9BQ19UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9U QUJMRV98X0dMT0JBTF9fRltJRF1fLionXQorKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNFVF9U QUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0CisrICAjIHBsYXRmb3Jt cyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQg aWYKKysgICMgdGhlIHN5bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0 YWJsZSBjb2RlIGNhbm5vdAorKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJv YmFibHkgZmluZSB0byBuZXZlciBpbmNsdWRlIGl0IGluCisrICAjIHByZWxvYWRlZCBzeW1ib2wg dGFibGVzLgorKyAgIyBFeGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFs aXphdGlvbiBzeW1ib2xzLgorK2RubCBOb3RlIGFsc28gYWRqdXN0IGV4Y2x1ZGVfZXhwc3ltcyBm b3IgQysrIGFib3ZlLgorKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9CisrICAjIEp1c3QgYmVpbmcg cGFyYW5vaWQgYWJvdXQgZW5zdXJpbmcgdGhhdCBjY19iYXNlbmFtZSBpcyBzZXQuCisrICBfTFRf Q0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCisrICBjYXNlICRob3N0X29zIGluCisrICBjeWd3aW4q IHwgbWluZ3cqIHwgcHczMiopCisrICAgICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3Qg YmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKKysgICAgIyBXaGVuIG5vdCB1c2luZyBnY2Ms IHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKKysgICAgIyBNaWNyb3NvZnQg VmlzdWFsIEMrKy4KKysgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCisrICAgICAgd2l0 aF9nbnVfbGQ9bm8KKysgICAgZmkKKysgICAgOzsKKysgIGludGVyaXgqKQorKyAgICAjIHdlIGp1 c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQorKyAgICB3 aXRoX2dudV9sZD15ZXMKKysgICAgOzsKKysgIG9wZW5ic2QqKQorKyAgICB3aXRoX2dudV9sZD1u bworKyAgICA7OworKyAgZXNhYworKworKyAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15 ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgIyBJZiBhcmNo aXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKKysgICAgd2xh cmM9JyR7d2x9JworKworKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBz aGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQorKyAgICAjIGFyZSByZXNldCBsYXRlciBpZiBz aGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0KKysgICAgIyBo ZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgorKyAgICBydW5w YXRoX3Zhcj1MRF9SVU5fUEFUSAorKyAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgX0xUX0FDX1RB R1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWlj JworKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBl dC4gYWwuCisrICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ25vLXdob2xlLWFyY2hpdmUn ID4gL2Rldi9udWxsOyB0aGVuCisrCV9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0t bm8td2hvbGUtYXJjaGl2ZScKKysgICAgICBlbHNlCisrICAJX0xUX0FDX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorKyAgICBmaQorKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNp b25pbmc9bm8KKysgICAgY2FzZSBgJExEIC12IDI+L2Rldi9udWxsYCBpbgorKyAgICAgICpcIFtb MDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMg PCAyLjExCisrICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmlu Zz15ZXMgOzsgIyBSSDcuMyAuLi4KKysgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBvcnRz X2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCisrICAgICAgKlwgMi4x MS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKKysgICAgICAqKSBzdXBwb3J0c19hbm9uX3Zl cnNpb25pbmc9eWVzIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBTZWUgaWYgR05VIGxkIHN1cHBv cnRzIHNoYXJlZCBsaWJyYXJpZXMuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgYWl4W1sz LTldXSopCisrICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJyb2tl bgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorKwlfTFRfQUNfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCisrCWNhdCA8PEVPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6 IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRl ZAorKyoqKiB0byBiZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMg b24gQUlYLgorKyoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJy YXJpZXMgc3VwcG9ydC4gIElmIHlvdQorKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJh cmllcywgeW91IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKKysqKiogc28gdGhhdCBhIG5v bi1HTlUgbGlua2VyIGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK0VPRgorKyAgICAg IGZpCisrICAgICAgOzsKKysKKysgICAgYW1pZ2FvcyopCisrICAgICAgX0xUX0FDX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJHJtICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVj aG8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5k YXRhfiRlY2hvICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxp YnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpk aXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJv YmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScK KysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwk bGliZGlyJworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwor KworKyAgICAgICMgU2FtdWVsIEEuIEZhbHZvIElJIDxrYzV0amFAZG9scGhpbi5vcGVucHJvamVj dHMubmV0PiByZXBvcnRzCisrICAgICAgIyB0aGF0IHRoZSBzZW1hbnRpY3Mgb2YgZHluYW1pYyBs aWJyYXJpZXMgb24gQW1pZ2FPUywgYXQgbGVhc3QgdXAKKysgICAgICAjIHRvIHZlcnNpb24gNCwg aXMgdG8gc2hhcmUgZGF0YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFtcyBsaW5rZWQKKysgICAgICAj IHdpdGggdGhlIHNhbWUgZHluYW1pYyBsaWJyYXJ5LiAgU2luY2UgdGhpcyBkb2Vzbid0IG1hdGNo IHRoZQorKyAgICAgICMgYmVoYXZpb3Igb2Ygc2hhcmVkIGxpYnJhcmllcyBvbiBvdGhlciBwbGF0 Zm9ybXMsIHdlIGNhbid0IHVzZQorKyAgICAgICMgdGhlbS4KKysgICAgICBfTFRfQUNfVEFHVkFS KGxkX3NobGlicywgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgYmVvcyopCisrICAgICAgaWYg JExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rl di9udWxsOyB0aGVuCisrCV9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11 bnN1cHBvcnRlZAorKwkjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNv bWUgcmVsZWFzZXMgb2YgZ2NjCisrCSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2 ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAgICAgIGVsc2UKKysJX0xUX0FDX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgY3ln d2luKiB8IG1pbmd3KiB8IHB3MzIqKQorKyAgICAgICMgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCisrICAgICAgIyBh cyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9B Q19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorKyAgICAgIF9M VF9BQ19UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KKysgICAgICBfTFRfQUNf VEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKKysgICAg ICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRj b252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JT XV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLydcJycgLWUgJ1wnJy9eW1tBSVRX XV1bWyBdXS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycK KysKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICdhdXRvLWltcG9ydCcgPiAvZGV2 L251bGw7IHRoZW4KKysgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0 LWltcGxpYiAtWGxpbmtlciAkbGliJworKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFs cmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCisrCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBh cyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQ T1JUUzsgdGhlbgorKwkgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1l LmRlZjsKKysJZWxzZQorKwkgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUu ZGVmOworKwkgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWY7CisrCWZpfgorKwkkQ0MgLXNoYXJlZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk e3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5r ZXIgJGxpYicKKysgICAgICBlbHNlCisrCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K KysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGludGVyaXhbWzMtOV1dKikKKysgICAgICBf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisrICAgICAgX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICBfTFRfQUNfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysgICAg ICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwor KyAgICAgICMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNh dXNlIG9mIGEgYnJva2VuIGdjYy4KKysgICAgICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMg YXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisrICAgICAgIyBkZWZh dWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5 IG1lbW9yeQorKyAgICAgICMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8g YXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKKysgICAgICAjIDI1NiBLaUItYWxpZ25lZCBp bWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCisrICAg ICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNi cmsoMikgc3BhY2UuCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAv IDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysgICAgICBfTFRfQUNfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+ JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFp bi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdl LWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4 MGAgLW8gJGxpYicKKysgICAgICA7OworKworKyAgICBnbnUqIHwgbGludXgqIHwgaypic2QqLWdu dSkKKysgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRz Oi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJdG1wX2FkZGZsYWc9CisrCWNhc2UgJGNjX2Jh c2VuYW1lLCRob3N0X2NwdSBpbgorKwlwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBp bGVyCisrCSAgX0xUX0FDX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3ds fS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAt biBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwi OyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hp dmUnCisrCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCisrCSAgOzsKKysJcGdmNzcqIHwgcGdm OTAqIHwgcGdmOTUqKQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycworKwkg IF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xl LWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29u dlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsg JGVjaG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwkg IHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWluJyA7OworKwllY2MqLGlhNjQqIHwgaWNj KixpYTY0KikJCSMgSW50ZWwgQyBjb21waWxlciBvbiBpYTY0CisrCSAgdG1wX2FkZGZsYWc9JyAt aV9keW5hbWljJyA7OworKwllZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVsIEZvcnRy YW4gY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYyAtbm9mb3Jf bWFpbicgOzsKKysJaWZjKiB8IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIKKysJ ICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7OworKwllc2FjCisrCWNhc2UgYCRDQyAtViAy PiYxIHwgc2VkIDVxYCBpbgorKwkqU3VuXCBDKikJCQkjIFN1biBDIDUuOQorKwkgIF9MVF9BQ19U QUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVg bmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAt eiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwi OyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hp dmUnCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0 cmFuIDguMworKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKKysJKikKKysJICB0bXBfc2hhcmVk ZmxhZz0nLXNoYXJlZCcgOzsKKysJZXNhYworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgJyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwor KwlpZiB0ZXN0ICRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmcgPSB5ZXM7IHRoZW4KKysJICBfTFRf QUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJGVjaG8gInsgZ2xvYmFsOiIgPiAk b3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2Vk IC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrICAk ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAg JENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3Jp cHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKysJZmkKKysgICAg ICBlbHNlCisrCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICBmaQorKyAg ICAgIDs7CisrCisrICAgIG5ldGJzZCopCisrICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1F IC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncyAtbyAkbGliJworKwl3bGFyYz0KKysgICAgICBlbHNlCisrCV9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlfTFRfQUNfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZmkKKysgICAgICA7Owor KworKyAgICBzb2xhcmlzKikKKysgICAgICBpZiAkTEQgLXYgMj4mMSB8IGdyZXAgJ0JGRCAyXC44 JyA+IC9kZXYvbnVsbDsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr CWNhdCA8PEVPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IFRoZSByZWxlYXNlcyAyLjguKiBvZiB0 aGUgR05VIGxpbmtlciBjYW5ub3QgcmVsaWFibHkKKysqKiogY3JlYXRlIHNoYXJlZCBsaWJyYXJp ZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisrKioqIGlzIGRpc2Fi bGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdO VQorKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRp b24gaXMgdG8gbW9kaWZ5CisrKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9u IHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKKysqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFy dC4KKysKKytFT0YKKysgICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9y dGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJX0xUX0FDX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9s cy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJX0xUX0FD X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAg c3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKKysg ICAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KKysgICAgICAgICpcIFtbMDFdXS4qIHwgKlwgMi5b WzAtOV1dLiogfCAqXCAyLjFbWzAtNV1dLiopCisrCV9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAk MSk9bm8KKysJY2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IFJlbGVhc2VzIG9m IHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QKKysqKiogcmVsaWFi bHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxp YnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVy Z2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45MS4w LjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKKysqKiogeW91ciBQQVRI IG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwor KyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK19MVF9FT0YKKysJOzsKKysJKikKKysJ ICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicg PiAvZGV2L251bGw7IHRoZW4KKysJICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tcnBhdGgs JGxpYmRpcmAnCisrCSAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lLFwke1ND T0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWInCisrCSAgICBfTFRf QUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSxcJHtTQ09BQlNQQVRIOiske2lu c3RhbGxfbGliZGlyfS99JHNvbmFtZSwtcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJv bHMgLW8gJGxpYicKKysJICBlbHNlCisrCSAgICBfTFRfQUNfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCisrCSAgZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0 KikKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWFzc2VydCBw dXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJworKyAgICAgIHdsYXJjPQorKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9eWVzCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8 IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwlf TFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJ X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAg IGVsc2UKKysJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIGZpCisrICAg ICAgOzsKKysgICAgZXNhYworKworKyAgICBpZiB0ZXN0ICIkX0xUX0FDX1RBR1ZBUihsZF9zaGxp YnMsICQxKSIgPSBubzsgdGhlbgorKyAgICAgIHJ1bnBhdGhfdmFyPQorKyAgICAgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQorKyAgICAgIF9MVF9BQ19UQUdW QVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9CisrICAgICAgX0xUX0FDX1RBR1ZBUih3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorKyAgICBmaQorKyAgZWxzZQorKyAgICAjIFBP UlRNRSBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBsaW5rZXIgKG5vdCBH TlUgbGQpCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgYWl4MyopCisrICAgICAgX0xUX0FD X1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgX0xU X0FDX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15ZXMKKysgICAgICBfTFRfQUNf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJExEIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1ib2xz IC1UNTEyIC1INTEyIC1iTTpTUkV+JEFSICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGlyLyRz b25hbWUnCisrICAgICAgIyBOb3RlOiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVjdG9y aWVzIGluIExJQlBBVEggaWYgdGhlcmUKKysgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBzcGVj aWZpZWQgYnkgLUwuCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9 eWVzCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29t cGlsZXJfc3RhdGljIjsgdGhlbgorKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0 YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKKysJIyBicm9rZW4gY29sbGVjdDIuCisr CV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9dW5zdXBwb3J0ZWQKKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIGFpeFtbNC05XV0qKQorKyAgICAgIGlmIHRlc3QgIiRob3N0 X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1l IGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKKysJIyBoYXZlIHRvIGRvIGFueXRoaW5n IHNwZWNpYWwuCisrCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysJZXhwX3N5bV9mbGFnPSct QmV4cG9ydCcKKysJbm9fZW50cnlfZmxhZz0iIgorKyAgICAgIGVsc2UKKysJIyBJZiB3ZSdyZSB1 c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCisrCSMgLUMg bWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBH TlUgbm0KKysJaWYgJE5NIC1WIDI+JjEgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisr CSAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJv YmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcWyRdMiA9PSAiVCIpIHx8IChcWyRd MiA9PSAiRCIpIHx8IChcWyRdMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXFskXTMsMSwxKSAhPSAi LiIpKSB7IHByaW50IFxbJF0zIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwor KwllbHNlCisrCSAgX0xUX0FDX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAt QkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXFskXTIgPT0gIlQi KSB8fCAoXFskXTIgPT0gIkQiKSB8fCAoXFskXTIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFxbJF0z LDEsMSkgIT0gIi4iKSkgeyBwcmludCBcWyRdMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRf c3ltYm9scycKKysJZmkKKysJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKworKwkjIFRlc3Qg aWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3JtYWwKKysJIyBB SVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCisr CSMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCisrCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5b WzIzXV18YWl4NC5bWzIzXV0uKnxhaXhbWzUtOV1dKikKKysJICBmb3IgbGRfZmxhZyBpbiAkTERG TEFHUzsgZG8KKysgIAkgIGlmICh0ZXN0ICRsZF9mbGFnID0gIi1icnRsIiB8fCB0ZXN0ICRsZF9m bGFnID0gIi1XbCwtYnJ0bCIpOyB0aGVuCisrICAJICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9 eWVzCisrICAJICAgIGJyZWFrCisrICAJICBmaQorKwkgIGRvbmUKKysJICA7OworKwllc2FjCisr CisrCWV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCisrCW5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScK KysgICAgICBmaQorKworKyAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQg b2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KKysgICAgICAjIGhhdmUgcHJvYmxlbXMgY3Jl YXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKKysgICAg ICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5p bWFsLXRvYyB0bworKyAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhl IGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90CisrICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9i bGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCisrCisrICAgICAgX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yLCAkMSk9JzonCisrICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9 eWVzCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJY2FzZSAkaG9zdF9v cyBpbiBhaXg0LltbMDEyXV18YWl4NC5bWzAxMl1dLiopCisrCSMgV2Ugb25seSB3YW50IHRvIGRv IHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjaworKwkjIGJlbG93IGZvciBicm9r ZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKKysJICBjb2xsZWN0Mm5hbWU9YCR7 Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCisrCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3Qy bmFtZSIgJiYgXAorKyAgCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3JlcCByZXNvbHZl X2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0aGVuCisrICAJICAjIFdlIGhhdmUgcmV3b3JrZWQg Y29sbGVjdDIKKysgIAkgIDoKKysJICBlbHNlCisrICAJICAjIFdlIGhhdmUgb2xkIGNvbGxlY3Qy CisrICAJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCisr ICAJICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVu aW5zdGFsbGVkCisrICAJICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNl dHRpbmcgaGFyZGNvZGVfbWludXNfTAorKyAgCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVs aW5raW5nCisrICAJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysg IAkgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJk aXInCisrICAJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0K KysJICBmaQorKwkgIDs7CisrCWVzYWMKKysJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCisrCWlmIHRl c3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgIHNoYXJlZF9mbGFn PSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJworKwlmaQorKyAgICAgIGVsc2UKKysJIyBub3QgdXNp bmcgZ2NjCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAJIyBWaXN1YWxB Z2UgQysrLCBWZXJzaW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UK KysgIAkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0Ogor KwkgIHNoYXJlZF9mbGFnPSctRycKKysJZWxzZQorKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRp bWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCisrCSAg ZWxzZQorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKKysJICBmaQorKwlmaQorKyAg ICAgIGZpCisrCisrICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9y dCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQg aXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvIGV4cG9ydC4KKysgICAg ICBfTFRfQUNfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcworKyAgICAgIGlm IHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkjIFdhcm5pbmcg LSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwK KysJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJy b2tlbiBsaWJyYXJ5LgorKwlfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9 Jy1iZXJvaycKKysgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRo ZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCisrICAgICAgIF9MVF9BQ19T WVNfTElCUEFUSF9BSVgKKysgICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCV9M VF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDIicgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicg JGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4 IjsgdGhlbiBlY2hvICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAg JyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAg ICAgICBlbHNlCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRpcjov dXNyL2xpYjovbGliJworKwkgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQx KT0iLXogbm9kZWZzIgorKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMg JGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1i b2xzIgorKwllbHNlCisrCSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhl IHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KKysJIF9MVF9BQ19TWVNfTElC UEFUSF9BSVgKKysJIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgorKwkgICMgV2FybmluZyAt IHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCisrCSAgIyAt YmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBs aWJyYXJ5LgorKwkgIF9MVF9BQ19UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9 LWJlcm5vdG9rJworKwkgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0n ICR7d2x9LWJlcm9rJworKwkgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8g c2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworKwkgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZlbmllbmNlJworKwkgIF9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKKysJICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cg QUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgorKwkgIF9MVF9B Q19UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1v ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRv dXRwdXRfb2JqZGlyLyRzb25hbWUnCisrCWZpCisrICAgICAgZmkKKysgICAgICA7OworKworKyAg ICBhbWlnYW9zKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckcm0g JG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBOQU1FICRsaWJu YW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTElC UkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVm aW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRl Y2hvICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxp YnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAk b3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgIyBzZWUgY29tbWVudCBh Ym91dCBkaWZmZXJlbnQgc2VtYW50aWNzIG9uIHRoZSBHTlUgbGQgc2VjdGlvbgorKyAgICAgIF9M VF9BQ19UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICBic2RpW1s0 NV1dKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEp PS1yZHluYW1pYworKyAgICAgIDs7CisrCisrICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikK KysgICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdl IGFyZSB1c2luZworKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCisrICAgICAgIyBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBp cworKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisrICAgICAgX0xUX0FDX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyAnCisrICAgICAgX0xUX0FDX1RBR1ZB UihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgIyBUZWxsIGx0 bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KKysgICAgICBsaWJleHQ9bGli CisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMu CisrICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICAgICAgIyBGSVhNRTogU2V0dGluZyBsaW5r bmFtZXMgaGVyZSBpcyBhIGJhZCBoYWNrLgorKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgZWNobyAiJGRl cGxpYnMiIHwgJFNFRCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9 JworKyAgICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZp bGUgaWYgd2UgYnVpbGQgYSBETEwuCisrICAgICAgX0xUX0FDX1RBR1ZBUihvbGRfYXJjaGl2ZV9G cm9tX25ld19jbWRzLCAkMSk9J3RydWUnCisrICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUg dXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KKysgICAgICBfTFRfQUNfVEFHVkFSKG9sZF9h cmNoaXZlX2NtZHMsICQxKT0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJwor KyAgICAgIF9MVF9BQ19UQUdWQVIoZml4X3NyY2ZpbGVfcGF0aCwgJDEpPSdgY3lncGF0aCAtdyAi JHNyY2ZpbGUiYCcKKysgICAgICBfTFRfQUNfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0 aWNfcnVudGltZXMsICQxKT15ZXMKKysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhhcHNv ZHkqKQorKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICAgIHJoYXBzb2R5KiB8IGRhcndp bjEuW1swMTJdXSkKKysgICAgICAgICBfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFn LCAkMSk9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJworKyAgICAgICAgIDs7CisrICAg ICAgICopICMgRGFyd2luIDEuMyBvbgorKyAgICAgICAgIGlmIHRlc3QgLXogJHtNQUNPU1hfREVQ TE9ZTUVOVF9UQVJHRVR9IDsgdGhlbgorKyAgICAgICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQg JHt3bH1zdXBwcmVzcycKKysgICAgICAgICBlbHNlCisrICAgICAgICAgICBjYXNlICR7TUFDT1NY X0RFUExPWU1FTlRfVEFSR0VUfSBpbgorKyAgICAgICAgICAgICAxMC5bWzAxMl1dKQorKyAgICAg ICAgICAgICAgIF9MVF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0t ZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnCisrICAgICAgICAg ICAgICAgOzsKKysgICAgICAgICAgICAgMTAuKikKKysgICAgICAgICAgICAgICBfTFRfQUNfVEFH VkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFt aWNfbG9va3VwJworKyAgICAgICAgICAgICAgIDs7CisrICAgICAgICAgICBlc2FjCisrICAgICAg ICAgZmkKKysgICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICBfTFRfQUNfVEFHVkFSKGFy Y2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2Rl X2RpcmVjdCwgJDEpPW5vCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMs ICQxKT15ZXMKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQx KT11bnN1cHBvcnRlZAorKyAgICAgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWMsICQxKT0nJworKyAgICAgIF9MVF9BQ19UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXll cworKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyA7IHRoZW4KKysgICAgCW91dHB1dF92ZXJib3Nl X2xpbmtfY21kPSdlY2hvJworKyAgICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGli b2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRz b25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKKysg ICAgICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0iXCRDQyBcJGFsbG93X3VuZGVm aW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVy X2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1 dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFs bG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxl cl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRf ZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysg ICAgICAgIF9MVF9BQ19UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAtZSAncyxe LF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3lt Ym9scy5leHBzeW1+XCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUg XCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1z fSR7X2x0X2RzeW11dGlsfSIKKysgICAgZWxzZQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu CisrICAgICAgICB4bGMqKQorKyAgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hv JworKyAgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtcW1rc2hy b2JqICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1pbnN0YWxsX25hbWUgJHt3bH1gZWNobyAkcnBhdGgvJHNvbmFtZWAg JHhsY3ZlcnN0cmluZycKKysgICAgICAgICBfTFRfQUNfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9 JyRDQyAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBs aWJzJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgICAgICAjIERvbid0IGZpeCB0aGlzIGJ5IHVzaW5n IHRoZSBsZCAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGZsYWcsIGl0IGRvZXNuJ3QgZXhpc3QgaW4g b2xkZXIgZGFyd2luIGxkcworKyAgICAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5cKC4u KlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5 bWJvbHMuZXhwc3ltfiRDQyAtcW1rc2hyb2JqICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1pbnN0YWxsX25hbWUgJHt3 bH0kcnBhdGgvJHNvbmFtZSAkeGxjdmVyc3RyaW5nfm5tZWRpdCAtcyAkb3V0cHV0X29iamRpci8k e2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKKysgICAgICAgICAgX0xUX0FDX1RBR1ZB Uihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0nc2VkIC1lICJzLCMuKiwsIiAtZSAicyxeWyAgICBd KiwsIiAtZSAicyxeXCguLipcKSxfJiwiIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpk aXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX4kQ0MgJGFsbG93X3VuZGVmaW5lZF9mbGFnICAt byAkbGliIC1idW5kbGUgJGxpYm9ianMgJGRlcGxpYnMkY29tcGlsZXJfZmxhZ3N+bm1lZGl0IC1z ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JworKyAgICAg ICAgICA7OworKyAgICAgICAqKQorKyAgICAgICAgIF9MVF9BQ19UQUdWQVIobGRfc2hsaWJzLCAk MSk9bm8KKysgICAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgIGZpCisrICAgICAgOzsKKysK KysgICAgZGd1eCopCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExE IC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwor KyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRs aWJkaXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9 bm8KKysgICAgICA7OworKworKyAgICBmcmVlYnNkMSopCisrICAgICAgX0xUX0FDX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgICMgRnJlZUJTRCAyLjIuWzAxMl0g YWxsb3dzIHVzIHRvIGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3RvcgorKyAg ICAjIHN1cHBvcnQuICBGdXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBidXQg YW4gZXhwbGljaXQgYysrcnQwLm8KKysgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGluZywgYW5k IGhlbHBzIHNpZ25pZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCisrICAgICMgZXh0 cmEgc3BhY2UpLgorKyAgICBmcmVlYnNkMi4yKikKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hp dmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzIC91c3IvbGliL2MrK3J0MC5vJworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrICAgICAgX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRj b2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgICMgVW5mb3J0dW5h dGVseSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVy ZS4KKysgICAgZnJlZWJzZDIqKQorKyAgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh Z3MnCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAg ICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysgICAgICBfTFRfQUNf VEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgIDs7CisrCisrICAg ICMgRnJlZUJTRCAzIGFuZCBncmVhdGVyIHVzZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hhcmVkIGxp YnJhcmllcy4KKysgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAgICAgIF9MVF9BQ19UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29k ZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0 aF92YXIsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgIGhwdXg5KikKKysgICAgICBpZiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck cm0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStiICR7d2x9 JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwg bXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgIGVsc2UKKysJX0xUX0FDX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JExEIC1i ICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRk ZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8 fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCisrICAgICAgZmkKKysgICAgICBfTFRf QUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRs aWJkaXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAk MSk9OgorKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrCisr ICAgICAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwK KysgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysg ICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysgICAgICBfTFRf QUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworKyAgICAg IDs7CisrCisrICAgIGhwdXgxMCopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3 aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGlu c3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwor KyAgICAgIGVsc2UKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1iICto ICRzb25hbWUgK2IgJGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBu bzsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n JHt3bH0rYiAke3dsfSRsaWJkaXInCisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciwgJDEpPToKKysKKysJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15 ZXMKKysJX0xUX0FDX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0t RScKKysKKysJIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFU SCwKKysJIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrCV9M VF9BQ19UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworKyAgICAgIGZpCisrICAgICAg OzsKKysKKysgICAgaHB1eDExKikKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdp dGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQor KwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9K2gg JHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwor KwkgIDs7CisrCWlhNjQqKQorKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAg X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0r aCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwllc2FjCisrICAgICAgZWxz ZQorKwljYXNlICRob3N0X2NwdSBpbgorKwlocHBhKjY0KikKKysJICBfTFRfQUNfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJaWE2NCopCisrCSAgX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1l ICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJk aXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJ ZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVu CisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfSti ICR7d2x9JGxpYmRpcicKKysJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y LCAkMSk9OgorKworKwljYXNlICRob3N0X2NwdSBpbgorKwlocHBhKjY0KnxpYTY0KikKKysJICBf TFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0nK2IgJGxpYmRp cicKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCisrCSAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysJICA7OworKwkqKQorKwkg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrCSAgX0xUX0FDX1RBR1ZB UihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysKKysJICAjIGhhcmRj b2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAorKwkgICMgYnV0IGFz IHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorKwkgIF9MVF9BQ19UQUdWQVIo aGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAg ICAgIDs7CisrCisrICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICAgICAgaWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0 X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291 dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJX0xUX0FD X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVj aG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX2xkLCAkMSk9Jy1ycGF0aCAkbGliZGlyJworKyAgICAgIGZpCisrICAgICAg X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRo ICR7d2x9JGxpYmRpcicKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IsICQxKT06CisrICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9 eWVzCisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18g fCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCV9MVF9BQ19UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0CisrICAgICAgZWxzZQorKwlfTFRfQUNfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnICAgICAgIyBFTEYKKysgICAgICBmaQorKyAgICAgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrICAgICAg X0xUX0FDX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICBfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKyAgICAgIDs7CisrCisrICAgIG5l d3NvczYpCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1o ICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAg IF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxp YmRpcicKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQx KT06CisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8K KysgICAgICA7OworKworKyAgICBvcGVuYnNkKikKKysgICAgICBpZiB0ZXN0IC1mIC91c3IvbGli ZXhlYy9sZC5zbzsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXll cworKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwlpZiB0 ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0 ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysJICBf TFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1m aWxlLCRleHBvcnRfc3ltYm9scycKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICBfTFRfQUNfVEFHVkFSKGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworKwllbHNlCisrCSAgY2FzZSAk aG9zdF9vcyBpbgorKwkgICBvcGVuYnNkW1swMV1dLiogfCBvcGVuYnNkMi5bWzAtN11dIHwgb3Bl bmJzZDIuW1swLTddXS4qKQorKwkgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn CisrCSAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1S JGxpYmRpcicKKysJICAgICA7OworKwkgICAqKQorKwkgICAgIF9MVF9BQ19UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysJICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAgICA7OworKwkgIGVz YWMKKysgICAgICAgIGZpCisrICAgICAgZWxzZQorKwlfTFRfQUNfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBvczIqKQorKyAgICAgIF9MVF9B Q19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAg ICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgX0xUX0FD X1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJGVjaG8gIkxJQlJBUlkgJGxpYm5hbWUgSU5J VElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyAiREVTQ1JJUFRJ T04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gREFU QSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gIiBTSU5HTEUgTk9OU0hBUkVE IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gRVhQT1JUUyA+PiAkb3V0cHV0 X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAgIF9MVF9B Q19UQUdWQVIob2xkX2FyY2hpdmVfRnJvbV9uZXdfY21kcywgJDEpPSdlbXhpbXAgLW8gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCisrICAgICAg OzsKKysKKysgICAgb3NmMyopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJ X0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3Vu cmVzb2x2ZWQgJHt3bH1cKicKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIg JiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9y ZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrICAg ICAgZWxzZQorKwlfTFRfQUNfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhw ZWN0X3VucmVzb2x2ZWQgXConCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRM RCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNl dF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9z b19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisr ICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAg ICAgIDs7CisrCisrICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRp b24gb2YgLW1zeW0gZmxhZworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCV9M VF9BQ19UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJl c29sdmVkICR7d2x9XConCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZl cnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9 LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRs aWInCisrCV9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgZWxzZQorKwlfTFRfQUNfVEFHVkFSKGFsbG93 X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCV9MVF9BQ19U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxh Z30gJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11 cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJ X0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2ZvciBpIGluIGBjYXQgJGV4 cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRp IiA+PiAkbGliLmV4cDsgZG9uZTsgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KKysJJExEIC1z aGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaW5wdXQgJGxpYi5leHAgJGxpbmtlcl9mbGFn cyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kcm0gJGxpYi5leHAnCisrCisrCSMgQm90 aCBjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKKysJX0xUX0FDX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJworKyAg ICAgIGZpCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAk MSk9OgorKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIF9MVF9BQ19UQUdWQVIo bm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16IHRleHQnCisrICAgICAgaWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KKysJd2xhcmM9JyR7d2x9JworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3lt Ym9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDog KjsgfTsiID4+ICRsaWIuZXhwfgorKwkgICRDQyAtc2hhcmVkICR7d2x9LU0gJHt3bH0kbGliLmV4 cCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFnc34kcm0gJGxpYi5leHAnCisrICAgICAgZWxzZQorKwl3bGFyYz0nJworKwlfTFRfQUNf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAt aCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRlY2hvICJ7IGdsb2JhbDoiID4g JGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorKyAgCSRMRCAtRyR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRybSAkbGliLmV4cCcKKysgICAgICBmaQorKyAg ICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJk aXInCisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8K KysgICAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFy aXMyLltbMC01XV0uKikgOzsKKysgICAgICAqKQorKwkjIFRoZSBjb21waWxlciBkcml2ZXIgd2ls bCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAorKwkjIGJ1dCB1bmRlcnN0YW5k cyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCisrCSMg YnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0byByZW9yZGVyLgorKyAJIyBTdXBwb3J0ZWQgc2lu Y2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKKysJaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KKysJICBfTFRfQUNfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFj dCcKKysJZWxzZQorKwkgIF9MVF9BQ19UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKKysJZmkKKysJ OzsKKysgICAgICBlc2FjCisrICAgICAgX0xUX0FDX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAk MSk9eWVzCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0KikKKysgICAgICBpZiB0ZXN0ICJ4JGhv c3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVuCisrCSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNl cXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KKysJIyBmaWxlcyB0aGF0 IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rpb25zIHdvcmsuCisrCV9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlfTFRfQUNfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAgX0xUX0FD X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKysgICAg ICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKyAgICAgIF9MVF9BQ19U QUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgc3lzdjQpCisr ICAgICAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysJc25pKQorKwkgIF9MVF9BQ19UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKKysJICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEp PXllcyAjIGlzIHRoaXMgcmVhbGx5IHRydWU/Pz8KKysJOzsKKysJc2llbWVucykKKysJICAjIyBM RCBpcyBsZCBpdCBtYWtlcyBhIFBMQU1MSUIKKysJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NN b2R1bGUuCisrCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBfTFRfQUNfVEFHVkFSKHJl bG9hZF9jbWRzLCAkMSk9JyRDQyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJworKwkgIF9MVF9B Q19UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysgICAgICAgIDs7CisrCW1vdG9yb2xh KQorKwkgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBfTFRfQUNfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1 dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgcnVucGF0 aF92YXI9J0xEX1JVTl9QQVRIJworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgc3lzdjQuMyopCisrICAgICAgX0xU X0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgX0xUX0FDX1RBR1ZBUihleHBvcnRf ZHluYW1pY19mbGFnX3NwZWMsICQxKT0nLUJleHBvcnQnCisrICAgICAgOzsKKysKKysgICAgc3lz djQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwlfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0 aF92YXIsICQxKT1ubworKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKwloYXJkY29kZV9ydW5w YXRoX3Zhcj15ZXMKKysJX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1 VW5peFdhcmU3LltbMDFdXS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuW1swMjRd XSopCisrICAgICAgX0xUX0FDX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16 LHRleHQnCisrICAgICAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5v CisrICAgICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysg ICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KKysJX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJX0xUX0FD X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9s cyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBz Y281djYqKQorKyAgICAgICMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdo dCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90CisrICAgICAgIyBsaW5rIHdpdGggLWxjLCBhbmQg dGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bworKyAgICAgICMg YWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3 b3VsZAorKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBH TlUgbGQgd2UgdXNlIC16IHRleHQKKysgICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBz b21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKKysgICAgICAjIGFzIC16 IGRlZnMuCisrICAgICAgX0xUX0FDX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3ds fS16LHRleHQnCisrICAgICAgX0xUX0FDX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PScke3dsfS16LG5vZGVmcycKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVk X2xjLCAkMSk9bm8KKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs ICQxKT1ubworKyAgICAgIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tUiwkbGliZGlyYCcKKysg ICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicKKysg ICAgICBfTFRfQUNfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysgICAgICBfTFRf QUNfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1CZXhwb3J0Jwor KyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgorKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRfQUNfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhw b3J0X3N5bWJvbHMgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBl bHNlCisrCV9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLFwk e1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRfQUNfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgs XCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAg ICB1dHM0KikKKysgICAgICBfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcg LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAg ICAgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRp cicKKysgICAgICBfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwor KyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgX0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrXSkKKytBQ19NU0dfUkVTVUxUKFsk X0xUX0FDX1RBR1ZBUihsZF9zaGxpYnMsICQxKV0pCisrdGVzdCAiJF9MVF9BQ19UQUdWQVIobGRf c2hsaWJzLCAkMSkiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworKyMKKysjIERvIHdl IG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/CisrIworK2Nhc2UgIngkX0xUX0FDX1RBR1ZB UihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpIiBpbgorK3h8eHllcykKKysgICMgQXNzdW1lIC1s YyBzaG91bGQgYmUgYWRkZWQKKysgIF9MVF9BQ19UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMs ICQxKT15ZXMKKysKKysgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgorKyAgICBjYXNlICRfTFRfQUNfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpIGluCisrICAgIConficqKQorKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwg d2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KKysgICAgICA7OworKyAgICAnJENDICcqKQor KyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGgg LWxjIHNpbmNlIG9uIHNvbWUKKysgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJl Zm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKKysgICAgICAjIHRvIGxkLCBkb24n dCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KKysgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIg LWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbl0pCisrICAgICAgJHJtIGNvbmZ0ZXN0 KgorKyAgICAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3Qu JGFjX2V4dAorKworKyAgICAgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpIDI+Y29uZnRlc3Qu ZXJyOyB0aGVuCisrICAgICAgICBzb25hbWU9Y29uZnRlc3QKKysgICAgICAgIGxpYj1jb25mdGVz dAorKyAgICAgICAgbGlib2Jqcz1jb25mdGVzdC4kYWNfb2JqZXh0CisrICAgICAgICBkZXBsaWJz PQorKyAgICAgICAgd2w9JF9MVF9BQ19UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpCisr CXBpY19mbGFnPSRfTFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkKKysgICAg ICAgIGNvbXBpbGVyX2ZsYWdzPS12CisrICAgICAgICBsaW5rZXJfZmxhZ3M9LXYKKysgICAgICAg IHZlcnN0cmluZz0KKysgICAgICAgIG91dHB1dF9vYmpkaXI9LgorKyAgICAgICAgbGlibmFtZT1j b25mdGVzdAorKyAgICAgICAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0kX0xUX0FDX1RB R1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpCisrICAgICAgICBfTFRfQUNfVEFHVkFSKGFs bG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrICAgICAgICBpZiBBQ19UUllfRVZBTChfTFRfQUNf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIDJcPlwmMSBcfCBncmVwIFwiIC1sYyBcIiBcPi9kZXYv bnVsbCAyXD5cJjEpCisrICAgICAgICB0aGVuCisrCSAgX0xUX0FDX1RBR1ZBUihhcmNoaXZlX2Nt ZHNfbmVlZF9sYywgJDEpPW5vCisrICAgICAgICBlbHNlCisrCSAgX0xUX0FDX1RBR1ZBUihhcmNo aXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworKyAgICAgICAgZmkKKysgICAgICAgIF9MVF9BQ19U QUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRf ZmxhZworKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAg IGZpCisrICAgICAgJHJtIGNvbmZ0ZXN0KgorKyAgICAgIEFDX01TR19SRVNVTFQoWyRfTFRfQUNf VEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSldKQorKyAgICAgIDs7CisrICAgIGVzYWMK KysgIGZpCisrICA7OworK2VzYWMKKytdKSMgQUNfTElCVE9PTF9QUk9HX0xEX1NITElCUworKwor KworKyMgX0xUX0FDX0ZJTEVfTFRETExfQworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQmUg Y2FyZWZ1bCB0aGF0IHRoZSBzdGFydCBtYXJrZXIgYWx3YXlzIGZvbGxvd3MgYSBuZXdsaW5lLgor K0FDX0RFRlVOKFtfTFRfQUNfRklMRV9MVERMTF9DXSwgWworKyMgLyogbHRkbGwuYyBzdGFydHMg aGVyZSAqLworKyMgI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCisrIyAjaW5jbHVkZSA8d2lu ZG93cy5oPgorKyMgI3VuZGVmIFdJTjMyX0xFQU5fQU5EX01FQU4KKysjICNpbmNsdWRlIDxzdGRp by5oPgorKyMKKysjICNpZm5kZWYgX19DWUdXSU5fXworKyMgIyAgaWZkZWYgX19DWUdXSU4zMl9f CisrIyAjICAgIGRlZmluZSBfX0NZR1dJTl9fIF9fQ1lHV0lOMzJfXworKyMgIyAgZW5kaWYKKysj ICNlbmRpZgorKyMKKysjICNpZmRlZiBfX2NwbHVzcGx1cworKyMgZXh0ZXJuICJDIiB7CisrIyAj ZW5kaWYKKysjIEJPT0wgQVBJRU5UUlkgRGxsTWFpbiAoSElOU1RBTkNFIGhJbnN0LCBEV09SRCBy ZWFzb24sIExQVk9JRCByZXNlcnZlZCk7CisrIyAjaWZkZWYgX19jcGx1c3BsdXMKKysjIH0KKysj ICNlbmRpZgorKyMKKysjICNpZmRlZiBfX0NZR1dJTl9fCisrIyAjaW5jbHVkZSA8Y3lnd2luL2N5 Z3dpbl9kbGwuaD4KKysjIERFQ0xBUkVfQ1lHV0lOX0RMTCggRGxsTWFpbiApOworKyMgI2VuZGlm CisrIyBISU5TVEFOQ0UgX19oRGxsSW5zdGFuY2VfYmFzZTsKKysjCisrIyBCT09MIEFQSUVOVFJZ CisrIyBEbGxNYWluIChISU5TVEFOQ0UgaEluc3QsIERXT1JEIHJlYXNvbiwgTFBWT0lEIHJlc2Vy dmVkKQorKyMgeworKyMgICBfX2hEbGxJbnN0YW5jZV9iYXNlID0gaEluc3Q7CisrIyAgIHJldHVy biBUUlVFOworKyMgfQorKyMgLyogbHRkbGwuYyBlbmRzIGhlcmUgKi8KKytdKSMgX0xUX0FDX0ZJ TEVfTFRETExfQworKworKworKyMgX0xUX0FDX1RBR1ZBUihWQVJOQU1FLCBbVEFHTkFNRV0pCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbX0xUX0FDX1RB R1ZBUl0sIFtpZmVsc2UoWyQyXSwgW10sIFskMV0sIFskMV8kMl0pXSkKKysKKysKKysjIG9sZCBu YW1lcworK0FDX0RFRlVOKFtBTV9QUk9HX0xJQlRPT0xdLCAgIFtBQ19QUk9HX0xJQlRPT0xdKQor K0FDX0RFRlVOKFtBTV9FTkFCTEVfU0hBUkVEXSwgIFtBQ19FTkFCTEVfU0hBUkVEKCRAKV0pCisr QUNfREVGVU4oW0FNX0VOQUJMRV9TVEFUSUNdLCAgW0FDX0VOQUJMRV9TVEFUSUMoJEApXSkKKytB Q19ERUZVTihbQU1fRElTQUJMRV9TSEFSRURdLCBbQUNfRElTQUJMRV9TSEFSRUQoJEApXSkKKytB Q19ERUZVTihbQU1fRElTQUJMRV9TVEFUSUNdLCBbQUNfRElTQUJMRV9TVEFUSUMoJEApXSkKKytB Q19ERUZVTihbQU1fUFJPR19MRF0sICAgICAgICBbQUNfUFJPR19MRF0pCisrQUNfREVGVU4oW0FN X1BST0dfTk1dLCAgICAgICAgW0FDX1BST0dfTk1dKQorKworKyMgVGhpcyBpcyBqdXN0IHRvIHNp bGVuY2UgYWNsb2NhbCBhYm91dCB0aGUgbWFjcm8gbm90IGJlaW5nIHVzZWQKKytpZmVsc2UoW0FD X0RJU0FCTEVfRkFTVF9JTlNUQUxMXSkKKysKKytBQ19ERUZVTihbTFRfQUNfUFJPR19HQ0pdLAor K1tBQ19DSEVDS19UT09MKEdDSiwgZ2NqLCBubykKKysgIHRlc3QgIngke0dDSkZMQUdTK3NldH0i ID0geHNldCB8fCBHQ0pGTEFHUz0iLWcgLU8yIgorKyAgQUNfU1VCU1QoR0NKRkxBR1MpCisrXSkK KysKKytBQ19ERUZVTihbTFRfQUNfUFJPR19SQ10sCisrW0FDX0NIRUNLX1RPT0woUkMsIHdpbmRy ZXMsIG5vKQorK10pCisrCisrCisrIyBDaGVhcCBiYWNrcG9ydCBvZiBBU19FWEVDVVRBQkxFX1Ag YW5kIHJlcXVpcmVkIG1hY3JvcworKyMgZnJvbSBBdXRvY29uZiAyLjU5OyB3ZSBzaG91bGQgbm90 IHVzZSAkYXNfZXhlY3V0YWJsZV9wIGRpcmVjdGx5LgorKworKyMgX0FTX1RFU1RfUFJFUEFSRQor KyMgLS0tLS0tLS0tLS0tLS0tLQorK200X2lmbmRlZihbX0FTX1RFU1RfUFJFUEFSRV0sCisrW200 X2RlZnVuKFtfQVNfVEVTVF9QUkVQQVJFXSwKKytbaWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4m MTsgdGhlbgorKyAgYXNfZXhlY3V0YWJsZV9wPSd0ZXN0IC14JworK2Vsc2UKKysgIGFzX2V4ZWN1 dGFibGVfcD0ndGVzdCAtZicKKytmaQorK10pXSkjIF9BU19URVNUX1BSRVBBUkUKKysKKysjIEFT X0VYRUNVVEFCTEVfUAorKyMgLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB3aGV0aGVyIGEgZmls ZSBpcyBleGVjdXRhYmxlLgorK200X2lmbmRlZihbQVNfRVhFQ1VUQUJMRV9QXSwKKytbbTRfZGVm dW4oW0FTX0VYRUNVVEFCTEVfUF0sCisrW0FTX1JFUVVJUkUoW19BU19URVNUX1BSRVBBUkVdKWRu bAorKyRhc19leGVjdXRhYmxlX3AgJDFbXWRubAorK10pXSkjIEFTX0VYRUNVVEFCTEVfUAorKwor KyMgTk9URTogVGhpcyBtYWNybyBoYXMgYmVlbiBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbnRv ICAgIworKyMgIEdOVSBBdXRvY29uZiBhcyBBQ19QUk9HX1NFRC4gIFdoZW4gaXQgaXMgYXZhaWxh YmxlIGluICAgIworKyMgIGEgcmVsZWFzZWQgdmVyc2lvbiBvZiBBdXRvY29uZiB3ZSBzaG91bGQg cmVtb3ZlIHRoaXMgICAgIworKyMgIG1hY3JvIGFuZCB1c2UgaXQgaW5zdGVhZC4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIworKyMgTFRfQUNfUFJPR19TRUQKKysjIC0tLS0tLS0tLS0t LS0tCisrIyBDaGVjayBmb3IgYSBmdWxseS1mdW5jdGlvbmFsIHNlZCBwcm9ncmFtLCB0aGF0IHRy dW5jYXRlcworKyMgYXMgZmV3IGNoYXJhY3RlcnMgYXMgcG9zc2libGUuICBQcmVmZXIgR05VIHNl ZCBpZiBmb3VuZC4KKytBQ19ERUZVTihbTFRfQUNfUFJPR19TRURdLAorK1tBQ19NU0dfQ0hFQ0tJ TkcoW2ZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dF0pCisrQUNfQ0FDSEVf VkFMKGx0X2N2X3BhdGhfU0VELAorK1sjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5k IHRlc3QgZm9yIHNlZCBhbmQgZ3NlZC4KKysjIFRoZW4gdXNlIHRoYXQgbGlzdCBvZiBzZWQncyBh cyBvbmVzIHRvIHRlc3QgZm9yIHRydW5jYXRpb24uCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZl X0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBsdF9hY19wcm9n IGluIHNlZCBnc2VkOyBkbworKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgICAgICBpZiBBU19FWEVDVVRBQkxFX1AoWyIkYXNfZGlyLyRs dF9hY19wcm9nJGFjX2V4ZWNfZXh0Il0pOyB0aGVuCisrICAgICAgICBsdF9hY19zZWRfbGlzdD0i JGx0X2FjX3NlZF9saXN0ICRhc19kaXIvJGx0X2FjX3Byb2ckYWNfZXhlY19leHQiCisrICAgICAg ZmkKKysgICAgZG9uZQorKyAgZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrbHRfYWNf bWF4PTAKKytsdF9hY19jb3VudD0wCisrIyBBZGQgL3Vzci94cGc0L2Jpbi9zZWQgYXMgaXQgaXMg dHlwaWNhbGx5IGZvdW5kIG9uIFNvbGFyaXMKKysjIGFsb25nIHdpdGggL2Jpbi9zZWQgdGhhdCB0 cnVuY2F0ZXMgb3V0cHV0LgorK2ZvciBsdF9hY19zZWQgaW4gJGx0X2FjX3NlZF9saXN0IC91c3Iv eHBnNC9iaW4vc2VkOyBkbworKyAgdGVzdCAhIC1mICRsdF9hY19zZWQgJiYgY29udGludWUKKysg IGNhdCAvZGV2L251bGwgPiBjb25mdGVzdC5pbgorKyAgbHRfYWNfY291bnQ9MAorKyAgZWNobyAk RUNIT19OICIwMTIzNDU2Nzg5JEVDSE9fQyIgPmNvbmZ0ZXN0LmluCisrICAjIENoZWNrIGZvciBH TlUgc2VkIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisrICBpZiAiJGx0X2FjX3NlZCIg LS12ZXJzaW9uIDI+JjEgPCAvZGV2L251bGwgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVu CisrICAgIGx0X2N2X3BhdGhfU0VEPSRsdF9hY19zZWQKKysgICAgYnJlYWsKKysgIGZpCisrICB3 aGlsZSB0cnVlOyBkbworKyAgICBjYXQgY29uZnRlc3QuaW4gY29uZnRlc3QuaW4gPmNvbmZ0ZXN0 LnRtcAorKyAgICBtdiBjb25mdGVzdC50bXAgY29uZnRlc3QuaW4KKysgICAgY3AgY29uZnRlc3Qu aW4gY29uZnRlc3QubmwKKysgICAgZWNobyA+PmNvbmZ0ZXN0Lm5sCisrICAgICRsdF9hY19zZWQg LWUgJ3MvYSQvLycgPCBjb25mdGVzdC5ubCA+Y29uZnRlc3Qub3V0IHx8IGJyZWFrCisrICAgIGNt cCAtcyBjb25mdGVzdC5vdXQgY29uZnRlc3QubmwgfHwgYnJlYWsKKysgICAgIyAxMDAwMCBjaGFy cyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAgIHRlc3QgJGx0X2FjX2NvdW50 IC1ndCAxMCAmJiBicmVhaworKyAgICBsdF9hY19jb3VudD1gZXhwciAkbHRfYWNfY291bnQgKyAx YAorKyAgICBpZiB0ZXN0ICRsdF9hY19jb3VudCAtZ3QgJGx0X2FjX21heDsgdGhlbgorKyAgICAg IGx0X2FjX21heD0kbHRfYWNfY291bnQKKysgICAgICBsdF9jdl9wYXRoX1NFRD0kbHRfYWNfc2Vk CisrICAgIGZpCisrICBkb25lCisrZG9uZQorK10pCisrU0VEPSRsdF9jdl9wYXRoX1NFRAorK0FD X1NVQlNUKFtTRURdKQorK0FDX01TR19SRVNVTFQoWyRTRURdKQorK10pCisrCisrIyBDb3B5cmln aHQgKEMpIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcgIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgQU1fQVVUT01BS0Vf VkVSU0lPTihWRVJTSU9OKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQXV0 b21ha2UgWC5ZIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGVuc3VyZSBhY2xvY2FsLm00IGhhcyBiZWVu CisrIyBnZW5lcmF0ZWQgZnJvbSB0aGUgbTQgZmlsZXMgYWNjb21wYW55aW5nIEF1dG9tYWtlIFgu WS4KKysjIChUaGlzIHByaXZhdGUgbWFjcm8gc2hvdWxkIG5vdCBiZSBjYWxsZWQgb3V0c2lkZSB0 aGlzIGZpbGUuKQorK0FDX0RFRlVOKFtBTV9BVVRPTUFLRV9WRVJTSU9OXSwKKytbYW1fX2FwaV92 ZXJzaW9uPScxLjEwJworK2RubCBTb21lIHVzZXJzIGZpbmQgQU1fQVVUT01BS0VfVkVSU0lPTiBh bmQgbWlzdGFrZSBpdCBmb3IgYSB3YXkgdG8KKytkbmwgcmVxdWlyZSBzb21lIG1pbmltdW0gdmVy c2lvbi4gIFBvaW50IHRoZW0gdG8gdGhlIHJpZ2h0IG1hY3JvLgorK200X2lmKFskMV0sIFsxLjEw LjFdLCBbXSwKKysgICAgICBbQUNfRkFUQUwoW0RvIG5vdCBjYWxsICQwLCB1c2UgQU1fSU5JVF9B VVRPTUFLRShbJDFdKS5dKV0pZG5sCisrXSkKKysKKysjIF9BTV9BVVRPQ09ORl9WRVJTSU9OKFZF UlNJT04pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgYWNsb2NhbCB0cmFj ZXMgdGhpcyBtYWNybyB0byBmaW5kIHRoZSBBdXRvY29uZiB2ZXJzaW9uLgorKyMgVGhpcyBpcyBh IHByaXZhdGUgbWFjcm8gdG9vLiAgVXNpbmcgbTRfZGVmaW5lIHNpbXBsaWZpZXMKKysjIHRoZSBs b2dpYyBpbiBhY2xvY2FsLCB3aGljaCBjYW4gc2ltcGx5IGlnbm9yZSB0aGlzIGRlZmluaXRpb24u CisrbTRfZGVmaW5lKFtfQU1fQVVUT0NPTkZfVkVSU0lPTl0sIFtdKQorKworKyMgQU1fU0VUX0NV UlJFTlRfQVVUT01BS0VfVkVSU0lPTgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyMgQ2FsbCBBTV9BVVRPTUFLRV9WRVJTSU9OIGFuZCBBTV9BVVRPTUFLRV9WRVJTSU9OIHNv IHRoZXkgY2FuIGJlIHRyYWNlZC4KKysjIFRoaXMgZnVuY3Rpb24gaXMgQUNfUkVRVUlSRWQgYnkg QUNfSU5JVF9BVVRPTUFLRS4KKytBQ19ERUZVTihbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVS U0lPTl0sCisrW0FNX0FVVE9NQUtFX1ZFUlNJT04oWzEuMTAuMV0pZG5sCisrbTRfaWZuZGVmKFtB Q19BVVRPQ09ORl9WRVJTSU9OXSwKKysgIFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05dLCBb QUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlkbmwKKytfQU1fQVVUT0NPTkZfVkVSU0lPTihBQ19BVVRP Q09ORl9WRVJTSU9OKV0pCisrCisrIyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29weXJpZ2h0 IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysj CisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIEZvciBwcm9qZWN0cyB1c2luZyBBQ19DT05G SUdfQVVYX0RJUihbZm9vXSksIEF1dG9jb25mIHNldHMKKysjICRhY19hdXhfZGlyIHRvIGAkc3Jj ZGlyL2ZvbycuICBJbiBvdGhlciBwcm9qZWN0cywgaXQgaXMgc2V0IHRvCisrIyBgJHNyY2Rpcics IGAkc3JjZGlyLy4uJywgb3IgYCRzcmNkaXIvLi4vLi4nLgorKyMKKysjIE9mIGNvdXJzZSwgQXV0 b21ha2UgbXVzdCBob25vciB0aGlzIHZhcmlhYmxlIHdoZW5ldmVyIGl0IGNhbGxzIGEKKysjIHRv b2wgZnJvbSB0aGUgYXV4aWxpYXJ5IGRpcmVjdG9yeS4gIFRoZSBwcm9ibGVtIGlzIHRoYXQgJHNy Y2RpciAoYW5kCisrIyB0aGVyZWZvcmUgJGFjX2F1eF9kaXIgYXMgd2VsbCkgY2FuIGJlIGVpdGhl ciBhYnNvbHV0ZSBvciByZWxhdGl2ZSwKKysjIGRlcGVuZGluZyBvbiBob3cgY29uZmlndXJlIGlz IHJ1bi4gIFRoaXMgaXMgcHJldHR5IGFubm95aW5nLCBzaW5jZQorKyMgaXQgbWFrZXMgJGFjX2F1 eF9kaXIgcXVpdGUgdW51c2FibGUgaW4gc3ViZGlyZWN0b3JpZXM6IGluIHRoZSB0b3AKKysjIHNv dXJjZSBkaXJlY3RvcnksIGFueSBmb3JtIHdpbGwgd29yayBmaW5lLCBidXQgaW4gc3ViZGlyZWN0 b3JpZXMgYQorKyMgcmVsYXRpdmUgcGF0aCBuZWVkcyB0byBiZSBhZGp1c3RlZCBmaXJzdC4KKysj CisrIyAkYWNfYXV4X2Rpci9taXNzaW5nCisrIyAgICBmYWlscyB3aGVuIGNhbGxlZCBmcm9tIGEg c3ViZGlyZWN0b3J5IGlmICRhY19hdXhfZGlyIGlzIHJlbGF0aXZlCisrIyAkdG9wX3NyY2Rpci8k YWNfYXV4X2Rpci9taXNzaW5nCisrIyAgICBmYWlscyBpZiAkYWNfYXV4X2RpciBpcyBhYnNvbHV0 ZSwKKysjICAgIGZhaWxzIHdoZW4gY2FsbGVkIGZyb20gYSBzdWJkaXJlY3RvcnkgaW4gYSBWUEFU SCBidWlsZCB3aXRoCisrIyAgICAgICAgICBhIHJlbGF0aXZlICRhY19hdXhfZGlyCisrIworKyMg VGhlIHJlYXNvbiBvZiB0aGUgbGF0dGVyIGZhaWx1cmUgaXMgdGhhdCAkdG9wX3NyY2RpciBhbmQg JGFjX2F1eF9kaXIKKysjIGFyZSBib3RoIHByZWZpeGVkIGJ5ICRzcmNkaXIuICBJbiBhbiBpbi1z b3VyY2UgYnVpbGQgdGhpcyBpcyB1c3VhbGx5CisrIyBoYXJtbGVzcyBiZWNhdXNlICRzcmNkaXIg aXMgYC4nLCBidXQgdGhpbmdzIHdpbGwgYnJva2Ugd2hlbiB5b3UKKysjIHN0YXJ0IGEgVlBBVEgg YnVpbGQgb3IgdXNlIGFuIGFic29sdXRlICRzcmNkaXIuCisrIworKyMgU28gd2UgY291bGQgdXNl IHNvbWV0aGluZyBzaW1pbGFyIHRvICR0b3Bfc3JjZGlyLyRhY19hdXhfZGlyL21pc3NpbmcsCisr IyBpZmYgd2Ugc3RyaXAgdGhlIGxlYWRpbmcgJHNyY2RpciBmcm9tICRhY19hdXhfZGlyLiAgVGhh dCB3b3VsZCBiZToKKysjICAgYW1fYXV4X2Rpcj0nXCQodG9wX3NyY2RpcikvJ2BleHByICIkYWNf YXV4X2RpciIgOiAiJHNyY2Rpci8vKlwoLipcKSJgCisrIyBhbmQgdGhlbiB3ZSB3b3VsZCBkZWZp bmUgJE1JU1NJTkcgYXMKKysjICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3Np bmciCisrIyBUaGlzIHdpbGwgd29yayBhcyBsb25nIGFzIE1JU1NJTkcgaXMgbm90IGNhbGxlZCBm cm9tIGNvbmZpZ3VyZSwgYmVjYXVzZQorKyMgdW5mb3J0dW5hdGVseSAkKHRvcF9zcmNkaXIpIGhh cyBubyBtZWFuaW5nIGluIGNvbmZpZ3VyZS4KKysjIEhvd2V2ZXIgdGhlcmUgYXJlIG90aGVyIHZh cmlhYmxlcywgbGlrZSBDQywgd2hpY2ggYXJlIG9mdGVuIHVzZWQgaW4KKysjIGNvbmZpZ3VyZSwg YW5kIGNvdWxkIHRoZXJlZm9yZSBub3QgdXNlIHRoaXMgImZpeGVkIiAkYWNfYXV4X2Rpci4KKysj CisrIyBBbm90aGVyIHNvbHV0aW9uLCB1c2VkIGhlcmUsIGlzIHRvIGFsd2F5cyBleHBhbmQgJGFj X2F1eF9kaXIgdG8gYW4KKysjIGFic29sdXRlIFBBVEguICBUaGUgZHJhd2JhY2sgaXMgdGhhdCB1 c2luZyBhYnNvbHV0ZSBwYXRocyBwcmV2ZW50IGEKKysjIGNvbmZpZ3VyZWQgdHJlZSB0byBiZSBt b3ZlZCB3aXRob3V0IHJlY29uZmlndXJhdGlvbi4KKysKKytBQ19ERUZVTihbQU1fQVVYX0RJUl9F WFBBTkRdLAorK1tkbmwgUmVseSBvbiBhdXRvY29uZiB0byBzZXQgdXAgQ0RQQVRIIHByb3Blcmx5 LgorK0FDX1BSRVJFUShbMi41MF0pZG5sCisrIyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4gYWJz b2x1dGUgcGF0aAorK2FtX2F1eF9kaXI9YGNkICRhY19hdXhfZGlyICYmIHB3ZGAKKytdKQorKwor KyMgQU1fQ09ORElUSU9OQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMTk5NywgMjAwMCwgMjAw MSwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNgorKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgOAorKworKyMgQU1f Q09ORElUSU9OQUwoTkFNRSwgU0hFTEwtQ09ORElUSU9OKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRGVmaW5lIGEgY29uZGl0aW9uYWwuCisrQUNfREVGVU4o W0FNX0NPTkRJVElPTkFMXSwKKytbQUNfUFJFUkVRKDIuNTIpZG5sCisrIGlmZWxzZShbJDFdLCBb VFJVRV0sICBbQUNfRkFUQUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlvbjogJDFdKV0sCisrCVskMV0s IFtGQUxTRV0sIFtBQ19GQVRBTChbJDA6IGludmFsaWQgY29uZGl0aW9uOiAkMV0pXSlkbmwKKytB Q19TVUJTVChbJDFfVFJVRV0pZG5sCisrQUNfU1VCU1QoWyQxX0ZBTFNFXSlkbmwKKytfQU1fU1VC U1RfTk9UTUFLRShbJDFfVFJVRV0pZG5sCisrX0FNX1NVQlNUX05PVE1BS0UoWyQxX0ZBTFNFXSlk bmwKKytpZiAkMjsgdGhlbgorKyAgJDFfVFJVRT0KKysgICQxX0ZBTFNFPScjJworK2Vsc2UKKysg ICQxX1RSVUU9JyMnCisrICAkMV9GQUxTRT0KKytmaQorK0FDX0NPTkZJR19DT01NQU5EU19QUkUo CisrW2lmIHRlc3QgLXogIiR7JDFfVFJVRX0iICYmIHRlc3QgLXogIiR7JDFfRkFMU0V9IjsgdGhl bgorKyAgQUNfTVNHX0VSUk9SKFtbY29uZGl0aW9uYWwgIiQxIiB3YXMgbmV2ZXIgZGVmaW5lZC4K KytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9u YWxseS5dXSkKKytmaV0pXSkKKysKKysjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNgorKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgOQorKworKyMg VGhlcmUgYXJlIGEgZmV3IGRpcnR5IGhhY2tzIGJlbG93IHRvIGF2b2lkIGxldHRpbmcgYEFDX1BS T0dfQ0MnIGJlCisrIyB3cml0dGVuIGluIGNsZWFyLCBpbiB3aGljaCBjYXNlIGF1dG9tYWtlLCB3 aGVuIHJlYWRpbmcgYWNsb2NhbC5tNCwKKysjIHdpbGwgdGhpbmsgaXQgc2VlcyBhICp1c2UqLCBh bmQgdGhlcmVmb3JlIHdpbGwgdHJpZ2dlciBhbGwgaXQncworKyMgQyBzdXBwb3J0IG1hY2hpbmVy eS4gIEFsc28gbm90ZSB0aGF0IGl0IG1lYW5zIHRoYXQgYXV0b3NjYW4sIHNlZWluZworKyMgQ0Mg ZXRjLiBpbiB0aGUgTWFrZWZpbGUsIHdpbGwgYXNrIGZvciBhbiBBQ19QUk9HX0NDIHVzZS4uLgor KworKworKyMgX0FNX0RFUEVOREVOQ0lFUyhOQU1FKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyMgU2VlIGhvdyB0aGUgY29tcGlsZXIgaW1wbGVtZW50cyBkZXBlbmRlbmN5IGNoZWNraW5n LgorKyMgTkFNRSBpcyAiQ0MiLCAiQ1hYIiwgIkdDSiIsIG9yICJPQkpDIi4KKysjIFdlIHRyeSBh IGZldyB0ZWNobmlxdWVzIGFuZCB1c2UgdGhhdCB0byBzZXQgYSBzaW5nbGUgY2FjaGUgdmFyaWFi bGUuCisrIworKyMgV2UgZG9uJ3QgQUNfUkVRVUlSRSB0aGUgY29ycmVzcG9uZGluZyBBQ19QUk9H X0NDIHNpbmNlIHRoZSBsYXR0ZXIgd2FzCisrIyBtb2RpZmllZCB0byBpbnZva2UgX0FNX0RFUEVO REVOQ0lFUyhDQyk7IHdlIHdvdWxkIGhhdmUgYSBjaXJjdWxhcgorKyMgZGVwZW5kZW5jeSwgYW5k IGdpdmVuIHRoYXQgdGhlIHVzZXIgaXMgbm90IGV4cGVjdGVkIHRvIHJ1biB0aGlzIG1hY3JvLAor KyMganVzdCByZWx5IG9uIEFDX1BST0dfQ0MuCisrQUNfREVGVU4oW19BTV9ERVBFTkRFTkNJRVNd LAorK1tBQ19SRVFVSVJFKFtBTV9TRVRfREVQRElSXSlkbmwKKytBQ19SRVFVSVJFKFtBTV9PVVRQ VVRfREVQRU5ERU5DWV9DT01NQU5EU10pZG5sCisrQUNfUkVRVUlSRShbQU1fTUFLRV9JTkNMVURF XSlkbmwKKytBQ19SRVFVSVJFKFtBTV9ERVBfVFJBQ0tdKWRubAorKworK2lmZWxzZShbJDFdLCBD QywgICBbZGVwY2M9IiRDQyIgICBhbV9jb21waWxlcl9saXN0PV0sCisrICAgICAgIFskMV0sIENY WCwgIFtkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9XSwKKysgICAgICAgWyQxXSwgT0JK QywgW2RlcGNjPSIkT0JKQyIgYW1fY29tcGlsZXJfbGlzdD0nZ2NjMyBnY2MnXSwKKysgICAgICAg WyQxXSwgVVBDLCAgW2RlcGNjPSIkVVBDIiAgYW1fY29tcGlsZXJfbGlzdD1dLAorKyAgICAgICBb JDFdLCBHQ0osICBbZGVwY2M9IiRHQ0oiICBhbV9jb21waWxlcl9saXN0PSdnY2MzIGdjYyddLAor KyAgICAgICAgICAgICAgICAgICBbZGVwY2M9IiQkMSIgICBhbV9jb21waWxlcl9saXN0PV0pCisr CisrQUNfQ0FDSEVfQ0hFQ0soW2RlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjXSwKKysgICAgICAg ICAgICAgICBbYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGVdLAorK1tpZiB0ZXN0 IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCisrICAjIFdl IG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4g ZW5kIHVwCisrICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQg YW5kIG5ldmVyIHJlbW92ZS4gIEZvcgorKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhh dCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKKysgICMgbWFraW5nIGEgZHVtbXkg ZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKKysg ICMgaW4gRCcuCisrICBta2RpciBjb25mdGVzdC5kaXIKKysgICMgQ29weSBkZXBjb21wIHRvIHN1 YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCisrICAjIHVz aW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgorKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5k aXIKKysgIGNkIGNvbmZ0ZXN0LmRpcgorKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRl cGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCisrICAjIGl0IGhlbHBzIHRvIGRl dGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQorKyAgIyBi b3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVz IGFzIGEKKysgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQg dGhlIGRlcGVuZGVuY2llcyBpbgorKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1 NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0CisrICAjIGRpcmVjdG9yeS4KKysgIG1rZGly IHN1YgorKworKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorKyAg aWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KKysgICAgIGFtX2NvbXBpbGVy X2xpc3Q9YHNlZCAtbiBbJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnXSA8IC4vZGVwY29t cGAKKysgIGZpCisrICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsgZG8KKysgICAg IyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVzLCBiZWNhdXNlIHNvbWUgY29t cGlsZXJzCisrICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlzdHMgb24gY29s dW1uIDgwICh3aXRoIFwpLCBhbmQKKysgICAgIyB3ZSBzaG91bGQgbm90IGNob29zZSBhIGRlcGNv bXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgorKyAgICAjCisrICAgICMgV2UgbmVl ZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUgY29tcGlsZXIg bWF5CisrICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcgd2l0aCBvYnNj dXJlIGNvbW1hbmQgbGluZXMuCisrICAgICMgVGhpcyBoYXBwZW5zIGF0IGxlYXN0IHdpdGggdGhl IEFJWCBDIGNvbXBpbGVyLgorKyAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKKysgICAgZm9yIGkgaW4g MSAyIDMgNCA1IDY7IGRvCisrICAgICAgZWNobyAnI2luY2x1ZGUgImNvbmZ0c3QnJGknLmgiJyA+ PiBzdWIvY29uZnRlc3QuYworKyAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRpLmgnIGNy ZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCisrICAgICAgIyBTb2xhcmlzIDgncyB7L3Vz cix9L2Jpbi9zaC4KKysgICAgICB0b3VjaCBzdWIvY29uZnRzdCRpLmgKKysgICAgZG9uZQorKyAg ICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19x dW90ZX0iID4gY29uZm1mCisrCisrICAgIGNhc2UgJGRlcG1vZGUgaW4KKysgICAgbm9zaWRlZWZm ZWN0KQorKyAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBieSBzaWRl LWVmZmVjdCwgc28gdGhleSdsbAorKyAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRs eSByZXF1ZXN0ZWQKKysgICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5n IiA9IHh5ZXM7IHRoZW4KKysJY29udGludWUKKysgICAgICBlbHNlCisrCWJyZWFrCisrICAgICAg ZmkKKysgICAgICA7OworKyAgICBub25lKSBicmVhayA7OworKyAgICBlc2FjCisrICAgICMgV2Ug Y2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0 IgorKyAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21waWxl ciBkb2VzIG5vdCBwcm9wZXJseQorKyAgICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0 byBkZXRlY3QgdGhpcy4KKysgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCisrICAgICAgIHNvdXJj ZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IFwKKysgICAg ICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwK KysgICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2MgLWMgLW8gc3ViL2NvbmZ0ZXN0LiR7T0JK RVhULW99IHN1Yi9jb25mdGVzdC5jIFwKKysgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3Qu ZXJyICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rl di9udWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3Qu UG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICBncmVwIHN1Yi9jb25mdGVzdC4ke09CSkVY VC1vfSBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICAke01BS0Ut bWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgICAjIGljYyBk b2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5p bmdzCisrICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVw IHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKKysgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2Fz IGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KKysgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2Mg Ny4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgorKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGlu ZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKKysg ICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgorKyAgICAgICMgICBpY2M6 IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCisrICAgICAg aWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8CisrICAgICAgICAgIGdy ZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7 IGVsc2UKKysgICAgICAgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBt b2RlCisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGZpCisrICBkb25lCisrCisrICBj ZCAuLgorKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgorK2Vsc2UKKysgIGFtX2N2XyQxX2RlcGVuZGVu Y2llc19jb21waWxlcl90eXBlPW5vbmUKKytmaQorK10pCisrQUNfU1VCU1QoWyQxREVQTU9ERV0s IFtkZXBtb2RlPSRhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZV0pCisrQU1fQ09O RElUSU9OQUwoW2FtX19mYXN0ZGVwJDFdLCBbCisrICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5 X3RyYWNraW5nIiAhPSB4bm8gXAorKyAgJiYgdGVzdCAiJGFtX2N2XyQxX2RlcGVuZGVuY2llc19j b21waWxlcl90eXBlIiA9IGdjYzNdKQorK10pCisrCisrCisrIyBBTV9TRVRfREVQRElSCisrIyAt LS0tLS0tLS0tLS0tCisrIyBDaG9vc2UgYSBkaXJlY3RvcnkgbmFtZSBmb3IgZGVwZW5kZW5jeSBm aWxlcy4KKysjIFRoaXMgbWFjcm8gaXMgQUNfUkVRVUlSRWQgaW4gX0FNX0RFUEVOREVOQ0lFUwor K0FDX0RFRlVOKFtBTV9TRVRfREVQRElSXSwKKytbQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdf RE9UXSlkbmwKKytBQ19TVUJTVChbREVQRElSXSwgWyIke2FtX19sZWFkaW5nX2RvdH1kZXBzIl0p ZG5sCisrXSkKKysKKysKKysjIEFNX0RFUF9UUkFDSworKyMgLS0tLS0tLS0tLS0tCisrQUNfREVG VU4oW0FNX0RFUF9UUkFDS10sCisrW0FDX0FSR19FTkFCTEUoZGVwZW5kZW5jeS10cmFja2luZywK KytbICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1 aWxkCisrICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93 IGRlcGVuZGVuY3kgZXh0cmFjdG9yc10pCisraWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90 cmFja2luZyIgIT0geG5vOyB0aGVuCisrICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21w IgorKyAgQU1ERVBCQUNLU0xBU0g9J1wnCisrZmkKKytBTV9DT05ESVRJT05BTChbQU1ERVBdLCBb dGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vXSkKKytBQ19TVUJTVChb QU1ERVBCQUNLU0xBU0hdKWRubAorK19BTV9TVUJTVF9OT1RNQUtFKFtBTURFUEJBQ0tTTEFTSF0p ZG5sCisrXSkKKysKKysjIEdlbmVyYXRlIGNvZGUgdG8gc2V0IHVwIGRlcGVuZGVuY3kgdHJhY2tp bmcuICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5 OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUKKysjIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0 byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh dGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyNzZXJpYWwg MworKworKyMgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCisrIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1B TkRTXSwKKytbZm9yIG1mIGluICRDT05GSUdfRklMRVM7IGRvCisrICAjIFN0cmlwIE1GIHNvIHdl IGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlLgorKyAgbWY9YGVjaG8gIiRtZiIgfCBz ZWQgLWUgJ3MvOi4qJC8vJ2AKKysgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtl IGdlbmVyYXRlZCBNYWtlZmlsZSBvciBub3QuCisrICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25seSB0 aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxlLmluJywgYnV0CisrICAjIHNvbWUgcGVvcGxlIHJlbmFt ZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KKysgICMgR3Jl cCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9zdC1wcm9j ZXNzCisrICAjIGVhY2ggTWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBvZiBl YWNoIGZpbGUgdG8gc2F5IHNvLgorKyAgIyBHcmVwJ2luZyB0aGUgd2hvbGUgZmlsZSBpcyBub3Qg Z29vZCBlaXRoZXI6IEFJWCBncmVwIGhhcyBhIGxpbmUKKysgICMgbGltaXQgb2YgMjA0OCwgYnV0 IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFzdCA0MDAwLgorKyAgaWYg c2VkIC1uICdzLF4jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixYLHAnICIkbWYiIHwgZ3JlcCBY ID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICBkaXJwYXJ0PWBBU19ESVJOQU1FKCIkbWYiKWAK KysgIGVsc2UKKysgICAgY29udGludWUKKysgIGZpCisrICAjIEV4dHJhY3QgdGhlIGRlZmluaXRp b24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQorKyAgIyBmcm9tIHRoZSBN YWtlZmlsZSB3aXRob3V0IHJ1bm5pbmcgYG1ha2UnLgorKyAgREVQRElSPWBzZWQgLW4gJ3MvXkRF UERJUiA9IC8vcCcgPCAiJG1mImAKKysgIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCisr ICBhbV9faW5jbHVkZT1gc2VkIC1uICdzL15hbV9faW5jbHVkZSA9IC8vcCcgPCAiJG1mImAKKysg IHRlc3QgLXogImFtX19pbmNsdWRlIiAmJiBjb250aW51ZQorKyAgYW1fX3F1b3RlPWBzZWQgLW4g J3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKKysgICMgV2hlbiB1c2luZyBhbnNpMmtuciwg VSBtYXkgYmUgZW1wdHkgb3IgYW4gdW5kZXJzY29yZTsgZXhwYW5kIGl0CisrICBVPWBzZWQgLW4g J3MvXlUgPSAvL3AnIDwgIiRtZiJgCisrICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZp bGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCisrICAjICQoREVQRElSKSBpbiB0aGVp ciBuYW1lcy4gIFdlIGludm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBpcyB0aGUKKysgICMgc2lt cGxlc3QgYXBwcm9hY2ggdG8gY2hhbmdpbmcgJChERVBESVIpIHRvIGl0cyBhY3R1YWwgdmFsdWUg aW4gdGhlCisrICAjIGV4cGFuc2lvbi4KKysgIGZvciBmaWxlIGluIGBzZWQgLW4gIgorKyAgICBz L14kYW1fX2luY2x1ZGUgJGFtX19xdW90ZVwoLiooREVQRElSKS4qXCkkYW1fX3F1b3RlIickL1wx L3AnIDwiJG1mIiB8IFwKKysgICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicv ZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCisrICAgICMgTWFrZSBzdXJlIHRoZSBkaXJlY3Rv cnkgZXhpc3RzLgorKyAgICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUKKysg ICAgZmRpcj1gQVNfRElSTkFNRShbIiRmaWxlIl0pYAorKyAgICBBU19NS0RJUl9QKFskZGlycGFy dC8kZmRpcl0pCisrICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCisrICAgIGVj aG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgorKyAgZG9uZQorK2RvbmUKKytdKSMgX0FN X09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCisrCisrCisrIyBBTV9PVVRQVVRfREVQRU5ERU5D WV9DT01NQU5EUworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFRoaXMgbWFj cm8gc2hvdWxkIG9ubHkgYmUgaW52b2tlZCBvbmNlIC0tIHVzZSB2aWEgQUNfUkVRVUlSRS4KKysj CisrIyBUaGlzIGNvZGUgaXMgb25seSByZXF1aXJlZCB3aGVuIGF1dG9tYXRpYyBkZXBlbmRlbmN5 IHRyYWNraW5nCisrIyBpcyBlbmFibGVkLiAgRklYTUUuICBUaGlzIGNyZWF0ZXMgZWFjaCBgLlAn IGZpbGUgdGhhdCB3ZSB3aWxsCisrIyBuZWVkIGluIG9yZGVyIHRvIGJvb3RzdHJhcCB0aGUgZGVw ZW5kZW5jeSBoYW5kbGluZyBjb2RlLgorK0FDX0RFRlVOKFtBTV9PVVRQVVRfREVQRU5ERU5DWV9D T01NQU5EU10sCisrW0FDX0NPTkZJR19DT01NQU5EUyhbZGVwZmlsZXNdLAorKyAgICAgW3Rlc3Qg eCIkQU1ERVBfVFJVRSIgIT0geCIiIHx8IF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10s CisrICAgICBbQU1ERVBfVFJVRT0iJEFNREVQX1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhfZGly Il0pCisrXSkKKysKKysjIERvIGFsbCB0aGUgd29yayBmb3IgQXV0b21ha2UuICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5 OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsCisrIyAy MDA1LCAyMDA2LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRo aXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisr IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDEzCisrCisrIyBUaGlzIG1hY3JvIGFjdHVh bGx5IGRvZXMgdG9vIG11Y2guICBTb21lIGNoZWNrcyBhcmUgb25seSBuZWVkZWQgaWYKKysjIHlv dXIgcGFja2FnZSBkb2VzIGNlcnRhaW4gdGhpbmdzLiAgQnV0IHRoaXMgaXNuJ3QgcmVhbGx5IGEg YmlnIGRlYWwuCisrCisrIyBBTV9JTklUX0FVVE9NQUtFKFBBQ0tBR0UsIFZFUlNJT04sIFtOTy1E RUZJTkVdKQorKyMgQU1fSU5JVF9BVVRPTUFLRShbT1BUSU9OU10pCisrIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgVGhlIGNhbGwgd2l0aCBQQUNL QUdFIGFuZCBWRVJTSU9OIGFyZ3VtZW50cyBpcyB0aGUgb2xkIHN0eWxlCisrIyBjYWxsIChwcmUg YXV0b2NvbmYtMi41MCksIHdoaWNoIGlzIGJlaW5nIHBoYXNlZCBvdXQuICBQQUNLQUdFCisrIyBh bmQgVkVSU0lPTiBzaG91bGQgbm93IGJlIHBhc3NlZCB0byBBQ19JTklUIGFuZCByZW1vdmVkIGZy b20KKysjIHRoZSBjYWxsIHRvIEFNX0lOSVRfQVVUT01BS0UuCisrIyBXZSBzdXBwb3J0IGJvdGgg Y2FsbCBzdHlsZXMgZm9yIHRoZSB0cmFuc2l0aW9uLiAgQWZ0ZXIKKysjIHRoZSBuZXh0IEF1dG9t YWtlIHJlbGVhc2UsIEF1dG9jb25mIGNhbiBtYWtlIHRoZSBBQ19JTklUCisrIyBhcmd1bWVudHMg bWFuZGF0b3J5LCBhbmQgdGhlbiB3ZSBjYW4gZGVwZW5kIG9uIGEgbmV3IEF1dG9jb25mCisrIyBy ZWxlYXNlIGFuZCBkcm9wIHRoZSBvbGQgY2FsbCBzdXBwb3J0LgorK0FDX0RFRlVOKFtBTV9JTklU X0FVVE9NQUtFXSwKKytbQUNfUFJFUkVRKFsyLjYwXSlkbmwKKytkbmwgQXV0b2NvbmYgd2FudHMg dG8gZGlzYWxsb3cgQU1fIG5hbWVzLiAgV2UgZXhwbGljaXRseSBhbGxvdworK2RubCB0aGUgb25l cyB3ZSBjYXJlIGFib3V0LgorK200X3BhdHRlcm5fYWxsb3coW15BTV9bQS1aXStGTEFHUyRdKWRu bAorK0FDX1JFUVVJUkUoW0FNX1NFVF9DVVJSRU5UX0FVVE9NQUtFX1ZFUlNJT05dKWRubAorK0FD X1JFUVVJUkUoW0FDX1BST0dfSU5TVEFMTF0pZG5sCisraWYgdGVzdCAiYGNkICRzcmNkaXIgJiYg cHdkYCIgIT0gImBwd2RgIjsgdGhlbgorKyAgIyBVc2UgLUkkKHNyY2Rpcikgb25seSB3aGVuICQo c3JjZGlyKSAhPSAuLCBzbyB0aGF0IG1ha2UncyBvdXRwdXQKKysgICMgaXMgbm90IHBvbGx1dGVk IHdpdGggcmVwZWF0ZWQgIi1JLiIKKysgIEFDX1NVQlNUKFthbV9faXNyY10sIFsnIC1JJChzcmNk aXIpJ10pX0FNX1NVQlNUX05PVE1BS0UoW2FtX19pc3JjXSlkbmwKKysgICMgdGVzdCB0byBzZWUg aWYgc3JjZGlyIGFscmVhZHkgY29uZmlndXJlZAorKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2NvbmZp Zy5zdGF0dXM7IHRoZW4KKysgICAgQUNfTVNHX0VSUk9SKFtzb3VyY2UgZGlyZWN0b3J5IGFscmVh ZHkgY29uZmlndXJlZDsgcnVuICJtYWtlIGRpc3RjbGVhbiIgdGhlcmUgZmlyc3RdKQorKyAgZmkK KytmaQorKworKyMgdGVzdCB3aGV0aGVyIHdlIGhhdmUgY3lncGF0aAorK2lmIHRlc3QgLXogIiRD WUdQQVRIX1ciOyB0aGVuCisrICBpZiAoY3lncGF0aCAtLXZlcnNpb24pID4vZGV2L251bGwgMj4v ZGV2L251bGw7IHRoZW4KKysgICAgQ1lHUEFUSF9XPSdjeWdwYXRoIC13JworKyAgZWxzZQorKyAg ICBDWUdQQVRIX1c9ZWNobworKyAgZmkKKytmaQorK0FDX1NVQlNUKFtDWUdQQVRIX1ddKQorKwor KyMgRGVmaW5lIHRoZSBpZGVudGl0eSBvZiB0aGUgcGFja2FnZS4KKytkbmwgRGlzdGluZ3Vpc2gg YmV0d2VlbiBvbGQtc3R5bGUgYW5kIG5ldy1zdHlsZSBjYWxscy4KKyttNF9pZnZhbChbJDJdLAor K1ttNF9pZnZhbChbJDNdLCBbX0FNX1NFVF9PUFRJT04oW25vLWRlZmluZV0pXSlkbmwKKysgQUNf U1VCU1QoW1BBQ0tBR0VdLCBbJDFdKWRubAorKyBBQ19TVUJTVChbVkVSU0lPTl0sIFskMl0pXSwK KytbX0FNX1NFVF9PUFRJT05TKFskMV0pZG5sCisrZG5sIERpYWdub3NlIG9sZC1zdHlsZSBBQ19J TklUIHdpdGggbmV3LXN0eWxlIEFNX0FVVE9NQUtFX0lOSVQuCisrbTRfaWYobTRfaWZkZWYoW0FD X1BBQ0tBR0VfTkFNRV0sIDEpbTRfaWZkZWYoW0FDX1BBQ0tBR0VfVkVSU0lPTl0sIDEpLCAxMSws CisrICBbbTRfZmF0YWwoW0FDX0lOSVQgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHBhY2thZ2UgYW5k IHZlcnNpb24gYXJndW1lbnRzXSldKWRubAorKyBBQ19TVUJTVChbUEFDS0FHRV0sIFsnQUNfUEFD S0FHRV9UQVJOQU1FJ10pZG5sCisrIEFDX1NVQlNUKFtWRVJTSU9OXSwgWydBQ19QQUNLQUdFX1ZF UlNJT04nXSldKWRubAorKworK19BTV9JRl9PUFRJT04oW25vLWRlZmluZV0sLAorK1tBQ19ERUZJ TkVfVU5RVU9URUQoUEFDS0FHRSwgIiRQQUNLQUdFIiwgW05hbWUgb2YgcGFja2FnZV0pCisrIEFD X0RFRklORV9VTlFVT1RFRChWRVJTSU9OLCAiJFZFUlNJT04iLCBbVmVyc2lvbiBudW1iZXIgb2Yg cGFja2FnZV0pXSlkbmwKKysKKysjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCisrQUNfUkVR VUlSRShbQU1fU0FOSVRZX0NIRUNLXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19BUkdfUFJPR1JBTV0p ZG5sCisrQU1fTUlTU0lOR19QUk9HKEFDTE9DQUwsIGFjbG9jYWwtJHthbV9fYXBpX3ZlcnNpb259 KQorK0FNX01JU1NJTkdfUFJPRyhBVVRPQ09ORiwgYXV0b2NvbmYpCisrQU1fTUlTU0lOR19QUk9H KEFVVE9NQUtFLCBhdXRvbWFrZS0ke2FtX19hcGlfdmVyc2lvbn0pCisrQU1fTUlTU0lOR19QUk9H KEFVVE9IRUFERVIsIGF1dG9oZWFkZXIpCisrQU1fTUlTU0lOR19QUk9HKE1BS0VJTkZPLCBtYWtl aW5mbykKKytBTV9QUk9HX0lOU1RBTExfU0gKKytBTV9QUk9HX0lOU1RBTExfU1RSSVAKKytBQ19S RVFVSVJFKFtBTV9QUk9HX01LRElSX1BdKWRubAorKyMgV2UgbmVlZCBhd2sgZm9yIHRoZSAiY2hl Y2siIHRhcmdldC4gIFRoZSBzeXN0ZW0gImF3ayIgaXMgYmFkIG9uCisrIyBzb21lIHBsYXRmb3Jt cy4KKytBQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCisrQUNfUkVRVUlSRShbQUNfUFJPR19N QUtFX1NFVF0pZG5sCisrQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKKytfQU1f SUZfT1BUSU9OKFt0YXItdXN0YXJdLCBbX0FNX1BST0dfVEFSKFt1c3Rhcl0pXSwKKysgICAgICAg ICAgICAgIFtfQU1fSUZfT1BUSU9OKFt0YXItcGF4XSwgW19BTV9QUk9HX1RBUihbcGF4XSldLAor KwkgICAgICAJCSAgICAgW19BTV9QUk9HX1RBUihbdjddKV0pXSkKKytfQU1fSUZfT1BUSU9OKFtu by1kZXBlbmRlbmNpZXNdLCwKKytbQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfQ0NdLAorKyAg ICAgICAgICAgICAgICAgIFtfQU1fREVQRU5ERU5DSUVTKENDKV0sCisrICAgICAgICAgICAgICAg ICAgW2RlZmluZShbQUNfUFJPR19DQ10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZu KFtBQ19QUk9HX0NDXSlbX0FNX0RFUEVOREVOQ0lFUyhDQyldKV0pZG5sCisrQUNfUFJPVklERV9J RkVMU0UoW0FDX1BST0dfQ1hYXSwKKysgICAgICAgICAgICAgICAgICBbX0FNX0RFUEVOREVOQ0lF UyhDWFgpXSwKKysgICAgICAgICAgICAgICAgICBbZGVmaW5lKFtBQ19QUk9HX0NYWF0sCisrICAg ICAgICAgICAgICAgICAgICAgICAgICBkZWZuKFtBQ19QUk9HX0NYWF0pW19BTV9ERVBFTkRFTkNJ RVMoQ1hYKV0pXSlkbmwKKytBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19PQkpDXSwKKysgICAg ICAgICAgICAgICAgICBbX0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0sCisrICAgICAgICAgICAgICAg ICAgW2RlZmluZShbQUNfUFJPR19PQkpDXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGRl Zm4oW0FDX1BST0dfT0JKQ10pW19BTV9ERVBFTkRFTkNJRVMoT0JKQyldKV0pZG5sCisrXSkKKytd KQorKworKworKyMgV2hlbiBjb25maWcuc3RhdHVzIGdlbmVyYXRlcyBhIGhlYWRlciwgd2UgbXVz dCB1cGRhdGUgdGhlIHN0YW1wLWggZmlsZS4KKysjIFRoaXMgZmlsZSByZXNpZGVzIGluIHRoZSBz YW1lIGRpcmVjdG9yeSBhcyB0aGUgY29uZmlnIGhlYWRlcgorKyMgdGhhdCBpcyBnZW5lcmF0ZWQu ICBUaGUgc3RhbXAgZmlsZXMgYXJlIG51bWJlcmVkIHRvIGhhdmUgZGlmZmVyZW50IG5hbWVzLgor KworKyMgQXV0b2NvbmYgY2FsbHMgX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PSyAod2hlbiBkZWZp bmVkKSBpbiB0aGUKKysjIGxvb3Agd2hlcmUgY29uZmlnLnN0YXR1cyBjcmVhdGVzIHRoZSBoZWFk ZXJzLCBzbyB3ZSBjYW4gZ2VuZXJhdGUKKysjIG91ciBzdGFtcCBmaWxlcyB0aGVyZS4KKytBQ19E RUZVTihbX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PS10sCisrWyMgQ29tcHV0ZSAkMSdzIGluZGV4 IGluICRjb25maWdfaGVhZGVycy4KKytfYW1fYXJnPSQxCisrX2FtX3N0YW1wX2NvdW50PTEKKytm b3IgX2FtX2hlYWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8KKysgIGNhc2UgJF9hbV9oZWFk ZXIgaW4KKysgICAgJF9hbV9hcmcgfCAkX2FtX2FyZzoqICkKKysgICAgICBicmVhayA7OworKyAg ICAqICkKKysgICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFg IDs7CisrICBlc2FjCisrZG9uZQorK2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gQVNf RElSTkFNRShbIiRfYW1fYXJnIl0pYC9zdGFtcC1oW10kX2FtX3N0YW1wX2NvdW50XSkKKysKKysj IENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBBTV9QUk9HX0lOU1RBTExf U0gKKysjIC0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRGVmaW5lICRpbnN0YWxsX3NoLgorK0FDX0RF RlVOKFtBTV9QUk9HX0lOU1RBTExfU0hdLAorK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFO RF0pZG5sCisraW5zdGFsbF9zaD0ke2luc3RhbGxfc2gtIlwkKFNIRUxMKSAkYW1fYXV4X2Rpci9p bnN0YWxsLXNoIn0KKytBQ19TVUJTVChpbnN0YWxsX3NoKV0pCisrCisrIyBDb3B5cmlnaHQgKEMp IDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMg ZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBn aXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAor KyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2Ug aXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDIKKysKKysjIENoZWNrIHdoZXRoZXIgdGhlIHVu ZGVybHlpbmcgZmlsZS1zeXN0ZW0gc3VwcG9ydHMgZmlsZW5hbWVzCisrIyB3aXRoIGEgbGVhZGlu ZyBkb3QuICBGb3IgaW5zdGFuY2UgTVMtRE9TIGRvZXNuJ3QuCisrQUNfREVGVU4oW0FNX1NFVF9M RUFESU5HX0RPVF0sCisrW3JtIC1yZiAudHN0IDI+L2Rldi9udWxsCisrbWtkaXIgLnRzdCAyPi9k ZXYvbnVsbAorK2lmIHRlc3QgLWQgLnRzdDsgdGhlbgorKyAgYW1fX2xlYWRpbmdfZG90PS4KKytl bHNlCisrICBhbV9fbGVhZGluZ19kb3Q9XworK2ZpCisrcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAor K0FDX1NVQlNUKFthbV9fbGVhZGluZ19kb3RdKV0pCisrCisrIyBDaGVjayB0byBzZWUgaG93ICdt YWtlJyB0cmVhdHMgaW5jbHVkZXMuCSAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysj IENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgMwor KworKyMgQU1fTUFLRV9JTkNMVURFKCkKKysjIC0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB0 byBzZWUgaG93IG1ha2UgdHJlYXRzIGluY2x1ZGVzLgorK0FDX0RFRlVOKFtBTV9NQUtFX0lOQ0xV REVdLAorK1thbV9tYWtlPSR7TUFLRS1tYWtlfQorK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKKyth bV9fZG9pdDoKKysJQGVjaG8gZG9uZQorKy5QSE9OWTogYW1fX2RvaXQKKytFTkQKKysjIElmIHdl IGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3RpdmUsIGp1c3QgY29tbWVudCBvdXQgdGhlIGNv ZGUuCisrQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9t YWtlXSkKKythbV9faW5jbHVkZT0iIyIKKythbV9fcXVvdGU9CisrX2FtX3Jlc3VsdD1ub25lCisr IyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytlY2hvICJpbmNsdWRlIGNvbmZp bmMiID4gY29uZm1mCisrIyBXZSBncmVwIG91dCBgRW50ZXJpbmcgZGlyZWN0b3J5JyBhbmQgYExl YXZpbmcgZGlyZWN0b3J5JworKyMgbWVzc2FnZXMgd2hpY2ggY2FuIG9jY3VyIGlmIGB3JyBlbmRz IHVwIGluIE1BS0VGTEFHUy4KKysjIEluIHBhcnRpY3VsYXIgd2UgZG9uJ3QgbG9vayBhdCBgXm1h a2U6JyBiZWNhdXNlIEdOVSBtYWtlIG1pZ2h0CisrIyBiZSBpbnZva2VkIHVuZGVyIHNvbWUgb3Ro ZXIgbmFtZSAodXN1YWxseSAiZ21ha2UiKSwgaW4gd2hpY2gKKysjIGNhc2UgaXQgcHJpbnRzIGl0 cyBuZXcgbmFtZSBpbnN0ZWFkIG9mIGBtYWtlJy4KKytpZiB0ZXN0ICJgJGFtX21ha2UgLXMgLWYg Y29uZm1mIDI+IC9kZXYvbnVsbCB8IGdyZXAgLXYgJ2luZyBkaXJlY3RvcnknYCIgPSAiZG9uZSI7 IHRoZW4KKysgICBhbV9faW5jbHVkZT1pbmNsdWRlCisrICAgYW1fX3F1b3RlPQorKyAgIF9hbV9y ZXN1bHQ9R05VCisrZmkKKysjIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytpZiB0 ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVuCisrICAgZWNobyAnLmluY2x1ZGUgImNvbmZp bmMiJyA+IGNvbmZtZgorKyAgIGlmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rl di9udWxsYCIgPSAiZG9uZSI7IHRoZW4KKysgICAgICBhbV9faW5jbHVkZT0uaW5jbHVkZQorKyAg ICAgIGFtX19xdW90ZT0iXCIiCisrICAgICAgX2FtX3Jlc3VsdD1CU0QKKysgICBmaQorK2ZpCisr QUNfU1VCU1QoW2FtX19pbmNsdWRlXSkKKytBQ19TVUJTVChbYW1fX3F1b3RlXSkKKytBQ19NU0df UkVTVUxUKFskX2FtX3Jlc3VsdF0pCisrcm0gLWYgY29uZmluYyBjb25mbWYKKytdKQorKworKyMg RmFrZSB0aGUgZXhpc3RlbmNlIG9mIHByb2dyYW1zIHRoYXQgR05VIG1haW50YWluZXJzIHVzZS4g IC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMTk5NywgMTk5OSwgMjAwMCwg MjAwMSwgMjAwMywgMjAwNCwgMjAwNQorKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRp c3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBh cyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgNQorKworKyMgQU1fTUlT U0lOR19QUk9HKE5BTUUsIFBST0dSQU0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKytBQ19ERUZVTihbQU1fTUlTU0lOR19QUk9HXSwKKytbQUNfUkVRVUlSRShbQU1fTUlTU0lO R19IQVNfUlVOXSkKKyskMT0keyQxLSIke2FtX21pc3NpbmdfcnVufSQyIn0KKytBQ19TVUJTVCgk MSldKQorKworKworKyMgQU1fTUlTU0lOR19IQVNfUlVOCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0K KysjIERlZmluZSBNSVNTSU5HIGlmIG5vdCBkZWZpbmVkIHNvIGZhciBhbmQgdGVzdCBpZiBpdCBz dXBwb3J0cyAtLXJ1bi4KKysjIElmIGl0IGRvZXMsIHNldCBhbV9taXNzaW5nX3J1biB0byB1c2Ug aXQsIG90aGVyd2lzZSwgdG8gbm90aGluZy4KKytBQ19ERUZVTihbQU1fTUlTU0lOR19IQVNfUlVO XSwKKytbQUNfUkVRVUlSRShbQU1fQVVYX0RJUl9FWFBBTkRdKWRubAorK0FDX1JFUVVJUkVfQVVY X0ZJTEUoW21pc3NpbmddKWRubAorK3Rlc3QgeCIke01JU1NJTkcrc2V0fSIgPSB4c2V0IHx8IE1J U1NJTkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgorKyMgVXNlIGV2YWwgdG8gZXhw YW5kICRTSEVMTAorK2lmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRydWUiOyB0aGVuCisrICBhbV9t aXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgorK2Vsc2UKKysgIGFtX21pc3NpbmdfcnVuPQor KyAgQUNfTVNHX1dBUk4oW2BtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nXSkK KytmaQorK10pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgor KworKyMgQU1fUFJPR19NS0RJUl9QCisrIyAtLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIGZvciBg bWtkaXIgLXAnLgorK0FDX0RFRlVOKFtBTV9QUk9HX01LRElSX1BdLAorK1tBQ19QUkVSRVEoWzIu NjBdKWRubAorK0FDX1JFUVVJUkUoW0FDX1BST0dfTUtESVJfUF0pZG5sCisrZG5sIEF1dG9tYWtl IDEuOCB0byAxLjkuNiB1c2VkIHRvIGRlZmluZSBta2Rpcl9wLiAgV2Ugbm93IHVzZSBNS0RJUl9Q LAorK2RubCB3aGlsZSBrZWVwaW5nIGEgZGVmaW5pdGlvbiBvZiBta2Rpcl9wIGZvciBiYWNrd2Fy ZCBjb21wYXRpYmlsaXR5LgorK2RubCBATUtESVJfUEAgaXMgbWFnaWM6IEFDX09VVFBVVCBhZGp1 c3RzIGl0cyB2YWx1ZSBmb3IgZWFjaCBNYWtlZmlsZS4KKytkbmwgSG93ZXZlciB3ZSBjYW5ub3Qg ZGVmaW5lIG1rZGlyX3AgYXMgJChNS0RJUl9QKSBmb3IgdGhlIHNha2Ugb2YKKytkbmwgTWFrZWZp bGUuaW5zIHRoYXQgZG8gbm90IGRlZmluZSBNS0RJUl9QLCBzbyB3ZSBkbyBvdXIgb3duCisrZG5s IGFkanVzdG1lbnQgdXNpbmcgdG9wX2J1aWxkZGlyICh3aGljaCBpcyBkZWZpbmVkIG1vcmUgb2Z0 ZW4gdGhhbgorK2RubCBNS0RJUl9QKS4KKytBQ19TVUJTVChbbWtkaXJfcF0sIFsiJE1LRElSX1Ai XSlkbmwKKytjYXNlICRta2Rpcl9wIGluCisrICBbW1xcLyRdXSogfCA/OltbXFwvXV0qKSA7Owor KyAgKi8qKSBta2Rpcl9wPSJcJCh0b3BfYnVpbGRkaXIpLyRta2Rpcl9wIiA7OworK2VzYWMKKytd KQorKworKyMgSGVscGVyIGZ1bmN0aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAgICAg ICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAw MiwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhp cyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs CisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgMworKworKyMgX0FNX01BTkdMRV9PUFRJT04o TkFNRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW19BTV9NQU5HTEVf T1BUSU9OXSwKKytbW19BTV9PUFRJT05fXW00X2JwYXRzdWJzdCgkMSwgW1teYS16QS1aMC05X11d LCBbX10pXSkKKysKKysjIF9BTV9TRVRfT1BUSU9OKE5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysjIFNldCBvcHRpb24gTkFNRS4gIFByZXNlbnRseSB0aGF0IG9ubHkg bWVhbnMgZGVmaW5pbmcgYSBmbGFnIGZvciB0aGlzIG9wdGlvbi4KKytBQ19ERUZVTihbX0FNX1NF VF9PUFRJT05dLAorK1ttNF9kZWZpbmUoX0FNX01BTkdMRV9PUFRJT04oWyQxXSksIDEpXSkKKysK KysjIF9BTV9TRVRfT1BUSU9OUyhPUFRJT05TKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyMgT1BUSU9OUyBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIEF1dG9t YWtlIG9wdGlvbnMuCisrQUNfREVGVU4oW19BTV9TRVRfT1BUSU9OU10sCisrW0FDX0ZPUkVBQ0go W19BTV9PcHRpb25dLCBbJDFdLCBbX0FNX1NFVF9PUFRJT04oX0FNX09wdGlvbildKV0pCisrCisr IyBfQU1fSUZfT1BUSU9OKE9QVElPTiwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFeGVjdXRlIElGLVNFVCBp ZiBPUFRJT04gaXMgc2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4KKytBQ19ERUZVTihbX0FNX0lG X09QVElPTl0sCisrW200X2lmc2V0KF9BTV9NQU5HTEVfT1BUSU9OKFskMV0pLCBbJDJdLCBbJDNd KV0pCisrCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYnVpbGQgZW52aXJvbm1lbnQg aXMgc2FuZS4gICAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAx OTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA1CisrIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQv b3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBs b25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCA0CisrCisrIyBB TV9TQU5JVFlfQ0hFQ0sKKysjIC0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtBTV9TQU5JVFlf Q0hFQ0tdLAorK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMg c2FuZV0pCisrIyBKdXN0IGluIGNhc2UKKytzbGVlcCAxCisrZWNobyB0aW1lc3RhbXAgPiBjb25m dGVzdC5maWxlCisrIyBEbyBgc2V0JyBpbiBhIHN1YnNoZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIg dGhlIGN1cnJlbnQgc2hlbGwncworKyMgYXJndW1lbnRzLiAgTXVzdCB0cnkgLUwgZmlyc3QgaW4g Y2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQorKyMgc3ltbGluazsgc29tZSBzeXN0ZW1zIHBs YXkgd2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9kIHRpbWUgb2Ygc3ltbGlua3MKKysjIChlZyBGcmVl QlNEIHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBzeW1saW5rJ3MgY29udGFpbmluZworKyMg ZGlyZWN0b3J5KS4KKytpZiAoCisrICAgc2V0IFggYGxzIC1MdCAkc3JjZGlyL2NvbmZpZ3VyZSBj b25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKKysgICBpZiB0ZXN0ICIkWypdIiA9ICJYIjsgdGhl bgorKyAgICAgICMgLUwgZGlkbid0IHdvcmsuCisrICAgICAgc2V0IFggYGxzIC10ICRzcmNkaXIv Y29uZmlndXJlIGNvbmZ0ZXN0LmZpbGVgCisrICAgZmkKKysgICBybSAtZiBjb25mdGVzdC5maWxl CisrICAgaWYgdGVzdCAiJFsqXSIgIT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmls ZSIgXAorKyAgICAgICYmIHRlc3QgIiRbKl0iICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNyY2Rpci9j b25maWd1cmUiOyB0aGVuCisrCisrICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2Ug aGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgorKyAgICAgICMgaWYsIGZvciBpbnN0 YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKKysgICAgICAjIGJy b2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5Cisr ICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVyZWQg InNhbmUiLgorKyAgICAgIEFDX01TR19FUlJPUihbbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFr ZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgorK2FsaWFzIGluIHlvdXIgZW52aXJvbm1lbnRd KQorKyAgIGZpCisrCisrICAgdGVzdCAiJFsyXSIgPSBjb25mdGVzdC5maWxlCisrICAgKQorK3Ro ZW4KKysgICAjIE9rLgorKyAgIDoKKytlbHNlCisrICAgQUNfTVNHX0VSUk9SKFtuZXdseSBjcmVh dGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKKytDaGVjayB5b3VyIHN5 c3RlbSBjbG9ja10pCisrZmkKKytBQ19NU0dfUkVTVUxUKHllcyldKQorKworKyMgQ29weXJpZ2h0 IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysj CisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIEFNX1BST0dfSU5TVEFMTF9TVFJJUAorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBPbmUgaXNzdWUgd2l0aCB2ZW5kb3IgYGluc3RhbGwn IChldmVuIEdOVSkgaXMgdGhhdCB5b3UgY2FuJ3QKKysjIHNwZWNpZnkgdGhlIHByb2dyYW0gdXNl ZCB0byBzdHJpcCBiaW5hcmllcy4gIFRoaXMgaXMgZXNwZWNpYWxseQorKyMgYW5ub3lpbmcgaW4g Y3Jvc3MtY29tcGlsaW5nIGVudmlyb25tZW50cywgd2hlcmUgdGhlIGJ1aWxkJ3Mgc3RyaXAKKysj IGlzIHVubGlrZWx5IHRvIGhhbmRsZSB0aGUgaG9zdCdzIGJpbmFyaWVzLgorKyMgRm9ydHVuYXRl bHkgaW5zdGFsbC1zaCB3aWxsIGhvbm9yIGEgU1RSSVBQUk9HIHZhcmlhYmxlLCBzbyB3ZQorKyMg YWx3YXlzIHVzZSBpbnN0YWxsLXNoIGluIGBtYWtlIGluc3RhbGwtc3RyaXAnLCBhbmQgaW5pdGlh bGl6ZQorKyMgU1RSSVBQUk9HIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBTVFJJUCB2YXJpYWJsZSAo c2V0IGJ5IHRoZSB1c2VyKS4KKytBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NUUklQXSwKKytb QUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NIXSlkbmwKKysjIEluc3RhbGxlZCBiaW5hcmll cyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKKysjIHJ1 biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUgdGhl IHJpZ2h0CisrIyB0b29sIHRvIHVzZSBpbiBjcm9zcy1jb21waWxhdGlvbiBlbnZpcm9ubWVudHMs IHRoZXJlZm9yZSBBdXRvbWFrZQorKyMgd2lsbCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9ubWVu dCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlzIHByb2dyYW0uCisrZG5sIERvbid0IHRlc3QgZm9y ICRjcm9zc19jb21waWxpbmcgPSB5ZXMsIGJlY2F1c2UgaXQgbWlnaHQgYmUgYG1heWJlJy4KKytp ZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgorKyAgQUNfQ0hFQ0tfVE9PTChb U1RSSVBdLCBbc3RyaXBdLCA6KQorK2ZpCisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0 YWxsX3NoKSAtYyAtcyIKKytBQ19TVUJTVChbSU5TVEFMTF9TVFJJUF9QUk9HUkFNXSldKQorKwor KyMgQ29weXJpZ2h0IChDKSAyMDA2ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysj CisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIF9BTV9TVUJTVF9OT1RNQUtFKFZBUklBQkxF KQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBQcmV2ZW50IEF1dG9tYWtlIGZy b20gb3V0cHV0dGluZyBWQVJJQUJMRSA9IEBWQVJJQUJMRUAgaW4gTWFrZWZpbGUuaW4uCisrIyBU aGlzIG1hY3JvIGlzIHRyYWNlZCBieSBBdXRvbWFrZS4KKytBQ19ERUZVTihbX0FNX1NVQlNUX05P VE1BS0VdKQorKworKyMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwuICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAw NCwgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxl IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVz IHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBw cmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgMgorKworKyMgX0FNX1BST0dfVEFSKEZPUk1BVCkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbCBp biBmb3JtYXQgRk9STUFULgorKyMgRk9STUFUIHNob3VsZCBiZSBvbmUgb2YgYHY3JywgYHVzdGFy Jywgb3IgYHBheCcuCisrIworKyMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3RhcikgdGhh dCBpcyBhIGNvbW1hbmQKKysjIHdyaXRpbmcgdG8gc3Rkb3V0IGEgRk9STUFULXRhcmJhbGwgY29u dGFpbmluZyB0aGUgZGlyZWN0b3J5CisrIyAkdGFyZGlyLgorKyMgICAgIHRhcmRpcj1kaXJlY3Rv cnkgJiYgJChhbV9fdGFyKSA+IHJlc3VsdC50YXIKKysjCisrIyBTdWJzdGl0dXRlIGEgdmFyaWFi bGUgJChhbV9fdW50YXIpIHRoYXQgZXh0cmFjdCBzdWNoCisrIyBhIHRhcmJhbGwgcmVhZCBmcm9t IHN0ZGluLgorKyMgICAgICQoYW1fX3VudGFyKSA8IHJlc3VsdC50YXIKKytBQ19ERUZVTihbX0FN X1BST0dfVEFSXSwKKytbIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRp YmlsaXR5LgorK0FNX01JU1NJTkdfUFJPRyhbQU1UQVJdLCBbdGFyXSkKKyttNF9pZihbJDFdLCBb djddLAorKyAgICAgW2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1fX3Vu dGFyPScke0FNVEFSfSB4ZiAtJ10sCisrICAgICBbbTRfY2FzZShbJDFdLCBbdXN0YXJdLCwgW3Bh eF0sLAorKyAgICAgICAgICAgICAgW200X2ZhdGFsKFtVbmtub3duIHRhciBmb3JtYXRdKV0pCisr QUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gY3JlYXRlIGEgJDEgdGFyIGFyY2hpdmVdKQorKyMgTG9v cCBvdmVyIGFsbCBrbm93biBtZXRob2RzIHRvIGNyZWF0ZSBhIHRhciBhcmNoaXZlIHVudGlsIG9u ZSB3b3Jrcy4KKytfYW1fdG9vbHM9J2dudXRhciBtNF9pZihbJDFdLCBbdXN0YXJdLCBbcGxhaW50 YXJdKSBwYXggY3BpbyBub25lJworK19hbV90b29scz0ke2FtX2N2X3Byb2dfdGFyXyQxLSRfYW1f dG9vbHN9CisrIyBEbyBub3QgZm9sZCB0aGUgYWJvdmUgdHdvIGxpbmUgaW50byBvbmUsIGJlY2F1 c2UgVHJ1NjQgc2ggYW5kCisrIyBTb2xhcmlzIHNoIHdpbGwgbm90IGdyb2sgc3BhY2VzIGluIHRo ZSByaHMgb2YgYC0nLgorK2ZvciBfYW1fdG9vbCBpbiAkX2FtX3Rvb2xzCisrZG8KKysgIGNhc2Ug JF9hbV90b29sIGluCisrICBnbnV0YXIpCisrICAgIGZvciBfYW1fdGFyIGluIHRhciBnbnV0YXIg Z3RhcjsKKysgICAgZG8KKysgICAgICBBTV9SVU5fTE9HKFskX2FtX3RhciAtLXZlcnNpb25dKSAm JiBicmVhaworKyAgICBkb25lCisrICAgIGFtX190YXI9IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lm KFskMV0sIFtwYXhdLCBbcG9zaXhdLCBbJDFdKSAtY2hmIC0gIiciJCR0YXJkaXIiJworKyAgICBh bV9fdGFyXz0iJF9hbV90YXIgLS1mb3JtYXQ9bTRfaWYoWyQxXSwgW3BheF0sIFtwb3NpeF0sIFsk MV0pIC1jaGYgLSAiJyIkdGFyZGlyIicKKysgICAgYW1fX3VudGFyPSIkX2FtX3RhciAteGYgLSIK KysgICAgOzsKKysgIHBsYWludGFyKQorKyAgICAjIE11c3Qgc2tpcCBHTlUgdGFyOiBpZiBpdCBk b2VzIG5vdCBzdXBwb3J0IC0tZm9ybWF0PSBpdCBkb2Vzbid0IGNyZWF0ZQorKyAgICAjIHVzdGFy IHRhcmJhbGwgZWl0aGVyLgorKyAgICAodGFyIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxICYm IGNvbnRpbnVlCisrICAgIGFtX190YXI9J3RhciBjaGYgLSAiJCR0YXJkaXIiJworKyAgICBhbV9f dGFyXz0ndGFyIGNoZiAtICIkdGFyZGlyIicKKysgICAgYW1fX3VudGFyPSd0YXIgeGYgLScKKysg ICAgOzsKKysgIHBheCkKKysgICAgYW1fX3Rhcj0ncGF4IC1MIC14ICQxIC13ICIkJHRhcmRpciIn CisrICAgIGFtX190YXJfPSdwYXggLUwgLXggJDEgLXcgIiR0YXJkaXIiJworKyAgICBhbV9fdW50 YXI9J3BheCAtcicKKysgICAgOzsKKysgIGNwaW8pCisrICAgIGFtX190YXI9J2ZpbmQgIiQkdGFy ZGlyIiAtcHJpbnQgfCBjcGlvIC1vIC1IICQxIC1MJworKyAgICBhbV9fdGFyXz0nZmluZCAiJHRh cmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKKysgICAgYW1fX3VudGFyPSdjcGlvIC1p IC1IICQxIC1kJworKyAgICA7OworKyAgbm9uZSkKKysgICAgYW1fX3Rhcj1mYWxzZQorKyAgICBh bV9fdGFyXz1mYWxzZQorKyAgICBhbV9fdW50YXI9ZmFsc2UKKysgICAgOzsKKysgIGVzYWMKKysK KysgICMgSWYgdGhlIHZhbHVlIHdhcyBjYWNoZWQsIHN0b3Agbm93LiAgV2UganVzdCB3YW50ZWQg dG8gaGF2ZSBhbV9fdGFyCisrICAjIGFuZCBhbV9fdW50YXIgc2V0LgorKyAgdGVzdCAtbiAiJHth bV9jdl9wcm9nX3Rhcl8kMX0iICYmIGJyZWFrCisrCisrICAjIHRhci91bnRhciBhIGR1bW15IGRp cmVjdG9yeSwgYW5kIHN0b3AgaWYgdGhlIGNvbW1hbmQgd29ya3MKKysgIHJtIC1yZiBjb25mdGVz dC5kaXIKKysgIG1rZGlyIGNvbmZ0ZXN0LmRpcgorKyAgZWNobyBHcmVwTWUgPiBjb25mdGVzdC5k aXIvZmlsZQorKyAgQU1fUlVOX0xPRyhbdGFyZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsICRhbV9f dGFyXyA+Y29uZnRlc3QudGFyXSkKKysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKysgIGlmIHRlc3Qg LXMgY29uZnRlc3QudGFyOyB0aGVuCisrICAgIEFNX1JVTl9MT0coWyRhbV9fdW50YXIgPGNvbmZ0 ZXN0LnRhcl0pCisrICAgIGdyZXAgR3JlcE1lIGNvbmZ0ZXN0LmRpci9maWxlID4vZGV2L251bGwg Mj4mMSAmJiBicmVhaworKyAgZmkKKytkb25lCisrcm0gLXJmIGNvbmZ0ZXN0LmRpcgorKworK0FD X0NBQ0hFX1ZBTChbYW1fY3ZfcHJvZ190YXJfJDFdLCBbYW1fY3ZfcHJvZ190YXJfJDE9JF9hbV90 b29sXSkKKytBQ19NU0dfUkVTVUxUKFskYW1fY3ZfcHJvZ190YXJfJDFdKV0pCisrQUNfU1VCU1Qo W2FtX190YXJdKQorK0FDX1NVQlNUKFthbV9fdW50YXJdKQorK10pICMgX0FNX1BST0dfVEFSCisr CisrbTRfaW5jbHVkZShbY29uZmlnL2F4X2Jvb3N0Lm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcv YXhfbXlzcWwubTRdKQorK200X2luY2x1ZGUoW2NvbmZpZy9heF9vcmFjbGVfb2NpLm00XSkKKytt NF9pbmNsdWRlKFtjb25maWcvYXhfcG9zdGdyZXNxbC5tNF0pCisrbTRfaW5jbHVkZShbY29uZmln L2NwcHVuaXQubTRdKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL0FVVEhPUlMgc29jaS0z LjAuMF90cmVwMzAwL0FVVEhPUlMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9BVVRIT1JTCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL0FV VEhPUlMJMjAwOS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsOSBA QAorKworK0RhdmlkIENvdXJ0bmV5LCBEZXZlbG9wZXIsIGRhY291cnRuZXkgYXQgdXNlcnMuc291 cmNlZm9yZ2UubmV0CisrTWF0ZXVzeiBMb3Nrb3QsIERldmVsb3BlciwgbWxvc2tvdCBhdCB1c2Vy cy5zb3VyY2Vmb3JnZS5uZXQKKytNYWNpZWogU29iY3phaywgQWRtaW4gUHJvamVjdCBNYW5hZ2Vy LCBtc29iY3phayBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKytQYXdlbCBBbGVrc2FuZGVyIEZl ZG9yeW5za2ksIERldmVsb3BlciwgcGZlZG9yIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorK1Jh ZmFsIEJvYnJvd3NraSwgRGV2ZWxvcGVyLCByYm9icm8gYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0 CisrSmVhbi1NYXJjLCBEZXZlbG9wZXIsIHNpZGp0YWwgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0 CisrU3RlcGhlbiBIdXR0b24sIERldmVsb3Blciwgc3RlcGhlbmh1dHRvbiBhdCB1c2Vycy5zb3Vy Y2Vmb3JnZS5uZXQKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9NYWtlZmls ZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9idWlsZC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2 IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw3IEBACisrIyMgYnVpbGQgc3Vi LWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IHVuaXggbXN2 YzgwCisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuaW4gc29j aS0zLjAuMF90cmVwMzAwL2J1aWxkL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2sv YnVpbGQvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysr KyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuaW4JMjAwOS0wNS0wMyAwMDoyMDo0 MC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTM1IEBACisrIyBNYWtlZmlsZS5pbiBnZW5l cmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJl X2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4 LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAw NywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxl LmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdp dmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisr IyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBp cyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwg dG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJU SUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dk YXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBB Q0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2Nk ID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2lu c3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9H UkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3No KSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChw cm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxM ID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklO U1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAK Kytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9IFJFQURNRSAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24KKytzdWJkaXIgPSBidWlsZAorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIp L2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5t NCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1f X2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NB TF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIg PSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9Cisr U09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1 cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBp bmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVj dXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZl IGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFs bC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJz aXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZl IHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNs ZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBt YWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdz CisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04p ICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBB Q0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9D T05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAK KytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFU RV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElC ID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1Rf SU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VY X0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFM U19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VO SVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAor K0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9 IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdT ID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVO SVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJ QlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAor K0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdT ID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAor K0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRUNITyA9IEBFQ0hP QAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNI T19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRjc3ID0gQEY3N0AK KytGRkxBR1MgPSBARkZMQUdTQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisr SU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFM TF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExf U1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTERGTEFHUyA9IEBMREZM QUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBM SUJUT09MQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJ TkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBA TVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElS UyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNR TF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpFWFQg PSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZM QUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVf T0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAK KytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdS RVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9 IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAor K1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBA UEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdA CisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9E SVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNR TF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisr UkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBA U0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVB REVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9 IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0g QFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0g QGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fi c190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAor K2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKKythbV9f aW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdf ZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2Ft X191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWls ZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1 QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JA CisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290 ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9j ZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2 aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29r ID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisr aG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9y ID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGlu Y2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9z aEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNk aXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVk aXIgPSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtk aXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRp ckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJA Cisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAK KytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRf YWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3By ZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9w X3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGly KQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytTVUJESVJTID0gdW5peCBt c3ZjODAKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01h a2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkg IGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkg ICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2ggXAorKwkJJiYgZXhpdCAwOyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBc CisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1n bnUgIGJ1aWxkL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFV VE9NQUtFKSAtLWdudSAgYnVpbGQvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFr ZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwK KysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFU VVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9k ZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2Ns ZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGlyZWN0b3J5 J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMg aW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2Vm aWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVh ZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGlu IGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2ls bCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFr ZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBt YWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsY29tPSdl eGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBp biBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15 ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJn ZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBp biAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkg ICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAor KwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAor KwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rhcmdl dCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVzdCAiJCRk b3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0 YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKworKyQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBp biB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1b IWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBc CisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBkaXN0 Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBc CisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBcCisr CWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8t cmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hvICJN YWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxz ZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisr CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFn cy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0 YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQo VEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9 IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKwor K1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVO REVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9 YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2 L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBc CisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1pbmNs dWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0 aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorKwkgICAg ICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwK KysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAor KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1Mp JCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8 fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1f RVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJ ZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChT T1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap CisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlx dWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChD VEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9 YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3Jj ZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xl YW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MK KysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1g ZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisr CWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxp c3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJp cC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRp cikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9Q KSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0 ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBc CisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxl IHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJ ICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxl IiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIp LyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIg JChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsg XAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAor KwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBj cCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAor KwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2Ug XAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJ Ul9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgICBk aXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICB0b3BfZGlzdGRp cj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIChjZCAkJHN1YmRp ciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3Bf ZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8k JHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3Ro X2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAxOyBcCisr CSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJz aXZlCisrYWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNp dmUKKytpbnN0YWxsZGlycy1hbToKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3Rh bGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1k YXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2 ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAg YHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5W PVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6Cisr CisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQo Q09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisr bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVu ZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRo YXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQo TUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQor K2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJz aXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFu LWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmkt YW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQor KworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0 YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1s OiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8t cmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRm LXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5z dGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVj dXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVh bi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xl YW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysK KytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5N QUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0 YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFt IGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWN0 YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0 Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisr CWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAor KwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVj IFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFs bC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3Rh bGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5z dGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFt IG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1h bSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFsbC1h bQorKworK0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1h a2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxp bWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtIHNv Y2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtCistLS0gc29jaS0z LjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAv ZGxsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDExIEBACisrIyMgYnVpbGQvbXN2YzgwL2RsbCBzdWItZGlyZWN0b3J5CisraW5jbHVk ZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorKworK01BSU5UQUlORVJDTEVBTkZJTEVT ID0gTWFrZWZpbGUuaW4KKysKKytFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBt YWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90 ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rl c3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdy ZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwK KysJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9kbGwuc2xu IFwKKysJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNw cm9qIHNvY2lfZGxsLnZzcHJvcHMKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9t c3ZjODAvZGxsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxs L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtl ZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluCTIwMDktMDUtMDMgMDA6MjA6 NDAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDM4MyBAQAorKyMgTWFrZWZpbGUuaW4gZ2Vu ZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3Vy ZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmls ZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBn aXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAor KyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2Ug aXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFks IHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFS VElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtn ZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQ QUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19j ZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytp bnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJP R1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9z aCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQo cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFM TCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5J TlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRA CisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZp bGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5j b21tb24KKytzdWJkaXIgPSBidWlsZC9tc3ZjODAvZGxsCisrQUNMT0NBTF9NNCA9ICQodG9wX3Ny Y2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1 bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0g JChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChB Q0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hF QURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVT ID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01N T04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9 IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFV VE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFL RUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1Rf REFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1f TElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9P U1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JF R0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBA Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lH TkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElC QAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9E RSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZM QUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQ UFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklU X0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hY QAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZM QUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZT QAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRUNITyA9IEBF Q0hPQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBA RUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRjc3ID0gQEY3 N0AKKytGRkxBR1MgPSBARkZMQUdTQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExA CisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5T VEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RB TExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTERGTEFHUyA9IEBM REZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9 IEBMSUJUT09MQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01B S0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1Mg PSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxf RElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytN WVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpF WFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9C VUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklO RyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1F QAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1Ig PSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05G SUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNR TF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdS RVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05A CisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQg PSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lf SEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJ UCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9O ID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGly ID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAor K2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0ND QAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKKyth bV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRp bmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAor K2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBi dWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRf Y3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5k b3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFy b290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBA ZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAor K2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dz X29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNA CisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVu ZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0g QGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFs bF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4 ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3Rh dGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBA bWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBk ZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5k aXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRp ckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJn ZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxk X3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBA dG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3Jj ZGlyKQorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytFWFRSQV9ESVNUID0g YnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwu dmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNs ZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9q IG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52 Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVf dGVzdC52Y3Byb2ogc29jaV9kbGwuc2xuIFwKKysJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0 X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfZGxsLnZzcHJvcHMKKysKKythbGw6IGFs bC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJl X2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJl X2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCisrCQkmJiBleGl0IDA7 IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcg Y2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL2RsbC9N YWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1n bnUgIGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFr ZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwK KysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFU VVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9k ZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2Ns ZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKyt0YWdzOiBUQUdTCisrVEFHUzoK KysKKytjdGFnczogQ1RBR1MKKytDVEFHUzoKKysKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykK KysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xc XFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQg J3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJ ICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwg XAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4k JHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3Rf ZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwK KysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisr CQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxl czsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9 LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRo ZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7 IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNy Y2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIp JCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUg JChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAk KGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikv JCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1h bTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxk aXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1h bQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3RhbGwt YW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGlu c3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxj aGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RB TExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9Q Uk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBc CisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dS QU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVy aWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMp CisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlz IGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZp bGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3Qg LXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFu LWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwkt cm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmlj CisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2lu Zm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0 YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFs bC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1h bQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorKwor K2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFp bnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKytt YWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj CisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1v c3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisr CisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToK KysKKysuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBhbGwgYWxs LWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisr CWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGlyIGR2 aSBcCisrCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1h bSBcCisrCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1k dmktYW0gXAorKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0 YWxsLWh0bWwtYW0gXAorKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFu IGluc3RhbGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFt IGluc3RhbGwtc3RyaXAgXAorKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxk aXJzIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBk Zi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKyMg VGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2 YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0 KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxk L21zdmM4MC9saWIvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3Zj ODAvbGliL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr Kysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0JMjAwOS0w NC0xNiAxOTozNzowNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTEgQEAKKysjIyBidWls ZC9tc3ZjODAvbGliIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK0VY VFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3Rf cG9zdGdyZXNxbC52Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVz dC52Y3Byb2ogY2xlYW4uYmF0IFwKKysJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2Fj Y2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAorKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZj cHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2ogXAorKwlvZGJjX3Rlc3RfbXNzcWwudmNw cm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAorKwllbXB0eV90ZXN0LnZjcHJv aiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29jaV9saWIudnNwcm9wcwor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4g c29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4KKy0tLSBzb2Np LTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4 MC9saWIvTWFrZWZpbGUuaW4JMjAwOS0wNS0wMyAwMDoyMDo0MC4wMDAwMDAwMDAgKzAyMDAKK0BA IC0wLDAgKzEsMzgzIEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4x MC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJp Z2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAy MDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0 ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisr QFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRp ciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVS U0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5z dGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAt YworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVS ID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1l KQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9 IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklO U1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9z dEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZp bGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGJ1aWxk L21zdmM4MC9saWIKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1f X2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNx bC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMp ICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxs ZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIp L3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1Rf U09VUkNFUyA9CisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQo VEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBA QU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9 IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9P U1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NU X0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RF TV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JP T1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJP T1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VY X0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJ QkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9USFJF QURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19M SUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBC T09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFM SVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxB R1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQ VU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5J VF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJ T04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAK KytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lH UEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAK KytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytFQ0hPID0gQEVDSE9ACisrRUNIT19DID0gQEVDSE9f Q0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdS RVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGNzcgPSBARjc3QAorK0ZGTEFHUyA9IEBGRkxBR1NA CisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisr R1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5T VEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFM TF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElO U1RBTExfU1RSSVBfUFJPR1JBTUAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBM SUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTE5fUyA9IEBM Tl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisr TUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlT UUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisr TVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxf VkVSU0lPTkAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xF X0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9D RkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFD TEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK1BBQ0tBR0UgPSBAUEFDS0FH RUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05B TUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAor K1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0g QFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQ RVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFH UyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9E SVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdS RVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAor K1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBA U0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNR TF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09D SV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9D T01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVp bGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNf dG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJz X3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0 X0NYWEAKKythY19jdF9GNzcgPSBAYWNfY3RfRjc3QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNs dWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0g QGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRh ckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0g QGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVp bGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWls ZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJA CisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9 IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tA CisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9 IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2Nw dUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisr aHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGly ID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxh dGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAor K2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGly QAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVk aXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVm aXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAor K3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29r QAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJA Cisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxp YXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRp ciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZM QUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrTUFJTlRBSU5FUkNMRUFO RklMRVMgPSBNYWtlZmlsZS5pbgorK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9q IG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAorKwlwb3N0Z3Jlc3Fs X3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKKysJZmlyZWJpcmRf dGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAorKwlwb3N0 Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2og XAorKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2xpYi5z bG4gXAorKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52 Y3Byb2ogc29jaV9saWIudnNwcm9wcworKworK2FsbDogYWxsLWFtCisrCisrLlNVRkZJWEVTOgor KyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4g JD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICok JGRlcCopIFwKKysJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoIFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBc CisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQo QVVUT01BS0UpIC0tZ251ICBidWlsZC9tc3ZjODAvbGliL01ha2VmaWxlJzsgXAorKwljZCAkKHRv cF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL2xpYi9N YWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2Vm aWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAor KwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8g JyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19t YXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQo dG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworK21vc3RseWNs ZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1y ZiAubGlicyBfbGlicworK3RhZ3M6IFRBR1MKKytUQUdTOgorKworK2N0YWdzOiBDVEFHUworK0NU QUdTOgorKworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2Rp cnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxl IGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNy Y2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9w X2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAk KE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8 XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisr CWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAt ZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBm aTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8g Ii8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAk KHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAg IGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJ ICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhp dCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJ ICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhp dCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hl Y2stYW0KKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6CisraW5zdGFsbDogaW5zdGFs bC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0 YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFs bC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwt ZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJp cDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJ UF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJ UCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNU UklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmlj OgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklM RVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFu LWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWlu ZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBz cGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLWFt CisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1h bQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3Rj bGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKKysKKytkdmk6IGR2aS1hbQorKwor K2R2aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisraW5mbzogaW5mby1hbQorKworK2luZm8t YW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1h bQorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1h bQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCisrCisraW5zdGFsbC1tYW46Cisr CisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1wczogaW5zdGFsbC1w cy1hbQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFp bmVyLWNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRp c3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9z dGx5Y2xlYW4tYW0KKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtYW0KKysKKytwZGYtYW06CisrCisrcHM6IHBz LWFtCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiBpbnN0YWxsLWFt IGluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xl YW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1n ZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRt bC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRhIGlu c3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhl YyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3Rh bGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlpbnN0 YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCisrCWlu c3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBc CisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5l cmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5zdGFs bCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMu NjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lz ZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysu Tk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL01ha2Vm aWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0KKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2Yzgw L01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDggQEAKKysjIyBidWlsZC9tc3ZjODAgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2Vm aWxlLmluCisrCisrRVhUUkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCisrCisrU1VC RElSUyA9IGRsbCBsaWIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAv TWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9t c3ZjODAvTWFrZWZpbGUuaW4JMjAwOS0wNS0wMyAwMDoyMDo0MC4wMDAwMDAwMDAgKzAyMDAKK0BA IC0wLDAgKzEsNTM2IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4x MC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJp Z2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAy MDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0 ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisr QFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9A UEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRp ciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVS U0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5z dGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAt YworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVS ID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1l KQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9 IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklO U1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9z dEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZp bGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGJ1aWxk L21zdmM4MAorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNs b2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChD T05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJz ID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29j aS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VS Q0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZl IGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxs LWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1y ZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNp dmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFs bC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vy c2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUK KytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1y ZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vy c2l2ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChT VUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRF WElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFN VEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBA QVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NU X0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9E QVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1f TElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09T VF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09T VF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9M SUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJA CisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFE X0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElC ID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9P U1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTEla QVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdT ID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVO SVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRf Q09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9O ID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisr Q1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BB VEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisr RFNZTVVUSUwgPSBARFNZTVVUSUxACisrRUNITyA9IEBFQ0hPQAorK0VDSE9fQyA9IEBFQ0hPX0NA CisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQ QAorK0VYRUVYVCA9IEBFWEVFWFRACisrRjc3ID0gQEY3N0AKKytGRkxBR1MgPSBARkZMQUdTQAor K0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dS RVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RB TExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExf U0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNU QUxMX1NUUklQX1BST0dSQU1ACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElC T0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xOX1MgPSBATE5f U0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01L RElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FM X0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01Z U1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZF UlNJT05ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9E SVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZM QUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xF X09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytQQUNLQUdFID0gQFBBQ0tBR0VA CisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1F ID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQ QUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQ QUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVS TCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1Mg PSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElS U0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVT UUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytS UE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNF VF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9I RUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09N TUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxk ZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3Rv cF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190 b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9D WFhACisrYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVk ZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBh bV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJA CisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBi dWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxk X29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRk aXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAor K2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBA ZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAor K2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBA aG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVA CisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0 bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9 IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRl eF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKyts b2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAK KyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGly ID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4 QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytw c2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AK KytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAor K3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFz QAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIg PSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFH UyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK01BSU5UQUlORVJDTEVBTkZJ TEVTID0gTWFrZWZpbGUuaW4KKytFWFRSQV9ESVNUID0gUkVBRE1FLnR4dCBzb2NpLnZzcHJvcHMK KytTVUJESVJTID0gZGxsIGxpYgorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoK KyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGlu ICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAq JCRkZXAqKSBcCisrCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaCBcCisrCQkmJiBleGl0IDA7IFwKKysJICAgICAgZXhpdCAxOzsg XAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9z cmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgYnVpbGQvbXN2YzgwL01ha2VmaWxl CisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4g JCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNv bmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQo YW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNI RUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7 IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xP Q0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrbW9zdGx5Y2xlYW4tbGli dG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJz IF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkg aW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRo b3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVz IG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAo MSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZp Zy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSBy ZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3Mg dGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJT SVZFX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFL RUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBc CisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7 IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2 ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK KysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsg XAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7 IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZh aWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNh c2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29t PSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBc CisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSop IGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7 IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1 YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwK KysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGly IGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsg XAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJn ZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRv bmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAu IHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlk b25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhF QURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkg aW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBl bHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAn eyBmaWxlc1skJDBdID0gMTsgbm9uZW10cHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5v bmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJ RCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURF UlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykg JChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0 YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1 ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2Ug XAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJ Zmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAt ZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRp b249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisr CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK KysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNl IFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAg JChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAor KwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0 YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMp IFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwlsaXN0PSckKFNPVVJD RVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3Ig aSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7 IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0sp ICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAo bm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAt eiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFH U0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQkdGFncyAk JHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYm IHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RB R1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdU QUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisr CUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdz L1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAg ZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwK KysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0 b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2Zp bGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisr CQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJ CSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7 IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47 IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVu IFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBc CisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNk aXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQk ZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQo ZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgJChk aXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQk ZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCWxpc3Q9JyQo RElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikv JCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwK KysJICAgIHx8IGV4aXQgMTsgXAorKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikg JiYgcHdkYDsgXAorKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAm JiBwd2RgOyBcCisrCSAgICAoY2QgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKKysJ ICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKKysJCWFtX19yZW1vdmVfZGlz dGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKysJICAgICAgICBkaXN0ZGly KSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTog YWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0 YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisraW5zdGFs bDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNp dmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVu aW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxs Y2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFN KSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJ TlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkg ICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3Rh bGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNs ZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1m ICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJ QGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgor KwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMg dG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0g LWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisr Y2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorKwor K2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0 Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCisrCisr ZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZl CisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0 YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5zdGFs bC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKwor K2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtbWFuOgor KworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzOiBp bnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVy LWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKytt YWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj CisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFu LWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBk Zi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFt OgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VU UykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCisrCWluc3RhbGwtc3RyaXAKKysK KysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMp IENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1n ZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFu IGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3Mg ZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxs IGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZp IGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBp bnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisrCWluc3RhbGwtcHMgaW5z dGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCisrCWluc3RhbGxjaGVjay1h bSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwlt b3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2 ZSBcCisrCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrIyBUZWxsIHZl cnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxl cy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBi ZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVp bGQvdW5peC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmls ZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuYW0JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVp bGQvdW5peC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIwMAor QEAgLTAsMCArMSwxMSBAQAorKyMjIGJ1aWxkL3VuaXggc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUg JCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9 IE1ha2VmaWxlLmluCisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICAu X2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50Y2wg Ll9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1wYXJh bWV0ZXJzLnRjbAorKworK0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUu dGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCisrCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZpbmQt Ym9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCisrCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1 dGUudGNsIFwKKysJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3Ry ZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxk L3VuaXgvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysr KyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgkyMDA5LTA1LTAzIDAw OjIwOjQwLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzODMgQEAKKysjIE1ha2VmaWxlLmlu IGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25m aWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcs IDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2 LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgTWFr ZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgor KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysj IFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEggPSBAc3JjZGlyQAor K3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGly KS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKyth bV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNk CisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3No X1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3Rh bGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0g PSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lO U1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJF X1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1 aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01h a2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uCisrc3ViZGlyID0gYnVpbGQvdW5peAorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNk aXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5p dC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQo YW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNM T0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFE RVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9 CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9O KSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBA QUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRP Q09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VA CisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RB VEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJ QiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NU X0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9SRUdF WF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05B TFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9V TklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAK KytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05f TElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUg PSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFH UyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBV TklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9M SUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAK KytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFH UyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AK KytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0VDSE8gPSBARUNI T0AKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVD SE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0Y3NyA9IEBGNzdA CisrRkZMQUdTID0gQEZGTEFHU0AKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklD X0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAor K0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RB TExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxM X1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xERkxBR1MgPSBATERG TEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBA TElCVE9PTEAKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtF SU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0g QE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJ UlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlT UUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRVhU ID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NG TEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xF X09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05A CisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVH UkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcg PSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAK KytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0g QFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklH QAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxf RElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVT UUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAor K1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0g QFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJT X0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAg PSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9 IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9 IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKyth YnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AK KythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACisrYW1f X2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5n X2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKyth bV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVp bGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2Nw dUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9y QAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9v dGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRv Y2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytk dmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19v ayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAor K2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRv ciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBp bmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxf c2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVj ZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRl ZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1r ZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZk aXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dy YW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGly QAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJA Cisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0 X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9w cmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRv cF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2Rp cikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrI0VYVFJBX0RJU1Rf Rk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwu dGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNs IC5faW5zdGFsbC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJzLnRjbAorK0VYVFJBX0RJU1QgPSBidWls ZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCisrCXBh cnNlLXBhcmFtZXRlcnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCisrCWJ1 aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1dGUudGNsIFwKKysJJChFWFRSQV9ESVNUX0ZPUl9TT0NJ X0NPTVBBVElCSUxJVFkpCisrCisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrJChzcmNk aXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8g XAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikg XAorKwkgICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2ggXAorKwkJJiYgZXhpdCAwOyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBl c2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFL RSkgLS1nbnUgIGJ1aWxkL3VuaXgvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYg XAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC91bml4L01ha2VmaWxlCisrLlBSRUNJT1VT OiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMq KSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVz X21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZp Zy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsK KysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9j b25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQo YW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJt IC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrdGFn czogVEFHUworK1RBR1M6CisrCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6CisrCisrCisrZGlzdGRp cjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9w X3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJ U1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hv ICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAor KwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBc CisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQk ZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9b Xi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmls ZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1k ICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAt ZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUg J3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYg dGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8k JGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNw IC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwK KysJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQk ZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAor Kwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1hbQorK2FsbC1hbTogTWFr ZWZpbGUKKytpbnN0YWxsZGlyczoKKytpbnN0YWxsOiBpbnN0YWxsLWFtCisraW5zdGFsbC1leGVj OiBpbnN0YWxsLWV4ZWMtYW0KKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQorK3VuaW5z dGFsbDogdW5pbnN0YWxsLWFtCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisraW5zdGFs bGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAor KwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxM X1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNo byAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKytt b3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdl bmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09O RklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8g IlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNo byAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVi dWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChN QUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xl YW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBk aXN0Y2xlYW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBk aXN0Y2xlYW4tZ2VuZXJpYworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0bWw6 IGh0bWwtYW0KKysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRh dGEtYW06CisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisrCisraW5zdGFsbC1leGVj LWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCisrCisraW5zdGFsbC1pbmZv OiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5z dGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5zdGFsbGNo ZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKysJLXJt IC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWlu ZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorKworK21v c3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysK KytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToKKysK Kyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKwor Ky5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNs ZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxp YnRvb2wgZGlzdGRpciBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBp bnN0YWxsIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3Rh bGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKKysJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBp bnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKKysJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5m by1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwtcGRmLWFtIGluc3RhbGwt cHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKKysJaW5zdGFsbGNoZWNrIGluc3RhbGxj aGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVh bi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKwor K0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8g bm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChm b3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfYm9vc3QubTQgc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9heF9ib29zdC5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9ib29z dC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9jb25maWcvYXhfYm9vc3QubTQJMjAwOS0wNC0xNiAxOTozNzoyMy4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsNTM0IEBACisrZG5sIEBzeW5vcHNpcyBBWF9CT09TVChbTUlOSU1V TS1WRVJTSU9OXSwgW0FDVElPTi1JRi1GT1VORF0sIFtBQ1RJT04tSUYtTk9ULUZPVU5EXSkKKytk bmwKKytkbmwgVGVzdCBmb3IgdGhlIEJvb3N0IEMrKyBsaWJyYXJpZXMgb2YgYSBwYXJ0aWN1bGFy IHZlcnNpb24gKG9yIG5ld2VyKQorK2RubAorK2RubCBJZiBubyBwYXRoIHRvIHRoZSBpbnN0YWxs ZWQgYm9vc3QgbGlicmFyeSBpcyBnaXZlbiB0aGUgbWFjcm8KKytkbmwgc2VhcmNocyB1bmRlciAv dXNyLCAvdXNyL2xvY2FsLCBhbmQgL29wdCwgYW5kIGV2YWx1YXRlcyB0aGUKKytkbmwgJEJPT1NU X1JPT1QgZW52aXJvbm1lbnQgdmFyaWFibGUuCisrZG5sCisrZG5sIFRoaXMgbWFjcm8gY2FsbHM6 CisrZG5sCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKSAvIEFDX1NVQlNUKEJPT1NUX0xJ QlMpCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfRklMRVNZU1RFTV9MSUIpCisrZG5sICAgQUNfU1VC U1QoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9USFJF QURfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX0lPU1RSRUFNU19MSUIpCisrZG5sICAgQUNf U1VCU1QoQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIpCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfV1NF UklBTElaQVRJT05fTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNfTElCKQorK2Ru bCAgIEFDX1NVQlNUKEJPT1NUX0RBVEVfVElNRV9MSUIpCisrZG5sICAgQUNfU1VCU1QoQk9PU1Rf UkVHRVhfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElC KQorK2RubAorK2RubCBBbmQgc2V0czoKKytkbmwKKytkbmwgICBIQVZFX0JPT1NUCisrZG5sICAg SEFWRV9CT09TVF9GSUxFU1lTVEVNCisrZG5sICAgSEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMK KytkbmwgICBIQVZFX0JPT1NUX1RIUkVBRAorK2RubCAgIEhBVkVfQk9PU1RfSU9TVFJFQU1TCisr ZG5sICAgSEFWRV9CT09TVF9TRVJJQUxJWkFUSU9OCisrZG5sICAgSEFWRV9CT09TVF9TSUdOQUxT CisrZG5sICAgSEFWRV9CT09TVF9EQVRFX1RJTUUKKytkbmwgICBIQVZFX0JPT1NUX1JFR0VYCisr ZG5sICAgSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLCisrZG5sCisrZG5sIEBjYXRlZ29y eSBJbnN0YWxsZWRQYWNrYWdlcworK2RubCBAYXV0aG9yIFRob21hcyBQb3JzY2hiZXJnIDx0aG9t YXNAcmFuZHNwcmluZ2VyLmRlPgorK2RubCBAdmVyc2lvbiAyMDA2LTAxLTAyCisrZG5sIEBsaWNl bnNlIEFsbFBlcm1pc3NpdmUKKysKKytBQ19ERUZVTihbQVhfQk9PU1RdLAorK1sKKysgICAgQUNf QVJHX1dJVEgoW2Jvb3N0XSwKKysgICAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0 aC1ib29zdD1ESVJdLAorKyAgICAgICAgICAgICAgICBbdXNlIGJvb3N0IChkZWZhdWx0IGlzIE5P KSAsIHNwZWNpZnkgdGhlIHJvb3QgZGlyZWN0b3J5IGZvciBib29zdCBsaWJyYXJ5IChvcHRpb25h bCldKSwKKysgICAgICAgICAgICAgICAgWworKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkd2l0 aHZhbCIgPSAibm8iOyB0aGVuCisrCQkgICAgICAgICAgICB3YW50X2Jvb3N0PSJubyIKKysgICAg ICAgICAgICAgICAgZWxpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAg ICAgICAgICAgICAgd2FudF9ib29zdD0ieWVzIgorKyAgICAgICAgICAgICAgICAgICAgYWNfYm9v c3RfcGF0aD0iIgorKyAgICAgICAgICAgICAgICBlbHNlCisrCQkJICAgICAgICB3YW50X2Jvb3N0 PSJ5ZXMiCisrICAgICAgICAgICAgCQlhY19ib29zdF9wYXRoPSIkd2l0aHZhbCIKKysJCSAgICAg ICAgZmkKKysgICAgICAgICAgICAJXSwKKysgICAgICAgICAgICAgICAgW3dhbnRfYm9vc3Q9Inll cyJdKQorKworKyMgICAgQUNfQ0FOT05JQ0FMX0JVSUxECisrQk9PU1RfTURXX1ZFUlNJT049IjEt MzMtMSIKKytCT09TVExJQl9NRFdfVkVSU0lPTj0iMV8zM18xIgorKworKwlpZiB0ZXN0ICJ4JHdh bnRfYm9vc3QiID0gInh5ZXMiOyB0aGVuCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXE9aWZlbHNl KFskMV0sICwxLjIwLjAsJDEpCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbj1gZXhw ciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcLltbMC05XV0qXCknYAorKwkJ Ym9vc3RfbGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEg OiAnXChbWzAtOV1dKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAk Ym9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKwkJYm9v c3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVx IDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysJCWlmIHRlc3QgIngkYm9v c3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCisrCQkJYm9vc3RfbGli X3ZlcnNpb25fcmVxX3N1Yl9taW5vcj0iMCIKKysgICAgCWZpCisrCQlXQU5UX0JPT1NUX1ZFUlNJ T049YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29z dF9saWJfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFf c3ViX21pbm9yYAorKwkJQUNfTVNHX0NIRUNLSU5HKGZvciBib29zdGxpYiA+PSAkYm9vc3RfbGli X3ZlcnNpb25fcmVxKQorKwkJc3VjY2VlZGVkPW5vCisrCisrCQlkbmwgZmlyc3Qgd2UgY2hlY2sg dGhlIHN5c3RlbSBsb2NhdGlvbiBmb3IgYm9vc3QgbGlicmFyaWVzCisrCQlkbmwgdGhpcyBsb2Nh dGlvbiBpcyBjaG9zZW4gaWYgYm9vc3QgbGlicmFyaWVzIGFyZSBpbnN0YWxsZWQgCisrCQlkbmwg d2l0aCB0aGUgLS1sYXlvdXQ9c3lzdGVtIG9wdGlvbgorKwkJZG5sIG9yIGlmIHlvdSBpbnN0YWxs IGJvb3N0IHdpdGggUlBNCisrCQlpZiB0ZXN0IC1kIC9saWI2NDsgdGhlbgorKwkJCUJPT1NUX0xJ QkRJUlRZUEU9ImxpYjY0IgorKwkJZWxzZQorKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIKKysJ CWZpCisrCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KKysJCQlpZiB0ZXN0 ICIkQk9PU1RfTElCRElSVFlQRSIgPT0gImxpYjY0IjsgdGhlbgorKwkJCQlpZiB0ZXN0IC1kICIk YWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3Bh dGgvJEJPT1NUX0xJQkRJUlRZUEUiOyB0aGVuCisrCSAgICAgICAgICAgICAgICBCT09TVF9MSUJT PSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQllbHNlCisrICAgICAg ICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKKysJCQkJZmkK KysJCQllbHNlCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgorKwkJCWZp CisrCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCisrCQllbHNlCisr CQkJZm9yIGFjX2Jvb3N0X3BhdGhfdG1wIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0b29s cy9ib29zdCA7IGRvCisrCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRl L2Jvb3N0IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCI7IHRo ZW4KKysJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJU WVBFIgorKwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlIgor KwkJCQkJYnJlYWs7CisrCQkJCWZpCisrCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3Rt cC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAiJGFj X2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0Ijsg dGhlbgorKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJ UlRZUEUiCisrCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUv Ym9vc3QtJEJPT1NUX01EV19WRVJTSU9OIgorKwkJCQorKwkJCQkJZG5sIEhhY2sgZm9yIHdyb25n bHkgaW5zdGFsbGVkIEJvb3N0IGxpYnJhcmllcyAoQU1ENjQgbGlicmFyaWVzIGluc3RhbGxlZCBp biBib29zdC9saWIgZGlyZWN0b3J5KQorKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhf dG1wL2xpYiIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgJiYgdGVzdCAhIC1k ICIkYWNfYm9vc3RfcGF0aF90bXAvbGliNjQiOyB0aGVuCisrCQkJCQkJQk9PU1RfTElCUz0iLUwk YWNfYm9vc3RfcGF0aF90bXAvbGliIgorKwkJCQkJCWVjaG8gIkhhY2s6ICRCT09TVF9MSUJTIgor KwkJCQkJZmkKKysJCQkJCWJyZWFrOworKwkJCQlmaQorKwkJCWRvbmUKKysJCWZpCisrCisrCQlD UFBGTEFHU19TQVZFRD0iJENQUEZMQUdTIgorKwkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1Rf Q0ZMQUdTIgorKwkJZXhwb3J0IENQUEZMQUdTCisrCisrCQlMREZMQUdTX1NBVkVEPSIkTERGTEFH UyIKKysJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9MSUJTIgorKwkJZXhwb3J0IExERkxBR1MK KysKKysgICAgIAlBQ19UUllfQ09NUElMRSgKKysgICAgICAgCVsKKytAJTpAaW5jbHVkZSA8Ym9v c3QvdmVyc2lvbi5ocHA+CisrXSwKKysgICAgICAgWworKyNpZiBCT09TVF9WRVJTSU9OID49ICRX QU5UX0JPT1NUX1ZFUlNJT04KKysvLyBFdmVyeXRoaW5nIGlzIG9rYXkKKysjZWxzZQorKyMgIGVy cm9yIEJvb3N0IHZlcnNpb24gaXMgdG9vIG9sZAorKyNlbmRpZgorKworKwkJXSwKKysgICAgCVsK KysgICAgICAgICBBQ19NU0dfUkVTVUxUKHllcykKKysJCSBzdWNjZWVkZWQ9eWVzCisrCQkgZm91 bmRfc3lzdGVtPXllcworKyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pCisrICAgICAg IF0sCisrICAgICAgIFsKKysgICAgICAgXSkKKysKKysJCWRubCBpZiB3ZSBmb3VuZCBubyBib29z dCB3aXRoIHN5c3RlbSBsYXlvdXQgd2Ugc2VhcmNoIGZvciBib29zdCBsaWJyYXJpZXMKKysJCWRu bCBidWlsdCBhbmQgaW5zdGFsbGVkIHdpdGhvdXQgdGhlIC0tbGF5b3V0PXN5c3RlbSBvcHRpb24g b3IgZm9yIGEgc3RhZ2VkKG5vdCBpbnN0YWxsZWQpIHZlcnNpb24KKysJCWlmIHRlc3QgIngkc3Vj Y2VlZGVkIiAhPSAieHllcyI7IHRoZW4KKysJCQlfdmVyc2lvbj0wCisrCQkJaWYgdGVzdCAiJGFj X2Jvb3N0X3BhdGgiICE9ICIiOyB0aGVuCisrICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1M JGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCWlmIHRlc3QgLWQgIiRhY19i b29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KKysJCQkJCWZvciBp IGluIGBscyAtZCAkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBk bworKwkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMj IiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKKysJCQkJCQlW X0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAorKwkJCQkJCWlmIHRlc3Qg IiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KKysJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3RtcAor KwkJCQkJCWZpCisrCQkJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8IHNl ZCAncy9cLi9fLydgCisrCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1 ZGUvYm9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKKysJCQkJCWRvbmUKKysJCQkJZmkKKysJCQll bHNlCisrCQkJCWZvciBhY19ib29zdF9wYXRoIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IDsgZG8K KysJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3Rf cGF0aCI7IHRoZW4KKysJCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVk ZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KKysJCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRp IHwgc2VkICJzIyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8n IHwgc2VkICdzL18vLi8nYAorKwkJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4g JF92ZXJzaW9uYAorKwkJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCisrCQkJ CQkJCQlfdmVyc2lvbj0kX3ZlcnNpb25fdG1wCisrCQkJCQkJCQliZXN0X3BhdGg9JGFjX2Jvb3N0 X3BhdGgKKysJCQkJCQkJZmkKKysJCQkJCQlkb25lCisrCQkJCQlmaQorKwkJCQlkb25lCisrCisr CQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAor KwkJCQlCT09TVF9DRkxBR1M9Ii1JJGJlc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VO REVSU0NPUkUiCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGJlc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQ RSIKKysKKysJICAgIAkJaWYgdGVzdCAieCRCT09TVF9ST09UIiAhPSAieCI7IHRoZW4KKysJCQkJ CWlmIHRlc3QgLWQgIiRCT09TVF9ST09UIiAmJiB0ZXN0IC1yICIkQk9PU1RfUk9PVCI7IHRoZW4K KysJCQkJCQl2ZXJzaW9uX2Rpcj1gZXhwciAvLyRCT09TVF9ST09UIDogJy4qL1woLipcKSdgCisr CQkJCQkJc3RhZ2VfdmVyc2lvbj1gZWNobyAkdmVyc2lvbl9kaXIgfCBzZWQgJ3MvYm9vc3RfLy8n IHwgc2VkICdzL18vLi9nJ2AKKysJCQkJCQlzdGFnZV92ZXJzaW9uX3Nob3J0ZW49YGV4cHIgJHN0 YWdlX3ZlcnNpb24gOiAnXChbWzAtOV1dKlwuW1swLTldXSpcKSdgCisrCQkJCQkJVl9DSEVDSz1g ZXhwciAkc3RhZ2VfdmVyc2lvbl9zaG9ydGVuIFw+XD0gJF92ZXJzaW9uYAorKwkJCQkJCWlmIHRl c3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KKysJCQkJCQkJQUNfTVNHX05PVElDRShXZSB3aWxs IHVzZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QpCisrCQkJCQkJCUJP T1NUX0NGTEFHUz0iLUkkQk9PU1RfUk9PVCIKKysJCQkJCQkJQk9PU1RfTElCUz0iLUwkQk9PU1Rf Uk9PVC9zdGFnZS8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJCQlmaQorKwkJCQkJZmkKKysJICAg IAkJZmkKKysJCQlmaQorKworKwkJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIK KysJCQlleHBvcnQgQ1BQRkxBR1MKKysJCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIK KysJCQlleHBvcnQgTERGTEFHUworKworKyAgICAgCQlBQ19UUllfQ09NUElMRSgKKysgICAgICAg CQlbCisrQCU6QGluY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgorK10sCisrICAgICAgIFsKKysj aWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCisrLy8gRXZlcnl0aGluZyBp cyBva2F5CisrI2Vsc2UKKysjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKKysjZW5k aWYKKysKKysJCV0sCisrICAgIAlbCisrICAgICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMgKCRfdmVy c2lvbikpCisrCQkgc3VjY2VlZGVkPXllcworKyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDosIFsk Ml0pCisrICAgICAgIF0sCisrICAgICAgIFsKKysgICAgICAgICBBQ19NU0dfUkVTVUxUKG5vICgk X3ZlcnNpb24pKQorKyAgICAgICAgIGlmZWxzZShbJDNdLCAsIDosIFskM10pCisrICAgICAgIF0p CisrCQlmaQorKworKwkJaWYgdGVzdCAiJHN1Y2NlZWRlZCIgIT0gInllcyIgOyB0aGVuCisrCQkJ aWYgdGVzdCAiJF92ZXJzaW9uIiA9ICIwIiA7IHRoZW4KKysJCQkJQUNfTVNHX0VSUk9SKFtbV2Ug Y291bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9saWJf dmVyc2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBib29z dCBsaWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NUX1JP T1QgaW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0aC1i b29zdCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVkLCB0 aGVuIGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lvbi5o cHA+Ll1dKQorKwkJCWVsc2UKKysJCQkJQUNfTVNHX0VSUk9SKCdZb3VyIGJvb3N0IGxpYnJhcmll cyBzZWVtcyB0byBvbGQgKHZlcnNpb24gJF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3QgJGJv b3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4nKQorKwkJCWZpCisrCQllbHNlCisrCQkJQUNfU1VCU1Qo Qk9PU1RfQ0ZMQUdTKQorKwkJCUFDX1NVQlNUKEJPT1NUX0xJQlMpCisrCQkJQUNfREVGSU5FKEhB VkVfQk9PU1QsLFtkZWZpbmUgaWYgdGhlIEJvb3N0IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysK KysJCQlBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0gbGlicmFy eSBpcyBhdmFpbGFibGVdLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0sCisrCQkJ CQkJW0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxF X0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvZmlsZXN5c3RlbS9w YXRoLmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcg bmFtZXNwYWNlIGJvb3N0OjpmaWxlc3lzdGVtOworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGF0aCBteV9wYXRoKCAiZm9vL2Jhci9kYXRhLnR4dCIgKTsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO11dKSwKKysgICAgICAgICAgICAJCQkJ ICAgICAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09eWVzLCBheF9jdl9ib29zdF9maWxlc3lzdGVt PW5vKQorKwkJIAkJICAgICAgICAJCQlBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKwkJCWlmIHRl c3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklO RShIQVZFX0JPT1NUX0ZJTEVTWVNURU0sLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpGSUxFU1lTVEVN IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49Ym9vc3RfZmlsZXN5c3RlbQorKwkJCQlm b3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0Mt cyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGli JEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJf TURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPT1NUX0ZJTEVTWVNURU1fTElCPSIt bCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0ZJTEVTWVNURU1fTElCKSBsaW5rX2ZpbGVzeXN0ZW09 InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX2Zp bGVzeXN0ZW09Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZmlsZXN5 c3RlbSIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKwkJCUFDX0NBQ0hFX0NIRUNL KFt3aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxl XSwKKysJCQkJCQkgICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMsCisrCQkJCQkJICAgW0FD X0xBTkdfU0FWRQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDX0xBTkdfQ1BMVVNQTFVT CisrCQkJICAgICAgICAgICAgICAgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtb QCU6QGluY2x1ZGUgPGJvb3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+XV0sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojpwcm9ncmFtX29wdGlvbnM6Om9wdGlvbnNf ZGVzY3JpcHRpb24gZ2VuZXJpYygiR2VuZXJpYyBvcHRpb25zIik7CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtdXSksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPXllcywgYXhfY3ZfYm9vc3RfcHJvZ3Jh bV9vcHRpb25zPW5vKQorKwkJCSAgICAgICAgICAgICAgIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0p CisrCQkJaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4K KysJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TLCxbZGVmaW5lIGlmIHRo ZSBCb29zdDo6UFJPR1JBTV9PUFRJT05TIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49 Ym9vc3RfcHJvZ3JhbV9vcHRpb25zCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJO LSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJO LW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRC Ti1tZ3ctcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9P U1RMSUJfTURXX1ZFUlNJT047IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFp biwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBs aW5rX3Byb2dyYW1fb3B0aW9ucz0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgW2xpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyJdKQorKyAgCQkJCWRvbmUKKysJ CQkJaWYgdGVzdCAieCRsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCisr CQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJ CQlmaQorKwkJCWZpCisrCisrCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlRo cmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9ib29zdF90aHJlYWQs CisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBDWFhG TEFHU19TQVZFPSRDWFhGTEFHUworKworKwkJCSBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29s YXJpcyIgOyB0aGVuCisrICAJCQkJIENYWEZMQUdTPSItcHRocmVhZHMgJENYWEZMQUdTIgorKwkJ CSBlbGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgorKwkJCQkgQ1hYRkxB R1M9Ii1tdGhyZWFkcyAkQ1hYRkxBR1MiCisrCQkJIGVsc2UKKysJCQkJQ1hYRkxBR1M9Ii1wdGhy ZWFkICRDWFhGTEFHUyIKKysJCQkgZmkKKysJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19Q Uk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3RocmVhZC90aHJlYWQuaHBwPl1dLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tib29zdDo6dGhyZWFkX2dyb3VwIHRocmRz OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pLAorKyAg ICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF90aHJlYWQ9eWVzLCBheF9jdl9ib29zdF90aHJl YWQ9bm8pCisrCQkJIENYWEZMQUdTPSRDWFhGTEFHU19TQVZFCisrCQkJIEFDX0xBTkdfUkVTVE9S RQorKwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5ZXMiOyB0 aGVuCisrICAgICAgICAgICAgICAgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsg dGhlbgorKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgorKwkJ CSAgIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCisrIAkJCQkgIEJP T1NUX0NGTEFHUz0iLW10aHJlYWRzICRCT09TVF9DRkxBR1MiCisrCQkJICAgZWxzZQorKwkJCQkg IEJPT1NUX0NGTEFHUz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIKKysJCQkgICBmaQorKworKwkJ CQlBQ19TVUJTVChCT09TVF9DRkxBR1MpCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1RIUkVB RCwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlRIUkVBRCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisr CQkJCUJOPWJvb3N0X3RocmVhZAorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0k Q0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1t Z3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4t bWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09T VExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFp biwgW0JPT1NUX1RIUkVBRF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJ QikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngk bGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90 IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJZmkKKysKKysJCQlBQ19DQUNI RV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxl LAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2lvc3RyZWFtcywKKysJCQkJCQlbQUNfTEFOR19TQVZF CisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdf UFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9pb3N0cmVhbXMvZmlsdGVyaW5nX3N0cmVhbS5o cHA+CisrCQkJCQkJCQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5n ZS5ocHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbW3N0ZDo6c3RyaW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOworKwkJCQkJCQkJCSBu YW1lc3BhY2UgaW8gPSBib29zdDo6aW9zdHJlYW1zOworKwkJCQkJCQkJCSBpbzo6ZmlsdGVyaW5n X2lzdHJlYW0gIGluKGJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7CisrCQkJCQkJ CQkJIHJldHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAor KyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzLCBheF9jdl9ib29z dF9pb3N0cmVhbXM9bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF9pb3N0cmVhbXMiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklO RShIQVZFX0JPT1NUX0lPU1RSRUFNUywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OklPU3RyZWFtcyBs aWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X2lvc3RyZWFtcworKwkJCQlmb3Ig YXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJO LSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAg ICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0lPU1RSRUFNU19MSUI9Ii1sJGF4 X2xpYiIgQUNfU1VCU1QoQk9PU1RfSU9TVFJFQU1TX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJl YWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8i XSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRo ZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEp CisrCQkJCWZpCisrCQkJZmkKKysKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29z dDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9i b29zdF9zZXJpYWxpemF0aW9uLAorKwkJCQkJCVtBQ19MQU5HX1NBVkUKKysJCQkgQUNfTEFOR19D UExVU1BMVVMKKysJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGlu Y2x1ZGUgPGZzdHJlYW0+CisrCQkJCQkJCQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9hcmNoaXZl L3RleHRfb2FyY2hpdmUuaHBwPgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBAJTpAaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X2lhcmNoaXZlLmhw cD4KKysJCQkJCQkJCQkJCQldXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFtbc3RkOjpvZnN0cmVhbSBvZnMoImZpbGVuYW1lIik7CisrCQkJCQkJCQkJYm9vc3Q6OmFyY2hp dmU6OnRleHRfb2FyY2hpdmUgb2Eob2ZzKTsKKysJCQkJCQkJCQkgcmV0dXJuIDA7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXSksCisrICAgICAgICAgICAgICAgICAgIGF4 X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb249eWVzLCBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPW5v KQorKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9v c3Rfc2VyaWFsaXphdGlvbiIgPSAieHllcyI7IHRoZW4KKysJCQkJQUNfREVGSU5FKEhBVkVfQk9P U1RfU0VSSUFMSVpBVElPTiwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGli cmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9zZXJpYWxpemF0aW9uCisrCQkJCWZv ciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1z IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIk Qk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJ ICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChC T09TVF9TRVJJQUxJWkFUSU9OX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKKysgIAkJCQlk b25lCisrCQkJCUJOPWJvb3N0X3dzZXJpYWxpemF0aW9uCisrCQkJCWZvciBheF9saWIgaW4gJEJO ICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRC Ti0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1z ICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJO LW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRC Ti0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJ QigkYXhfbGliLCBtYWluLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09T VF9XU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfV1NFUklBTEla QVRJT05fTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJaWYg dGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShD b3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKwkJ CUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZh aWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3NpZ25hbHMsCisrCQkJCQkJW0FDX0xBTkdf U0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19M QU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3Qvc2lnbmFsLmhwcD4KKysJCQkJCQkJCQkJ CQldXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbYm9vc3Q6OnNpZ25h bDx2b2lkICgpPiBzaWc7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAorKyAgICAg ICAgICAgICAgICAgICBheF9jdl9ib29zdF9zaWduYWxzPXllcywgYXhfY3ZfYm9vc3Rfc2lnbmFs cz1ubykKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2 X2Jvb3N0X3NpZ25hbHMiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NU X1NJR05BTFMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxh YmxlXSkKKysJCQkJQk49Ym9vc3Rfc2lnbmFscworKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4t JENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJEND LW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4t bWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ct bXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJEND LW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4 X2xpYiwgbWFpbiwgW0JPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NU X1NJR05BTFNfTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJ aWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElD RShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKwor KwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBp cyBhdmFpbGFibGUsCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lLAorKwkJCQkJCVtB Q19MQU5HX1NBVkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgQUNfQ09NUElMRV9JRkVM U0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVnb3Jp YW4vZ3JlZ29yaWFuX3R5cGVzLmhwcD4KKysJCQkJCQkJCQkJCQldXSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47 IGRhdGUgZCgyMDAyLEphbiwxMCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAor KyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9kYXRlX3RpbWU9eWVzLCBheF9jdl9ib29z dF9kYXRlX3RpbWU9bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklO RShIQVZFX0JPT1NUX0RBVEVfVElNRSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkRhdGVfVGltZSBs aWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X2RhdGVfdGltZQorKwkJCQlmb3Ig YXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJO LSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAg ICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0RBVEVfVElNRV9MSUI9Ii1sJGF4 X2xpYiIgQUNfU1VCU1QoQk9PU1RfREFURV9USU1FX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJl YWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8i XSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiPSJubyIgPSAieG5v IjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9s aWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhl IEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9ib29z dF9yZWdleCwKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisr CQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29z dC9yZWdleC5ocHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbW2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAwO11dKSwKKysgICAgICAgICAg ICAgICAgICAgYXhfY3ZfYm9vc3RfcmVnZXg9eWVzLCBheF9jdl9ib29zdF9yZWdleD1ubykKKysJ CQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3Jl Z2V4IiA9ICJ4eWVzIjsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9SRUdFWCwsW2Rl ZmluZSBpZiB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49 Ym9vc3RfcmVnZXgKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRC Ti0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09T VF9SRUdFWF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfUkVHRVhfTElCKSBsaW5rX3Ro cmVhZD0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xp bmtfdGhyZWFkPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVh ZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKwkJCUFDX0NBQ0hFX0NIRUNLKHdo ZXRoZXIgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwK KysJCQkJCQkgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrLAorKwkJCQkJCVtBQ19M QU5HX1NBVkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgQUNfQ09NUElMRV9JRkVMU0Uo QUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD5d XSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3VzaW5nIGJvb3N0Ojp1 bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7CisrCQkJCQkgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUq IHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRlc3QgZXhhbXBsZSAxIiApOyByZXR1cm4g MDtdXSksCisrICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdv cms9eWVzLCBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPW5vKQorKwkJCSBBQ19MQU5H X1JFU1RPUkUKKysJCQldKQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2Zy YW1ld29yayIgPSAieHllcyI7IHRoZW4KKysgICAgCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6VW5pdF90ZXN0X2ZyYW1ld29y ayBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJQk49Ym9vc3RfdW5pdF90ZXN0X2ZyYW1ld29y aworKyAgICAJCXNhdmVkX2xkZmxhZ3M9IiR7TERGTEFHU30iCisrCQkJZm9yIGF4X2xpYiBpbiAk Qk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4t JENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1t Z3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg JEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysgICAgICAg ICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSAtbCRheF9saWIiCisrICAgIAkJCUFDX0NBQ0hF X0NIRUNLKHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSwK KysJICAgICAgCQkJCQkgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrLAorKwkJCQkJ CVtBQ19MQU5HX1NBVkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMKKysgICAgICAgICAgICAgICBB Q19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Rlc3Qv dW5pdF90ZXN0LmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2lu ZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4 YW1wbGUgMSIgKTsgcmV0dXJuIDA7XV0pXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgW2xpbmtfdGhyZWFkPSJ5ZXMiXSxbbGlua190aHJlYWQ9Im5vIl0pCisrCisrCQkJIEFDX0xB TkdfUkVTVE9SRQorKyAgICAgICAgICAgICAgIF0pCisrICAgICAgICAgICAgICAgIExERkxBR1M9 IiR7c2F2ZWRfbGRmbGFnc30iCisrCQkJICAgIGlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInh5 ZXMiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JL X0xJQj0iLWwkYXhfbGliIgorKyAgICAgICAgICAgICAgICAgICAgQUNfU1VCU1QoQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUIpCisrCQkJCQlicmVhaworKwkJCQlmaQorKyAgICAgICAgICAg ICAgZG9uZQorKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisr CQkJCSAgIEFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisr CQkJCWZpCisrCQkJZmkKKysJCWZpCisrICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTX1NBVkVE IgorKyAgICAgICAgTERGTEFHUz0iJExERkxBR1NfU0FWRUQiCisrCWZpCisrXSkKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfbXlzcWwubTQgc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9heF9teXNxbC5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9teXNx bC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9jb25maWcvYXhfbXlzcWwubTQJMjAwOS0wNC0xOCAxODoxNDoxNi4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsMTcyIEBACisrZG5sICRJZDogYXhfbXlzcWwubTQsdiAxLjMgMjAw Ny8wNi8yMyAwMTo1MToyMiBtbG9za290IEV4cCAkCisrZG5sCisrZG5sIEBzeW5vcHNpcyBBWF9M SUJfTVlTUUwoW01JTklNVU0tVkVSU0lPTl0pCisrZG5sCisrZG5sIFRoaXMgbWFjcm8gcHJvdmlk ZXMgdGVzdHMgb2YgYXZhaWxhYmlsaXR5IG9mIE15U1FMIGNsaWVudCBsaWJyYXJ5CisrZG5sIG9m IHBhcnRpY3VsYXIgdmVyc2lvbiBvciBuZXdlci4KKytkbmwgCisrZG5sIEFYX0xJQl9NWVNRTCBt YWNybyB0YWtlcyBvbmx5IG9uZSBhcmd1bWVudCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUg aXMgbm8gCisrZG5sIHJlcXVpcmVkIHZlcnNpb24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90 IHJ1biB2ZXJzaW9uIHRlc3QuCisrZG5sCisrZG5sIFRoZSAtLXdpdGgtbXlzcWwgb3B0aW9uIHRh a2VzIG9uZSBvZiB0aHJlZSBwb3NzaWJsZSB2YWx1ZXM6CisrZG5sIG5vICAgLSBkbyBub3QgY2hl Y2sgZm9yIE15U1FMIGNsaWVudCBsaWJyYXJ5CisrZG5sIHllcyAgLSBkbyBjaGVjayBmb3IgTXlT UUwgbGlicmFyeSBpbiBzdGFuZGFyZCBsb2NhdGlvbnMKKytkbmwgICAgICAgIChteXNxbF9jb25m aWcgc2hvdWxkIGJlIGluIHRoZSBQQVRIKQorK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0byBt eXNxbF9jb25maWcgdXRpbGl0eSwgdXNlIHRoaXMgb3B0aW9uCisrZG5sICAgICAgICBpZiBteXNx bF9jb25maWcgY2FuJ3QgYmUgZm91bmQgaW4gdGhlIFBBVEgKKytkbmwKKytkbmwgVGhpcyBtYWNy byBjYWxsczoKKytkbmwKKytkbmwgICBBQ19TVUJTVChNWVNRTF9DRkxBR1MpCisrZG5sICAgQUNf U1VCU1QoTVlTUUxfTERGTEFHUykKKytkbmwgICBBQ19TVUJTVChNWVNRTF9WRVJTSU9OKQorK2Ru bAorK2RubCBBbmQgc2V0czoKKytkbmwKKytkbmwgICBIQVZFX01ZU1FMCisrZG5sCisrZG5sIEBj YXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcworK2RubCBAY2F0ZWdvcnkgQ3h4CisrZG5sIEBhdXRo b3IgTWF0ZXVzeiBMb3Nrb3QgPG1hdGV1c3pAbG9za290Lm5ldD4KKytkbmwgQHZlcnNpb24gJERh dGU6IDIwMDcvMDYvMjMgMDE6NTE6MjIgJAorK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCisr ZG5sCisrZG5sICRJZDogYXhfbXlzcWwubTQsdiAxLjMgMjAwNy8wNi8yMyAwMTo1MToyMiBtbG9z a290IEV4cCAkCisrZG5sCisrQUNfREVGVU4oW0FYX0xJQl9NWVNRTF0sCisrWworKyAgICBBQ19B UkdfV0lUSChbbXlzcWxdLAorKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1teXNxbD1A PDpAQVJHQDo+QF0sCisrICAgICAgICAgICAgW3VzZSBNeVNRTCBjbGllbnQgbGlicmFyeSBAPDpA ZGVmYXVsdD15ZXNAOj5ALCBvcHRpb25hbGx5IHNwZWNpZnkgcGF0aCB0byBteXNxbF9jb25maWdd CisrICAgICAgICApLAorKyAgICAgICAgWworKwlNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3Fs L2luY2x1ZGUiCisrICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCisrICAg ICAgICAgICAgd2FudF9teXNxbD0ibm8iCisrICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9 ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9teXNxbD0ieWVzIgorKyAgICAgICAgZWxz ZQorKyAgICAgICAgICAgIHdhbnRfbXlzcWw9InllcyIKKysgICAgICAgICAgICBNWVNRTF9DT05G SUc9IiR3aXRodmFsIgorKyAgICAgICAgZmkKKysgICAgICAgIF0sCisrICAgICAgICBbd2FudF9t eXNxbD0ieWVzIgorKwlNWVNRTF9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9v cHQiXQorKyAgICApCisrCisrICAgIE1ZU1FMX0NGTEFHUz0iIgorKyAgICBNWVNRTF9MREZMQUdT PSIiCisrICAgIE1ZU1FMX1ZFUlNJT049IiIKKysKKysgICAgZG5sCisrICAgIGRubCBDaGVjayBN eVNRTCBsaWJyYXJpZXMgKGxpYm15c3FsY2xpZW50KQorKyAgICBkbmwKKysgICAgCisrICAgIGlm IHRlc3QgIiR3YW50X215c3FsIiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0IC16 ICIkTVlTUUxfQ09ORklHIiAtbyB0ZXN0OyB0aGVuCisrICAgICAgICAgICAgQUNfUEFUSF9QUk9H KFtNWVNRTF9DT05GSUddLCBbbXlzcWxfY29uZmlnXSwgW10pCisrICAgICAgICBmaQorKworKyAg ICAgICAgZG5sIE1ZU1FMX0NPTkZJRyBpcyBwcm92aWRlZCBidXQgaXQgZG9lcyBub3QgcG9pbnQg dG8gZXhlY3V0YWJsZSBmaWxlCisrICAgICAgICBpZiB0ZXN0ICEgLXggIiRNWVNRTF9DT05GSUci OyB0aGVuCisrICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFskTVlTUUxfQ09ORklHIGRvZXMgbm90 IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGVdKQorKyAgICAgICAgICAgIE1Z U1FMX0NPTkZJRz0ibm8iCisrICAgICAgICAgICAgZm91bmRfbXlzcWw9Im5vIgorKyAgICAgICAg ZmkKKysKKysgICAgICAgIGlmIHRlc3QgIiRNWVNRTF9DT05GSUciICE9ICJubyI7IHRoZW4KKysg ICAgICAgICAgICAjCisrICAgICAgICAgICAgIyBMb29rIGZvciBNeVNRTCBDIEFQSSBoZWFkZXJz CisrICAgICAgICAgICAgIworKyAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIE15U1FM IGluY2x1ZGUgZGlyZWN0b3J5XSkKKysgICAgICAgICAgICBNWVNRTF9pbmNkaXI9CisrICAgICAg ICAgICAgZm9yIG15c3FsX2luY19kaXIgaW4gJE1ZU1FMX2luY19jaGVjaworKyAgICAgICAgICAg IGRvCisrICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRteXNxbF9pbmNfZGlyIiBcCisrICAg ICAgICAgICAgICAgICYmIHRlc3QgLWYgIiRteXNxbF9pbmNfZGlyL215c3FsL215c3FsLmgiCisr ICAgICAgICAgICAgICAgIHRoZW4KKysgICAgICAgICAgICAgICAgICAgIE1ZU1FMX2luY2Rpcj0k bXlzcWxfaW5jX2RpcgorKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAgICAg ICAgZmkKKysgICAgICAgICAgICBkb25lCisrCisrICAgICAgICAgICAgaWYgdGVzdCAteiAiJE1Z U1FMX2luY2RpciIKKysgICAgICAgICAgICB0aGVuCisrICAgICAgICAgICAgICAgIEFDX01TR19F UlJPUihbRGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1ZGUgZGlyIGluICckTVlTUUxfaW5jX2No ZWNrJ10pCisrICAgICAgICAgICAgZmkKKysKKysgICAgICAgICAgICBjYXNlICIkTVlTUUxfaW5j ZGlyIiBpbgorKyAgICAgICAgICAgICAgICAvKiApIDs7CisrICAgICAgICAgICAgICAgICogKSAg QUNfTVNHX0VSUk9SKFtUaGUgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIp IG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OworKyAgICAgICAgICAgIGVzYWMKKysKKysg ICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFskTVlTUUxfaW5jZGlyXSkKKysKKysgICAgICAgICAg ICBpZiB0ZXN0ICIkTVlTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCisrICAgICAg ICAgICAgICBNWVNRTF9DRkxBR1M9IiIKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAg ICBNWVNRTF9DRkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgorKyAgICAgICAgICAgIGZpCisrCisr ICAgICAgICAgICAgTVlTUUxfTERGTEFHUz0iYCRNWVNRTF9DT05GSUcgLS1saWJzYCIKKysKKysg ICAgICAgICAgICBNWVNRTF9WRVJTSU9OPWAkTVlTUUxfQ09ORklHIC0tdmVyc2lvbmAKKysKKysg ICAgICAgICAgICBBQ19ERUZJTkUoW0hBVkVfTVlTUUxdLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiBN eVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCisrICAgICAgICAgICAgCisrICAgICAgICAg ICAgZm91bmRfbXlzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBmb3VuZF9t eXNxbD0ibm8iCisrICAgICAgICBmaQorKyAgICBmaQorKworKyAgICBkbmwKKysgICAgZG5sIENo ZWNrIGlmIHJlcXVpcmVkIHZlcnNpb24gb2YgTXlTUUwgaXMgYXZhaWxhYmxlCisrICAgIGRubAor KyAgICAKKysKKysgICAgbXlzcWxfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQx XSkKKysKKysgICAgaWYgdGVzdCAiJGZvdW5kX215c3FsIiA9ICJ5ZXMiIC1hIC1uICIkbXlzcWxf dmVyc2lvbl9yZXEiOyB0aGVuCisrCisrICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIE15U1FM IHZlcnNpb24gaXMgPj0gJG15c3FsX3ZlcnNpb25fcmVxXSkKKysKKysgICAgICAgIGRubCBEZWNv bXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgTXlTUUwKKysgICAgICAgIGRubCBhbmQg Y2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KKysgICAgICAgIG15c3FsX3ZlcnNp b25fcmVxX21ham9yPWBleHByICRteXNxbF92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXCknYAor KyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVx IDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFf bWljcm89YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChb WzAtOV1dKlwpJ2AKKysgICAgICAgIGlmIHRlc3QgIngkbXlzcWxfdmVyc2lvbl9yZXFfbWljcm8i ID0gIngiOyB0aGVuCisrICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCisr ICAgICAgICBmaQorKworKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRt eXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3JlcV9t aWNyb2AKKysKKysgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5zdGFs bGVkIE15U1FMCisrICAgICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2Vu dGF0aW9uCisrICAgICAgICBteXNxbF92ZXJzaW9uX21ham9yPWBleHByICRNWVNRTF9WRVJTSU9O IDogJ1woW1swLTldXSpcKSdgCisrICAgICAgICBteXNxbF92ZXJzaW9uX21pbm9yPWBleHByICRN WVNRTF9WRVJTSU9OIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKyAgICAgICAgbXlzcWxf dmVyc2lvbl9taWNybz1gZXhwciAkTVlTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuW1swLTldXSpc LlwoW1swLTldXSpcKSdgCisrICAgICAgICBpZiB0ZXN0ICJ4JG15c3FsX3ZlcnNpb25fbWljcm8i ID0gIngiOyB0aGVuCisrICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz0iMCIKKysgICAg ICAgIGZpCisrCisrICAgICAgICBteXNxbF92ZXJzaW9uX251bWJlcj1gZXhwciAkbXlzcWxfdmVy c2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwrICRteXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXCsgJG15c3FsX3ZlcnNpb25fbWljcm9gCisrCisrICAgICAgICBt eXNxbF92ZXJzaW9uX2NoZWNrPWBleHByICRteXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRteXNx bF92ZXJzaW9uX3JlcV9udW1iZXJgCisrICAgICAgICBpZiB0ZXN0ICIkbXlzcWxfdmVyc2lvbl9j aGVjayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQorKyAg ICAgICAgZWxzZQorKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKKysgICAgICAgIGZp CisrICAgIGZpCisrCisrICAgIEFDX1NVQlNUKFtNWVNRTF9WRVJTSU9OXSkKKysgICAgQUNfU1VC U1QoW01ZU1FMX0NGTEFHU10pCisrICAgIEFDX1NVQlNUKFtNWVNRTF9MREZMQUdTXSkKKytdKQor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IHNvY2kt My4wLjBfdHJlcDMwMC9jb25maWcvYXhfb3JhY2xlX29jaS5tNAorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTIw MDktMDQtMTYgMTk6Mzc6MjMuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDI4NiBAQAorK2Ru bCAkSWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxvc2tv dCBFeHAgJAorK2RubAorK2RubCBAc3lub3BzaXMgQVhfTElCX09SQUNMRV9PQ0koW01JTklNVU0t VkVSU0lPTl0pCisrZG5sCisrZG5sIFRoaXMgbWFjcm8gcHJvdmlkZXMgdGVzdHMgb2YgYXZhaWxh YmlsaXR5IG9mIE9yYWNsZSBPQ0kgQVBJCisrZG5sIG9mIHBhcnRpY3VsYXIgdmVyc2lvbiBvciBu ZXdlci4KKytkbmwgVGhpcyBtYWNyb3MgY2hlY2tzIGZvciBPcmFjbGUgT0NJIGhlYWRlcnMgYW5k IGxpYnJhcmllcyAKKytkbmwgYW5kIGRlZmluZXMgY29tcGlsYXRpb24gZmxhZ3MKKytkbmwgCisr ZG5sIE1hY3JvIHN1cHBvcnRzIGZvbGxvd2luZyBvcHRpb25zIGFuZCB0aGVpciB2YWx1ZXM6Cisr ZG5sIDEpIFNpbmdsZS1vcHRpb24gdXNhZ2U6CisrZG5sIC0td2l0aC1vcmFjbGUgLSBwYXRoIHRv IE9SQUNMRV9IT01FIGRpcmVjdG9yeQorK2RubCAyKSBUd28tb3B0aW9ucyB1c2FnZSAoYm90aCBv cHRpb25zIGFyZSByZXF1aXJlZCk6CisrZG5sIC0td2l0aC1vcmFjbGUtaW5jbHVkZSAtIHBhdGgg dG8gZGlyZWN0b3J5IHdpdGggT0NJIGhlYWRlcnMKKytkbmwgLS13aXRoLW9yYWNsZS1saWIgLSBw YXRoIHRvIGRpcmVjdG9yeSB3aXRoIE9DSSBsaWJyYXJpZXMgCisrZG5sCisrZG5sIE5PVEU6IFRo ZXNlIG9wdGlvbnMgZGVzY3JpYmVkIGFib3ZlIGRvZXMgbm90IHRha2UgeWVzfG5vIHZhbHVlcy4K KytkbmwgSWYgJ3llcycgdmFsdWUgaXMgcGFzc2VkLCB0aGVuIFdBUk5JTkcgbWVzc2FnZSB3aWxs IGJlIGRpc3BsYXllZCwKKytkbmwgJ25vJyB2YWx1ZSwgYXMgd2VsbCBhcyB0aGUgLS13aXRob3V0 LW9yYWNsZSogdmFyaWF0aW9ucyB3aWxsIGNhdXNlCisrZG5sIHRoZSBtYWNybyB3b24ndCBjaGVj ayBlbnl0aGluZy4KKytkbmwKKytkbmwgVGhpcyBtYWNybyBjYWxsczoKKytkbmwKKytkbmwgICBB Q19TVUJTVChPUkFDTEVfT0NJX0NGTEFHUykKKytkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJX0xE RkxBR1MpCisrZG5sICAgQUNfU1VCU1QoT1JBQ0xFX09DSV9WRVJTSU9OKQorK2RubAorK2RubCBB bmQgc2V0czoKKytkbmwKKytkbmwgICBIQVZFX09SQUNMRQorK2RubAorK2RubCBAY2F0ZWdvcnkg SW5zdGFsbGVkUGFja2FnZXMKKytkbmwgQGNhdGVnb3J5IEN4eAorK2RubCBAYXV0aG9yIE1hdGV1 c3ogTG9za290IDxtYXRldXN6QGxvc2tvdC5uZXQ+CisrZG5sIEB2ZXJzaW9uICREYXRlOiAyMDA4 LzA0LzI4IDE5OjU4OjU0ICQKKytkbmwgQGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQorK2RubAorK2Ru bCAkSWQ6IGF4X29yYWNsZV9vY2kubTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxvc2tv dCBFeHAgJAorK2RubAorK0FDX0RFRlVOKFtBWF9MSUJfT1JBQ0xFX09DSV0sCisrWworKyAgICBB Q19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pCisrICAgIEFDX0FSR19XSVRIKFtvcmFjbGVd LAorKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1vcmFjbGU9QDw6QERJUkA6PkBdLAor KyAgICAgICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgZnJvbSBnaXZlbiBwYXRoIHRvIE9yYWNs ZSBob21lIGRpcmVjdG9yeV0KKysgICAgICAgICksCisrICAgICAgICBbCisrICAgICAgICBpZiB0 ZXN0ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRP UkFDTEVfSE9NRSI7IHRoZW4KKysgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JB Q0xFX0hPTUUiCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9t ZV9kaXI9IiIKKysgICAgICAgICAgICBmaSAKKysgICAgICAgIGZpCisrICAgICAgICBdLAorKyAg ICAgICAgWworKyAgICAgICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgorKyAgICAg ICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iJE9SQUNMRV9IT01FIgorKyAgICAgICAgZWxzZQorKyAg ICAgICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgorKyAgICAgICAgZmkgCisrICAgICAgICBdCisr ICAgICkKKysKKysgICAgQUNfQVJHX1dJVEgoW29yYWNsZS1pbmNsdWRlXSwKKysgICAgICAgIEFD X0hFTFBfU1RSSU5HKFstLXdpdGgtb3JhY2xlLWluY2x1ZGU9QDw6QERJUkA6PkBdLAorKyAgICAg ICAgICAgIFt1c2UgT3JhY2xlIE9DSSBBUEkgaGVhZGVycyBmcm9tIGdpdmVuIHBhdGhdCisrICAg ICAgICApLAorKyAgICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIkd2l0aHZhbCJdLAor KyAgICAgICAgW29yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIiXQorKyAgICApCisrICAgIEFDX0FS R19XSVRIKFtvcmFjbGUtbGliXSwKKysgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtb3Jh Y2xlLWxpYj1APDpARElSQDo+QF0sCisrICAgICAgICAgICAgW3VzZSBPcmFjbGUgT0NJIEFQSSBs aWJyYXJpZXMgZnJvbSBnaXZlbiBwYXRoXQorKyAgICAgICAgKSwKKysgICAgICAgIFtvcmFjbGVf aG9tZV9saWJfZGlyPSIkd2l0aHZhbCJdLAorKyAgICAgICAgW29yYWNsZV9ob21lX2xpYl9kaXI9 IiJdCisrICAgICkKKysKKysgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiIKKysgICAgT1JBQ0xFX09D SV9MREZMQUdTPSIiCisrICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iIgorKworKyAgICBkbmwKKysg ICAgZG5sIENvbGxlY3QgaW5jbHVkZS9saWIgcGF0aHMKKysgICAgZG5sIAorKyAgICB3YW50X29y YWNsZV9idXRfbm9fcGF0aD0ibm8iCisrCisrICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9k aXIiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAibm8i IC1hICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIGRubCBP UkFDTEVfSE9NRSBwYXRoIHByb3ZpZGVkCisrICAgICAgICAgICAgCisrICAgICAgICAgICAgZG5s IFByaW1hcnkgcGF0aCB0byBPQ0kgaGVhZGVycywgYXZhaWxhYmxlIGluIE9yYWNsZT49MTAKKysg ICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvcHVi bGljIgorKyAgICAgICAgICAgIAorKyAgICAgICAgICAgIGRubCBTZWNvbmRhcnkgcGF0aCB0byBP Q0kgaGVhZGVycyB1c2VkIGJ5IG9sZGVyIHZlcnNpb25zCisrICAgICAgICAgICAgb3JhY2xlX2lu Y2x1ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9kZW1vIgorKworKyAgICAgICAgICAg IGRubCBMaWJyYXJ5IHBhdGgKKysgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9o b21lX2Rpci9saWIiCisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiID0gInll cyI7IHRoZW4KKysgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgorKyAg ICAgICAgZmkKKysKKysgICAgZWxpZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIi IC1vIC1uICIkb3JhY2xlX2hvbWVfbGliX2RpciI7IHRoZW4KKysKKysgICAgICAgIGlmIHRlc3Qg IiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2luY2x1 ZGVfZGlyIiAhPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0i JG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hv bWVfaW5jbHVkZV9kaXIiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICB3YW50X29yYWNsZV9i dXRfbm9fcGF0aD0ieWVzIgorKyAgICAgICAgZmkKKysKKysgICAgICAgIGlmIHRlc3QgIiRvcmFj bGVfaG9tZV9saWJfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gInll cyI7IHRoZW4KKysgICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2xpYl9k aXIiCisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiA9ICJ5ZXMiOyB0 aGVuCisrICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKKysgICAgICAg IGZpCisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgIiR3YW50X29yYWNsZV9idXRfbm9fcGF0aCIg PSAieWVzIjsgdGhlbgorKyAgICAgICAgQUNfTVNHX1dBUk4oW09yYWNsZSBzdXBwb3J0IGlzIHJl cXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAorK1BsZWFz ZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwKKyst LXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuXSkKKysg ICAgZmkKKysKKysgICAgZG5sCisrICAgIGRubCBDaGVjayBPQ0kgZmlsZXMKKysgICAgZG5sCisr ICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIiIC1hIC1uICIkb3JhY2xlX2xpYl9k aXIiOyB0aGVuCisrCisrICAgICAgICBzYXZlZF9DUFBGTEFHUz0iJENQUEZMQUdTIgorKyAgICAg ICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIiCisrCisrICAgICAg ICBkbmwgQWRkaXRpb25hbCBwYXRoIGZvciBvbGRlciBPcmFjbGUgaW5zdGFsbGF0aW9ucyAKKysg ICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgorKyAgICAgICAg ICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyMiIKKysgICAgICAg IGZpCisrCisrICAgICAgICAjIEZpZ3VyZSBvdXQgaWYgd2UgYXJlIGJ1aWxkaW5nIG9uIHdpbjMy LgorKyAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgICAgICAgICptaW5ndzMyKiApIFdJ TjMyPXllcyA7OworKyAgICAgICAgICAgICpjeWd3aW4qICkgIFdJTjMyPXllcyA7OworKyAgICAg ICAgICAgICopIFdJTjMyPW5vIDs7CisrICAgICAgICBlc2FjCisrCisrICAgICAgICBpZiB0ZXN0 ICIkV0lOMzIiID0gIm5vIgorKyAgICAgICAgdGhlbgorKyAgICAgICAgICAgIG9jaV9saWJzPSIt bGNsbnRzaCAtbG5uejExIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIG9jaV9saWJzPSIt bG9jaSIKKysgICAgICAgIGZpCisrCisrICAgICAgICBzYXZlZF9MREZMQUdTPSIkTERGTEFHUyIK KysgICAgICAgIHNhdmVkX0xJQlM9IiRMSUJTIgorKyAgICAgICAgb2NpX2xkZmxhZ3M9Ii1MJG9y YWNsZV9saWJfZGlyIgorKyAgICAgICAgTERGTEFHUz0iJExERkxBR1MgJG9jaV9sZGZsYWdzIgor KyAgICAgICAgTElCUz0iJExJQlMgJG9jaV9saWJzIgorKworKyAgICAgICAgZG5sCisrICAgICAg ICBkbmwgQ2hlY2sgT0NJIGhlYWRlcnMKKysgICAgICAgIGRubAorKyAgICAgICAgQUNfTVNHX0NI RUNLSU5HKFtmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXJdKQor KworKyAgICAgICAgQUNfTEFOR19QVVNIKEMrKykKKysgICAgICAgIEFDX0NPTVBJTEVfSUZFTFNF KFsKKysgICAgICAgICAgICBBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8b2NpLmg+XV0s CisrICAgICAgICAgICAgICAgIFtbCisrI2lmIGRlZmluZWQoT0NJX01BSk9SX1ZFUlNJT04pCisr I2lmIE9DSV9NQUpPUl9WRVJTSU9OID09IDEwICYmIE9DSV9NSU5PUl9WRVJTSU9OID09IDIKKysv LyBPcmFjbGUgMTAuMiBkZXRlY3RlZAorKyNlbmRpZgorKyNlbGlmIGRlZmluZWQoT0NJX1Y3X1NZ TlRBWCkKKysvLyBPSywgb2xkZXIgT3JhY2xlIGRldGVjdGVkCisrLy8gVE9ETyAtIG1sb3Nrb3Q6 IGZpbmQgYmV0dGVyIG1hY3JvIHRvIGNoZWNrIGZvciBvbGRlciB2ZXJzaW9uczsgCisrI2Vsc2UK KysjICBlcnJvciBPcmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAorKyNlbmRpZgorKyAgICAg ICAgICAgICAgICBdXQorKyAgICAgICAgICAgICldLAorKyAgICAgICAgICAgIFsKKysgICAgICAg ICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgorKworKyAgICAg ICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgorKyAgICAgICAg ICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iJE9SQUNMRV9PQ0lfQ0ZMQUdTIC1JJG9yYWNsZV9p bmNsdWRlX2RpcjIiCisrICAgICAgICAgICAgZmkKKysKKysgICAgICAgICAgICBvY2lfaGVhZGVy X2ZvdW5kPSJ5ZXMiCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKysgICAgICAg ICAgICBdLAorKyAgICAgICAgICAgIFsKKysgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJu byIKKysgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub3QgZm91bmRdKQorKyAgICAgICAgICAg IF0KKysgICAgICAgICkKKysgICAgICAgIEFDX0xBTkdfUE9QKFtDKytdKQorKyAgICAgICAgCisr ICAgICAgICBkbmwKKysgICAgICAgIGRubCBDaGVjayBPQ0kgbGlicmFyaWVzCisrICAgICAgICBk bmwKKysgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCisr CisrICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgT3JhY2xlIE9DSSBsaWJyYXJpZXMg aW4gJG9yYWNsZV9saWJfZGlyXSkKKysKKysgICAgICAgICAgICBBQ19MQU5HX1BVU0goQysrKQor KyAgICAgICAgICAgIEFDX0xJTktfSUZFTFNFKFsKKysgICAgICAgICAgICAgICAgQUNfTEFOR19Q Uk9HUkFNKFtbQCU6QGluY2x1ZGUgPG9jaS5oPl1dLAorKyAgICAgICAgICAgICAgICAgICAgW1sK KytPQ0lFbnYqIGVudmggPSAwOworK09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAs IDAsIDAsIDAsIDAsIDApOworK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQ RV9FTlYpOworKyAgICAgICAgICAgICAgICAgICAgXV0KKysgICAgICAgICAgICAgICAgKV0sCisr ICAgICAgICAgICAgICAgIFsKKysgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIk b2NpX2xkZmxhZ3MgJG9jaV9saWJzIgorKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5 ZXMiCisrICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCisrICAgICAgICAgICAg ICAgIF0sCisrICAgICAgICAgICAgICAgIFsKKysgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3Vu ZD0ibm8iCisrICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vdCBmb3VuZF0pCisrICAg ICAgICAgICAgICAgIF0KKysgICAgICAgICAgICApCisrICAgICAgICAgICAgQUNfTEFOR19QT1Ao W0MrK10pCisrICAgICAgICBmaQorKworKyAgICAgICAgQ1BQRkxBR1M9IiRzYXZlZF9DUFBGTEFH UyIKKysgICAgICAgIExERkxBR1M9IiRzYXZlZF9MREZMQUdTIgorKyAgICAgICAgTElCUz0iJHNh dmVkX0xJQlMiCisrICAgIGZpCisrCisrICAgIGRubAorKyAgICBkbmwgQ2hlY2sgcmVxdWlyZWQg dmVyc2lvbiBvZiBPcmFjbGUgaXMgYXZhaWxhYmxlCisrICAgIGRubAorKyAgICBvcmFjbGVfdmVy c2lvbl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKKysKKysgICAgaWYgdGVzdCAiJG9j aV9oZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lfbGliX2ZvdW5kIiA9ICJ5ZXMiIC1hIFwK KysgICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhlbgorKworKyAgICAgICAgb3Jh Y2xlX3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01BSk9SX1ZFUlNJ T04uKicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmlu ZSBPQ0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAgICAgb3JhY2xlX3ZlcnNp b25fbWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01JTk9SX1ZFUlNJT04uKicgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUlO T1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAt ZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBP cmFjbGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcV0pCisrCisrICAgICAg ICBpZiB0ZXN0IC1uICIkb3JhY2xlX3ZlcnNpb25fbWFqb3IiIC1hIC1uICQib3JhY2xlX3ZlcnNp b25fbWlub3IiOyB0aGVuCisrCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIkb3Jh Y2xlX3ZlcnNpb25fbWFqb3IuJG9yYWNsZV92ZXJzaW9uX21pbm9yIgorKworKyAgICAgICAgICAg IGRubCBEZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgT3JhY2xlCisrICAgICAg ICAgICAgZG5sIGFuZCBjYWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbgorKyAgICAg ICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVx IDogJ1woW1swLTldXSpcKSdgCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9y PWBleHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisr CisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkb3JhY2xlX3Zl cnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMGAKKysKKysg ICAgICAgICAgICBkbmwgQ2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24gCisrICAg ICAgICAgICAgb3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9tYWpv ciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9y YWNsZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBgCisrCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNp b25fY2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lv bl9yZXFfbnVtYmVyYAorKyAgICAgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVj ayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKysg ICAgICAgICAgICAgICAgQUNfREVGSU5FKEhBVkVfT1JBQ0xFLCBbMV0sIFtEZWZpbmUgdG8gMSBp ZiB0aGUgT3JhY2xlIE9DSSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrICAgICAgICAgICAgZWxz ZQorKyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCisrICAgICAgICAgICAgICAg IEFDX01TR19FUlJPUihbT3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1dCByZXF1 aXJlZCB2ZXJzaW9uIGlzICRvcmFjbGVfdmVyc2lvbl9yZXFdKQorKyAgICAgICAgICAgIGZpCisr ICAgICAgICBlbHNlCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgor KyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKKysgICAgICAgICAgICBBQ19NU0dfV0FS TihbT3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBp cyBhdmFpbGFibGVdKQorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysgICAgQUNfU1VCU1QoW09S QUNMRV9PQ0lfVkVSU0lPTl0pCisrICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0NGTEFHU10pCisr ICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0xERkxBR1NdKQorK10pCitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2Nv bmZpZy9heF9wb3N0Z3Jlc3FsLm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X3Bv c3RncmVzcWwubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMjAwOS0wNC0xOCAxODoyMjoz Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTcxIEBACisrZG5sICRJZDogYXhfcG9zdGdy ZXNxbC5tNCx2IDEuMyAyMDA3LzA2LzIzIDAxOjUxOjIyIG1sb3Nrb3QgRXhwICQKKytkbmwKKytk bmwgQHN5bm9wc2lzIEFYX0xJQl9QT1NUR1JFU1FMKFtNSU5JTVVNLVZFUlNJT05dKQorK2RubAor K2RubCBUaGlzIG1hY3JvIHByb3ZpZGVzIHRlc3RzIG9mIGF2YWlsYWJpbGl0eSBvZiBQb3N0Z3Jl U1FMICdsaWJwcScgbGlicmFyeQorK2RubCBvZiBwYXJ0aWN1bGFyIHZlcnNpb24gb3IgbmV3ZXIu CisrZG5sIAorK2RubCBBWF9MSUJfUE9TVEdSRVNRTCBtYWNybyB0YWtlcyBvbmx5IG9uZSBhcmd1 bWVudCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUgaXMgbm8gCisrZG5sIHJlcXVpcmVkIHZl cnNpb24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2ZXJzaW9uIHRlc3QuCisrZG5s CisrZG5sIFRoZSAtLXdpdGgtcG9zdGdyZXNxbCBvcHRpb24gdGFrZXMgb25lIG9mIHRocmVlIHBv c3NpYmxlIHZhbHVlczoKKytkbmwgbm8gICAtIGRvIG5vdCBjaGVjayBmb3IgUG9zdGdyZVNRTCBj bGllbnQgbGlicmFyeQorK2RubCB5ZXMgIC0gZG8gY2hlY2sgZm9yIFBvc3RncmVTUUwgbGlicmFy eSBpbiBzdGFuZGFyZCBsb2NhdGlvbnMKKytkbmwgICAgICAgIChwZ19jb25maWcgc2hvdWxkIGJl IGluIHRoZSBQQVRIKQorK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0byBwZ19jb25maWcgdXRp bGl0eSwgdXNlIHRoaXMgb3B0aW9uCisrZG5sICAgICAgICBpZiBwZ19jb25maWcgY2FuJ3QgYmUg Zm91bmQgaW4gdGhlIFBBVEgKKytkbmwKKytkbmwgVGhpcyBtYWNybyBjYWxsczoKKytkbmwKKytk bmwgICBBQ19TVUJTVChQT1NUR1JFU1FMX0NGTEFHUykKKytkbmwgICBBQ19TVUJTVChQT1NUR1JF U1FMX0xERkxBR1MpCisrZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9WRVJTSU9OKQorK2RubAor K2RubCBBbmQgc2V0czoKKytkbmwKKytkbmwgICBIQVZFX1BPU1RHUkVTUUwKKytkbmwKKytkbmwg QGNhdGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCisrZG5sIEBjYXRlZ29yeSBDeHgKKytkbmwgQGF1 dGhvciBNYXRldXN6IExvc2tvdCA8bWF0ZXVzekBsb3Nrb3QubmV0PgorK2RubCBAdmVyc2lvbiAk RGF0ZTogMjAwNy8wNi8yMyAwMTo1MToyMiAkCisrZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3NpdmUK KytkbmwKKytkbmwgJElkOiBheF9wb3N0Z3Jlc3FsLm00LHYgMS4zIDIwMDcvMDYvMjMgMDE6NTE6 MjIgbWxvc2tvdCBFeHAgJAorK2RubAorK0FDX0RFRlVOKFtBWF9MSUJfUE9TVEdSRVNRTF0sCisr WworKyAgICBBQ19BUkdfV0lUSChbcG9zdGdyZXNxbF0sCisrICAgICAgICBBQ19IRUxQX1NUUklO RyhbLS13aXRoLXBvc3RncmVzcWw9QDw6QEFSR0A6PkBdLAorKyAgICAgICAgICAgIFt1c2UgUG9z dGdyZVNRTCBsaWJyYXJ5IEA8OkBkZWZhdWx0PXllc0A6PkAsIG9wdGlvbmFsbHkgc3BlY2lmeSBw YXRoIHRvIHBnX2NvbmZpZ10KKysgICAgICAgICksCisrICAgICAgICBbCisrCVBPU1RHUkVTUUxf aW5jX2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCisrICAgICAgICBpZiB0ZXN0ICIk d2l0aHZhbCIgPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJubyIK KysgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAgICAgICAg ICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICB3YW50 X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgorKyAg ICAgICAgZmkKKysgICAgICAgIF0sCisrICAgICAgICBbd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisr CVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0Il0KKysg ICAgKQorKworKyAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgorKyAgICBQT1NUR1JFU1FMX0xERkxB R1M9IiIKKysgICAgUE9TVEdSRVNRTF9QT1NUR1JFU1FMPSIiCisrCisrICAgIGRubAorKyAgICBk bmwgQ2hlY2sgUG9zdGdyZVNRTCBsaWJyYXJpZXMgKGxpYnBxKQorKyAgICBkbmwKKysgICAgCisr ICAgIGlmIHRlc3QgIiR3YW50X3Bvc3RncmVzcWwiID0gInllcyI7IHRoZW4KKysKKysgICAgICAg IGlmIHRlc3QgLXogIiRQR19DT05GSUciIC1vIHRlc3Q7IHRoZW4KKysgICAgICAgICAgICBBQ19Q QVRIX1BST0coW1BHX0NPTkZJR10sIFtwZ19jb25maWddLCBbXSkKKysgICAgICAgIGZpCisrCisr ICAgICAgICBpZiB0ZXN0ICEgLXggIiRQR19DT05GSUciOyB0aGVuCisrICAgICAgICAgICAgQUNf TVNHX0VSUk9SKFskUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVj dHVhYmxlIGZpbGVdKQorKyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCisrICAgICAgICAgICAg Zm91bmRfcG9zdGdyZXNxbD0ibm8iCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVzdCAi JFBHX0NPTkZJRyIgIT0gIm5vIjsgdGhlbgorKyAgICAgICAgICAgICMKKysgICAgICAgICAgICAj IExvb2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVycworKyAgICAgICAgICAgICMKKysgICAg ICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5 XSkKKysgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KKysgICAgICAgICAgICBmb3IgcG9z dGdyZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVjaworKyAgICAgICAgICAgIGRv CisrICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKKysg ICAgICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19l eHQuaCIKKysgICAgICAgICAgICAgICAgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgUE9TVEdS RVNRTF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2RpcgorKyAgICAgICAgICAgICAgICAgICAgYnJl YWsKKysgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICBkb25lCisrCisrICAgICAgICAg ICAgaWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5jZGlyIgorKyAgICAgICAgICAgIHRoZW4KKysg ICAgICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNxbCBp bmNsdWRlIGRpciBpbiAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJ10pCisrICAgICAgICAgICAgZmkK KysKKysgICAgICAgICAgICBjYXNlICIkUE9TVEdSRVNRTF9pbmNkaXIiIGluCisrICAgICAgICAg ICAgICAgIC8qICkgOzsKKysgICAgICAgICAgICAgICAgKiApICBBQ19NU0dfRVJST1IoW1RoZSBQ b3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUg YW4gYWJzb2x1dGUgcGF0aC5dKSA7OworKyAgICAgICAgICAgIGVzYWMKKysKKysgICAgICAgICAg ICBBQ19NU0dfUkVTVUxUKFskUE9TVEdSRVNRTF9pbmNkaXJdKQorKworKyAgICAgICAgICAgIGlm IHRlc3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgorKyAgICAg ICAgICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKKysgICAgICAgICAgICBlbHNlCisrICAgICAg ICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxfaW5jZGlyfSIKKysgICAg ICAgICAgICBmaQorKworKyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iLUxgJFBHX0NP TkZJRyAtLWxpYmRpcmAgLWxwcSIKKysKKysgICAgICAgICAgICBQT1NUR1JFU1FMX1ZFUlNJT049 YCRQR19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVTUUwgIyMnYAorKworKyAg ICAgICAgICAgIEFDX0RFRklORShbSEFWRV9QT1NUR1JFU1FMXSwgWzFdLCBbRGVmaW5lIHRvIDEg aWYgUG9zdGdyZVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCisrICAgICAgICAgICAgCisr ICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgorKyAgICAgICAgZWxzZQorKyAgICAg ICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysg ICAgZG5sCisrICAgIGRubCBDaGVjayBpZiByZXF1aXJlZCB2ZXJzaW9uIG9mIFBvc3RncmVTUUwg aXMgYXZhaWxhYmxlCisrICAgIGRubAorKyAgICAKKysKKysgICAgcG9zdGdyZXNxbF92ZXJzaW9u X3JlcT1pZmVsc2UoWyQxXSwgW10sIFtdLCBbJDFdKQorKworKyAgICBpZiB0ZXN0ICIkZm91bmRf cG9zdGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEiOyB0aGVu CisrCisrICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIFBvc3RncmVTUUwgdmVyc2lvbiBpcyA+ PSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV0pCisrCisrICAgICAgICBkbmwgRGVjb21wb3NlIHJl cXVpcmVkIHZlcnNpb24gc3RyaW5nIG9mIFBvc3RncmVTUUwKKysgICAgICAgIGRubCBhbmQgY2Fs Y3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KKysgICAgICAgIHBvc3RncmVzcWxfdmVy c2lvbl9yZXFfbWFqb3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1d KlwpJ2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJHBvc3Rn cmVzcWxfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisrICAgICAgICBw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVx IDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysgICAgICAgIGlmIHRlc3Qg IngkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRoZW4KKysgICAgICAgICAg ICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPSIwIgorKyAgICAgICAgZmkKKysKKysgICAg ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMCBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9t aWNyb2AKKysKKysgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5zdGFs bGVkIFBvc3RncmVTUUwKKysgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVw cmVzZW50YXRpb24KKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvcj1gZXhwciAkUE9T VEdSRVNRTF9WRVJTSU9OIDogJ1woW1swLTldXSpcKSdgCisrICAgICAgICBwb3N0Z3Jlc3FsX3Zl cnNpb25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuXChbWzAt OV1dKlwpJ2AKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkUE9TVEdS RVNRTF9WRVJTSU9OIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysgICAg ICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgorKyAg ICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIKKysgICAgICAgIGZpCisrCisr ICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNp b25fbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taWNyb2AKKysKKysg ICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9u X251bWJlciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcmAKKysgICAgICAgIGlm IHRlc3QgIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCisrICAgICAgICAg ICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBBQ19N U0dfUkVTVUxUKFtub10pCisrICAgICAgICBmaQorKyAgICBmaQorKworKyAgICBBQ19TVUJTVChb UE9TVEdSRVNRTF9WRVJTSU9OXSkKKysgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfQ0ZMQUdTXSkK KysgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfTERGTEFHU10pCisrXSkKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLmd1ZXNzIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25m aWcvY29uZmlnLmd1ZXNzCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NvbmZpZy5ndWVz cwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9jb25maWcvY29uZmlnLmd1ZXNzCTIwMDktMDUtMDMgMDA6MjA6NDQuMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDE1MjYgQEAKKysjISAvYmluL3NoCisrIyBBdHRlbXB0IHRvIGd1ZXNz IGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lLgorKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMs IDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCisrIyAgIDIwMDAsIDIwMDEsIDIw MDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgKKysjICAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrdGltZXN0YW1wPScyMDA4LTAxLTA4JworKworKyMgVGhp cyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkgaXQKKysjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisrIyBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor KyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl ZSBTb2Z0d2FyZQorKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlm dGggRmxvb3IsIEJvc3RvbiwgTUEKKysjIDAyMTEwLTEzMDEsIFVTQS4KKysjCisrIyBBcyBhIHNw ZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91 CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRh aW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91 IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhh dCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisrCisrCisrIyBPcmlnaW5h bGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIgPHBlckBib3RobmVyLmNvbT4uCisrIyBQbGVhc2Ug c2VuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4gIFN1Ym1pdCBhIGNvbnRl eHQKKysjIGRpZmYgYW5kIGEgcHJvcGVybHkgZm9ybWF0dGVkIENoYW5nZUxvZyBlbnRyeS4KKysj CisrIyBUaGlzIHNjcmlwdCBhdHRlbXB0cyB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFt ZSBzaW1pbGFyIHRvCisrIyBjb25maWcuc3ViLiAgSWYgaXQgc3VjY2VlZHMsIGl0IHByaW50cyB0 aGUgc3lzdGVtIG5hbWUgb24gc3Rkb3V0LCBhbmQKKysjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lz ZSwgaXQgZXhpdHMgd2l0aCAxLgorKyMKKysjIFRoZSBwbGFuIGlzIHRoYXQgdGhpcyBjYW4gYmUg Y2FsbGVkIGJ5IGNvbmZpZ3VyZSBzY3JpcHRzIGlmIHlvdQorKyMgZG9uJ3Qgc3BlY2lmeSBhbiBl eHBsaWNpdCBidWlsZCBzeXN0ZW0gdHlwZS4KKysKKyttZT1gZWNobyAiJDAiIHwgc2VkIC1lICdz LC4qLywsJ2AKKysKKyt1c2FnZT0iXAorK1VzYWdlOiAkMCBbT1BUSU9OXQorKworK091dHB1dCB0 aGUgY29uZmlndXJhdGlvbiBuYW1lIG9mIHRoZSBzeXN0ZW0gXGAkbWUnIGlzIHJ1biBvbi4KKysK KytPcGVyYXRpb24gbW9kZXM6CisrICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBoZWxw LCB0aGVuIGV4aXQKKysgIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxhc3QgbW9k aWZpY2F0aW9uLCB0aGVuIGV4aXQKKysgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9u IG51bWJlciwgdGhlbiBleGl0CisrCisrUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNvbmZp Zy1wYXRjaGVzQGdudS5vcmc+LiIKKysKKyt2ZXJzaW9uPSJcCisrR05VIGNvbmZpZy5ndWVzcyAo JHRpbWVzdGFtcCkKKysKKytPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuCisrQ29w eXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5 LCAyMDAwLCAyMDAxLAorKzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrVGhpcyBpcyBmcmVlIHNvZnR3YXJl OyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KKyt3 YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4iCisrCisraGVscD0iCisrVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1v cmUgaW5mb3JtYXRpb24uIgorKworKyMgUGFyc2UgY29tbWFuZCBsaW5lCisrd2hpbGUgdGVzdCAk IyAtZ3QgMCA7IGRvCisrICBjYXNlICQxIGluCisrICAgIC0tdGltZS1zdGFtcCB8IC0tdGltZSog fCAtdCApCisrICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCA7OworKyAgICAtLXZlcnNp b24gfCAtdiApCisrICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgOzsKKysgICAgLS1oZWxw IHwgLS1oKiB8IC1oICkKKysgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OworKyAgICAtLSAp ICAgICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKKysgICAgICAgc2hpZnQ7IGJyZWFrIDs7Cisr ICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KKysgICAgICAgYnJlYWsgOzsKKysgICAgLSog KQorKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiID4mMgorKyAgICAg ICBleGl0IDEgOzsKKysgICAgKiApCisrICAgICAgIGJyZWFrIDs7CisrICBlc2FjCisrZG9uZQor KworK2lmIHRlc3QgJCMgIT0gMDsgdGhlbgorKyAgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVu dHMkaGVscCIgPiYyCisrICBleGl0IDEKKytmaQorKworK3RyYXAgJ2V4aXQgMScgMSAyIDE1Cisr CisrIyBDQ19GT1JfQlVJTEQgLS0gY29tcGlsZXIgdXNlZCBieSB0aGlzIHNjcmlwdC4gTm90ZSB0 aGF0IHRoZSB1c2Ugb2YgYQorKyMgY29tcGlsZXIgdG8gYWlkIGluIHN5c3RlbSBkZXRlY3Rpb24g aXMgZGlzY291cmFnZWQgYXMgaXQgcmVxdWlyZXMKKysjIHRlbXBvcmFyeSBmaWxlcyB0byBiZSBj cmVhdGVkIGFuZCwgYXMgeW91IGNhbiBzZWUgYmVsb3csIGl0IGlzIGEKKysjIGhlYWRhY2hlIHRv IGRlYWwgd2l0aCBpbiBhIHBvcnRhYmxlIGZhc2hpb24uCisrCisrIyBIaXN0b3JpY2FsbHksIGBD Q19GT1JfQlVJTEQnIHVzZWQgdG8gYmUgbmFtZWQgYEhPU1RfQ0MnLiBXZSBzdGlsbAorKyMgdXNl IGBIT1NUX0NDJyBpZiBkZWZpbmVkLCBidXQgaXQgaXMgZGVwcmVjYXRlZC4KKysKKysjIFBvcnRh YmxlIHRtcCBkaXJlY3RvcnkgY3JlYXRpb24gaW5zcGlyZWQgYnkgdGhlIEF1dG9jb25mIHRlYW0u CisrCisrc2V0X2NjX2Zvcl9idWlsZD0nCisrdHJhcCAiZXhpdGNvZGU9XCQ/OyAocm0gLWYgXCR0 bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGwpICYmIGV4aXQgXCRl eGl0Y29kZSIgMCA7CisrdHJhcCAicm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIg XCR0bXAgMj4vZGV2L251bGw7IGV4aXQgMSIgMSAyIDEzIDE1IDsKKys6ICR7VE1QRElSPS90bXB9 IDsKKysgeyB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIkVE1QRElSL2NnWFhYWFhYIikg Mj4vZGV2L251bGxgICYmIHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiIDsgfSB8fAor KyB7IHRlc3QgLW4gIiRSQU5ET00iICYmIHRtcD0kVE1QRElSL2NnJCQtJFJBTkRPTSAmJiAodW1h c2sgMDc3ICYmIG1rZGlyICR0bXApIDsgfSB8fAorKyB7IHRtcD0kVE1QRElSL2NnLSQkICYmICh1 bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkgJiYgZWNobyAiV2FybmluZzogY3JlYXRpbmcgaW5zZWN1 cmUgdGVtcCBkaXJlY3RvcnkiID4mMiA7IH0gfHwKKysgeyBlY2hvICIkbWU6IGNhbm5vdCBjcmVh dGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluICRUTVBESVIiID4mMiA7IGV4aXQgMSA7IH0gOwor K2R1bW15PSR0bXAvZHVtbXkgOworK3RtcGZpbGVzPSIkZHVtbXkuYyAkZHVtbXkubyAkZHVtbXku cmVsICRkdW1teSIgOworK2Nhc2UgJENDX0ZPUl9CVUlMRCwkSE9TVF9DQywkQ0MgaW4KKysgLCwp ICAgIGVjaG8gImludCB4OyIgPiAkZHVtbXkuYyA7CisrCWZvciBjIGluIGNjIGdjYyBjODkgYzk5 IDsgZG8KKysJICBpZiAoJGMgLWMgLW8gJGR1bW15Lm8gJGR1bW15LmMpID4vZGV2L251bGwgMj4m MSA7IHRoZW4KKysJICAgICBDQ19GT1JfQlVJTEQ9IiRjIjsgYnJlYWsgOworKwkgIGZpIDsKKysJ ZG9uZSA7CisrCWlmIHRlc3QgeCIkQ0NfRk9SX0JVSUxEIiA9IHggOyB0aGVuCisrCSAgQ0NfRk9S X0JVSUxEPW5vX2NvbXBpbGVyX2ZvdW5kIDsKKysJZmkKKysJOzsKKysgLCwqKSAgIENDX0ZPUl9C VUlMRD0kQ0MgOzsKKysgLCosKikgIENDX0ZPUl9CVUlMRD0kSE9TVF9DQyA7OworK2VzYWMgOyBz ZXRfY2NfZm9yX2J1aWxkPSA7JworKworKyMgVGhpcyBpcyBuZWVkZWQgdG8gZmluZCB1bmFtZSBv biBhIFB5cmFtaWQgT1N4IHdoZW4gcnVuIGluIHRoZSBCU0QgdW5pdmVyc2UuCisrIyAoZ2hhemlA bm9jLnJ1dGdlcnMuZWR1IDE5OTQtMDgtMjQpCisraWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUp ID4vZGV2L251bGwgMj4mMSA7IHRoZW4KKysJUEFUSD0kUEFUSDovLmF0dGJpbiA7IGV4cG9ydCBQ QVRICisrZmkKKysKKytVTkFNRV9NQUNISU5FPWAodW5hbWUgLW0pIDI+L2Rldi9udWxsYCB8fCBV TkFNRV9NQUNISU5FPXVua25vd24KKytVTkFNRV9SRUxFQVNFPWAodW5hbWUgLXIpIDI+L2Rldi9u dWxsYCB8fCBVTkFNRV9SRUxFQVNFPXVua25vd24KKytVTkFNRV9TWVNURU09YCh1bmFtZSAtcykg Mj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgorK1VOQU1FX1ZFUlNJT049YCh1 bmFtZSAtdikgMj4vZGV2L251bGxgIHx8IFVOQU1FX1ZFUlNJT049dW5rbm93bgorKworKyMgTm90 ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1 c2l2ZS4KKysKKytjYXNlICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1F X1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIGluCisrICAgICo6TmV0QlNEOio6KikKKysJIyBO ZXRCU0QgKG5ic2QpIHRhcmdldHMgc2hvdWxkICh3aGVyZSBhcHBsaWNhYmxlKSBtYXRjaCBvbmUg b3IKKysJIyBtb3JlIG9mIHRoZSB0dXBwbGVzOiAqLSotbmV0YnNkZWxmKiwgKi0qLW5ldGJzZGFv dXQqLAorKwkjICotKi1uZXRic2RlY29mZiogYW5kICotKi1uZXRic2QqLiAgRm9yIHRhcmdldHMg dGhhdCByZWNlbnRseQorKwkjIHN3aXRjaGVkIHRvIEVMRiwgKi0qLW5ldGJzZCogd291bGQgc2Vs ZWN0IHRoZSBvbGQKKysJIyBvYmplY3QgZmlsZSBmb3JtYXQuICBUaGlzIHByb3ZpZGVzIGJvdGgg Zm9yd2FyZAorKwkjIGNvbXBhdGliaWxpdHkgYW5kIGEgY29uc2lzdGVudCBtZWNoYW5pc20gZm9y IHNlbGVjdGluZyB0aGUKKysJIyBvYmplY3QgZmlsZSBmb3JtYXQuCisrCSMKKysJIyBOb3RlOiBO ZXRCU0QgZG9lc24ndCBwYXJ0aWN1bGFybHkgY2FyZSBhYm91dCB0aGUgdmVuZG9yCisrCSMgcG9y dGlvbiBvZiB0aGUgbmFtZS4gIFdlIGFsd2F5cyBzZXQgaXQgdG8gInVua25vd24iLgorKwlzeXNj dGw9InN5c2N0bCAtbiBody5tYWNoaW5lX2FyY2giCisrCVVOQU1FX01BQ0hJTkVfQVJDSD1gKC9z YmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAorKwkgICAgL3Vzci9zYmluLyRzeXNjdGwgMj4v ZGV2L251bGwgfHwgZWNobyB1bmtub3duKWAKKysJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9 IiBpbgorKwkgICAgYXJtZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93biA7OworKwkgICAgYXJtKikg bWFjaGluZT1hcm0tdW5rbm93biA7OworKwkgICAgc2gzZWwpIG1hY2hpbmU9c2hsLXVua25vd24g OzsKKysJICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVua25vd24gOzsKKysJICAgIHNoNWVsKSBtYWNo aW5lPXNoNWxlLXVua25vd24gOzsKKysJICAgICopIG1hY2hpbmU9JHtVTkFNRV9NQUNISU5FX0FS Q0h9LXVua25vd24gOzsKKysJZXNhYworKwkjIFRoZSBPcGVyYXRpbmcgU3lzdGVtIGluY2x1ZGlu ZyBvYmplY3QgZm9ybWF0LCBpZiBpdCBoYXMgc3dpdGNoZWQKKysJIyB0byBFTEYgcmVjZW50bHks IG9yIHdpbGwgaW4gdGhlIGZ1dHVyZS4KKysJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBp bgorKwkgICAgYXJtKnxpMzg2fG02OGt8bnMzMmt8c2gzKnxzcGFyY3x2YXgpCisrCQlldmFsICRz ZXRfY2NfZm9yX2J1aWxkCisrCQlpZiBlY2hvIF9fRUxGX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0g Mj4vZGV2L251bGwgXAorKwkJCXwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGwKKysJCXRoZW4KKysJ CSAgICAjIE9uY2UgYWxsIHV0aWxpdGllcyBjYW4gYmUgRUNPRkYgKG5ldGJzZGVjb2ZmKSBvciBh Lm91dCAobmV0YnNkYW91dCkuCisrCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBG SVg/CisrCQkgICAgb3M9bmV0YnNkCisrCQllbHNlCisrCQkgICAgb3M9bmV0YnNkZWxmCisrCQlm aQorKwkJOzsKKysJICAgICopCisrCSAgICAgICAgb3M9bmV0YnNkCisrCQk7OworKwllc2FjCisr CSMgVGhlIE9TIHJlbGVhc2UKKysJIyBEZWJpYW4gR05VL05ldEJTRCBtYWNoaW5lcyBoYXZlIGEg ZGlmZmVyZW50IHVzZXJsYW5kLCBhbmQKKysJIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJpcGxl dC4gSG93ZXZlciwgdGhleSBkbyBub3QgbmVlZAorKwkjIGtlcm5lbCB2ZXJzaW9uIGluZm9ybWF0 aW9uLCBzbyBpdCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhCisrCSMgc3VpdGFibGUgdGFnLCBpbiB0 aGUgc3R5bGUgb2YgbGludXgtZ251LgorKwljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgorKwkg ICAgRGViaWFuKikKKysJCXJlbGVhc2U9Jy1nbnUnCisrCQk7OworKwkgICAgKikKKysJCXJlbGVh c2U9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy1fXS4qL1wuLydgCisrCQk7Owor Kwllc2FjCisrCSMgU2luY2UgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdf U1lTVEVNOgorKwkjIGNvbnRhaW5zIHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0ZXIg Zm9ybToKKysJIyBDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTSBpcyB1c2Vk LgorKwllY2hvICIke21hY2hpbmV9LSR7b3N9JHtyZWxlYXNlfSIKKysJZXhpdCA7OworKyAgICAq Ok9wZW5CU0Q6KjoqKQorKwlVTkFNRV9NQUNISU5FX0FSQ0g9YGFyY2ggfCBzZWQgJ3MvT3BlbkJT RC4vLydgCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24tb3BlbmJzZCR7VU5B TUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOmVra29CU0Q6KjoqKQorKwllY2hvICR7VU5B TUVfTUFDSElORX0tdW5rbm93bi1la2tvYnNkJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7Cisr ICAgICo6U29saWRCU0Q6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zb2xp ZGJzZCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBtYWNwcGM6TWlyQlNEOio6KikK KysJZWNobyBwb3dlcnBjLXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7 CisrICAgICo6TWlyQlNEOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbWly YnNkJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIGFscGhhOk9TRjE6KjoqKQorKwlj YXNlICRVTkFNRV9SRUxFQVNFIGluCisrCSo0LjApCisrCQlVTkFNRV9SRUxFQVNFPWAvdXNyL3Ni aW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkM30nYAorKwkJOzsKKysJKjUuKikKKysJICAgICAg ICBVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0nYAor KwkJOzsKKysJZXNhYworKwkjIEFjY29yZGluZyB0byBDb21wYXEsIC91c3Ivc2Jpbi9wc3JpbmZv IGhhcyBiZWVuIGF2YWlsYWJsZSBvbgorKwkjIE9TRi8xIGFuZCBUcnU2NCBzeXN0ZW1zIHByb2R1 Y2VkIHNpbmNlIDE5OTUuICBJIGhvcGUgdGhhdAorKwkjIGNvdmVycyBtb3N0IHN5c3RlbXMgcnVu bmluZyB0b2RheS4gIFRoaXMgY29kZSBwaXBlcyB0aGUgQ1BVCisrCSMgdHlwZXMgdGhyb3VnaCBo ZWFkIC1uIDEsIHNvIHdlIG9ubHkgZGV0ZWN0IHRoZSB0eXBlIG9mIENQVSAwLgorKwlBTFBIQV9D UFVfVFlQRT1gL3Vzci9zYmluL3BzcmluZm8gLXYgfCBzZWQgLW4gLWUgJ3MvXiAgVGhlIGFscGhh IFwoLipcKSBwcm9jZXNzb3IuKiQvXDEvcCcgfCBoZWFkIC1uIDFgCisrCWNhc2UgIiRBTFBIQV9D UFVfVFlQRSIgaW4KKysJICAgICJFVjQgKDIxMDY0KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBo YSIgOzsKKysJICAgICJFVjQuNSAoMjEwNjQpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7 OworKwkgICAgIkxDQTQgKDIxMDY2LzIxMDY4KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIg OzsKKysJICAgICJFVjUgKDIxMTY0KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NSIgOzsK KysJICAgICJFVjUuNiAoMjExNjRBKSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NTYiIDs7 CisrCSAgICAiRVY1LjYgKDIxMTY0UEMpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTYi IDs7CisrCSAgICAiRVY1LjcgKDIxMTY0UEMpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNh NTciIDs7CisrCSAgICAiRVY2ICgyMTI2NCkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjYi IDs7CisrCSAgICAiRVY2LjcgKDIxMjY0QSkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY3 IiA7OworKwkgICAgIkVWNi44Q0IgKDIxMjY0QykiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFl djY4IiA7OworKwkgICAgIkVWNi44QUwgKDIxMjY0QikiKQorKwkJVU5BTUVfTUFDSElORT0iYWxw aGFldjY4IiA7OworKwkgICAgIkVWNi44Q1ggKDIxMjY0RCkiKQorKwkJVU5BTUVfTUFDSElORT0i YWxwaGFldjY4IiA7OworKwkgICAgIkVWNi45QSAoMjEyNjQvRVY2OUEpIikKKysJCVVOQU1FX01B Q0hJTkU9ImFscGhhZXY2OSIgOzsKKysJICAgICJFVjcgKDIxMzY0KSIpCisrCQlVTkFNRV9NQUNI SU5FPSJhbHBoYWV2NyIgOzsKKysJICAgICJFVjcuOSAoMjEzNjRBKSIpCisrCQlVTkFNRV9NQUNI SU5FPSJhbHBoYWV2NzkiIDs7CisrCWVzYWMKKysJIyBBIFBuLm4gdmVyc2lvbiBpcyBhIHBhdGNo ZWQgdmVyc2lvbi4KKysJIyBBIFZuLm4gdmVyc2lvbiBpcyBhIHJlbGVhc2VkIHZlcnNpb24uCisr CSMgQSBUbi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCBmaWVsZCB0ZXN0IHZlcnNpb24uCisrCSMg QSBYbi5uIHZlcnNpb24gaXMgYW4gdW5yZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgor KwkjIDEuMiB1c2VzICIxLjIiIGZvciB1bmFtZSAtci4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9 LWRlYy1vc2ZgZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycgfCB0 ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5 eidgCisrCWV4aXQgOzsKKysgICAgQWxwaGFcICo6V2luZG93c19OVCo6KikKKysJIyBIb3cgZG8g d2Uga25vdyBpdCdzIEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lz dGVtPworKwkjIFNob3VsZCB3ZSBjaGFuZ2UgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUgb3V0 cHV0IG9mIHVuYW1lIGluc3RlYWQKKysJIyBvZiB0aGUgc3BlY2lmaWMgQWxwaGEgbW9kZWw/Cisr CWVjaG8gYWxwaGEtcGMtaW50ZXJpeAorKwlleGl0IDs7CisrICAgIDIxMDY0OldpbmRvd3NfTlQ6 NTA6MykKKysJZWNobyBhbHBoYS1kZWMtd2lubnQzLjUKKysJZXhpdCA7OworKyAgICBBbWlnYSo6 VU5JWF9TeXN0ZW1fVjo0LjA6KikKKysJZWNobyBtNjhrLXVua25vd24tc3lzdjQKKysJZXhpdCA7 OworKyAgICAqOltBYV1taWdhW09vXVtTc106KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1hbWlnYW9zCisrCWV4aXQgOzsKKysgICAgKjpbTW1db3JwaFtPb11bU3NdOio6KikK KysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbW9ycGhvcworKwlleGl0IDs7CisrICAg ICo6T1MvMzkwOio6KikKKysJZWNobyBpMzcwLWlibS1vcGVuZWRpdGlvbgorKwlleGl0IDs7Cisr ICAgICo6ei9WTToqOiopCisrCWVjaG8gczM5MC1pYm0tenZtb2UKKysJZXhpdCA7OworKyAgICAq Ok9TNDAwOio6KikKKysgICAgICAgIGVjaG8gcG93ZXJwYy1pYm0tb3M0MDAKKysJZXhpdCA7Owor KyAgICBhcm06UklTQyo6MS5bMDEyXSo6Knxhcm06cmlzY2l4OjEuWzAxMl0qOiopCisrCWVjaG8g YXJtLWFjb3JuLXJpc2NpeCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBhcm06cmlz Y29zOio6Knxhcm06UklTQ09TOio6KikKKysJZWNobyBhcm0tdW5rbm93bi1yaXNjb3MKKysJZXhp dCA7OworKyAgICBTUjI/MDE6SEktVVgvTVBQOio6KiB8IFNSODAwMDpISS1VWC9NUFA6KjoqKQor KwllY2hvIGhwcGExLjEtaGl0YWNoaS1oaXV4bXBwCisrCWV4aXQgOzsKKysgICAgUHlyYW1pZCo6 T1N4KjoqOiogfCBNSVMqOk9TeCo6KjoqIHwgTUlTKjpTTVBfREMtT1N4KjoqOiopCisrCSMgYWtl ZUB3cGRpczAzLndwYWZiLmFmLm1pbCAoRWFybGUgRi4gQWtlKSBjb250cmlidXRlZCBNSVMgYW5k IE5JTEUuCisrCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7 IHRoZW4KKysJCWVjaG8gcHlyYW1pZC1weXJhbWlkLXN5c3YzCisrCWVsc2UKKysJCWVjaG8gcHly YW1pZC1weXJhbWlkLWJzZAorKwlmaQorKwlleGl0IDs7CisrICAgIE5JTEUqOio6KjpkY29zeCkK KysJZWNobyBweXJhbWlkLXB5cmFtaWQtc3ZyNAorKwlleGl0IDs7CisrICAgIERSUz82MDAwOnVu aXg6NC4wOjYqKQorKwllY2hvIHNwYXJjLWljbC1ueDYKKysJZXhpdCA7OworKyAgICBEUlM/NjAw MDpVTklYX1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQuMio6NyopCisrCWNhc2UgYC91c3Iv YmluL3VuYW1lIC1wYCBpbgorKwkgICAgc3BhcmMpIGVjaG8gc3BhcmMtaWNsLW54NzsgZXhpdCA7 OworKwllc2FjIDs7CisrICAgIHN1bjRIOlN1bk9TOjUuKjoqKQorKwllY2hvIHNwYXJjLWhhbC1z b2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorKwlleGl0 IDs7CisrICAgIHN1bjQqOlN1bk9TOjUuKjoqIHwgdGFkcG9sZSo6U3VuT1M6NS4qOiopCisrCWVj aG8gc3BhcmMtc3VuLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14u XSovLydgCisrCWV4aXQgOzsKKysgICAgaTg2cGM6U3VuT1M6NS4qOiogfCBpODZ4ZW46U3VuT1M6 NS4qOiopCisrCWVjaG8gaTM4Ni1wYy1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2Vk IC1lICdzL1teLl0qLy8nYAorKwlleGl0IDs7CisrICAgIHN1bjQqOlN1bk9TOjYqOiopCisrCSMg QWNjb3JkaW5nIHRvIGNvbmZpZy5zdWIsIHRoaXMgaXMgdGhlIHByb3BlciB3YXkgdG8gY2Fub25p Y2FsaXplCisrCSMgU3VuT1M2LiAgSGFyZCB0byBndWVzcyBleGFjdGx5IHdoYXQgU3VuT1M2IHdp bGwgYmUgbGlrZSwgYnV0CisrCSMgaXQncyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFyaXMg dGhhbiBTdW5PUzQuCisrCWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMzYGVjaG8gJHtVTkFNRV9SRUxF QVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4aXQgOzsKKysgICAgc3VuNCo6U3VuT1M6Kjoq KQorKwljYXNlICJgL3Vzci9iaW4vYXJjaCAta2AiIGluCisrCSAgICBTZXJpZXMqfFM0KikKKysJ CVVOQU1FX1JFTEVBU0U9YHVuYW1lIC12YAorKwkJOzsKKysJZXNhYworKwkjIEphcGFuZXNlIExh bmd1YWdlIHZlcnNpb25zIGhhdmUgYSB2ZXJzaW9uIG51bWJlciBsaWtlIGA0LjEuMy1KTCcuCisr CWVjaG8gc3BhcmMtc3VuLXN1bm9zYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9f LydgCisrCWV4aXQgOzsKKysgICAgc3VuMyo6U3VuT1M6KjoqKQorKwllY2hvIG02OGstc3VuLXN1 bm9zJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIHN1bio6Kjo0LjJCU0Q6KikKKysJ VU5BTUVfUkVMRUFTRT1gKHNlZCAxcSAvZXRjL21vdGQgfCBhd2sgJ3twcmludCBzdWJzdHIoJDUs MSwzKX0nKSAyPi9kZXYvbnVsbGAKKysJdGVzdCAieCR7VU5BTUVfUkVMRUFTRX0iID0gIngiICYm IFVOQU1FX1JFTEVBU0U9MworKwljYXNlICJgL2Jpbi9hcmNoYCIgaW4KKysJICAgIHN1bjMpCisr CQllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQorKwkJOzsKKysJICAgIHN1bjQp CisrCQllY2hvIHNwYXJjLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKysJCTs7CisrCWVzYWMK KysJZXhpdCA7OworKyAgICBhdXNocDpTdW5PUzoqOiopCisrCWVjaG8gc3BhcmMtYXVzcGV4LXN1 bm9zJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICMgVGhlIHNpdHVhdGlvbiBmb3Ig TWlOVCBpcyBhIGxpdHRsZSBjb25mdXNpbmcuICBUaGUgbWFjaGluZSBuYW1lCisrICAgICMgY2Fu IGJlIHZpcnR1YWxseSBldmVyeXRoaW5nIChldmVyeXRoaW5nIHdoaWNoIGlzIG5vdAorKyAgICAj ICJhdGFyaXN0IiBvciAiYXRhcmlzdGUiIGF0IGxlYXN0IHNob3VsZCBoYXZlIGEgcHJvY2Vzc29y CisrICAgICMgPiBtNjgwMDApLiAgVGhlIHN5c3RlbSBuYW1lIHJhbmdlcyBmcm9tICJNaU5UIiBv dmVyICJGcmVlTWlOVCIKKysgICAgIyB0byB0aGUgbG93ZXJjYXNlIHZlcnNpb24gIm1pbnQiIChv ciAiZnJlZW1pbnQiKS4gIEZpbmFsbHkKKysgICAgIyB0aGUgc3lzdGVtIG5hbWUgIlRPUyIgZGVu b3RlcyBhIHN5c3RlbSB3aGljaCBpcyBhY3R1YWxseSBub3QKKysgICAgIyBNaU5ULiAgQnV0IE1p TlQgaXMgZG93bndhcmQgY29tcGF0aWJsZSB0byBUT1MsIHNvIHRoaXMgc2hvdWxkCisrICAgICMg YmUgbm8gcHJvYmxlbS4KKysgICAgYXRhcmlzdFtlXToqTWlOVDoqOiogfCBhdGFyaXN0W2VdOipt aW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCisrICAgICAgICBlY2hvIG02OGstYXRhcmkt bWludCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBhdGFyaSo6Kk1pTlQ6KjoqIHwg YXRhcmkqOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCisrCWVjaG8gbTY4ay1hdGFy aS1taW50JHtVTkFNRV9SRUxFQVNFfQorKyAgICAgICAgZXhpdCA7OworKyAgICAqZmFsY29uKjoq TWlOVDoqOiogfCAqZmFsY29uKjoqbWludDoqOiogfCAqZmFsY29uKjoqVE9TOio6KikKKysgICAg ICAgIGVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAg IG1pbGFuKjoqTWlOVDoqOiogfCBtaWxhbio6Km1pbnQ6KjoqIHwgKm1pbGFuKjoqVE9TOio6KikK KysgICAgICAgIGVjaG8gbTY4ay1taWxhbi1taW50JHtVTkFNRV9SRUxFQVNFfQorKyAgICAgICAg ZXhpdCA7OworKyAgICBoYWRlcyo6Kk1pTlQ6KjoqIHwgaGFkZXMqOiptaW50Oio6KiB8ICpoYWRl cyo6KlRPUzoqOiopCisrICAgICAgICBlY2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFT RX0KKysgICAgICAgIGV4aXQgOzsKKysgICAgKjoqTWlOVDoqOiogfCAqOiptaW50Oio6KiB8ICo6 KlRPUzoqOiopCisrICAgICAgICBlY2hvIG02OGstdW5rbm93bi1taW50JHtVTkFNRV9SRUxFQVNF fQorKyAgICAgICAgZXhpdCA7OworKyAgICBtNjhrOm1hY2h0ZW46KjoqKQorKwllY2hvIG02OGst YXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBwb3dlcnBjOm1h Y2h0ZW46KjoqKQorKwllY2hvIHBvd2VycGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0K KysJZXhpdCA7OworKyAgICBSSVNDKjpNYWNoOio6KikKKysJZWNobyBtaXBzLWRlYy1tYWNoX2Jz ZDQuMworKwlleGl0IDs7CisrICAgIFJJU0MqOlVMVFJJWDoqOiopCisrCWVjaG8gbWlwcy1kZWMt dWx0cml4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFZBWCo6VUxUUklYKjoqOiop CisrCWVjaG8gdmF4LWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAg MjAyMDpDTElYOio6KiB8IDI0MzA6Q0xJWDoqOiopCisrCWVjaG8gY2xpcHBlci1pbnRlcmdyYXBo LWNsaXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgbWlwczoqOio6VU1JUFMgfCBt aXBzOio6KjpSSVNDb3MpCisrCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJc2VkICdzL14JLy8n IDw8IEVPRiA+JGR1bW15LmMKKysjaWZkZWYgX19jcGx1c3BsdXMKKysjaW5jbHVkZSA8c3RkaW8u aD4gIC8qIGZvciBwcmludGYoKSBwcm90b3R5cGUgKi8KKysJaW50IG1haW4gKGludCBhcmdjLCBj aGFyICphcmd2W10pIHsKKysjZWxzZQorKwlpbnQgbWFpbiAoYXJnYywgYXJndikgaW50IGFyZ2M7 IGNoYXIgKmFyZ3ZbXTsgeworKyNlbmRpZgorKwkjaWYgZGVmaW5lZCAoaG9zdF9taXBzKSAmJiBk ZWZpbmVkIChNSVBTRUIpCisrCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NZU1YpCisrCSAgcHJpbnRm ICgibWlwcy1taXBzLXJpc2NvcyVzc3lzdlxuIiwgYXJndlsxXSk7IGV4aXQgKDApOworKwkjZW5k aWYKKysJI2lmIGRlZmluZWQgKFNZU1RZUEVfU1ZSNCkKKysJICBwcmludGYgKCJtaXBzLW1pcHMt cmlzY29zJXNzdnI0XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7CisrCSNlbmRpZgorKwkjaWYgZGVm aW5lZCAoU1lTVFlQRV9CU0Q0MykgfHwgZGVmaW5lZChTWVNUWVBFX0JTRCkKKysJICBwcmludGYg KCJtaXBzLW1pcHMtcmlzY29zJXNic2RcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKKysJI2VuZGlm CisrCSNlbmRpZgorKwkgIGV4aXQgKC0xKTsKKysJfQorK0VPRgorKwkkQ0NfRk9SX0JVSUxEIC1v ICRkdW1teSAkZHVtbXkuYyAmJgorKwkgIGR1bW15YXJnPWBlY2hvICIke1VOQU1FX1JFTEVBU0V9 IiB8IHNlZCAtbiAncy9cKFswLTldKlwpLiovXDEvcCdgICYmCisrCSAgU1lTVEVNX05BTUU9YCRk dW1teSAkZHVtbXlhcmdgICYmCisrCSAgICB7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0K KysJZWNobyBtaXBzLW1pcHMtcmlzY29zJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAg IE1vdG9yb2xhOlBvd2VyTUFYX09TOio6KikKKysJZWNobyBwb3dlcnBjLW1vdG9yb2xhLXBvd2Vy bWF4CisrCWV4aXQgOzsKKysgICAgTW90b3JvbGE6Kjo0LjM6UEw4LSopCisrCWVjaG8gcG93ZXJw Yy1oYXJyaXMtcG93ZXJtYXgKKysJZXhpdCA7OworKyAgICBOaWdodF9IYXdrOio6KjpQb3dlck1B WF9PUyB8IFN5bmVyZ3k6UG93ZXJNQVhfT1M6KjoqKQorKwllY2hvIHBvd2VycGMtaGFycmlzLXBv d2VybWF4CisrCWV4aXQgOzsKKysgICAgTmlnaHRfSGF3azpQb3dlcl9VTklYOio6KikKKysJZWNo byBwb3dlcnBjLWhhcnJpcy1wb3dlcnVuaXgKKysJZXhpdCA7OworKyAgICBtODhrOkNYL1VYOjcq OiopCisrCWVjaG8gbTg4ay1oYXJyaXMtY3h1eDcKKysJZXhpdCA7OworKyAgICBtODhrOio6NCo6 UjQqKQorKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjQKKysJZXhpdCA7OworKyAgICBtODhrOio6 Myo6UjMqKQorKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjMKKysJZXhpdCA7OworKyAgICBBVmlp T046ZGd1eDoqOiopCisrICAgICAgICAjIERHL1VYIHJldHVybnMgQVZpaU9OIGZvciBhbGwgYXJj aGl0ZWN0dXJlcworKyAgICAgICAgVU5BTUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91bmFtZSAtcGAK KysJaWYgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODEwMCBdIHx8IFsgJFVOQU1FX1BST0NFU1NP UiA9IG1jODgxMTAgXQorKwl0aGVuCisrCSAgICBpZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZB Q0V9eCA9IG04OGtkZ3V4ZWxmeCBdIHx8IFwKKysJICAgICAgIFsgJHtUQVJHRVRfQklOQVJZX0lO VEVSRkFDRX14ID0geCBdCisrCSAgICB0aGVuCisrCQllY2hvIG04OGstZGctZGd1eCR7VU5BTUVf UkVMRUFTRX0KKysJICAgIGVsc2UKKysJCWVjaG8gbTg4ay1kZy1kZ3V4YmNzJHtVTkFNRV9SRUxF QVNFfQorKwkgICAgZmkKKysJZWxzZQorKwkgICAgZWNobyBpNTg2LWRnLWRndXgke1VOQU1FX1JF TEVBU0V9CisrCWZpCisrIAlleGl0IDs7CisrICAgIE04OCo6RG9scGhpbk9TOio6KikJIyBEb2xw aGluT1MgKFNWUjMpCisrCWVjaG8gbTg4ay1kb2xwaGluLXN5c3YzCisrCWV4aXQgOzsKKysgICAg TTg4KjoqOlIzKjoqKQorKwkjIERlbHRhIDg4ayBzeXN0ZW0gcnVubmluZyBTVlIzCisrCWVjaG8g bTg4ay1tb3Rvcm9sYS1zeXN2MworKwlleGl0IDs7CisrICAgIFhEODgqOio6KjoqKSAjIFRla3Ry b25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQorKwllY2hvIG04OGstdGVrdHJv bml4LXN5c3YzCisrCWV4aXQgOzsKKysgICAgVGVrNDNbMC05XVswLTldOlVUZWs6KjoqKSAjIFRl a3Ryb25peCA0MzAwIHN5c3RlbSBydW5uaW5nIFVUZWsgKEJTRCkKKysJZWNobyBtNjhrLXRla3Ry b25peC1ic2QKKysJZXhpdCA7OworKyAgICAqOklSSVgqOio6KikKKysJZWNobyBtaXBzLXNnaS1p cml4YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fL2cnYAorKwlleGl0IDs7Cisr ICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlz IFJUL1BDIEFJWC4KKysJZWNobyByb21wLWlibS1haXggICAgICMgdW5hbWUgLW0gZ2l2ZXMgYW4g OCBoZXgtY29kZSBDUFUgaWQKKysJZXhpdCA7OyAgICAgICAgICAgICAgICMgTm90ZSB0aGF0OiBl Y2hvICInYHVuYW1lIC1zYCciIGdpdmVzICdBSVggJworKyAgICBpKjg2OkFJWDoqOiopCisrCWVj aG8gaTM4Ni1pYm0tYWl4CisrCWV4aXQgOzsKKysgICAgaWE2NDpBSVg6KjoqKQorKwlpZiBbIC14 IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KKysJCUlCTV9SRVY9YC91c3IvYmluL29zbGV2ZWxg CisrCWVsc2UKKysJCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9Cisr CWZpCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tYWl4JHtJQk1fUkVWfQorKwlleGl0IDs7 CisrICAgICo6QUlYOjI6MykKKysJaWYgZ3JlcCBib3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlvLmgg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCQlzZWQg J3MvXgkJLy8nIDw8IEVPRiA+JGR1bW15LmMKKysJCSNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+ CisrCisrCQltYWluKCkKKysJCQl7CisrCQkJaWYgKCFfX3Bvd2VyX3BjKCkpCisrCQkJCWV4aXQo MSk7CisrCQkJcHV0cygicG93ZXJwYy1pYm0tYWl4My4yLjUiKTsKKysJCQlleGl0KDApOworKwkJ CX0KKytFT0YKKysJCWlmICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmIFNZU1RF TV9OQU1FPWAkZHVtbXlgCisrCQl0aGVuCisrCQkJZWNobyAiJFNZU1RFTV9OQU1FIgorKwkJZWxz ZQorKwkJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNQorKwkJZmkKKysJZWxpZiBncmVwIGJvczMy NCAvdXNyL2luY2x1ZGUvc3RkaW8uaCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJCWVjaG8gcnM2 MDAwLWlibS1haXgzLjIuNAorKwllbHNlCisrCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yCisrCWZp CisrCWV4aXQgOzsKKysgICAgKjpBSVg6KjpbNDU2XSkKKysJSUJNX0NQVV9JRD1gL3Vzci9zYmlu L2xzZGV2IC1DIC1jIHByb2Nlc3NvciAtUyBhdmFpbGFibGUgfCBzZWQgMXEgfCBhd2sgJ3sgcHJp bnQgJDEgfSdgCisrCWlmIC91c3Ivc2Jpbi9sc2F0dHIgLUVsICR7SUJNX0NQVV9JRH0gfCBncmVw ICcgUE9XRVInID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwkJSUJNX0FSQ0g9cnM2MDAwCisrCWVs c2UKKysJCUlCTV9BUkNIPXBvd2VycGMKKysJZmkKKysJaWYgWyAteCAvdXNyL2Jpbi9vc2xldmVs IF0gOyB0aGVuCisrCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAorKwllbHNlCisrCQlJQk1f UkVWPSR7VU5BTUVfVkVSU0lPTn0uJHtVTkFNRV9SRUxFQVNFfQorKwlmaQorKwllY2hvICR7SUJN X0FSQ0h9LWlibS1haXgke0lCTV9SRVZ9CisrCWV4aXQgOzsKKysgICAgKjpBSVg6KjoqKQorKwll Y2hvIHJzNjAwMC1pYm0tYWl4CisrCWV4aXQgOzsKKysgICAgaWJtcnQ6NC40QlNEOip8cm9tcC1p Ym06QlNEOiopCisrCWVjaG8gcm9tcC1pYm0tYnNkNC40CisrCWV4aXQgOzsKKysgICAgaWJtcnQ6 KkJTRDoqfHJvbXAtaWJtOkJTRDoqKSAgICAgICAgICAgICMgY292ZXJzIFJUL1BDIEJTRCBhbmQK KysJZWNobyByb21wLWlibS1ic2Qke1VOQU1FX1JFTEVBU0V9ICAgIyA0LjMgd2l0aCB1bmFtZSBh ZGRlZCB0bworKwlleGl0IDs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlcG9ydDog cm9tcC1pYm0gQlNEIDQuMworKyAgICAqOkJPU1g6KjoqKQorKwllY2hvIHJzNjAwMC1idWxsLWJv c3gKKysJZXhpdCA7OworKyAgICBEUFgvMj8wMDpCLk8uUy46KjoqKQorKwllY2hvIG02OGstYnVs bC1zeXN2MworKwlleGl0IDs7CisrICAgIDkwMDAvWzM0XT8/OjQuM2JzZDoxLio6KikKKysJZWNo byBtNjhrLWhwLWJzZAorKwlleGl0IDs7CisrICAgIGhwMzAwOjQuNEJTRDoqOiogfCA5MDAwL1sz NF0/Pzo0LjNic2Q6Mi4qOiopCisrCWVjaG8gbTY4ay1ocC1ic2Q0LjQKKysJZXhpdCA7OworKyAg ICA5MDAwL1szNDY3OF0/PzpIUC1VWDoqOiopCisrCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVM RUFTRX18c2VkIC1lICdzL1teLl0qLlswQl0qLy8nYAorKwljYXNlICIke1VOQU1FX01BQ0hJTkV9 IiBpbgorKwkgICAgOTAwMC8zMT8gKSAgICAgICAgICAgIEhQX0FSQ0g9bTY4MDAwIDs7CisrCSAg ICA5MDAwL1szNF0/PyApICAgICAgICAgSFBfQVJDSD1tNjhrIDs7CisrCSAgICA5MDAwL1s2Nzhd WzAtOV1bMC05XSkKKysJCWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVuCisrCQkgICAg c2NfY3B1X3ZlcnNpb249YC91c3IvYmluL2dldGNvbmYgU0NfQ1BVX1ZFUlNJT04gMj4vZGV2L251 bGxgCisrICAgICAgICAgICAgICAgICAgICBzY19rZXJuZWxfYml0cz1gL3Vzci9iaW4vZ2V0Y29u ZiBTQ19LRVJORUxfQklUUyAyPi9kZXYvbnVsbGAKKysgICAgICAgICAgICAgICAgICAgIGNhc2Ug IiR7c2NfY3B1X3ZlcnNpb259IiBpbgorKyAgICAgICAgICAgICAgICAgICAgICA1MjMpIEhQX0FS Q0g9ImhwcGExLjAiIDs7ICMgQ1BVX1BBX1JJU0MxXzAKKysgICAgICAgICAgICAgICAgICAgICAg NTI4KSBIUF9BUkNIPSJocHBhMS4xIiA7OyAjIENQVV9QQV9SSVNDMV8xCisrICAgICAgICAgICAg ICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAorKyAg ICAgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2Nfa2VybmVsX2JpdHN9IiBpbgorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgMzIpIEhQX0FSQ0g9ImhwcGEyLjBuIiA7OworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OworKwkJCSAgJycpIEhQ X0FSQ0g9ImhwcGEyLjAiIDs7ICAgIyBIUC1VWCAxMC4yMAorKyAgICAgICAgICAgICAgICAgICAg ICAgIGVzYWMgOzsKKysgICAgICAgICAgICAgICAgICAgIGVzYWMKKysJCWZpCisrCQlpZiBbICIk e0hQX0FSQ0h9IiA9ICIiIF07IHRoZW4KKysJCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCisr CQkgICAgc2VkICdzL14gICAgICAgICAgICAgIC8vJyA8PCBFT0YgPiRkdW1teS5jCisrCisrICAg ICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQorKyAgICAgICAgICAgICAgI2luY2x1ZGUg PHN0ZGxpYi5oPgorKyAgICAgICAgICAgICAgI2luY2x1ZGUgPHVuaXN0ZC5oPgorKworKyAgICAg ICAgICAgICAgaW50IG1haW4gKCkKKysgICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICNp ZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKKysgICAgICAgICAgICAgICAgICBsb25nIGJpdHMg PSBzeXNjb25mKF9TQ19LRVJORUxfQklUUyk7CisrICAgICAgICAgICAgICAjZW5kaWYKKysgICAg ICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOworKwor KyAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY3B1KQorKyAgICAgICAgICAgICAgCXsKKysgICAg ICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsK KysgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgiaHBwYTEuMSIpOyBi cmVhazsKKysgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgorKyAgICAgICAgICAg ICAgI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQorKyAgICAgICAgICAgICAgCSAgICBzd2l0 Y2ggKGJpdHMpCisrICAgICAgICAgICAgICAJCXsKKysgICAgICAgICAgICAgIAkJY2FzZSA2NDog cHV0cyAoImhwcGEyLjB3Iik7IGJyZWFrOworKyAgICAgICAgICAgICAgCQljYXNlIDMyOiBwdXRz ICgiaHBwYTIuMG4iKTsgYnJlYWs7CisrICAgICAgICAgICAgICAJCWRlZmF1bHQ6IHB1dHMgKCJo cHBhMi4wIik7IGJyZWFrOworKyAgICAgICAgICAgICAgCQl9IGJyZWFrOworKyAgICAgICAgICAg ICAgI2Vsc2UgIC8qICFkZWZpbmVkKF9TQ19LRVJORUxfQklUUykgKi8KKysgICAgICAgICAgICAg IAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7CisrICAgICAgICAgICAgICAjZW5kaWYKKysg ICAgICAgICAgICAgIAlkZWZhdWx0OiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKKysgICAgICAg ICAgICAgIAl9CisrICAgICAgICAgICAgICAgICAgZXhpdCAoMCk7CisrICAgICAgICAgICAgICB9 CisrRU9GCisrCQkgICAgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMg Mj4vZGV2L251bGwpICYmIEhQX0FSQ0g9YCRkdW1teWAKKysJCSAgICB0ZXN0IC16ICIkSFBfQVJD SCIgJiYgSFBfQVJDSD1ocHBhCisrCQlmaSA7OworKwllc2FjCisrCWlmIFsgJHtIUF9BUkNIfSA9 ICJocHBhMi4wdyIgXQorKwl0aGVuCisrCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCisr CSAgICAjIGhwcGEyLjB3LWhwLWhwdXgqIGhhcyBhIDY0LWJpdCBrZXJuZWwgYW5kIGEgY29tcGls ZXIgZ2VuZXJhdGluZworKwkgICAgIyAzMi1iaXQgY29kZS4gIGhwcGE2NC1ocC1ocHV4KiBoYXMg dGhlIHNhbWUga2VybmVsIGFuZCBhIGNvbXBpbGVyCisrCSAgICAjIGdlbmVyYXRpbmcgNjQtYml0 IGNvZGUuICBHTlUgYW5kIEhQIHVzZSBkaWZmZXJlbnQgbm9tZW5jbGF0dXJlOgorKwkgICAgIwor KwkgICAgIyAkIENDX0ZPUl9CVUlMRD1jYyAuL2NvbmZpZy5ndWVzcworKwkgICAgIyA9PiBocHBh Mi4wdy1ocC1ocHV4MTEuMjMKKysJICAgICMgJCBDQ19GT1JfQlVJTEQ9ImNjICtEQTIuMHciIC4v Y29uZmlnLmd1ZXNzCisrCSAgICAjID0+IGhwcGE2NC1ocC1ocHV4MTEuMjMKKysKKysJICAgIGlm IGVjaG8gX19MUDY0X18gfCAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwp IHwKKysJCWdyZXAgX19MUDY0X18gPi9kZXYvbnVsbAorKwkgICAgdGhlbgorKwkJSFBfQVJDSD0i aHBwYTIuMHciCisrCSAgICBlbHNlCisrCQlIUF9BUkNIPSJocHBhNjQiCisrCSAgICBmaQorKwlm aQorKwllY2hvICR7SFBfQVJDSH0taHAtaHB1eCR7SFBVWF9SRVZ9CisrCWV4aXQgOzsKKysgICAg aWE2NDpIUC1VWDoqOiopCisrCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1l ICdzL1teLl0qLlswQl0qLy8nYAorKwllY2hvIGlhNjQtaHAtaHB1eCR7SFBVWF9SRVZ9CisrCWV4 aXQgOzsKKysgICAgMzA1MCo6SEktVVg6KjoqKQorKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisr CXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisrCSNpbmNsdWRlIDx1bmlzdGQuaD4KKysJ aW50CisrCW1haW4gKCkKKysJeworKwkgIGxvbmcgY3B1ID0gc3lzY29uZiAoX1NDX0NQVV9WRVJT SU9OKTsKKysJICAvKiBUaGUgb3JkZXIgbWF0dGVycywgYmVjYXVzZSBDUFVfSVNfSFBfTUM2OEsg ZXJyb25lb3VzbHkgcmV0dXJucworKwkgICAgIHRydWUgZm9yIENQVV9QQV9SSVNDMV8wLiAgQ1BV X0lTX1BBX1JJU0MgcmV0dXJucyBjb3JyZWN0CisrCSAgICAgcmVzdWx0cywgaG93ZXZlci4gICov CisrCSAgaWYgKENQVV9JU19QQV9SSVNDIChjcHUpKQorKwkgICAgeworKwkgICAgICBzd2l0Y2gg KGNwdSkKKysJCXsKKysJCSAgY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAtaGl0 YWNoaS1oaXV4d2UyIik7IGJyZWFrOworKwkJICBjYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgi aHBwYTEuMS1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisrCQkgIGNhc2UgQ1BVX1BBX1JJU0My XzA6IHB1dHMgKCJocHBhMi4wLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKKysJCSAgZGVmYXVs dDogcHV0cyAoImhwcGEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworKwkJfQorKwkgICAgfQor KwkgIGVsc2UgaWYgKENQVV9JU19IUF9NQzY4SyAoY3B1KSkKKysJICAgIHB1dHMgKCJtNjhrLWhp dGFjaGktaGl1eHdlMiIpOworKwkgIGVsc2UgcHV0cyAoInVua25vd24taGl0YWNoaS1oaXV4d2Uy Iik7CisrCSAgZXhpdCAoMCk7CisrCX0KKytFT0YKKysJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkg JGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAgJiYKKysJCXsgZWNobyAiJFNZU1RFTV9O QU1FIjsgZXhpdDsgfQorKwllY2hvIHVua25vd24taGl0YWNoaS1oaXV4d2UyCisrCWV4aXQgOzsK KysgICAgOTAwMC83Pz86NC4zYnNkOio6KiB8IDkwMDAvOD9bNzldOjQuM2JzZDoqOiogKQorKwll Y2hvIGhwcGExLjEtaHAtYnNkCisrCWV4aXQgOzsKKysgICAgOTAwMC84Pz86NC4zYnNkOio6KikK KysJZWNobyBocHBhMS4wLWhwLWJzZAorKwlleGl0IDs7CisrICAgICo5Pz8qOk1QRS9pWDoqOiog fCAqMzAwMCo6TVBFL2lYOio6KikKKysJZWNobyBocHBhMS4wLWhwLW1wZWl4CisrCWV4aXQgOzsK KysgICAgaHA3Pz86T1NGMToqOiogfCBocDg/Wzc5XTpPU0YxOio6KiApCisrCWVjaG8gaHBwYTEu MS1ocC1vc2YKKysJZXhpdCA7OworKyAgICBocDg/PzpPU0YxOio6KikKKysJZWNobyBocHBhMS4w LWhwLW9zZgorKwlleGl0IDs7CisrICAgIGkqODY6T1NGMToqOiopCisrCWlmIFsgLXggL3Vzci9z YmluL3N5c3ZlcnNpb24gXSA7IHRoZW4KKysJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtu b3duLW9zZjFtaworKwllbHNlCisrCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1v c2YxCisrCWZpCisrCWV4aXQgOzsKKysgICAgcGFyaXNjKjpMaXRlcyo6KjoqKQorKwllY2hvIGhw cGExLjEtaHAtbGl0ZXMKKysJZXhpdCA7OworKyAgICBDMSo6Q29udmV4T1M6KjoqIHwgY29udmV4 OkNvbnZleE9TOkMxKjoqKQorKwllY2hvIGMxLWNvbnZleC1ic2QKKysgICAgICAgIGV4aXQgOzsK KysgICAgQzIqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMio6KikKKysJaWYgZ2V0 c3lzaW5mbyAtZiBzY2FsYXJfYWNjCisrCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAorKwllbHNl IGVjaG8gYzItY29udmV4LWJzZAorKwlmaQorKyAgICAgICAgZXhpdCA7OworKyAgICBDMzQqOkNv bnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzQqOiopCisrCWVjaG8gYzM0LWNvbnZleC1i c2QKKysgICAgICAgIGV4aXQgOzsKKysgICAgQzM4KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29u dmV4T1M6QzM4KjoqKQorKwllY2hvIGMzOC1jb252ZXgtYnNkCisrICAgICAgICBleGl0IDs7Cisr ICAgIEM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzQqOiopCisrCWVjaG8gYzQt Y29udmV4LWJzZAorKyAgICAgICAgZXhpdCA7OworKyAgICBDUkFZKlktTVA6KjoqOiopCisrCWVj aG8geW1wLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8u WC8nCisrCWV4aXQgOzsKKysgICAgQ1JBWSpbQS1aXTkwOio6KjoqKQorKwllY2hvICR7VU5BTUVf TUFDSElORX0tY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IFwKKysJfCBzZWQgLWUgJ3MvQ1JB WS4qXChbQS1aXTkwXCkvXDEvJyBcCisrCSAgICAgIC1lIHkvQUJDREVGR0hJSktMTU5PUFFSU1RV VldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXovIFwKKysJICAgICAgLWUgJ3MvXC5bXi5d KiQvLlgvJworKwlleGl0IDs7CisrICAgIENSQVkqVFM6KjoqOiopCisrCWVjaG8gdDkwLWNyYXkt dW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisrCWV4aXQg OzsKKysgICAgQ1JBWSpUM0U6KjoqOiopCisrCWVjaG8gYWxwaGFldjUtY3JheS11bmljb3NtayR7 VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAg IENSQVkqU1YxOio6KjoqKQorKwllY2hvIHN2MS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0g fCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAgICo6VU5JQ09TL21wOio6 KikKKysJZWNobyBjcmF5bnYtY3JheS11bmljb3NtcCR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUg J3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAgIEYzMFswMV06VU5JWF9TeXN0ZW1fVjoq OiogfCBGNzAwOlVOSVhfU3lzdGVtX1Y6KjoqKQorKwlGVUpJVFNVX1BST0M9YHVuYW1lIC1tIHwg dHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4 eXonYAorKyAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1O T1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wv Ly8nYAorKyAgICAgICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAt ZSAncy8gL18vJ2AKKysgICAgICAgIGVjaG8gIiR7RlVKSVRTVV9QUk9DfS1mdWppdHN1LSR7RlVK SVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisrICAgICAgICBleGl0IDs7CisrICAgIDUwMDA6VU5J WF9TeXN0ZW1fVjo0Lio6KikKKysgICAgICAgIEZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdB QkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8 IHNlZCAtZSAncy9cLy8vJ2AKKysgICAgICAgIEZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVM RUFTRX0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9w cXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvIC9fLydgCisrICAgICAgICBlY2hvICJzcGFyYy1mdWpp dHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisrCWV4aXQgOzsKKysgICAgaSo4NjpC U0QvMzg2Oio6KiB8IGkqODY6QlNEL09TOio6KiB8ICo6QXNjZW5kXCBFbWJlZGRlZC9PUzoqOiop CisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1ic2RpJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0 IDs7CisrICAgIHNwYXJjKjpCU0QvT1M6KjoqKQorKwllY2hvIHNwYXJjLXVua25vd24tYnNkaSR7 VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOkJTRC9PUzoqOiopCisrCWVjaG8gJHtV TkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysg ICAgKjpGcmVlQlNEOio6KikKKysJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGluCisrCSAgICBwYzk4 KQorKwkJZWNobyBpMzg2LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2Vk IC1lICdzL1stKF0uKi8vJ2AgOzsKKysJICAgIGFtZDY0KQorKwkJZWNobyB4ODZfNjQtdW5rbm93 bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7Owor KwkgICAgKikKKysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWZyZWVic2RgZWNobyAk e1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7CisrCWVzYWMKKysJZXhpdCA7 OworKyAgICBpKjpDWUdXSU4qOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1jeWd3aW4K KysJZXhpdCA7OworKyAgICAqOk1JTkdXKjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMt bWluZ3czMgorKwlleGl0IDs7CisrICAgIGkqOndpbmRvd3MzMio6KikKKysgICAgCSMgdW5hbWUg LW0gaW5jbHVkZXMgIi1wYyIgb24gdGhpcyBzeXN0ZW0uCisrICAgIAllY2hvICR7VU5BTUVfTUFD SElORX0tbWluZ3czMgorKwlleGl0IDs7CisrICAgIGkqOlBXKjoqKQorKwllY2hvICR7VU5BTUVf TUFDSElORX0tcGMtcHczMgorKwlleGl0IDs7CisrICAgICo6SW50ZXJpeCo6WzM0NTZdKikKKysg ICAgCWNhc2UgJHtVTkFNRV9NQUNISU5FfSBpbgorKwkgICAgeDg2KQorKwkJZWNobyBpNTg2LXBj LWludGVyaXgke1VOQU1FX1JFTEVBU0V9CisrCQlleGl0IDs7CisrCSAgICBFTTY0VCB8IGF1dGhl bnRpY2FtZCkKKysJCWVjaG8geDg2XzY0LXVua25vd24taW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0K KysJCWV4aXQgOzsKKysJICAgIElBNjQpCisrCQllY2hvIGlhNjQtdW5rbm93bi1pbnRlcml4JHtV TkFNRV9SRUxFQVNFfQorKwkJZXhpdCA7OworKwllc2FjIDs7CisrICAgIFszNDVdODY6V2luZG93 c185NToqIHwgWzM0NV04NjpXaW5kb3dzXzk4OiogfCBbMzQ1XTg2OldpbmRvd3NfTlQ6KikKKysJ ZWNobyBpJHtVTkFNRV9NQUNISU5FfS1wYy1ta3MKKysJZXhpdCA7OworKyAgICBpKjpXaW5kb3dz X05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6KikKKysJIyBIb3cgZG8gd2Uga25vdyBpdCdz IEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lzdGVtPworKwkjIEl0 IGFsc28gY29uZmxpY3RzIHdpdGggcHJlLTIuMCB2ZXJzaW9ucyBvZiBBVCZUIFVXSU4uIFNob3Vs ZCB3ZQorKwkjIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0 ZWFkIG9mIGkzODY/CisrCWVjaG8gaTU4Ni1wYy1pbnRlcml4CisrCWV4aXQgOzsKKysgICAgaSo6 VVdJTio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXV3aW4KKysJZXhpdCA7OworKyAg ICBhbWQ2NDpDWUdXSU4qOio6KiB8IHg4Nl82NDpDWUdXSU4qOio6KikKKysJZWNobyB4ODZfNjQt dW5rbm93bi1jeWd3aW4KKysJZXhpdCA7OworKyAgICBwKjpDWUdXSU4qOiopCisrCWVjaG8gcG93 ZXJwY2xlLXVua25vd24tY3lnd2luCisrCWV4aXQgOzsKKysgICAgcHJlcCo6U3VuT1M6NS4qOiop CisrCWVjaG8gcG93ZXJwY2xlLXVua25vd24tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9 fHNlZCAtZSAncy9bXi5dKi8vJ2AKKysJZXhpdCA7OworKyAgICAqOkdOVToqOiopCisrCSMgdGhl IEdOVSBzeXN0ZW0KKysJZWNobyBgZWNobyAke1VOQU1FX01BQ0hJTkV9fHNlZCAtZSAncyxbLS9d LiokLCwnYC11bmtub3duLWdudWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLC8uKiQs LCdgCisrCWV4aXQgOzsKKysgICAgKjpHTlUvKjoqOiopCisrCSMgb3RoZXIgc3lzdGVtcyB3aXRo IEdOVSBsaWJjIGFuZCB1c2VybGFuZAorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1g ZWNobyAke1VOQU1FX1NZU1RFTX0gfCBzZWQgJ3MsXlteL10qLywsJyB8IHRyICdbQS1aXScgJ1th LXpdJ2BgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgLWdudQorKwll eGl0IDs7CisrICAgIGkqODY6TWluaXg6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMt bWluaXgKKysJZXhpdCA7OworKyAgICBhcm0qOkxpbnV4Oio6KikKKysJZXZhbCAkc2V0X2NjX2Zv cl9idWlsZAorKwlpZiBlY2hvIF9fQVJNX0VBQklfXyB8ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9k ZXYvbnVsbCBcCisrCSAgICB8IGdyZXAgLXEgX19BUk1fRUFCSV9fCisrCXRoZW4KKysJICAgIGVj aG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwllbHNlCisrCSAgICBlY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnVlYWJpCisrCWZpCisrCWV4aXQgOzsK KysgICAgYXZyMzIqOkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t bGludXgtZ251CisrCWV4aXQgOzsKKysgICAgY3JpczpMaW51eDoqOiopCisrCWVjaG8gY3Jpcy1h eGlzLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIGNyaXN2MzI6TGludXg6KjoqKQorKwllY2hv IGNyaXN2MzItYXhpcy1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBmcnY6TGludXg6KjoqKQor KyAgICAJZWNobyBmcnYtdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBpYTY0Okxp bnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4 aXQgOzsKKysgICAgbTMycio6TGludXg6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5r bm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBtNjgqOkxpbnV4Oio6KikKKysJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgbWlwczpM aW51eDoqOiopCisrCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJc2VkICdzL14JLy8nIDw8IEVP RiA+JGR1bW15LmMKKysJI3VuZGVmIENQVQorKwkjdW5kZWYgbWlwcworKwkjdW5kZWYgbWlwc2Vs CisrCSNpZiBkZWZpbmVkKF9fTUlQU0VMX18pIHx8IGRlZmluZWQoX19NSVBTRUwpIHx8IGRlZmlu ZWQoX01JUFNFTCkgfHwgZGVmaW5lZChNSVBTRUwpCisrCUNQVT1taXBzZWwKKysJI2Vsc2UKKysJ I2lmIGRlZmluZWQoX19NSVBTRUJfXykgfHwgZGVmaW5lZChfX01JUFNFQikgfHwgZGVmaW5lZChf TUlQU0VCKSB8fCBkZWZpbmVkKE1JUFNFQikKKysJQ1BVPW1pcHMKKysJI2Vsc2UKKysJQ1BVPQor KwkjZW5kaWYKKysJI2VuZGlmCisrRU9GCisrCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1t eS5jIDI+L2Rldi9udWxsIHwgc2VkIC1uICcKKysJICAgIC9eQ1BVL3sKKysJCXM6IDo6ZworKwkJ cAorKwkgICAgfSdgIgorKwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVu a25vd24tbGludXgtZ251IjsgZXhpdDsgfQorKwk7OworKyAgICBtaXBzNjQ6TGludXg6KjoqKQor KwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5j CisrCSN1bmRlZiBDUFUKKysJI3VuZGVmIG1pcHM2NAorKwkjdW5kZWYgbWlwczY0ZWwKKysJI2lm IGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQ U0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKKysJQ1BVPW1pcHM2NGVsCisrCSNlbHNlCisrCSNpZiBk ZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNF QikgfHwgZGVmaW5lZChNSVBTRUIpCisrCUNQVT1taXBzNjQKKysJI2Vsc2UKKysJQ1BVPQorKwkj ZW5kaWYKKysJI2VuZGlmCisrRU9GCisrCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5j IDI+L2Rldi9udWxsIHwgc2VkIC1uICcKKysJICAgIC9eQ1BVL3sKKysJCXM6IDo6ZworKwkJcAor KwkgICAgfSdgIgorKwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25v d24tbGludXgtZ251IjsgZXhpdDsgfQorKwk7OworKyAgICBvcjMyOkxpbnV4Oio6KikKKysJZWNo byBvcjMyLXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgcHBjOkxpbnV4Oio6KikK KysJZWNobyBwb3dlcnBjLXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgcHBjNjQ6 TGludXg6KjoqKQorKwllY2hvIHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7 CisrICAgIGFscGhhOkxpbnV4Oio6KikKKysJY2FzZSBgc2VkIC1uICcvXmNwdSBtb2RlbC9zL14u KjogXCguKlwpL1wxL3AnIDwgL3Byb2MvY3B1aW5mb2AgaW4KKysJICBFVjUpICAgVU5BTUVfTUFD SElORT1hbHBoYWV2NSA7OworKwkgIEVWNTYpICBVTkFNRV9NQUNISU5FPWFscGhhZXY1NiA7Owor KwkgIFBDQTU2KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKKysJICBQQ0E1NykgVU5BTUVf TUFDSElORT1hbHBoYXBjYTU2IDs7CisrCSAgRVY2KSAgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjYg OzsKKysJICBFVjY3KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NjcgOzsKKysJICBFVjY4KikgVU5B TUVfTUFDSElORT1hbHBoYWV2NjggOzsKKysgICAgICAgIGVzYWMKKysJb2JqZHVtcCAtLXByaXZh dGUtaGVhZGVycyAvYmluL3NoIHwgZ3JlcCBsZC5zby4xID4vZGV2L251bGwKKysJaWYgdGVzdCAi JD8iID0gMCA7IHRoZW4gTElCQz0ibGliYzEiIDsgZWxzZSBMSUJDPSIiIDsgZmkKKysJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251JHtMSUJDfQorKwlleGl0IDs7CisrICAg IHBhcmlzYzpMaW51eDoqOiogfCBocHBhOkxpbnV4Oio6KikKKysJIyBMb29rIGZvciBDUFUgbGV2 ZWwKKysJY2FzZSBgZ3JlcCAnXmNwdVteYS16XSo6JyAvcHJvYy9jcHVpbmZvIDI+L2Rldi9udWxs IHwgY3V0IC1kJyAnIC1mMmAgaW4KKysJICBQQTcqKSBlY2hvIGhwcGExLjEtdW5rbm93bi1saW51 eC1nbnUgOzsKKysJICBQQTgqKSBlY2hvIGhwcGEyLjAtdW5rbm93bi1saW51eC1nbnUgOzsKKysJ ICAqKSAgICBlY2hvIGhwcGEtdW5rbm93bi1saW51eC1nbnUgOzsKKysJZXNhYworKwlleGl0IDs7 CisrICAgIHBhcmlzYzY0OkxpbnV4Oio6KiB8IGhwcGE2NDpMaW51eDoqOiopCisrCWVjaG8gaHBw YTY0LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgczM5MDpMaW51eDoqOiogfCBz MzkweDpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tbGludXgKKysJZXhp dCA7OworKyAgICBzaDY0KjpMaW51eDoqOiopCisrICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBzaCo6TGludXg6KjoqKQorKwllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBzcGFy YzpMaW51eDoqOiogfCBzcGFyYzY0OkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgdmF4OkxpbnV4Oio6KikKKysJZWNo byAke1VOQU1FX01BQ0hJTkV9LWRlYy1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICB4ODZfNjQ6 TGludXg6KjoqKQorKwllY2hvIHg4Nl82NC11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7Cisr ICAgIHh0ZW5zYSo6TGludXg6KjoqKQorKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgaSo4NjpMaW51eDoqOiopCisrCSMgVGhlIEJG RCBsaW5rZXIga25vd3Mgd2hhdCB0aGUgZGVmYXVsdCBvYmplY3QgZmlsZSBmb3JtYXQgaXMsIHNv CisrCSMgZmlyc3Qgc2VlIGlmIGl0IHdpbGwgdGVsbCB1cy4gY2QgdG8gdGhlIHJvb3QgZGlyZWN0 b3J5IHRvIHByZXZlbnQKKysJIyBwcm9ibGVtcyB3aXRoIG90aGVyIHByb2dyYW1zIG9yIGRpcmVj dG9yaWVzIGNhbGxlZCBgbGQnIGluIHRoZSBwYXRoLgorKwkjIFNldCBMQ19BTEw9QyB0byBlbnN1 cmUgbGQgb3V0cHV0cyBtZXNzYWdlcyBpbiBFbmdsaXNoLgorKwlsZF9zdXBwb3J0ZWRfdGFyZ2V0 cz1gY2QgLzsgTENfQUxMPUMgbGQgLS1oZWxwIDI+JjEgXAorKwkJCSB8IHNlZCAtbmUgJy9zdXBw b3J0ZWQgdGFyZ2V0czovIWQKKysJCQkJICAgIHMvWyAJXVsgCV0qLyAvZworKwkJCQkgICAgcy8u KnN1cHBvcnRlZCB0YXJnZXRzOiAqLy8KKysJCQkJICAgIHMvIC4qLy8KKysJCQkJICAgIHAnYAor KyAgICAgICAgY2FzZSAiJGxkX3N1cHBvcnRlZF90YXJnZXRzIiBpbgorKwkgIGVsZjMyLWkzODYp CisrCQlURU5UQVRJVkU9IiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251IgorKwkJOzsKKysJ ICBhLm91dC1pMzg2LWxpbnV4KQorKwkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1n bnVhb3V0IgorKwkJZXhpdCA7OworKwkgIGNvZmYtaTM4NikKKysJCWVjaG8gIiR7VU5BTUVfTUFD SElORX0tcGMtbGludXgtZ251Y29mZiIKKysJCWV4aXQgOzsKKysJICAiIikKKysJCSMgRWl0aGVy IGEgcHJlLUJGRCBhLm91dCBsaW5rZXIgKGxpbnV4LWdudW9sZGxkKSBvcgorKwkJIyBvbmUgdGhh dCBkb2VzIG5vdCBnaXZlIHVzIHVzZWZ1bCAtLWhlbHAuCisrCQllY2hvICIke1VOQU1FX01BQ0hJ TkV9LXBjLWxpbnV4LWdudW9sZGxkIgorKwkJZXhpdCA7OworKwllc2FjCisrCSMgRGV0ZXJtaW5l IHdoZXRoZXIgdGhlIGRlZmF1bHQgY29tcGlsZXIgaXMgYS5vdXQgb3IgZWxmCisrCWV2YWwgJHNl dF9jY19mb3JfYnVpbGQKKysJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKKysJI2luY2x1 ZGUgPGZlYXR1cmVzLmg+CisrCSNpZmRlZiBfX0VMRl9fCisrCSMgaWZkZWYgX19HTElCQ19fCisr CSMgIGlmIF9fR0xJQkNfXyA+PSAyCisrCUxJQkM9Z251CisrCSMgIGVsc2UKKysJTElCQz1nbnVs aWJjMQorKwkjICBlbmRpZgorKwkjIGVsc2UKKysJTElCQz1nbnVsaWJjMQorKwkjIGVuZGlmCisr CSNlbHNlCisrCSNpZiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpIHx8IGRlZmluZWQoX19QR0kp IHx8IGRlZmluZWQoX19TVU5QUk9fQykgfHwgZGVmaW5lZChfX1NVTlBST19DQykKKysJTElCQz1n bnUKKysJI2Vsc2UKKysJTElCQz1nbnVhb3V0CisrCSNlbmRpZgorKwkjZW5kaWYKKysJI2lmZGVm IF9fZGlldGxpYmNfXworKwlMSUJDPWRpZXRsaWJjCisrCSNlbmRpZgorK0VPRgorKwlldmFsICJg JENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IHNlZCAtbiAnCisrCSAgICAv XkxJQkMveworKwkJczogOjpnCisrCQlwCisrCSAgICB9J2AiCisrCXRlc3QgeCIke0xJQkN9IiAh PSB4ICYmIHsKKysJCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtJHtMSUJDfSIKKysJ CWV4aXQKKysJfQorKwl0ZXN0IHgiJHtURU5UQVRJVkV9IiAhPSB4ICYmIHsgZWNobyAiJHtURU5U QVRJVkV9IjsgZXhpdDsgfQorKwk7OworKyAgICBpKjg2OkRZTklYL3B0eDo0KjoqKQorKwkjIHB0 eCA0LjAgZG9lcyB1bmFtZSAtcyBjb3JyZWN0bHksIHdpdGggRFlOSVgvcHR4IGluIHRoZXJlLgor KwkjIGVhcmxpZXIgdmVyc2lvbnMgYXJlIG1lc3NlZCB1cCBhbmQgcHV0IHRoZSBub2RlbmFtZSBp biBib3RoCisrCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCisrCWVjaG8gaTM4Ni1zZXF1ZW50LXN5 c3Y0CisrCWV4aXQgOzsKKysgICAgaSo4NjpVTklYX1NWOjQuMk1QOjIuKikKKysgICAgICAgICMg VW5peHdhcmUgaXMgYW4gb2Zmc2hvb3Qgb2YgU1ZSNCwgYnV0IGl0IGhhcyBpdHMgb3duIHZlcnNp b24KKysgICAgICAgICMgbnVtYmVyIHNlcmllcyBzdGFydGluZyB3aXRoIDIuLi4KKysgICAgICAg ICMgSSBhbSBub3QgcG9zaXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5c3RlbXMgd29uJ3QgbWF0Y2gg dGhpcywKKysJIyBJIGp1c3QgaGF2ZSB0byBob3BlLiAgLS0gcm1zLgorKyAgICAgICAgIyBVc2Ug c3lzdjQuMnV3Li4uIHNvIHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQuCisrCWVjaG8gJHtVTkFNRV9N QUNISU5FfS1wYy1zeXN2NC4ydXcke1VOQU1FX1ZFUlNJT059CisrCWV4aXQgOzsKKysgICAgaSo4 NjpPUy8yOio6KikKKysJIyBJZiB3ZSB3ZXJlIGFibGUgdG8gZmluZCBgdW5hbWUnLCB0aGVuIEVN WCBVbml4IGNvbXBhdGliaWxpdHkKKysJIyBpcyBwcm9iYWJseSBpbnN0YWxsZWQuCisrCWVjaG8g JHtVTkFNRV9NQUNISU5FfS1wYy1vczItZW14CisrCWV4aXQgOzsKKysgICAgaSo4NjpYVFMtMzAw Oio6U1RPUCkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3RvcAorKwlleGl0IDs7 CisrICAgIGkqODY6YXRoZW9zOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t YXRoZW9zCisrCWV4aXQgOzsKKysgICAgaSo4NjpzeWxsYWJsZToqOiopCisrCWVjaG8gJHtVTkFN RV9NQUNISU5FfS1wYy1zeWxsYWJsZQorKwlleGl0IDs7CisrICAgIGkqODY6THlueE9TOjIuKjoq IHwgaSo4NjpMeW54T1M6My5bMDFdKjoqIHwgaSo4NjpMeW54T1M6NC4wKjoqKQorKwllY2hvIGkz ODYtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgaSo4Njoq RE9TOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1zZG9zZGpncHAKKysJZXhpdCA7 OworKyAgICBpKjg2Oio6NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQuKjoqKQorKwlVTkFNRV9SRUw9 YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAncy9cL01QJC8vJ2AKKysJaWYgZ3JlcCBOb3Zl bGwgL3Vzci9pbmNsdWRlL2xpbmsuaCA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCisrCQll Y2hvICR7VU5BTUVfTUFDSElORX0tdW5pdmVsLXN5c3Yke1VOQU1FX1JFTH0KKysJZWxzZQorKwkJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Yke1VOQU1FX1JFTH0KKysJZmkKKysJZXhpdCA7 OworKyAgICBpKjg2Oio6NTpbNjc4XSopCisrICAgIAkjIFVuaXhXYXJlIDcueCwgT3BlblVOSVgg YW5kIE9wZW5TZXJ2ZXIgNi4KKysJY2FzZSBgL2Jpbi91bmFtZSAtWCB8IGdyZXAgIl5NYWNoaW5l ImAgaW4KKysJICAgICo0ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9aTQ4NiA7OworKwkgICAgKlBl bnRpdW0pCSAgICAgVU5BTUVfTUFDSElORT1pNTg2IDs7CisrCSAgICAqUGVudCp8KkNlbGVyb24p IFVOQU1FX01BQ0hJTkU9aTY4NiA7OworKwllc2FjCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11 bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9JHtVTkFNRV9TWVNURU19JHtVTkFNRV9WRVJTSU9O fQorKwlleGl0IDs7CisrICAgIGkqODY6KjozLjI6KikKKysJaWYgdGVzdCAtZiAvdXNyL29wdGlv bnMvY2IubmFtZTsgdGhlbgorKwkJVU5BTUVfUkVMPWBzZWQgLW4gJ3MvLipWZXJzaW9uIC8vcCcg PC91c3Ivb3B0aW9ucy9jYi5uYW1lYAorKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWlzYyRV TkFNRV9SRUwKKysJZWxpZiAvYmluL3VuYW1lIC1YIDI+L2Rldi9udWxsID4vZGV2L251bGwgOyB0 aGVuCisrCQlVTkFNRV9SRUw9YCgvYmluL3VuYW1lIC1YfGdyZXAgUmVsZWFzZXxzZWQgLWUgJ3Mv Lio9IC8vJylgCisrCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rldi9udWxsKSAmJiBV TkFNRV9NQUNISU5FPWk0ODYKKysJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQZW50 aXVtJyA+L2Rldi9udWxsKSBcCisrCQkJJiYgVU5BTUVfTUFDSElORT1pNTg2CisrCQkoL2Jpbi91 bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwpIFwKKysJCQkmJiBV TkFNRV9NQUNISU5FPWk2ODYKKysJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQZW50 aXVtIFBybycgPi9kZXYvbnVsbCkgXAorKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgorKwkJZWNo byAke1VOQU1FX01BQ0hJTkV9LXBjLXNjbyRVTkFNRV9SRUwKKysJZWxzZQorKwkJZWNobyAke1VO QU1FX01BQ0hJTkV9LXBjLXN5c3YzMgorKwlmaQorKwlleGl0IDs7CisrICAgIHBjOio6KjoqKQor KwkjIExlZnQgaGVyZSBmb3IgY29tcGF0aWJpbGl0eToKKysgICAgICAgICMgdW5hbWUgLW0gcHJp bnRzIGZvciBESkdQUCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50cyBub3RoaW5nIGFib3V0Cisr ICAgICAgICAjIHRoZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBhc3N1bWluZyBpMzg2 LgorKwllY2hvIGkzODYtcGMtbXNkb3NkamdwcAorKyAgICAgICAgZXhpdCA7OworKyAgICBJbnRl bDpNYWNoOjMqOiopCisrCWVjaG8gaTM4Ni1wYy1tYWNoMworKwlleGl0IDs7CisrICAgIHBhcmFn b246KjoqOiopCisrCWVjaG8gaTg2MC1pbnRlbC1vc2YxCisrCWV4aXQgOzsKKysgICAgaTg2MDoq OjQuKjoqKSAjIGk4NjAtU1ZSNAorKwlpZiBncmVwIFN0YXJkZW50IC91c3IvaW5jbHVkZS9zeXMv dWFkbWluLmggPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorKwkgIGVjaG8gaTg2MC1zdGFyZGVudC1z eXN2JHtVTkFNRV9SRUxFQVNFfSAjIFN0YXJkZW50IFZpc3RyYSBpODYwLVNWUjQKKysJZWxzZSAj IEFkZCBvdGhlciBpODYwLVNWUjQgdmVuZG9ycyBiZWxvdyBhcyB0aGV5IGFyZSBkaXNjb3ZlcmVk LgorKwkgIGVjaG8gaTg2MC11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9ICAjIFVua25vd24g aTg2MC1TVlI0CisrCWZpCisrCWV4aXQgOzsKKysgICAgbWluaSo6Q1RJWDpTWVMqNToqKQorKwkj ICJtaW5pZnJhbWUiCisrCWVjaG8gbTY4MDEwLWNvbnZlcmdlbnQtc3lzdgorKwlleGl0IDs7Cisr ICAgIG1jNjhrOlVOSVg6U1lTVEVNNTozLjUxbSkKKysJZWNobyBtNjhrLWNvbnZlcmdlbnQtc3lz dgorKwlleGl0IDs7CisrICAgIE02ODA/MDpELU5JWDo1LjM6KikKKysJZWNobyBtNjhrLWRpYWIt ZG5peAorKwlleGl0IDs7CisrICAgIE02OCo6KjpSM1ZbNTY3OF0qOiopCisrCXRlc3QgLXIgL3N5 c1Y2OCAmJiB7IGVjaG8gJ202OGstbW90b3JvbGEtc3lzdic7IGV4aXQ7IH0gOzsKKysgICAgM1sz NDVdPz86Kjo0LjA6My4wIHwgM1szNF0/P0E6Kjo0LjA6My4wIHwgM1szNF0/PywqOio6NC4wOjMu MCB8IDNbMzRdPz8vKjoqOjQuMDozLjAgfCA0NDAwOio6NC4wOjMuMCB8IDQ4NTA6Kjo0LjA6My4w IHwgU0tBNDA6Kjo0LjA6My4wIHwgU0RTMjoqOjQuMDozLjAgfCBTSEcyOio6NC4wOjMuMCB8IFM3 NTAxKjoqOjQuMDozLjApCisrCU9TX1JFTD0nJworKwl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwKKysJ JiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcg PCAvZXRjLy5yZWxpZGAKKysJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9k ZXYvbnVsbCBcCisrCSAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7 IH0KKysJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYv bnVsbCBcCisrCSAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0g OzsKKysgICAgM1szNF0/PzoqOjQuMDoqIHwgM1szNF0/PywqOio6NC4wOiopCisrICAgICAgICAv YmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKysgICAgICAg ICAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0OyBleGl0OyB9IDs7CisrICAgIG02OCo6THlueE9T OjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQorKwllY2hvIG02OGstdW5rbm93bi1seW54b3Mk e1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgbWM2ODAzMDpVTklYX1N5c3RlbV9WOjQu KjoqKQorKwllY2hvIG02OGstYXRhcmktc3lzdjQKKysJZXhpdCA7OworKyAgICBUU1VOQU1JOkx5 bnhPUzoyLio6KikKKysJZWNobyBzcGFyYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0K KysJZXhpdCA7OworKyAgICByczYwMDA6THlueE9TOjIuKjoqKQorKwllY2hvIHJzNjAwMC11bmtu b3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBQb3dlclBDOkx5bnhP UzoyLio6KiB8IFBvd2VyUEM6THlueE9TOjMuWzAxXSo6KiB8IFBvd2VyUEM6THlueE9TOjQuMCo6 KikKKysJZWNobyBwb3dlcnBjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0 IDs7CisrICAgIFNNW0JFXVM6VU5JWF9TVjoqOiopCisrCWVjaG8gbWlwcy1kZGUtc3lzdiR7VU5B TUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBSTSo6UmVsaWFudFVOSVgtKjoqOiopCisrCWVj aG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICBSTSo6U0lOSVgtKjoqOiopCisrCWVj aG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICAqOlNJTklYLSo6KjoqKQorKwlpZiB1 bmFtZSAtcCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgorKwkJVU5BTUVfTUFDSElORT1g KHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1zbmktc3lz djQKKysJZWxzZQorKwkJZWNobyBuczMyay1zbmktc3lzdgorKwlmaQorKwlleGl0IDs7CisrICAg IFBFTlRJVU06Kjo0LjAqOiopICMgVW5pc3lzIGBDbGVhclBhdGggSE1QIElYIDQwMDAnIFNWUjQv TVAgZWZmb3J0CisrICAgICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJhcnRl bEBjY01haWwuQ2Vuc3VzLkdPVj4KKysgICAgICAgIGVjaG8gaTU4Ni11bmlzeXMtc3lzdjQKKysg ICAgICAgIGV4aXQgOzsKKysgICAgKjpVTklYX1N5c3RlbV9WOjQqOkZUWCopCisrCSMgRnJvbSBH ZXJhbGQgSGV3ZXMgPGhld2VzQG9wZW5tYXJrZXQuY29tPi4KKysJIyBIb3cgYWJvdXQgZGlmZmVy ZW50aWF0aW5nIGJldHdlZW4gc3RyYXR1cyBhcmNoaXRlY3R1cmVzPyAtZGptCisrCWVjaG8gaHBw YTEuMS1zdHJhdHVzLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgKjoqOio6RlRYKikKKysJIyBGcm9t IHNlYW5mQHN3ZGMuc3RyYXR1cy5jb20uCisrCWVjaG8gaTg2MC1zdHJhdHVzLXN5c3Y0CisrCWV4 aXQgOzsKKysgICAgaSo4NjpWT1M6KjoqKQorKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVzLmNv bS4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXN0cmF0dXMtdm9zCisrCWV4aXQgOzsKKysgICAg KjpWT1M6KjoqKQorKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVzLmNvbS4KKysJZWNobyBocHBh MS4xLXN0cmF0dXMtdm9zCisrCWV4aXQgOzsKKysgICAgbWM2OCo6QS9VWDoqOiopCisrCWVjaG8g bTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgbmV3cyo6TkVX Uy1PUzo2KjoqKQorKwllY2hvIG1pcHMtc29ueS1uZXdzb3M2CisrCWV4aXQgOzsKKysgICAgUlsz NF0wMDA6KlN5c3RlbV9WKjoqOiogfCBSNDAwMDpVTklYX1NZU1Y6KjoqIHwgUiowMDA6VU5JWF9T VjoqOiopCisrCWlmIFsgLWQgL3Vzci9uZWMgXTsgdGhlbgorKwkgICAgICAgIGVjaG8gbWlwcy1u ZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKysJZWxzZQorKwkgICAgICAgIGVjaG8gbWlwcy11bmtu b3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9CisrCWZpCisrICAgICAgICBleGl0IDs7CisrICAgIEJl Qm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2FyZSBtYWRlIGJ5IEJlLCBQUEMg b25seS4KKysJZWNobyBwb3dlcnBjLWJlLWJlb3MKKysJZXhpdCA7OworKyAgICBCZU1hYzpCZU9T Oio6KikJIyBCZU9TIHJ1bm5pbmcgb24gTWFjIG9yIE1hYyBjbG9uZSwgUFBDIG9ubHkuCisrCWVj aG8gcG93ZXJwYy1hcHBsZS1iZW9zCisrCWV4aXQgOzsKKysgICAgQmVQQzpCZU9TOio6KikJIyBC ZU9TIHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KKysJZWNobyBpNTg2LXBjLWJlb3MK KysJZXhpdCA7OworKyAgICBTWC00OlNVUEVSLVVYOio6KikKKysJZWNobyBzeDQtbmVjLXN1cGVy dXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU1gtNTpTVVBFUi1VWDoqOiopCisr CWVjaG8gc3g1LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFNY LTY6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4Ni1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0K KysJZXhpdCA7OworKyAgICBTWC03OlNVUEVSLVVYOio6KikKKysJZWNobyBzeDctbmVjLXN1cGVy dXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU1gtODpTVVBFUi1VWDoqOiopCisr CWVjaG8gc3g4LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIFNY LThSOlNVUEVSLVVYOio6KikKKysJZWNobyBzeDhyLW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNF fQorKwlleGl0IDs7CisrICAgIFBvd2VyKjpSaGFwc29keToqOiopCisrCWVjaG8gcG93ZXJwYy1h cHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOlJoYXBzb2R5 Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LWFwcGxlLXJoYXBzb2R5JHtVTkFNRV9SRUxF QVNFfQorKwlleGl0IDs7CisrICAgICo6RGFyd2luOio6KikKKysJVU5BTUVfUFJPQ0VTU09SPWB1 bmFtZSAtcGAgfHwgVU5BTUVfUFJPQ0VTU09SPXVua25vd24KKysJY2FzZSAkVU5BTUVfUFJPQ0VT U09SIGluCisrCSAgICB1bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7OworKwllc2Fj CisrCWVjaG8gJHtVTkFNRV9QUk9DRVNTT1J9LWFwcGxlLWRhcndpbiR7VU5BTUVfUkVMRUFTRX0K KysJZXhpdCA7OworKyAgICAqOnByb2NudG8qOio6KiB8ICo6UU5YOlswMTIzNDU2Nzg5XSo6KikK KysJVU5BTUVfUFJPQ0VTU09SPWB1bmFtZSAtcGAKKysJaWYgdGVzdCAiJFVOQU1FX1BST0NFU1NP UiIgPSAieDg2IjsgdGhlbgorKwkJVU5BTUVfUFJPQ0VTU09SPWkzODYKKysJCVVOQU1FX01BQ0hJ TkU9cGMKKysJZmkKKysJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tJHtVTkFNRV9NQUNISU5FfS1u dG8tcW54JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6UU5YOio6NCopCisrCWVj aG8gaTM4Ni1wYy1xbngKKysJZXhpdCA7OworKyAgICBOU0UtPzpOT05TVE9QX0tFUk5FTDoqOiop CisrCWVjaG8gbnNlLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAg TlNSLT86Tk9OU1RPUF9LRVJORUw6KjoqKQorKwllY2hvIG5zci10YW5kZW0tbnNrJHtVTkFNRV9S RUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6Tm9uU3RvcC1VWDoqOiopCisrCWVjaG8gbWlwcy1j b21wYXEtbm9uc3RvcHV4CisrCWV4aXQgOzsKKysgICAgQlMyMDAwOlBPU0lYKjoqOiopCisrCWVj aG8gYnMyMDAwLXNpZW1lbnMtc3lzdgorKwlleGl0IDs7CisrICAgIERTLyo6VU5JWF9TeXN0ZW1f VjoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS0ke1VOQU1FX1NZU1RFTX0tJHtVTkFNRV9S RUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6UGxhbjk6KjoqKQorKwkjICJ1bmFtZSAtbSIgaXMg bm90IGNvbnNpc3RlbnQsIHNvIHVzZSAkY3B1dHlwZSBpbnN0ZWFkLiAzODYKKysJIyBpcyBjb252 ZXJ0ZWQgdG8gaTM4NiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciB4ODYKKysJIyBvcGVyYXRp bmcgc3lzdGVtcy4KKysJaWYgdGVzdCAiJGNwdXR5cGUiID0gIjM4NiI7IHRoZW4KKysJICAgIFVO QU1FX01BQ0hJTkU9aTM4NgorKwllbHNlCisrCSAgICBVTkFNRV9NQUNISU5FPSIkY3B1dHlwZSIK KysJZmkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tcGxhbjkKKysJZXhpdCA7Owor KyAgICAqOlRPUFMtMTA6KjoqKQorKwllY2hvIHBkcDEwLXVua25vd24tdG9wczEwCisrCWV4aXQg OzsKKysgICAgKjpURU5FWDoqOiopCisrCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAorKwlleGl0 IDs7CisrICAgIEtTMTA6VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMtMjA6KjoqIHwgVFlQRTQ6VE9Q Uy0yMDoqOiopCisrCWVjaG8gcGRwMTAtZGVjLXRvcHMyMAorKwlleGl0IDs7CisrICAgIFhLTC0x OlRPUFMtMjA6KjoqIHwgVFlQRTU6VE9QUy0yMDoqOiopCisrCWVjaG8gcGRwMTAteGtsLXRvcHMy MAorKwlleGl0IDs7CisrICAgICo6VE9QUy0yMDoqOiopCisrCWVjaG8gcGRwMTAtdW5rbm93bi10 b3BzMjAKKysJZXhpdCA7OworKyAgICAqOklUUzoqOiopCisrCWVjaG8gcGRwMTAtdW5rbm93bi1p dHMKKysJZXhpdCA7OworKyAgICBTRUk6KjoqOlNFSVVYKQorKyAgICAgICAgZWNobyBtaXBzLXNl aS1zZWl1eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOkRyYWdvbkZseToqOiop CisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5BTUVf UkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AKKysJZXhpdCA7OworKyAgICAqOipWTVM6Kjoq KQorKyAgICAJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKysJY2FzZSAi JHtVTkFNRV9NQUNISU5FfSIgaW4KKysJICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMgOyBleGl0 IDs7CisrCSAgICBJKikgZWNobyBpYTY0LWRlYy12bXMgOyBleGl0IDs7CisrCSAgICBWKikgZWNo byB2YXgtZGVjLXZtcyA7IGV4aXQgOzsKKysJZXNhYyA7OworKyAgICAqOlhFTklYOio6U3lzVikK KysJZWNobyBpMzg2LXBjLXhlbml4CisrCWV4aXQgOzsKKysgICAgaSo4Njpza3lvczoqOiopCisr CWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1za3lvc2BlY2hvICR7VU5BTUVfUkVMRUFTRX1gIHwg c2VkIC1lICdzLyAuKiQvLycKKysJZXhpdCA7OworKyAgICBpKjg2OnJkb3M6KjoqKQorKwllY2hv ICR7VU5BTUVfTUFDSElORX0tcGMtcmRvcworKwlleGl0IDs7CisrZXNhYworKworKyNlY2hvICco Tm8gdW5hbWUgY29tbWFuZCBvciB1bmFtZSBvdXRwdXQgbm90IHJlY29nbml6ZWQuKScgMT4mMgor KyNlY2hvICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9 OiR7VU5BTUVfVkVSU0lPTn0iIDE+JjIKKysKKytldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrY2F0 ID4kZHVtbXkuYyA8PEVPRgorKyNpZmRlZiBfU0VRVUVOVF8KKysjIGluY2x1ZGUgPHN5cy90eXBl cy5oPgorKyMgaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KKysjZW5kaWYKKyttYWluICgpCisrewor KyNpZiBkZWZpbmVkIChzb255KQorKyNpZiBkZWZpbmVkIChNSVBTRUIpCisrICAvKiBCRkQgd2Fu dHMgImJzZCIgaW5zdGVhZCBvZiAibmV3c29zIi4gIFBlcmhhcHMgQkZEIHNob3VsZCBiZSBjaGFu Z2VkLAorKyAgICAgSSBkb24ndCBrbm93Li4uLiAgKi8KKysgIHByaW50ZiAoIm1pcHMtc29ueS1i c2RcbiIpOyBleGl0ICgwKTsKKysjZWxzZQorKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKysgIHBy aW50ZiAoIm02OGstc29ueS1uZXdzb3Mlc1xuIiwKKysjaWZkZWYgTkVXU09TNAorKyAgICAgICAg ICAiNCIKKysjZWxzZQorKwkgICIiCisrI2VuZGlmCisrICAgICAgICAgKTsgZXhpdCAoMCk7Cisr I2VuZGlmCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKF9fYXJtKSAmJiBkZWZpbmVkIChfX2Fj b3JuKSAmJiBkZWZpbmVkIChfX3VuaXgpCisrICBwcmludGYgKCJhcm0tYWNvcm4tcmlzY2l4XG4i KTsgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKGhwMzAwKSAmJiAhZGVmaW5l ZCAoaHB1eCkKKysgIHByaW50ZiAoIm02OGstaHAtYnNkXG4iKTsgZXhpdCAoMCk7CisrI2VuZGlm CisrCisrI2lmIGRlZmluZWQgKE5lWFQpCisrI2lmICFkZWZpbmVkIChfX0FSQ0hJVEVDVFVSRV9f KQorKyNkZWZpbmUgX19BUkNISVRFQ1RVUkVfXyAibTY4ayIKKysjZW5kaWYKKysgIGludCB2ZXJz aW9uOworKyAgdmVyc2lvbj1gKGhvc3RpbmZvIHwgc2VkIC1uICdzLy4qTmVYVCBNYWNoIFwoWzAt OV0qXCkuKi9cMS9wJykgMj4vZGV2L251bGxgOworKyAgaWYgKHZlcnNpb24gPCA0KQorKyAgICBw cmludGYgKCIlcy1uZXh0LW5leHRzdGVwJWRcbiIsIF9fQVJDSElURUNUVVJFX18sIHZlcnNpb24p OworKyAgZWxzZQorKyAgICBwcmludGYgKCIlcy1uZXh0LW9wZW5zdGVwJWRcbiIsIF9fQVJDSElU RUNUVVJFX18sIHZlcnNpb24pOworKyAgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrI2lmIGRlZmlu ZWQgKE1VTFRJTUFYKSB8fCBkZWZpbmVkIChuMTYpCisrI2lmIGRlZmluZWQgKFVNQVhWKQorKyAg cHJpbnRmICgibnMzMmstZW5jb3JlLXN5c3ZcbiIpOyBleGl0ICgwKTsKKysjZWxzZQorKyNpZiBk ZWZpbmVkIChDTVUpCisrICBwcmludGYgKCJuczMyay1lbmNvcmUtbWFjaFxuIik7IGV4aXQgKDAp OworKyNlbHNlCisrICBwcmludGYgKCJuczMyay1lbmNvcmUtYnNkXG4iKTsgZXhpdCAoMCk7Cisr I2VuZGlmCisrI2VuZGlmCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKF9fMzg2QlNEX18pCisr ICBwcmludGYgKCJpMzg2LXBjLWJzZFxuIik7IGV4aXQgKDApOworKyNlbmRpZgorKworKyNpZiBk ZWZpbmVkIChzZXF1ZW50KQorKyNpZiBkZWZpbmVkIChpMzg2KQorKyAgcHJpbnRmICgiaTM4Ni1z ZXF1ZW50LWR5bml4XG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrI2lmIGRlZmluZWQgKG5zMzIw MDApCisrICBwcmludGYgKCJuczMyay1zZXF1ZW50LWR5bml4XG4iKTsgZXhpdCAoMCk7CisrI2Vu ZGlmCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKF9TRVFVRU5UXykKKysgICAgc3RydWN0IHV0 c25hbWUgdW47CisrCisrICAgIHVuYW1lKCZ1bik7CisrCisrICAgIGlmIChzdHJuY21wKHVuLnZl cnNpb24sICJWMiIsIDIpID09IDApIHsKKysJcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDJcbiIp OyBleGl0ICgwKTsKKysgICAgfQorKyAgICBpZiAoc3RybmNtcCh1bi52ZXJzaW9uLCAiVjEiLCAy KSA9PSAwKSB7IC8qIFhYWCBpcyBWMSBjb3JyZWN0PyAqLworKwlwcmludGYgKCJpMzg2LXNlcXVl bnQtcHR4MVxuIik7IGV4aXQgKDApOworKyAgICB9CisrICAgIHByaW50ZiAoImkzODYtc2VxdWVu dC1wdHhcbiIpOyBleGl0ICgwKTsKKysKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAodmF4KQor KyMgaWYgIWRlZmluZWQgKHVsdHJpeCkKKysjICBpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKysjICBp ZiBkZWZpbmVkIChCU0QpCisrIyAgIGlmIEJTRCA9PSA0MworKyAgICAgIHByaW50ZiAoInZheC1k ZWMtYnNkNC4zXG4iKTsgZXhpdCAoMCk7CisrIyAgIGVsc2UKKysjICAgIGlmIEJTRCA9PSAxOTkw MDYKKysgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZDQuM3Jlbm9cbiIpOyBleGl0ICgwKTsKKysj ICAgIGVsc2UKKysgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOworKyMg ICAgZW5kaWYKKysjICAgZW5kaWYKKysjICBlbHNlCisrICAgIHByaW50ZiAoInZheC1kZWMtYnNk XG4iKTsgZXhpdCAoMCk7CisrIyAgZW5kaWYKKysjIGVsc2UKKysgICAgcHJpbnRmICgidmF4LWRl Yy11bHRyaXhcbiIpOyBleGl0ICgwKTsKKysjIGVuZGlmCisrI2VuZGlmCisrCisrI2lmIGRlZmlu ZWQgKGFsbGlhbnQpICYmIGRlZmluZWQgKGk4NjApCisrICBwcmludGYgKCJpODYwLWFsbGlhbnQt YnNkXG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrICBleGl0ICgxKTsKKyt9CisrRU9GCisr CisrJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwgJiYgU1lTVEVN X05BTUU9YCRkdW1teWAgJiYKKysJeyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9CisrCisr IyBBcG9sbG9zIHB1dCB0aGUgc3lzdGVtIHR5cGUgaW4gdGhlIGVudmlyb25tZW50LgorKworK3Rl c3QgLWQgL3Vzci9hcG9sbG8gJiYgeyBlY2hvICR7SVNQfS1hcG9sbG8tJHtTWVNUWVBFfTsgZXhp dDsgfQorKworKyMgQ29udmV4IHZlcnNpb25zIHRoYXQgcHJlZGF0ZSB1bmFtZSBjYW4gdXNlIGdl dHN5c2luZm8oMSkKKysKKytpZiBbIC14IC91c3IvY29udmV4L2dldHN5c2luZm8gXQorK3RoZW4K KysgICAgY2FzZSBgZ2V0c3lzaW5mbyAtZiBjcHVfdHlwZWAgaW4KKysgICAgYzEqKQorKwllY2hv IGMxLWNvbnZleC1ic2QKKysJZXhpdCA7OworKyAgICBjMiopCisrCWlmIGdldHN5c2luZm8gLWYg c2NhbGFyX2FjYworKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKKysJZWxzZSBlY2hvIGMyLWNv bnZleC1ic2QKKysJZmkKKysJZXhpdCA7OworKyAgICBjMzQqKQorKwllY2hvIGMzNC1jb252ZXgt YnNkCisrCWV4aXQgOzsKKysgICAgYzM4KikKKysJZWNobyBjMzgtY29udmV4LWJzZAorKwlleGl0 IDs7CisrICAgIGM0KikKKysJZWNobyBjNC1jb252ZXgtYnNkCisrCWV4aXQgOzsKKysgICAgZXNh YworK2ZpCisrCisrY2F0ID4mMiA8PEVPRgorKyQwOiB1bmFibGUgdG8gZ3Vlc3Mgc3lzdGVtIHR5 cGUKKysKKytUaGlzIHNjcmlwdCwgbGFzdCBtb2RpZmllZCAkdGltZXN0YW1wLCBoYXMgZmFpbGVk IHRvIHJlY29nbml6ZQorK3RoZSBvcGVyYXRpbmcgc3lzdGVtIHlvdSBhcmUgdXNpbmcuIEl0IGlz IGFkdmlzZWQgdGhhdCB5b3UKKytkb3dubG9hZCB0aGUgbW9zdCB1cCB0byBkYXRlIHZlcnNpb24g b2YgdGhlIGNvbmZpZyBzY3JpcHRzIGZyb20KKysKKysgIGh0dHA6Ly9zYXZhbm5haC5nbnUub3Jn L2NnaS1iaW4vdmlld2N2cy8qY2hlY2tvdXQqL2NvbmZpZy9jb25maWcvY29uZmlnLmd1ZXNzCisr YW5kCisrICBodHRwOi8vc2F2YW5uYWguZ251Lm9yZy9jZ2ktYmluL3ZpZXdjdnMvKmNoZWNrb3V0 Ki9jb25maWcvY29uZmlnL2NvbmZpZy5zdWIKKysKKytJZiB0aGUgdmVyc2lvbiB5b3UgcnVuICgk MCkgaXMgYWxyZWFkeSB1cCB0byBkYXRlLCBwbGVhc2UKKytzZW5kIHRoZSBmb2xsb3dpbmcgZGF0 YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0aGluayBtaWdodCBiZQorK3BlcnRpbmVudCB0byA8 Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4gaW4gb3JkZXIgdG8gcHJvdmlkZSB0aGUgbmVlZGVkCisr aW5mb3JtYXRpb24gdG8gaGFuZGxlIHlvdXIgc3lzdGVtLgorKworK2NvbmZpZy5ndWVzcyB0aW1l c3RhbXAgPSAkdGltZXN0YW1wCisrCisrdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVs bCB8fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXIgPSBgKHVuYW1lIC1yKSAyPi9kZXYvbnVsbCB8 fCBlY2hvIHVua25vd25gCisrdW5hbWUgLXMgPSBgKHVuYW1lIC1zKSAyPi9kZXYvbnVsbCB8fCBl Y2hvIHVua25vd25gCisrdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hv IHVua25vd25gCisrCisrL3Vzci9iaW4vdW5hbWUgLXAgPSBgKC91c3IvYmluL3VuYW1lIC1wKSAy Pi9kZXYvbnVsbGAKKysvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2 L251bGxgCisrCisraG9zdGluZm8gICAgICAgICAgICAgICA9IGAoaG9zdGluZm8pIDI+L2Rldi9u dWxsYAorKy9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9u dWxsYAorKy91c3IvYmluL2FyY2ggLWsgICAgICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rl di9udWxsYAorKy9iaW4vYXJjaCAgICAgICAgICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2L251 bGxgCisrL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2 L251bGxgCisrL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5m bykgMj4vZGV2L251bGxgCisrCisrVU5BTUVfTUFDSElORSA9ICR7VU5BTUVfTUFDSElORX0KKytV TkFNRV9SRUxFQVNFID0gJHtVTkFNRV9SRUxFQVNFfQorK1VOQU1FX1NZU1RFTSAgPSAke1VOQU1F X1NZU1RFTX0KKytVTkFNRV9WRVJTSU9OID0gJHtVTkFNRV9WRVJTSU9OfQorK0VPRgorKworK2V4 aXQgMQorKworKyMgTG9jYWwgdmFyaWFibGVzOgorKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1m aWxlLWhvb2tzICd0aW1lLXN0YW1wKQorKyMgdGltZS1zdGFtcC1zdGFydDogInRpbWVzdGFtcD0n IgorKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkIgorKyMgdGltZS1zdGFtcC1l bmQ6ICInIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25m aWcuc3ViIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLnN1YgorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL2NvbmZpZy9jb25maWcuc3ViCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jb25maWcuc3ViCTIwMDktMDUt MDMgMDA6MjA6NDQuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE2NTggQEAKKysjISAvYmlu L3NoCisrIyBDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gc3Vicm91dGluZSBzY3JpcHQuCisrIyAg IENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwg MTk5OSwKKysjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAw NywgMjAwOAorKyMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKyt0aW1lc3Rh bXA9JzIwMDgtMDEtMTYnCisrCisrIyBUaGlzIGZpbGUgaXMgKGluIHByaW5jaXBsZSkgY29tbW9u IHRvIEFMTCBHTlUgc29mdHdhcmUuCisrIyBUaGUgcHJlc2VuY2Ugb2YgYSBtYWNoaW5lIGluIHRo aXMgZmlsZSBzdWdnZXN0cyB0aGF0IFNPTUUgR05VIHNvZnR3YXJlCisrIyBjYW4gaGFuZGxlIHRo YXQgbWFjaGluZS4gIEl0IGRvZXMgbm90IGltcGx5IEFMTCBHTlUgc29mdHdhcmUgY2FuLgorKyMK KysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisr IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8g dGhlIEZyZWUgU29mdHdhcmUKKysjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl dCAtIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisrIyAwMjExMC0xMzAxLCBVU0EuCisrIworKyMg QXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Us IGlmIHlvdQorKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhh dCBjb250YWlucyBhCisrIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2Nv bmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgorKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRl cm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorKworKworKyMg UGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4uICBTdWJtaXQg YSBjb250ZXh0CisrIyBkaWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBDaGFuZ2VMb2cgZW50 cnkuCisrIworKyMgQ29uZmlndXJhdGlvbiBzdWJyb3V0aW5lIHRvIHZhbGlkYXRlIGFuZCBjYW5v bmljYWxpemUgYSBjb25maWd1cmF0aW9uIHR5cGUuCisrIyBTdXBwbHkgdGhlIHNwZWNpZmllZCBj b25maWd1cmF0aW9uIHR5cGUgYXMgYW4gYXJndW1lbnQuCisrIyBJZiBpdCBpcyBpbnZhbGlkLCB3 ZSBwcmludCBhbiBlcnJvciBtZXNzYWdlIG9uIHN0ZGVyciBhbmQgZXhpdCB3aXRoIGNvZGUgMS4K KysjIE90aGVyd2lzZSwgd2UgcHJpbnQgdGhlIGNhbm9uaWNhbCBjb25maWcgdHlwZSBvbiBzdGRv dXQgYW5kIHN1Y2NlZWQuCisrCisrIyBUaGlzIGZpbGUgaXMgc3VwcG9zZWQgdG8gYmUgdGhlIHNh bWUgZm9yIGFsbCBHTlUgcGFja2FnZXMKKysjIGFuZCByZWNvZ25pemUgYWxsIHRoZSBDUFUgdHlw ZXMsIHN5c3RlbSB0eXBlcyBhbmQgYWxpYXNlcworKyMgdGhhdCBhcmUgbWVhbmluZ2Z1bCB3aXRo ICphbnkqIEdOVSBzb2Z0d2FyZS4KKysjIEVhY2ggcGFja2FnZSBpcyByZXNwb25zaWJsZSBmb3Ig cmVwb3J0aW5nIHdoaWNoIHZhbGlkIGNvbmZpZ3VyYXRpb25zCisrIyBpdCBkb2VzIG5vdCBzdXBw b3J0LiAgVGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2gKKysjIGEgZmFpbHVy ZSB0byBzdXBwb3J0IGEgdmFsaWQgY29uZmlndXJhdGlvbiBmcm9tIGEgbWVhbmluZ2xlc3MKKysj IGNvbmZpZ3VyYXRpb24uCisrCisrIyBUaGUgZ29hbCBvZiB0aGlzIGZpbGUgaXMgdG8gbWFwIGFs bCB0aGUgdmFyaW91cyB2YXJpYXRpb25zIG9mIGEgZ2l2ZW4KKysjIG1hY2hpbmUgc3BlY2lmaWNh dGlvbiBpbnRvIGEgc2luZ2xlIHNwZWNpZmljYXRpb24gaW4gdGhlIGZvcm06CisrIwlDUFVfVFlQ RS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTQorKyMgb3IgaW4gc29tZSBjYXNlcywgdGhl IG5ld2VyIGZvdXItcGFydCBmb3JtOgorKyMJQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1P UEVSQVRJTkdfU1lTVEVNCisrIyBJdCBpcyB3cm9uZyB0byBlY2hvIGFueSBvdGhlciB0eXBlIG9m IHNwZWNpZmljYXRpb24uCisrCisrbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCisr CisrdXNhZ2U9IlwKKytVc2FnZTogJDAgW09QVElPTl0gQ1BVLU1GUi1PUFNZUworKyAgICAgICAk MCBbT1BUSU9OXSBBTElBUworKworK0Nhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gbmFtZS4K KysKKytPcGVyYXRpb24gbW9kZXM6CisrICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBo ZWxwLCB0aGVuIGV4aXQKKysgIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxhc3Qg bW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKKysgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJz aW9uIG51bWJlciwgdGhlbiBleGl0CisrCisrUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNv bmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKKysKKyt2ZXJzaW9uPSJcCisrR05VIGNvbmZpZy5zdWIg KCR0aW1lc3RhbXApCisrCisrQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAx OTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAorKzIwMDIsIDIwMDMsIDIwMDQsIDIw MDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisr VGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRp b25zLiAgVGhlcmUgaXMgTk8KKyt3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCisrCisraGVscD0iCisrVHJ5 IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgorKworKyMgUGFyc2UgY29tbWFu ZCBsaW5lCisrd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCisrICBjYXNlICQxIGluCisrICAgIC0t dGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCisrICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsg ZXhpdCA7OworKyAgICAtLXZlcnNpb24gfCAtdiApCisrICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7 IGV4aXQgOzsKKysgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKKysgICAgICAgZWNobyAiJHVzYWdl IjsgZXhpdCA7OworKyAgICAtLSApICAgICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKKysgICAg ICAgc2hpZnQ7IGJyZWFrIDs7CisrICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KKysgICAg ICAgYnJlYWsgOzsKKysgICAgLSogKQorKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9u ICQxJGhlbHAiCisrICAgICAgIGV4aXQgMSA7OworKworKyAgICAqbG9jYWwqKQorKyAgICAgICAj IEZpcnN0IHBhc3MgdGhyb3VnaCBhbnkgbG9jYWwgbWFjaGluZSB0eXBlcy4KKysgICAgICAgZWNo byAkMQorKyAgICAgICBleGl0IDs7CisrCisrICAgICogKQorKyAgICAgICBicmVhayA7OworKyAg ZXNhYworK2RvbmUKKysKKytjYXNlICQjIGluCisrIDApIGVjaG8gIiRtZTogbWlzc2luZyBhcmd1 bWVudCRoZWxwIiA+JjIKKysgICAgZXhpdCAxOzsKKysgMSkgOzsKKysgKikgZWNobyAiJG1lOiB0 b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCisrICAgIGV4aXQgMTs7CisrZXNhYworKworKyMg U2VwYXJhdGUgd2hhdCB0aGUgdXNlciBnYXZlIGludG8gQ1BVLUNPTVBBTlkgYW5kIE9TIG9yIEtF Uk5FTC1PUyAoaWYgYW55KS4KKysjIEhlcmUgd2UgbXVzdCByZWNvZ25pemUgYWxsIHRoZSB2YWxp ZCBLRVJORUwtT1MgY29tYmluYXRpb25zLgorK21heWJlX29zPWBlY2hvICQxIHwgc2VkICdzL15c KC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMi8nYAorK2Nhc2UgJG1heWJlX29zIGluCisrICBudG8t cW54KiB8IGxpbnV4LWdudSogfCBsaW51eC1kaWV0bGliYyB8IGxpbnV4LW5ld2xpYiogfCBsaW51 eC11Y2xpYmMqIHwgXAorKyAgdWNsaW51eC11Y2xpYmMqIHwgdWNsaW51eC1nbnUqIHwga2ZyZWVi c2QqLWdudSogfCBrbmV0YnNkKi1nbnUqIHwgbmV0YnNkKi1nbnUqIHwgXAorKyAgc3Rvcm0tY2hh b3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEqKQorKyAgICBvcz0tJG1heWJlX29zCisrICAgIGJh c2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkkL1wx LydgCisrICAgIDs7CisrICAqKQorKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdz Ly1bXi1dKiQvLydgCisrICAgIGlmIFsgJGJhc2ljX21hY2hpbmUgIT0gJDEgXQorKyAgICB0aGVu IG9zPWBlY2hvICQxIHwgc2VkICdzLy4qLS8tLydgCisrICAgIGVsc2Ugb3M9OyBmaQorKyAgICA7 OworK2VzYWMKKysKKysjIyMgTGV0J3MgcmVjb2duaXplIGNvbW1vbiBtYWNoaW5lcyBhcyBub3Qg YmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMgc28KKysjIyMgdGhhdCB0aGluZ3MgbGlrZSBjb25maWcu c3ViIGRlY3N0YXRpb24tMzEwMCB3b3JrLiAgV2UgYWxzbworKyMjIyByZWNvZ25pemUgc29tZSBt YW51ZmFjdHVyZXJzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcywgc28gd2UKKysjIyMg Y2FuIHByb3ZpZGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyBiZWxvdy4KKytjYXNlICRvcyBp bgorKwktc3VuKm9zKikKKysJCSMgUHJldmVudCBmb2xsb3dpbmcgY2xhdXNlIGZyb20gaGFuZGxp bmcgdGhpcyBpbnZhbGlkIGlucHV0LgorKwkJOzsKKysJLWRlYyogfCAtbWlwcyogfCAtc2VxdWVu dCogfCAtZW5jb3JlKiB8IC1wYzUzMiogfCAtc2dpKiB8IC1zb255KiB8IFwKKysJLWF0dCogfCAt NzMwMCogfCAtMzMwMCogfCAtZGVsdGEqIHwgLW1vdG9yb2xhKiB8IC1zdW5bMjM0XSogfCBcCisr CS11bmljb20qIHwgLWlibSogfCAtbmV4dCB8IC1ocCB8IC1pc2kqIHwgLWFwb2xsbyB8IC1hbHRv cyogfCBcCisrCS1jb252ZXJnZW50KiB8IC1uY3IqIHwgLW5ld3MgfCAtMzIqIHwgLTM2MDAqIHwg LTMxMDAqIHwgLWhpdGFjaGkqIHxcCisrCS1jWzEyM10qIHwgLWNvbnZleCogfCAtc3VuIHwgLWNy ZHMgfCAtb21yb24qIHwgLWRnIHwgLXVsdHJhIHwgLXR0aSogfCBcCisrCS1oYXJyaXMgfCAtZG9s cGhpbiB8IC1oaWdobGV2ZWwgfCAtZ291bGQgfCAtY2JtIHwgLW5zIHwgLW1hc3Njb21wIHwgXAor KwktYXBwbGUgfCAtYXhpcyB8IC1rbnV0aCB8IC1jcmF5KQorKwkJb3M9CisrCQliYXNpY19tYWNo aW5lPSQxCisrCQk7OworKwktc2ltIHwgLWNpc2NvIHwgLW9raSB8IC13ZWMgfCAtd2luYm9uZCkK KysJCW9zPQorKwkJYmFzaWNfbWFjaGluZT0kMQorKwkJOzsKKysJLXNjb3V0KQorKwkJOzsKKysJ LXdycykKKysJCW9zPS12eHdvcmtzCisrCQliYXNpY19tYWNoaW5lPSQxCisrCQk7OworKwktY2hv cnVzb3MqKQorKwkJb3M9LWNob3J1c29zCisrCQliYXNpY19tYWNoaW5lPSQxCisrCQk7OworKyAJ LWNob3J1c3JkYikKKysgCQlvcz0tY2hvcnVzcmRiCisrCQliYXNpY19tYWNoaW5lPSQxCisrIAkJ OzsKKysJLWhpdXgqKQorKwkJb3M9LWhpdXh3ZTIKKysJCTs7CisrCS1zY282KQorKwkJb3M9LXNj bzV2NgorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8n YAorKwkJOzsKKysJLXNjbzUpCisrCQlvcz0tc2NvMy4ydjUKKysJCWJhc2ljX21hY2hpbmU9YGVj aG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1zY280KQorKwkJb3M9 LXNjbzMuMnY0CisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2 LXBjLydgCisrCQk7OworKwktc2NvMy4yLls0LTldKikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAt ZSAncy9zY28zLjIuL3NjbzMuMnYvJ2AKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQg LWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1zY28zLjJ2WzQtOV0qKQorKwkJIyBEb24n dCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KKysJCWJhc2ljX21hY2hp bmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1zY281djYq KQorKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KKysJ CWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7 CisrCS1zY28qKQorKwkJb3M9LXNjbzMuMnYyCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwg c2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktdWRrKikKKysJCWJhc2ljX21hY2hp bmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKysJCTs7CisrCS1pc2MpCisr CQlvcz0taXNjMi4yCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4q Lzg2LXBjLydgCisrCQk7OworKwktY2xpeCopCisrCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaW50 ZXJncmFwaAorKwkJOzsKKysJLWlzYyopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2Vk IC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktbHlueCopCisrCQlvcz0tbHlueG9zCisr CQk7OworKwktcHR4KikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYt LiovODYtc2VxdWVudC8nYAorKwkJOzsKKysJLXdpbmRvd3NudCopCisrCQlvcz1gZWNobyAkb3Mg fCBzZWQgLWUgJ3Mvd2luZG93c250L3dpbm50LydgCisrCQk7OworKwktcHNvcyopCisrCQlvcz0t cHNvcworKwkJOzsKKysJLW1pbnQgfCAtbWludFswLTldKikKKysJCWJhc2ljX21hY2hpbmU9bTY4 ay1hdGFyaQorKwkJb3M9LW1pbnQKKysJCTs7CisrZXNhYworKworKyMgRGVjb2RlIGFsaWFzZXMg Zm9yIGNlcnRhaW4gQ1BVLUNPTVBBTlkgY29tYmluYXRpb25zLgorK2Nhc2UgJGJhc2ljX21hY2hp bmUgaW4KKysJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkg bmFtZS4KKysJIyBTb21lIGFyZSBvbWl0dGVkIGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lh bCBtZWFuaW5ncyBiZWxvdy4KKysJMTc1MGEgfCA1ODAgXAorKwl8IGEyOWsgXAorKwl8IGFscGhh IHwgYWxwaGFldls0LThdIHwgYWxwaGFldjU2IHwgYWxwaGFldjZbNzhdIHwgYWxwaGFwY2E1WzY3 XSBcCisrCXwgYWxwaGE2NCB8IGFscGhhNjRldls0LThdIHwgYWxwaGE2NGV2NTYgfCBhbHBoYTY0 ZXY2Wzc4XSB8IGFscGhhNjRwY2E1WzY3XSBcCisrCXwgYW0zM18yLjAgXAorKwl8IGFyYyB8IGFy bSB8IGFybVtibF1lIHwgYXJtZVtsYl0gfCBhcm12WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8IGF2 ciB8IGF2cjMyIFwKKysJfCBiZmluIFwKKysJfCBjNHggfCBjbGlwcGVyIFwKKysJfCBkMTB2IHwg ZDMwdiB8IGRseCB8IGRzcDE2eHggXAorKwl8IGZpZG8gfCBmcjMwIHwgZnJ2IFwKKysJfCBoODMw MCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBo cHBhNjQgXAorKwl8IGkzNzAgfCBpODYwIHwgaTk2MCB8IGlhNjQgXAorKwl8IGlwMmsgfCBpcTIw MDAgXAorKwl8IG0zMmMgfCBtMzJyIHwgbTMycmxlIHwgbTY4MDAwIHwgbTY4ayB8IG04OGsgXAor Kwl8IG1heHEgfCBtYiB8IG1pY3JvYmxhemUgfCBtY29yZSB8IG1lcCBcCisrCXwgbWlwcyB8IG1p cHNiZSB8IG1pcHNlYiB8IG1pcHNlbCB8IG1pcHNsZSBcCisrCXwgbWlwczE2IFwKKysJfCBtaXBz NjQgfCBtaXBzNjRlbCBcCisrCXwgbWlwczY0dnIgfCBtaXBzNjR2cmVsIFwKKysJfCBtaXBzNjRv cmlvbiB8IG1pcHM2NG9yaW9uZWwgXAorKwl8IG1pcHM2NHZyNDEwMCB8IG1pcHM2NHZyNDEwMGVs IFwKKysJfCBtaXBzNjR2cjQzMDAgfCBtaXBzNjR2cjQzMDBlbCBcCisrCXwgbWlwczY0dnI1MDAw IHwgbWlwczY0dnI1MDAwZWwgXAorKwl8IG1pcHM2NHZyNTkwMCB8IG1pcHM2NHZyNTkwMGVsIFwK KysJfCBtaXBzaXNhMzIgfCBtaXBzaXNhMzJlbCBcCisrCXwgbWlwc2lzYTMycjIgfCBtaXBzaXNh MzJyMmVsIFwKKysJfCBtaXBzaXNhNjQgfCBtaXBzaXNhNjRlbCBcCisrCXwgbWlwc2lzYTY0cjIg fCBtaXBzaXNhNjRyMmVsIFwKKysJfCBtaXBzaXNhNjRzYjEgfCBtaXBzaXNhNjRzYjFlbCBcCisr CXwgbWlwc2lzYTY0c3I3MWsgfCBtaXBzaXNhNjRzcjcxa2VsIFwKKysJfCBtaXBzdHgzOSB8IG1p cHN0eDM5ZWwgXAorKwl8IG1uMTAyMDAgfCBtbjEwMzAwIFwKKysJfCBtdCBcCisrCXwgbXNwNDMw IFwKKysJfCBuaW9zIHwgbmlvczIgXAorKwl8IG5zMTZrIHwgbnMzMmsgXAorKwl8IG9yMzIgXAor Kwl8IHBkcDEwIHwgcGRwMTEgfCBwaiB8IHBqbCBcCisrCXwgcG93ZXJwYyB8IHBvd2VycGM2NCB8 IHBvd2VycGM2NGxlIHwgcG93ZXJwY2xlIHwgcHBjYmUgXAorKwl8IHB5cmFtaWQgXAorKwl8IHNj b3JlIFwKKysJfCBzaCB8IHNoWzEyMzRdIHwgc2hbMjRdYSB8IHNoWzIzXWUgfCBzaFszNF1lYiB8 IHNoZWIgfCBzaGJlIHwgc2hsZSB8IHNoWzEyMzRdbGUgfCBzaDNlbGUgXAorKwl8IHNoNjQgfCBz aDY0bGUgXAorKwl8IHNwYXJjIHwgc3BhcmM2NCB8IHNwYXJjNjRiIHwgc3BhcmM2NHYgfCBzcGFy Yzg2eCB8IHNwYXJjbGV0IHwgc3BhcmNsaXRlIFwKKysJfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNw YXJjdjliIHwgc3BhcmN2OXYgXAorKwl8IHNwdSB8IHN0cm9uZ2FybSBcCisrCXwgdGFob2UgfCB0 aHVtYiB8IHRpYzR4IHwgdGljODAgfCB0cm9uIFwKKysJfCB2ODUwIHwgdjg1MGUgXAorKwl8IHdl MzJrIFwKKysJfCB4ODYgfCB4YzE2eCB8IHhzY2FsZSB8IHhzY2FsZWVbYmxdIHwgeHN0b3JteTE2 IHwgeHRlbnNhIFwKKysJfCB6OGspCisrCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVu a25vd24KKysJCTs7CisrCW02ODExIHwgbTY4aGMxMSB8IG02ODEyIHwgbTY4aGMxMikKKysJCSMg TW90b3JvbGEgNjhIQzExLzEyLgorKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtu b3duCisrCQlvcz0tbm9uZQorKwkJOzsKKysJbTg4MTEwIHwgbTY4MFsxMjM0Nl0wIHwgbTY4Mz8y IHwgbTY4MzYwIHwgbTUyMDAgfCB2NzAgfCB3NjUgfCB6OGspCisrCQk7OworKwltczEpCisrCQli YXNpY19tYWNoaW5lPW10LXVua25vd24KKysJCTs7CisrCisrCSMgV2UgdXNlIGBwYycgcmF0aGVy IHRoYW4gYHVua25vd24nCisrCSMgYmVjYXVzZSAoMSkgdGhhdCdzIHdoYXQgdGhleSBub3JtYWxs eSBhcmUsIGFuZAorKwkjICgyKSB0aGUgd29yZCAidW5rbm93biIgdGVuZHMgdG8gY29uZnVzZSBi ZWdpbm5pbmcgdXNlcnMuCisrCWkqODYgfCB4ODZfNjQpCisrCSAgYmFzaWNfbWFjaGluZT0kYmFz aWNfbWFjaGluZS1wYworKwkgIDs7CisrCSMgT2JqZWN0IGlmIG1vcmUgdGhhbiBvbmUgY29tcGFu eSBuYW1lIHdvcmQuCisrCSotKi0qKQorKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAk MVwnOiBtYWNoaW5lIFxgJGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCisrCQll eGl0IDEKKysJCTs7CisrCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aCBjb21w YW55IG5hbWUuCisrCTU4MC0qIFwKKysJfCBhMjlrLSogXAorKwl8IGFscGhhLSogfCBhbHBoYWV2 WzQtOF0tKiB8IGFscGhhZXY1Ni0qIHwgYWxwaGFldjZbNzhdLSogXAorKwl8IGFscGhhNjQtKiB8 IGFscGhhNjRldls0LThdLSogfCBhbHBoYTY0ZXY1Ni0qIHwgYWxwaGE2NGV2Nls3OF0tKiBcCisr CXwgYWxwaGFwY2E1WzY3XS0qIHwgYWxwaGE2NHBjYTVbNjddLSogfCBhcmMtKiBcCisrCXwgYXJt LSogIHwgYXJtYmUtKiB8IGFybWxlLSogfCBhcm1lYi0qIHwgYXJtdiotKiBcCisrCXwgYXZyLSog fCBhdnIzMi0qIFwKKysJfCBiZmluLSogfCBiczIwMDAtKiBcCisrCXwgY1sxMjNdKiB8IGMzMC0q IHwgW2NqdF05MC0qIHwgYzR4LSogfCBjNTR4LSogfCBjNTV4LSogfCBjNngtKiBcCisrCXwgY2xp cHBlci0qIHwgY3JheW52LSogfCBjeWRyYS0qIFwKKysJfCBkMTB2LSogfCBkMzB2LSogfCBkbHgt KiBcCisrCXwgZWx4c2ktKiBcCisrCXwgZjMwWzAxXS0qIHwgZjcwMC0qIHwgZmlkby0qIHwgZnIz MC0qIHwgZnJ2LSogfCBmeDgwLSogXAorKwl8IGg4MzAwLSogfCBoODUwMC0qIFwKKysJfCBocHBh LSogfCBocHBhMS5bMDFdLSogfCBocHBhMi4wLSogfCBocHBhMi4wW253XS0qIHwgaHBwYTY0LSog XAorKwl8IGkqODYtKiB8IGk4NjAtKiB8IGk5NjAtKiB8IGlhNjQtKiBcCisrCXwgaXAyay0qIHwg aXEyMDAwLSogXAorKwl8IG0zMmMtKiB8IG0zMnItKiB8IG0zMnJsZS0qIFwKKysJfCBtNjgwMDAt KiB8IG02ODBbMDEyMzQ2XTAtKiB8IG02ODM2MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAorKwl8 IG04ODExMC0qIHwgbTg4ay0qIHwgbWF4cS0qIHwgbWNvcmUtKiBcCisrCXwgbWlwcy0qIHwgbWlw c2JlLSogfCBtaXBzZWItKiB8IG1pcHNlbC0qIHwgbWlwc2xlLSogXAorKwl8IG1pcHMxNi0qIFwK KysJfCBtaXBzNjQtKiB8IG1pcHM2NGVsLSogXAorKwl8IG1pcHM2NHZyLSogfCBtaXBzNjR2cmVs LSogXAorKwl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVsLSogXAorKwl8IG1pcHM2NHZy NDEwMC0qIHwgbWlwczY0dnI0MTAwZWwtKiBcCisrCXwgbWlwczY0dnI0MzAwLSogfCBtaXBzNjR2 cjQzMDBlbC0qIFwKKysJfCBtaXBzNjR2cjUwMDAtKiB8IG1pcHM2NHZyNTAwMGVsLSogXAorKwl8 IG1pcHM2NHZyNTkwMC0qIHwgbWlwczY0dnI1OTAwZWwtKiBcCisrCXwgbWlwc2lzYTMyLSogfCBt aXBzaXNhMzJlbC0qIFwKKysJfCBtaXBzaXNhMzJyMi0qIHwgbWlwc2lzYTMycjJlbC0qIFwKKysJ fCBtaXBzaXNhNjQtKiB8IG1pcHNpc2E2NGVsLSogXAorKwl8IG1pcHNpc2E2NHIyLSogfCBtaXBz aXNhNjRyMmVsLSogXAorKwl8IG1pcHNpc2E2NHNiMS0qIHwgbWlwc2lzYTY0c2IxZWwtKiBcCisr CXwgbWlwc2lzYTY0c3I3MWstKiB8IG1pcHNpc2E2NHNyNzFrZWwtKiBcCisrCXwgbWlwc3R4Mzkt KiB8IG1pcHN0eDM5ZWwtKiBcCisrCXwgbW1peC0qIFwKKysJfCBtdC0qIFwKKysJfCBtc3A0MzAt KiBcCisrCXwgbmlvcy0qIHwgbmlvczItKiBcCisrCXwgbm9uZS0qIHwgbnAxLSogfCBuczE2ay0q IHwgbnMzMmstKiBcCisrCXwgb3Jpb24tKiBcCisrCXwgcGRwMTAtKiB8IHBkcDExLSogfCBwai0q IHwgcGpsLSogfCBwbi0qIHwgcG93ZXItKiBcCisrCXwgcG93ZXJwYy0qIHwgcG93ZXJwYzY0LSog fCBwb3dlcnBjNjRsZS0qIHwgcG93ZXJwY2xlLSogfCBwcGNiZS0qIFwKKysJfCBweXJhbWlkLSog XAorKwl8IHJvbXAtKiB8IHJzNjAwMC0qIFwKKysJfCBzaC0qIHwgc2hbMTIzNF0tKiB8IHNoWzI0 XWEtKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAorKwl8IHNo bGUtKiB8IHNoWzEyMzRdbGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0qIHwgc2g2NGxlLSogXAorKwl8 IHNwYXJjLSogfCBzcGFyYzY0LSogfCBzcGFyYzY0Yi0qIHwgc3BhcmM2NHYtKiB8IHNwYXJjODZ4 LSogfCBzcGFyY2xldC0qIFwKKysJfCBzcGFyY2xpdGUtKiBcCisrCXwgc3BhcmN2OC0qIHwgc3Bh cmN2OS0qIHwgc3BhcmN2OWItKiB8IHNwYXJjdjl2LSogfCBzdHJvbmdhcm0tKiB8IHN2MS0qIHwg c3g/LSogXAorKwl8IHRhaG9lLSogfCB0aHVtYi0qIFwKKysJfCB0aWMzMC0qIHwgdGljNHgtKiB8 IHRpYzU0eC0qIHwgdGljNTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiBcCisrCXwgdHJvbi0qIFwK KysJfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4LSogXAorKwl8IHdlMzJrLSogXAorKwl8IHg4Ni0q IHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8IHhzY2FsZWVbYmxd LSogXAorKwl8IHhzdG9ybXkxNi0qIHwgeHRlbnNhKi0qIFwKKysJfCB5bXAtKiBcCisrCXwgejhr LSopCisrCQk7OworKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGhvdXQgY29t cGFueSBuYW1lLCB3aXRoIGdsb2IgbWF0Y2guCisrCXh0ZW5zYSopCisrCQliYXNpY19tYWNoaW5l PSRiYXNpY19tYWNoaW5lLXVua25vd24KKysJCTs7CisrCSMgUmVjb2duaXplIHRoZSB2YXJpb3Vz IG1hY2hpbmUgbmFtZXMgYW5kIGFsaWFzZXMgd2hpY2ggc3RhbmQKKysJIyBmb3IgYSBDUFUgdHlw ZSBhbmQgYSBjb21wYW55IGFuZCBzb21ldGltZXMgZXZlbiBhbiBPUy4KKysJMzg2YnNkKQorKwkJ YmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KKysJCW9zPS1ic2QKKysJCTs7CisrCTNiMSB8IDcz MDAgfCA3MzAwLWF0dCB8IGF0dC03MzAwIHwgcGM3MzAwIHwgc2FmYXJpIHwgdW5peHBjKQorKwkJ YmFzaWNfbWFjaGluZT1tNjgwMDAtYXR0CisrCQk7OworKwkzYiopCisrCQliYXNpY19tYWNoaW5l PXdlMzJrLWF0dAorKwkJOzsKKysJYTI5a2hpZikKKysJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQK KysJCW9zPS11ZGkKKysJCTs7CisrICAgIAlhYmFjdXMpCisrCQliYXNpY19tYWNoaW5lPWFiYWN1 cy11bmtub3duCisrCQk7OworKwlhZG9iZTY4aykKKysJCWJhc2ljX21hY2hpbmU9bTY4MDEwLWFk b2JlCisrCQlvcz0tc2NvdXQKKysJCTs7CisrCWFsbGlhbnQgfCBmeDgwKQorKwkJYmFzaWNfbWFj aGluZT1meDgwLWFsbGlhbnQKKysJCTs7CisrCWFsdG9zIHwgYWx0b3MzMDY4KQorKwkJYmFzaWNf bWFjaGluZT1tNjhrLWFsdG9zCisrCQk7OworKwlhbTI5aykKKysJCWJhc2ljX21hY2hpbmU9YTI5 ay1ub25lCisrCQlvcz0tYnNkCisrCQk7OworKwlhbWQ2NCkKKysJCWJhc2ljX21hY2hpbmU9eDg2 XzY0LXBjCisrCQk7OworKwlhbWQ2NC0qKQorKwkJYmFzaWNfbWFjaGluZT14ODZfNjQtYGVjaG8g JGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCWFtZGFobCkKKysJ CWJhc2ljX21hY2hpbmU9NTgwLWFtZGFobAorKwkJb3M9LXN5c3YKKysJCTs7CisrCWFtaWdhIHwg YW1pZ2EtKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCisrCQk7OworKwlhbWlnYW9z IHwgYW1pZ2Fkb3MpCisrCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorKwkJb3M9LWFtaWdh b3MKKysJCTs7CisrCWFtaWdhdW5peCB8IGFtaXgpCisrCQliYXNpY19tYWNoaW5lPW02OGstdW5r bm93bgorKwkJb3M9LXN5c3Y0CisrCQk7OworKwlhcG9sbG82OCkKKysJCWJhc2ljX21hY2hpbmU9 bTY4ay1hcG9sbG8KKysJCW9zPS1zeXN2CisrCQk7OworKwlhcG9sbG82OGJzZCkKKysJCWJhc2lj X21hY2hpbmU9bTY4ay1hcG9sbG8KKysJCW9zPS1ic2QKKysJCTs7CisrCWF1eCkKKysJCWJhc2lj X21hY2hpbmU9bTY4ay1hcHBsZQorKwkJb3M9LWF1eAorKwkJOzsKKysJYmFsYW5jZSkKKysJCWJh c2ljX21hY2hpbmU9bnMzMmstc2VxdWVudAorKwkJb3M9LWR5bml4CisrCQk7OworKwlibGFja2Zp bikKKysJCWJhc2ljX21hY2hpbmU9YmZpbi11bmtub3duCisrCQlvcz0tbGludXgKKysJCTs7Cisr CWJsYWNrZmluLSopCisrCQliYXNpY19tYWNoaW5lPWJmaW4tYGVjaG8gJGJhc2ljX21hY2hpbmUg fCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCW9zPS1saW51eAorKwkJOzsKKysJYzkwKQorKwkJYmFz aWNfbWFjaGluZT1jOTAtY3JheQorKwkJb3M9LXVuaWNvcworKwkJOzsKKysJY29udmV4LWMxKQor KwkJYmFzaWNfbWFjaGluZT1jMS1jb252ZXgKKysJCW9zPS1ic2QKKysJCTs7CisrCWNvbnZleC1j MikKKysJCWJhc2ljX21hY2hpbmU9YzItY29udmV4CisrCQlvcz0tYnNkCisrCQk7OworKwljb252 ZXgtYzMyKQorKwkJYmFzaWNfbWFjaGluZT1jMzItY29udmV4CisrCQlvcz0tYnNkCisrCQk7Owor Kwljb252ZXgtYzM0KQorKwkJYmFzaWNfbWFjaGluZT1jMzQtY29udmV4CisrCQlvcz0tYnNkCisr CQk7OworKwljb252ZXgtYzM4KQorKwkJYmFzaWNfbWFjaGluZT1jMzgtY29udmV4CisrCQlvcz0t YnNkCisrCQk7OworKwljcmF5IHwgajkwKQorKwkJYmFzaWNfbWFjaGluZT1qOTAtY3JheQorKwkJ b3M9LXVuaWNvcworKwkJOzsKKysJY3JheW52KQorKwkJYmFzaWNfbWFjaGluZT1jcmF5bnYtY3Jh eQorKwkJb3M9LXVuaWNvc21wCisrCQk7OworKwljcjE2KQorKwkJYmFzaWNfbWFjaGluZT1jcjE2 LXVua25vd24KKysJCW9zPS1lbGYKKysJCTs7CisrCWNyZHMgfCB1bm9zKQorKwkJYmFzaWNfbWFj aGluZT1tNjhrLWNyZHMKKysJCTs7CisrCWNyaXN2MzIgfCBjcmlzdjMyLSogfCBldHJheGZzKikK KysJCWJhc2ljX21hY2hpbmU9Y3Jpc3YzMi1heGlzCisrCQk7OworKwljcmlzIHwgY3Jpcy0qIHwg ZXRyYXgqKQorKwkJYmFzaWNfbWFjaGluZT1jcmlzLWF4aXMKKysJCTs7CisrCWNyeCkKKysJCWJh c2ljX21hY2hpbmU9Y3J4LXVua25vd24KKysJCW9zPS1lbGYKKysJCTs7CisrCWRhMzAgfCBkYTMw LSopCisrCQliYXNpY19tYWNoaW5lPW02OGstZGEzMAorKwkJOzsKKysJZGVjc3RhdGlvbiB8IGRl Y3N0YXRpb24tMzEwMCB8IHBtYXggfCBwbWF4LSogfCBwbWluIHwgZGVjMzEwMCB8IGRlY3N0YXRu KQorKwkJYmFzaWNfbWFjaGluZT1taXBzLWRlYworKwkJOzsKKysJZGVjc3lzdGVtMTAqIHwgZGVj MTAqKQorKwkJYmFzaWNfbWFjaGluZT1wZHAxMC1kZWMKKysJCW9zPS10b3BzMTAKKysJCTs7Cisr CWRlY3N5c3RlbTIwKiB8IGRlYzIwKikKKysJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCisrCQlv cz0tdG9wczIwCisrCQk7OworKwlkZWx0YSB8IDMzMDAgfCBtb3Rvcm9sYS0zMzAwIHwgbW90b3Jv bGEtZGVsdGEgXAorKwkgICAgICB8IDMzMDAtbW90b3JvbGEgfCBkZWx0YS1tb3Rvcm9sYSkKKysJ CWJhc2ljX21hY2hpbmU9bTY4ay1tb3Rvcm9sYQorKwkJOzsKKysJZGVsdGE4OCkKKysJCWJhc2lj X21hY2hpbmU9bTg4ay1tb3Rvcm9sYQorKwkJb3M9LXN5c3YzCisrCQk7OworKwlkamdwcCkKKysJ CWJhc2ljX21hY2hpbmU9aTU4Ni1wYworKwkJb3M9LW1zZG9zZGpncHAKKysJCTs7CisrCWRweDIw IHwgZHB4MjAtKikKKysJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1bGwKKysJCW9zPS1ib3N4Cisr CQk7OworKwlkcHgyKiB8IGRweDIqLWJ1bGwpCisrCQliYXNpY19tYWNoaW5lPW02OGstYnVsbAor KwkJb3M9LXN5c3YzCisrCQk7OworKwllYm1vbjI5aykKKysJCWJhc2ljX21hY2hpbmU9YTI5ay1h bWQKKysJCW9zPS1lYm1vbgorKwkJOzsKKysJZWx4c2kpCisrCQliYXNpY19tYWNoaW5lPWVseHNp LWVseHNpCisrCQlvcz0tYnNkCisrCQk7OworKwllbmNvcmUgfCB1bWF4IHwgbW1heCkKKysJCWJh c2ljX21hY2hpbmU9bnMzMmstZW5jb3JlCisrCQk7OworKwllczE4MDAgfCBPU0U2OGsgfCBvc2U2 OGsgfCBvc2UgfCBPU0UpCisrCQliYXNpY19tYWNoaW5lPW02OGstZXJpY3Nzb24KKysJCW9zPS1v c2UKKysJCTs7CisrCWZ4MjgwMCkKKysJCWJhc2ljX21hY2hpbmU9aTg2MC1hbGxpYW50CisrCQk7 OworKwlnZW5peCkKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstbnMKKysJCTs7CisrCWdtaWNybykK KysJCWJhc2ljX21hY2hpbmU9dHJvbi1nbWljcm8KKysJCW9zPS1zeXN2CisrCQk7OworKwlnbzMy KQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisrCQlvcz0tZ28zMgorKwkJOzsKKysJaDMwNTBy KiB8IGhpdXgqKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKKysJCW9zPS1oaXV4 d2UyCisrCQk7OworKwloODMwMGhtcykKKysJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0YWNoaQor KwkJb3M9LWhtcworKwkJOzsKKysJaDgzMDB4cmF5KQorKwkJYmFzaWNfbWFjaGluZT1oODMwMC1o aXRhY2hpCisrCQlvcz0teHJheQorKwkJOzsKKysJaDg1MDBobXMpCisrCQliYXNpY19tYWNoaW5l PWg4NTAwLWhpdGFjaGkKKysJCW9zPS1obXMKKysJCTs7CisrCWhhcnJpcykKKysJCWJhc2ljX21h Y2hpbmU9bTg4ay1oYXJyaXMKKysJCW9zPS1zeXN2MworKwkJOzsKKysJaHAzMDAtKikKKysJCWJh c2ljX21hY2hpbmU9bTY4ay1ocAorKwkJOzsKKysJaHAzMDBic2QpCisrCQliYXNpY19tYWNoaW5l PW02OGstaHAKKysJCW9zPS1ic2QKKysJCTs7CisrCWhwMzAwaHB1eCkKKysJCWJhc2ljX21hY2hp bmU9bTY4ay1ocAorKwkJb3M9LWhwdXgKKysJCTs7CisrCWhwM2s5WzAtOV1bMC05XSB8IGhwOVsw LTldWzAtOV0pCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKKysJCTs7CisrCWhwOWsyWzAt OV1bMC05XSB8IGhwOWszMVswLTldKQorKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtaHAKKysJCTs7 CisrCWhwOWszWzItOV1bMC05XSkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorKwkJOzsKKysJ aHA5azZbMC05XVswLTldIHwgaHA2WzAtOV1bMC05XSkKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEu MC1ocAorKwkJOzsKKysJaHA5azdbMC03OV1bMC05XSB8IGhwN1swLTc5XVswLTldKQorKwkJYmFz aWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQk7OworKwlocDlrNzhbMC05XSB8IGhwNzhbMC05XSkK KysJCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEt aHAKKysJCTs7CisrCWhwOWs4WzY3XTEgfCBocDhbNjddMSB8IGhwOWs4MFsyNF0gfCBocDgwWzI0 XSB8IGhwOWs4Wzc4XTkgfCBocDhbNzhdOSB8IGhwOWs4OTMgfCBocDg5MykKKysJCSMgRklYTUU6 IHJlYWxseSBocHBhMi4wLWhwCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKysJCTs7Cisr CWhwOWs4WzAtOV1bMTM2NzldIHwgaHA4WzAtOV1bMTM2NzldKQorKwkJYmFzaWNfbWFjaGluZT1o cHBhMS4xLWhwCisrCQk7OworKwlocDlrOFswLTldWzAtOV0gfCBocDhbMC05XVswLTldKQorKwkJ YmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCisrCQk7OworKwlocHBhLW5leHQpCisrCQlvcz0tbmV4 dHN0ZXAzCisrCQk7OworKwlocHBhb3NmKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisr CQlvcz0tb3NmCisrCQk7OworKwlocHBybykKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAor KwkJb3M9LXByb2VsZgorKwkJOzsKKysJaTM3MC1pYm0qIHwgaWJtKikKKysJCWJhc2ljX21hY2hp bmU9aTM3MC1pYm0KKysJCTs7CisrIyBJJ20gbm90IHN1cmUgd2hhdCAiU3lzdjMyIiBtZWFucy4g IFNob3VsZCB0aGlzIGJlIHN5c3YzLjI/CisrCWkqODZ2MzIpCisrCQliYXNpY19tYWNoaW5lPWBl Y2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKysJCW9zPS1zeXN2MzIKKysJCTs7Cisr CWkqODZ2NCopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYt cGMvJ2AKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJaSo4NnYpCisrCQliYXNpY19tYWNoaW5lPWBl Y2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKysJCW9zPS1zeXN2CisrCQk7OworKwlp Kjg2c29sMikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1w Yy8nYAorKwkJb3M9LXNvbGFyaXMyCisrCQk7OworKwlpMzg2bWFjaCkKKysJCWJhc2ljX21hY2hp bmU9aTM4Ni1tYWNoCisrCQlvcz0tbWFjaAorKwkJOzsKKysJaTM4Ni12c3RhIHwgdnN0YSkKKysJ CWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCisrCQlvcz0tdnN0YQorKwkJOzsKKysJaXJpcyB8 IGlyaXM0ZCkKKysJCWJhc2ljX21hY2hpbmU9bWlwcy1zZ2kKKysJCWNhc2UgJG9zIGluCisrCQkg ICAgLWlyaXgqKQorKwkJCTs7CisrCQkgICAgKikKKysJCQlvcz0taXJpeDQKKysJCQk7OworKwkJ ZXNhYworKwkJOzsKKysJaXNpNjggfCBpc2kpCisrCQliYXNpY19tYWNoaW5lPW02OGstaXNpCisr CQlvcz0tc3lzdgorKwkJOzsKKysJbTY4a25vbW11KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVu a25vd24KKysJCW9zPS1saW51eAorKwkJOzsKKysJbTY4a25vbW11LSopCisrCQliYXNpY19tYWNo aW5lPW02OGstYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCW9z PS1saW51eAorKwkJOzsKKysJbTg4ay1vbXJvbiopCisrCQliYXNpY19tYWNoaW5lPW04OGstb21y b24KKysJCTs7CisrCW1hZ251bSB8IG0zMjMwKQorKwkJYmFzaWNfbWFjaGluZT1taXBzLW1pcHMK KysJCW9zPS1zeXN2CisrCQk7OworKwltZXJsaW4pCisrCQliYXNpY19tYWNoaW5lPW5zMzJrLXV0 ZWsKKysJCW9zPS1zeXN2CisrCQk7OworKwltaW5ndzMyKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2 LXBjCisrCQlvcz0tbWluZ3czMgorKwkJOzsKKysJbWluZ3czMmNlKQorKwkJYmFzaWNfbWFjaGlu ZT1hcm0tdW5rbm93bgorKwkJb3M9LW1pbmd3MzJjZQorKwkJOzsKKysJbWluaWZyYW1lKQorKwkJ YmFzaWNfbWFjaGluZT1tNjgwMDAtY29udmVyZ2VudAorKwkJOzsKKysJKm1pbnQgfCAtbWludFsw LTldKiB8ICpNaU5UIHwgKk1pTlRbMC05XSopCisrCQliYXNpY19tYWNoaW5lPW02OGstYXRhcmkK KysJCW9zPS1taW50CisrCQk7OworKwltaXBzMyotKikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8g JGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgCisrCQk7OworKwltaXBz MyopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21p cHMzL21pcHM2NC8nYC11bmtub3duCisrCQk7OworKwltb25pdG9yKQorKwkJYmFzaWNfbWFjaGlu ZT1tNjhrLXJvbTY4aworKwkJb3M9LWNvZmYKKysJCTs7CisrCW1vcnBob3MpCisrCQliYXNpY19t YWNoaW5lPXBvd2VycGMtdW5rbm93bgorKwkJb3M9LW1vcnBob3MKKysJCTs7CisrCW1zZG9zKQor KwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisrCQlvcz0tbXNkb3MKKysJCTs7CisrCW1zMS0qKQor KwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9tczEtL210 LS8nYAorKwkJOzsKKysJbXZzKQorKwkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQorKwkJb3M9LW12 cworKwkJOzsKKysJbmNyMzAwMCkKKysJCWJhc2ljX21hY2hpbmU9aTQ4Ni1uY3IKKysJCW9zPS1z eXN2NAorKwkJOzsKKysJbmV0YnNkMzg2KQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24K KysJCW9zPS1uZXRic2QKKysJCTs7CisrCW5ldHdpbmRlcikKKysJCWJhc2ljX21hY2hpbmU9YXJt djRsLXJlYmVsCisrCQlvcz0tbGludXgKKysJCTs7CisrCW5ld3MgfCBuZXdzNzAwIHwgbmV3czgw MCB8IG5ld3M5MDApCisrCQliYXNpY19tYWNoaW5lPW02OGstc29ueQorKwkJb3M9LW5ld3Nvcwor KwkJOzsKKysJbmV3czEwMDApCisrCQliYXNpY19tYWNoaW5lPW02ODAzMC1zb255CisrCQlvcz0t bmV3c29zCisrCQk7OworKwluZXdzLTM2MDAgfCByaXNjLW5ld3MpCisrCQliYXNpY19tYWNoaW5l PW1pcHMtc29ueQorKwkJb3M9LW5ld3NvcworKwkJOzsKKysJbmVjdjcwKQorKwkJYmFzaWNfbWFj aGluZT12NzAtbmVjCisrCQlvcz0tc3lzdgorKwkJOzsKKysJbmV4dCB8IG0qLW5leHQgKQorKwkJ YmFzaWNfbWFjaGluZT1tNjhrLW5leHQKKysJCWNhc2UgJG9zIGluCisrCQkgICAgLW5leHRzdGVw KiApCisrCQkJOzsKKysJCSAgICAtbnMyKikKKysJCSAgICAgIG9zPS1uZXh0c3RlcDIKKysJCQk7 OworKwkJICAgICopCisrCQkgICAgICBvcz0tbmV4dHN0ZXAzCisrCQkJOzsKKysJCWVzYWMKKysJ CTs7CisrCW5oMzAwMCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1oYXJyaXMKKysJCW9zPS1jeHV4 CisrCQk7OworKwluaFs0NV0wMDApCisrCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCisrCQlv cz0tY3h1eAorKwkJOzsKKysJbmluZHk5NjApCisrCQliYXNpY19tYWNoaW5lPWk5NjAtaW50ZWwK KysJCW9zPS1uaW5keQorKwkJOzsKKysJbW9uOTYwKQorKwkJYmFzaWNfbWFjaGluZT1pOTYwLWlu dGVsCisrCQlvcz0tbW9uOTYwCisrCQk7OworKwlub25zdG9wdXgpCisrCQliYXNpY19tYWNoaW5l PW1pcHMtY29tcGFxCisrCQlvcz0tbm9uc3RvcHV4CisrCQk7OworKwlucDEpCisrCQliYXNpY19t YWNoaW5lPW5wMS1nb3VsZAorKwkJOzsKKysJbnNyLXRhbmRlbSkKKysJCWJhc2ljX21hY2hpbmU9 bnNyLXRhbmRlbQorKwkJOzsKKysJb3A1MG4tKiB8IG9wNjBjLSopCisrCQliYXNpY19tYWNoaW5l PWhwcGExLjEtb2tpCisrCQlvcz0tcHJvZWxmCisrCQk7OworKwlvcGVucmlzYyB8IG9wZW5yaXNj LSopCisrCQliYXNpY19tYWNoaW5lPW9yMzItdW5rbm93bgorKwkJOzsKKysJb3M0MDApCisrCQli YXNpY19tYWNoaW5lPXBvd2VycGMtaWJtCisrCQlvcz0tb3M0MDAKKysJCTs7CisrCU9TRTY4MDAw IHwgb3NlNjgwMDApCisrCQliYXNpY19tYWNoaW5lPW02ODAwMC1lcmljc3NvbgorKwkJb3M9LW9z ZQorKwkJOzsKKysJb3M2OGspCisrCQliYXNpY19tYWNoaW5lPW02OGstbm9uZQorKwkJb3M9LW9z NjhrCisrCQk7OworKwlwYS1oaXRhY2hpKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFj aGkKKysJCW9zPS1oaXV4d2UyCisrCQk7OworKwlwYXJhZ29uKQorKwkJYmFzaWNfbWFjaGluZT1p ODYwLWludGVsCisrCQlvcz0tb3NmCisrCQk7OworKwlwYXJpc2MpCisrCQliYXNpY19tYWNoaW5l PWhwcGEtdW5rbm93bgorKwkJb3M9LWxpbnV4CisrCQk7OworKwlwYXJpc2MtKikKKysJCWJhc2lj X21hY2hpbmU9aHBwYS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAor KwkJb3M9LWxpbnV4CisrCQk7OworKwlwYmQpCisrCQliYXNpY19tYWNoaW5lPXNwYXJjLXR0aQor KwkJOzsKKysJcGJiKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXR0aQorKwkJOzsKKysJcGM1MzIg fCBwYzUzMi0qKQorKwkJYmFzaWNfbWFjaGluZT1uczMyay1wYzUzMgorKwkJOzsKKysJcGM5OCkK KysJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworKwkJOzsKKysJcGM5OC0qKQorKwkJYmFzaWNfbWFj aGluZT1pMzg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7 OworKwlwZW50aXVtIHwgcDUgfCBrNSB8IGs2IHwgbmV4Z2VuIHwgdmlhYzMpCisrCQliYXNpY19t YWNoaW5lPWk1ODYtcGMKKysJCTs7CisrCXBlbnRpdW1wcm8gfCBwNiB8IDZ4ODYgfCBhdGhsb24g fCBhdGhsb25fKikKKysJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYworKwkJOzsKKysJcGVudGl1bWlp IHwgcGVudGl1bTIgfCBwZW50aXVtaWlpIHwgcGVudGl1bTMpCisrCQliYXNpY19tYWNoaW5lPWk2 ODYtcGMKKysJCTs7CisrCXBlbnRpdW00KQorKwkJYmFzaWNfbWFjaGluZT1pNzg2LXBjCisrCQk7 OworKwlwZW50aXVtLSogfCBwNS0qIHwgazUtKiB8IGs2LSogfCBuZXhnZW4tKiB8IHZpYWMzLSop CisrCQliYXNpY19tYWNoaW5lPWk1ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlte LV0qLS8vJ2AKKysJCTs7CisrCXBlbnRpdW1wcm8tKiB8IHA2LSogfCA2eDg2LSogfCBhdGhsb24t KikKKysJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9e W14tXSotLy8nYAorKwkJOzsKKysJcGVudGl1bWlpLSogfCBwZW50aXVtMi0qIHwgcGVudGl1bWlp aS0qIHwgcGVudGl1bTMtKikKKysJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFj aGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcGVudGl1bTQtKikKKysJCWJhc2lj X21hY2hpbmU9aTc4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAor KwkJOzsKKysJcG4pCisrCQliYXNpY19tYWNoaW5lPXBuLWdvdWxkCisrCQk7OworKwlwb3dlcikJ YmFzaWNfbWFjaGluZT1wb3dlci1pYm0KKysJCTs7CisrCXBwYykJYmFzaWNfbWFjaGluZT1wb3dl cnBjLXVua25vd24KKysJCTs7CisrCXBwYy0qKQliYXNpY19tYWNoaW5lPXBvd2VycGMtYGVjaG8g JGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBwY2xlIHwgcG93 ZXJwY2xpdHRsZSB8IHBwYy1sZSB8IHBvd2VycGMtbGl0dGxlKQorKwkJYmFzaWNfbWFjaGluZT1w b3dlcnBjbGUtdW5rbm93bgorKwkJOzsKKysJcHBjbGUtKiB8IHBvd2VycGNsaXR0bGUtKikKKysJ CWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15b Xi1dKi0vLydgCisrCQk7OworKwlwcGM2NCkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtdW5rbm93 bgorKwkJOzsKKysJcHBjNjQtKikgYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtYGVjaG8gJGJhc2lj X21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBwYzY0bGUgfCBwb3dlcnBj NjRsaXR0bGUgfCBwcGM2NC1sZSB8IHBvd2VycGM2NC1saXR0bGUpCisrCQliYXNpY19tYWNoaW5l PXBvd2VycGM2NGxlLXVua25vd24KKysJCTs7CisrCXBwYzY0bGUtKiB8IHBvd2VycGM2NGxpdHRs ZS0qKQorKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8 IHNlZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcHMyKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2 LWlibQorKwkJOzsKKysJcHczMikKKysJCWJhc2ljX21hY2hpbmU9aTU4Ni11bmtub3duCisrCQlv cz0tcHczMgorKwkJOzsKKysJcmRvcykKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworKwkJb3M9 LXJkb3MKKysJCTs7CisrCXJvbTY4aykKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKKysJ CW9zPS1jb2ZmCisrCQk7OworKwlybVs0Nl0wMCkKKysJCWJhc2ljX21hY2hpbmU9bWlwcy1zaWVt ZW5zCisrCQk7OworKwlydHBjIHwgcnRwYy0qKQorKwkJYmFzaWNfbWFjaGluZT1yb21wLWlibQor KwkJOzsKKysJczM5MCB8IHMzOTAtKikKKysJCWJhc2ljX21hY2hpbmU9czM5MC1pYm0KKysJCTs7 CisrCXMzOTB4IHwgczM5MHgtKikKKysJCWJhc2ljX21hY2hpbmU9czM5MHgtaWJtCisrCQk7Owor KwlzYTI5MjAwKQorKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorKwkJb3M9LXVkaQorKwkJOzsK KysJc2IxKQorKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjEtdW5rbm93bgorKwkJOzsKKysJ c2IxZWwpCisrCQliYXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMWVsLXVua25vd24KKysJCTs7Cisr CXNkZSkKKysJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTMyLXNkZQorKwkJb3M9LWVsZgorKwkJOzsK KysJc2VpKQorKwkJYmFzaWNfbWFjaGluZT1taXBzLXNlaQorKwkJb3M9LXNlaXV4CisrCQk7Owor KwlzZXF1ZW50KQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKKysJCTs7CisrCXNoKQor KwkJYmFzaWNfbWFjaGluZT1zaC1oaXRhY2hpCisrCQlvcz0taG1zCisrCQk7OworKwlzaDVlbCkK KysJCWJhc2ljX21hY2hpbmU9c2g1bGUtdW5rbm93bgorKwkJOzsKKysJc2g2NCkKKysJCWJhc2lj X21hY2hpbmU9c2g2NC11bmtub3duCisrCQk7OworKwlzcGFyY2xpdGUtd3JzIHwgc2ltc28td3Jz KQorKwkJYmFzaWNfbWFjaGluZT1zcGFyY2xpdGUtd3JzCisrCQlvcz0tdnh3b3JrcworKwkJOzsK KysJc3BzNykKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCisrCQlvcz0tc3lzdjIKKysJCTs7 CisrCXNwdXIpCisrCQliYXNpY19tYWNoaW5lPXNwdXItdW5rbm93bgorKwkJOzsKKysJc3QyMDAw KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXRhbmRlbQorKwkJOzsKKysJc3RyYXR1cykKKysJCWJh c2ljX21hY2hpbmU9aTg2MC1zdHJhdHVzCisrCQlvcz0tc3lzdjQKKysJCTs7CisrCXN1bjIpCisr CQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KKysJCTs7CisrCXN1bjJvczMpCisrCQliYXNpY19t YWNoaW5lPW02ODAwMC1zdW4KKysJCW9zPS1zdW5vczMKKysJCTs7CisrCXN1bjJvczQpCisrCQli YXNpY19tYWNoaW5lPW02ODAwMC1zdW4KKysJCW9zPS1zdW5vczQKKysJCTs7CisrCXN1bjNvczMp CisrCQliYXNpY19tYWNoaW5lPW02OGstc3VuCisrCQlvcz0tc3Vub3MzCisrCQk7OworKwlzdW4z b3M0KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXN1bgorKwkJb3M9LXN1bm9zNAorKwkJOzsKKysJ c3VuNG9zMykKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQlvcz0tc3Vub3MzCisrCQk7 OworKwlzdW40b3M0KQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKysJCW9zPS1zdW5vczQK KysJCTs7CisrCXN1bjRzb2wyKQorKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKysJCW9zPS1z b2xhcmlzMgorKwkJOzsKKysJc3VuMyB8IHN1bjMtKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1z dW4KKysJCTs7CisrCXN1bjQpCisrCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorKwkJOzsKKysJ c3VuMzg2IHwgc3VuMzg2aSB8IHJvYWRydW5uZXIpCisrCQliYXNpY19tYWNoaW5lPWkzODYtc3Vu CisrCQk7OworKwlzdjEpCisrCQliYXNpY19tYWNoaW5lPXN2MS1jcmF5CisrCQlvcz0tdW5pY29z CisrCQk7OworKwlzeW1tZXRyeSkKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50CisrCQlv cz0tZHluaXgKKysJCTs7CisrCXQzZSkKKysJCWJhc2ljX21hY2hpbmU9YWxwaGFldjUtY3JheQor KwkJb3M9LXVuaWNvcworKwkJOzsKKysJdDkwKQorKwkJYmFzaWNfbWFjaGluZT10OTAtY3JheQor KwkJb3M9LXVuaWNvcworKwkJOzsKKysJdGljNTR4IHwgYzU0eCopCisrCQliYXNpY19tYWNoaW5l PXRpYzU0eC11bmtub3duCisrCQlvcz0tY29mZgorKwkJOzsKKysJdGljNTV4IHwgYzU1eCopCisr CQliYXNpY19tYWNoaW5lPXRpYzU1eC11bmtub3duCisrCQlvcz0tY29mZgorKwkJOzsKKysJdGlj NnggfCBjNngqKQorKwkJYmFzaWNfbWFjaGluZT10aWM2eC11bmtub3duCisrCQlvcz0tY29mZgor KwkJOzsKKysJdGlsZSopCisrCQliYXNpY19tYWNoaW5lPXRpbGUtdW5rbm93bgorKwkJb3M9LWxp bnV4LWdudQorKwkJOzsKKysJdHgzOSkKKysJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzktdW5rbm93 bgorKwkJOzsKKysJdHgzOWVsKQorKwkJYmFzaWNfbWFjaGluZT1taXBzdHgzOWVsLXVua25vd24K KysJCTs7CisrCXRvYWQxKQorKwkJYmFzaWNfbWFjaGluZT1wZHAxMC14a2wKKysJCW9zPS10b3Bz MjAKKysJCTs7CisrCXRvd2VyIHwgdG93ZXItMzIpCisrCQliYXNpY19tYWNoaW5lPW02OGstbmNy CisrCQk7OworKwl0cGYpCisrCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQorKwkJb3M9LXRwZgor KwkJOzsKKysJdWRpMjlrKQorKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorKwkJb3M9LXVkaQor KwkJOzsKKysJdWx0cmEzKQorKwkJYmFzaWNfbWFjaGluZT1hMjlrLW55dQorKwkJb3M9LXN5bTEK KysJCTs7CisrCXY4MTAgfCBuZWN2ODEwKQorKwkJYmFzaWNfbWFjaGluZT12ODEwLW5lYworKwkJ b3M9LW5vbmUKKysJCTs7CisrCXZheHYpCisrCQliYXNpY19tYWNoaW5lPXZheC1kZWMKKysJCW9z PS1zeXN2CisrCQk7OworKwl2bXMpCisrCQliYXNpY19tYWNoaW5lPXZheC1kZWMKKysJCW9zPS12 bXMKKysJCTs7CisrCXZwcCp8dnh8dngtKikKKysJCWJhc2ljX21hY2hpbmU9ZjMwMS1mdWppdHN1 CisrCQk7OworKwl2eHdvcmtzOTYwKQorKwkJYmFzaWNfbWFjaGluZT1pOTYwLXdycworKwkJb3M9 LXZ4d29ya3MKKysJCTs7CisrCXZ4d29ya3M2OCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay13cnMK KysJCW9zPS12eHdvcmtzCisrCQk7OworKwl2eHdvcmtzMjlrKQorKwkJYmFzaWNfbWFjaGluZT1h MjlrLXdycworKwkJb3M9LXZ4d29ya3MKKysJCTs7CisrCXc2NSopCisrCQliYXNpY19tYWNoaW5l PXc2NS13ZGMKKysJCW9zPS1ub25lCisrCQk7OworKwl3ODlrLSopCisrCQliYXNpY19tYWNoaW5l PWhwcGExLjEtd2luYm9uZAorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJeGJveCkKKysJCWJhc2lj X21hY2hpbmU9aTY4Ni1wYworKwkJb3M9LW1pbmd3MzIKKysJCTs7CisrCXhwcyB8IHhwczEwMCkK KysJCWJhc2ljX21hY2hpbmU9eHBzMTAwLWhvbmV5d2VsbAorKwkJOzsKKysJeW1wKQorKwkJYmFz aWNfbWFjaGluZT15bXAtY3JheQorKwkJb3M9LXVuaWNvcworKwkJOzsKKysJejhrLSotY29mZikK KysJCWJhc2ljX21hY2hpbmU9ejhrLXVua25vd24KKysJCW9zPS1zaW0KKysJCTs7CisrCW5vbmUp CisrCQliYXNpY19tYWNoaW5lPW5vbmUtbm9uZQorKwkJb3M9LW5vbmUKKysJCTs7CisrCisrIyBI ZXJlIHdlIGhhbmRsZSB0aGUgZGVmYXVsdCBtYW51ZmFjdHVyZXIgb2YgY2VydGFpbiBDUFUgdHlw ZXMuICBJdCBpcyBpbgorKyMgc29tZSBjYXNlcyB0aGUgb25seSBtYW51ZmFjdHVyZXIsIGluIG90 aGVycywgaXQgaXMgdGhlIG1vc3QgcG9wdWxhci4KKysJdzg5aykKKysJCWJhc2ljX21hY2hpbmU9 aHBwYTEuMS13aW5ib25kCisrCQk7OworKwlvcDUwbikKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEu MS1va2kKKysJCTs7CisrCW9wNjBjKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQorKwkJ OzsKKysJcm9tcCkKKysJCWJhc2ljX21hY2hpbmU9cm9tcC1pYm0KKysJCTs7CisrCW1taXgpCisr CQliYXNpY19tYWNoaW5lPW1taXgta251dGgKKysJCTs7CisrCXJzNjAwMCkKKysJCWJhc2ljX21h Y2hpbmU9cnM2MDAwLWlibQorKwkJOzsKKysJdmF4KQorKwkJYmFzaWNfbWFjaGluZT12YXgtZGVj CisrCQk7OworKwlwZHAxMCkKKysJCSMgdGhlcmUgYXJlIG1hbnkgY2xvbmVzLCBzbyBERUMgaXMg bm90IGEgc2FmZSBiZXQKKysJCWJhc2ljX21hY2hpbmU9cGRwMTAtdW5rbm93bgorKwkJOzsKKysJ cGRwMTEpCisrCQliYXNpY19tYWNoaW5lPXBkcDExLWRlYworKwkJOzsKKysJd2UzMmspCisrCQli YXNpY19tYWNoaW5lPXdlMzJrLWF0dAorKwkJOzsKKysJc2hbMTIzNF0gfCBzaFsyNF1hIHwgc2hb MzRdZWIgfCBzaFsxMjM0XWxlIHwgc2hbMjNdZWxlKQorKwkJYmFzaWNfbWFjaGluZT1zaC11bmtu b3duCisrCQk7OworKwlzcGFyYyB8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIgfCBzcGFy Y3Y5dikKKysJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQk7OworKwljeWRyYSkKKysJCWJh c2ljX21hY2hpbmU9Y3lkcmEtY3lkcm9tZQorKwkJOzsKKysJb3Jpb24pCisrCQliYXNpY19tYWNo aW5lPW9yaW9uLWhpZ2hsZXZlbAorKwkJOzsKKysJb3Jpb24xMDUpCisrCQliYXNpY19tYWNoaW5l PWNsaXBwZXItaGlnaGxldmVsCisrCQk7OworKwltYWMgfCBtcHcgfCBtYWMtbXB3KQorKwkJYmFz aWNfbWFjaGluZT1tNjhrLWFwcGxlCisrCQk7OworKwlwbWFjIHwgcG1hYy1tcHcpCisrCQliYXNp Y19tYWNoaW5lPXBvd2VycGMtYXBwbGUKKysJCTs7CisrCSotdW5rbm93bikKKysJCSMgTWFrZSBz dXJlIHRvIG1hdGNoIGFuIGFscmVhZHktY2Fub25pY2FsaXplZCBtYWNoaW5lIG5hbWUuCisrCQk7 OworKwkqKQorKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxg JGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCisrCQlleGl0IDEKKysJCTs7Cisr ZXNhYworKworKyMgSGVyZSB3ZSBjYW5vbmljYWxpemUgY2VydGFpbiBhbGlhc2VzIGZvciBtYW51 ZmFjdHVyZXJzLgorK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKysJKi1kaWdpdGFsKikKKysJCWJh c2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvZGlnaXRhbC4qL2RlYy8n YAorKwkJOzsKKysJKi1jb21tb2RvcmUqKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNf bWFjaGluZSB8IHNlZCAncy9jb21tb2RvcmUuKi9jYm0vJ2AKKysJCTs7CisrCSopCisrCQk7Owor K2VzYWMKKysKKysjIERlY29kZSBtYW51ZmFjdHVyZXItc3BlY2lmaWMgYWxpYXNlcyBmb3IgY2Vy dGFpbiBvcGVyYXRpbmcgc3lzdGVtcy4KKysKKytpZiBbIHgiJG9zIiAhPSB4IiIgXQorK3RoZW4K KytjYXNlICRvcyBpbgorKyAgICAgICAgIyBGaXJzdCBtYXRjaCBzb21lIHN5c3RlbSB0eXBlIGFs aWFzZXMKKysgICAgICAgICMgdGhhdCBtaWdodCBnZXQgY29uZnVzZWQgd2l0aCB2YWxpZCBzeXN0 ZW0gdHlwZXMuCisrCSMgLXNvbGFyaXMqIGlzIGEgYmFzaWMgc3lzdGVtIHR5cGUsIHdpdGggdGhp cyBvbmUgZXhjZXB0aW9uLgorKwktc29sYXJpczEgfCAtc29sYXJpczEuKikKKysJCW9zPWBlY2hv ICRvcyB8IHNlZCAtZSAnc3xzb2xhcmlzMXxzdW5vczR8J2AKKysJCTs7CisrCS1zb2xhcmlzKQor KwkJb3M9LXNvbGFyaXMyCisrCQk7OworKwktc3ZyNCopCisrCQlvcz0tc3lzdjQKKysJCTs7Cisr CS11bml4d2FyZSopCisrCQlvcz0tc3lzdjQuMnV3CisrCQk7OworKwktZ251L2xpbnV4KikKKysJ CW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xnbnUvbGludXh8bGludXgtZ251fCdgCisrCQk7Owor KwkjIEZpcnN0IGFjY2VwdCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVzLgorKwkjIFRoZSBwb3J0YWJs ZSBzeXN0ZW1zIGNvbWVzIGZpcnN0LgorKwkjIEVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4g QSAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgorKwkjIC1zeXN2KiBpcyBub3QgaGVyZSBi ZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCisrCS1nbnUqIHwgLWJzZCogfCAt bWFjaCogfCAtbWluaXgqIHwgLWdlbml4KiB8IC11bHRyaXgqIHwgLWlyaXgqIFwKKysJICAgICAg fCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFpeCogfCAtc3Vub3MgfCAtc3Vu b3NbMzRdKlwKKysJICAgICAgfCAtaHB1eCogfCAtdW5vcyogfCAtb3NmKiB8IC1sdW5hKiB8IC1k Z3V4KiB8IC1zb2xhcmlzKiB8IC1zeW0qIFwKKysJICAgICAgfCAtYW1pZ2FvcyogfCAtYW1pZ2Fk b3MqIHwgLW1zZG9zKiB8IC1uZXdzb3MqIHwgLXVuaWNvcyogfCAtYW9mKiBcCisrCSAgICAgIHwg LWFvcyogXAorKwkgICAgICB8IC1uaW5keSogfCAtdnhzaW0qIHwgLXZ4d29ya3MqIHwgLWVibW9u KiB8IC1obXMqIHwgLW12cyogXAorKwkgICAgICB8IC1jbGl4KiB8IC1yaXNjb3MqIHwgLXVuaXBs dXMqIHwgLWlyaXMqIHwgLXJ0dSogfCAteGVuaXgqIFwKKysJICAgICAgfCAtaGl1eCogfCAtMzg2 YnNkKiB8IC1rbmV0YnNkKiB8IC1taXJic2QqIHwgLW5ldGJzZCogXAorKwkgICAgICB8IC1vcGVu YnNkKiB8IC1zb2xpZGJzZCogXAorKwkgICAgICB8IC1la2tvYnNkKiB8IC1rZnJlZWJzZCogfCAt ZnJlZWJzZCogfCAtcmlzY2l4KiB8IC1seW54b3MqIFwKKysJICAgICAgfCAtYm9zeCogfCAtbmV4 dHN0ZXAqIHwgLWN4dXgqIHwgLWFvdXQqIHwgLWVsZiogfCAtb2FiaSogXAorKwkgICAgICB8IC1w dHgqIHwgLWNvZmYqIHwgLWVjb2ZmKiB8IC13aW5udCogfCAtZG9tYWluKiB8IC12c3RhKiBcCisr CSAgICAgIHwgLXVkaSogfCAtZWFiaSogfCAtbGl0ZXMqIHwgLWllZWUqIHwgLWdvMzIqIHwgLWF1 eCogXAorKwkgICAgICB8IC1jaG9ydXNvcyogfCAtY2hvcnVzcmRiKiBcCisrCSAgICAgIHwgLWN5 Z3dpbiogfCAtcGUqIHwgLXBzb3MqIHwgLW1vc3MqIHwgLXByb2VsZiogfCAtcnRlbXMqIFwKKysJ ICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC1uZXdsaWIqIHwgLWxpbnV4 LXVjbGliYyogXAorKwkgICAgICB8IC11eHB2KiB8IC1iZW9zKiB8IC1tcGVpeCogfCAtdWRrKiBc CisrCSAgICAgIHwgLWludGVyaXgqIHwgLXV3aW4qIHwgLW1rcyogfCAtcmhhcHNvZHkqIHwgLWRh cndpbiogfCAtb3BlbmVkKiBcCisrCSAgICAgIHwgLW9wZW5zdGVwKiB8IC1vc2tpdCogfCAtY29u aXgqIHwgLXB3MzIqIHwgLW5vbnN0b3B1eCogXAorKwkgICAgICB8IC1zdG9ybS1jaGFvcyogfCAt dG9wczEwKiB8IC10ZW5leCogfCAtdG9wczIwKiB8IC1pdHMqIFwKKysJICAgICAgfCAtb3MyKiB8 IC12b3MqIHwgLXBhbG1vcyogfCAtdWNsaW51eCogfCAtbnVjbGV1cyogXAorKwkgICAgICB8IC1t b3JwaG9zKiB8IC1zdXBlcnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5vdmEqIHwgLXdpbmRpc3MqIFwK KysJICAgICAgfCAtcG93ZXJtYXgqIHwgLWRuaXgqIHwgLW54NiB8IC1ueDcgfCAtc2VpKiB8IC1k cmFnb25mbHkqIFwKKysJICAgICAgfCAtc2t5b3MqIHwgLWhhaWt1KiB8IC1yZG9zKiB8IC10b3Bw ZXJzKiB8IC1kcm9wcyopCisrCSMgUmVtZW1iZXIsIGVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQg SU4gKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KKysJCTs7CisrCS1xbngqKQorKwkJY2Fz ZSAkYmFzaWNfbWFjaGluZSBpbgorKwkJICAgIHg4Ni0qIHwgaSo4Ni0qKQorKwkJCTs7CisrCQkg ICAgKikKKysJCQlvcz0tbnRvJG9zCisrCQkJOzsKKysJCWVzYWMKKysJCTs7CisrCS1udG8tcW54 KikKKysJCTs7CisrCS1udG8qKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50b3xudG8t cW54fCdgCisrCQk7OworKwktc2ltIHwgLWVzMTgwMCogfCAtaG1zKiB8IC14cmF5IHwgLW9zNjhr KiB8IC1ub25lKiB8IC12ODhyKiBcCisrCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8IC1hYnVn IHwgLW5ldHdhcmUqIHwgLW9zOSogfCAtYmVvcyogfCAtaGFpa3UqIFwKKysJICAgICAgfCAtbWFj b3MqIHwgLW1wdyogfCAtbWFnaWMqIHwgLW1taXh3YXJlKiB8IC1tb245NjAqIHwgLWxuZXdzKikK KysJCTs7CisrCS1tYWMqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG1hY3xtYWNvc3wn YAorKwkJOzsKKysJLWxpbnV4LWRpZXRsaWJjKQorKwkJb3M9LWxpbnV4LWRpZXRsaWJjCisrCQk7 OworKwktbGludXgqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGxpbnV4fGxpbnV4LWdu dXwnYAorKwkJOzsKKysJLXN1bm9zNSopCisrCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c3Vu b3M1fHNvbGFyaXMyfCdgCisrCQk7OworKwktc3Vub3M2KikKKysJCW9zPWBlY2hvICRvcyB8IHNl ZCAtZSAnc3xzdW5vczZ8c29sYXJpczN8J2AKKysJCTs7CisrCS1vcGVuZWQqKQorKwkJb3M9LW9w ZW5lZGl0aW9uCisrCQk7OworKyAgICAgICAgLW9zNDAwKikKKysJCW9zPS1vczQwMAorKwkJOzsK KysJLXdpbmNlKikKKysJCW9zPS13aW5jZQorKwkJOzsKKysJLW9zZnJvc2UqKQorKwkJb3M9LW9z ZnJvc2UKKysJCTs7CisrCS1vc2YqKQorKwkJb3M9LW9zZgorKwkJOzsKKysJLXV0ZWsqKQorKwkJ b3M9LWJzZAorKwkJOzsKKysJLWR5bml4KikKKysJCW9zPS1ic2QKKysJCTs7CisrCS1hY2lzKikK KysJCW9zPS1hb3MKKysJCTs7CisrCS1hdGhlb3MqKQorKwkJb3M9LWF0aGVvcworKwkJOzsKKysJ LXN5bGxhYmxlKikKKysJCW9zPS1zeWxsYWJsZQorKwkJOzsKKysJLTM4NmJzZCkKKysJCW9zPS1i c2QKKysJCTs7CisrCS1jdGl4KiB8IC11dHMqKQorKwkJb3M9LXN5c3YKKysJCTs7CisrCS1ub3Zh KikKKysJCW9zPS1ydG1rLW5vdmEKKysJCTs7CisrCS1uczIgKQorKwkJb3M9LW5leHRzdGVwMgor KwkJOzsKKysJLW5zayopCisrCQlvcz0tbnNrCisrCQk7OworKwkjIFByZXNlcnZlIHRoZSB2ZXJz aW9uIG51bWJlciBvZiBzaW5peDUuCisrCS1zaW5peDUuKikKKysJCW9zPWBlY2hvICRvcyB8IHNl ZCAtZSAnc3xzaW5peHxzeXN2fCdgCisrCQk7OworKwktc2luaXgqKQorKwkJb3M9LXN5c3Y0Cisr CQk7OworKyAgICAgICAgLXRwZiopCisrCQlvcz0tdHBmCisrCQk7OworKwktdHJpdG9uKikKKysJ CW9zPS1zeXN2MworKwkJOzsKKysJLW9zcyopCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCS1zdnI0 KQorKwkJb3M9LXN5c3Y0CisrCQk7OworKwktc3ZyMykKKysJCW9zPS1zeXN2MworKwkJOzsKKysJ LXN5c3ZyNCkKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJIyBUaGlzIG11c3QgY29tZSBhZnRlciAt c3lzdnI0LgorKwktc3lzdiopCisrCQk7OworKwktb3NlKikKKysJCW9zPS1vc2UKKysJCTs7Cisr CS1lczE4MDAqKQorKwkJb3M9LW9zZQorKwkJOzsKKysJLXhlbml4KQorKwkJb3M9LXhlbml4Cisr CQk7OworKwktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQorKwkJ b3M9LW1pbnQKKysJCTs7CisrCS1hcm9zKikKKysJCW9zPS1hcm9zCisrCQk7OworKwkta2Fvcyop CisrCQlvcz0ta2FvcworKwkJOzsKKysJLXp2bW9lKQorKwkJb3M9LXp2bW9lCisrCQk7OworKwkt bm9uZSkKKysJCTs7CisrCSopCisrCQkjIEdldCByaWQgb2YgdGhlIGAtJyBhdCB0aGUgYmVnaW5u aW5nIG9mICRvcy4KKysJCW9zPWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0vLydgCisrCQllY2hv IEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IHN5c3RlbSBcYCRvc1wnIG5vdCByZWNvZ25p emVkIDE+JjIKKysJCWV4aXQgMQorKwkJOzsKKytlc2FjCisrZWxzZQorKworKyMgSGVyZSB3ZSBo YW5kbGUgdGhlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3RlbXMgdGhhdCBjb21lIHdpdGggdmFyaW91 cyBtYWNoaW5lcy4KKysjIFRoZSB2YWx1ZSBzaG91bGQgYmUgd2hhdCB0aGUgdmVuZG9yIGN1cnJl bnRseSBzaGlwcyBvdXQgdGhlIGRvb3Igd2l0aCB0aGVpcgorKyMgbWFjaGluZSBvciBwdXQgYW5v dGhlciB3YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0aGUgbWFjaGluZS4K KysKKysjIE5vdGUgdGhhdCBpZiB5b3UncmUgZ29pbmcgdG8gdHJ5IHRvIG1hdGNoICItTUFOVUZB Q1RVUkVSIiBoZXJlIChzYXksCisrIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZlIHRvIHRlbGwgdGhl IGNhc2Ugc3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAorKyMgdGhhdCBNQU5VRkFDVFVSRVIg aXNuJ3QgYW4gb3BlcmF0aW5nIHN5c3RlbS4gIE90aGVyd2lzZSwgY29kZSBhYm92ZQorKyMgd2ls bCBzaWduYWwgYW4gZXJyb3Igc2F5aW5nIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0IGFuIG9wZXJh dGluZworKyMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQuCisrCisr Y2FzZSAkYmFzaWNfbWFjaGluZSBpbgorKyAgICAgICAgc2NvcmUtKikKKysJCW9zPS1lbGYKKysJ CTs7CisrICAgICAgICBzcHUtKikKKysJCW9zPS1lbGYKKysJCTs7CisrCSotYWNvcm4pCisrCQlv cz0tcmlzY2l4MS4yCisrCQk7OworKwlhcm0qLXJlYmVsKQorKwkJb3M9LWxpbnV4CisrCQk7Owor Kwlhcm0qLXNlbWkpCisrCQlvcz0tYW91dAorKwkJOzsKKysgICAgICAgIGM0eC0qIHwgdGljNHgt KikKKysgICAgICAgIAlvcz0tY29mZgorKwkJOzsKKysJIyBUaGlzIG11c3QgY29tZSBiZWZvcmUg dGhlICotZGVjIGVudHJ5LgorKwlwZHAxMC0qKQorKwkJb3M9LXRvcHMyMAorKwkJOzsKKysJcGRw MTEtKikKKysJCW9zPS1ub25lCisrCQk7OworKwkqLWRlYyB8IHZheC0qKQorKwkJb3M9LXVsdHJp eDQuMgorKwkJOzsKKysJbTY4Ki1hcG9sbG8pCisrCQlvcz0tZG9tYWluCisrCQk7OworKwlpMzg2 LXN1bikKKysJCW9zPS1zdW5vczQuMC4yCisrCQk7OworKwltNjgwMDAtc3VuKQorKwkJb3M9LXN1 bm9zMworKwkJIyBUaGlzIGFsc28gZXhpc3RzIGluIHRoZSBjb25maWd1cmUgcHJvZ3JhbSwgYnV0 IHdhcyBub3QgdGhlCisrCQkjIGRlZmF1bHQuCisrCQkjIG9zPS1zdW5vczQKKysJCTs7CisrCW02 OCotY2lzY28pCisrCQlvcz0tYW91dAorKwkJOzsKKysgICAgICAgIG1lcC0qKQorKwkJb3M9LWVs ZgorKwkJOzsKKysJbWlwcyotY2lzY28pCisrCQlvcz0tZWxmCisrCQk7OworKwltaXBzKi0qKQor KwkJb3M9LWVsZgorKwkJOzsKKysJb3IzMi0qKQorKwkJb3M9LWNvZmYKKysJCTs7CisrCSotdHRp KQkjIG11c3QgYmUgYmVmb3JlIHNwYXJjIGVudHJ5IG9yIHdlIGdldCB0aGUgd3Jvbmcgb3MuCisr CQlvcz0tc3lzdjMKKysJCTs7CisrCXNwYXJjLSogfCAqLXN1bikKKysJCW9zPS1zdW5vczQuMS4x CisrCQk7OworKwkqLWJlKQorKwkJb3M9LWJlb3MKKysJCTs7CisrCSotaGFpa3UpCisrCQlvcz0t aGFpa3UKKysJCTs7CisrCSotaWJtKQorKwkJb3M9LWFpeAorKwkJOzsKKysgICAgCSota251dGgp CisrCQlvcz0tbW1peHdhcmUKKysJCTs7CisrCSotd2VjKQorKwkJb3M9LXByb2VsZgorKwkJOzsK KysJKi13aW5ib25kKQorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJKi1va2kpCisrCQlvcz0tcHJv ZWxmCisrCQk7OworKwkqLWhwKQorKwkJb3M9LWhwdXgKKysJCTs7CisrCSotaGl0YWNoaSkKKysJ CW9zPS1oaXV4CisrCQk7OworKwlpODYwLSogfCAqLWF0dCB8ICotbmNyIHwgKi1hbHRvcyB8ICot bW90b3JvbGEgfCAqLWNvbnZlcmdlbnQpCisrCQlvcz0tc3lzdgorKwkJOzsKKysJKi1jYm0pCisr CQlvcz0tYW1pZ2FvcworKwkJOzsKKysJKi1kZykKKysJCW9zPS1kZ3V4CisrCQk7OworKwkqLWRv bHBoaW4pCisrCQlvcz0tc3lzdjMKKysJCTs7CisrCW02OGstY2N1cikKKysJCW9zPS1ydHUKKysJ CTs7CisrCW04OGstb21yb24qKQorKwkJb3M9LWx1bmEKKysJCTs7CisrCSotbmV4dCApCisrCQlv cz0tbmV4dHN0ZXAKKysJCTs7CisrCSotc2VxdWVudCkKKysJCW9zPS1wdHgKKysJCTs7CisrCSot Y3JkcykKKysJCW9zPS11bm9zCisrCQk7OworKwkqLW5zKQorKwkJb3M9LWdlbml4CisrCQk7Owor KwlpMzcwLSopCisrCQlvcz0tbXZzCisrCQk7OworKwkqLW5leHQpCisrCQlvcz0tbmV4dHN0ZXAz CisrCQk7OworKwkqLWdvdWxkKQorKwkJb3M9LXN5c3YKKysJCTs7CisrCSotaGlnaGxldmVsKQor KwkJb3M9LWJzZAorKwkJOzsKKysJKi1lbmNvcmUpCisrCQlvcz0tYnNkCisrCQk7OworKwkqLXNn aSkKKysJCW9zPS1pcml4CisrCQk7OworKwkqLXNpZW1lbnMpCisrCQlvcz0tc3lzdjQKKysJCTs7 CisrCSotbWFzc2NvbXApCisrCQlvcz0tcnR1CisrCQk7OworKwlmMzBbMDFdLWZ1aml0c3UgfCBm NzAwLWZ1aml0c3UpCisrCQlvcz0tdXhwdgorKwkJOzsKKysJKi1yb202OGspCisrCQlvcz0tY29m ZgorKwkJOzsKKysJKi0qYnVnKQorKwkJb3M9LWNvZmYKKysJCTs7CisrCSotYXBwbGUpCisrCQlv cz0tbWFjb3MKKysJCTs7CisrCSotYXRhcmkqKQorKwkJb3M9LW1pbnQKKysJCTs7CisrCSopCisr CQlvcz0tbm9uZQorKwkJOzsKKytlc2FjCisrZmkKKysKKysjIEhlcmUgd2UgaGFuZGxlIHRoZSBj YXNlIHdoZXJlIHdlIGtub3cgdGhlIG9zLCBhbmQgdGhlIENQVSB0eXBlLCBidXQgbm90IHRoZQor KyMgbWFudWZhY3R1cmVyLiAgV2UgcGljayB0aGUgbG9naWNhbCBtYW51ZmFjdHVyZXIuCisrdmVu ZG9yPXVua25vd24KKytjYXNlICRiYXNpY19tYWNoaW5lIGluCisrCSotdW5rbm93bikKKysJCWNh c2UgJG9zIGluCisrCQkJLXJpc2NpeCopCisrCQkJCXZlbmRvcj1hY29ybgorKwkJCQk7OworKwkJ CS1zdW5vcyopCisrCQkJCXZlbmRvcj1zdW4KKysJCQkJOzsKKysJCQktYWl4KikKKysJCQkJdmVu ZG9yPWlibQorKwkJCQk7OworKwkJCS1iZW9zKikKKysJCQkJdmVuZG9yPWJlCisrCQkJCTs7Cisr CQkJLWhwdXgqKQorKwkJCQl2ZW5kb3I9aHAKKysJCQkJOzsKKysJCQktbXBlaXgqKQorKwkJCQl2 ZW5kb3I9aHAKKysJCQkJOzsKKysJCQktaGl1eCopCisrCQkJCXZlbmRvcj1oaXRhY2hpCisrCQkJ CTs7CisrCQkJLXVub3MqKQorKwkJCQl2ZW5kb3I9Y3JkcworKwkJCQk7OworKwkJCS1kZ3V4KikK KysJCQkJdmVuZG9yPWRnCisrCQkJCTs7CisrCQkJLWx1bmEqKQorKwkJCQl2ZW5kb3I9b21yb24K KysJCQkJOzsKKysJCQktZ2VuaXgqKQorKwkJCQl2ZW5kb3I9bnMKKysJCQkJOzsKKysJCQktbXZz KiB8IC1vcGVuZWQqKQorKwkJCQl2ZW5kb3I9aWJtCisrCQkJCTs7CisrCQkJLW9zNDAwKikKKysJ CQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS1wdHgqKQorKwkJCQl2ZW5kb3I9c2VxdWVudAor KwkJCQk7OworKwkJCS10cGYqKQorKwkJCQl2ZW5kb3I9aWJtCisrCQkJCTs7CisrCQkJLXZ4c2lt KiB8IC12eHdvcmtzKiB8IC13aW5kaXNzKikKKysJCQkJdmVuZG9yPXdycworKwkJCQk7OworKwkJ CS1hdXgqKQorKwkJCQl2ZW5kb3I9YXBwbGUKKysJCQkJOzsKKysJCQktaG1zKikKKysJCQkJdmVu ZG9yPWhpdGFjaGkKKysJCQkJOzsKKysJCQktbXB3KiB8IC1tYWNvcyopCisrCQkJCXZlbmRvcj1h cHBsZQorKwkJCQk7OworKwkJCS0qbWludCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1pTlRb MC05XSopCisrCQkJCXZlbmRvcj1hdGFyaQorKwkJCQk7OworKwkJCS12b3MqKQorKwkJCQl2ZW5k b3I9c3RyYXR1cworKwkJCQk7OworKwkJZXNhYworKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFz aWNfbWFjaGluZSB8IHNlZCAicy91bmtub3duLyR2ZW5kb3IvImAKKysJCTs7CisrZXNhYworKwor K2VjaG8gJGJhc2ljX21hY2hpbmUkb3MKKytleGl0CisrCisrIyBMb2NhbCB2YXJpYWJsZXM6Cisr IyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisrIyB0aW1l LXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCisrIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0l MDJtLSUwMmQiCisrIyB0aW1lLXN0YW1wLWVuZDogIiciCisrIyBFbmQ6CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9jcHB1bml0Lm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL2NwcHVuaXQubTQJMjAwOS0wNC0xNiAxOTozNzoyMy4wMDAwMDAwMDAgKzAyMDAKK0BA IC0wLDAgKzEsOTMgQEAKKytkbmwKKytkbmwgQU1fUEFUSF9DUFBVTklUKE1JTklNVU0tVkVSU0lP TiwgW0FDVElPTi1JRi1GT1VORCBbLCBBQ1RJT04tSUYtTk9ULUZPVU5EXV0pCisrZG5sCisrQUNf REVGVU4oW0FNX1BBVEhfQ1BQVU5JVF0sCisrWworKworK0FDX0FSR19XSVRIKGNwcHVuaXQtcHJl Zml4LFsgIC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgQ3BwVW5pdCBp cyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCisrICAgICAgICAgICAgY3BwdW5pdF9jb25maWdfcHJl Zml4PSIkd2l0aHZhbCIsIGNwcHVuaXRfY29uZmlnX3ByZWZpeD0iIikKKytBQ19BUkdfV0lUSChj cHB1bml0LWV4ZWMtcHJlZml4LFsgIC0td2l0aC1jcHB1bml0LWV4ZWMtcHJlZml4PVBGWCAgRXhl YyBwcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCisrICAgICAg ICAgICAgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiR3aXRodmFsIiwgY3BwdW5pdF9jb25m aWdfZXhlY19wcmVmaXg9IiIpCisrCisrICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfZXhlY19w cmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2Nv bmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4IgorKyAg ICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCisrICAgICAg ICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgvYmluL2NwcHVuaXQt Y29uZmlnCisrICAgICBmaQorKyAgZmkKKysgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19wcmVm aXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZp Z19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZpZ19wcmVmaXgiCisrICAgICBpZiB0ZXN0IHgk e0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KKysgICAgICAgIENQUFVOSVRfQ09O RklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCisrICAgICBmaQor KyAgZmkKKysKKysgIEFDX1BBVEhfUFJPRyhDUFBVTklUX0NPTkZJRywgY3BwdW5pdC1jb25maWcs IG5vKQorKyAgY3BwdW5pdF92ZXJzaW9uX21pbj0kMQorKworKyAgQUNfTVNHX0NIRUNLSU5HKGZv ciBDcHB1bml0IC0gdmVyc2lvbiA+PSAkY3BwdW5pdF92ZXJzaW9uX21pbikKKysgIG5vX2NwcHVu aXQ9IiIKKysgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIgPSAibm8iIDsgdGhlbgorKyAgICBB Q19NU0dfUkVTVUxUKG5vKQorKyAgICBub19jcHB1bml0PXllcworKyAgZWxzZQorKyAgICBDUFBV TklUX0NGTEFHUz1gJENQUFVOSVRfQ09ORklHIC0tY2ZsYWdzYAorKyAgICBDUFBVTklUX0xJQlM9 YCRDUFBVTklUX0NPTkZJRyAtLWxpYnNgCisrICAgIENQUFVOSVRfVkVSU0lPTj1gJENQUFVOSVRf Q09ORklHIC0tdmVyc2lvbmAKKysKKysgICAgY3BwdW5pdF9tYWpvcl92ZXJzaW9uPWBlY2hvICRD UFBVTklUX1ZFUlNJT04gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1sw LTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKKysgICAgY3BwdW5pdF9taW5vcl92ZXJzaW9uPWBl Y2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwp LlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AKKysgICAgY3BwdW5pdF9taWNyb192ZXJz aW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbWzAt OV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AKKysKKysgICAgY3BwdW5pdF9t YWpvcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisrICAgICAgICAgICBzZWQg J3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKKysgICAgaWYg dGVzdCAieCR7Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5p dF9tYWpvcl9taW49MAorKyAgICBmaQorKyAgICAKKysgICAgY3BwdW5pdF9taW5vcl9taW49YGVj aG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1d KlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AKKysgICAgaWYgdGVzdCAieCR7Y3Bw dW5pdF9taW5vcl9taW59IiA9ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5pdF9taW5vcl9taW49 MAorKyAgICBmaQorKyAgICAKKysgICAgY3BwdW5pdF9taWNyb19taW49YGVjaG8gJGNwcHVuaXRf dmVyc2lvbl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTld XSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AKKysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taWNyb19t aW59IiA9ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5pdF9taWNyb19taW49MAorKyAgICBmaQor KworKyAgICBjcHB1bml0X3ZlcnNpb25fcHJvcGVyPWBleHByIFwKKysgICAgICAgICRjcHB1bml0 X21ham9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWFqb3JfbWluIFx8IFwKKysgICAgICAgICRjcHB1 bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3JfbWluIFwmIFwKKysgICAgICAgICRj cHB1bml0X21pbm9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWlub3JfbWluIFx8IFwKKysgICAgICAg ICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3JfbWluIFwmIFwKKysgICAg ICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWlub3JfbWluIFwmIFwKKysg ICAgICAgICRjcHB1bml0X21pY3JvX3ZlcnNpb24gXD49ICRjcHB1bml0X21pY3JvX21pbiBgCisr CisrICAgIGlmIHRlc3QgIiRjcHB1bml0X3ZlcnNpb25fcHJvcGVyIiA9ICIxIiA7IHRoZW4KKysg ICAgICBBQ19NU0dfUkVTVUxUKFskY3BwdW5pdF9tYWpvcl92ZXJzaW9uLiRjcHB1bml0X21pbm9y X3ZlcnNpb24uJGNwcHVuaXRfbWljcm9fdmVyc2lvbl0pCisrICAgIGVsc2UKKysgICAgICBBQ19N U0dfUkVTVUxUKG5vKQorKyAgICAgIG5vX2NwcHVuaXQ9eWVzCisrICAgIGZpCisrICBmaQorKwor KyAgaWYgdGVzdCAieCRub19jcHB1bml0IiA9IHggOyB0aGVuCisrICAgICBpZmVsc2UoWyQyXSwg LCA6LCBbJDJdKSAgICAgCisrICBlbHNlCisrICAgICBDUFBVTklUX0NGTEFHUz0iIgorKyAgICAg Q1BQVU5JVF9MSUJTPSIiCisrICAgICBpZmVsc2UoWyQzXSwgLCA6LCBbJDNdKQorKyAgZmkKKysK KysgIEFDX1NVQlNUKENQUFVOSVRfQ0ZMQUdTKQorKyAgQUNfU1VCU1QoQ1BQVU5JVF9MSUJTKQor KyAgQUNfU1VCU1QoQ1BQVU5JVF9WRVJTSU9OKQorK10pCisrCisrCisrCitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svY29uZmlnL2RlcGNvbXAgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9k ZXBjb21wCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2RlcGNvbXAJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2Rl cGNvbXAJMjAwOS0wNS0wMyAwMDoyMDo0Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTg5 IEBACisrIyEgL2Jpbi9zaAorKyMgZGVwY29tcCAtIGNvbXBpbGUgYSBwcm9ncmFtIGdlbmVyYXRp bmcgZGVwZW5kZW5jaWVzIGFzIHNpZGUtZWZmZWN0cworKworK3NjcmlwdHZlcnNpb249MjAwNy0w My0yOS4wMQorKworKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3IEZyZWUgU29mdHdhcmUKKysjIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQorKyMgYW55IGxhdGVyIHZl cnNpb24uCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyMgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisr IyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0 b24sIE1BCisrIyAwMjExMC0xMzAxLCBVU0EuCisrCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9u IHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRl IHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZp Z3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0 IHVuZGVyCisrIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0 aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisrCisrIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQWxl eGFuZHJlIE9saXZhIDxvbGl2YUBkY2MudW5pY2FtcC5icj4uCisrCisrY2FzZSAkMSBpbgorKyAg JycpCisrICAgICBlY2hvICIkMDogTm8gY29tbWFuZC4gIFRyeSBcYCQwIC0taGVscCcgZm9yIG1v cmUgaW5mb3JtYXRpb24uIiAxPiYyCisrICAgICBleGl0IDE7CisrICAgICA7OworKyAgLWggfCAt LWgqKQorKyAgICBjYXQgPDxcRU9GCisrVXNhZ2U6IGRlcGNvbXAgWy0taGVscF0gWy0tdmVyc2lv bl0gUFJPR1JBTSBbQVJHU10KKysKKytSdW4gUFJPR1JBTVMgQVJHUyB0byBjb21waWxlIGEgZmls ZSwgZ2VuZXJhdGluZyBkZXBlbmRlbmNpZXMKKythcyBzaWRlLWVmZmVjdHMuCisrCisrRW52aXJv bm1lbnQgdmFyaWFibGVzOgorKyAgZGVwbW9kZSAgICAgRGVwZW5kZW5jeSB0cmFja2luZyBtb2Rl LgorKyAgc291cmNlICAgICAgU291cmNlIGZpbGUgcmVhZCBieSBgUFJPR1JBTVMgQVJHUycuCisr ICBvYmplY3QgICAgICBPYmplY3QgZmlsZSBvdXRwdXQgYnkgYFBST0dSQU1TIEFSR1MnLgorKyAg REVQRElSICAgICAgZGlyZWN0b3J5IHdoZXJlIHRvIHN0b3JlIGRlcGVuZGVuY2llcy4KKysgIGRl cGZpbGUgICAgIERlcGVuZGVuY3kgZmlsZSB0byBvdXRwdXQuCisrICB0bXBkZXBmaWxlICBUZW1w b3JhcnkgZmlsZSB0byB1c2Ugd2hlbiBvdXRwdXRpbmcgZGVwZW5kZW5jaWVzLgorKyAgbGlidG9v bCAgICAgV2hldGhlciBsaWJ0b29sIGlzIHVzZWQgKHllcy9ubykuCisrCisrUmVwb3J0IGJ1Z3Mg dG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4KKytFT0YKKysgICAgZXhpdCAkPworKyAgICA7Owor KyAgLXYgfCAtLXYqKQorKyAgICBlY2hvICJkZXBjb21wICRzY3JpcHR2ZXJzaW9uIgorKyAgICBl eGl0ICQ/CisrICAgIDs7CisrZXNhYworKworK2lmIHRlc3QgLXogIiRkZXBtb2RlIiB8fCB0ZXN0 IC16ICIkc291cmNlIiB8fCB0ZXN0IC16ICIkb2JqZWN0IjsgdGhlbgorKyAgZWNobyAiZGVwY29t cDogVmFyaWFibGVzIHNvdXJjZSwgb2JqZWN0IGFuZCBkZXBtb2RlIG11c3QgYmUgc2V0IiAxPiYy CisrICBleGl0IDEKKytmaQorKworKyMgRGVwZW5kZW5jaWVzIGZvciBzdWIvYmFyLm8gb3Igc3Vi L2Jhci5vYmogZ28gaW50byBzdWIvLmRlcHMvYmFyLlBvLgorK2RlcGZpbGU9JHtkZXBmaWxlLWBl Y2hvICIkb2JqZWN0IiB8CisrICBzZWQgJ3N8W15cXC9dKiR8JyR7REVQRElSLS5kZXBzfScvJnw7 c3xcLlwoW14uXSpcKSR8LlBcMXw7c3xQb2JqJHxQb3wnYH0KKyt0bXBkZXBmaWxlPSR7dG1wZGVw ZmlsZS1gZWNobyAiJGRlcGZpbGUiIHwgc2VkICdzL1wuXChbXi5dKlwpJC8uVFwxLydgfQorKwor K3JtIC1mICIkdG1wZGVwZmlsZSIKKysKKysjIFNvbWUgbW9kZXMgd29yayBqdXN0IGxpa2Ugb3Ro ZXIgbW9kZXMsIGJ1dCB1c2UgZGlmZmVyZW50IGZsYWdzLiAgV2UKKysjIHBhcmFtZXRlcml6ZSBo ZXJlLCBidXQgc3RpbGwgbGlzdCB0aGUgbW9kZXMgaW4gdGhlIGJpZyBjYXNlIGJlbG93LAorKyMg dG8gbWFrZSBkZXBlbmQubTQgZWFzaWVyIHRvIHdyaXRlLiAgTm90ZSB0aGF0IHdlICpjYW5ub3Qq IHVzZSBhIGNhc2UKKysjIGhlcmUsIGJlY2F1c2UgdGhpcyBmaWxlIGNhbiBvbmx5IGNvbnRhaW4g b25lIGNhc2Ugc3RhdGVtZW50LgorK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGhwOyB0aGVuCisrICAj IEhQIGNvbXBpbGVyIHVzZXMgLU0gYW5kIG5vIGV4dHJhIGFyZy4KKysgIGdjY2ZsYWc9LU0KKysg IGRlcG1vZGU9Z2NjCisrZmkKKysKKytpZiB0ZXN0ICIkZGVwbW9kZSIgPSBkYXNoWG1zdGRvdXQ7 IHRoZW4KKysgICAjIFRoaXMgaXMganVzdCBsaWtlIGRhc2htc3Rkb3V0IHdpdGggYSBkaWZmZXJl bnQgYXJndW1lbnQuCisrICAgZGFzaG1mbGFnPS14TQorKyAgIGRlcG1vZGU9ZGFzaG1zdGRvdXQK KytmaQorKworK2Nhc2UgIiRkZXBtb2RlIiBpbgorK2djYzMpCisrIyMgZ2NjIDMgaW1wbGVtZW50 cyBkZXBlbmRlbmN5IHRyYWNraW5nIHRoYXQgZG9lcyBleGFjdGx5IHdoYXQKKysjIyB3ZSB3YW50 LiAgWWF5ISAgTm90ZTogZm9yIHNvbWUgcmVhc29uIGxpYnRvb2wgMS40IGRvZXNuJ3QgbGlrZQor KyMjIGl0IGlmIC1NRCAtTVAgY29tZXMgYWZ0ZXIgdGhlIC1NRiBzdHVmZi4gIEhtbS4KKysjIyBV bmZvcnR1bmF0ZWx5LCBGcmVlQlNEIGM4OSBhY2NlcHRhbmNlIG9mIGZsYWdzIGRlcGVuZHMgdXBv bgorKyMjIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQgb3JkZXI7IHNvIGFkZCB0aGUgZmxhZ3Mg d2hlcmUgdGhleQorKyMjIGFwcGVhciBpbiBkZXBlbmQyLmFtLiAgTm90ZSB0aGF0IHRoZSBzbG93 ZG93biBpbmN1cnJlZCBoZXJlCisrIyMgYWZmZWN0cyBvbmx5IGNvbmZpZ3VyZTogaW4gbWFrZWZp bGVzLCAlRkFTVERFUCUgc2hvcnRjdXRzIHRoaXMuCisrICBmb3IgYXJnCisrICBkbworKyAgICBj YXNlICRhcmcgaW4KKysgICAgLWMpIHNldCBmbm9yZCAiJEAiIC1NVCAiJG9iamVjdCIgLU1EIC1N UCAtTUYgIiR0bXBkZXBmaWxlIiAiJGFyZyIgOzsKKysgICAgKikgIHNldCBmbm9yZCAiJEAiICIk YXJnIiA7OworKyAgICBlc2FjCisrICAgIHNoaWZ0ICMgZm5vcmQKKysgICAgc2hpZnQgIyAkYXJn CisrICBkb25lCisrICAiJEAiCisrICBzdGF0PSQ/CisrICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0 aGVuIDoKKysgIGVsc2UKKysgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgICBleGl0ICRzdGF0 CisrICBmaQorKyAgbXYgIiR0bXBkZXBmaWxlIiAiJGRlcGZpbGUiCisrICA7OworKworK2djYykK KysjIyBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIHRvIGdldCBkZXBlbmRlbmN5IG91dHB1dCBmcm9t IGdjYy4gIEhlcmUncworKyMjIHdoeSB3ZSBwaWNrIHRoaXMgcmF0aGVyIG9ic2N1cmUgbWV0aG9k OgorKyMjIC0gRG9uJ3Qgd2FudCB0byB1c2UgLU1EIGJlY2F1c2Ugd2UnZCBsaWtlIHRoZSBkZXBl bmRlbmNpZXMgdG8gZW5kCisrIyMgICB1cCBpbiBhIHN1YmRpci4gIEhhdmluZyB0byByZW5hbWUg YnkgaGFuZCBpcyB1Z2x5LgorKyMjICAgKFdlIG1pZ2h0IGVuZCB1cCBkb2luZyB0aGlzIGFueXdh eSB0byBzdXBwb3J0IG90aGVyIGNvbXBpbGVycy4pCisrIyMgLSBUaGUgREVQRU5ERU5DSUVTX09V VFBVVCBlbnZpcm9ubWVudCB2YXJpYWJsZSBtYWtlcyBnY2MgYWN0IGxpa2UKKysjIyAgIC1NTSwg bm90IC1NIChkZXNwaXRlIHdoYXQgdGhlIGRvY3Mgc2F5KS4KKysjIyAtIFVzaW5nIC1NIGRpcmVj dGx5IG1lYW5zIHJ1bm5pbmcgdGhlIGNvbXBpbGVyIHR3aWNlIChldmVuIHdvcnNlCisrIyMgICB0 aGFuIHJlbmFtaW5nKS4KKysgIGlmIHRlc3QgLXogIiRnY2NmbGFnIjsgdGhlbgorKyAgICBnY2Nm bGFnPS1NRCwKKysgIGZpCisrICAiJEAiIC1XcCwiJGdjY2ZsYWckdG1wZGVwZmlsZSIKKysgIHN0 YXQ9JD8KKysgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICBybSAt ZiAiJHRtcGRlcGZpbGUiCisrICAgIGV4aXQgJHN0YXQKKysgIGZpCisrICBybSAtZiAiJGRlcGZp bGUiCisrICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgorKyAgYWxwaGE9QUJDREVG R0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egorKyMjIFRoZSBz ZWNvbmQgLWUgZXhwcmVzc2lvbiBoYW5kbGVzIERPUy1zdHlsZSBmaWxlIG5hbWVzIHdpdGggZHJp dmUgbGV0dGVycy4KKysgIHNlZCAtZSAncy9eW146XSo6IC8gLycgXAorKyAgICAgIC1lICdzL15b JyRhbHBoYSddOlwvW146XSo6IC8gLycgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKysj IyBUaGlzIG5leHQgcGllY2Ugb2YgbWFnaWMgYXZvaWRzIHRoZSBgZGVsZXRlZCBoZWFkZXIgZmls ZScgcHJvYmxlbS4KKysjIyBUaGUgcHJvYmxlbSBpcyB0aGF0IHdoZW4gYSBoZWFkZXIgZmlsZSB3 aGljaCBhcHBlYXJzIGluIGEgLlAgZmlsZQorKyMjIGlzIGRlbGV0ZWQsIHRoZSBkZXBlbmRlbmN5 IGNhdXNlcyBtYWtlIHRvIGRpZSAoYmVjYXVzZSB0aGVyZSBpcworKyMjIHR5cGljYWxseSBubyB3 YXkgdG8gcmVidWlsZCB0aGUgaGVhZGVyKS4gIFdlIGF2b2lkIHRoaXMgYnkgYWRkaW5nCisrIyMg ZHVtbXkgZGVwZW5kZW5jaWVzIGZvciBlYWNoIGhlYWRlciBmaWxlLiAgVG9vIGJhZCBnY2MgZG9l c24ndCBkbworKyMjIHRoaXMgZm9yIHVzIGRpcmVjdGx5LgorKyAgdHIgJyAnICcKKysnIDwgIiR0 bXBkZXBmaWxlIiB8CisrIyMgU29tZSB2ZXJzaW9ucyBvZiBnY2MgcHV0IGEgc3BhY2UgYmVmb3Jl IHRoZSBgOicuICBPbiB0aGUgdGhlb3J5CisrIyMgdGhhdCB0aGUgc3BhY2UgbWVhbnMgc29tZXRo aW5nLCB3ZSBhZGQgYSBzcGFjZSB0byB0aGUgb3V0cHV0IGFzCisrIyMgd2VsbC4KKysjIyBTb21l IHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2Nh dGlvbgorKyMjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9u cyBpcyBhIHdvcmthcm91bmQuCisrICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUg Jy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgorKyAgcm0gLWYgIiR0bXBk ZXBmaWxlIgorKyAgOzsKKysKKytocCkKKysgICMgVGhpcyBjYXNlIGV4aXN0cyBvbmx5IHRvIGxl dCBkZXBlbmQubTQgZG8gaXRzIHdvcmsuICBJdCB3b3JrcyBieQorKyAgIyBsb29raW5nIGF0IHRo ZSB0ZXh0IG9mIHRoaXMgc2NyaXB0LiAgVGhpcyBjYXNlIHdpbGwgbmV2ZXIgYmUgcnVuLAorKyAg IyBzaW5jZSBpdCBpcyBjaGVja2VkIGZvciBhYm92ZS4KKysgIGV4aXQgMQorKyAgOzsKKysKKytz Z2kpCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKysgICAgIiRAIiAiLVdwLC1N RHVwZGF0ZSwkdG1wZGVwZmlsZSIKKysgIGVsc2UKKysgICAgIiRAIiAtTUR1cGRhdGUgIiR0bXBk ZXBmaWxlIgorKyAgZmkKKysgIHN0YXQ9JD8KKysgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4g OgorKyAgZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICAgIGV4aXQgJHN0YXQKKysg IGZpCisrICBybSAtZiAiJGRlcGZpbGUiCisrCisrICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7 IHRoZW4gICMgeWVzLCB0aGUgc291cmNlZmlsZSBkZXBlbmQgb24gb3RoZXIgZmlsZXMKKysgICAg ZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKysKKysgICAgIyBDbGlwIG9mZiB0aGUg aW5pdGlhbCBlbGVtZW50ICh0aGUgZGVwZW5kZW50KS4gIERvbid0IHRyeSB0byBiZQorKyAgICAj IGNsZXZlciBhbmQgcmVwbGFjZSB0aGlzIHdpdGggc2VkIGNvZGUsIGFzIElSSVggc2VkIHdvbid0 IGhhbmRsZQorKyAgICAjIGxpbmVzIHdpdGggbW9yZSB0aGFuIGEgZml4ZWQgbnVtYmVyIG9mIGNo YXJhY3RlcnMgKDQwOTYgaW4KKysgICAgIyBJUklYIDYuMiBzZWQsIDgxOTIgaW4gSVJJWCA2LjUp LiAgV2UgYWxzbyByZW1vdmUgY29tbWVudCBsaW5lczsKKysgICAgIyB0aGUgSVJJWCBjYyBhZGRz IGNvbW1lbnRzIGxpa2UgYCM6ZmVjJyB0byB0aGUgZW5kIG9mIHRoZQorKyAgICAjIGRlcGVuZGVu Y3kgbGluZS4KKysgICAgdHIgJyAnICcKKysnIDwgIiR0bXBkZXBmaWxlIiBcCisrICAgIHwgc2Vk IC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyB8IFwKKysgICAgdHIg JworKycgJyAnID4+ICRkZXBmaWxlCisrICAgIGVjaG8gPj4gJGRlcGZpbGUKKysKKysgICAgIyBU aGUgc2Vjb25kIHBhc3MgZ2VuZXJhdGVzIGEgZHVtbXkgZW50cnkgZm9yIGVhY2ggaGVhZGVyIGZp bGUuCisrICAgIHRyICcgJyAnCisrJyA8ICIkdG1wZGVwZmlsZSIgXAorKyAgIHwgc2VkIC1lICdz L14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyAtZSAncy8kLzovJyBcCisrICAg Pj4gJGRlcGZpbGUKKysgIGVsc2UKKysgICAgIyBUaGUgc291cmNlZmlsZSBkb2VzIG5vdCBjb250 YWluIGFueSBkZXBlbmRlbmNpZXMsIHNvIGp1c3QKKysgICAgIyBzdG9yZSBhIGR1bW15IGNvbW1l bnQgbGluZSwgdG8gYXZvaWQgZXJyb3JzIHdpdGggdGhlIE1ha2VmaWxlCisrICAgICMgImluY2x1 ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCisrICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUi CisrICBmaQorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsKKysKKythaXgpCisrICAjIFRo ZSBDIGZvciBBSVggQ29tcGlsZXIgdXNlcyAtTSBhbmQgb3V0cHV0cyB0aGUgZGVwZW5kZW5jaWVz CisrICAjIGluIGEgLnUgZmlsZS4gIEluIG9sZGVyIHZlcnNpb25zLCB0aGlzIGZpbGUgYWx3YXlz IGxpdmVzIGluIHRoZQorKyAgIyBjdXJyZW50IGRpcmVjdG9yeS4gIEFsc28sIHRoZSBBSVggY29t cGlsZXIgcHV0cyBgJG9iamVjdDonIGF0IHRoZQorKyAgIyBzdGFydCBvZiBlYWNoIGxpbmU7ICRv YmplY3QgZG9lc24ndCBoYXZlIGRpcmVjdG9yeSBpbmZvcm1hdGlvbi4KKysgICMgVmVyc2lvbiA2 IHVzZXMgdGhlIGRpcmVjdG9yeSBpbiBib3RoIGNhc2VzLgorKyAgZGlyPWBlY2hvICIkb2JqZWN0 IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKKysgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIg JiYgZGlyPQorKyAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAtZSAn cy9cLm8kLy8nIC1lICdzL1wubG8kLy8nYAorKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0 aGVuCisrICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS51CisrICAgIHRtcGRlcGZpbGUyPSRiYXNl LnUKKysgICAgdG1wZGVwZmlsZTM9JGRpci5saWJzLyRiYXNlLnUKKysgICAgIiRAIiAtV2MsLU0K KysgIGVsc2UKKysgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLnUKKysgICAgdG1wZGVwZmlsZTI9 JGRpciRiYXNlLnUKKysgICAgdG1wZGVwZmlsZTM9JGRpciRiYXNlLnUKKysgICAgIiRAIiAtTQor KyAgZmkKKysgIHN0YXQ9JD8KKysKKysgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAg ZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZp bGUzIgorKyAgICBleGl0ICRzdGF0CisrICBmaQorKworKyAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0 bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIKKysgIGRvCisrICAgIHRl c3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworKyAgZG9uZQorKyAgaWYgdGVzdCAtZiAiJHRt cGRlcGZpbGUiOyB0aGVuCisrICAgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzog ZGVwZW5kZW50LmgnLgorKyAgICAjIERvIHR3byBwYXNzZXMsIG9uZSB0byBqdXN0IGNoYW5nZSB0 aGVzZSB0bworKyAgICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkg YGRlcGVuZGVudC5oOicuCisrICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiA8 ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisrICAgICMgVGhhdCdzIGEgdGFiIGFuZCBhIHNw YWNlIGluIHRoZSBbXS4KKysgICAgc2VkIC1lICdzLF4uKlwuW2Etel0qOlsJIF0qLCwnIC1lICdz LCQsOiwnIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisrICBlbHNlCisrICAgICMgVGhl IHNvdXJjZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZGVwZW5kZW5jaWVzLCBzbyBqdXN0Cisr ICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRo ZSBNYWtlZmlsZQorKyAgICAjICJpbmNsdWRlIGJhc2VuYW1lLlBsbyIgc2NoZW1lLgorKyAgICBl Y2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgorKyAgZmkKKysgIHJtIC1mICIkdG1wZGVwZmlsZSIK KysgIDs7CisrCisraWNjKQorKyAgIyBJbnRlbCdzIEMgY29tcGlsZXIgdW5kZXJzdGFuZHMgYC1N RCAtTUYgZmlsZScuICBIb3dldmVyIG9uCisrICAjICAgIGljYyAtTUQgLU1GIGZvby5kIC1jIC1v IHN1Yi9mb28ubyBzdWIvZm9vLmMKKysgICMgSUNDIDcuMCB3aWxsIGZpbGwgZm9vLmQgd2l0aCBz b21ldGhpbmcgbGlrZQorKyAgIyAgICBmb28ubzogc3ViL2Zvby5jCisrICAjICAgIGZvby5vOiBz dWIvZm9vLmgKKysgICMgd2hpY2ggaXMgd3JvbmcuICBXZSB3YW50OgorKyAgIyAgICBzdWIvZm9v Lm86IHN1Yi9mb28uYworKyAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uaAorKyAgIyAgICBzdWIv Zm9vLmM6CisrICAjICAgIHN1Yi9mb28uaDoKKysgICMgSUNDIDcuMSB3aWxsIG91dHB1dAorKyAg IyAgICBmb28ubzogc3ViL2Zvby5jIHN1Yi9mb28uaAorKyAgIyBhbmQgd2lsbCB3cmFwIGxvbmcg bGluZXMgdXNpbmcgXCA6CisrICAjICAgIGZvby5vOiBzdWIvZm9vLmMgLi4uIFwKKysgICMgICAg IHN1Yi9mb28uaCAuLi4gXAorKyAgIyAgICAgLi4uCisrCisrICAiJEAiIC1NRCAtTUYgIiR0bXBk ZXBmaWxlIgorKyAgc3RhdD0kPworKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6CisrICBl bHNlCisrICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgICAgZXhpdCAkc3RhdAorKyAgZmkKKysg IHJtIC1mICIkZGVwZmlsZSIKKysgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzog ZGVwZW5kZW50LmgnLAorKyAgIyBvciBgZm9vLm86IGRlcDEuaCBkZXAyLmggXCcsIG9yIGAgZGVw My5oIGRlcDQuaCBcJy4KKysgICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRo ZXNlIHRvCisrICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRl cGVuZGVudC5oOicuCisrICBzZWQgInMsXlteOl0qOiwkb2JqZWN0IDosIiA8ICIkdG1wZGVwZmls ZSIgPiAiJGRlcGZpbGUiCisrICAjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2Vk IGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisrICAjIGNvcnJlY3RseS4gIEJyZWFraW5n IGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCisrICBzZWQgJ3Ms XlteOl0qOiBcKC4qXCkkLFwxLDtzL15cXCQvLzsvXiQvZDsvOiQvZCcgPCAiJHRtcGRlcGZpbGUi IHwKKysgICAgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRtcGRl cGZpbGUiCisrICA7OworKworK2hwMikKKysgICMgVGhlICJocCIgc3RhbnphIGFib3ZlIGRvZXMg bm90IHdvcmsgd2l0aCBhQ0MgKEMrKykgYW5kIEhQJ3MgaWE2NAorKyAgIyBjb21waWxlcnMsIHdo aWNoIGhhdmUgaW50ZWdyYXRlZCBwcmVwcm9jZXNzb3JzLiAgVGhlIGNvcnJlY3Qgb3B0aW9uCisr ICAjIHRvIHVzZSB3aXRoIHRoZXNlIGlzICtNYWtlZDsgaXQgd3JpdGVzIGRlcGVuZGVuY2llcyB0 byBhIGZpbGUgbmFtZWQKKysgICMgJ2Zvby5kJywgd2hpY2ggbGFuZHMgbmV4dCB0byB0aGUgb2Jq ZWN0IGZpbGUsIHdoZXJldmVyIHRoYXQKKysgICMgaGFwcGVucyB0byBiZS4KKysgICMgTXVjaCBv ZiB0aGlzIGlzIHNpbWlsYXIgdG8gdGhlIHRydTY0IGNhc2U7IHNlZSBjb21tZW50cyB0aGVyZS4K KysgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCisrICB0ZXN0 ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KKysgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwg c2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKKysgIGlmIHRl c3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2UuZAor KyAgICB0bXBkZXBmaWxlMj0kZGlyLmxpYnMvJGJhc2UuZAorKyAgICAiJEAiIC1XYywrTWFrZWQK KysgIGVsc2UKKysgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLmQKKysgICAgdG1wZGVwZmlsZTI9 JGRpciRiYXNlLmQKKysgICAgIiRAIiArTWFrZWQKKysgIGZpCisrICBzdGF0PSQ/CisrICBpZiB0 ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgIGVsc2UKKysgICAgIHJtIC1mICIkdG1wZGVwZmls ZTEiICIkdG1wZGVwZmlsZTIiCisrICAgICBleGl0ICRzdGF0CisrICBmaQorKworKyAgZm9yIHRt cGRlcGZpbGUgaW4gIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIKKysgIGRvCisrICAgIHRl c3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworKyAgZG9uZQorKyAgaWYgdGVzdCAtZiAiJHRt cGRlcGZpbGUiOyB0aGVuCisrICAgIHNlZCAtZSAicyxeLipcLlthLXpdKjosJG9iamVjdDosIiAi JHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgICAjIEFkZCBgZGVwZW5kZW50Lmg6JyBsaW5l cy4KKysgICAgc2VkIC1uZSAnMiwkezsgcy9eICovLzsgcy8gXFwqJC8vOyBzLyQvOi87IHA7fScg IiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisrICBlbHNlCisrICAgIGVjaG8gIiNkdW1teSIg PiAiJGRlcGZpbGUiCisrICBmaQorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIiAiJHRtcGRlcGZpbGUy IgorKyAgOzsKKysKKyt0cnU2NCkKKysgICAjIFRoZSBUcnU2NCBjb21waWxlciB1c2VzIC1NRCB0 byBnZW5lcmF0ZSBkZXBlbmRlbmNpZXMgYXMgYSBzaWRlCisrICAgIyBlZmZlY3QuICBgY2MgLU1E IC1vIGZvby5vIC4uLicgcHV0cyB0aGUgZGVwZW5kZW5jaWVzIGludG8gYGZvby5vLmQnLgorKyAg ICMgQXQgbGVhc3Qgb24gQWxwaGEvUmVkaGF0IDYuMSwgQ29tcGFxIENDQyBWNi4yLTUwNCBzZWVt cyB0byBwdXQKKysgICAjIGRlcGVuZGVuY2llcyBpbiBgZm9vLmQnIGluc3RlYWQsIHNvIHdlIGNo ZWNrIGZvciB0aGF0IHRvby4KKysgICAjIFN1YmRpcmVjdG9yaWVzIGFyZSByZXNwZWN0ZWQuCisr ICAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKKysgICB0ZXN0 ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KKysgICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8 IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCisrCisrICAg aWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAgICAgIyBXaXRoIFRydTY0IGNjLCBz aGFyZWQgb2JqZWN0cyBjYW4gYWxzbyBiZSB1c2VkIHRvIG1ha2UgYQorKyAgICAgICMgc3RhdGlj IGxpYnJhcnkuICBUaGlzIG1lY2hhbmlzbSBpcyB1c2VkIGluIGxpYnRvb2wgMS40IHNlcmllcyB0 bworKyAgICAgICMgaGFuZGxlIGJvdGggc2hhcmVkIGFuZCBzdGF0aWMgbGlicmFyaWVzIGluIGEg c2luZ2xlIGNvbXBpbGF0aW9uLgorKyAgICAgICMgV2l0aCBsaWJ0b29sIDEuNCwgZGVwZW5kZW5j aWVzIHdlcmUgb3V0cHV0IGluICRkaXIubGlicy8kYmFzZS5sby5kLgorKyAgICAgICMKKysgICAg ICAjIFdpdGggbGlidG9vbCAxLjUgdGhpcyBleGNlcHRpb24gd2FzIHJlbW92ZWQsIGFuZCBsaWJ0 b29sIG5vdworKyAgICAgICMgZ2VuZXJhdGVzIDIgc2VwYXJhdGUgb2JqZWN0cyBmb3IgdGhlIDIg bGlicmFyaWVzLiAgVGhlc2UgdHdvCisrICAgICAgIyBjb21waWxhdGlvbnMgb3V0cHV0IGRlcGVu ZGVuY2llcyBpbiAkZGlyLmxpYnMvJGJhc2Uuby5kIGFuZAorKyAgICAgICMgaW4gJGRpciRiYXNl Lm8uZC4gIFdlIGhhdmUgdG8gY2hlY2sgZm9yIGJvdGggZmlsZXMsIGJlY2F1c2UKKysgICAgICAj IG9uZSBvZiB0aGUgdHdvIGNvbXBpbGF0aW9ucyBjYW4gYmUgZGlzYWJsZWQuICBXZSBzaG91bGQg cHJlZmVyCisrICAgICAgIyAkZGlyJGJhc2Uuby5kIG92ZXIgJGRpci5saWJzLyRiYXNlLm8uZCBi ZWNhdXNlIHRoZSBsYXR0ZXIgaXMKKysgICAgICAjIGF1dG9tYXRpY2FsbHkgY2xlYW5lZCB3aGVu IC5saWJzLyBpcyBkZWxldGVkLCB3aGlsZSBpZ25vcmluZworKyAgICAgICMgdGhlIGZvcm1lciB3 b3VsZCBjYXVzZSBhIGRpc3RjbGVhbmNoZWNrIHBhbmljLgorKyAgICAgIHRtcGRlcGZpbGUxPSRk aXIubGlicy8kYmFzZS5sby5kICAgIyBsaWJ0b29sIDEuNAorKyAgICAgIHRtcGRlcGZpbGUyPSRk aXIkYmFzZS5vLmQgICAgICAgICAgIyBsaWJ0b29sIDEuNQorKyAgICAgIHRtcGRlcGZpbGUzPSRk aXIubGlicy8kYmFzZS5vLmQgICAgIyBsaWJ0b29sIDEuNQorKyAgICAgIHRtcGRlcGZpbGU0PSRk aXIubGlicy8kYmFzZS5kICAgICAgIyBDb21wYXEgQ0NDIFY2LjItNTA0CisrICAgICAgIiRAIiAt V2MsLU1ECisrICAgZWxzZQorKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5vLmQKKysgICAg ICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UuZAorKyAgICAgIHRtcGRlcGZpbGUzPSRkaXIkYmFzZS5k CisrICAgICAgdG1wZGVwZmlsZTQ9JGRpciRiYXNlLmQKKysgICAgICAiJEAiIC1NRAorKyAgIGZp CisrCisrICAgc3RhdD0kPworKyAgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgIGVs c2UKKysgICAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZp bGUzIiAiJHRtcGRlcGZpbGU0IgorKyAgICAgIGV4aXQgJHN0YXQKKysgICBmaQorKworKyAgIGZv ciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmls ZTMiICIkdG1wZGVwZmlsZTQiCisrICAgZG8KKysgICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAm JiBicmVhaworKyAgIGRvbmUKKysgICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KKysg ICAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUiID4g IiRkZXBmaWxlIgorKyAgICAgICMgVGhhdCdzIGEgdGFiIGFuZCBhIHNwYWNlIGluIHRoZSBbXS4K KysgICAgICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3MsJCw6LCcgPCAiJHRt cGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKysgICBlbHNlCisrICAgICAgZWNobyAiI2R1bW15IiA+ ICIkZGVwZmlsZSIKKysgICBmaQorKyAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgICA7OworKwor KyNub3NpZGVlZmZlY3QpCisrICAjIFRoaXMgY29tbWVudCBhYm92ZSBpcyB1c2VkIGJ5IGF1dG9t YWtlIHRvIHRlbGwgc2lkZS1lZmZlY3QKKysgICMgZGVwZW5kZW5jeSB0cmFja2luZyBtZWNoYW5p c21zIGZyb20gc2xvd2VyIG9uZXMuCisrCisrZGFzaG1zdGRvdXQpCisrICAjIEltcG9ydGFudCBu b3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKysg ICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQsIHJlZ2FyZGxl c3Mgb2YgLW8uCisrICAiJEAiIHx8IGV4aXQgJD8KKysKKysgICMgUmVtb3ZlIHRoZSBjYWxsIHRv IExpYnRvb2wuCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKysgICAgd2hpbGUg dGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbworKyAgICAgIHNoaWZ0CisrICAgIGRvbmUK KysgICAgc2hpZnQKKysgIGZpCisrCisrICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCisrICBJRlM9 IiAiCisrICBmb3IgYXJnCisrICBkbworKyAgICBjYXNlICRhcmcgaW4KKysgICAgLW8pCisrICAg ICAgc2hpZnQKKysgICAgICA7OworKyAgICAkb2JqZWN0KQorKyAgICAgIHNoaWZ0CisrICAgICAg OzsKKysgICAgKikKKysgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIKKysgICAgICBzaGlmdCAj IGZub3JkCisrICAgICAgc2hpZnQgIyAkYXJnCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9u ZQorKworKyAgdGVzdCAteiAiJGRhc2htZmxhZyIgJiYgZGFzaG1mbGFnPS1NCisrICAjIFJlcXVp cmUgYXQgbGVhc3QgdHdvIGNoYXJhY3RlcnMgYmVmb3JlIHNlYXJjaGluZyBmb3IgYDonCisrICAj IGluIHRoZSB0YXJnZXQgbmFtZS4gIFRoaXMgaXMgdG8gY29wZSB3aXRoIERPUy1zdHlsZSBmaWxl bmFtZXM6CisrICAjIGEgZGVwZW5kZW5jeSBzdWNoIGFzIGBjOi9mb28vYmFyJyBjb3VsZCBiZSBz ZWVuIGFzIHRhcmdldCBgYycgb3RoZXJ3aXNlLgorKyAgIiRAIiAkZGFzaG1mbGFnIHwKKysgICAg c2VkICdzOl5bICBdKlteOiBdW146XVteOl0qXDpbICAgIF0qOiciJG9iamVjdCInXDogOicgPiAi JHRtcGRlcGZpbGUiCisrICBybSAtZiAiJGRlcGZpbGUiCisrICBjYXQgPCAiJHRtcGRlcGZpbGUi ID4gIiRkZXBmaWxlIgorKyAgdHIgJyAnICcKKysnIDwgIiR0bXBkZXBmaWxlIiB8IFwKKysjIyBT b21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52 b2NhdGlvbgorKyMjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0 aW9ucyBpcyBhIHdvcmthcm91bmQuCisrICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcg LWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgorKyAgcm0gLWYgIiR0 bXBkZXBmaWxlIgorKyAgOzsKKysKKytkYXNoWG1zdGRvdXQpCisrICAjIFRoaXMgY2FzZSBvbmx5 IGV4aXN0cyB0byBzYXRpc2Z5IGRlcGVuZC5tNC4gIEl0IGlzIG5ldmVyIGFjdHVhbGx5CisrICAj IHJ1biwgYXMgdGhpcyBtb2RlIGlzIHNwZWNpYWxseSByZWNvZ25pemVkIGluIHRoZSBwcmVhbWJs ZS4KKysgIGV4aXQgMQorKyAgOzsKKysKKyttYWtlZGVwZW5kKQorKyAgIiRAIiB8fCBleGl0ICQ/ CisrICAjIFJlbW92ZSBhbnkgTGlidG9vbCBjYWxsCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5 ZXM7IHRoZW4KKysgICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbworKyAg ICAgIHNoaWZ0CisrICAgIGRvbmUKKysgICAgc2hpZnQKKysgIGZpCisrICAjIFggbWFrZWRlcGVu ZAorKyAgc2hpZnQKKysgIGNsZWFyZWQ9bm8KKysgIGZvciBhcmcgaW4gIiRAIjsgZG8KKysgICAg Y2FzZSAkY2xlYXJlZCBpbgorKyAgICBubykKKysgICAgICBzZXQgIiI7IHNoaWZ0CisrICAgICAg Y2xlYXJlZD15ZXMgOzsKKysgICAgZXNhYworKyAgICBjYXNlICIkYXJnIiBpbgorKyAgICAtRCp8 LUkqKQorKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKKysgICAgIyBTdHJp cCBhbnkgb3B0aW9uIHRoYXQgbWFrZWRlcGVuZCBtYXkgbm90IHVuZGVyc3RhbmQuICBSZW1vdmUK KysgICAgIyB0aGUgb2JqZWN0IHRvbywgb3RoZXJ3aXNlIG1ha2VkZXBlbmQgd2lsbCBwYXJzZSBp dCBhcyBhIHNvdXJjZSBmaWxlLgorKyAgICAtKnwkb2JqZWN0KQorKyAgICAgIDs7CisrICAgICop CisrICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciOyBzaGlmdCA7OworKyAgICBlc2FjCisrICBk b25lCisrICBvYmpfc3VmZml4PSJgZWNobyAkb2JqZWN0IHwgc2VkICdzL14uKlwuLy4vJ2AiCisr ICB0b3VjaCAiJHRtcGRlcGZpbGUiCisrICAke01BS0VERVBFTkQtbWFrZWRlcGVuZH0gLW8iJG9i al9zdWZmaXgiIC1mIiR0bXBkZXBmaWxlIiAiJEAiCisrICBybSAtZiAiJGRlcGZpbGUiCisrICBj YXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorKyAgc2VkICcxLDJkJyAiJHRtcGRlcGZp bGUiIHwgdHIgJyAnICcKKysnIHwgXAorKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAu MjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisrIyMgY29ycmVjdGx5LiAgQnJl YWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KKysgICAg c2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDov JyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUiICIkdG1wZGVwZmlsZSIuYmFr CisrICA7OworKworK2NwcCkKKysgICMgSW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1cHBv cnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgorKyAgIyBhbHdheXMgd3JpdGUgdGhlIHBy ZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KKysgICIkQCIgfHwgZXhpdCAkPworKworKyAgIyBS ZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KKysgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsg dGhlbgorKyAgICB3aGlsZSB0ZXN0ICQxICE9ICctLW1vZGU9Y29tcGlsZSc7IGRvCisrICAgICAg c2hpZnQKKysgICAgZG9uZQorKyAgICBzaGlmdAorKyAgZmkKKysKKysgICMgUmVtb3ZlIGAtbyAk b2JqZWN0Jy4KKysgIElGUz0iICIKKysgIGZvciBhcmcKKysgIGRvCisrICAgIGNhc2UgJGFyZyBp bgorKyAgICAtbykKKysgICAgICBzaGlmdAorKyAgICAgIDs7CisrICAgICRvYmplY3QpCisrICAg ICAgc2hpZnQKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJn IgorKyAgICAgIHNoaWZ0ICMgZm5vcmQKKysgICAgICBzaGlmdCAjICRhcmcKKysgICAgICA7Owor KyAgICBlc2FjCisrICBkb25lCisrCisrICAiJEAiIC1FIHwKKysgICAgc2VkIC1uIC1lICcvXiMg WzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8gczo6IFwxIFxcOnAnIFwKKysgICAgICAgLWUgJy9e I2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIuKi8gczo6IFwxIFxcOnAnIHwKKysgICAgc2Vk ICckIHM6IFxcJDo6JyA+ICIkdG1wZGVwZmlsZSIKKysgIHJtIC1mICIkZGVwZmlsZSIKKysgIGVj aG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCisrICBjYXQgPCAiJHRtcGRlcGZpbGUiID4+ ICIkZGVwZmlsZSIKKysgIHNlZCA8ICIkdG1wZGVwZmlsZSIgJy9eJC9kO3MvXiAvLztzLyBcXCQv LztzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7Owor KworK21zdmlzdWFsY3BwKQorKyAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9y dCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCisrICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJl cHJvY2Vzc2VkIGZpbGUgdG8gc3Rkb3V0LCByZWdhcmRsZXNzIG9mIC1vLAorKyAgIyBiZWNhdXNl IHdlIG11c3QgdXNlIC1vIHdoZW4gcnVubmluZyBsaWJ0b29sLgorKyAgIiRAIiB8fCBleGl0ICQ/ CisrICBJRlM9IiAiCisrICBmb3IgYXJnCisrICBkbworKyAgICBjYXNlICIkYXJnIiBpbgorKyAg ICAiLUdtInwiL0dtInwiLUdpInwiL0dpInwiLVpJInwiL1pJIikKKysJc2V0IGZub3JkICIkQCIK KysJc2hpZnQKKysJc2hpZnQKKysJOzsKKysgICAgKikKKysJc2V0IGZub3JkICIkQCIgIiRhcmci CisrCXNoaWZ0CisrCXNoaWZ0CisrCTs7CisrICAgIGVzYWMKKysgIGRvbmUKKysgICIkQCIgLUUg fAorKyAgc2VkIC1uICcvXiNsaW5lIFswLTldWzAtOV0qICJcKFteIl0qXCkiLyBzOjplY2hvICJg Y3lncGF0aCAtdSBcXCJcMVxcImAiOnAnIHwgc29ydCB8IHVuaXEgPiAiJHRtcGRlcGZpbGUiCisr ICBybSAtZiAiJGRlcGZpbGUiCisrICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgor KyAgLiAiJHRtcGRlcGZpbGUiIHwgc2VkICdzJSAlXFwgJWcnIHwgc2VkIC1uICcvXlwoLipcKSQv IHM6OglcMSBcXDpwJyA+PiAiJGRlcGZpbGUiCisrICBlY2hvICIJIiA+PiAiJGRlcGZpbGUiCisr ICAuICIkdG1wZGVwZmlsZSIgfCBzZWQgJ3MlICVcXCAlZycgfCBzZWQgLW4gJy9eXCguKlwpJC8g czo6XDFcOjpwJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7Owor KworK25vbmUpCisrICBleGVjICIkQCIKKysgIDs7CisrCisrKikKKysgIGVjaG8gIlVua25vd24g ZGVwbW9kZSAkZGVwbW9kZSIgMT4mMgorKyAgZXhpdCAxCisrICA7OworK2VzYWMKKysKKytleGl0 IDAKKysKKysjIExvY2FsIFZhcmlhYmxlczoKKysjIG1vZGU6IHNoZWxsLXNjcmlwdAorKyMgc2gt aW5kZW50YXRpb246IDIKKysjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGlt ZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKysjIHRpbWUt c3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgorKyMgdGltZS1zdGFtcC1lbmQ6ICIk IgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9pbnN0YWxsLXNo IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvaW5zdGFsbC1zaAorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZy9pbnN0YWxsLXNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9pbnN0YWxsLXNoCTIwMDktMDUtMDMgMDA6 MjA6MzkuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDUxOSBAQAorKyMhL2Jpbi9zaAorKyMg aW5zdGFsbCAtIGluc3RhbGwgYSBwcm9ncmFtLCBzY3JpcHQsIG9yIGRhdGFmaWxlCisrCisrc2Ny aXB0dmVyc2lvbj0yMDA2LTEyLTI1LjAwCisrCisrIyBUaGlzIG9yaWdpbmF0ZXMgZnJvbSBYMTFS NSAobWl0L3V0aWwvc2NyaXB0cy9pbnN0YWxsLnNoKSwgd2hpY2ggd2FzCisrIyBsYXRlciByZWxl YXNlZCBpbiBYMTFSNiAoeGMvY29uZmlnL3V0aWwvaW5zdGFsbC5zaCkgd2l0aCB0aGUKKysjIGZv bGxvd2luZyBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UuCisrIworKyMgQ29weXJpZ2h0IChDKSAxOTk0 IFggQ29uc29ydGl1bQorKyMKKysjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKKysjIG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LCB0bworKyMgZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKysjIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorKyMgc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUgU29mdHdhcmUgaXMKKysjIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6CisrIworKyMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKysjIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorKyMKKysjIFRIRSBT T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E LCBFWFBSRVNTIE9SCisrIyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI RSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKysjIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUK KysjIFggQ09OU09SVElVTSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKysjIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQy0KKysjIFRJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09G VFdBUkUuCisrIworKyMgRXhjZXB0IGFzIGNvbnRhaW5lZCBpbiB0aGlzIG5vdGljZSwgdGhlIG5h bWUgb2YgdGhlIFggQ29uc29ydGl1bSBzaGFsbCBub3QKKysjIGJlIHVzZWQgaW4gYWR2ZXJ0aXNp bmcgb3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsLQor KyMgaW5ncyBpbiB0aGlzIFNvZnR3YXJlIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBhdXRob3JpemF0 aW9uIGZyb20gdGhlIFggQ29uc29yLQorKyMgdGl1bS4KKysjCisrIworKyMgRlNGIGNoYW5nZXMg dG8gdGhpcyBmaWxlIGFyZSBpbiB0aGUgcHVibGljIGRvbWFpbi4KKysjCisrIyBDYWxsaW5nIHRo aXMgc2NyaXB0IGluc3RhbGwtc2ggaXMgcHJlZmVycmVkIG92ZXIgaW5zdGFsbC5zaCwgdG8gcHJl dmVudAorKyMgYG1ha2UnIGltcGxpY2l0IHJ1bGVzIGZyb20gY3JlYXRpbmcgYSBmaWxlIGNhbGxl ZCBpbnN0YWxsIGZyb20gaXQKKysjIHdoZW4gdGhlcmUgaXMgbm8gTWFrZWZpbGUuCisrIworKyMg VGhpcyBzY3JpcHQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBCU0QgaW5zdGFsbCBzY3JpcHQsIGJ1 dCB3YXMgd3JpdHRlbgorKyMgZnJvbSBzY3JhdGNoLgorKworK25sPScKKysnCisrSUZTPSIgIiIJ JG5sIgorKworKyMgc2V0IERPSVRQUk9HIHRvIGVjaG8gdG8gdGVzdCB0aGlzIHNjcmlwdAorKwor KyMgRG9uJ3QgdXNlIDotIHNpbmNlIDQuM0JTRCBhbmQgZWFybGllciBzaGVsbHMgZG9uJ3QgbGlr ZSBpdC4KKytkb2l0PSR7RE9JVFBST0ctfQorK2lmIHRlc3QgLXogIiRkb2l0IjsgdGhlbgorKyAg ZG9pdF9leGVjPWV4ZWMKKytlbHNlCisrICBkb2l0X2V4ZWM9JGRvaXQKKytmaQorKworKyMgUHV0 IGluIGFic29sdXRlIGZpbGUgbmFtZXMgaWYgeW91IGRvbid0IGhhdmUgdGhlbSBpbiB5b3VyIHBh dGg7CisrIyBvciB1c2UgZW52aXJvbm1lbnQgdmFycy4KKysKKytjaGdycHByb2c9JHtDSEdSUFBS T0ctY2hncnB9CisrY2htb2Rwcm9nPSR7Q0hNT0RQUk9HLWNobW9kfQorK2Nob3ducHJvZz0ke0NI T1dOUFJPRy1jaG93bn0KKytjbXBwcm9nPSR7Q01QUFJPRy1jbXB9CisrY3Bwcm9nPSR7Q1BQUk9H LWNwfQorK21rZGlycHJvZz0ke01LRElSUFJPRy1ta2Rpcn0KKyttdnByb2c9JHtNVlBST0ctbXZ9 Cisrcm1wcm9nPSR7Uk1QUk9HLXJtfQorK3N0cmlwcHJvZz0ke1NUUklQUFJPRy1zdHJpcH0KKysK Kytwb3NpeF9nbG9iPSc/JworK2luaXRpYWxpemVfcG9zaXhfZ2xvYj0nCisrICB0ZXN0ICIkcG9z aXhfZ2xvYiIgIT0gIj8iIHx8IHsKKysgICAgaWYgKHNldCAtZikgMj4vZGV2L251bGw7IHRoZW4K KysgICAgICBwb3NpeF9nbG9iPQorKyAgICBlbHNlCisrICAgICAgcG9zaXhfZ2xvYj06CisrICAg IGZpCisrICB9CisrJworKworK3Bvc2l4X21rZGlyPQorKworKyMgRGVzaXJlZCBtb2RlIG9mIGlu c3RhbGxlZCBmaWxlLgorK21vZGU9MDc1NQorKworK2NoZ3JwY21kPQorK2NobW9kY21kPSRjaG1v ZHByb2cKKytjaG93bmNtZD0KKyttdmNtZD0kbXZwcm9nCisrcm1jbWQ9IiRybXByb2cgLWYiCisr c3RyaXBjbWQ9CisrCisrc3JjPQorK2RzdD0KKytkaXJfYXJnPQorK2RzdF9hcmc9CisrCisrY29w eV9vbl9jaGFuZ2U9ZmFsc2UKKytub190YXJnZXRfZGlyZWN0b3J5PQorKworK3VzYWdlPSJcCisr VXNhZ2U6ICQwIFtPUFRJT05dLi4uIFstVF0gU1JDRklMRSBEU1RGSUxFCisrICAgb3I6ICQwIFtP UFRJT05dLi4uIFNSQ0ZJTEVTLi4uIERJUkVDVE9SWQorKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAt dCBESVJFQ1RPUlkgU1JDRklMRVMuLi4KKysgICBvcjogJDAgW09QVElPTl0uLi4gLWQgRElSRUNU T1JJRVMuLi4KKysKKytJbiB0aGUgMXN0IGZvcm0sIGNvcHkgU1JDRklMRSB0byBEU1RGSUxFLgor K0luIHRoZSAybmQgYW5kIDNyZCwgY29weSBhbGwgU1JDRklMRVMgdG8gRElSRUNUT1JZLgorK0lu IHRoZSA0dGgsIGNyZWF0ZSBESVJFQ1RPUklFUy4KKysKKytPcHRpb25zOgorKyAgICAgLS1oZWxw ICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdC4KKysgICAgIC0tdmVyc2lvbiAgZGlzcGxh eSB2ZXJzaW9uIGluZm8gYW5kIGV4aXQuCisrCisrICAtYyAgICAgICAgICAgIChpZ25vcmVkKQor KyAgLUMgICAgICAgICAgICBpbnN0YWxsIG9ubHkgaWYgZGlmZmVyZW50IChwcmVzZXJ2ZSB0aGUg bGFzdCBkYXRhIG1vZGlmaWNhdGlvbiB0aW1lKQorKyAgLWQgICAgICAgICAgICBjcmVhdGUgZGly ZWN0b3JpZXMgaW5zdGVhZCBvZiBpbnN0YWxsaW5nIGZpbGVzLgorKyAgLWcgR1JPVVAgICAgICAk Y2hncnBwcm9nIGluc3RhbGxlZCBmaWxlcyB0byBHUk9VUC4KKysgIC1tIE1PREUgICAgICAgJGNo bW9kcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gTU9ERS4KKysgIC1vIFVTRVIgICAgICAgJGNob3du cHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gVVNFUi4KKysgIC1zICAgICAgICAgICAgJHN0cmlwcHJv ZyBpbnN0YWxsZWQgZmlsZXMuCisrICAtdCBESVJFQ1RPUlkgIGluc3RhbGwgaW50byBESVJFQ1RP UlkuCisrICAtVCAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvciBpZiBEU1RGSUxFIGlzIGEgZGly ZWN0b3J5LgorKworK0Vudmlyb25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdCBj b21tYW5kczoKKysgIENIR1JQUFJPRyBDSE1PRFBST0cgQ0hPV05QUk9HIENNUFBST0cgQ1BQUk9H IE1LRElSUFJPRyBNVlBST0cKKysgIFJNUFJPRyBTVFJJUFBST0cKKysiCisrCisrd2hpbGUgdGVz dCAkIyAtbmUgMDsgZG8KKysgIGNhc2UgJDEgaW4KKysgICAgLWMpIDs7CisrCisrICAgIC1DKSBj b3B5X29uX2NoYW5nZT10cnVlOzsKKysKKysgICAgLWQpIGRpcl9hcmc9dHJ1ZTs7CisrCisrICAg IC1nKSBjaGdycGNtZD0iJGNoZ3JwcHJvZyAkMiIKKysJc2hpZnQ7OworKworKyAgICAtLWhlbHAp IGVjaG8gIiR1c2FnZSI7IGV4aXQgJD87OworKworKyAgICAtbSkgbW9kZT0kMgorKwljYXNlICRt b2RlIGluCisrCSAgKicgJyogfCAqJwknKiB8IConCisrJyoJICB8IConKicqIHwgKic/JyogfCAq J1snKikKKysJICAgIGVjaG8gIiQwOiBpbnZhbGlkIG1vZGU6ICRtb2RlIiA+JjIKKysJICAgIGV4 aXQgMTs7CisrCWVzYWMKKysJc2hpZnQ7OworKworKyAgICAtbykgY2hvd25jbWQ9IiRjaG93bnBy b2cgJDIiCisrCXNoaWZ0OzsKKysKKysgICAgLXMpIHN0cmlwY21kPSRzdHJpcHByb2c7OworKwor KyAgICAtdCkgZHN0X2FyZz0kMgorKwlzaGlmdDs7CisrCisrICAgIC1UKSBub190YXJnZXRfZGly ZWN0b3J5PXRydWU7OworKworKyAgICAtLXZlcnNpb24pIGVjaG8gIiQwICRzY3JpcHR2ZXJzaW9u IjsgZXhpdCAkPzs7CisrCisrICAgIC0tKQlzaGlmdAorKwlicmVhazs7CisrCisrICAgIC0qKQll Y2hvICIkMDogaW52YWxpZCBvcHRpb246ICQxIiA+JjIKKysJZXhpdCAxOzsKKysKKysgICAgKikg IGJyZWFrOzsKKysgIGVzYWMKKysgIHNoaWZ0CisrZG9uZQorKworK2lmIHRlc3QgJCMgLW5lIDAg JiYgdGVzdCAteiAiJGRpcl9hcmckZHN0X2FyZyI7IHRoZW4KKysgICMgV2hlbiAtZCBpcyB1c2Vk LCBhbGwgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLgorKyAg IyBXaGVuIC10IGlzIHVzZWQsIHRoZSBkZXN0aW5hdGlvbiBpcyBhbHJlYWR5IHNwZWNpZmllZC4K KysgICMgT3RoZXJ3aXNlLCB0aGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgZGVzdGluYXRpb24uICBS ZW1vdmUgaXQgZnJvbSAkQC4KKysgIGZvciBhcmcKKysgIGRvCisrICAgIGlmIHRlc3QgLW4gIiRk c3RfYXJnIjsgdGhlbgorKyAgICAgICMgJEAgaXMgbm90IGVtcHR5OiBpdCBjb250YWlucyBhdCBs ZWFzdCAkYXJnLgorKyAgICAgIHNldCBmbm9yZCAiJEAiICIkZHN0X2FyZyIKKysgICAgICBzaGlm dCAjIGZub3JkCisrICAgIGZpCisrICAgIHNoaWZ0ICMgYXJnCisrICAgIGRzdF9hcmc9JGFyZwor KyAgZG9uZQorK2ZpCisrCisraWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorKyAgaWYgdGVzdCAteiAi JGRpcl9hcmciOyB0aGVuCisrICAgIGVjaG8gIiQwOiBubyBpbnB1dCBmaWxlIHNwZWNpZmllZC4i ID4mMgorKyAgICBleGl0IDEKKysgIGZpCisrICAjIEl0J3MgT0sgdG8gY2FsbCBgaW5zdGFsbC1z aCAtZCcgd2l0aG91dCBhcmd1bWVudC4KKysgICMgVGhpcyBjYW4gaGFwcGVuIHdoZW4gY3JlYXRp bmcgY29uZGl0aW9uYWwgZGlyZWN0b3JpZXMuCisrICBleGl0IDAKKytmaQorKworK2lmIHRlc3Qg LXogIiRkaXJfYXJnIjsgdGhlbgorKyAgdHJhcCAnKGV4aXQgJD8pOyBleGl0JyAxIDIgMTMgMTUK KysKKysgICMgU2V0IHVtYXNrIHNvIGFzIG5vdCB0byBjcmVhdGUgdGVtcHMgd2l0aCB0b28tZ2Vu ZXJvdXMgbW9kZXMuCisrICAjIEhvd2V2ZXIsICdzdHJpcCcgcmVxdWlyZXMgYm90aCByZWFkIGFu ZCB3cml0ZSBhY2Nlc3MgdG8gdGVtcHMuCisrICBjYXNlICRtb2RlIGluCisrICAgICMgT3B0aW1p emUgY29tbW9uIGNhc2VzLgorKyAgICAqNjQ0KSBjcF91bWFzaz0xMzM7OworKyAgICAqNzU1KSBj cF91bWFzaz0yMjs7CisrCisrICAgICpbMC03XSkKKysgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBj bWQiOyB0aGVuCisrCXVfcGx1c19ydz0KKysgICAgICBlbHNlCisrCXVfcGx1c19ydz0nJSAyMDAn CisrICAgICAgZmkKKysgICAgICBjcF91bWFzaz1gZXhwciAnKCcgNzc3IC0gJG1vZGUgJSAxMDAw ICcpJyAkdV9wbHVzX3J3YDs7CisrICAgICopCisrICAgICAgaWYgdGVzdCAteiAiJHN0cmlwY21k IjsgdGhlbgorKwl1X3BsdXNfcnc9CisrICAgICAgZWxzZQorKwl1X3BsdXNfcnc9LHUrcncKKysg ICAgICBmaQorKyAgICAgIGNwX3VtYXNrPSRtb2RlJHVfcGx1c19ydzs7CisrICBlc2FjCisrZmkK KysKKytmb3Igc3JjCisrZG8KKysgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4K KysgIGNhc2UgJHNyYyBpbgorKyAgICAtKikgc3JjPS4vJHNyYzs7CisrICBlc2FjCisrCisrICBp ZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KKysgICAgZHN0PSRzcmMKKysgICAgZHN0ZGlyPSRk c3QKKysgICAgdGVzdCAtZCAiJGRzdGRpciIKKysgICAgZHN0ZGlyX3N0YXR1cz0kPworKyAgZWxz ZQorKworKyAgICAjIFdhaXRpbmcgZm9yIHRoaXMgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlICIkY3Bw cm9nICRzcmMgJGRzdHRtcCIgY29tbWFuZAorKyAgICAjIG1pZ2h0IGNhdXNlIGRpcmVjdG9yaWVz IHRvIGJlIGNyZWF0ZWQsIHdoaWNoIHdvdWxkIGJlIGVzcGVjaWFsbHkgYmFkCisrICAgICMgaWYg JHNyYyAoYW5kIHRodXMgJGRzdHRtcCkgY29udGFpbnMgJyonLgorKyAgICBpZiB0ZXN0ICEgLWYg IiRzcmMiICYmIHRlc3QgISAtZCAiJHNyYyI7IHRoZW4KKysgICAgICBlY2hvICIkMDogJHNyYyBk b2VzIG5vdCBleGlzdC4iID4mMgorKyAgICAgIGV4aXQgMQorKyAgICBmaQorKworKyAgICBpZiB0 ZXN0IC16ICIkZHN0X2FyZyI7IHRoZW4KKysgICAgICBlY2hvICIkMDogbm8gZGVzdGluYXRpb24g c3BlY2lmaWVkLiIgPiYyCisrICAgICAgZXhpdCAxCisrICAgIGZpCisrCisrICAgIGRzdD0kZHN0 X2FyZworKyAgICAjIFByb3RlY3QgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScuCisrICAgIGNhc2Ug JGRzdCBpbgorKyAgICAgIC0qKSBkc3Q9Li8kZHN0OzsKKysgICAgZXNhYworKworKyAgICAjIElm IGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LCBhcHBlbmQgdGhlIGlucHV0IGZpbGVuYW1lOyB3 b24ndCB3b3JrCisrICAgICMgaWYgZG91YmxlIHNsYXNoZXMgYXJlbid0IGlnbm9yZWQuCisrICAg IGlmIHRlc3QgLWQgIiRkc3QiOyB0aGVuCisrICAgICAgaWYgdGVzdCAtbiAiJG5vX3RhcmdldF9k aXJlY3RvcnkiOyB0aGVuCisrCWVjaG8gIiQwOiAkZHN0X2FyZzogSXMgYSBkaXJlY3RvcnkiID4m MgorKwlleGl0IDEKKysgICAgICBmaQorKyAgICAgIGRzdGRpcj0kZHN0CisrICAgICAgZHN0PSRk c3RkaXIvYGJhc2VuYW1lICIkc3JjImAKKysgICAgICBkc3RkaXJfc3RhdHVzPTAKKysgICAgZWxz ZQorKyAgICAgICMgUHJlZmVyIGRpcm5hbWUsIGJ1dCBmYWxsIGJhY2sgb24gYSBzdWJzdGl0dXRl IGlmIGRpcm5hbWUgZmFpbHMuCisrICAgICAgZHN0ZGlyPWAKKysJKGRpcm5hbWUgIiRkc3QiKSAy Pi9kZXYvbnVsbCB8fAorKwlleHByIFgiJGRzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSov KiQnIFx8IFwKKysJICAgICBYIiRkc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSAgICAgWCIk ZHN0IiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgICAgIFgiJGRzdCIgOiAnWFwoL1wpJyBcfCAuIDI+ L2Rldi9udWxsIHx8CisrCWVjaG8gWCIkZHN0IiB8CisrCSAgICBzZWQgJy9eWFwoLipbXi9dXClc L1wvKlteL11bXi9dKlwvKiQveworKwkJICAgcy8vXDEvCisrCQkgICBxCisrCQkgfQorKwkJIC9e WFwoXC9cL1wpW14vXS4qL3sKKysJCSAgIHMvL1wxLworKwkJICAgcQorKwkJIH0KKysJCSAvXlhc KFwvXC9cKSQveworKwkJICAgcy8vXDEvCisrCQkgICBxCisrCQkgfQorKwkJIC9eWFwoXC9cKS4q L3sKKysJCSAgIHMvL1wxLworKwkJICAgcQorKwkJIH0KKysJCSBzLy4qLy4vOyBxJworKyAgICAg IGAKKysKKysgICAgICB0ZXN0IC1kICIkZHN0ZGlyIgorKyAgICAgIGRzdGRpcl9zdGF0dXM9JD8K KysgICAgZmkKKysgIGZpCisrCisrICBvYnNvbGV0ZV9ta2Rpcl91c2VkPWZhbHNlCisrCisrICBp ZiB0ZXN0ICRkc3RkaXJfc3RhdHVzICE9IDA7IHRoZW4KKysgICAgY2FzZSAkcG9zaXhfbWtkaXIg aW4KKysgICAgICAnJykKKysJIyBDcmVhdGUgaW50ZXJtZWRpYXRlIGRpcnMgdXNpbmcgbW9kZSA3 NTUgYXMgbW9kaWZpZWQgYnkgdGhlIHVtYXNrLgorKwkjIFRoaXMgaXMgbGlrZSBGcmVlQlNEICdp bnN0YWxsJyBhcyBvZiAxOTk3LTEwLTI4LgorKwl1bWFzaz1gdW1hc2tgCisrCWNhc2UgJHN0cmlw Y21kLiR1bWFzayBpbgorKwkgICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgorKwkgICpbMjM2N11b MjM2N10pIG1rZGlyX3VtYXNrPSR1bWFzazs7CisrCSAgLiowWzAyXVswMl0gfCAuWzAyXVswMl0g fCAuWzAyXSkgbWtkaXJfdW1hc2s9MjI7OworKworKwkgICpbMC03XSkKKysJICAgIG1rZGlyX3Vt YXNrPWBleHByICR1bWFzayArIDIyIFwKKysJICAgICAgLSAkdW1hc2sgJSAxMDAgJSA0MCArICR1 bWFzayAlIDIwIFwKKysJICAgICAgLSAkdW1hc2sgJSAxMCAlIDQgKyAkdW1hc2sgJSAyCisrCSAg ICBgOzsKKysJICAqKSBta2Rpcl91bWFzaz0kdW1hc2ssZ28tdzs7CisrCWVzYWMKKysKKysJIyBX aXRoIC1kLCBjcmVhdGUgdGhlIG5ldyBkaXJlY3Rvcnkgd2l0aCB0aGUgdXNlci1zcGVjaWZpZWQg bW9kZS4KKysJIyBPdGhlcndpc2UsIHJlbHkgb24gJG1rZGlyX3VtYXNrLgorKwlpZiB0ZXN0IC1u ICIkZGlyX2FyZyI7IHRoZW4KKysJICBta2Rpcl9tb2RlPS1tJG1vZGUKKysJZWxzZQorKwkgIG1r ZGlyX21vZGU9CisrCWZpCisrCisrCXBvc2l4X21rZGlyPWZhbHNlCisrCWNhc2UgJHVtYXNrIGlu CisrCSAgKlsxMjM1NjddWzAtN11bMC03XSkKKysJICAgICMgUE9TSVggbWtkaXIgLXAgc2V0cyB1 K3d4IGJpdHMgcmVnYXJkbGVzcyBvZiB1bWFzaywgd2hpY2gKKysJICAgICMgaXMgaW5jb21wYXRp YmxlIHdpdGggRnJlZUJTRCAnaW5zdGFsbCcgd2hlbiAodW1hc2sgJiAzMDApICE9IDAuCisrCSAg ICA7OworKwkgICopCisrCSAgICB0bXBkaXI9JHtUTVBESVItL3RtcH0vaW5zJFJBTkRPTS0kJAor KwkgICAgdHJhcCAncmV0PSQ/OyBybWRpciAiJHRtcGRpci9kIiAiJHRtcGRpciIgMj4vZGV2L251 bGw7IGV4aXQgJHJldCcgMAorKworKwkgICAgaWYgKHVtYXNrICRta2Rpcl91bWFzayAmJgorKwkJ ZXhlYyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIkdG1wZGlyL2QiKSA+L2Rldi9udWxs IDI+JjEKKysJICAgIHRoZW4KKysJICAgICAgaWYgdGVzdCAteiAiJGRpcl9hcmciIHx8IHsKKysJ CSAgICMgQ2hlY2sgZm9yIFBPU0lYIGluY29tcGF0aWJpbGl0aWVzIHdpdGggLW0uCisrCQkgICAj IEhQLVVYIDExLjIzIGFuZCBJUklYIDYuNSBta2RpciAtbSAtcCBzZXRzIGdyb3VwLSBvcgorKwkJ ICAgIyBvdGhlci13cml0ZWFibGUgYml0IG9mIHBhcmVudCBkaXJlY3Rvcnkgd2hlbiBpdCBzaG91 bGRuJ3QuCisrCQkgICAjIEZyZWVCU0QgNi4xIG1rZGlyIC1tIC1wIHNldHMgbW9kZSBvZiBleGlz dGluZyBkaXJlY3RvcnkuCisrCQkgICBsc19sZF90bXBkaXI9YGxzIC1sZCAiJHRtcGRpciJgCisr CQkgICBjYXNlICRsc19sZF90bXBkaXIgaW4KKysJCSAgICAgZD8/Pz8tP3ItKikgZGlmZmVyZW50 X21vZGU9NzAwOzsKKysJCSAgICAgZD8/Pz8tPy0tKikgZGlmZmVyZW50X21vZGU9NzU1OzsKKysJ CSAgICAgKikgZmFsc2U7OworKwkJICAgZXNhYyAmJgorKwkJICAgJG1rZGlycHJvZyAtbSRkaWZm ZXJlbnRfbW9kZSAtcCAtLSAiJHRtcGRpciIgJiYgeworKwkJICAgICBsc19sZF90bXBkaXJfMT1g bHMgLWxkICIkdG1wZGlyImAKKysJCSAgICAgdGVzdCAiJGxzX2xkX3RtcGRpciIgPSAiJGxzX2xk X3RtcGRpcl8xIgorKwkJICAgfQorKwkJIH0KKysJICAgICAgdGhlbiBwb3NpeF9ta2Rpcj06Cisr CSAgICAgIGZpCisrCSAgICAgIHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIgorKwkgICAgZWxz ZQorKwkgICAgICAjIFJlbW92ZSBhbnkgZGlycyBsZWZ0IGJlaGluZCBieSBhbmNpZW50IG1rZGly IGltcGxlbWVudGF0aW9ucy4KKysJICAgICAgcm1kaXIgLi8kbWtkaXJfbW9kZSAuLy1wIC4vLS0g Mj4vZGV2L251bGwKKysJICAgIGZpCisrCSAgICB0cmFwICcnIDA7OworKwllc2FjOzsKKysgICAg ZXNhYworKworKyAgICBpZgorKyAgICAgICRwb3NpeF9ta2RpciAmJiAoCisrCXVtYXNrICRta2Rp cl91bWFzayAmJgorKwkkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRk c3RkaXIiCisrICAgICAgKQorKyAgICB0aGVuIDoKKysgICAgZWxzZQorKworKyAgICAgICMgVGhl IHVtYXNrIGlzIHJpZGljdWxvdXMsIG9yIG1rZGlyIGRvZXMgbm90IGNvbmZvcm0gdG8gUE9TSVgs CisrICAgICAgIyBvciBpdCBmYWlsZWQgcG9zc2libHkgZHVlIHRvIGEgcmFjZSBjb25kaXRpb24u ICBDcmVhdGUgdGhlCisrICAgICAgIyBkaXJlY3RvcnkgdGhlIHNsb3cgd2F5LCBzdGVwIGJ5IHN0 ZXAsIGNoZWNraW5nIGZvciByYWNlcyBhcyB3ZSBnby4KKysKKysgICAgICBjYXNlICRkc3RkaXIg aW4KKysJLyopIHByZWZpeD0nLyc7OworKwktKikgcHJlZml4PScuLyc7OworKwkqKSAgcHJlZml4 PScnOzsKKysgICAgICBlc2FjCisrCisrICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xv YiIKKysKKysgICAgICBvSUZTPSRJRlMKKysgICAgICBJRlM9LworKyAgICAgICRwb3NpeF9nbG9i IHNldCAtZgorKyAgICAgIHNldCBmbm9yZCAkZHN0ZGlyCisrICAgICAgc2hpZnQKKysgICAgICAk cG9zaXhfZ2xvYiBzZXQgK2YKKysgICAgICBJRlM9JG9JRlMKKysKKysgICAgICBwcmVmaXhlcz0K KysKKysgICAgICBmb3IgZAorKyAgICAgIGRvCisrCXRlc3QgLXogIiRkIiAmJiBjb250aW51ZQor KworKwlwcmVmaXg9JHByZWZpeCRkCisrCWlmIHRlc3QgLWQgIiRwcmVmaXgiOyB0aGVuCisrCSAg cHJlZml4ZXM9CisrCWVsc2UKKysJICBpZiAkcG9zaXhfbWtkaXI7IHRoZW4KKysJICAgICh1bWFz az0kbWtkaXJfdW1hc2sgJiYKKysJICAgICAkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21v ZGUgLXAgLS0gIiRkc3RkaXIiKSAmJiBicmVhaworKwkgICAgIyBEb24ndCBmYWlsIGlmIHR3byBp bnN0YW5jZXMgYXJlIHJ1bm5pbmcgY29uY3VycmVudGx5LgorKwkgICAgdGVzdCAtZCAiJHByZWZp eCIgfHwgZXhpdCAxCisrCSAgZWxzZQorKwkgICAgY2FzZSAkcHJlZml4IGluCisrCSAgICAgICpc JyopIHFwcmVmaXg9YGVjaG8gIiRwcmVmaXgiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsK KysJICAgICAgKikgcXByZWZpeD0kcHJlZml4OzsKKysJICAgIGVzYWMKKysJICAgIHByZWZpeGVz PSIkcHJlZml4ZXMgJyRxcHJlZml4JyIKKysJICBmaQorKwlmaQorKwlwcmVmaXg9JHByZWZpeC8K KysgICAgICBkb25lCisrCisrICAgICAgaWYgdGVzdCAtbiAiJHByZWZpeGVzIjsgdGhlbgorKwkj IERvbid0IGZhaWwgaWYgdHdvIGluc3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHkuCisr CSh1bWFzayAkbWtkaXJfdW1hc2sgJiYKKysJIGV2YWwgIlwkZG9pdF9leGVjIFwkbWtkaXJwcm9n ICRwcmVmaXhlcyIpIHx8CisrCSAgdGVzdCAtZCAiJGRzdGRpciIgfHwgZXhpdCAxCisrCW9ic29s ZXRlX21rZGlyX3VzZWQ9dHJ1ZQorKyAgICAgIGZpCisrICAgIGZpCisrICBmaQorKworKyAgaWYg dGVzdCAtbiAiJGRpcl9hcmciOyB0aGVuCisrICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAk ZG9pdCAkY2hvd25jbWQgIiRkc3QiOyB9ICYmCisrICAgIHsgdGVzdCAteiAiJGNoZ3JwY21kIiB8 fCAkZG9pdCAkY2hncnBjbWQgIiRkc3QiOyB9ICYmCisrICAgIHsgdGVzdCAiJG9ic29sZXRlX21r ZGlyX3VzZWQkY2hvd25jbWQkY2hncnBjbWQiID0gZmFsc2UgfHwKKysgICAgICB0ZXN0IC16ICIk Y2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdCI7IH0gfHwgZXhpdCAxCisr ICBlbHNlCisrCisrICAgICMgTWFrZSBhIGNvdXBsZSBvZiB0ZW1wIGZpbGUgbmFtZXMgaW4gdGhl IHByb3BlciBkaXJlY3RvcnkuCisrICAgIGRzdHRtcD0kZHN0ZGlyL19pbnN0LiQkXworKyAgICBy bXRtcD0kZHN0ZGlyL19ybS4kJF8KKysKKysgICAgIyBUcmFwIHRvIGNsZWFuIHVwIHRob3NlIHRl bXAgZmlsZXMgYXQgZXhpdC4KKysgICAgdHJhcCAncmV0PSQ/OyBybSAtZiAiJGRzdHRtcCIgIiRy bXRtcCIgJiYgZXhpdCAkcmV0JyAwCisrCisrICAgICMgQ29weSB0aGUgZmlsZSBuYW1lIHRvIHRo ZSB0ZW1wIG5hbWUuCisrICAgICh1bWFzayAkY3BfdW1hc2sgJiYgJGRvaXRfZXhlYyAkY3Bwcm9n ICIkc3JjIiAiJGRzdHRtcCIpICYmCisrCisrICAgICMgYW5kIHNldCBhbnkgb3B0aW9uczsgZG8g Y2htb2QgbGFzdCB0byBwcmVzZXJ2ZSBzZXR1aWQgYml0cy4KKysgICAgIworKyAgICAjIElmIGFu eSBvZiB0aGVzZSBmYWlsLCB3ZSBhYm9ydCB0aGUgd2hvbGUgdGhpbmcuICBJZiB3ZSB3YW50IHRv CisrICAgICMgaWdub3JlIGVycm9ycyBmcm9tIGFueSBvZiB0aGVzZSwganVzdCBtYWtlIHN1cmUg bm90IHRvIGlnbm9yZQorKyAgICAjIGVycm9ycyBmcm9tIHRoZSBhYm92ZSAiJGRvaXQgJGNwcHJv ZyAkc3JjICRkc3R0bXAiIGNvbW1hbmQuCisrICAgICMKKysgICAgeyB0ZXN0IC16ICIkY2hvd25j bWQiIHx8ICRkb2l0ICRjaG93bmNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0IC16ICIk Y2hncnBjbWQiIHx8ICRkb2l0ICRjaGdycGNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAgeyB0ZXN0 IC16ICIkc3RyaXBjbWQiIHx8ICRkb2l0ICRzdHJpcGNtZCAiJGRzdHRtcCI7IH0gJiYKKysgICAg eyB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdHRtcCI7 IH0gJiYKKysKKysgICAgIyBJZiAtQywgZG9uJ3QgYm90aGVyIHRvIGNvcHkgaWYgaXQgd291bGRu J3QgY2hhbmdlIHRoZSBmaWxlLgorKyAgICBpZiAkY29weV9vbl9jaGFuZ2UgJiYKKysgICAgICAg b2xkPWBMQ19BTEw9QyBscyAtZGxMICIkZHN0IgkyPi9kZXYvbnVsbGAgJiYKKysgICAgICAgbmV3 PWBMQ19BTEw9QyBscyAtZGxMICIkZHN0dG1wIgkyPi9kZXYvbnVsbGAgJiYKKysKKysgICAgICAg ZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIgJiYKKysgICAgICAgJHBvc2l4X2dsb2Igc2V0 IC1mICYmCisrICAgICAgIHNldCBYICRvbGQgJiYgb2xkPTokMjokNDokNTokNiAmJgorKyAgICAg ICBzZXQgWCAkbmV3ICYmIG5ldz06JDI6JDQ6JDU6JDYgJiYKKysgICAgICAgJHBvc2l4X2dsb2Ig c2V0ICtmICYmCisrCisrICAgICAgIHRlc3QgIiRvbGQiID0gIiRuZXciICYmCisrICAgICAgICRj bXBwcm9nICIkZHN0IiAiJGRzdHRtcCIgPi9kZXYvbnVsbCAyPiYxCisrICAgIHRoZW4KKysgICAg ICBybSAtZiAiJGRzdHRtcCIKKysgICAgZWxzZQorKyAgICAgICMgUmVuYW1lIHRoZSBmaWxlIHRv IHRoZSByZWFsIGRlc3RpbmF0aW9uLgorKyAgICAgICRkb2l0ICRtdmNtZCAtZiAiJGRzdHRtcCIg IiRkc3QiIDI+L2Rldi9udWxsIHx8CisrCisrICAgICAgIyBUaGUgcmVuYW1lIGZhaWxlZCwgcGVy aGFwcyBiZWNhdXNlIG12IGNhbid0IHJlbmFtZSBzb21ldGhpbmcgZWxzZQorKyAgICAgICMgdG8g aXRzZWxmLCBvciBwZXJoYXBzIGJlY2F1c2UgbXYgaXMgc28gYW5jaWVudCB0aGF0IGl0IGRvZXMg bm90CisrICAgICAgIyBzdXBwb3J0IC1mLgorKyAgICAgIHsKKysJIyBOb3cgcmVtb3ZlIG9yIG1v dmUgYXNpZGUgYW55IG9sZCBmaWxlIGF0IGRlc3RpbmF0aW9uIGxvY2F0aW9uLgorKwkjIFdlIHRy eSB0aGlzIHR3byB3YXlzIHNpbmNlIHJtIGNhbid0IHVubGluayBpdHNlbGYgb24gc29tZQorKwkj IHN5c3RlbXMgYW5kIHRoZSBkZXN0aW5hdGlvbiBmaWxlIG1pZ2h0IGJlIGJ1c3kgZm9yIG90aGVy CisrCSMgcmVhc29ucy4gIEluIHRoaXMgY2FzZSwgdGhlIGZpbmFsIGNsZWFudXAgbWlnaHQgZmFp bCBidXQgdGhlIG5ldworKwkjIGZpbGUgc2hvdWxkIHN0aWxsIGluc3RhbGwgc3VjY2Vzc2Z1bGx5 LgorKwl7CisrCSAgdGVzdCAhIC1mICIkZHN0IiB8fAorKwkgICRkb2l0ICRybWNtZCAtZiAiJGRz dCIgMj4vZGV2L251bGwgfHwKKysJICB7ICRkb2l0ICRtdmNtZCAtZiAiJGRzdCIgIiRybXRtcCIg Mj4vZGV2L251bGwgJiYKKysJICAgIHsgJGRvaXQgJHJtY21kIC1mICIkcm10bXAiIDI+L2Rldi9u dWxsOyA6OyB9CisrCSAgfSB8fAorKwkgIHsgZWNobyAiJDA6IGNhbm5vdCB1bmxpbmsgb3IgcmVu YW1lICRkc3QiID4mMgorKwkgICAgKGV4aXQgMSk7IGV4aXQgMQorKwkgIH0KKysJfSAmJgorKwor KwkjIE5vdyByZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCisrCSRkb2l0 ICRtdmNtZCAiJGRzdHRtcCIgIiRkc3QiCisrICAgICAgfQorKyAgICBmaSB8fCBleGl0IDEKKysK KysgICAgdHJhcCAnJyAwCisrICBmaQorK2RvbmUKKysKKysjIExvY2FsIHZhcmlhYmxlczoKKysj IGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUt c3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5 LSUwMm0tJTAyZC4lMDJIIgorKyMgdGltZS1zdGFtcC1lbmQ6ICIkIgorKyMgRW5kOgorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG1haW4uc2ggc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9sdG1haW4uc2gKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHRtYWluLnNo CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVw MzAwL2NvbmZpZy9sdG1haW4uc2gJMjAwOC0wOC0zMCAwMDoyNzoxMC4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsNjk1NiBAQAorKyMgbHRtYWluLnNoIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBs aWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisrIyBOT1RFOiBDaGFuZ2luZyB0aGlz IGZpbGUgd2lsbCBub3QgYWZmZWN0IGFueXRoaW5nIHVudGlsIHlvdSByZXJ1biBjb25maWd1cmUu CisrIworKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LAorKyMgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrIyBPcmlnaW5hbGx5IGJ5IEdvcmRvbiBNYXR6aWdrZWl0IDxnb3Jk QGdudS5haS5taXQuZWR1PiwgMTk5NgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisr IworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsIGJ1dAorKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysjIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKysjIEZvdW5k YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg MDIxMTAtMTMwMSwgVVNBLgorKyMKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKysjIGRpc3RyaWJ1dGUgdGhpcyBmaWxl IGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorKyMgY29uZmlndXJhdGlvbiBz Y3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKKysj IHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9m IHRoYXQgcHJvZ3JhbS4KKysKKytiYXNlbmFtZT0icyxeLiovLCxnIgorKworKyMgV29yayBhcm91 bmQgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpc3N1ZSBvbiBJUklYIDYuNS4gT24gSVJJWCA2LjQr LCBzaAorKyMgaXMga3NoIGJ1dCB3aGVuIHRoZSBzaGVsbCBpcyBpbnZva2VkIGFzICJzaCIgYW5k IHRoZSBjdXJyZW50IHZhbHVlIG9mCisrIyB0aGUgX1hQRyBlbnZpcm9ubWVudCB2YXJpYWJsZSBp cyBub3QgZXF1YWwgdG8gMSAob25lKSwgdGhlIHNwZWNpYWwKKysjIHBvc2l0aW9uYWwgcGFyYW1l dGVyICQwLCB3aXRoaW4gYSBmdW5jdGlvbiBjYWxsLCBpcyB0aGUgbmFtZSBvZiB0aGUKKysjIGZ1 bmN0aW9uLgorK3Byb2dwYXRoPSIkMCIKKysKKysjIFRoZSBuYW1lIG9mIHRoaXMgcHJvZ3JhbToK Kytwcm9nbmFtZT1gZWNobyAiJHByb2dwYXRoIiB8ICRTRUQgJGJhc2VuYW1lYAorK21vZGVuYW1l PSIkcHJvZ25hbWUiCisrCisrIyBHbG9iYWwgdmFyaWFibGVzOgorK0VYSVRfU1VDQ0VTUz0wCisr RVhJVF9GQUlMVVJFPTEKKysKKytQUk9HUkFNPWx0bWFpbi5zaAorK1BBQ0tBR0U9bGlidG9vbAor K1ZFUlNJT049MS41LjI2CisrVElNRVNUQU1QPSIgKDEuMTIyMC4yLjQ5MyAyMDA4LzAyLzAxIDE2 OjU4OjE4KSIKKysKKysjIEJlIEJvdXJuZSBjb21wYXRpYmxlICh0YWtlbiBmcm9tIEF1dG9jb25m Ol9BU19CT1VSTkVfQ09NUEFUSUJMRSkuCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9 IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBlbXVsYXRlIHNoCisr ICBOVUxMQ01EPToKKysgICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5n IG9uICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlz YWJsZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKKysgIHNl dG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxg IGluICpwb3NpeCopIHNldCAtbyBwb3NpeDs7IGVzYWMKKytmaQorK0JJTl9TSD14cGc0OyBleHBv cnQgQklOX1NIICMgZm9yIFRydTY0CisrRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9y IE1LUyBzaAorKworKyMgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgd29ya2luZyAkZWNoby4KKytpZiB0 ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCisrICAjIERpc2NhcmQgdGhlIC0tbm8tcmVl eGVjIGZsYWcsIGFuZCBjb250aW51ZS4KKysgIHNoaWZ0CisrZWxpZiB0ZXN0ICJYJDEiID0gWC0t ZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQg bWF5IGJlIGxlZnQgb3ZlcgorKyAgOgorK2VsaWYgdGVzdCAiWGAoJGVjaG8gJ1x0JykgMj4vZGV2 L251bGxgIiA9ICdYXHQnOyB0aGVuCisrICAjIFlpcHBlZSwgJGVjaG8gd29ya3MhCisrICA6Cisr ZWxzZQorKyAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQgdGhlbiBtYXli ZSAkZWNobyB3aWxsIHdvcmsuCisrICBleGVjICRTSEVMTCAiJHByb2dwYXRoIiAtLW5vLXJlZXhl YyAkezErIiRAIn0KKytmaQorKworK2lmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0 aGVuCisrICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobworKyAgc2hpZnQKKysgIGNhdCA8PEVPRgor KyQqCisrRU9GCisrICBleGl0ICRFWElUX1NVQ0NFU1MKKytmaQorKworK2RlZmF1bHRfbW9kZT0K KytoZWxwPSJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCisr bWFnaWM9IiUlJU1BR0lDIHZhcmlhYmxlJSUlIgorK21rZGlyPSJta2RpciIKKyttdj0ibXYgLWYi Cisrcm09InJtIC1mIgorKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJv YnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKKysjIG1ldGFjaGFyYWN0ZXJzIHRoYXQg YXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgorK1hzZWQ9IiR7 U0VEfSInIC1lIDFzL15YLy8nCisrc2VkX3F1b3RlX3N1YnN0PSdzL1woW1xcYFxcIiRcXFxcXVwp L1xcXDEvZycKKysjIHRlc3QgRUJDRElDIG9yIEFTQ0lJCisrY2FzZSBgZWNobyBYfHRyIFggJ1wx MDEnYCBpbgorKyBBKSAjIEFTQ0lJIGJhc2VkIHN5c3RlbQorKyAgICAjIFxuIGlzIG5vdCBpbnRl cnByZXRlZCBjb3JyZWN0bHkgYnkgU29sYXJpcyA4IC91c3IvdWNiL3RyCisrICBTUDJOTD0ndHIg XDA0MCBcMDEyJworKyAgTkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJworKyAgOzsKKysgKikg IyBFQkNESUMgYmFzZWQgc3lzdGVtCisrICBTUDJOTD0ndHIgXDEwMCBcbicKKysgIE5MMlNQPSd0 ciBcclxuIFwxMDBcMTAwJworKyAgOzsKKytlc2FjCisrCisrIyBOTFMgbnVpc2FuY2VzLgorKyMg T25seSBzZXQgTEFORyBhbmQgTENfQUxMIHRvIEMgaWYgYWxyZWFkeSBzZXQuCisrIyBUaGVzZSBt dXN0IG5vdCBiZSBzZXQgdW5jb25kaXRpb25hbGx5IGJlY2F1c2Ugbm90IGFsbCBzeXN0ZW1zIHVu ZGVyc3RhbmQKKysjIGUuZy4gTEFORz1DIChub3RhYmx5IFNDTykuCisrIyBXZSBzYXZlIHRoZSBv bGQgdmFsdWVzIHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KKytsdF9lbnY9CisrZm9y IGx0X3ZhciBpbiBMQU5HIExBTkdVQUdFIExDX0FMTCBMQ19DVFlQRSBMQ19DT0xMQVRFIExDX01F U1NBR0VTCisrZG8KKysgIGV2YWwgImlmIHRlc3QgXCJcJHskbHRfdmFyK3NldH1cIiA9IHNldDsg dGhlbgorKwkgIHNhdmVfJGx0X3Zhcj1cJCRsdF92YXIKKysJICBsdF9lbnY9XCIkbHRfdmFyPVwk JGx0X3ZhciBcJGx0X2VudlwiCisrCSAgJGx0X3Zhcj1DCisrCSAgZXhwb3J0ICRsdF92YXIKKysJ ZmkiCisrZG9uZQorKworK2lmIHRlc3QgLW4gIiRsdF9lbnYiOyB0aGVuCisrICBsdF9lbnY9ImVu diAkbHRfZW52IgorK2ZpCisrCisrIyBNYWtlIHN1cmUgSUZTIGhhcyBhIHNlbnNpYmxlIGRlZmF1 bHQKKytsdF9ubD0nCisrJworK0lGUz0iIAkkbHRfbmwiCisrCisraWYgdGVzdCAiJGJ1aWxkX2xp YnRvb2xfbGlicyIgIT0geWVzICYmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgIT0geWVzOyB0aGVu CisrICAkZWNobyAiJG1vZGVuYW1lOiBub3QgY29uZmlndXJlZCB0byBidWlsZCBhbnkga2luZCBv ZiBsaWJyYXJ5IiAxPiYyCisrICAkZWNobyAiRmF0YWwgY29uZmlndXJhdGlvbiBlcnJvci4gIFNl ZSB0aGUgJFBBQ0tBR0UgZG9jcyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iIDE+JjIKKysgIGV4aXQg JEVYSVRfRkFJTFVSRQorK2ZpCisrCisrIyBHbG9iYWwgdmFyaWFibGVzLgorK21vZGU9JGRlZmF1 bHRfbW9kZQorK25vbm9wdD0KKytwcmV2PQorK3ByZXZvcHQ9CisrcnVuPQorK3Nob3c9IiRlY2hv IgorK3Nob3dfaGVscD0KKytleGVjdXRlX2RsZmlsZXM9CisrZHVwbGljYXRlX2RlcHM9bm8KKytw cmVzZXJ2ZV9hcmdzPQorK2xvMm89InMvXFwubG9cJC8uJHtvYmpleHR9LyIKKytvMmxvPSJzL1xc LiR7b2JqZXh0fVwkLy5sby8iCisrZXh0cmFjdGVkX2FyY2hpdmVzPQorK2V4dHJhY3RlZF9zZXJp YWw9MAorKworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKysjIFNoZWxs IGZ1bmN0aW9uIGRlZmluaXRpb25zOgorKyMgVGhpcyBzZWVtcyB0byBiZSB0aGUgYmVzdCBwbGFj ZSBmb3IgdGhlbQorKworKyMgZnVuY19ta3RlbXBkaXIgW3N0cmluZ10KKysjIE1ha2UgYSB0ZW1w b3JhcnkgZGlyZWN0b3J5IHRoYXQgd29uJ3QgY2xhc2ggd2l0aCBvdGhlciBydW5uaW5nCisrIyBs aWJ0b29sIHByb2Nlc3NlcywgYW5kIGF2b2lkcyByYWNlIGNvbmRpdGlvbnMgaWYgcG9zc2libGUu ICBJZgorKyMgZ2l2ZW4sIFNUUklORyBpcyB0aGUgYmFzZW5hbWUgZm9yIHRoYXQgZGlyZWN0b3J5 LgorK2Z1bmNfbWt0ZW1wZGlyICgpCisreworKyAgICBteV90ZW1wbGF0ZT0iJHtUTVBESVItL3Rt cH0vJHsxLSRwcm9nbmFtZX0iCisrCisrICAgIGlmIHRlc3QgIiRydW4iID0gIjoiOyB0aGVuCisr ICAgICAgIyBSZXR1cm4gYSBkaXJlY3RvcnkgbmFtZSwgYnV0IGRvbid0IGNyZWF0ZSBpdCBpbiBk cnktcnVuIG1vZGUKKysgICAgICBteV90bXBkaXI9IiR7bXlfdGVtcGxhdGV9LSQkIgorKyAgICBl bHNlCisrCisrICAgICAgIyBJZiBta3RlbXAgd29ya3MsIHVzZSB0aGF0IGZpcnN0IGFuZCBmb3Jl bW9zdAorKyAgICAgIG15X3RtcGRpcj1gbWt0ZW1wIC1kICIke215X3RlbXBsYXRlfS1YWFhYWFhY WCIgMj4vZGV2L251bGxgCisrCisrICAgICAgaWYgdGVzdCAhIC1kICIkbXlfdG1wZGlyIjsgdGhl bgorKwkjIEZhaWxpbmcgdGhhdCwgYXQgbGVhc3QgdHJ5IGFuZCB1c2UgJFJBTkRPTSB0byBhdm9p ZCBhIHJhY2UKKysJbXlfdG1wZGlyPSIke215X3RlbXBsYXRlfS0ke1JBTkRPTS0wfSQkIgorKwor KwlzYXZlX21rdGVtcGRpcl91bWFzaz1gdW1hc2tgCisrCXVtYXNrIDAwNzcKKysJJG1rZGlyICIk bXlfdG1wZGlyIgorKwl1bWFzayAkc2F2ZV9ta3RlbXBkaXJfdW1hc2sKKysgICAgICBmaQorKwor KyAgICAgICMgSWYgd2UncmUgbm90IGluIGRyeS1ydW4gbW9kZSwgYm9tYiBvdXQgb24gZmFpbHVy ZQorKyAgICAgIHRlc3QgLWQgIiRteV90bXBkaXIiIHx8IHsKKysgICAgICAgICRlY2hvICJjYW5u b3QgY3JlYXRlIHRlbXBvcmFyeSBkaXJlY3RvcnkgXGAkbXlfdG1wZGlyJyIgMT4mMgorKwlleGl0 ICRFWElUX0ZBSUxVUkUKKysgICAgICB9CisrICAgIGZpCisrCisrICAgICRlY2hvICJYJG15X3Rt cGRpciIgfCAkWHNlZAorK30KKysKKysKKysjIGZ1bmNfd2luMzJfbGliaWQgYXJnCisrIyByZXR1 cm4gdGhlIGxpYnJhcnkgdHlwZSBvZiBmaWxlICdhcmcnCisrIworKyMgTmVlZCBhIGxvdCBvZiBn b28gdG8gaGFuZGxlICpib3RoKiBETExzIGFuZCBpbXBvcnQgbGlicworKyMgSGFzIHRvIGJlIGEg c2hlbGwgZnVuY3Rpb24gaW4gb3JkZXIgdG8gJ2VhdCcgdGhlIGFyZ3VtZW50CisrIyB0aGF0IGlz IHN1cHBsaWVkIHdoZW4gJGZpbGVfbWFnaWNfY29tbWFuZCBpcyBjYWxsZWQuCisrZnVuY193aW4z Ml9saWJpZCAoKQorK3sKKysgIHdpbjMyX2xpYmlkX3R5cGU9InVua25vd24iCisrICB3aW4zMl9m aWxlcmVzPWBmaWxlIC1MICQxIDI+L2Rldi9udWxsYAorKyAgY2FzZSAkd2luMzJfZmlsZXJlcyBp bgorKyAgKmFyXCBhcmNoaXZlXCBpbXBvcnRcIGxpYnJhcnkqKSAjIGRlZmluaXRlbHkgaW1wb3J0 CisrICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIGltcG9ydCIKKysgICAgOzsKKysg ICphclwgYXJjaGl2ZSopICMgY291bGQgYmUgYW4gaW1wb3J0LCBvciBzdGF0aWMKKysgICAgaWYg ZXZhbCAkT0JKRFVNUCAtZiAkMSB8ICRTRUQgLWUgJzEwcScgMj4vZGV2L251bGwgfCBcCisrICAg ICAgJEVHUkVQIC1lICdmaWxlIGZvcm1hdCBwZS1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT8n ID4vZGV2L251bGwgOyB0aGVuCisrICAgICAgd2luMzJfbm1yZXM9YGV2YWwgJE5NIC1mIHBvc2l4 IC1BICQxIHwgXAorKwkkU0VEIC1uIC1lICcxLDEwMHsKKysJCS8gSSAveworKwkJCXMsLiosaW1w b3J0LAorKwkJCXAKKysJCQlxCisrCQkJfQorKwkJfSdgCisrICAgICAgY2FzZSAkd2luMzJfbm1y ZXMgaW4KKysgICAgICBpbXBvcnQqKSAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1w b3J0Ijs7CisrICAgICAgKikgICAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIHN0 YXRpYyI7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgICAgOzsKKysgICpETEwqKQorKyAgICB3 aW4zMl9saWJpZF90eXBlPSJ4ODYgRExMIgorKyAgICA7OworKyAgKmV4ZWN1dGFibGUqKSAjIGJ1 dCBzaGVsbCBzY3JpcHRzIGFyZSAiZXhlY3V0YWJsZSIgdG9vLi4uCisrICAgIGNhc2UgJHdpbjMy X2ZpbGVyZXMgaW4KKysgICAgKk1TXCBXaW5kb3dzXCBQRVwgSW50ZWwqKQorKyAgICAgIHdpbjMy X2xpYmlkX3R5cGU9Ing4NiBETEwiCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICA7OworKyAg ZXNhYworKyAgJGVjaG8gJHdpbjMyX2xpYmlkX3R5cGUKKyt9CisrCisrCisrIyBmdW5jX2luZmVy X3RhZyBhcmcKKysjIEluZmVyIHRhZ2dlZCBjb25maWd1cmF0aW9uIHRvIHVzZSBpZiBhbnkgYXJl IGF2YWlsYWJsZSBhbmQKKysjIGlmIG9uZSB3YXNuJ3QgY2hvc2VuIHZpYSB0aGUgIi0tdGFnIiBj b21tYW5kIGxpbmUgb3B0aW9uLgorKyMgT25seSBhdHRlbXB0IHRoaXMgaWYgdGhlIGNvbXBpbGVy IGluIHRoZSBiYXNlIGNvbXBpbGUKKysjIGNvbW1hbmQgZG9lc24ndCBtYXRjaCB0aGUgZGVmYXVs dCBjb21waWxlci4KKysjIGFyZyBpcyB1c3VhbGx5IG9mIHRoZSBmb3JtICdnY2MgLi4uJworK2Z1 bmNfaW5mZXJfdGFnICgpCisreworKyAgICBpZiB0ZXN0IC1uICIkYXZhaWxhYmxlX3RhZ3MiICYm IHRlc3QgLXogIiR0YWduYW1lIjsgdGhlbgorKyAgICAgIENDX3F1b3RlZD0KKysgICAgICBmb3Ig YXJnIGluICRDQzsgZG8KKysJY2FzZSAkYXJnIGluCisrCSAgKltcW1x+XCNcXlwmXCpcKFwpXHtc fVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisrCSAgYXJnPSJcIiRhcmdcIiIKKysJICA7Owor Kwllc2FjCisrCUNDX3F1b3RlZD0iJENDX3F1b3RlZCAkYXJnIgorKyAgICAgIGRvbmUKKysgICAg ICBjYXNlICRAIGluCisrICAgICAgIyBCbGFua3MgaW4gdGhlIGNvbW1hbmQgbWF5IGhhdmUgYmVl biBzdHJpcHBlZCBieSB0aGUgY2FsbGluZyBzaGVsbCwKKysgICAgICAjIGJ1dCBub3QgZnJvbSB0 aGUgQ0MgZW52aXJvbm1lbnQgdmFyaWFibGUgd2hlbiBjb25maWd1cmUgd2FzIHJ1bi4KKysgICAg ICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkZWNobyAkQ0NgICIqIHwgImAkZWNobyAkQ0NgICIq IHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgYCRlY2hvICRDQ19xdW90ZWRg ICIqIHwgImAkZWNobyAkQ0NfcXVvdGVkYCAiKikgOzsKKysgICAgICAjIEJsYW5rcyBhdCB0aGUg c3RhcnQgb2YgJGJhc2VfY29tcGlsZSB3aWxsIGNhdXNlIHRoaXMgdG8gZmFpbAorKyAgICAgICMg aWYgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZW0gYXMgd2VsbC4KKysgICAgICAqKQorKwlmb3IgeiBp biAkYXZhaWxhYmxlX3RhZ3M7IGRvCisrCSAgaWYgZ3JlcCAiXiMgIyMjIEJFR0lOIExJQlRPT0wg VEFHIENPTkZJRzogJHokIiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICAj IEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLgorKwkgICAgZXZhbCAiYCR7U0VEfSAtbiAtZSAn L14jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICckeickLywvXiMgIyMjIEVORCBMSUJU T09MIFRBRyBDT05GSUc6ICckeickL3AnIDwgJHByb2dwYXRoYCIKKysJICAgIENDX3F1b3RlZD0K KysJICAgIGZvciBhcmcgaW4gJENDOyBkbworKwkgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250 YWluaW5nIG90aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgorKwkgICAgY2FzZSAkYXJnIGluCisr CSAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQor KwkgICAgICBhcmc9IlwiJGFyZ1wiIgorKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgQ0Nf cXVvdGVkPSIkQ0NfcXVvdGVkICRhcmciCisrCSAgZG9uZQorKwkgICAgY2FzZSAiJEAgIiBpbgor KwkgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkZWNobyAkQ0NgICIqIHwgImAkZWNobyAk Q0NgICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgYCRlY2hvICRDQ19x dW90ZWRgICIqIHwgImAkZWNobyAkQ0NfcXVvdGVkYCAiKikKKysJICAgICAgIyBUaGUgY29tcGls ZXIgaW4gdGhlIGJhc2UgY29tcGlsZSBjb21tYW5kIG1hdGNoZXMKKysJICAgICAgIyB0aGUgb25l IGluIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbi4KKysJICAgICAgIyBBc3N1bWUgdGhpcyBpcyB0 aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gd2Ugd2FudC4KKysJICAgICAgdGFnbmFtZT0kegorKwkg ICAgICBicmVhaworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGZpCisrCWRvbmUKKysJIyBJ ZiAkdGFnbmFtZSBzdGlsbCBpc24ndCBzZXQsIHRoZW4gbm8gdGFnZ2VkIGNvbmZpZ3VyYXRpb24K KysJIyB3YXMgZm91bmQgYW5kIGxldCB0aGUgdXNlciBrbm93IHRoYXQgdGhlICItLXRhZyIgY29t bWFuZAorKwkjIGxpbmUgb3B0aW9uIG11c3QgYmUgdXNlZC4KKysJaWYgdGVzdCAteiAiJHRhZ25h bWUiOyB0aGVuCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogdW5hYmxlIHRvIGluZmVyIHRhZ2dlZCBj b25maWd1cmF0aW9uIgorKwkgICRlY2hvICIkbW9kZW5hbWU6IHNwZWNpZnkgYSB0YWcgd2l0aCBc YC0tdGFnJyIgMT4mMgorKwkgIGV4aXQgJEVYSVRfRkFJTFVSRQorKyMgICAgICAgIGVsc2UKKysj ICAgICAgICAgICRlY2hvICIkbW9kZW5hbWU6IHVzaW5nICR0YWduYW1lIHRhZ2dlZCBjb25maWd1 cmF0aW9uIgorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgZmkKKyt9CisrCisrCisrIyBm dW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSBkaXIgb2xkbGliCisrZnVuY19leHRyYWN0X2FuX2FyY2hp dmUgKCkKKyt7CisrICAgIGZfZXhfYW5fYXJfZGlyPSIkMSI7IHNoaWZ0CisrICAgIGZfZXhfYW5f YXJfb2xkbGliPSIkMSIKKysKKysgICAgJHNob3cgIihjZCAkZl9leF9hbl9hcl9kaXIgJiYgJEFS IHggJGZfZXhfYW5fYXJfb2xkbGliKSIKKysgICAgJHJ1biBldmFsICIoY2QgXCRmX2V4X2FuX2Fy X2RpciAmJiAkQVIgeCBcJGZfZXhfYW5fYXJfb2xkbGliKSIgfHwgZXhpdCAkPworKyAgICBpZiAo JEFSIHQgIiRmX2V4X2FuX2FyX29sZGxpYiIgfCBzb3J0IHwgc29ydCAtdWMgPi9kZXYvbnVsbCAy PiYxKTsgdGhlbgorKyAgICAgOgorKyAgICBlbHNlCisrICAgICAgJGVjaG8gIiRtb2RlbmFtZTog RVJST1I6IG9iamVjdCBuYW1lIGNvbmZsaWN0czogJGZfZXhfYW5fYXJfZGlyLyRmX2V4X2FuX2Fy X29sZGxpYiIgMT4mMgorKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKyAgICBmaQorK30KKysK KysjIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyBnZW50b3Agb2xkbGliIC4uLgorK2Z1bmNfZXh0cmFj dF9hcmNoaXZlcyAoKQorK3sKKysgICAgbXlfZ2VudG9wPSIkMSI7IHNoaWZ0CisrICAgIG15X29s ZGxpYnM9JHsxKyIkQCJ9CisrICAgIG15X29sZG9ianM9IiIKKysgICAgbXlfeGxpYj0iIgorKyAg ICBteV94YWJzPSIiCisrICAgIG15X3hkaXI9IiIKKysgICAgbXlfc3RhdHVzPSIiCisrCisrICAg ICRzaG93ICIke3JtfXIgJG15X2dlbnRvcCIKKysgICAgJHJ1biAke3JtfXIgIiRteV9nZW50b3Ai CisrICAgICRzaG93ICIkbWtkaXIgJG15X2dlbnRvcCIKKysgICAgJHJ1biAkbWtkaXIgIiRteV9n ZW50b3AiCisrICAgIG15X3N0YXR1cz0kPworKyAgICBpZiB0ZXN0ICIkbXlfc3RhdHVzIiAtbmUg MCAmJiB0ZXN0ICEgLWQgIiRteV9nZW50b3AiOyB0aGVuCisrICAgICAgZXhpdCAkbXlfc3RhdHVz CisrICAgIGZpCisrCisrICAgIGZvciBteV94bGliIGluICRteV9vbGRsaWJzOyBkbworKyAgICAg ICMgRXh0cmFjdCB0aGUgb2JqZWN0cy4KKysgICAgICBjYXNlICRteV94bGliIGluCisrCVtcXC9d KiB8IFtBLVphLXpdOltcXC9dKikgbXlfeGFicz0iJG15X3hsaWIiIDs7CisrCSopIG15X3hhYnM9 YHB3ZGAiLyRteV94bGliIiA7OworKyAgICAgIGVzYWMKKysgICAgICBteV94bGliPWAkZWNobyAi WCRteV94bGliIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCisrICAgICAgbXlfeGxpYl91PSRteV94 bGliCisrICAgICAgd2hpbGUgOjsgZG8KKysgICAgICAgIGNhc2UgIiAkZXh0cmFjdGVkX2FyY2hp dmVzICIgaW4KKysJKiIgJG15X3hsaWJfdSAiKikKKysJICBleHRyYWN0ZWRfc2VyaWFsPWBleHBy ICRleHRyYWN0ZWRfc2VyaWFsICsgMWAKKysJICBteV94bGliX3U9bHQkZXh0cmFjdGVkX3Nlcmlh bC0kbXlfeGxpYiA7OworKwkqKSBicmVhayA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAg IGV4dHJhY3RlZF9hcmNoaXZlcz0iJGV4dHJhY3RlZF9hcmNoaXZlcyAkbXlfeGxpYl91IgorKyAg ICAgIG15X3hkaXI9IiRteV9nZW50b3AvJG15X3hsaWJfdSIKKysKKysgICAgICAkc2hvdyAiJHty bX1yICRteV94ZGlyIgorKyAgICAgICRydW4gJHtybX1yICIkbXlfeGRpciIKKysgICAgICAkc2hv dyAiJG1rZGlyICRteV94ZGlyIgorKyAgICAgICRydW4gJG1rZGlyICIkbXlfeGRpciIKKysgICAg ICBleGl0X3N0YXR1cz0kPworKyAgICAgIGlmIHRlc3QgIiRleGl0X3N0YXR1cyIgLW5lIDAgJiYg dGVzdCAhIC1kICIkbXlfeGRpciI7IHRoZW4KKysJZXhpdCAkZXhpdF9zdGF0dXMKKysgICAgICBm aQorKyAgICAgIGNhc2UgJGhvc3QgaW4KKysgICAgICAqLWRhcndpbiopCisrCSRzaG93ICJFeHRy YWN0aW5nICRteV94YWJzIgorKwkjIERvIG5vdCBib3RoZXIgZG9pbmcgYW55dGhpbmcgaWYganVz dCBhIGRyeSBydW4KKysJaWYgdGVzdCAteiAiJHJ1biI7IHRoZW4KKysJICBkYXJ3aW5fb3JpZ19k aXI9YHB3ZGAKKysJICBjZCAkbXlfeGRpciB8fCBleGl0ICQ/CisrCSAgZGFyd2luX2FyY2hpdmU9 JG15X3hhYnMKKysJICBkYXJ3aW5fY3VyZGlyPWBwd2RgCisrCSAgZGFyd2luX2Jhc2VfYXJjaGl2 ZT1gJGVjaG8gIlgkZGFyd2luX2FyY2hpdmUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKKysJICBk YXJ3aW5fYXJjaGVzPWBsaXBvIC1pbmZvICIkZGFyd2luX2FyY2hpdmUiIDI+L2Rldi9udWxsIHwg JEVHUkVQIEFyY2hpdGVjdHVyZXMgMj4vZGV2L251bGxgCisrCSAgaWYgdGVzdCAtbiAiJGRhcndp bl9hcmNoZXMiOyB0aGVuIAorKwkgICAgZGFyd2luX2FyY2hlcz1gZWNobyAiJGRhcndpbl9hcmNo ZXMiIHwgJFNFRCAtZSAncy8uKmFyZTovLydgCisrCSAgICBkYXJ3aW5fYXJjaD0KKysJICAgICRz aG93ICIkZGFyd2luX2Jhc2VfYXJjaGl2ZSBoYXMgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyAkZGFy d2luX2FyY2hlcyIKKysJICAgIGZvciBkYXJ3aW5fYXJjaCBpbiAgJGRhcndpbl9hcmNoZXMgOyBk bworKwkgICAgICBta2RpciAtcCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rh cndpbl9hcmNofSIKKysJICAgICAgbGlwbyAtdGhpbiAkZGFyd2luX2FyY2ggLW91dHB1dCAidW5m YXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNl X2FyY2hpdmV9IiAiJHtkYXJ3aW5fYXJjaGl2ZX0iCisrCSAgICAgIGNkICJ1bmZhdC0kJC8ke2Rh cndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9IgorKwkgICAgICBmdW5jX2V4dHJhY3Rf YW5fYXJjaGl2ZSAiYHB3ZGAiICIke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgorKwkgICAgICBjZCAi JGRhcndpbl9jdXJkaXIiCisrCSAgICAgICRybSAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNo aXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgorKwkgICAgZG9uZSAj ICRkYXJ3aW5fYXJjaGVzCisrICAgICAgIyMgT2theSBub3cgd2UgaGF2ZSBhIGJ1bmNoIG9mIHRo aW4gb2JqZWN0cywgZ290dGEgZmF0dGVuIHRoZW0gdXAgOikKKysJICAgIGRhcndpbl9maWxlbGlz dD1gZmluZCB1bmZhdC0kJCAtdHlwZSBmIC1uYW1lIFwqLm8gLXByaW50IC1vIC1uYW1lIFwqLmxv IC1wcmludHwgeGFyZ3MgYmFzZW5hbWUgfCBzb3J0IC11IHwgJE5MMlNQYAorKwkgICAgZGFyd2lu X2ZpbGU9CisrCSAgICBkYXJ3aW5fZmlsZXM9CisrCSAgICBmb3IgZGFyd2luX2ZpbGUgaW4gJGRh cndpbl9maWxlbGlzdDsgZG8KKysJICAgICAgZGFyd2luX2ZpbGVzPWBmaW5kIHVuZmF0LSQkIC1u YW1lICRkYXJ3aW5fZmlsZSAtcHJpbnQgfCAkTkwyU1BgCisrCSAgICAgIGxpcG8gLWNyZWF0ZSAt b3V0cHV0ICIkZGFyd2luX2ZpbGUiICRkYXJ3aW5fZmlsZXMKKysJICAgIGRvbmUgIyAkZGFyd2lu X2ZpbGVsaXN0CisrCSAgICAke3JtfXIgdW5mYXQtJCQKKysJICAgIGNkICIkZGFyd2luX29yaWdf ZGlyIgorKwkgIGVsc2UKKysJICAgIGNkICIkZGFyd2luX29yaWdfZGlyIgorKyAJICAgIGZ1bmNf ZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgorKwkgIGZpICMgJGRhcndp bl9hcmNoZXMKKysJZmkgIyAkcnVuCisrCTs7CisrICAgICAgKikKKysgICAgICAgIGZ1bmNfZXh0 cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgorKyAgICAgICAgOzsKKysgICAg ICBlc2FjCisrICAgICAgbXlfb2xkb2Jqcz0iJG15X29sZG9ianMgImBmaW5kICRteV94ZGlyIC1u YW1lIFwqLiRvYmpleHQgLXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8ICROTDJTUGAKKysg ICAgZG9uZQorKyAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0PSIkbXlfb2xkb2JqcyIK Kyt9CisrIyBFbmQgb2YgU2hlbGwgZnVuY3Rpb24gZGVmaW5pdGlvbnMKKysjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisrCisrIyBEYXJ3aW4gc3Vja3MKKytldmFsIHN0ZF9z aHJleHQ9XCIkc2hyZXh0X2NtZHNcIgorKworK2Rpc2FibGVfbGlicz1ubworKworKyMgUGFyc2Ug b3VyIGNvbW1hbmQgbGluZSBvcHRpb25zIG9uY2UsIHRob3JvdWdobHkuCisrd2hpbGUgdGVzdCAi JCMiIC1ndCAwCisrZG8KKysgIGFyZz0iJDEiCisrICBzaGlmdAorKworKyAgY2FzZSAkYXJnIGlu CisrICAtKj0qKSBvcHRhcmc9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAncy9bLV9hLXpBLVow LTldKj0vLydgIDs7CisrICAqKSBvcHRhcmc9IDs7CisrICBlc2FjCisrCisrICAjIElmIHRoZSBw cmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJndW1lbnQsIGFzc2lnbiBpdC4KKysgIGlmIHRlc3Qg LW4gIiRwcmV2IjsgdGhlbgorKyAgICBjYXNlICRwcmV2IGluCisrICAgIGV4ZWN1dGVfZGxmaWxl cykKKysgICAgICBleGVjdXRlX2RsZmlsZXM9IiRleGVjdXRlX2RsZmlsZXMgJGFyZyIKKysgICAg ICA7OworKyAgICB0YWcpCisrICAgICAgdGFnbmFtZT0iJGFyZyIKKysgICAgICBwcmVzZXJ2ZV9h cmdzPSIke3ByZXNlcnZlX2FyZ3N9PSRhcmciCisrCisrICAgICAgIyBDaGVjayB3aGV0aGVyIHRh Z25hbWUgY29udGFpbnMgb25seSB2YWxpZCBjaGFyYWN0ZXJzCisrICAgICAgY2FzZSAkdGFnbmFt ZSBpbgorKyAgICAgICpbIS1fQS1aYS16MC05LC9dKikKKysJJGVjaG8gIiRwcm9nbmFtZTogaW52 YWxpZCB0YWcgbmFtZTogJHRhZ25hbWUiIDE+JjIKKysJZXhpdCAkRVhJVF9GQUlMVVJFCisrCTs7 CisrICAgICAgZXNhYworKworKyAgICAgIGNhc2UgJHRhZ25hbWUgaW4KKysgICAgICBDQykKKysJ IyBEb24ndCB0ZXN0IGZvciB0aGUgImRlZmF1bHQiIEMgdGFnLCBhcyB3ZSBrbm93LCBpdCdzIHRo ZXJlLCBidXQKKysJIyBub3Qgc3BlY2lhbGx5IG1hcmtlZC4KKysJOzsKKysgICAgICAqKQorKwlp ZiBncmVwICJeIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZSQiIDwgIiRw cm9ncGF0aCIgPiAvZGV2L251bGw7IHRoZW4KKysJICB0YWdsaXN0PSIkdGFnbGlzdCAkdGFnbmFt ZSIKKysJICAjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLgorKwkgIGV2YWwgImAke1NFRH0g LW4gLWUgJy9eIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAnJHRhZ25hbWUnJC8sL14j ICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAnJHRhZ25hbWUnJC9wJyA8ICRwcm9ncGF0aGAi CisrCWVsc2UKKysJICAkZWNobyAiJHByb2duYW1lOiBpZ25vcmluZyB1bmtub3duIHRhZyAkdGFn bmFtZSIgMT4mMgorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKyAgICAqKQor KyAgICAgIGV2YWwgIiRwcmV2PVwkYXJnIgorKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAg cHJldj0KKysgICAgcHJldm9wdD0KKysgICAgY29udGludWUKKysgIGZpCisrCisrICAjIEhhdmUg d2Ugc2VlbiBhIG5vbi1vcHRpb25hbCBhcmd1bWVudCB5ZXQ/CisrICBjYXNlICRhcmcgaW4KKysg IC0taGVscCkKKysgICAgc2hvd19oZWxwPXllcworKyAgICA7OworKworKyAgLS12ZXJzaW9uKQor KyAgICBlY2hvICJcCisrJFBST0dSQU0gKEdOVSAkUEFDS0FHRSkgJFZFUlNJT04kVElNRVNUQU1Q CisrCisrQ29weXJpZ2h0IChDKSAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KytUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRp dGlvbnMuICBUaGVyZSBpcyBOTworK3dhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiIKKysgICAgZXhpdCAkPwor KyAgICA7OworKworKyAgLS1jb25maWcpCisrICAgICR7U0VEfSAtZSAnMSwvXiMgIyMjIEJFR0lO IExJQlRPT0wgQ09ORklHL2QnIC1lICcvXiMgIyMjIEVORCBMSUJUT09MIENPTkZJRy8sJGQnICRw cm9ncGF0aAorKyAgICAjIE5vdyBwcmludCB0aGUgY29uZmlndXJhdGlvbnMgZm9yIHRoZSB0YWdz LgorKyAgICBmb3IgdGFnbmFtZSBpbiAkdGFnbGlzdDsgZG8KKysgICAgICAke1NFRH0gLW4gLWUg Ii9eIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZSQvLC9eIyAjIyMgRU5E IExJQlRPT0wgVEFHIENPTkZJRzogJHRhZ25hbWUkL3AiIDwgIiRwcm9ncGF0aCIKKysgICAgZG9u ZQorKyAgICBleGl0ICQ/CisrICAgIDs7CisrCisrICAtLWRlYnVnKQorKyAgICAkZWNobyAiJHBy b2duYW1lOiBlbmFibGluZyBzaGVsbCB0cmFjZSBtb2RlIgorKyAgICBzZXQgLXgKKysgICAgcHJl c2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJGFyZyIKKysgICAgOzsKKysKKysgIC0tZHJ5LXJ1 biB8IC1uKQorKyAgICBydW49OgorKyAgICA7OworKworKyAgLS1mZWF0dXJlcykKKysgICAgJGVj aG8gImhvc3Q6ICRob3N0IgorKyAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHll czsgdGhlbgorKyAgICAgICRlY2hvICJlbmFibGUgc2hhcmVkIGxpYnJhcmllcyIKKysgICAgZWxz ZQorKyAgICAgICRlY2hvICJkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMiCisrICAgIGZpCisrICAg IGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KKysgICAgICAkZWNobyAiZW5h YmxlIHN0YXRpYyBsaWJyYXJpZXMiCisrICAgIGVsc2UKKysgICAgICAkZWNobyAiZGlzYWJsZSBz dGF0aWMgbGlicmFyaWVzIgorKyAgICBmaQorKyAgICBleGl0ICQ/CisrICAgIDs7CisrCisrICAt LWZpbmlzaCkgbW9kZT0iZmluaXNoIiA7OworKworKyAgLS1tb2RlKSBwcmV2b3B0PSItLW1vZGUi IHByZXY9bW9kZSA7OworKyAgLS1tb2RlPSopIG1vZGU9IiRvcHRhcmciIDs7CisrCisrICAtLXBy ZXNlcnZlLWR1cC1kZXBzKSBkdXBsaWNhdGVfZGVwcz0ieWVzIiA7OworKworKyAgLS1xdWlldCB8 IC0tc2lsZW50KQorKyAgICBzaG93PToKKysgICAgcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2Fy Z3MgJGFyZyIKKysgICAgOzsKKysKKysgIC0tdGFnKQorKyAgICBwcmV2b3B0PSItLXRhZyIKKysg ICAgcHJldj10YWcKKysgICAgcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgLS10YWciCisr ICAgIDs7CisrICAtLXRhZz0qKQorKyAgICBzZXQgdGFnICIkb3B0YXJnIiAkezErIiRAIn0KKysg ICAgc2hpZnQKKysgICAgcHJldj10YWcKKysgICAgcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2Fy Z3MgLS10YWciCisrICAgIDs7CisrCisrICAtZGxvcGVuKQorKyAgICBwcmV2b3B0PSItZGxvcGVu IgorKyAgICBwcmV2PWV4ZWN1dGVfZGxmaWxlcworKyAgICA7OworKworKyAgLSopCisrICAgICRl Y2hvICIkbW9kZW5hbWU6IHVucmVjb2duaXplZCBvcHRpb24gXGAkYXJnJyIgMT4mMgorKyAgICAk ZWNobyAiJGhlbHAiIDE+JjIKKysgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgIDs7CisrCisr ICAqKQorKyAgICBub25vcHQ9IiRhcmciCisrICAgIGJyZWFrCisrICAgIDs7CisrICBlc2FjCisr ZG9uZQorKworK2lmIHRlc3QgLW4gIiRwcmV2b3B0IjsgdGhlbgorKyAgJGVjaG8gIiRtb2RlbmFt ZTogb3B0aW9uIFxgJHByZXZvcHQnIHJlcXVpcmVzIGFuIGFyZ3VtZW50IiAxPiYyCisrICAkZWNo byAiJGhlbHAiIDE+JjIKKysgIGV4aXQgJEVYSVRfRkFJTFVSRQorK2ZpCisrCisrY2FzZSAkZGlz YWJsZV9saWJzIGluCisrbm8pIAorKyAgOzsKKytzaGFyZWQpCisrICBidWlsZF9saWJ0b29sX2xp YnM9bm8KKysgIGJ1aWxkX29sZF9saWJzPXllcworKyAgOzsKKytzdGF0aWMpCisrICBidWlsZF9v bGRfbGlicz1gY2FzZSAkYnVpbGRfbGlidG9vbF9saWJzIGluIHllcykgZWNobyBubzs7ICopIGVj aG8geWVzOzsgZXNhY2AKKysgIDs7CisrZXNhYworKworKyMgSWYgdGhpcyB2YXJpYWJsZSBpcyBz ZXQgaW4gYW55IG9mIHRoZSBhY3Rpb25zLCB0aGUgY29tbWFuZCBpbiBpdAorKyMgd2lsbCBiZSBl eGVjZWQgYXQgdGhlIGVuZC4gIFRoaXMgcHJldmVudHMgaGVyZS1kb2N1bWVudHMgZnJvbSBiZWlu ZworKyMgbGVmdCBvdmVyIGJ5IHNoZWxscy4KKytleGVjX2NtZD0KKysKKytpZiB0ZXN0IC16ICIk c2hvd19oZWxwIjsgdGhlbgorKworKyAgIyBJbmZlciB0aGUgb3BlcmF0aW9uIG1vZGUuCisrICBp ZiB0ZXN0IC16ICIkbW9kZSI7IHRoZW4KKysgICAgJGVjaG8gIioqKiBXYXJuaW5nOiBpbmZlcnJp bmcgdGhlIG1vZGUgb2Ygb3BlcmF0aW9uIGlzIGRlcHJlY2F0ZWQuIiAxPiYyCisrICAgICRlY2hv ICIqKiogRnV0dXJlIHZlcnNpb25zIG9mIExpYnRvb2wgd2lsbCByZXF1aXJlIC0tbW9kZT1NT0RF IGJlIHNwZWNpZmllZC4iIDE+JjIKKysgICAgY2FzZSAkbm9ub3B0IGluCisrICAgICpjYyB8IGNj KiB8ICorKyB8IGdjYyogfCAqLWdjYyogfCBnKysqIHwgeGxjKikKKysgICAgICBtb2RlPWxpbmsK KysgICAgICBmb3IgYXJnCisrICAgICAgZG8KKysJY2FzZSAkYXJnIGluCisrCS1jKQorKwkgICBt b2RlPWNvbXBpbGUKKysJICAgYnJlYWsKKysJICAgOzsKKysJZXNhYworKyAgICAgIGRvbmUKKysg ICAgICA7OworKyAgICAqZGIgfCAqZGJ4IHwgKnN0cmFjZSB8ICp0cnVzcykKKysgICAgICBtb2Rl PWV4ZWN1dGUKKysgICAgICA7OworKyAgICAqaW5zdGFsbCp8Y3B8bXYpCisrICAgICAgbW9kZT1p bnN0YWxsCisrICAgICAgOzsKKysgICAgKnJtKQorKyAgICAgIG1vZGU9dW5pbnN0YWxsCisrICAg ICAgOzsKKysgICAgKikKKysgICAgICAjIElmIHdlIGhhdmUgbm8gbW9kZSwgYnV0IGRsZmlsZXMg d2VyZSBzcGVjaWZpZWQsIHRoZW4gZG8gZXhlY3V0ZSBtb2RlLgorKyAgICAgIHRlc3QgLW4gIiRl eGVjdXRlX2RsZmlsZXMiICYmIG1vZGU9ZXhlY3V0ZQorKworKyAgICAgICMgSnVzdCB1c2UgdGhl IGRlZmF1bHQgb3BlcmF0aW9uIG1vZGUuCisrICAgICAgaWYgdGVzdCAteiAiJG1vZGUiOyB0aGVu CisrCWlmIHRlc3QgLW4gIiRub25vcHQiOyB0aGVuCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogd2Fy bmluZzogY2Fubm90IGluZmVyIG9wZXJhdGlvbiBtb2RlIGZyb20gXGAkbm9ub3B0JyIgMT4mMgor KwllbHNlCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogY2Fubm90IGluZmVyIG9wZXJh dGlvbiBtb2RlIHdpdGhvdXQgTU9ERS1BUkdTIiAxPiYyCisrCWZpCisrICAgICAgZmkKKysgICAg ICA7OworKyAgICBlc2FjCisrICBmaQorKworKyAgIyBPbmx5IGV4ZWN1dGUgbW9kZSBpcyBhbGxv d2VkIHRvIGhhdmUgLWRsb3BlbiBmbGFncy4KKysgIGlmIHRlc3QgLW4gIiRleGVjdXRlX2RsZmls ZXMiICYmIHRlc3QgIiRtb2RlIiAhPSBleGVjdXRlOyB0aGVuCisrICAgICRlY2hvICIkbW9kZW5h bWU6IHVucmVjb2duaXplZCBvcHRpb24gXGAtZGxvcGVuJyIgMT4mMgorKyAgICAkZWNobyAiJGhl bHAiIDE+JjIKKysgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrICBmaQorKworKyAgIyBDaGFuZ2Ug dGhlIGhlbHAgbWVzc2FnZSB0byBhIG1vZGUtc3BlY2lmaWMgb25lLgorKyAgZ2VuZXJpY19oZWxw PSIkaGVscCIKKysgIGhlbHA9IlRyeSBcYCRtb2RlbmFtZSAtLWhlbHAgLS1tb2RlPSRtb2RlJyBm b3IgbW9yZSBpbmZvcm1hdGlvbi4iCisrCisrICAjIFRoZXNlIG1vZGVzIGFyZSBpbiBvcmRlciBv ZiBleGVjdXRpb24gZnJlcXVlbmN5IHNvIHRoYXQgdGhleSBydW4gcXVpY2tseS4KKysgIGNhc2Ug JG1vZGUgaW4KKysgICMgbGlidG9vbCBjb21waWxlIG1vZGUKKysgIGNvbXBpbGUpCisrICAgIG1v ZGVuYW1lPSIkbW9kZW5hbWU6IGNvbXBpbGUiCisrICAgICMgR2V0IHRoZSBjb21waWxhdGlvbiBj b21tYW5kIGFuZCB0aGUgc291cmNlIGZpbGUuCisrICAgIGJhc2VfY29tcGlsZT0KKysgICAgc3Jj ZmlsZT0iJG5vbm9wdCIgICMgIGFsd2F5cyBrZWVwIGEgbm9uLWVtcHR5IHZhbHVlIGluICJzcmNm aWxlIgorKyAgICBzdXBwcmVzc19vcHQ9eWVzCisrICAgIHN1cHByZXNzX291dHB1dD0KKysgICAg YXJnX21vZGU9bm9ybWFsCisrICAgIGxpYm9iaj0KKysgICAgbGF0ZXI9CisrCisrICAgIGZvciBh cmcKKysgICAgZG8KKysgICAgICBjYXNlICRhcmdfbW9kZSBpbgorKyAgICAgIGFyZyAgKQorKwkj IGRvIG5vdCAiY29udGludWUiLiAgSW5zdGVhZCwgYWRkIHRoaXMgdG8gYmFzZV9jb21waWxlCisr CWxhc3Rhcmc9IiRhcmciCisrCWFyZ19tb2RlPW5vcm1hbAorKwk7OworKworKyAgICAgIHRhcmdl dCApCisrCWxpYm9iaj0iJGFyZyIKKysJYXJnX21vZGU9bm9ybWFsCisrCWNvbnRpbnVlCisrCTs7 CisrCisrICAgICAgbm9ybWFsICkKKysJIyBBY2NlcHQgYW55IGNvbW1hbmQtbGluZSBvcHRpb25z LgorKwljYXNlICRhcmcgaW4KKysJLW8pCisrCSAgaWYgdGVzdCAtbiAiJGxpYm9iaiIgOyB0aGVu CisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgY2Fubm90IHNwZWNpZnkgXGAtbycgbW9yZSB0 aGFuIG9uY2UiIDE+JjIKKysJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKwkgIGZpCisrCSAgYXJn X21vZGU9dGFyZ2V0CisrCSAgY29udGludWUKKysJICA7OworKworKwktc3RhdGljIHwgLXByZWZl ci1waWMgfCAtcHJlZmVyLW5vbi1waWMpCisrCSAgbGF0ZXI9IiRsYXRlciAkYXJnIgorKwkgIGNv bnRpbnVlCisrCSAgOzsKKysKKysJLW5vLXN1cHByZXNzKQorKwkgIHN1cHByZXNzX29wdD1ubwor KwkgIGNvbnRpbnVlCisrCSAgOzsKKysKKysJLVhjb21waWxlcikKKysJICBhcmdfbW9kZT1hcmcg ICMgIHRoZSBuZXh0IG9uZSBnb2VzIGludG8gdGhlICJiYXNlX2NvbXBpbGUiIGFyZyBsaXN0Cisr CSAgY29udGludWUgICAgICAjICBUaGUgY3VycmVudCAic3JjZmlsZSIgd2lsbCBlaXRoZXIgYmUg cmV0YWluZWQgb3IKKysJICA7OyAgICAgICAgICAgICMgIHJlcGxhY2VkIGxhdGVyLiAgSSB3b3Vs ZCBndWVzcyB0aGF0IHdvdWxkIGJlIGEgYnVnLgorKworKwktV2MsKikKKysJICBhcmdzPWAkZWNo byAiWCRhcmciIHwgJFhzZWQgLWUgInMvXi1XYywvLyJgCisrCSAgbGFzdGFyZz0KKysJICBzYXZl X2lmcz0iJElGUyI7IElGUz0nLCcKKysgCSAgZm9yIGFyZyBpbiAkYXJnczsgZG8KKysJICAgIElG Uz0iJHNhdmVfaWZzIgorKworKwkgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIG90 aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgorKwkgICAgIyBNYW55IEJvdXJuZSBzaGVsbHMgY2Fu bm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0bHkKKysJICAgICMgaW4gc2NhbiBzZXRz LCBzbyB3ZSBzcGVjaWZ5IGl0IHNlcGFyYXRlbHkuCisrCSAgICBjYXNlICRhcmcgaW4KKysJICAg ICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisrCSAg ICAgIGFyZz0iXCIkYXJnXCIiCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICBsYXN0YXJn PSIkbGFzdGFyZyAkYXJnIgorKwkgIGRvbmUKKysJICBJRlM9IiRzYXZlX2lmcyIKKysJICBsYXN0 YXJnPWAkZWNobyAiWCRsYXN0YXJnIiB8ICRYc2VkIC1lICJzL14gLy8iYAorKworKwkgICMgQWRk IHRoZSBhcmd1bWVudHMgdG8gYmFzZV9jb21waWxlLgorKwkgIGJhc2VfY29tcGlsZT0iJGJhc2Vf Y29tcGlsZSAkbGFzdGFyZyIKKysJICBjb250aW51ZQorKwkgIDs7CisrCisrCSogKQorKwkgICMg QWNjZXB0IHRoZSBjdXJyZW50IGFyZ3VtZW50IGFzIHRoZSBzb3VyY2UgZmlsZS4KKysJICAjIFRo ZSBwcmV2aW91cyAic3JjZmlsZSIgYmVjb21lcyB0aGUgY3VycmVudCBhcmd1bWVudC4KKysJICAj CisrCSAgbGFzdGFyZz0iJHNyY2ZpbGUiCisrCSAgc3JjZmlsZT0iJGFyZyIKKysJICA7OworKwll c2FjICAjICBjYXNlICRhcmcKKysJOzsKKysgICAgICBlc2FjICAgICMgIGNhc2UgJGFyZ19tb2Rl CisrCisrICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBwcmV2aW91cyBhcmd1bWVudC4K KysgICAgICBsYXN0YXJnPWAkZWNobyAiWCRsYXN0YXJnIiB8ICRYc2VkIC1lICIkc2VkX3F1b3Rl X3N1YnN0ImAKKysKKysgICAgICBjYXNlICRsYXN0YXJnIGluCisrICAgICAgIyBEb3VibGUtcXVv dGUgYXJncyBjb250YWluaW5nIG90aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgorKyAgICAgICMg TWFueSBCb3VybmUgc2hlbGxzIGNhbm5vdCBoYW5kbGUgY2xvc2UgYnJhY2tldHMgY29ycmVjdGx5 CisrICAgICAgIyBpbiBzY2FuIHNldHMsIGFuZCBzb21lIFN1bk9TIGtzaCBtaXN0cmVhdCBiYWNr c2xhc2gtZXNjYXBpbmcKKysgICAgICAjIGluIHNjYW4gc2V0cyAod29ya2VkIGFyb3VuZCB3aXRo IHZhcmlhYmxlIGV4cGFuc2lvbiksCisrICAgICAgIyBhbmQgZnVydGhlcm1vcmUgY2Fubm90IGhh bmRsZSAnfCcgJyYnICcoJyAnKScgaW4gc2NhbiBzZXRzIAorKyAgICAgICMgYXQgYWxsLCBzbyB3 ZSBzcGVjaWZ5IHRoZW0gc2VwYXJhdGVseS4KKysgICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9 XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKysJbGFzdGFyZz0iXCIkbGFzdGFyZ1wiIgorKwk7 OworKyAgICAgIGVzYWMKKysKKysgICAgICBiYXNlX2NvbXBpbGU9IiRiYXNlX2NvbXBpbGUgJGxh c3RhcmciCisrICAgIGRvbmUgIyBmb3IgYXJnCisrCisrICAgIGNhc2UgJGFyZ19tb2RlIGluCisr ICAgIGFyZykKKysgICAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGFuIGFy Z3VtZW50IGZvciAtWGNvbXBpbGUiCisrICAgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgICAg OzsKKysgICAgdGFyZ2V0KQorKyAgICAgICRlY2hvICIkbW9kZW5hbWU6IHlvdSBtdXN0IHNwZWNp ZnkgYSB0YXJnZXQgd2l0aCBcYC1vJyIgMT4mMgorKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQor KyAgICAgIDs7CisrICAgICopCisrICAgICAgIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkg b2JqZWN0LgorKyAgICAgIFsgLXogIiRsaWJvYmoiIF0gJiYgbGlib2JqPWAkZWNobyAiWCRzcmNm aWxlIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdgCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAg ICAjIFJlY29nbml6ZSBzZXZlcmFsIGRpZmZlcmVudCBmaWxlIHN1ZmZpeGVzLgorKyAgICAjIElm IHRoZSB1c2VyIHNwZWNpZmllcyAtbyBmaWxlLm8sIGl0IGlzIHJlcGxhY2VkIHdpdGggZmlsZS5s bworKyAgICB4Zm9ybT0nW2NDRlNpZm1zb10nCisrICAgIGNhc2UgJGxpYm9iaiBpbgorKyAgICAq LmFkYSkgeGZvcm09YWRhIDs7CisrICAgICouYWRiKSB4Zm9ybT1hZGIgOzsKKysgICAgKi5hZHMp IHhmb3JtPWFkcyA7OworKyAgICAqLmFzbSkgeGZvcm09YXNtIDs7CisrICAgICouYysrKSB4Zm9y bT1jKysgOzsKKysgICAgKi5jYykgeGZvcm09Y2MgOzsKKysgICAgKi5paSkgeGZvcm09aWkgOzsK KysgICAgKi5jbGFzcykgeGZvcm09Y2xhc3MgOzsKKysgICAgKi5jcHApIHhmb3JtPWNwcCA7Owor KyAgICAqLmN4eCkgeGZvcm09Y3h4IDs7CisrICAgICouW2ZGXVswOV0/KSB4Zm9ybT1bZkZdWzA5 XS4gOzsKKysgICAgKi5mb3IpIHhmb3JtPWZvciA7OworKyAgICAqLmphdmEpIHhmb3JtPWphdmEg OzsKKysgICAgKi5vYmopIHhmb3JtPW9iaiA7OworKyAgICAqLnN4KSB4Zm9ybT1zeCA7OworKyAg ICBlc2FjCisrCisrICAgIGxpYm9iaj1gJGVjaG8gIlgkbGlib2JqIiB8ICRYc2VkIC1lICJzL1wu JHhmb3JtJC8ubG8vImAKKysKKysgICAgY2FzZSAkbGlib2JqIGluCisrICAgICoubG8pIG9iaj1g JGVjaG8gIlgkbGlib2JqIiB8ICRYc2VkIC1lICIkbG8ybyJgIDs7CisrICAgICopCisrICAgICAg JGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGRldGVybWluZSBuYW1lIG9mIGxpYnJhcnkgb2JqZWN0 IGZyb20gXGAkbGlib2JqJyIgMT4mMgorKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKyAgICAg IDs7CisrICAgIGVzYWMKKysKKysgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGlsZQorKwor KyAgICBmb3IgYXJnIGluICRsYXRlcjsgZG8KKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAt c3RhdGljKQorKwlidWlsZF9vbGRfbGlicz15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAg ICAtcHJlZmVyLXBpYykKKysJcGljX21vZGU9eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAg ICAgLXByZWZlci1ub24tcGljKQorKwlwaWNfbW9kZT1ubworKwljb250aW51ZQorKwk7OworKyAg ICAgIGVzYWMKKysgICAgZG9uZQorKworKyAgICBxbGlib2JqPWAkZWNobyAiWCRsaWJvYmoiIHwg JFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICBjYXNlICRxbGlib2JqIGluCisrICAg ICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisrCXFs aWJvYmo9IlwiJHFsaWJvYmpcIiIgOzsKKysgICAgZXNhYworKyAgICB0ZXN0ICJYJGxpYm9iaiIg IT0gIlgkcWxpYm9iaiIgXAorKwkmJiAkZWNobyAiWCRsaWJvYmoiIHwgZ3JlcCAnW11+I14qe307 PD4/IiciJyInIAkmKCl8YCRbXScgXAorKwkmJiAkZWNobyAiJG1vZGVuYW1lOiBsaWJvYmogbmFt ZSBcYCRsaWJvYmonIG1heSBub3QgY29udGFpbiBzaGVsbCBzcGVjaWFsIGNoYXJhY3RlcnMuIgor KyAgICBvYmpuYW1lPWAkZWNobyAiWCRvYmoiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKKysgICAg eGRpcj1gJGVjaG8gIlgkb2JqIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCisrICAgIGlmIHRl c3QgIlgkeGRpciIgPSAiWCRvYmoiOyB0aGVuCisrICAgICAgeGRpcj0KKysgICAgZWxzZQorKyAg ICAgIHhkaXI9JHhkaXIvCisrICAgIGZpCisrICAgIGxvYmo9JHt4ZGlyfSRvYmpkaXIvJG9iam5h bWUKKysKKysgICAgaWYgdGVzdCAteiAiJGJhc2VfY29tcGlsZSI7IHRoZW4KKysgICAgICAkZWNo byAiJG1vZGVuYW1lOiB5b3UgbXVzdCBzcGVjaWZ5IGEgY29tcGlsYXRpb24gY29tbWFuZCIgMT4m MgorKyAgICAgICRlY2hvICIkaGVscCIgMT4mMgorKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQor KyAgICBmaQorKworKyAgICAjIERlbGV0ZSBhbnkgbGVmdG92ZXIgbGlicmFyeSBvYmplY3RzLgor KyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisrICAgICAgcmVtb3Zl bGlzdD0iJG9iaiAkbG9iaiAkbGlib2JqICR7bGlib2JqfVQiCisrICAgIGVsc2UKKysgICAgICBy ZW1vdmVsaXN0PSIkbG9iaiAkbGlib2JqICR7bGlib2JqfVQiCisrICAgIGZpCisrCisrICAgICRy dW4gJHJtICRyZW1vdmVsaXN0CisrICAgIHRyYXAgIiRydW4gJHJtICRyZW1vdmVsaXN0OyBleGl0 ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQorKworKyAgICAjIE9uIEN5Z3dpbiB0aGVyZSdzIG5vICJy ZWFsIiBQSUMgZmxhZyBzbyB3ZSBtdXN0IGJ1aWxkIGJvdGggb2JqZWN0IHR5cGVzCisrICAgIGNh c2UgJGhvc3Rfb3MgaW4KKysgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgb3MyKikKKysg ICAgICBwaWNfbW9kZT1kZWZhdWx0CisrICAgICAgOzsKKysgICAgZXNhYworKyAgICBpZiB0ZXN0 ICIkcGljX21vZGUiID0gbm8gJiYgdGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNz X2FsbDsgdGhlbgorKyAgICAgICMgbm9uLVBJQyBjb2RlIGluIHNoYXJlZCBsaWJyYXJpZXMgaXMg bm90IHN1cHBvcnRlZAorKyAgICAgIHBpY19tb2RlPWRlZmF1bHQKKysgICAgZmkKKysKKysgICAg IyBDYWxjdWxhdGUgdGhlIGZpbGVuYW1lIG9mIHRoZSBvdXRwdXQgb2JqZWN0IGlmIGNvbXBpbGVy IGRvZXMKKysgICAgIyBub3Qgc3VwcG9ydCAtbyB3aXRoIC1jCisrICAgIGlmIHRlc3QgIiRjb21w aWxlcl9jX28iID0gbm87IHRoZW4KKysgICAgICBvdXRwdXRfb2JqPWAkZWNobyAiWCRzcmNmaWxl IiB8ICRYc2VkIC1lICdzJV4uKi8lJScgLWUgJ3MlXC5bXi5dKiQlJSdgLiR7b2JqZXh0fQorKyAg ICAgIGxvY2tmaWxlPSIkb3V0cHV0X29iai5sb2NrIgorKyAgICAgIHJlbW92ZWxpc3Q9IiRyZW1v dmVsaXN0ICRvdXRwdXRfb2JqICRsb2NrZmlsZSIKKysgICAgICB0cmFwICIkcnVuICRybSAkcmVt b3ZlbGlzdDsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKKysgICAgZWxzZQorKyAgICAgIG91 dHB1dF9vYmo9CisrICAgICAgbmVlZF9sb2Nrcz1ubworKyAgICAgIGxvY2tmaWxlPQorKyAgICBm aQorKworKyAgICAjIExvY2sgdGhpcyBjcml0aWNhbCBzZWN0aW9uIGlmIGl0IGlzIG5lZWRlZAor KyAgICAjIFdlIHVzZSB0aGlzIHNjcmlwdCBmaWxlIHRvIG1ha2UgdGhlIGxpbmssIGl0IGF2b2lk cyBjcmVhdGluZyBhIG5ldyBmaWxlCisrICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHllczsg dGhlbgorKyAgICAgIHVudGlsICRydW4gbG4gIiRwcm9ncGF0aCIgIiRsb2NrZmlsZSIgMj4vZGV2 L251bGw7IGRvCisrCSRzaG93ICJXYWl0aW5nIGZvciAkbG9ja2ZpbGUgdG8gYmUgcmVtb3ZlZCIK KysJc2xlZXAgMgorKyAgICAgIGRvbmUKKysgICAgZWxpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3 YXJuOyB0aGVuCisrICAgICAgaWYgdGVzdCAtZiAiJGxvY2tmaWxlIjsgdGhlbgorKwkkZWNobyAi XAorKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGV4aXN0cyBhbmQgY29udGFpbnM6CisrYGNhdCAkbG9j a2ZpbGUgMj4vZGV2L251bGxgCisrCisrVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nl c3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQorK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5k IGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKKyt5b3VyIGNvbXBpbGVy IGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91CisrcmVw ZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3Ug aGFkIGJldHRlcgorK2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0 Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCisrY29tcGlsZXIuIgorKworKwkkcnVuICRybSAkcmVtb3Zl bGlzdAorKwlleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgICBmaQorKyAgICAgICRlY2hvICIkc3Jj ZmlsZSIgPiAiJGxvY2tmaWxlIgorKyAgICBmaQorKworKyAgICBpZiB0ZXN0IC1uICIkZml4X3Ny Y2ZpbGVfcGF0aCI7IHRoZW4KKysgICAgICBldmFsIHNyY2ZpbGU9XCIkZml4X3NyY2ZpbGVfcGF0 aFwiCisrICAgIGZpCisrICAgIHFzcmNmaWxlPWAkZWNobyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1l ICIkc2VkX3F1b3RlX3N1YnN0ImAKKysgICAgY2FzZSAkcXNyY2ZpbGUgaW4KKysgICAgICAqW1xb XH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKysgICAgICBxc3Jj ZmlsZT0iXCIkcXNyY2ZpbGVcIiIgOzsKKysgICAgZXNhYworKworKyAgICAkcnVuICRybSAiJGxp Ym9iaiIgIiR7bGlib2JqfVQiCisrCisrICAgICMgQ3JlYXRlIGEgbGlidG9vbCBvYmplY3QgZmls ZSAoYW5hbG9nb3VzIHRvIGEgIi5sYSIgZmlsZSksCisrICAgICMgYnV0IGRvbid0IGNyZWF0ZSBp dCBpZiB3ZSdyZSBkb2luZyBhIGRyeSBydW4uCisrICAgIHRlc3QgLXogIiRydW4iICYmIGNhdCA+ ICR7bGlib2JqfVQgPDxFT0YKKysjICRsaWJvYmogLSBhIGxpYnRvb2wgb2JqZWN0IGZpbGUKKysj IEdlbmVyYXRlZCBieSAkUFJPR1JBTSAtIEdOVSAkUEFDS0FHRSAkVkVSU0lPTiRUSU1FU1RBTVAK KysjCisrIyBQbGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZpbGUhCisrIyBJdCBpcyBuZWNlc3Nh cnkgZm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCisrCisrIyBOYW1lIG9mIHRoZSBQSUMgb2JqZWN0 LgorK0VPRgorKworKyAgICAjIE9ubHkgYnVpbGQgYSBQSUMgb2JqZWN0IGlmIHdlIGFyZSBidWls ZGluZyBsaWJ0b29sIGxpYnJhcmllcy4KKysgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGli cyIgPSB5ZXM7IHRoZW4KKysgICAgICAjIFdpdGhvdXQgdGhpcyBhc3NpZ25tZW50LCBiYXNlX2Nv bXBpbGUgZ2V0cyBlbXB0aWVkLgorKyAgICAgIGZic2RfaGlkZW91c19zaF9idWc9JGJhc2VfY29t cGlsZQorKworKyAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0gbm87IHRoZW4KKysJY29tbWFu ZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgorKyAgICAgIGVsc2UKKysJIyBE b24ndCBidWlsZCBQSUMgY29kZQorKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSIK KysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgISAtZCAiJHt4ZGlyfSRvYmpkaXIiOyB0aGVu CisrCSRzaG93ICIkbWtkaXIgJHt4ZGlyfSRvYmpkaXIiCisrCSRydW4gJG1rZGlyICR7eGRpcn0k b2JqZGlyCisrCWV4aXRfc3RhdHVzPSQ/CisrCWlmIHRlc3QgIiRleGl0X3N0YXR1cyIgLW5lIDAg JiYgdGVzdCAhIC1kICIke3hkaXJ9JG9iamRpciI7IHRoZW4KKysJICBleGl0ICRleGl0X3N0YXR1 cworKwlmaQorKyAgICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAteiAiJG91dHB1dF9vYmoiOyB0 aGVuCisrCSMgUGxhY2UgUElDIG9iamVjdHMgaW4gJG9iamRpcgorKwljb21tYW5kPSIkY29tbWFu ZCAtbyAkbG9iaiIKKysgICAgICBmaQorKworKyAgICAgICRydW4gJHJtICIkbG9iaiIgIiRvdXRw dXRfb2JqIgorKworKyAgICAgICRzaG93ICIkY29tbWFuZCIKKysgICAgICBpZiAkcnVuIGV2YWwg JGx0X2VudiAiJGNvbW1hbmQiOyB0aGVuIDoKKysgICAgICBlbHNlCisrCXRlc3QgLW4gIiRvdXRw dXRfb2JqIiAmJiAkcnVuICRybSAkcmVtb3ZlbGlzdAorKwlleGl0ICRFWElUX0ZBSUxVUkUKKysg ICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm4gJiYKKysJIHRl c3QgIlhgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAiICE9ICJYJHNyY2ZpbGUiOyB0aGVuCisr CSRlY2hvICJcCisrKioqIEVSUk9SLCAkbG9ja2ZpbGUgY29udGFpbnM6CisrYGNhdCAkbG9ja2Zp bGUgMj4vZGV2L251bGxgCisrCisrYnV0IGl0IHNob3VsZCBjb250YWluOgorKyRzcmNmaWxlCisr CisrVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0 aGUgc2FtZQorK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdv cmsgYXJvdW5kIGl0IGJlY2F1c2UKKyt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAt YycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91CisrcmVwZWF0IHRoaXMgY29tcGlsYXRpb24s IGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgorK2F2b2lkIHBh cmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVy CisrY29tcGlsZXIuIgorKworKwkkcnVuICRybSAkcmVtb3ZlbGlzdAorKwlleGl0ICRFWElUX0ZB SUxVUkUKKysgICAgICBmaQorKworKyAgICAgICMgSnVzdCBtb3ZlIHRoZSBvYmplY3QgaWYgbmVl ZGVkLCB0aGVuIGdvIG9uIHRvIGNvbXBpbGUgdGhlIG5leHQgb25lCisrICAgICAgaWYgdGVzdCAt biAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgkb3V0cHV0X29iaiIgIT0gIlgkbG9iaiI7IHRoZW4K KysJJHNob3cgIiRtdiAkb3V0cHV0X29iaiAkbG9iaiIKKysJaWYgJHJ1biAkbXYgJG91dHB1dF9v YmogJGxvYmo7IHRoZW4gOgorKwllbHNlCisrCSAgZXJyb3I9JD8KKysJICAkcnVuICRybSAkcmVt b3ZlbGlzdAorKwkgIGV4aXQgJGVycm9yCisrCWZpCisrICAgICAgZmkKKysKKysgICAgICAjIEFw cGVuZCB0aGUgbmFtZSBvZiB0aGUgUElDIG9iamVjdCB0byB0aGUgbGlidG9vbCBvYmplY3QgZmls ZS4KKysgICAgICB0ZXN0IC16ICIkcnVuIiAmJiBjYXQgPj4gJHtsaWJvYmp9VCA8PEVPRgorK3Bp Y19vYmplY3Q9JyRvYmpkaXIvJG9iam5hbWUnCisrCisrRU9GCisrCisrICAgICAgIyBBbGxvdyBl cnJvciBtZXNzYWdlcyBvbmx5IGZyb20gdGhlIGZpcnN0IGNvbXBpbGF0aW9uLgorKyAgICAgIGlm IHRlc3QgIiRzdXBwcmVzc19vcHQiID0geWVzOyB0aGVuCisrICAgICAgICBzdXBwcmVzc19vdXRw dXQ9JyA+L2Rldi9udWxsIDI+JjEnCisrICAgICAgZmkKKysgICAgZWxzZQorKyAgICAgICMgTm8g UElDIG9iamVjdCBzbyBpbmRpY2F0ZSBpdCBkb2Vzbid0IGV4aXN0IGluIHRoZSBsaWJ0b29sCisr ICAgICAgIyBvYmplY3QgZmlsZS4KKysgICAgICB0ZXN0IC16ICIkcnVuIiAmJiBjYXQgPj4gJHts aWJvYmp9VCA8PEVPRgorK3BpY19vYmplY3Q9bm9uZQorKworK0VPRgorKyAgICBmaQorKworKyAg ICAjIE9ubHkgYnVpbGQgYSBwb3NpdGlvbi1kZXBlbmRlbnQgb2JqZWN0IGlmIHdlIGJ1aWxkIG9s ZCBsaWJyYXJpZXMuCisrICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4K KysgICAgICBpZiB0ZXN0ICIkcGljX21vZGUiICE9IHllczsgdGhlbgorKwkjIERvbid0IGJ1aWxk IFBJQyBjb2RlCisrCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlIgorKyAgICAgIGVs c2UKKysJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgorKyAgICAg IGZpCisrICAgICAgaWYgdGVzdCAiJGNvbXBpbGVyX2NfbyIgPSB5ZXM7IHRoZW4KKysJY29tbWFu ZD0iJGNvbW1hbmQgLW8gJG9iaiIKKysgICAgICBmaQorKworKyAgICAgICMgU3VwcHJlc3MgY29t cGlsZXIgb3V0cHV0IGlmIHdlIGFscmVhZHkgZGlkIGEgUElDIGNvbXBpbGF0aW9uLgorKyAgICAg IGNvbW1hbmQ9IiRjb21tYW5kJHN1cHByZXNzX291dHB1dCIKKysgICAgICAkcnVuICRybSAiJG9i aiIgIiRvdXRwdXRfb2JqIgorKyAgICAgICRzaG93ICIkY29tbWFuZCIKKysgICAgICBpZiAkcnVu IGV2YWwgJGx0X2VudiAiJGNvbW1hbmQiOyB0aGVuIDoKKysgICAgICBlbHNlCisrCSRydW4gJHJt ICRyZW1vdmVsaXN0CisrCWV4aXQgJEVYSVRfRkFJTFVSRQorKyAgICAgIGZpCisrCisrICAgICAg aWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybiAmJgorKwkgdGVzdCAiWGBjYXQgJGxvY2tmaWxl IDI+L2Rldi9udWxsYCIgIT0gIlgkc3JjZmlsZSI7IHRoZW4KKysJJGVjaG8gIlwKKysqKiogRVJS T1IsICRsb2NrZmlsZSBjb250YWluczoKKytgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAKKysK KytidXQgaXQgc2hvdWxkIGNvbnRhaW46CisrJHNyY2ZpbGUKKysKKytUaGlzIGluZGljYXRlcyB0 aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCisrdGVtcG9yYXJ5 IG9iamVjdCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVz ZQorK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRo ZXIuICBJZiB5b3UKKytyZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5 IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCisrYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtl IC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKKytjb21waWxlci4iCisrCisr CSRydW4gJHJtICRyZW1vdmVsaXN0CisrCWV4aXQgJEVYSVRfRkFJTFVSRQorKyAgICAgIGZpCisr CisrICAgICAgIyBKdXN0IG1vdmUgdGhlIG9iamVjdCBpZiBuZWVkZWQKKysgICAgICBpZiB0ZXN0 IC1uICIkb3V0cHV0X29iaiIgJiYgdGVzdCAiWCRvdXRwdXRfb2JqIiAhPSAiWCRvYmoiOyB0aGVu CisrCSRzaG93ICIkbXYgJG91dHB1dF9vYmogJG9iaiIKKysJaWYgJHJ1biAkbXYgJG91dHB1dF9v YmogJG9iajsgdGhlbiA6CisrCWVsc2UKKysJICBlcnJvcj0kPworKwkgICRydW4gJHJtICRyZW1v dmVsaXN0CisrCSAgZXhpdCAkZXJyb3IKKysJZmkKKysgICAgICBmaQorKworKyAgICAgICMgQXBw ZW5kIHRoZSBuYW1lIG9mIHRoZSBub24tUElDIG9iamVjdCB0aGUgbGlidG9vbCBvYmplY3QgZmls ZS4KKysgICAgICAjIE9ubHkgYXBwZW5kIGlmIHRoZSBsaWJ0b29sIG9iamVjdCBmaWxlIGV4aXN0 cy4KKysgICAgICB0ZXN0IC16ICIkcnVuIiAmJiBjYXQgPj4gJHtsaWJvYmp9VCA8PEVPRgorKyMg TmFtZSBvZiB0aGUgbm9uLVBJQyBvYmplY3QuCisrbm9uX3BpY19vYmplY3Q9JyRvYmpuYW1lJwor KworK0VPRgorKyAgICBlbHNlCisrICAgICAgIyBBcHBlbmQgdGhlIG5hbWUgb2YgdGhlIG5vbi1Q SUMgb2JqZWN0IHRoZSBsaWJ0b29sIG9iamVjdCBmaWxlLgorKyAgICAgICMgT25seSBhcHBlbmQg aWYgdGhlIGxpYnRvb2wgb2JqZWN0IGZpbGUgZXhpc3RzLgorKyAgICAgIHRlc3QgLXogIiRydW4i ICYmIGNhdCA+PiAke2xpYm9ian1UIDw8RU9GCisrIyBOYW1lIG9mIHRoZSBub24tUElDIG9iamVj dC4KKytub25fcGljX29iamVjdD1ub25lCisrCisrRU9GCisrICAgIGZpCisrCisrICAgICRydW4g JG12ICIke2xpYm9ian1UIiAiJHtsaWJvYmp9IgorKworKyAgICAjIFVubG9jayB0aGUgY3JpdGlj YWwgc2VjdGlvbiBpZiBpdCB3YXMgbG9ja2VkCisrICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiAh PSBubzsgdGhlbgorKyAgICAgICRydW4gJHJtICIkbG9ja2ZpbGUiCisrICAgIGZpCisrCisrICAg IGV4aXQgJEVYSVRfU1VDQ0VTUworKyAgICA7OworKworKyAgIyBsaWJ0b29sIGxpbmsgbW9kZQor KyAgbGluayB8IHJlbGluaykKKysgICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogbGluayIKKysgICAg Y2FzZSAkaG9zdCBpbgorKyAgICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiog fCAqLSotb3MyKikKKysgICAgICAjIEl0IGlzIGltcG9zc2libGUgdG8gbGluayBhIGRsbCB3aXRo b3V0IHRoaXMgc2V0dGluZywgYW5kCisrICAgICAgIyB3ZSBzaG91bGRuJ3QgZm9yY2UgdGhlIG1h a2VmaWxlIG1haW50YWluZXIgdG8gZmlndXJlIG91dAorKyAgICAgICMgd2hpY2ggc3lzdGVtIHdl IGFyZSBjb21waWxpbmcgZm9yIGluIG9yZGVyIHRvIHBhc3MgYW4gZXh0cmEKKysgICAgICAjIGZs YWcgZm9yIGV2ZXJ5IGxpYnRvb2wgaW52b2NhdGlvbi4KKysgICAgICAjIGFsbG93X3VuZGVmaW5l ZD1ubworKworKyAgICAgICMgRklYTUU6IFVuZm9ydHVuYXRlbHksIHRoZXJlIGFyZSBwcm9ibGVt cyB3aXRoIHRoZSBhYm92ZSB3aGVuIHRyeWluZworKyAgICAgICMgdG8gbWFrZSBhIGRsbCB3aGlj aCBoYXMgdW5kZWZpbmVkIHN5bWJvbHMsIGluIHdoaWNoIGNhc2Ugbm90CisrICAgICAgIyBldmVu IGEgc3RhdGljIGxpYnJhcnkgaXMgYnVpbHQuICBGb3Igbm93LCB3ZSBuZWVkIHRvIHNwZWNpZnkK KysgICAgICAjIC1uby11bmRlZmluZWQgb24gdGhlIGxpYnRvb2wgbGluayBsaW5lIHdoZW4gd2Ug Y2FuIGJlIGNlcnRhaW4KKysgICAgICAjIHRoYXQgYWxsIHN5bWJvbHMgYXJlIHNhdGlzZmllZCwg b3RoZXJ3aXNlIHdlIGdldCBhIHN0YXRpYyBsaWJyYXJ5LgorKyAgICAgIGFsbG93X3VuZGVmaW5l ZD15ZXMKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIGFsbG93X3VuZGVmaW5lZD15ZXMKKysg ICAgICA7OworKyAgICBlc2FjCisrICAgIGxpYnRvb2xfYXJncz0iJG5vbm9wdCIKKysgICAgYmFz ZV9jb21waWxlPSIkbm9ub3B0ICRAIgorKyAgICBjb21waWxlX2NvbW1hbmQ9IiRub25vcHQiCisr ICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRub25vcHQiCisrCisrICAgIGNvbXBpbGVfcnBhdGg9Cisr ICAgIGZpbmFsaXplX3JwYXRoPQorKyAgICBjb21waWxlX3NobGlicGF0aD0KKysgICAgZmluYWxp emVfc2hsaWJwYXRoPQorKyAgICBjb252ZW5pZW5jZT0KKysgICAgb2xkX2NvbnZlbmllbmNlPQor KyAgICBkZXBsaWJzPQorKyAgICBvbGRfZGVwbGlicz0KKysgICAgY29tcGlsZXJfZmxhZ3M9Cisr ICAgIGxpbmtlcl9mbGFncz0KKysgICAgZGxsc2VhcmNocGF0aD0KKysgICAgbGliX3NlYXJjaF9w YXRoPWBwd2RgCisrICAgIGluc3RfcHJlZml4X2Rpcj0KKysKKysgICAgYXZvaWRfdmVyc2lvbj1u bworKyAgICBkbGZpbGVzPQorKyAgICBkbHByZWZpbGVzPQorKyAgICBkbHNlbGY9bm8KKysgICAg ZXhwb3J0X2R5bmFtaWM9bm8KKysgICAgZXhwb3J0X3N5bWJvbHM9CisrICAgIGV4cG9ydF9zeW1i b2xzX3JlZ2V4PQorKyAgICBnZW5lcmF0ZWQ9CisrICAgIGxpYm9ianM9CisrICAgIGx0bGlicz0K KysgICAgbW9kdWxlPW5vCisrICAgIG5vX2luc3RhbGw9bm8KKysgICAgb2Jqcz0KKysgICAgbm9u X3BpY19vYmplY3RzPQorKyAgICBub3RpbnN0X3BhdGg9ICMgcGF0aHMgdGhhdCBjb250YWluIG5v dC1pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKKysgICAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9 CisrICAgIHByZWZlcl9zdGF0aWNfbGlicz1ubworKyAgICBwcmVsb2FkPW5vCisrICAgIHByZXY9 CisrICAgIHByZXZhcmc9CisrICAgIHJlbGVhc2U9CisrICAgIHJwYXRoPQorKyAgICB4cnBhdGg9 CisrICAgIHBlcm1fcnBhdGg9CisrICAgIHRlbXBfcnBhdGg9CisrICAgIHRocmVhZF9zYWZlPW5v CisrICAgIHZpbmZvPQorKyAgICB2aW5mb19udW1iZXI9bm8KKysgICAgc2luZ2xlX21vZHVsZT0i JHt3bH0tc2luZ2xlX21vZHVsZSIKKysKKysgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGls ZQorKworKyAgICAjIFdlIG5lZWQgdG8ga25vdyAtc3RhdGljLCB0byBnZXQgdGhlIHJpZ2h0IG91 dHB1dCBmaWxlbmFtZXMuCisrICAgIGZvciBhcmcKKysgICAgZG8KKysgICAgICBjYXNlICRhcmcg aW4KKysgICAgICAtYWxsLXN0YXRpYyB8IC1zdGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGlicykK KysJY2FzZSAkYXJnIGluCisrCS1hbGwtc3RhdGljKQorKwkgIGlmIHRlc3QgIiRidWlsZF9saWJ0 b29sX2xpYnMiID0geWVzICYmIHRlc3QgLXogIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorKwkg ICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogY29tcGxldGUgc3RhdGljIGxpbmtpbmcgaXMg aW1wb3NzaWJsZSBpbiB0aGlzIGNvbmZpZ3VyYXRpb24iIDE+JjIKKysJICBmaQorKwkgIGlmIHRl c3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgorKwkgICAgZGxvcGVuX3NlbGY9JGRsb3Bl bl9zZWxmX3N0YXRpYworKwkgIGZpCisrCSAgcHJlZmVyX3N0YXRpY19saWJzPXllcworKwkgIDs7 CisrCS1zdGF0aWMpCisrCSAgaWYgdGVzdCAteiAiJHBpY19mbGFnIiAmJiB0ZXN0IC1uICIkbGlu a19zdGF0aWNfZmxhZyI7IHRoZW4KKysJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0 aWMKKysJICBmaQorKwkgIHByZWZlcl9zdGF0aWNfbGlicz1idWlsdAorKwkgIDs7CisrCS1zdGF0 aWMtbGlidG9vbC1saWJzKQorKwkgIGlmIHRlc3QgLXogIiRwaWNfZmxhZyIgJiYgdGVzdCAtbiAi JGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisrCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZf c3RhdGljCisrCSAgZmkKKysJICBwcmVmZXJfc3RhdGljX2xpYnM9eWVzCisrCSAgOzsKKysJZXNh YworKwlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJYnVpbGRfb2xkX2xpYnM9eWVzCisrCWJyZWFr CisrCTs7CisrICAgICAgZXNhYworKyAgICBkb25lCisrCisrICAgICMgU2VlIGlmIG91ciBzaGFy ZWQgYXJjaGl2ZXMgZGVwZW5kIG9uIHN0YXRpYyBhcmNoaXZlcy4KKysgICAgdGVzdCAtbiAiJG9s ZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIGJ1aWxkX29sZF9saWJzPXllcworKworKyAgICAj IEdvIHRocm91Z2ggdGhlIGFyZ3VtZW50cywgdHJhbnNmb3JtaW5nIHRoZW0gb24gdGhlIHdheS4K KysgICAgd2hpbGUgdGVzdCAiJCMiIC1ndCAwOyBkbworKyAgICAgIGFyZz0iJDEiCisrICAgICAg c2hpZnQKKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAqW1xbXH5cI1xeXCZcKlwoXClce1x9 XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKysJcWFyZz1cImAkZWNobyAiWCRhcmciIHwgJFhz ZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYFwiICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1 b3RpbmcgdGVzdAorKwk7OworKyAgICAgICopIHFhcmc9JGFyZyA7OworKyAgICAgIGVzYWMKKysg ICAgICBsaWJ0b29sX2FyZ3M9IiRsaWJ0b29sX2FyZ3MgJHFhcmciCisrCisrICAgICAgIyBJZiB0 aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRzIGFuIGFyZ3VtZW50LCBhc3NpZ24gaXQuCisrICAgICAg aWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCisrCWNhc2UgJHByZXYgaW4KKysJb3V0cHV0KQorKwkg IGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCBAT1VUUFVUQCIKKysJICBmaW5hbGl6 ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCBAT1VUUFVUQCIKKysJICA7OworKwllc2FjCisr CisrCWNhc2UgJHByZXYgaW4KKysJZGxmaWxlc3xkbHByZWZpbGVzKQorKwkgIGlmIHRlc3QgIiRw cmVsb2FkIiA9IG5vOyB0aGVuCisrCSAgICAjIEFkZCB0aGUgc3ltYm9sIG9iamVjdCBpbnRvIHRo ZSBsaW5raW5nIGNvbW1hbmRzLgorKwkgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21t YW5kIEBTWU1GSUxFQCIKKysJICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5k IEBTWU1GSUxFQCIKKysJICAgIHByZWxvYWQ9eWVzCisrCSAgZmkKKysJICBjYXNlICRhcmcgaW4K KysJICAqLmxhIHwgKi5sbykgOzsgICMgV2UgaGFuZGxlIHRoZXNlIGNhc2VzIGJlbG93LgorKwkg IGZvcmNlKQorKwkgICAgaWYgdGVzdCAiJGRsc2VsZiIgPSBubzsgdGhlbgorKwkgICAgICBkbHNl bGY9bmVlZGxlc3MKKysJICAgICAgZXhwb3J0X2R5bmFtaWM9eWVzCisrCSAgICBmaQorKwkgICAg cHJldj0KKysJICAgIGNvbnRpbnVlCisrCSAgICA7OworKwkgIHNlbGYpCisrCSAgICBpZiB0ZXN0 ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCisrCSAgICAgIGRsc2VsZj15ZXMKKysJICAgIGVs aWYgdGVzdCAiJHByZXYiID0gZGxmaWxlcyAmJiB0ZXN0ICIkZGxvcGVuX3NlbGYiICE9IHllczsg dGhlbgorKwkgICAgICBkbHNlbGY9eWVzCisrCSAgICBlbHNlCisrCSAgICAgIGRsc2VsZj1uZWVk bGVzcworKwkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKKysJICAgIGZpCisrCSAgICBwcmV2PQor KwkgICAgY29udGludWUKKysJICAgIDs7CisrCSAgKikKKysJICAgIGlmIHRlc3QgIiRwcmV2IiA9 IGRsZmlsZXM7IHRoZW4KKysJICAgICAgZGxmaWxlcz0iJGRsZmlsZXMgJGFyZyIKKysJICAgIGVs c2UKKysJICAgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGFyZyIKKysJICAgIGZpCisrCSAg ICBwcmV2PQorKwkgICAgY29udGludWUKKysJICAgIDs7CisrCSAgZXNhYworKwkgIDs7CisrCWV4 cHN5bXMpCisrCSAgZXhwb3J0X3N5bWJvbHM9IiRhcmciCisrCSAgaWYgdGVzdCAhIC1mICIkYXJn IjsgdGhlbgorKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogc3ltYm9sIGZpbGUgXGAkYXJnJyBkb2Vz IG5vdCBleGlzdCIKKysJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKwkgIGZpCisrCSAgcHJldj0K KysJICBjb250aW51ZQorKwkgIDs7CisrCWV4cHN5bXNfcmVnZXgpCisrCSAgZXhwb3J0X3N5bWJv bHNfcmVnZXg9IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCWluc3Rf cHJlZml4KQorKwkgIGluc3RfcHJlZml4X2Rpcj0iJGFyZyIKKysJICBwcmV2PQorKwkgIGNvbnRp bnVlCisrCSAgOzsKKysJcHJlY2lvdXNfcmVnZXgpCisrCSAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9 IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCXJlbGVhc2UpCisrCSAg cmVsZWFzZT0iLSRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCW9iamVj dGxpc3QpCisrCSAgaWYgdGVzdCAtZiAiJGFyZyI7IHRoZW4KKysJICAgIHNhdmVfYXJnPSRhcmcK KysJICAgIG1vcmVhcmdzPQorKwkgICAgZm9yIGZpbCBpbiBgY2F0ICRzYXZlX2FyZ2AKKysJICAg IGRvCisrIwkgICAgICBtb3JlYXJncz0iJG1vcmVhcmdzICRmaWwiCisrCSAgICAgIGFyZz0kZmls CisrCSAgICAgICMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0LgorKworKwkgICAgICAjIENo ZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBvYmplY3QuCisrCSAgICAg IGlmICgke1NFRH0gLWUgJzJxJyAkYXJnIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tB R0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJCXBpY19vYmplY3Q9CisrCQlub25fcGljX29i amVjdD0KKysKKysJCSMgUmVhZCB0aGUgLmxvIGZpbGUKKysJCSMgSWYgdGhlcmUgaXMgbm8gZGly ZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBhZGQgb25lLgorKwkJY2FzZSAkYXJnIGluCisrCQkqLyog fCAqXFwqKSAuICRhcmcgOzsKKysJCSopIC4gLi8kYXJnIDs7CisrCQllc2FjCisrCisrCQlpZiB0 ZXN0IC16ICIkcGljX29iamVjdCIgfHwgXAorKwkJICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0 IiB8fAorKwkJICAgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSAmJiBcCisrCQkgICB0ZXN0ICIk bm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgorKwkJICAkZWNobyAiJG1vZGVuYW1lOiBjYW5u b3QgZmluZCBuYW1lIG9mIG9iamVjdCBmb3IgXGAkYXJnJyIgMT4mMgorKwkJICBleGl0ICRFWElU X0ZBSUxVUkUKKysJCWZpCisrCisrCQkjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFy Z3VtZW50LgorKwkJeGRpcj1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdg CisrCQlpZiB0ZXN0ICJYJHhkaXIiID0gIlgkYXJnIjsgdGhlbgorKwkJICB4ZGlyPQorKwkJZWxz ZQorKwkJICB4ZGlyPSIkeGRpci8iCisrCQlmaQorKworKwkJaWYgdGVzdCAiJHBpY19vYmplY3Qi ICE9IG5vbmU7IHRoZW4KKysJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVj dCBpcyBmb3VuZCBpbi4KKysJCSAgcGljX29iamVjdD0iJHhkaXIkcGljX29iamVjdCIKKysKKysJ CSAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorKwkJICAgIGlmIHRlc3QgIiRidWls ZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgPSB5ZXM7IHRo ZW4KKysJCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRwaWNfb2JqZWN0IgorKwkJICAgICAgcHJl dj0KKysJCSAgICAgIGNvbnRpbnVlCisrCQkgICAgZWxzZQorKwkJICAgICAgIyBJZiBsaWJ0b29s IG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9hZC4KKysJCSAg ICAgIHByZXY9ZGxwcmVmaWxlcworKwkJICAgIGZpCisrCQkgIGZpCisrCisrCQkgICMgQ0hFQ0sg TUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1hCisrCQkgIGlmIHRlc3QgIiRwcmV2 IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJCSAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmpl Y3QuCisrCQkgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJHBpY19vYmplY3QiCisrCQkgICAg cHJldj0KKysJCSAgZmkKKysKKysJCSAgIyBBIFBJQyBvYmplY3QuCisrCQkgIGxpYm9ianM9IiRs aWJvYmpzICRwaWNfb2JqZWN0IgorKwkJICBhcmc9IiRwaWNfb2JqZWN0IgorKwkJZmkKKysKKysJ CSMgTm9uLVBJQyBvYmplY3QuCisrCQlpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7 IHRoZW4KKysJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3Vu ZCBpbi4KKysJCSAgbm9uX3BpY19vYmplY3Q9IiR4ZGlyJG5vbl9waWNfb2JqZWN0IgorKworKwkJ ICAjIEEgc3RhbmRhcmQgbm9uLVBJQyBvYmplY3QKKysJCSAgbm9uX3BpY19vYmplY3RzPSIkbm9u X3BpY19vYmplY3RzICRub25fcGljX29iamVjdCIKKysJCSAgaWYgdGVzdCAteiAiJHBpY19vYmpl Y3QiIHx8IHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgOyB0aGVuCisrCQkgICAgYXJnPSIkbm9u X3BpY19vYmplY3QiCisrCQkgIGZpCisrCQllbHNlCisrCQkgICMgSWYgdGhlIFBJQyBvYmplY3Qg ZXhpc3RzLCB1c2UgaXQgaW5zdGVhZC4KKysJCSAgIyAkeGRpciB3YXMgcHJlcGVuZGVkIHRvICRw aWNfb2JqZWN0IGFib3ZlLgorKwkJICBub25fcGljX29iamVjdD0iJHBpY19vYmplY3QiCisrCQkg IG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9uX3BpY19vYmplY3QiCisrCQlm aQorKwkgICAgICBlbHNlCisrCQkjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1 bi4KKysJCWlmIHRlc3QgLXogIiRydW4iOyB0aGVuCisrCQkgICRlY2hvICIkbW9kZW5hbWU6IFxg JGFyZycgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBvYmplY3QiIDE+JjIKKysJCSAgZXhpdCAkRVhJ VF9GQUlMVVJFCisrCQllbHNlCisrCQkgICMgRHJ5LXJ1biBjYXNlLgorKworKwkJICAjIEV4dHJh Y3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKwkJICB4ZGlyPWAkZWNobyAiWCRh cmciIHwgJFhzZWQgLWUgJ3MlL1teL10qJCUlJ2AKKysJCSAgaWYgdGVzdCAiWCR4ZGlyIiA9ICJY JGFyZyI7IHRoZW4KKysJCSAgICB4ZGlyPQorKwkJICBlbHNlCisrCQkgICAgeGRpcj0iJHhkaXIv IgorKwkJICBmaQorKworKwkJICBwaWNfb2JqZWN0PWAkZWNobyAiWCR7eGRpcn0ke29iamRpcn0v JHthcmd9IiB8ICRYc2VkIC1lICIkbG8ybyJgCisrCQkgIG5vbl9waWNfb2JqZWN0PWAkZWNobyAi WCR7eGRpcn0ke2FyZ30iIHwgJFhzZWQgLWUgIiRsbzJvImAKKysJCSAgbGlib2Jqcz0iJGxpYm9i anMgJHBpY19vYmplY3QiCisrCQkgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAk bm9uX3BpY19vYmplY3QiCisrCQlmaQorKwkgICAgICBmaQorKwkgICAgZG9uZQorKwkgIGVsc2UK KysJICAgICRlY2hvICIkbW9kZW5hbWU6IGxpbmsgaW5wdXQgZmlsZSBcYCRzYXZlX2FyZycgZG9l cyBub3QgZXhpc3QiCisrCSAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysJICBmaQorKwkgIGFyZz0k c2F2ZV9hcmcKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJcnBhdGggfCB4cnBh dGgpCisrCSAgIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisrCSAgY2FzZSAkYXJnIGluCisr CSAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OworKwkgICopCisrCSAgICAkZWNobyAiJG1v ZGVuYW1lOiBvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dlZCIgMT4mMgorKwkgICAg ZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgICA7OworKwkgIGVzYWMKKysJICBpZiB0ZXN0ICIkcHJl diIgPSBycGF0aDsgdGhlbgorKwkgICAgY2FzZSAiJHJwYXRoICIgaW4KKysJICAgICoiICRhcmcg IiopIDs7CisrCSAgICAqKSBycGF0aD0iJHJwYXRoICRhcmciIDs7CisrCSAgICBlc2FjCisrCSAg ZWxzZQorKwkgICAgY2FzZSAiJHhycGF0aCAiIGluCisrCSAgICAqIiAkYXJnICIqKSA7OworKwkg ICAgKikgeHJwYXRoPSIkeHJwYXRoICRhcmciIDs7CisrCSAgICBlc2FjCisrCSAgZmkKKysJICBw cmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJeGNvbXBpbGVyKQorKwkgIGNvbXBpbGVyX2Zs YWdzPSIkY29tcGlsZXJfZmxhZ3MgJHFhcmciCisrCSAgcHJldj0KKysJICBjb21waWxlX2NvbW1h bmQ9IiRjb21waWxlX2NvbW1hbmQgJHFhcmciCisrCSAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFs aXplX2NvbW1hbmQgJHFhcmciCisrCSAgY29udGludWUKKysJICA7OworKwl4bGlua2VyKQorKwkg IGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKKysJICBjb21waWxlcl9mbGFncz0i JGNvbXBpbGVyX2ZsYWdzICR3bCRxYXJnIgorKwkgIHByZXY9CisrCSAgY29tcGlsZV9jb21tYW5k PSIkY29tcGlsZV9jb21tYW5kICR3bCRxYXJnIgorKwkgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5h bGl6ZV9jb21tYW5kICR3bCRxYXJnIgorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJeGNjbGlua2Vy KQorKwkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKKysJICBjb21waWxlcl9m bGFncz0iJGNvbXBpbGVyX2ZsYWdzICRxYXJnIgorKwkgIHByZXY9CisrCSAgY29tcGlsZV9jb21t YW5kPSIkY29tcGlsZV9jb21tYW5kICRxYXJnIgorKwkgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5h bGl6ZV9jb21tYW5kICRxYXJnIgorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJc2hyZXh0KQorKyAg CSAgc2hyZXh0X2NtZHM9IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7Cisr CWRhcndpbl9mcmFtZXdvcmt8ZGFyd2luX2ZyYW1ld29ya19za2lwKQorKwkgIHRlc3QgIiRwcmV2 IiA9ICJkYXJ3aW5fZnJhbWV3b3JrIiAmJiBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdz ICRhcmciCisrCSAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICRhcmciCisrCSAg ZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGFyZyIKKysJICBwcmV2PQorKwkg IGNvbnRpbnVlCisrCSAgOzsKKysJKikKKysJICBldmFsICIkcHJldj1cIlwkYXJnXCIiCisrCSAg cHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCWVzYWMKKysgICAgICBmaSAjIHRlc3QgLW4g IiRwcmV2IgorKworKyAgICAgIHByZXZhcmc9IiRhcmciCisrCisrICAgICAgY2FzZSAkYXJnIGlu CisrICAgICAgLWFsbC1zdGF0aWMpCisrCWlmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsg dGhlbgorKwkgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkbGlua19zdGF0aWNf ZmxhZyIKKysJICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkbGlua19zdGF0 aWNfZmxhZyIKKysJZmkKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtYWxsb3ctdW5kZWZp bmVkKQorKwkjIEZJWE1FOiByZW1vdmUgdGhpcyBmbGFnIHNvbWV0aW1lIGluIHRoZSBmdXR1cmUu CisrCSRlY2hvICIkbW9kZW5hbWU6IFxgLWFsbG93LXVuZGVmaW5lZCcgaXMgZGVwcmVjYXRlZCBi ZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IiAxPiYyCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAg ICAgLWF2b2lkLXZlcnNpb24pCisrCWF2b2lkX3ZlcnNpb249eWVzCisrCWNvbnRpbnVlCisrCTs7 CisrCisrICAgICAgLWRsb3BlbikKKysJcHJldj1kbGZpbGVzCisrCWNvbnRpbnVlCisrCTs7Cisr CisrICAgICAgLWRscHJlb3BlbikKKysJcHJldj1kbHByZWZpbGVzCisrCWNvbnRpbnVlCisrCTs7 CisrCisrICAgICAgLWV4cG9ydC1keW5hbWljKQorKwlleHBvcnRfZHluYW1pYz15ZXMKKysJY29u dGludWUKKysJOzsKKysKKysgICAgICAtZXhwb3J0LXN5bWJvbHMgfCAtZXhwb3J0LXN5bWJvbHMt cmVnZXgpCisrCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgfHwgdGVzdCAtbiAiJGV4cG9y dF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgorKwkgICRlY2hvICIkbW9kZW5hbWU6IG1vcmUgdGhhbiBv bmUgLWV4cG9ydGVkLXN5bWJvbHMgYXJndW1lbnQgaXMgbm90IGFsbG93ZWQiCisrCSAgZXhpdCAk RVhJVF9GQUlMVVJFCisrCWZpCisrCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWV4cG9ydC1zeW1ib2xz IjsgdGhlbgorKwkgIHByZXY9ZXhwc3ltcworKwllbHNlCisrCSAgcHJldj1leHBzeW1zX3JlZ2V4 CisrCWZpCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWZyYW1ld29ya3wtYXJjaHwtaXN5 c3Jvb3QpCisrCWNhc2UgIiAkQ0MgIiBpbgorKwkgICoiICR7YXJnfSAkezF9ICIqIHwgKiIgJHth cmd9CSR7MX0gIiopIAorKwkJcHJldj1kYXJ3aW5fZnJhbWV3b3JrX3NraXAgOzsKKysJICAqKSBj b21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisrCSAgICAgcHJldj1kYXJ3aW5f ZnJhbWV3b3JrIDs7CisrCWVzYWMKKysJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5k ICRhcmciCisrCWZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRhcmciCisrCWNv bnRpbnVlCisrCTs7CisrCisrICAgICAgLWluc3QtcHJlZml4LWRpcikKKysJcHJldj1pbnN0X3By ZWZpeAorKwljb250aW51ZQorKwk7OworKworKyAgICAgICMgVGhlIG5hdGl2ZSBJUklYIGxpbmtl ciB1bmRlcnN0YW5kcyAtTEFORzoqLCAtTElTVDoqIGFuZCAtTE5POioKKysgICAgICAjIHNvLCBp ZiB3ZSBzZWUgdGhlc2UgZmxhZ3MgYmUgY2FyZWZ1bCBub3QgdG8gdHJlYXQgdGhlbSBsaWtlIC1M CisrICAgICAgLUxbQS1aXVtBLVpdKjoqKQorKwljYXNlICR3aXRoX2djYy8kaG9zdCBpbgorKwlu by8qLSotaXJpeCogfCAvKi0qLWlyaXgqKQorKwkgIGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVf Y29tbWFuZCAkYXJnIgorKwkgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRh cmciCisrCSAgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1MKikKKysJ ZGlyPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgJ3MvXi1MLy8nYAorKwkjIFdlIG5lZWQgYW4g YWJzb2x1dGUgcGF0aC4KKysJY2FzZSAkZGlyIGluCisrCVtcXC9dKiB8IFtBLVphLXpdOltcXC9d KikgOzsKKysJKikKKysJICBhYnNkaXI9YGNkICIkZGlyIiAmJiBwd2RgCisrCSAgaWYgdGVzdCAt eiAiJGFic2RpciI7IHRoZW4KKysJICAgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5vdCBkZXRlcm1p bmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIgMT4mMgorKwkgICAgYWJzZGly PSIkZGlyIgorKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRkaXIiCisrCSAgZmkK KysJICBkaXI9IiRhYnNkaXIiCisrCSAgOzsKKysJZXNhYworKwljYXNlICIkZGVwbGlicyAiIGlu CisrCSoiIC1MJGRpciAiKikgOzsKKysJKikKKysJICBkZXBsaWJzPSIkZGVwbGlicyAtTCRkaXIi CisrCSAgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiCisrCSAgOzsKKysJ ZXNhYworKwljYXNlICRob3N0IGluCisrCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1w dzMyKiB8ICotKi1vczIqKQorKwkgIHRlc3RiaW5kaXI9YCRlY2hvICJYJGRpciIgfCAkWHNlZCAt ZSAncyovbGliJCovYmluKidgCisrCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCisrCSAgKiI6 JGRpcjoiKikgOzsKKysJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokZGlyIjs7 CisrCSAgZXNhYworKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgorKwkgICoiOiR0ZXN0Ymlu ZGlyOiIqKSA7OworKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiR0ZXN0Ymlu ZGlyIjs7CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysJY29udGludWUKKysJOzsKKysKKysg ICAgICAtbCopCisrCWlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiB8fCB0ZXN0ICJYJGFyZyIgPSAi WC1sbSI7IHRoZW4KKysJICBjYXNlICRob3N0IGluCisrCSAgKi0qLWN5Z3dpbiogfCAqLSotbWlu Z3cqIHwgKi0qLXB3MzIqIHwgKi0qLWJlb3MqKQorKwkgICAgIyBUaGVzZSBzeXN0ZW1zIGRvbid0 IGFjdHVhbGx5IGhhdmUgYSBDIG9yIG1hdGggbGlicmFyeSAoYXMgc3VjaCkKKysJICAgIGNvbnRp bnVlCisrCSAgICA7OworKwkgICotKi1vczIqKQorKwkgICAgIyBUaGVzZSBzeXN0ZW1zIGRvbid0 IGFjdHVhbGx5IGhhdmUgYSBDIGxpYnJhcnkgKGFzIHN1Y2gpCisrCSAgICB0ZXN0ICJYJGFyZyIg PSAiWC1sYyIgJiYgY29udGludWUKKysJICAgIDs7CisrCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZy ZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCisrCSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVl IHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4KKysJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAm JiBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAx Ml0pCisrCSAgICAjIFJoYXBzb2R5IEMgYW5kIG1hdGggbGlicmFyaWVzIGFyZSBpbiB0aGUgU3lz dGVtIGZyYW1ld29yaworKwkgICAgZGVwbGlicz0iJGRlcGxpYnMgLWZyYW1ld29yayBTeXN0ZW0i CisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotc2NvMy4ydjUqIHwgKi0qLXNjbzV2 NiopCisrCSAgICAjIENhdXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5cGUKKysJICAgIHRlc3QgIlgk YXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotc3lzdjQuMnV3Miog fCAqLSotc3lzdjUqIHwgKi0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCisrCSAgICAjIENv bXBpbGVyIGluc2VydHMgbGliYyBpbiB0aGUgY29ycmVjdCBwbGFjZSBmb3IgdGhyZWFkcyB0byB3 b3JrCisrCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKKysJICAgIDs7Cisr CSAgZXNhYworKwllbGlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjX3IiOyB0aGVuCisrCSBjYXNlICRo b3N0IGluCisrCSAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikK KysJICAgIyBEbyBub3QgaW5jbHVkZSBsaWJjX3IgZGlyZWN0bHksIHVzZSAtcHRocmVhZCBmbGFn LgorKwkgICBjb250aW51ZQorKwkgICA7OworKwkgZXNhYworKwlmaQorKwlkZXBsaWJzPSIkZGVw bGlicyAkYXJnIgorKwljb250aW51ZQorKwk7OworKworKyAgICAgICMgVHJ1NjQgVU5JWCB1c2Vz IC1tb2RlbCBbYXJnXSB0byBkZXRlcm1pbmUgdGhlIGxheW91dCBvZiBDKysKKysgICAgICAjIGNs YXNzZXMsIG5hbWUgbWFuZ2xpbmcsIGFuZCBleGNlcHRpb24gaGFuZGxpbmcuCisrICAgICAgLW1v ZGVsKQorKwljb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIKKysJY29tcGls ZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgorKwlmaW5hbGl6ZV9jb21tYW5kPSIkZmlu YWxpemVfY29tbWFuZCAkYXJnIgorKwlwcmV2PXhjb21waWxlcgorKwljb250aW51ZQorKwk7Owor KworKyAgICAgLW10fC1tdGhyZWFkc3wta3RocmVhZHwtS3RocmVhZHwtcHRocmVhZHwtcHRocmVh ZHN8LS10aHJlYWQtc2FmZXwtdGhyZWFkcykKKysJY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9m bGFncyAkYXJnIgorKwljb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIKKysJ ZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGFyZyIKKysJY29udGludWUKKysJ OzsKKysKKysgICAgICAtbXVsdGlfbW9kdWxlKQorKwlzaW5nbGVfbW9kdWxlPSIke3dsfS1tdWx0 aV9tb2R1bGUiCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLW1vZHVsZSkKKysJbW9kdWxl PXllcworKwljb250aW51ZQorKwk7OworKworKyAgICAgICMgLTY0LCAtbWlwc1swLTldIGVuYWJs ZSA2NC1iaXQgbW9kZSBvbiB0aGUgU0dJIGNvbXBpbGVyCisrICAgICAgIyAtclswLTldWzAtOV0q IHNwZWNpZmllcyB0aGUgcHJvY2Vzc29yIG9uIHRoZSBTR0kgY29tcGlsZXIKKysgICAgICAjIC14 YXJjaD0qLCAteHRhcmdldD0qIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgU3VuIGNvbXBpbGVy CisrICAgICAgIyArREEqLCArREQqIGVuYWJsZSA2NC1iaXQgbW9kZSBvbiB0aGUgSFAgY29tcGls ZXIKKysgICAgICAjIC1xKiBwYXNzIHRocm91Z2ggY29tcGlsZXIgYXJncyBmb3IgdGhlIElCTSBj b21waWxlcgorKyAgICAgICMgLW0qIHBhc3MgdGhyb3VnaCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMg Y29tcGlsZXIgYXJncyBmb3IgR0NDCisrICAgICAgIyAtbSosIC10WzQ1XSosIC10eHNjYWxlKiBw YXNzIHRocm91Z2ggYXJjaGl0ZWN0dXJlLXNwZWNpZmljCisrICAgICAgIyBjb21waWxlciBhcmdz IGZvciBHQ0MKKysgICAgICAjIC1wLCAtcGcsIC0tY292ZXJhZ2UsIC1mcHJvZmlsZS0qIHBhc3Mg dGhyb3VnaCBwcm9maWxpbmcgZmxhZyBmb3IgR0NDCisrICAgICAgIyAtRi9wYXRoIGdpdmVzIHBh dGggdG8gdW5pbnN0YWxsZWQgZnJhbWV3b3JrcywgZ2NjIG9uIGRhcndpbgorKyAgICAgICMgQGZp bGUgR0NDIHJlc3BvbnNlIGZpbGVzCisrICAgICAgLTY0fC1taXBzWzAtOV18LXJbMC05XVswLTld KnwteGFyY2g9KnwteHRhcmdldD0qfCtEQSp8K0REKnwtcSp8LW0qfCBcCisrICAgICAgLXRbNDVd KnwtdHhzY2FsZSp8LXB8LXBnfC0tY292ZXJhZ2V8LWZwcm9maWxlLSp8LUYqfEAqKQorKworKwkj IFVua25vd24gYXJndW1lbnRzIGluIGJvdGggZmluYWxpemVfY29tbWFuZCBhbmQgY29tcGlsZV9j b21tYW5kIG5lZWQKKysJIyB0byBiZSBhZXN0aGV0aWNhbGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkg YXJlIGV2YWxlZCBsYXRlci4KKysJYXJnPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgIiRzZWRf cXVvdGVfc3Vic3QiYAorKwljYXNlICRhcmcgaW4KKysJKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8 XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisrCSAgYXJnPSJcIiRhcmdcIiIKKysJICA7OworKwll c2FjCisrICAgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIKKysg ICAgICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRhcmciCisrICAgICAg ICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisrICAgICAgICBjb250aW51 ZQorKyAgICAgICAgOzsKKysKKysgICAgICAtc2hyZXh0KQorKwlwcmV2PXNocmV4dAorKwljb250 aW51ZQorKwk7OworKworKyAgICAgIC1uby1mYXN0LWluc3RhbGwpCisrCWZhc3RfaW5zdGFsbD1u bworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1uby1pbnN0YWxsKQorKwljYXNlICRob3N0 IGluCisrCSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwg Ki0qLWRhcndpbiopCisrCSAgIyBUaGUgUEFUSCBoYWNrZXJ5IGluIHdyYXBwZXIgc2NyaXB0cyBp cyByZXF1aXJlZCBvbiBXaW5kb3dzCisrCSAgIyBhbmQgRGFyd2luIGluIG9yZGVyIGZvciB0aGUg bG9hZGVyIHRvIGZpbmQgYW55IGRsbHMgaXQgbmVlZHMuCisrCSAgJGVjaG8gIiRtb2RlbmFtZTog d2FybmluZzogXGAtbm8taW5zdGFsbCcgaXMgaWdub3JlZCBmb3IgJGhvc3QiIDE+JjIKKysJICAk ZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBhc3N1bWluZyBcYC1uby1mYXN0LWluc3RhbGwnIGlu c3RlYWQiIDE+JjIKKysJICBmYXN0X2luc3RhbGw9bm8KKysJICA7OworKwkqKSBub19pbnN0YWxs PXllcyA7OworKwllc2FjCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLW5vLXVuZGVmaW5l ZCkKKysJYWxsb3dfdW5kZWZpbmVkPW5vCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLW9i amVjdGxpc3QpCisrCXByZXY9b2JqZWN0bGlzdAorKwljb250aW51ZQorKwk7OworKworKyAgICAg IC1vKSBwcmV2PW91dHB1dCA7OworKworKyAgICAgIC1wcmVjaW91cy1maWxlcy1yZWdleCkKKysJ cHJldj1wcmVjaW91c19yZWdleAorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1yZWxlYXNl KQorKwlwcmV2PXJlbGVhc2UKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtcnBhdGgpCisr CXByZXY9cnBhdGgKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtUikKKysJcHJldj14cnBh dGgKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtUiopCisrCWRpcj1gJGVjaG8gIlgkYXJn IiB8ICRYc2VkIC1lICdzL14tUi8vJ2AKKysJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisr CWNhc2UgJGRpciBpbgorKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CisrCSopCisrCSAg JGVjaG8gIiRtb2RlbmFtZTogb25seSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQiIDE+ JjIKKysJICBleGl0ICRFWElUX0ZBSUxVUkUKKysJICA7OworKwllc2FjCisrCWNhc2UgIiR4cnBh dGggIiBpbgorKwkqIiAkZGlyICIqKSA7OworKwkqKSB4cnBhdGg9IiR4cnBhdGggJGRpciIgOzsK KysJZXNhYworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1zdGF0aWMgfCAtc3RhdGljLWxp YnRvb2wtbGlicykKKysJIyBUaGUgZWZmZWN0cyBvZiAtc3RhdGljIGFyZSBkZWZpbmVkIGluIGEg cHJldmlvdXMgbG9vcC4KKysJIyBXZSB1c2VkIHRvIGRvIHRoZSBzYW1lIGFzIC1hbGwtc3RhdGlj IG9uIHBsYXRmb3JtcyB0aGF0CisrCSMgZGlkbid0IGhhdmUgYSBQSUMgZmxhZywgYnV0IHRoZSBh c3N1bXB0aW9uIHRoYXQgdGhlIGVmZmVjdHMKKysJIyB3b3VsZCBiZSBlcXVpdmFsZW50IHdhcyB3 cm9uZy4gIEl0IHdvdWxkIGJyZWFrIG9uIGF0IGxlYXN0CisrCSMgRGlnaXRhbCBVbml4IGFuZCBB SVguCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXRocmVhZC1zYWZlKQorKwl0aHJlYWRf c2FmZT15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtdmVyc2lvbi1pbmZvKQorKwlw cmV2PXZpbmZvCisrCWNvbnRpbnVlCisrCTs7CisrICAgICAgLXZlcnNpb24tbnVtYmVyKQorKwlw cmV2PXZpbmZvCisrCXZpbmZvX251bWJlcj15ZXMKKysJY29udGludWUKKysJOzsKKysKKysgICAg ICAtV2MsKikKKysJYXJncz1gJGVjaG8gIlgkYXJnIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1 YnN0IiAtZSAncy9eLVdjLC8vJ2AKKysJYXJnPQorKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcK KysJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCisrCSAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgY2FzZSAk ZmxhZyBpbgorKwkgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwq XSp8IiIpCisrCSAgICBmbGFnPSJcIiRmbGFnXCIiCisrCSAgICA7OworKwkgIGVzYWMKKysJICBh cmc9IiRhcmcgJHdsJGZsYWciCisrCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAk ZmxhZyIKKysJZG9uZQorKwlJRlM9IiRzYXZlX2lmcyIKKysJYXJnPWAkZWNobyAiWCRhcmciIHwg JFhzZWQgLWUgInMvXiAvLyJgCisrCTs7CisrCisrICAgICAgLVdsLCopCisrCWFyZ3M9YCRlY2hv ICJYJGFyZyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCIgLWUgJ3MvXi1XbCwvLydgCisr CWFyZz0KKysJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCisrCWZvciBmbGFnIGluICRhcmdzOyBk bworKwkgIElGUz0iJHNhdmVfaWZzIgorKwkgIGNhc2UgJGZsYWcgaW4KKysJICAgICpbXFtcflwj XF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQorKwkgICAgZmxhZz0iXCIk ZmxhZ1wiIgorKwkgICAgOzsKKysJICBlc2FjCisrCSAgYXJnPSIkYXJnICR3bCRmbGFnIgorKwkg IGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJGZsYWciCisrCSAgbGlua2VyX2Zs YWdzPSIkbGlua2VyX2ZsYWdzICRmbGFnIgorKwlkb25lCisrCUlGUz0iJHNhdmVfaWZzIgorKwlh cmc9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAicy9eIC8vImAKKysJOzsKKysKKysgICAgICAt WGNvbXBpbGVyKQorKwlwcmV2PXhjb21waWxlcgorKwljb250aW51ZQorKwk7OworKworKyAgICAg IC1YbGlua2VyKQorKwlwcmV2PXhsaW5rZXIKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAt WENDbGlua2VyKQorKwlwcmV2PXhjY2xpbmtlcgorKwljb250aW51ZQorKwk7OworKworKyAgICAg ICMgU29tZSBvdGhlciBjb21waWxlciBmbGFnLgorKyAgICAgIC0qIHwgKyopCisrCSMgVW5rbm93 biBhcmd1bWVudHMgaW4gYm90aCBmaW5hbGl6ZV9jb21tYW5kIGFuZCBjb21waWxlX2NvbW1hbmQg bmVlZAorKwkjIHRvIGJlIGFlc3RoZXRpY2FsbHkgcXVvdGVkIGJlY2F1c2UgdGhleSBhcmUgZXZh bGVkIGxhdGVyLgorKwlhcmc9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9z dWJzdCJgCisrCWNhc2UgJGFyZyBpbgorKwkqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5c P1wnXCBcCV0qfCpdKnwiIikKKysJICBhcmc9IlwiJGFyZ1wiIgorKwkgIDs7CisrCWVzYWMKKysJ OzsKKysKKysgICAgICAqLiRvYmpleHQpCisrCSMgQSBzdGFuZGFyZCBvYmplY3QuCisrCW9ianM9 IiRvYmpzICRhcmciCisrCTs7CisrCisrICAgICAgKi5sbykKKysJIyBBIGxpYnRvb2wtY29udHJv bGxlZCBvYmplY3QuCisrCisrCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBs aWJ0b29sIG9iamVjdC4KKysJaWYgKCR7U0VEfSAtZSAnMnEnICRhcmcgfCBncmVwICJeIyBHZW5l cmF0ZWQgYnkgLiokUEFDS0FHRSIpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwkgIHBpY19vYmpl Y3Q9CisrCSAgbm9uX3BpY19vYmplY3Q9CisrCisrCSAgIyBSZWFkIHRoZSAubG8gZmlsZQorKwkg ICMgSWYgdGhlcmUgaXMgbm8gZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBhZGQgb25lLgorKwkg IGNhc2UgJGFyZyBpbgorKwkgICovKiB8ICpcXCopIC4gJGFyZyA7OworKwkgICopIC4gLi8kYXJn IDs7CisrCSAgZXNhYworKworKwkgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8fCBcCisrCSAg ICAgdGVzdCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAorKwkgICAgIHRlc3QgIiRwaWNfb2JqZWN0 IiA9IG5vbmUgJiYgXAorKwkgICAgIHRlc3QgIiRub25fcGljX29iamVjdCIgPSBub25lOyB0aGVu CisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiBjYW5ub3QgZmluZCBuYW1lIG9mIG9iamVjdCBmb3Ig XGAkYXJnJyIgMT4mMgorKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgZmkKKysKKysJICAj IEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKwkgIHhkaXI9YCRlY2hv ICJYJGFyZyIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAorKwkgIGlmIHRlc3QgIlgkeGRpciIg PSAiWCRhcmciOyB0aGVuCisrCSAgICB4ZGlyPQorKyAJICBlbHNlCisrCSAgICB4ZGlyPSIkeGRp ci8iCisrCSAgZmkKKysKKysJICBpZiB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgor KwkgICAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4K KysJICAgIHBpY19vYmplY3Q9IiR4ZGlyJHBpY19vYmplY3QiCisrCisrCSAgICBpZiB0ZXN0ICIk cHJldiIgPSBkbGZpbGVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xp YnMiID0geWVzICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgPSB5ZXM7IHRoZW4KKysJCWRsZmls ZXM9IiRkbGZpbGVzICRwaWNfb2JqZWN0IgorKwkJcHJldj0KKysJCWNvbnRpbnVlCisrCSAgICAg IGVsc2UKKysJCSMgSWYgbGlidG9vbCBvYmplY3RzIGFyZSB1bnN1cHBvcnRlZCwgdGhlbiB3ZSBu ZWVkIHRvIHByZWxvYWQuCisrCQlwcmV2PWRscHJlZmlsZXMKKysJICAgICAgZmkKKysJICAgIGZp CisrCisrCSAgICAjIENIRUNLIE1FOiAgSSB0aGluayBJIGJ1c3RlZCB0aGlzLiAgLU9zc2FtYQor KwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgorKwkgICAgICAjIFByZWxv YWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCisrCSAgICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVz ICRwaWNfb2JqZWN0IgorKwkgICAgICBwcmV2PQorKwkgICAgZmkKKysKKysJICAgICMgQSBQSUMg b2JqZWN0LgorKwkgICAgbGlib2Jqcz0iJGxpYm9ianMgJHBpY19vYmplY3QiCisrCSAgICBhcmc9 IiRwaWNfb2JqZWN0IgorKwkgIGZpCisrCisrCSAgIyBOb24tUElDIG9iamVjdC4KKysJICBpZiB0 ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJICAgICMgUHJlcGVuZCB0aGUg c3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCisrCSAgICBub25fcGljX29iamVj dD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCisrCisrCSAgICAjIEEgc3RhbmRhcmQgbm9uLVBJQyBv YmplY3QKKysJICAgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9uX3BpY19v YmplY3QiCisrCSAgICBpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwgdGVzdCAiJHBpY19vYmpl Y3QiID0gbm9uZSA7IHRoZW4KKysJICAgICAgYXJnPSIkbm9uX3BpY19vYmplY3QiCisrCSAgICBm aQorKwkgIGVsc2UKKysJICAgICMgSWYgdGhlIFBJQyBvYmplY3QgZXhpc3RzLCB1c2UgaXQgaW5z dGVhZC4KKysJICAgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0byAkcGljX29iamVjdCBhYm92ZS4K KysJICAgIG5vbl9waWNfb2JqZWN0PSIkcGljX29iamVjdCIKKysJICAgIG5vbl9waWNfb2JqZWN0 cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9uX3BpY19vYmplY3QiCisrCSAgZmkKKysJZWxzZQorKwkg ICMgT25seSBhbiBlcnJvciBpZiBub3QgZG9pbmcgYSBkcnktcnVuLgorKwkgIGlmIHRlc3QgLXog IiRydW4iOyB0aGVuCisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiBcYCRhcmcnIGlzIG5vdCBhIHZh bGlkIGxpYnRvb2wgb2JqZWN0IiAxPiYyCisrCSAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysJICBl bHNlCisrCSAgICAjIERyeS1ydW4gY2FzZS4KKysKKysJICAgICMgRXh0cmFjdCBzdWJkaXJlY3Rv cnkgZnJvbSB0aGUgYXJndW1lbnQuCisrCSAgICB4ZGlyPWAkZWNobyAiWCRhcmciIHwgJFhzZWQg LWUgJ3MlL1teL10qJCUlJ2AKKysJICAgIGlmIHRlc3QgIlgkeGRpciIgPSAiWCRhcmciOyB0aGVu CisrCSAgICAgIHhkaXI9CisrCSAgICBlbHNlCisrCSAgICAgIHhkaXI9IiR4ZGlyLyIKKysJICAg IGZpCisrCisrCSAgICBwaWNfb2JqZWN0PWAkZWNobyAiWCR7eGRpcn0ke29iamRpcn0vJHthcmd9 IiB8ICRYc2VkIC1lICIkbG8ybyJgCisrCSAgICBub25fcGljX29iamVjdD1gJGVjaG8gIlgke3hk aXJ9JHthcmd9IiB8ICRYc2VkIC1lICIkbG8ybyJgCisrCSAgICBsaWJvYmpzPSIkbGlib2JqcyAk cGljX29iamVjdCIKKysJICAgIG5vbl9waWNfb2JqZWN0cz0iJG5vbl9waWNfb2JqZWN0cyAkbm9u X3BpY19vYmplY3QiCisrCSAgZmkKKysJZmkKKysJOzsKKysKKysgICAgICAqLiRsaWJleHQpCisr CSMgQW4gYXJjaGl2ZS4KKysJZGVwbGlicz0iJGRlcGxpYnMgJGFyZyIKKysJb2xkX2RlcGxpYnM9 IiRvbGRfZGVwbGlicyAkYXJnIgorKwljb250aW51ZQorKwk7OworKworKyAgICAgICoubGEpCisr CSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgbGlicmFyeS4KKysKKysJaWYgdGVzdCAiJHByZXYiID0g ZGxmaWxlczsgdGhlbgorKwkgICMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxv cGVuLgorKwkgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCisrCSAgcHJldj0KKysJZWxpZiB0ZXN0 ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCisrCSAgIyBUaGUgbGlicmFyeSB3YXMgc3BlY2lm aWVkIHdpdGggLWRscHJlb3Blbi4KKysJICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgor KwkgIHByZXY9CisrCWVsc2UKKysJICBkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgorKwlmaQorKwlj b250aW51ZQorKwk7OworKworKyAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBhcmd1bWVudC4K KysgICAgICAqKQorKwkjIFVua25vd24gYXJndW1lbnRzIGluIGJvdGggZmluYWxpemVfY29tbWFu ZCBhbmQgY29tcGlsZV9jb21tYW5kIG5lZWQKKysJIyB0byBiZSBhZXN0aGV0aWNhbGx5IHF1b3Rl ZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRlci4KKysJYXJnPWAkZWNobyAiWCRhcmciIHwg JFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKwljYXNlICRhcmcgaW4KKysJKltcW1x+XCNc XlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisrCSAgYXJnPSJcIiRhcmdc IiIKKysJICA7OworKwllc2FjCisrCTs7CisrICAgICAgZXNhYyAjIGFyZworKworKyAgICAgICMg Tm93IGFjdHVhbGx5IHN1YnN0aXR1dGUgdGhlIGFyZ3VtZW50IGludG8gdGhlIGNvbW1hbmRzLgor KyAgICAgIGlmIHRlc3QgLW4gIiRhcmciOyB0aGVuCisrCWNvbXBpbGVfY29tbWFuZD0iJGNvbXBp bGVfY29tbWFuZCAkYXJnIgorKwlmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAk YXJnIgorKyAgICAgIGZpCisrICAgIGRvbmUgIyBhcmd1bWVudCBwYXJzaW5nIGxvb3AKKysKKysg ICAgaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCisrICAgICAgJGVjaG8gIiRtb2RlbmFtZTogdGhl IFxgJHByZXZhcmcnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCIgMT4mMgorKyAgICAgICRl Y2hvICIkaGVscCIgMT4mMgorKyAgICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKyAgICBmaQorKwor KyAgICBpZiB0ZXN0ICIkZXhwb3J0X2R5bmFtaWMiID0geWVzICYmIHRlc3QgLW4gIiRleHBvcnRf ZHluYW1pY19mbGFnX3NwZWMiOyB0aGVuCisrICAgICAgZXZhbCBhcmc9XCIkZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjXCIKKysgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQg JGFyZyIKKysgICAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkYXJnIgor KyAgICBmaQorKworKyAgICBvbGRsaWJzPQorKyAgICAjIGNhbGN1bGF0ZSB0aGUgbmFtZSBvZiB0 aGUgZmlsZSwgd2l0aG91dCBpdHMgZGlyZWN0b3J5CisrICAgIG91dHB1dG5hbWU9YCRlY2hvICJY JG91dHB1dCIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAorKyAgICBsaWJvYmpzX3NhdmU9IiRsaWJv YmpzIgorKworKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KKysgICAgICAj IGdldCB0aGUgZGlyZWN0b3JpZXMgbGlzdGVkIGluICRzaGxpYnBhdGhfdmFyCisrICAgICAgZXZh bCBzaGxpYl9zZWFyY2hfcGF0aD1cYFwkZWNobyBcIlhcJHskc2hsaWJwYXRoX3Zhcn1cIiBcfCBc JFhzZWQgLWUgXCdzLzovIC9nXCdcYAorKyAgICBlbHNlCisrICAgICAgc2hsaWJfc2VhcmNoX3Bh dGg9CisrICAgIGZpCisrICAgIGV2YWwgc3lzX2xpYl9zZWFyY2hfcGF0aD1cIiRzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWNcIgorKyAgICBldmFsIHN5c19saWJfZGxzZWFyY2hfcGF0aD1cIiRzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlY1wiCisrCisrICAgIG91dHB1dF9vYmpkaXI9YCRlY2hvICJY JG91dHB1dCIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAorKyAgICBpZiB0ZXN0ICJYJG91dHB1 dF9vYmpkaXIiID0gIlgkb3V0cHV0IjsgdGhlbgorKyAgICAgIG91dHB1dF9vYmpkaXI9IiRvYmpk aXIiCisrICAgIGVsc2UKKysgICAgICBvdXRwdXRfb2JqZGlyPSIkb3V0cHV0X29iamRpci8kb2Jq ZGlyIgorKyAgICBmaQorKyAgICAjIENyZWF0ZSB0aGUgb2JqZWN0IGRpcmVjdG9yeS4KKysgICAg aWYgdGVzdCAhIC1kICIkb3V0cHV0X29iamRpciI7IHRoZW4KKysgICAgICAkc2hvdyAiJG1rZGly ICRvdXRwdXRfb2JqZGlyIgorKyAgICAgICRydW4gJG1rZGlyICRvdXRwdXRfb2JqZGlyCisrICAg ICAgZXhpdF9zdGF0dXM9JD8KKysgICAgICBpZiB0ZXN0ICIkZXhpdF9zdGF0dXMiIC1uZSAwICYm IHRlc3QgISAtZCAiJG91dHB1dF9vYmpkaXIiOyB0aGVuCisrCWV4aXQgJGV4aXRfc3RhdHVzCisr ICAgICAgZmkKKysgICAgZmkKKysKKysgICAgIyBEZXRlcm1pbmUgdGhlIHR5cGUgb2Ygb3V0cHV0 CisrICAgIGNhc2UgJG91dHB1dCBpbgorKyAgICAiIikKKysgICAgICAkZWNobyAiJG1vZGVuYW1l OiB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dCBmaWxlIiAxPiYyCisrICAgICAgJGVjaG8gIiRo ZWxwIiAxPiYyCisrICAgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgICAgOzsKKysgICAgKi4k bGliZXh0KSBsaW5rbW9kZT1vbGRsaWIgOzsKKysgICAgKi5sbyB8ICouJG9iamV4dCkgbGlua21v ZGU9b2JqIDs7CisrICAgICoubGEpIGxpbmttb2RlPWxpYiA7OworKyAgICAqKSBsaW5rbW9kZT1w cm9nIDs7ICMgQW55dGhpbmcgZWxzZSBzaG91bGQgYmUgYSBwcm9ncmFtLgorKyAgICBlc2FjCisr CisrICAgIGNhc2UgJGhvc3QgaW4KKysgICAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKnB3MzIqKQor KyAgICAgICMgZG9uJ3QgZWxpbWluYXRlIGR1cGxpY2F0aW9ucyBpbiAkcG9zdGRlcHMgYW5kICRw cmVkZXBzCisrICAgICAgZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPXllcworKyAg ICAgIDs7CisrICAgICopCisrICAgICAgZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBz PSRkdXBsaWNhdGVfZGVwcworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgc3BlY2lhbGRlcGxp YnM9CisrCisrICAgIGxpYnM9CisrICAgICMgRmluZCBhbGwgaW50ZXJkZXBlbmRlbnQgZGVwbGli cyBieSBzZWFyY2hpbmcgZm9yIGxpYnJhcmllcworKyAgICAjIHRoYXQgYXJlIGxpbmtlZCBtb3Jl IHRoYW4gb25jZSAoZS5nLiAtbGEgLWxiIC1sYSkKKysgICAgZm9yIGRlcGxpYiBpbiAkZGVwbGli czsgZG8KKysgICAgICBpZiB0ZXN0ICJYJGR1cGxpY2F0ZV9kZXBzIiA9ICJYeWVzIiA7IHRoZW4K KysJY2FzZSAiJGxpYnMgIiBpbgorKwkqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNw ZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIGxpYnM9 IiRsaWJzICRkZXBsaWIiCisrICAgIGRvbmUKKysKKysgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9 IGxpYjsgdGhlbgorKyAgICAgIGxpYnM9IiRwcmVkZXBzICRsaWJzICRjb21waWxlcl9saWJfc2Vh cmNoX3BhdGggJHBvc3RkZXBzIgorKworKyAgICAgICMgQ29tcHV0ZSBsaWJyYXJpZXMgdGhhdCBh cmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlIGluICRwcmVkZXBzCisrICAgICAgIyAkcG9zdGRlcHMg YW5kIG1hcmsgdGhlbSBhcyBzcGVjaWFsIChpLmUuLCB3aG9zZSBkdXBsaWNhdGVzIGFyZQorKyAg ICAgICMgbm90IHRvIGJlIGVsaW1pbmF0ZWQpLgorKyAgICAgIHByZV9wb3N0X2RlcHM9CisrICAg ICAgaWYgdGVzdCAiWCRkdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHMiID0gIlh5ZXMi IDsgdGhlbgorKwlmb3IgcHJlX3Bvc3RfZGVwIGluICRwcmVkZXBzICRwb3N0ZGVwczsgZG8KKysJ ICBjYXNlICIkcHJlX3Bvc3RfZGVwcyAiIGluCisrCSAgKiIgJHByZV9wb3N0X2RlcCAiKikgc3Bl Y2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkcHJlX3Bvc3RfZGVwcyIgOzsKKysJICBlc2Fj CisrCSAgcHJlX3Bvc3RfZGVwcz0iJHByZV9wb3N0X2RlcHMgJHByZV9wb3N0X2RlcCIKKysJZG9u ZQorKyAgICAgIGZpCisrICAgICAgcHJlX3Bvc3RfZGVwcz0KKysgICAgZmkKKysKKysgICAgZGVw bGlicz0KKysgICAgbmV3ZGVwZW5kZW5jeV9saWJzPQorKyAgICBuZXdsaWJfc2VhcmNoX3BhdGg9 CisrICAgIG5lZWRfcmVsaW5rPW5vICMgd2hldGhlciB3ZSdyZSBsaW5raW5nIGFueSB1bmluc3Rh bGxlZCBsaWJ0b29sIGxpYnJhcmllcworKyAgICBub3RpbnN0X2RlcGxpYnM9ICMgbm90LWluc3Rh bGxlZCBsaWJ0b29sIGxpYnJhcmllcworKyAgICBjYXNlICRsaW5rbW9kZSBpbgorKyAgICBsaWIp CisrCXBhc3Nlcz0iY29udiBsaW5rIgorKwlmb3IgZmlsZSBpbiAkZGxmaWxlcyAkZGxwcmVmaWxl czsgZG8KKysJICBjYXNlICRmaWxlIGluCisrCSAgKi5sYSkgOzsKKysJICAqKQorKwkgICAgJGVj aG8gIiRtb2RlbmFtZTogbGlicmFyaWVzIGNhbiBcYC1kbG9wZW4nIG9ubHkgbGlidG9vbCBsaWJy YXJpZXM6ICRmaWxlIiAxPiYyCisrCSAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysJICAgIDs7Cisr CSAgZXNhYworKwlkb25lCisrCTs7CisrICAgIHByb2cpCisrCWNvbXBpbGVfZGVwbGlicz0KKysJ ZmluYWxpemVfZGVwbGlicz0KKysJYWxsZGVwbGlicz1ubworKwluZXdkbGZpbGVzPQorKwluZXdk bHByZWZpbGVzPQorKwlwYXNzZXM9ImNvbnYgc2NhbiBkbG9wZW4gZGxwcmVvcGVuIGxpbmsiCisr CTs7CisrICAgICopICBwYXNzZXM9ImNvbnYiCisrCTs7CisrICAgIGVzYWMKKysgICAgZm9yIHBh c3MgaW4gJHBhc3NlczsgZG8KKysgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxp YixsaW5rIiB8fAorKwkgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNjYW4iOyB0aGVu CisrCWxpYnM9IiRkZXBsaWJzIgorKwlkZXBsaWJzPQorKyAgICAgIGZpCisrICAgICAgaWYgdGVz dCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKysJY2FzZSAkcGFzcyBpbgorKwlkbG9wZW4pIGxp YnM9IiRkbGZpbGVzIiA7OworKwlkbHByZW9wZW4pIGxpYnM9IiRkbHByZWZpbGVzIiA7OworKwls aW5rKSBsaWJzPSIkZGVwbGlicyAlREVQTElCUyUgJGRlcGVuZGVuY3lfbGlicyIgOzsKKysJZXNh YworKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCisrCSMg Q29sbGVjdCBkbHByZW9wZW5lZCBsaWJyYXJpZXMKKysJc2F2ZV9kZXBsaWJzPSIkZGVwbGlicyIK KysJZGVwbGlicz0KKysgICAgICBmaQorKyAgICAgIGZvciBkZXBsaWIgaW4gJGxpYnM7IGRvCisr CWxpYj0KKysJZm91bmQ9bm8KKysJY2FzZSAkZGVwbGliIGluCisrCS1tdHwtbXRocmVhZHN8LWt0 aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmV8LXRocmVhZHMp CisrCSAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisrCSAg ICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgIGZpbmFs aXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCisrCSAgZWxzZQorKwkgICAg Y29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkZGVwbGliIgorKwkgIGZpCisrCSAgY29u dGludWUKKysJICA7OworKwktbCopCisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWIgJiYg dGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nOyB0aGVuCisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiB3 YXJuaW5nOiBcYC1sJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIiAxPiYyCisrCSAg ICBjb250aW51ZQorKwkgIGZpCisrCSAgbmFtZT1gJGVjaG8gIlgkZGVwbGliIiB8ICRYc2VkIC1l ICdzL14tbC8vJ2AKKysJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCisrCSAgICBz ZWFyY2hkaXJzPSIkbmV3bGliX3NlYXJjaF9wYXRoICRsaWJfc2VhcmNoX3BhdGggJGNvbXBpbGVy X2xpYl9zZWFyY2hfZGlycyAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGgi CisrCSAgZWxzZQorKwkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3Nl YXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aCIKKysJICBm aQorKwkgIGZvciBzZWFyY2hkaXIgaW4gJHNlYXJjaGRpcnM7IGRvCisrCSAgICBmb3Igc2VhcmNo X2V4dCBpbiAubGEgJHN0ZF9zaHJleHQgLnNvIC5hOyBkbworKwkgICAgICAjIFNlYXJjaCB0aGUg bGlidG9vbCBsaWJyYXJ5CisrCSAgICAgIGxpYj0iJHNlYXJjaGRpci9saWIke25hbWV9JHtzZWFy Y2hfZXh0fSIKKysJICAgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KKysJCWlmIHRlc3QgIiRz ZWFyY2hfZXh0IiA9ICIubGEiOyB0aGVuCisrCQkgIGZvdW5kPXllcworKwkJZWxzZQorKwkJICBm b3VuZD1ubworKwkJZmkKKysJCWJyZWFrIDIKKysJICAgICAgZmkKKysJICAgIGRvbmUKKysJICBk b25lCisrCSAgaWYgdGVzdCAiJGZvdW5kIiAhPSB5ZXM7IHRoZW4KKysJICAgICMgZGVwbGliIGRv ZXNuJ3Qgc2VlbSB0byBiZSBhIGxpYnRvb2wgbGlicmFyeQorKwkgICAgaWYgdGVzdCAiJGxpbmtt b2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisrCSAgICAgIGNvbXBpbGVfZGVwbGlicz0i JGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVw bGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICBkZXBsaWJzPSIkZGVw bGliICRkZXBsaWJzIgorKwkgICAgICB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2RlcGVu ZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgZmkKKysJICAg IGNvbnRpbnVlCisrCSAgZWxzZSAjIGRlcGxpYiBpcyBhIGxpYnRvb2wgbGlicmFyeQorKwkgICAg IyBJZiAkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzICYmICRkZXBsaWIg aXMgYSBzdGRsaWIsCisrCSAgICAjIFdlIG5lZWQgdG8gZG8gc29tZSBzcGVjaWFsIHRoaW5ncyBo ZXJlLCBhbmQgbm90IGxhdGVyLgorKwkgICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNf d2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorKwkgICAgICBjYXNlICIgJHBy ZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJICAgICAgKiIgJGRlcGxpYiAiKikKKysJCWlmICgke1NF RH0gLWUgJzJxJyAkbGliIHwKKysgICAgICAgICAgICAgICAgICAgIGdyZXAgIl4jIEdlbmVyYXRl ZCBieSAuKiRQQUNLQUdFIikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCQkgIGxpYnJhcnlfbmFt ZXM9CisrCQkgIG9sZF9saWJyYXJ5PQorKwkJICBjYXNlICRsaWIgaW4KKysJCSAgKi8qIHwgKlxc KikgLiAkbGliIDs7CisrCQkgICopIC4gLi8kbGliIDs7CisrCQkgIGVzYWMKKysJCSAgZm9yIGwg aW4gJG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbworKwkJICAgIGxsPSIkbCIKKysJCSAg ZG9uZQorKwkJICBpZiB0ZXN0ICJYJGxsIiA9ICJYJG9sZF9saWJyYXJ5IiA7IHRoZW4gIyBvbmx5 IHN0YXRpYyB2ZXJzaW9uIGF2YWlsYWJsZQorKwkJICAgIGZvdW5kPW5vCisrCQkgICAgbGFkaXI9 YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAorKwkJICAgIHRlc3QgIlgk bGFkaXIiID0gIlgkbGliIiAmJiBsYWRpcj0iLiIKKysJCSAgICBsaWI9JGxhZGlyLyRvbGRfbGli cmFyeQorKwkJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhl bgorKwkJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisr CQkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkJ ICAgIGVsc2UKKysJCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCQkgICAgICB0 ZXN0ICIkbGlua21vZGUiID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3 ZGVwZW5kZW5jeV9saWJzIgorKwkJICAgIGZpCisrCQkgICAgY29udGludWUKKysJCSAgZmkKKysJ CWZpCisrCSAgICAgICAgOzsKKysJICAgICAgKikgOzsKKysJICAgICAgZXNhYworKwkgICAgZmkK KysJICBmaQorKwkgIDs7ICMgLWwKKysJLUwqKQorKwkgIGNhc2UgJGxpbmttb2RlIGluCisrCSAg bGliKQorKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgIHRlc3QgIiRwYXNz IiA9IGNvbnYgJiYgY29udGludWUKKysJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAk bmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3Nl YXJjaF9wYXRoICJgJGVjaG8gIlgkZGVwbGliIiB8ICRYc2VkIC1lICdzL14tTC8vJ2AKKysJICAg IDs7CisrCSAgcHJvZykKKysJICAgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKysJICAg ICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgICAgY29udGludWUKKysJICAgIGZp CisrCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBzY2FuOyB0aGVuCisrCSAgICAgIGRlcGxpYnM9IiRk ZXBsaWIgJGRlcGxpYnMiCisrCSAgICBlbHNlCisrCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRl cGxpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGli ICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgICAgZmkKKysJICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0i JG5ld2xpYl9zZWFyY2hfcGF0aCAiYCRlY2hvICJYJGRlcGxpYiIgfCAkWHNlZCAtZSAncy9eLUwv LydgCisrCSAgICA7OworKwkgICopCisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBc YC1MJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIiAxPiYyCisrCSAgICA7OworKwkg IGVzYWMgIyBsaW5rbW9kZQorKwkgIGNvbnRpbnVlCisrCSAgOzsgIyAtTAorKwktUiopCisrCSAg aWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgorKwkgICAgZGlyPWAkZWNobyAiWCRkZXBsaWIi IHwgJFhzZWQgLWUgJ3MvXi1SLy8nYAorKwkgICAgIyBNYWtlIHN1cmUgdGhlIHhycGF0aCBjb250 YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKysJICAgIGNhc2UgIiR4cnBhdGggIiBpbgor KwkgICAgKiIgJGRpciAiKikgOzsKKysJICAgICopIHhycGF0aD0iJHhycGF0aCAkZGlyIiA7Owor KwkgICAgZXNhYworKwkgIGZpCisrCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICBj b250aW51ZQorKwkgIDs7CisrCSoubGEpIGxpYj0iJGRlcGxpYiIgOzsKKysJKi4kbGliZXh0KQor KwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKysJICAgIGRlcGxpYnM9IiRkZXBsaWIg JGRlcGxpYnMiCisrCSAgICBjb250aW51ZQorKwkgIGZpCisrCSAgY2FzZSAkbGlua21vZGUgaW4K KysJICBsaWIpCisrCSAgICB2YWxpZF9hX2xpYj1ubworKwkgICAgY2FzZSAkZGVwbGlic19jaGVj a19tZXRob2QgaW4KKysJICAgICAgbWF0Y2hfcGF0dGVybiopCisrCQlzZXQgZHVtbXkgJGRlcGxp YnNfY2hlY2tfbWV0aG9kCisrCSAgICAgICAgbWF0Y2hfcGF0dGVybl9yZWdleD1gZXhwciAiJGRl cGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMiBcKC4qXCkiYAorKwkJaWYgZXZhbCAkZWNobyBcIiRk ZXBsaWJcIiAyPi9kZXYvbnVsbCBcCisrCQkgICAgfCAkU0VEIDEwcSBcCisrCQkgICAgfCAkRUdS RVAgIiRtYXRjaF9wYXR0ZXJuX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgorKwkJICB2YWxpZF9h X2xpYj15ZXMKKysJCWZpCisrCQk7OworKwkgICAgICBwYXNzX2FsbCkKKysJCXZhbGlkX2FfbGli PXllcworKwkJOzsKKysgICAgICAgICAgICBlc2FjCisrCSAgICBpZiB0ZXN0ICIkdmFsaWRfYV9s aWIiICE9IHllczsgdGhlbgorKwkgICAgICAkZWNobworKwkgICAgICAkZWNobyAiKioqIFdhcm5p bmc6IFRyeWluZyB0byBsaW5rIHdpdGggc3RhdGljIGxpYiBhcmNoaXZlICRkZXBsaWIuIgorKwkg ICAgICAkZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFy eSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJICAgICAgJGVjaG8gIioqKiB5b3UgbGlu ayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEi CisrCSAgICAgICRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNo IHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisrCSAgICAgICRlY2hvICIqKiogYmVjYXVzZSB0 aGUgZmlsZSBleHRlbnNpb25zIC4kbGliZXh0IG9mIHRoaXMgYXJndW1lbnQgbWFrZXMgbWUgYmVs aWV2ZSIKKysJICAgICAgJGVjaG8gIioqKiB0aGF0IGl0IGlzIGp1c3QgYSBzdGF0aWMgYXJjaGl2 ZSB0aGF0IEkgc2hvdWxkIG5vdCB1c2VkIGhlcmUuIgorKwkgICAgZWxzZQorKwkgICAgICAkZWNo bworKwkgICAgICAkZWNobyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5 ICRvdXRwdXQgYWdhaW5zdCB0aGUiCisrCSAgICAgICRlY2hvICIqKiogc3RhdGljIGxpYnJhcnkg JGRlcGxpYiBpcyBub3QgcG9ydGFibGUhIgorKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBs aWJzIgorKwkgICAgZmkKKysJICAgIGNvbnRpbnVlCisrCSAgICA7OworKwkgIHByb2cpCisrCSAg ICBpZiB0ZXN0ICIkcGFzcyIgIT0gbGluazsgdGhlbgorKwkgICAgICBkZXBsaWJzPSIkZGVwbGli ICRkZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIg JGNvbXBpbGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmlu YWxpemVfZGVwbGlicyIKKysJICAgIGZpCisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICBl c2FjICMgbGlua21vZGUKKysJICA7OyAjICouJGxpYmV4dAorKwkqLmxvIHwgKi4kb2JqZXh0KQor KwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KKysJICAgIGRlcGxpYnM9IiRkZXBsaWIg JGRlcGxpYnMiCisrCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICAg aWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuIHx8IHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgIT0g eWVzIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKysJICAgICAgIyBJ ZiB0aGVyZSBpcyBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5raW5nIHN0YXRpY2FsbHks CisrCSAgICAgICMgd2UgbmVlZCB0byBwcmVsb2FkLgorKwkgICAgICBuZXdkbHByZWZpbGVzPSIk bmV3ZGxwcmVmaWxlcyAkZGVwbGliIgorKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIg JGNvbXBpbGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmlu YWxpemVfZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmls ZXMgJGRlcGxpYiIKKysJICAgIGZpCisrCSAgZmkKKysJICBjb250aW51ZQorKwkgIDs7CisrCSVE RVBMSUJTJSkKKysJICBhbGxkZXBsaWJzPXllcworKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJZXNh YyAjIGNhc2UgJGRlcGxpYgorKwlpZiB0ZXN0ICIkZm91bmQiID0geWVzIHx8IHRlc3QgLWYgIiRs aWIiOyB0aGVuIDoKKysJZWxzZQorKwkgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5vdCBmaW5kIHRo ZSBsaWJyYXJ5IFxgJGxpYicgb3IgdW5oYW5kbGVkIGFyZ3VtZW50IFxgJGRlcGxpYiciIDE+JjIK KysJICBleGl0ICRFWElUX0ZBSUxVUkUKKysJZmkKKysKKysJIyBDaGVjayB0byBzZWUgdGhhdCB0 aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KKysJaWYgKCR7U0VEfSAtZSAnMnEnICRs aWIgfCBncmVwICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIpID4vZGV2L251bGwgMj4mMTsg dGhlbiA6CisrCWVsc2UKKysJICAkZWNobyAiJG1vZGVuYW1lOiBcYCRsaWInIGlzIG5vdCBhIHZh bGlkIGxpYnRvb2wgYXJjaGl2ZSIgMT4mMgorKwkgIGV4aXQgJEVYSVRfRkFJTFVSRQorKwlmaQor KworKwlsYWRpcj1gJGVjaG8gIlgkbGliIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCisrCXRl c3QgIlgkbGFkaXIiID0gIlgkbGliIiAmJiBsYWRpcj0iLiIKKysKKysJZGxuYW1lPQorKwlkbG9w ZW49CisrCWRscHJlb3Blbj0KKysJbGliZGlyPQorKwlsaWJyYXJ5X25hbWVzPQorKwlvbGRfbGli cmFyeT0KKysJIyBJZiB0aGUgbGlicmFyeSB3YXMgaW5zdGFsbGVkIHdpdGggYW4gb2xkIHJlbGVh c2Ugb2YgbGlidG9vbCwKKysJIyBpdCB3aWxsIG5vdCByZWRlZmluZSB2YXJpYWJsZXMgaW5zdGFs bGVkLCBvciBzaG91bGRub3RsaW5rCisrCWluc3RhbGxlZD15ZXMKKysJc2hvdWxkbm90bGluaz1u bworKwlhdm9pZHRlbXBycGF0aD0KKysKKysKKysJIyBSZWFkIHRoZSAubGEgZmlsZQorKwljYXNl ICRsaWIgaW4KKysJKi8qIHwgKlxcKikgLiAkbGliIDs7CisrCSopIC4gLi8kbGliIDs7CisrCWVz YWMKKysKKysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayIgfHwKKysJICAg dGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNjYW4iIHx8CisrCSAgIHsgdGVzdCAiJGxp bmttb2RlIiAhPSBwcm9nICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliOyB9OyB0aGVuCisrCSAg dGVzdCAtbiAiJGRsb3BlbiIgJiYgZGxmaWxlcz0iJGRsZmlsZXMgJGRsb3BlbiIKKysJICB0ZXN0 IC1uICIkZGxwcmVvcGVuIiAmJiBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkZGxwcmVvcGVuIgor KwlmaQorKworKwlpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCisrCSAgIyBPbmx5IGNoZWNr IGZvciBjb252ZW5pZW5jZSBsaWJyYXJpZXMKKysJICBkZXBsaWJzPSIkbGliICRkZXBsaWJzIgor KwkgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCisrCSAgICBpZiB0ZXN0IC16ICIkb2xkX2xp YnJhcnkiOyB0aGVuCisrCSAgICAgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5vdCBmaW5kIG5hbWUg b2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIiAxPiYyCisrCSAgICAgIGV4aXQgJEVYSVRfRkFJ TFVSRQorKwkgICAgZmkKKysJICAgICMgSXQgaXMgYSBsaWJ0b29sIGNvbnZlbmllbmNlIGxpYnJh cnksIHNvIGFkZCBpbiBpdHMgb2JqZWN0cy4KKysJICAgIGNvbnZlbmllbmNlPSIkY29udmVuaWVu Y2UgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5IgorKwkgICAgb2xkX2NvbnZlbmllbmNlPSIk b2xkX2NvbnZlbmllbmNlICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKKysJICAgIHRtcF9s aWJzPQorKwkgICAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworKwkgICAgICBk ZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKyAgICAgICAgICAgICAgaWYgdGVzdCAiWCRkdXBs aWNhdGVfZGVwcyIgPSAiWHllcyIgOyB0aGVuCisrCSAgICAgICAgY2FzZSAiJHRtcF9saWJzICIg aW4KKysJICAgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBs aWJzICRkZXBsaWIiIDs7CisrCSAgICAgICAgZXNhYworKyAgICAgICAgICAgICAgZmkKKysJICAg ICAgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIgorKwkgICAgZG9uZQorKwkgIGVsaWYgdGVz dCAiJGxpbmttb2RlIiAhPSBwcm9nICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliOyB0aGVuCisr CSAgICAkZWNobyAiJG1vZGVuYW1lOiBcYCRsaWInIGlzIG5vdCBhIGNvbnZlbmllbmNlIGxpYnJh cnkiIDE+JjIKKysJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKwkgIGZpCisrCSAgY29udGludWUK KysJZmkgIyAkcGFzcyA9IGNvbnYKKysKKysKKysJIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJh cnkgd2UgbGluayBhZ2FpbnN0LgorKwlsaW5rbGliPQorKwlmb3IgbCBpbiAkb2xkX2xpYnJhcnkg JGxpYnJhcnlfbmFtZXM7IGRvCisrCSAgbGlua2xpYj0iJGwiCisrCWRvbmUKKysJaWYgdGVzdCAt eiAiJGxpbmtsaWIiOyB0aGVuCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGZpbmQgbmFt ZSBvZiBsaW5rIGxpYnJhcnkgZm9yIFxgJGxpYiciIDE+JjIKKysJICBleGl0ICRFWElUX0ZBSUxV UkUKKysJZmkKKysKKysJIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbG9wZW4u CisrCWlmIHRlc3QgIiRwYXNzIiA9IGRsb3BlbjsgdGhlbgorKwkgIGlmIHRlc3QgLXogIiRsaWJk aXIiOyB0aGVuCisrCSAgICAkZWNobyAiJG1vZGVuYW1lOiBjYW5ub3QgLWRsb3BlbiBhIGNvbnZl bmllbmNlIGxpYnJhcnk6IFxgJGxpYiciIDE+JjIKKysJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQor KwkgIGZpCisrCSAgaWYgdGVzdCAteiAiJGRsbmFtZSIgfHwKKysJICAgICB0ZXN0ICIkZGxvcGVu X3N1cHBvcnQiICE9IHllcyB8fAorKwkgICAgIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0g bm87IHRoZW4KKysJICAgICMgSWYgdGhlcmUgaXMgbm8gZGxuYW1lLCBubyBkbG9wZW4gc3VwcG9y dCBvciB3ZSdyZSBsaW5raW5nCisrCSAgICAjIHN0YXRpY2FsbHksIHdlIG5lZWQgdG8gcHJlbG9h ZC4gIFdlIGFsc28gbmVlZCB0byBwcmVsb2FkIGFueQorKwkgICAgIyBkZXBlbmRlbnQgbGlicmFy aWVzIHNvIGxpYmx0ZGwncyBkZXBsaWIgcHJlbG9hZGVyIGRvZXNuJ3QKKysJICAgICMgYm9tYiBv dXQgaW4gdGhlIGxvYWQgZGVwbGlicyBwaGFzZS4KKysJICAgIGRscHJlZmlsZXM9IiRkbHByZWZp bGVzICRsaWIgJGRlcGVuZGVuY3lfbGlicyIKKysJICBlbHNlCisrCSAgICBuZXdkbGZpbGVzPSIk bmV3ZGxmaWxlcyAkbGliIgorKwkgIGZpCisrCSAgY29udGludWUKKysJZmkgIyAkcGFzcyA9IGRs b3BlbgorKworKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KKysJY2FzZSAkbGFkaXIgaW4K KysJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBhYnNfbGFkaXI9IiRsYWRpciIgOzsKKysJKikK KysJICBhYnNfbGFkaXI9YGNkICIkbGFkaXIiICYmIHB3ZGAKKysJICBpZiB0ZXN0IC16ICIkYWJz X2xhZGlyIjsgdGhlbgorKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogY2Fubm90IGRl dGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRsYWRpciciIDE+JjIKKysJICAg ICRlY2hvICIkbW9kZW5hbWU6IHBhc3NpbmcgaXQgbGl0ZXJhbGx5IHRvIHRoZSBsaW5rZXIsIGFs dGhvdWdoIGl0IG1pZ2h0IGZhaWwiIDE+JjIKKysJICAgIGFic19sYWRpcj0iJGxhZGlyIgorKwkg IGZpCisrCSAgOzsKKysJZXNhYworKwlsYW5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAn cyVeLiovJSUnYAorKworKwkjIEZpbmQgdGhlIHJlbGV2YW50IG9iamVjdCBkaXJlY3RvcnkgYW5k IGxpYnJhcnkgbmFtZS4KKysJaWYgdGVzdCAiWCRpbnN0YWxsZWQiID0gWHllczsgdGhlbgorKwkg IGlmIHRlc3QgISAtZiAiJGxpYmRpci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8k bGlua2xpYiI7IHRoZW4KKysJICAgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IGxpYnJhcnkg XGAkbGliJyB3YXMgbW92ZWQuIiAxPiYyCisrCSAgICBkaXI9IiRsYWRpciIKKysJICAgIGFic2Rp cj0iJGFic19sYWRpciIKKysJICAgIGxpYmRpcj0iJGFic19sYWRpciIKKysJICBlbHNlCisrCSAg ICBkaXI9IiRsaWJkaXIiCisrCSAgICBhYnNkaXI9IiRsaWJkaXIiCisrCSAgZmkKKysJICB0ZXN0 ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSBYeWVzICYmIGF2b2lkdGVtcHJwYXRoPXllcworKwll bHNlCisrCSAgaWYgdGVzdCAhIC1mICIkbGFkaXIvJG9iamRpci8kbGlua2xpYiIgJiYgdGVzdCAt ZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4KKysJICAgIGRpcj0iJGxhZGlyIgorKwkgICAg YWJzZGlyPSIkYWJzX2xhZGlyIgorKwkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRl cgorKwkgICAgbm90aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRhYnNfbGFkaXIiCisrCSAgZWxz ZQorKwkgICAgZGlyPSIkbGFkaXIvJG9iamRpciIKKysJICAgIGFic2Rpcj0iJGFic19sYWRpci8k b2JqZGlyIgorKwkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRlcgorKwkgICAgbm90 aW5zdF9wYXRoPSIkbm90aW5zdF9wYXRoICRhYnNfbGFkaXIiCisrCSAgZmkKKysJZmkgIyAkaW5z dGFsbGVkID0geWVzCisrCW5hbWU9YCRlY2hvICJYJGxhbmFtZSIgfCAkWHNlZCAtZSAncy9cLmxh JC8vJyAtZSAncy9ebGliLy8nYAorKworKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdp dGggLWRscHJlb3Blbi4KKysJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCisrCSAg aWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KKysJICAgICRlY2hvICIkbW9kZW5hbWU6IGNhbm5v dCAtZGxwcmVvcGVuIGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIgMT4mMgorKwkgICAg ZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgZmkKKysJICAjIFByZWZlciB1c2luZyBhIHN0YXRpYyBs aWJyYXJ5IChzbyB0aGF0IG5vIHNpbGx5IF9EWU5BTUlDIHN5bWJvbHMKKysJICAjIGFyZSByZXF1 aXJlZCB0byBsaW5rKS4KKysJICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCisrCSAg ICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRvbGRfbGlicmFyeSIKKysJICAj IE90aGVyd2lzZSwgdXNlIHRoZSBkbG5hbWUsIHNvIHRoYXQgbHRfZGxvcGVuIGZpbmRzIGl0Lgor KwkgIGVsaWYgdGVzdCAtbiAiJGRsbmFtZSI7IHRoZW4KKysJICAgIG5ld2RscHJlZmlsZXM9IiRu ZXdkbHByZWZpbGVzICRkaXIvJGRsbmFtZSIKKysJICBlbHNlCisrCSAgICBuZXdkbHByZWZpbGVz PSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRsaW5rbGliIgorKwkgIGZpCisrCWZpICMgJHBhc3MgPSBk bHByZW9wZW4KKysKKysJaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KKysJICAjIExpbmsgdGhl IGNvbnZlbmllbmNlIGxpYnJhcnkKKysJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVu CisrCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkZGVwbGlicyIKKysJICBlbGlmIHRl c3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgorKwkgICAgY29tcGlsZV9k ZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgZmluYWxp emVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGZpbmFsaXplX2RlcGxpYnMiCisrCSAgZWxz ZQorKwkgICAgZGVwbGlicz0iJGxpYiAkZGVwbGlicyIgIyB1c2VkIGZvciBwcm9nLHNjYW4gcGFz cworKwkgIGZpCisrCSAgY29udGludWUKKysJZmkKKysKKysKKysJaWYgdGVzdCAiJGxpbmttb2Rl IiA9IHByb2cgJiYgdGVzdCAiJHBhc3MiICE9IGxpbms7IHRoZW4KKysJICBuZXdsaWJfc2VhcmNo X3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxhZGlyIgorKwkgIGRlcGxpYnM9IiRsaWIgJGRl cGxpYnMiCisrCisrCSAgbGlua2FsbGRlcGxpYnM9bm8KKysJICBpZiB0ZXN0ICIkbGlua19hbGxf ZGVwbGlicyIgIT0gbm8gfHwgdGVzdCAteiAiJGxpYnJhcnlfbmFtZXMiIHx8CisrCSAgICAgdGVz dCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBubzsgdGhlbgorKwkgICAgbGlua2FsbGRlcGxpYnM9 eWVzCisrCSAgZmkKKysKKysJICB0bXBfbGlicz0KKysJICBmb3IgZGVwbGliIGluICRkZXBlbmRl bmN5X2xpYnM7IGRvCisrCSAgICBjYXNlICRkZXBsaWIgaW4KKysJICAgIC1MKikgbmV3bGliX3Nl YXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICJgJGVjaG8gIlgkZGVwbGliIiB8ICRYc2Vk IC1lICdzL14tTC8vJ2A7OyAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QK KysJICAgIGVzYWMKKysJICAgICMgTmVlZCB0byBsaW5rIGFnYWluc3QgYWxsIGRlcGVuZGVuY3lf bGlicz8KKysJICAgIGlmIHRlc3QgIiRsaW5rYWxsZGVwbGlicyIgPSB5ZXM7IHRoZW4KKysJICAg ICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgIyBOZWVk IHRvIGhhcmRjb2RlIHNoYXJlZCBsaWJyYXJ5IHBhdGhzCisrCSAgICAgICMgb3IvYW5kIGxpbmsg YWdhaW5zdCBzdGF0aWMgbGlicmFyaWVzCisrCSAgICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRl cGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgZmkKKysJICAgIGlmIHRlc3QgIlgkZHVw bGljYXRlX2RlcHMiID0gIlh5ZXMiIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBp bgorKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJz ICRkZXBsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRt cF9saWJzICRkZXBsaWIiCisrCSAgZG9uZSAjIGZvciBkZXBsaWIKKysJICBjb250aW51ZQorKwlm aSAjICRsaW5rbW9kZSA9IHByb2cuLi4KKysKKysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9 ICJwcm9nLGxpbmsiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisr CSAgICAgeyB7IHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMiID0gbm8gfHwKKysJCSB0ZXN0ICIk cHJlZmVyX3N0YXRpY19saWJzLCRpbnN0YWxsZWQiID0gImJ1aWx0LHllcyI7IH0gfHwKKysJICAg ICAgIHRlc3QgLXogIiRvbGRfbGlicmFyeSI7IH07IHRoZW4KKysJICAgICMgV2UgbmVlZCB0byBo YXJkY29kZSB0aGUgbGlicmFyeSBwYXRoCisrCSAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3Zh ciIgJiYgdGVzdCAteiAiJGF2b2lkdGVtcHJwYXRoIiA7IHRoZW4KKysJICAgICAgIyBNYWtlIHN1 cmUgdGhlIHJwYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgorKwkgICAgICBj YXNlICIkdGVtcF9ycGF0aCAiIGluCisrCSAgICAgICoiICRkaXIgIiopIDs7CisrCSAgICAgICoi ICRhYnNkaXIgIiopIDs7CisrCSAgICAgICopIHRlbXBfcnBhdGg9IiR0ZW1wX3JwYXRoICRhYnNk aXIiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCisrCSAgICAjIEhhcmRjb2RlIHRoZSBs aWJyYXJ5IHBhdGguCisrCSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5 c3RlbSBkZWZhdWx0IHJ1bi10aW1lCisrCSAgICAjIHNlYXJjaCBwYXRoLgorKwkgICAgY2FzZSAi ICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGFic2RpciAiKikgOzsKKysJ ICAgICopCisrCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KKysJICAgICAgKiIgJGFi c2RpciAiKikgOzsKKysJICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFi c2RpciIKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgY2FzZSAi ICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGxpYmRpciAiKikgOzsKKysJ ICAgICopCisrCSAgICAgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisrCSAgICAgICoiICRs aWJkaXIgIiopIDs7CisrCSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGgg JGxpYmRpciIKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgIGZpICMg JGxpbmttb2RlLCRwYXNzID0gcHJvZyxsaW5rLi4uCisrCisrCSAgaWYgdGVzdCAiJGFsbGRlcGxp YnMiID0geWVzICYmCisrCSAgICAgeyB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiID0gcGFz c19hbGwgfHwKKysJICAgICAgIHsgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYK KysJCSB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyI7IH07IH07IHRoZW4KKysJICAgICMgV2Ugb25s eSBuZWVkIHRvIHNlYXJjaCBmb3Igc3RhdGljIGxpYnJhcmllcworKwkgICAgY29udGludWUKKysJ ICBmaQorKwlmaQorKworKwlsaW5rX3N0YXRpYz1ubyAjIFdoZXRoZXIgdGhlIGRlcGxpYiB3aWxs IGJlIGxpbmtlZCBzdGF0aWNhbGx5CisrCXVzZV9zdGF0aWNfbGlicz0kcHJlZmVyX3N0YXRpY19s aWJzCisrCWlmIHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gYnVpbHQgJiYgdGVzdCAiJGluc3Rh bGxlZCIgPSB5ZXMgOyB0aGVuCisrCSAgdXNlX3N0YXRpY19saWJzPW5vCisrCWZpCisrCWlmIHRl c3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJgorKwkgICB7IHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMi ID0gbm8gfHwgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgfTsgdGhlbgorKwkgIGlmIHRlc3QgIiRp bnN0YWxsZWQiID0gbm87IHRoZW4KKysJICAgIG5vdGluc3RfZGVwbGlicz0iJG5vdGluc3RfZGVw bGlicyAkbGliIgorKwkgICAgbmVlZF9yZWxpbms9eWVzCisrCSAgZmkKKysJICAjIFRoaXMgaXMg YSBzaGFyZWQgbGlicmFyeQorKworKwkgICMgV2FybiBhYm91dCBwb3J0YWJpbGl0eSwgY2FuJ3Qg bGluayBhZ2FpbnN0IC1tb2R1bGUncyBvbgorKwkgICMgc29tZSBzeXN0ZW1zIChkYXJ3aW4pCisr CSAgaWYgdGVzdCAiJHNob3VsZG5vdGxpbmsiID0geWVzICYmIHRlc3QgIiRwYXNzIiA9IGxpbmsg OyB0aGVuCisrCSAgICAkZWNobworKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRo ZW4KKysJICAgICAgJGVjaG8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBleGVjdXRhYmxlICRv dXRwdXQgYWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgorKwkgICAgZWxzZQorKwkgICAgICAk ZWNobyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdh aW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgorKwkgICAgZmkKKysJICAgICRlY2hvICIqKiogJGxp bmtsaWIgaXMgbm90IHBvcnRhYmxlISIKKysJICBmaQorKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIg PSBsaWIgJiYKKysJICAgICB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiA9IHllczsgdGhlbgor KwkgICAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoLgorKwkgICAgIyBTa2lwIGRpcmVjdG9y aWVzIHRoYXQgYXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVsdCBydW4tdGltZQorKwkgICAgIyBzZWFy Y2ggcGF0aC4KKysJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KKysJICAg ICoiICRhYnNkaXIgIiopIDs7CisrCSAgICAqKQorKwkgICAgICBjYXNlICIkY29tcGlsZV9ycGF0 aCAiIGluCisrCSAgICAgICoiICRhYnNkaXIgIiopIDs7CisrCSAgICAgICopIGNvbXBpbGVfcnBh dGg9IiRjb21waWxlX3JwYXRoICRhYnNkaXIiCisrCSAgICAgIGVzYWMKKysJICAgICAgOzsKKysJ ICAgIGVzYWMKKysJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KKysJICAg ICoiICRsaWJkaXIgIiopIDs7CisrCSAgICAqKQorKwkgICAgICBjYXNlICIkZmluYWxpemVfcnBh dGggIiBpbgorKwkgICAgICAqIiAkbGliZGlyICIqKSA7OworKwkgICAgICAqKSBmaW5hbGl6ZV9y cGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiCisrCSAgICAgIGVzYWMKKysJICAgICAgOzsK KysJICAgIGVzYWMKKysJICBmaQorKworKwkgIGlmIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9t X2V4cHN5bXNfY21kcyI7IHRoZW4KKysJICAgICMgZmlndXJlIG91dCB0aGUgc29uYW1lCisrCSAg ICBzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMKKysJICAgIHJlYWxuYW1lPSIkMiIKKysJICAgIHNo aWZ0OyBzaGlmdAorKwkgICAgbGlibmFtZT1gZXZhbCBcXCRlY2hvIFwiJGxpYm5hbWVfc3BlY1wi YAorKwkgICAgIyB1c2UgZGxuYW1lIGlmIHdlIGdvdCBpdC4gaXQncyBwZXJmZWN0bHkgZ29vZCwg bm8/CisrCSAgICBpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgorKwkgICAgICBzb25hbWU9IiRk bG5hbWUiCisrCSAgICBlbGlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4KKysJICAgICAg IyBibGVoIHdpbmRvd3MKKysJICAgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICAqY3lnd2luKiB8 IG1pbmd3KikKKysJCW1ham9yPWBleHByICRjdXJyZW50IC0gJGFnZWAKKysJCXZlcnN1ZmZpeD0i LSRtYWpvciIKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAgZXZhbCBzb25hbWU9XCIkc29u YW1lX3NwZWNcIgorKwkgICAgZWxzZQorKwkgICAgICBzb25hbWU9IiRyZWFsbmFtZSIKKysJICAg IGZpCisrCisrCSAgICAjIE1ha2UgYSBuZXcgbmFtZSBmb3IgdGhlIGV4dHJhY3RfZXhwc3ltc19j bWRzIHRvIHVzZQorKwkgICAgc29yb290PSIkc29uYW1lIgorKwkgICAgc29uYW1lPWAkZWNobyAk c29yb290IHwgJHtTRUR9IC1lICdzL14uKlwvLy8nYAorKwkgICAgbmV3bGliPSJsaWJpbXAtYCRl Y2hvICRzb25hbWUgfCAke1NFRH0gJ3MvXmxpYi8vO3MvXC5kbGwkLy8nYC5hIgorKworKwkgICAg IyBJZiB0aGUgbGlicmFyeSBoYXMgbm8gZXhwb3J0IGxpc3QsIHRoZW4gY3JlYXRlIG9uZSBub3cK KysJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRzb25hbWUtZGVmIjsgdGhlbiA6Cisr CSAgICBlbHNlCisrCSAgICAgICRzaG93ICJleHRyYWN0aW5nIGV4cG9ydGVkIHN5bWJvbCBsaXN0 IGZyb20gXGAkc29uYW1lJyIKKysJICAgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisrCSAg ICAgIGNtZHM9JGV4dHJhY3RfZXhwc3ltc19jbWRzCisrCSAgICAgIGZvciBjbWQgaW4gJGNtZHM7 IGRvCisrCQlJRlM9IiRzYXZlX2lmcyIKKysJCWV2YWwgY21kPVwiJGNtZFwiCisrCQkkc2hvdyAi JGNtZCIKKysJCSRydW4gZXZhbCAiJGNtZCIgfHwgZXhpdCAkPworKwkgICAgICBkb25lCisrCSAg ICAgIElGUz0iJHNhdmVfaWZzIgorKwkgICAgZmkKKysKKysJICAgICMgQ3JlYXRlICRuZXdsaWIK KysJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRuZXdsaWIiOyB0aGVuIDo7IGVsc2UK KysJICAgICAgJHNob3cgImdlbmVyYXRpbmcgaW1wb3J0IGxpYnJhcnkgZm9yIFxgJHNvbmFtZSci CisrCSAgICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwkgICAgICBjbWRzPSRvbGRfYXJj aGl2ZV9mcm9tX2V4cHN5bXNfY21kcworKwkgICAgICBmb3IgY21kIGluICRjbWRzOyBkbworKwkJ SUZTPSIkc2F2ZV9pZnMiCisrCQlldmFsIGNtZD1cIiRjbWRcIgorKwkJJHNob3cgIiRjbWQiCisr CQkkcnVuIGV2YWwgIiRjbWQiIHx8IGV4aXQgJD8KKysJICAgICAgZG9uZQorKwkgICAgICBJRlM9 IiRzYXZlX2lmcyIKKysJICAgIGZpCisrCSAgICAjIG1ha2Ugc3VyZSB0aGUgbGlicmFyeSB2YXJp YWJsZXMgYXJlIHBvaW50aW5nIHRvIHRoZSBuZXcgbGlicmFyeQorKwkgICAgZGlyPSRvdXRwdXRf b2JqZGlyCisrCSAgICBsaW5rbGliPSRuZXdsaWIKKysJICBmaSAjIHRlc3QgLW4gIiRvbGRfYXJj aGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIKKysKKysJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJv ZyB8fCB0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rOyB0aGVuCisrCSAgICBhZGRfc2hsaWJwYXRoPQor KwkgICAgYWRkX2Rpcj0KKysJICAgIGFkZD0KKysJICAgIGxpYl9saW5rZWQ9eWVzCisrCSAgICBj YXNlICRoYXJkY29kZV9hY3Rpb24gaW4KKysJICAgIGltbWVkaWF0ZSB8IHVuc3VwcG9ydGVkKQor KwkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IG5vOyB0aGVuCisrCQlhZGQ9IiRk aXIvJGxpbmtsaWIiCisrCQljYXNlICRob3N0IGluCisrCQkgICotKi1zY28zLjJ2NS4wLlswMjRd KikgYWRkX2Rpcj0iLUwkZGlyIiA7OworKwkJICAqLSotc3lzdjQqdXcyKikgYWRkX2Rpcj0iLUwk ZGlyIiA7OworKwkJICAqLSotc3lzdjVPcGVuVU5JWCogfCAqLSotc3lzdjVVbml4V2FyZTcuWzAx XS5bMTBdKiB8IFwKKysJCSAgICAqLSotdW5peHdhcmU3KikgYWRkX2Rpcj0iLUwkZGlyIiA7Owor KwkJICAqLSotZGFyd2luKiApCisrCQkgICAgIyBpZiB0aGUgbGliIGlzIGEgbW9kdWxlIHRoZW4g d2UgY2FuIG5vdCBsaW5rIGFnYWluc3QKKysJCSAgICAjIGl0LCBzb21lb25lIGlzIGlnbm9yaW5n IHRoZSBuZXcgd2FybmluZ3MgSSBhZGRlZAorKwkJICAgIGlmIC91c3IvYmluL2ZpbGUgLUwgJGFk ZCAyPiAvZGV2L251bGwgfAorKyAgICAgICAgICAgICAgICAgICAgICAkRUdSRVAgIjogW146XSog YnVuZGxlIiA+L2Rldi9udWxsIDsgdGhlbgorKwkJICAgICAgJGVjaG8gIioqIFdhcm5pbmcsIGxp YiAkbGlua2xpYiBpcyBhIG1vZHVsZSwgbm90IGEgc2hhcmVkIGxpYnJhcnkiCisrCQkgICAgICBp ZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiIDsgdGhlbgorKwkJICAgICAgICAkZWNobworKwkJICAg ICAgICAkZWNobyAiKiogQW5kIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHN0YXRpYyBhcmNo aXZlIGF2YWlsYWJsZSIKKysJCSAgICAgICAgJGVjaG8gIioqIFRoZSBsaW5rIHdpbGwgcHJvYmFi bHkgZmFpbCwgc29ycnkiCisrCQkgICAgICBlbHNlCisrCQkgICAgICAgIGFkZD0iJGRpci8kb2xk X2xpYnJhcnkiCisrCQkgICAgICBmaQorKwkJICAgIGZpCisrCQllc2FjCisrCSAgICAgIGVsaWYg dGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0gbm87IHRoZW4KKysJCWNhc2UgJGhvc3QgaW4KKysJ CSotKi1zdW5vcyopIGFkZF9zaGxpYnBhdGg9IiRkaXIiIDs7CisrCQllc2FjCisrCQlhZGRfZGly PSItTCRkaXIiCisrCQlhZGQ9Ii1sJG5hbWUiCisrCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2Rl X3NobGlicGF0aF92YXIiID0gbm87IHRoZW4KKysJCWFkZF9zaGxpYnBhdGg9IiRkaXIiCisrCQlh ZGQ9Ii1sJG5hbWUiCisrCSAgICAgIGVsc2UKKysJCWxpYl9saW5rZWQ9bm8KKysJICAgICAgZmkK KysJICAgICAgOzsKKysJICAgIHJlbGluaykKKysJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2Rp cmVjdCIgPSB5ZXM7IHRoZW4KKysJCWFkZD0iJGRpci8kbGlua2xpYiIKKysJICAgICAgZWxpZiB0 ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KKysJCWFkZF9kaXI9Ii1MJGRpciIK KysJCSMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3Rh bGxlZCB0by4KKysJCWlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiOyB0aGVuCisrCQkgIGNh c2UgJGxpYmRpciBpbgorKwkJICAgIFtcXC9dKikKKysJCSAgICAgIGFkZF9kaXI9IiRhZGRfZGly IC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCisrCQkgICAgICA7OworKwkJICBlc2FjCisrCQlm aQorKwkJYWRkPSItbCRuYW1lIgorKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBh dGhfdmFyIiA9IHllczsgdGhlbgorKwkJYWRkX3NobGlicGF0aD0iJGRpciIKKysJCWFkZD0iLWwk bmFtZSIKKysJICAgICAgZWxzZQorKwkJbGliX2xpbmtlZD1ubworKwkgICAgICBmaQorKwkgICAg ICA7OworKwkgICAgKikgbGliX2xpbmtlZD1ubyA7OworKwkgICAgZXNhYworKworKwkgICAgaWYg dGVzdCAiJGxpYl9saW5rZWQiICE9IHllczsgdGhlbgorKwkgICAgICAkZWNobyAiJG1vZGVuYW1l OiBjb25maWd1cmF0aW9uIGVycm9yOiB1bnN1cHBvcnRlZCBoYXJkY29kZSBwcm9wZXJ0aWVzIgor KwkgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0IC1u ICIkYWRkX3NobGlicGF0aCI7IHRoZW4KKysJICAgICAgY2FzZSA6JGNvbXBpbGVfc2hsaWJwYXRo OiBpbgorKwkgICAgICAqIjokYWRkX3NobGlicGF0aDoiKikgOzsKKysJICAgICAgKikgY29tcGls ZV9zaGxpYnBhdGg9IiRjb21waWxlX3NobGlicGF0aCRhZGRfc2hsaWJwYXRoOiIgOzsKKysJICAg ICAgZXNhYworKwkgICAgZmkKKysJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVu CisrCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBjb21waWxlX2RlcGxpYnM9IiRhZGRfZGly ICRjb21waWxlX2RlcGxpYnMiCisrCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGNvbXBpbGVfZGVw bGlicz0iJGFkZCAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICB0ZXN0IC1u ICIkYWRkX2RpciIgJiYgZGVwbGlicz0iJGFkZF9kaXIgJGRlcGxpYnMiCisrCSAgICAgIHRlc3Qg LW4gIiRhZGQiICYmIGRlcGxpYnM9IiRhZGQgJGRlcGxpYnMiCisrCSAgICAgIGlmIHRlc3QgIiRo YXJkY29kZV9kaXJlY3QiICE9IHllcyAmJiBcCisrCQkgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wi ICE9IHllcyAmJiBcCisrCQkgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0 aGVuCisrCQljYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgorKwkJKiI6JGxpYmRpcjoiKikg OzsKKysJCSopIGZpbmFsaXplX3NobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCRsaWJkaXI6 IiA7OworKwkJZXNhYworKwkgICAgICBmaQorKwkgICAgZmkKKysJICBmaQorKworKwkgIGlmIHRl c3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorKwkg ICAgYWRkX3NobGlicGF0aD0KKysJICAgIGFkZF9kaXI9CisrCSAgICBhZGQ9CisrCSAgICAjIEZp bmFsaXplIGNvbW1hbmQgZm9yIGJvdGggaXMgc2ltcGxlOiBqdXN0IGhhcmRjb2RlIGl0LgorKwkg ICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSB5ZXM7IHRoZW4KKysJICAgICAgYWRkPSIk bGliZGlyLyRsaW5rbGliIgorKwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5 ZXM7IHRoZW4KKysJICAgICAgYWRkX2Rpcj0iLUwkbGliZGlyIgorKwkgICAgICBhZGQ9Ii1sJG5h bWUiCisrCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhl bgorKwkgICAgICBjYXNlIDokZmluYWxpemVfc2hsaWJwYXRoOiBpbgorKwkgICAgICAqIjokbGli ZGlyOiIqKSA7OworKwkgICAgICAqKSBmaW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxp YnBhdGgkbGliZGlyOiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisr CSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzOyB0aGVuCisrCSAgICAg IGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiICYmCisrCQkgdGVzdCAtZiAiJGluc3RfcHJl Zml4X2RpciRsaWJkaXIvJGxpbmtsaWIiIDsgdGhlbgorKwkgICAgICAgIGFkZD0iJGluc3RfcHJl Zml4X2RpciRsaWJkaXIvJGxpbmtsaWIiCisrCSAgICAgIGVsc2UKKysJICAgICAgICBhZGQ9IiRs aWJkaXIvJGxpbmtsaWIiCisrCSAgICAgIGZpCisrCSAgICBlbHNlCisrCSAgICAgICMgV2UgY2Fu bm90IHNlZW0gdG8gaGFyZGNvZGUgaXQsIGd1ZXNzIHdlJ2xsIGZha2UgaXQuCisrCSAgICAgIGFk ZF9kaXI9Ii1MJGxpYmRpciIKKysJICAgICAgIyBUcnkgbG9va2luZyBmaXJzdCBpbiB0aGUgbG9j YXRpb24gd2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgorKwkgICAgICBpZiB0ZXN0IC1uICIkaW5z dF9wcmVmaXhfZGlyIjsgdGhlbgorKwkJY2FzZSAkbGliZGlyIGluCisrCQkgIFtcXC9dKikKKysJ CSAgICBhZGRfZGlyPSIkYWRkX2RpciAtTCRpbnN0X3ByZWZpeF9kaXIkbGliZGlyIgorKwkJICAg IDs7CisrCQllc2FjCisrCSAgICAgIGZpCisrCSAgICAgIGFkZD0iLWwkbmFtZSIKKysJICAgIGZp CisrCisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICAgICB0ZXN0 IC1uICIkYWRkX2RpciIgJiYgZmluYWxpemVfZGVwbGlicz0iJGFkZF9kaXIgJGZpbmFsaXplX2Rl cGxpYnMiCisrCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGZpbmFsaXplX2RlcGxpYnM9IiRhZGQg JGZpbmFsaXplX2RlcGxpYnMiCisrCSAgICBlbHNlCisrCSAgICAgIHRlc3QgLW4gIiRhZGRfZGly IiAmJiBkZXBsaWJzPSIkYWRkX2RpciAkZGVwbGlicyIKKysJICAgICAgdGVzdCAtbiAiJGFkZCIg JiYgZGVwbGlicz0iJGFkZCAkZGVwbGlicyIKKysJICAgIGZpCisrCSAgZmkKKysJZWxpZiB0ZXN0 ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICMgSGVyZSB3ZSBhc3N1bWUgdGhhdCBvbmUg b2YgaGFyZGNvZGVfZGlyZWN0IG9yIGhhcmRjb2RlX21pbnVzX0wKKysJICAjIGlzIG5vdCB1bnN1 cHBvcnRlZC4gIFRoaXMgaXMgdmFsaWQgb24gYWxsIGtub3duIHN0YXRpYyBhbmQKKysJICAjIHNo YXJlZCBwbGF0Zm9ybXMuCisrCSAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0gdW5zdXBw b3J0ZWQ7IHRoZW4KKysJICAgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgbGlua2xpYj0iJG9s ZF9saWJyYXJ5IgorKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGlyLyRsaW5rbGliICRjb21waWxl X2RlcGxpYnMiCisrCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGlyLyRsaW5rbGliICRmaW5hbGl6 ZV9kZXBsaWJzIgorKwkgIGVsc2UKKysJICAgIGNvbXBpbGVfZGVwbGlicz0iLWwkbmFtZSAtTCRk aXIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgIGZpbmFsaXplX2RlcGxpYnM9Ii1sJG5hbWUgLUwk ZGlyICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgIGZpCisrCWVsaWYgdGVzdCAiJGJ1aWxkX2xpYnRv b2xfbGlicyIgPSB5ZXM7IHRoZW4KKysJICAjIE5vdCBhIHNoYXJlZCBsaWJyYXJ5CisrCSAgaWYg dGVzdCAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgorKwkgICAgIyBX ZSdyZSB0cnlpbmcgbGluayBhIHNoYXJlZCBsaWJyYXJ5IGFnYWluc3QgYSBzdGF0aWMgb25lCisr CSAgICAjIGJ1dCB0aGUgc3lzdGVtIGRvZXNuJ3Qgc3VwcG9ydCBpdC4KKysKKysJICAgICMgSnVz dCBwcmludCBhIHdhcm5pbmcgYW5kIGFkZCB0aGUgbGlicmFyeSB0byBkZXBlbmRlbmN5X2xpYnMg c28KKysJICAgICMgdGhhdCB0aGUgcHJvZ3JhbSBjYW4gYmUgbGlua2VkIGFnYWluc3QgdGhlIHN0 YXRpYyBsaWJyYXJ5LgorKwkgICAgJGVjaG8KKysJICAgICRlY2hvICIqKiogV2FybmluZzogVGhp cyBzeXN0ZW0gY2FuIG5vdCBsaW5rIHRvIHN0YXRpYyBsaWIgYXJjaGl2ZSAkbGliLiIKKysJICAg ICRlY2hvICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1 dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorKwkgICAgJGVjaG8gIioqKiB5b3UgbGluayB0byB0 aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisrCSAg ICAkZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8g bm90IGFwcGVhciB0byBoYXZlLiIKKysJICAgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzOyB0aGVu CisrCSAgICAgICRlY2hvICIqKiogQnV0IGFzIHlvdSB0cnkgdG8gYnVpbGQgYSBtb2R1bGUgbGli cmFyeSwgbGlidG9vbCB3aWxsIHN0aWxsIGNyZWF0ZSAiCisrCSAgICAgICRlY2hvICIqKiogYSBz dGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3BlbmluZyBh cHBsaWNhdGlvbiIKKysJICAgICAgJGVjaG8gIioqKiBpcyBsaW5rZWQgd2l0aCB0aGUgLWRsb3Bl biBmbGFnIHRvIHJlc29sdmUgc3ltYm9scyBhdCBydW50aW1lLiIKKysJICAgICAgaWYgdGVzdCAt eiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKysJCSRlY2hvCisrCQkkZWNobyAiKioqIEhv d2V2ZXIsIHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8gZXh0cmFj dCBzeW1ib2wiCisrCQkkZWNobyAiKioqIGxpc3RzIGZyb20gYSBwcm9ncmFtLCB1c2luZyBcYG5t JyBvciBlcXVpdmFsZW50LCBidXQgbGlidG9vbCBjb3VsZCIKKysJCSRlY2hvICIqKiogbm90IGZp bmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4i CisrCQkkZWNobyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBhIGZ1bGwgcmVidWls ZCBtYXkgaGVscC4iCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGli cyIgPSBubzsgdGhlbgorKwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQorKwkJYnVpbGRfb2xk X2xpYnM9eWVzCisrCSAgICAgIGVsc2UKKysJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubworKwkgICAg ICBmaQorKwkgICAgZmkKKysJICBlbHNlCisrCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFy eSAkZGVwbGlicyIKKysJICAgIGxpbmtfc3RhdGljPXllcworKwkgIGZpCisrCWZpICMgbGluayBz aGFyZWQvc3RhdGljIGxpYnJhcnk/CisrCisrCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRo ZW4KKysJICBpZiB0ZXN0IC1uICIkZGVwZW5kZW5jeV9saWJzIiAmJgorKwkgICAgIHsgdGVzdCAi JGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVzIHx8CisrCSAgICAgICB0ZXN0ICIkYnVpbGRfb2xk X2xpYnMiID0geWVzIHx8CisrCSAgICAgICB0ZXN0ICIkbGlua19zdGF0aWMiID0geWVzOyB9OyB0 aGVuCisrCSAgICAjIEV4dHJhY3QgLVIgZnJvbSBkZXBlbmRlbmN5X2xpYnMKKysJICAgIHRlbXBf ZGVwbGlicz0KKysJICAgIGZvciBsaWJkaXIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysJICAg ICAgY2FzZSAkbGliZGlyIGluCisrCSAgICAgIC1SKikgdGVtcF94cnBhdGg9YCRlY2hvICJYJGxp YmRpciIgfCAkWHNlZCAtZSAncy9eLVIvLydgCisrCQkgICBjYXNlICIgJHhycGF0aCAiIGluCisr CQkgICAqIiAkdGVtcF94cnBhdGggIiopIDs7CisrCQkgICAqKSB4cnBhdGg9IiR4cnBhdGggJHRl bXBfeHJwYXRoIjs7CisrCQkgICBlc2FjOzsKKysJICAgICAgKikgdGVtcF9kZXBsaWJzPSIkdGVt cF9kZXBsaWJzICRsaWJkaXIiOzsKKysJICAgICAgZXNhYworKwkgICAgZG9uZQorKwkgICAgZGVw ZW5kZW5jeV9saWJzPSIkdGVtcF9kZXBsaWJzIgorKwkgIGZpCisrCisrCSAgbmV3bGliX3NlYXJj aF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRhYnNkaXIiCisrCSAgIyBMaW5rIGFnYWluc3Qg dGhpcyBsaWJyYXJ5CisrCSAgdGVzdCAiJGxpbmtfc3RhdGljIiA9IG5vICYmIG5ld2RlcGVuZGVu Y3lfbGlicz0iJGFic19sYWRpci8kbGFuYW1lICRuZXdkZXBlbmRlbmN5X2xpYnMiCisrCSAgIyAu Li4gYW5kIGl0cyBkZXBlbmRlbmN5X2xpYnMKKysJICB0bXBfbGlicz0KKysJICBmb3IgZGVwbGli IGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBs aWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKKysJICAgIGlmIHRlc3QgIlgkZHVwbGljYXRlX2RlcHMi ID0gIlh5ZXMiIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorKwkgICAgICAq IiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7 CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBs aWIiCisrCSAgZG9uZQorKworKwkgIGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubzsg dGhlbgorKwkgICAgIyBBZGQgdGhlIHNlYXJjaCBwYXRocyBvZiBhbGwgZGVwZW5kZW5jeSBsaWJy YXJpZXMKKysJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysJICAgICAg Y2FzZSAkZGVwbGliIGluCisrCSAgICAgIC1MKikgcGF0aD0iJGRlcGxpYiIgOzsKKysJICAgICAg Ki5sYSkKKysJCWRpcj1gJGVjaG8gIlgkZGVwbGliIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdg CisrCQl0ZXN0ICJYJGRpciIgPSAiWCRkZXBsaWIiICYmIGRpcj0iLiIKKysJCSMgV2UgbmVlZCBh biBhYnNvbHV0ZSBwYXRoLgorKwkJY2FzZSAkZGlyIGluCisrCQlbXFwvXSogfCBbQS1aYS16XTpb XFwvXSopIGFic2Rpcj0iJGRpciIgOzsKKysJCSopCisrCQkgIGFic2Rpcj1gY2QgIiRkaXIiICYm IHB3ZGAKKysJCSAgaWYgdGVzdCAteiAiJGFic2RpciI7IHRoZW4KKysJCSAgICAkZWNobyAiJG1v ZGVuYW1lOiB3YXJuaW5nOiBjYW5ub3QgZGV0ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBuYW1l IG9mIFxgJGRpciciIDE+JjIKKysJCSAgICBhYnNkaXI9IiRkaXIiCisrCQkgIGZpCisrCQkgIDs7 CisrCQllc2FjCisrCQlpZiBncmVwICJeaW5zdGFsbGVkPW5vIiAkZGVwbGliID4gL2Rldi9udWxs OyB0aGVuCisrCQkgIHBhdGg9IiRhYnNkaXIvJG9iamRpciIKKysJCWVsc2UKKysJCSAgZXZhbCBs aWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKKysJ CSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KKysJCSAgICAkZWNobyAiJG1vZGVuYW1lOiBc YCRkZXBsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIgMT4mMgorKwkJICAgIGV4 aXQgJEVYSVRfRkFJTFVSRQorKwkJICBmaQorKwkJICBpZiB0ZXN0ICIkYWJzZGlyIiAhPSAiJGxp YmRpciI7IHRoZW4KKysJCSAgICAkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYCRkZXBsaWIn IHNlZW1zIHRvIGJlIG1vdmVkIiAxPiYyCisrCQkgIGZpCisrCQkgIHBhdGg9IiRhYnNkaXIiCisr CQlmaQorKwkJZGVwZGVwbD0KKysJCWNhc2UgJGhvc3QgaW4KKysJCSotKi1kYXJ3aW4qKQorKwkJ ICAjIHdlIGRvIG5vdCB3YW50IHRvIGxpbmsgYWdhaW5zdCBzdGF0aWMgbGlicywKKysJCSAgIyBi dXQgbmVlZCB0byBsaW5rIGFnYWluc3Qgc2hhcmVkCisrCQkgIGV2YWwgZGVwbGlicmFyeV9uYW1l cz1gJHtTRUR9IC1uIC1lICdzL15saWJyYXJ5X25hbWVzPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAK KysJCSAgZXZhbCBkZXBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEv cCcgJGRlcGxpYmAKKysJCSAgaWYgdGVzdCAtbiAiJGRlcGxpYnJhcnlfbmFtZXMiIDsgdGhlbgor KwkJICAgIGZvciB0bXAgaW4gJGRlcGxpYnJhcnlfbmFtZXMgOyBkbworKwkJICAgICAgZGVwZGVw bD0kdG1wCisrCQkgICAgZG9uZQorKwkJICAgIGlmIHRlc3QgLWYgIiRkZXBsaWJkaXIvJGRlcGRl cGwiIDsgdGhlbgorKwkJICAgICAgZGVwZGVwbD0iJGRlcGxpYmRpci8kZGVwZGVwbCIKKysJICAg ICAgCSAgICBlbGlmIHRlc3QgLWYgIiRwYXRoLyRkZXBkZXBsIiA7IHRoZW4KKysJCSAgICAgIGRl cGRlcGw9IiRwYXRoLyRkZXBkZXBsIgorKwkJICAgIGVsc2UKKysJCSAgICAgICMgQ2FuJ3QgZmlu ZCBpdCwgb2ggd2VsbC4uLgorKwkJICAgICAgZGVwZGVwbD0KKysJCSAgICBmaQorKwkJICAgICMg ZG8gbm90IGFkZCBwYXRocyB3aGljaCBhcmUgYWxyZWFkeSB0aGVyZQorKwkJICAgIGNhc2UgIiAk bmV3bGliX3NlYXJjaF9wYXRoICIgaW4KKysJCSAgICAqIiAkcGF0aCAiKikgOzsKKysJCSAgICAq KSBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJHBhdGgiOzsKKysJCSAg ICBlc2FjCisrCQkgIGZpCisrCQkgIHBhdGg9IiIKKysJCSAgOzsKKysJCSopCisrCQkgIHBhdGg9 Ii1MJHBhdGgiCisrCQkgIDs7CisrCQllc2FjCisrCQk7OworKwkgICAgICAtbCopCisrCQljYXNl ICRob3N0IGluCisrCQkqLSotZGFyd2luKikKKysJCSAgIyBBZ2Fpbiwgd2Ugb25seSB3YW50IHRv IGxpbmsgYWdhaW5zdCBzaGFyZWQgbGlicmFyaWVzCisrCQkgIGV2YWwgdG1wX2xpYnM9YCRlY2hv ICJYJGRlcGxpYiIgfCAkWHNlZCAtZSAicyxeXC1sLCwiYAorKwkJICBmb3IgdG1wIGluICRuZXds aWJfc2VhcmNoX3BhdGggOyBkbworKwkJICAgIGlmIHRlc3QgLWYgIiR0bXAvbGliJHRtcF9saWJz LmR5bGliIiA7IHRoZW4KKysJCSAgICAgIGV2YWwgZGVwZGVwbD0iJHRtcC9saWIkdG1wX2xpYnMu ZHlsaWIiCisrCQkgICAgICBicmVhaworKwkJICAgIGZpCisrCQkgIGRvbmUKKysJCSAgcGF0aD0i IgorKwkJICA7OworKwkJKikgY29udGludWUgOzsKKysJCWVzYWMKKysJCTs7CisrCSAgICAgICop IGNvbnRpbnVlIDs7CisrCSAgICAgIGVzYWMKKysJICAgICAgY2FzZSAiICRkZXBsaWJzICIgaW4K KysJICAgICAgKiIgJHBhdGggIiopIDs7CisrCSAgICAgICopIGRlcGxpYnM9IiRwYXRoICRkZXBs aWJzIiA7OworKwkgICAgICBlc2FjCisrCSAgICAgIGNhc2UgIiAkZGVwbGlicyAiIGluCisrCSAg ICAgICoiICRkZXBkZXBsICIqKSA7OworKwkgICAgICAqKSBkZXBsaWJzPSIkZGVwZGVwbCAkZGVw bGlicyIgOzsKKysJICAgICAgZXNhYworKwkgICAgZG9uZQorKwkgIGZpICMgbGlua19hbGxfZGVw bGlicyAhPSBubworKwlmaSAjIGxpbmttb2RlID0gbGliCisrICAgICAgZG9uZSAjIGZvciBkZXBs aWIgaW4gJGxpYnMKKysgICAgICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMi CisrICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCisrCSMgTGluayB0aGUg ZGxwcmVvcGVuZWQgbGlicmFyaWVzIGJlZm9yZSBvdGhlciBsaWJyYXJpZXMKKysJZm9yIGRlcGxp YiBpbiAkc2F2ZV9kZXBsaWJzOyBkbworKwkgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisr CWRvbmUKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiRwYXNzIiAhPSBkbG9wZW47IHRoZW4K KysJaWYgdGVzdCAiJHBhc3MiICE9IGNvbnY7IHRoZW4KKysJICAjIE1ha2Ugc3VyZSBsaWJfc2Vh cmNoX3BhdGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCisrCSAgbGliX3NlYXJj aF9wYXRoPQorKwkgIGZvciBkaXIgaW4gJG5ld2xpYl9zZWFyY2hfcGF0aDsgZG8KKysJICAgIGNh c2UgIiRsaWJfc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGRpciAiKikgOzsKKysJICAgICop IGxpYl9zZWFyY2hfcGF0aD0iJGxpYl9zZWFyY2hfcGF0aCAkZGlyIiA7OworKwkgICAgZXNhYwor KwkgIGRvbmUKKysJICBuZXdsaWJfc2VhcmNoX3BhdGg9CisrCWZpCisrCisrCWlmIHRlc3QgIiRs aW5rbW9kZSwkcGFzcyIgIT0gInByb2csbGluayI7IHRoZW4KKysJICB2YXJzPSJkZXBsaWJzIgor KwllbHNlCisrCSAgdmFycz0iY29tcGlsZV9kZXBsaWJzIGZpbmFsaXplX2RlcGxpYnMiCisrCWZp CisrCWZvciB2YXIgaW4gJHZhcnMgZGVwZW5kZW5jeV9saWJzOyBkbworKwkgICMgQWRkIGxpYnJh cmllcyB0byAkdmFyIGluIHJldmVyc2Ugb3JkZXIKKysJICBldmFsIHRtcF9saWJzPVwiXCQkdmFy XCIKKysJICBuZXdfbGlicz0KKysJICBmb3IgZGVwbGliIGluICR0bXBfbGliczsgZG8KKysJICAg ICMgRklYTUU6IFBlZGFudGljYWxseSwgdGhpcyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8sIHNv CisrCSAgICAjICAgICAgICB0aGF0IHNvbWUgbmFzdHkgZGVwZW5kZW5jeSBsb29wIGlzbid0IGFj Y2lkZW50YWxseQorKwkgICAgIyAgICAgICAgYnJva2VuOgorKwkgICAgI25ld19saWJzPSIkZGVw bGliICRuZXdfbGlicyIKKysJICAgICMgUHJhZ21hdGljYWxseSwgdGhpcyBzZWVtcyB0byBjYXVz ZSB2ZXJ5IGZldyBwcm9ibGVtcyBpbgorKwkgICAgIyBwcmFjdGljZToKKysJICAgIGNhc2UgJGRl cGxpYiBpbgorKwkgICAgLUwqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7CisrCSAg ICAtUiopIDs7CisrCSAgICAqKQorKwkgICAgICAjIEFuZCBoZXJlIGlzIHRoZSByZWFzb246IHdo ZW4gYSBsaWJyYXJ5IGFwcGVhcnMgbW9yZQorKwkgICAgICAjIHRoYW4gb25jZSBhcyBhbiBleHBs aWNpdCBkZXBlbmRlbmNlIG9mIGEgbGlicmFyeSwgb3IKKysJICAgICAgIyBpcyBpbXBsaWNpdGx5 IGxpbmtlZCBpbiBtb3JlIHRoYW4gb25jZSBieSB0aGUKKysJICAgICAgIyBjb21waWxlciwgaXQg aXMgY29uc2lkZXJlZCBzcGVjaWFsLCBhbmQgbXVsdGlwbGUKKysJICAgICAgIyBvY2N1cnJlbmNl cyB0aGVyZW9mIGFyZSBub3QgcmVtb3ZlZC4gIENvbXBhcmUgdGhpcworKwkgICAgICAjIHdpdGgg aGF2aW5nIHRoZSBzYW1lIGxpYnJhcnkgYmVpbmcgbGlzdGVkIGFzIGEKKysJICAgICAgIyBkZXBl bmRlbmN5IG9mIG11bHRpcGxlIG90aGVyIGxpYnJhcmllczogaW4gdGhpcyBjYXNlLAorKwkgICAg ICAjIHdlIGtub3cgKHBlZGFudGljYWxseSwgd2UgYXNzdW1lKSB0aGUgbGlicmFyeSBkb2VzIG5v dAorKwkgICAgICAjIG5lZWQgdG8gYmUgbGlzdGVkIG1vcmUgdGhhbiBvbmNlLCBzbyB3ZSBrZWVw IG9ubHkgdGhlCisrCSAgICAgICMgbGFzdCBjb3B5LiAgVGhpcyBpcyBub3QgYWx3YXlzIHJpZ2h0 LCBidXQgaXQgaXMgcmFyZQorKwkgICAgICAjIGVub3VnaCB0aGF0IHdlIHJlcXVpcmUgdXNlcnMg dGhhdCByZWFsbHkgbWVhbiB0byBwbGF5CisrCSAgICAgICMgc3VjaCB1bnBvcnRhYmxlIGxpbmtp bmcgdHJpY2tzIHRvIGxpbmsgdGhlIGxpYnJhcnkKKysJICAgICAgIyB1c2luZyAtV2wsLWxuYW1l LCBzbyB0aGF0IGxpYnRvb2wgZG9lcyBub3QgY29uc2lkZXIgaXQKKysJICAgICAgIyBmb3IgZHVw bGljYXRlIHJlbW92YWwuCisrCSAgICAgIGNhc2UgIiAkc3BlY2lhbGRlcGxpYnMgIiBpbgorKwkg ICAgICAqIiAkZGVwbGliICIqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7CisrCSAg ICAgICopCisrCQljYXNlICIgJG5ld19saWJzICIgaW4KKysJCSoiICRkZXBsaWIgIiopIDs7Cisr CQkqKSBuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiIDs7CisrCQllc2FjCisrCQk7OworKwkg ICAgICBlc2FjCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwkgIHRtcF9saWJz PQorKwkgIGZvciBkZXBsaWIgaW4gJG5ld19saWJzOyBkbworKwkgICAgY2FzZSAkZGVwbGliIGlu CisrCSAgICAtTCopCisrCSAgICAgIGNhc2UgIiAkdG1wX2xpYnMgIiBpbgorKwkgICAgICAqIiAk ZGVwbGliICIqKSA7OworKwkgICAgICAqKSB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiIDs7 CisrCSAgICAgIGVzYWMKKysJICAgICAgOzsKKysJICAgICopIHRtcF9saWJzPSIkdG1wX2xpYnMg JGRlcGxpYiIgOzsKKysJICAgIGVzYWMKKysJICBkb25lCisrCSAgZXZhbCAkdmFyPVwiJHRtcF9s aWJzXCIKKysJZG9uZSAjIGZvciB2YXIKKysgICAgICBmaQorKyAgICAgICMgTGFzdCBzdGVwOiBy ZW1vdmUgcnVudGltZSBsaWJzIGZyb20gZGVwZW5kZW5jeV9saWJzCisrICAgICAgIyAodGhleSBz dGF5IGluIGRlcGxpYnMpCisrICAgICAgdG1wX2xpYnM9CisrICAgICAgZm9yIGkgaW4gJGRlcGVu ZGVuY3lfbGlicyA7IGRvCisrCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgJGNvbXBpbGVyX2xp Yl9zZWFyY2hfcGF0aCAiIGluCisrCSoiICRpICIqKQorKwkgIGk9IiIKKysJICA7OworKwllc2Fj CisrCWlmIHRlc3QgLW4gIiRpIiA7IHRoZW4KKysJICB0bXBfbGlicz0iJHRtcF9saWJzICRpIgor KwlmaQorKyAgICAgIGRvbmUKKysgICAgICBkZXBlbmRlbmN5X2xpYnM9JHRtcF9saWJzCisrICAg IGRvbmUgIyBmb3IgcGFzcworKyAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgor KyAgICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgorKyAgICAgIGRscHJlZmlsZXM9IiRuZXdkbHBy ZWZpbGVzIgorKyAgICBmaQorKworKyAgICBjYXNlICRsaW5rbW9kZSBpbgorKyAgICBvbGRsaWIp CisrICAgICAgY2FzZSAiICRkZXBsaWJzIiBpbgorKyAgICAgICpcIC1sKiB8ICpcIC1MKikKKysJ JGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZv ciBhcmNoaXZlcyIgMT4mMiA7OworKyAgICAgIGVzYWMKKysKKysgICAgICBpZiB0ZXN0IC1uICIk ZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgorKwkkZWNo byAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVz IiAxPiYyCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkcnBhdGgiOyB0aGVuCisr CSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXJwYXRoJyBpcyBpZ25vcmVkIGZvciBhcmNo aXZlcyIgMT4mMgorKyAgICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAtbiAiJHhycGF0aCI7IHRo ZW4KKysJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtUicgaXMgaWdub3JlZCBmb3IgYXJj aGl2ZXMiIDE+JjIKKysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgLW4gIiR2aW5mbyI7IHRo ZW4KKysJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtdmVyc2lvbi1pbmZvLy12ZXJzaW9u LW51bWJlcicgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiIDE+JjIKKysgICAgICBmaQorKworKyAg ICAgIGlmIHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhlbgorKwkkZWNobyAiJG1vZGVuYW1lOiB3YXJu aW5nOiBcYC1yZWxlYXNlJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIgMT4mMgorKyAgICAgIGZp CisrCisrICAgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiB8fCB0ZXN0IC1uICIkZXhw b3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCisrCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxg LWV4cG9ydC1zeW1ib2xzJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIgMT4mMgorKyAgICAgIGZp CisrCisrICAgICAgIyBOb3cgc2V0IHRoZSB2YXJpYWJsZXMgZm9yIGJ1aWxkaW5nIG9sZCBsaWJy YXJpZXMuCisrICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCisrICAgICAgb2xkbGlicz0iJG91 dHB1dCIKKysgICAgICBvYmpzPSIkb2JqcyRvbGRfZGVwbGlicyIKKysgICAgICA7OworKworKyAg ICBsaWIpCisrICAgICAgIyBNYWtlIHN1cmUgd2Ugb25seSBnZW5lcmF0ZSBsaWJyYXJpZXMgb2Yg dGhlIGZvcm0gYGxpYk5BTUUubGEnLgorKyAgICAgIGNhc2UgJG91dHB1dG5hbWUgaW4KKysgICAg ICBsaWIqKQorKwluYW1lPWAkZWNobyAiWCRvdXRwdXRuYW1lIiB8ICRYc2VkIC1lICdzL1wubGEk Ly8nIC1lICdzL15saWIvLydgCisrCWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCisr CWV2YWwgbGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgorKwk7OworKyAgICAgICopCisrCWlmIHRl c3QgIiRtb2R1bGUiID0gbm87IHRoZW4KKysJICAkZWNobyAiJG1vZGVuYW1lOiBsaWJ0b29sIGxp YnJhcnkgXGAkb3V0cHV0JyBtdXN0IGJlZ2luIHdpdGggXGBsaWInIiAxPiYyCisrCSAgJGVjaG8g IiRoZWxwIiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCWZpCisrCWlmIHRlc3QgIiRu ZWVkX2xpYl9wcmVmaXgiICE9IG5vOyB0aGVuCisrCSAgIyBBZGQgdGhlICJsaWIiIHByZWZpeCBm b3IgbW9kdWxlcyBpZiByZXF1aXJlZAorKwkgIG5hbWU9YCRlY2hvICJYJG91dHB1dG5hbWUiIHwg JFhzZWQgLWUgJ3MvXC5sYSQvLydgCisrCSAgZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4dF9jbWRz XCIKKysJICBldmFsIGxpYm5hbWU9XCIkbGlibmFtZV9zcGVjXCIKKysJZWxzZQorKwkgIGxpYm5h bWU9YCRlY2hvICJYJG91dHB1dG5hbWUiIHwgJFhzZWQgLWUgJ3MvXC5sYSQvLydgCisrCWZpCisr CTs7CisrICAgICAgZXNhYworKworKyAgICAgIGlmIHRlc3QgLW4gIiRvYmpzIjsgdGhlbgorKwlp ZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCisrCSAgJGVj aG8gIiRtb2RlbmFtZTogY2Fubm90IGJ1aWxkIGxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIGZy b20gbm9uLWxpYnRvb2wgb2JqZWN0cyBvbiB0aGlzIGhvc3Q6JG9ianMiIDI+JjEKKysJICBleGl0 ICRFWElUX0ZBSUxVUkUKKysJZWxzZQorKwkgICRlY2hvCisrCSAgJGVjaG8gIioqKiBXYXJuaW5n OiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIG5vbi1saWJ0 b29sIgorKwkgICRlY2hvICIqKiogb2JqZWN0cyAkb2JqcyBpcyBub3QgcG9ydGFibGUhIgorKwkg IGxpYm9ianM9IiRsaWJvYmpzICRvYmpzIgorKwlmaQorKyAgICAgIGZpCisrCisrICAgICAgaWYg dGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KKysJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzog XGAtZGxvcGVuIHNlbGYnIGlzIGlnbm9yZWQgZm9yIGxpYnRvb2wgbGlicmFyaWVzIiAxPiYyCisr ICAgICAgZmkKKysKKysgICAgICBzZXQgZHVtbXkgJHJwYXRoCisrICAgICAgaWYgdGVzdCAiJCMi IC1ndCAyOyB0aGVuCisrCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IGlnbm9yaW5nIG11bHRp cGxlIFxgLXJwYXRoJ3MgZm9yIGEgbGlidG9vbCBsaWJyYXJ5IiAxPiYyCisrICAgICAgZmkKKysg ICAgICBpbnN0YWxsX2xpYmRpcj0iJDIiCisrCisrICAgICAgb2xkbGlicz0KKysgICAgICBpZiB0 ZXN0IC16ICIkcnBhdGgiOyB0aGVuCisrCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0g eWVzOyB0aGVuCisrCSAgIyBCdWlsZGluZyBhIGxpYnRvb2wgY29udmVuaWVuY2UgbGlicmFyeS4K KysJICAjIFNvbWUgY29tcGlsZXJzIGhhdmUgcHJvYmxlbXMgd2l0aCBhIGAuYWwnIGV4dGVuc2lv biBzbworKwkgICMgY29udmVuaWVuY2UgbGlicmFyaWVzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGV4 dGVuc2lvbiBhbgorKwkgICMgYXJjaGl2ZSBub3JtYWxseSB3b3VsZC4KKysJICBvbGRsaWJzPSIk b3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0ICRvbGRsaWJzIgorKwkgIGJ1aWxkX2xpYnRv b2xfbGlicz1jb252ZW5pZW5jZQorKwkgIGJ1aWxkX29sZF9saWJzPXllcworKwlmaQorKworKwlp ZiB0ZXN0IC1uICIkdmluZm8iOyB0aGVuCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzog XGAtdmVyc2lvbi1pbmZvLy12ZXJzaW9uLW51bWJlcicgaXMgaWdub3JlZCBmb3IgY29udmVuaWVu Y2UgbGlicmFyaWVzIiAxPiYyCisrCWZpCisrCisrCWlmIHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhl bgorKwkgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLXJlbGVhc2UnIGlzIGlnbm9yZWQg Zm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIgMT4mMgorKwlmaQorKyAgICAgIGVsc2UKKysKKysJ IyBQYXJzZSB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiBhcmd1bWVudC4KKysJc2F2ZV9pZnM9IiRJ RlMiOyBJRlM9JzonCisrCXNldCBkdW1teSAkdmluZm8gMCAwIDAKKysJSUZTPSIkc2F2ZV9pZnMi CisrCisrCWlmIHRlc3QgLW4gIiQ4IjsgdGhlbgorKwkgICRlY2hvICIkbW9kZW5hbWU6IHRvbyBt YW55IHBhcmFtZXRlcnMgdG8gXGAtdmVyc2lvbi1pbmZvJyIgMT4mMgorKwkgICRlY2hvICIkaGVs cCIgMT4mMgorKwkgIGV4aXQgJEVYSVRfRkFJTFVSRQorKwlmaQorKworKwkjIGNvbnZlcnQgYWJz b2x1dGUgdmVyc2lvbiBudW1iZXJzIHRvIGxpYnRvb2wgYWdlcworKwkjIHRoaXMgcmV0YWlucyBj b21wYXRpYmlsaXR5IHdpdGggLmxhIGZpbGVzIGFuZCBhdHRlbXB0cworKwkjIHRvIG1ha2UgdGhl IGNvZGUgYmVsb3cgYSBiaXQgbW9yZSBjb21wcmVoZW5zaWJsZQorKworKwljYXNlICR2aW5mb19u dW1iZXIgaW4KKysJeWVzKQorKwkgIG51bWJlcl9tYWpvcj0iJDIiCisrCSAgbnVtYmVyX21pbm9y PSIkMyIKKysJICBudW1iZXJfcmV2aXNpb249IiQ0IgorKwkgICMKKysJICAjIFRoZXJlIGFyZSBy ZWFsbHkgb25seSB0d28ga2luZHMgLS0gdGhvc2UgdGhhdAorKwkgICMgdXNlIHRoZSBjdXJyZW50 IHJldmlzaW9uIGFzIHRoZSBtYWpvciB2ZXJzaW9uCisrCSAgIyBhbmQgdGhvc2UgdGhhdCBzdWJ0 cmFjdCBhZ2UgYW5kIHVzZSBhZ2UgYXMKKysJICAjIGEgbWlub3IgdmVyc2lvbi4gIEJ1dCwgdGhl biB0aGVyZSBpcyBpcml4CisrCSAgIyB3aGljaCBoYXMgYW4gZXh0cmEgMSBhZGRlZCBqdXN0IGZv ciBmdW4KKysJICAjCisrCSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisrCSAgZGFyd2lufGxpbnV4 fG9zZnx3aW5kb3dzfG5vbmUpCisrCSAgICBjdXJyZW50PWBleHByICRudW1iZXJfbWFqb3IgKyAk bnVtYmVyX21pbm9yYAorKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorKwkgICAgcmV2aXNpb249 IiRudW1iZXJfcmV2aXNpb24iCisrCSAgICA7OworKwkgIGZyZWVic2QtYW91dHxmcmVlYnNkLWVs ZnxzdW5vcykKKysJICAgIGN1cnJlbnQ9IiRudW1iZXJfbWFqb3IiCisrCSAgICByZXZpc2lvbj0i JG51bWJlcl9taW5vciIKKysJICAgIGFnZT0iMCIKKysJICAgIDs7CisrCSAgaXJpeHxub25zdG9w dXgpCisrCSAgICBjdXJyZW50PWBleHByICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yYAor KwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorKwkgICAgcmV2aXNpb249IiRudW1iZXJfbWlub3Ii CisrCSAgICBsdF9pcml4X2luY3JlbWVudD1ubworKwkgICAgOzsKKysJICBlc2FjCisrCSAgOzsK KysJbm8pCisrCSAgY3VycmVudD0iJDIiCisrCSAgcmV2aXNpb249IiQzIgorKwkgIGFnZT0iJDQi CisrCSAgOzsKKysJZXNhYworKworKwkjIENoZWNrIHRoYXQgZWFjaCBvZiB0aGUgdGhpbmdzIGFy ZSB2YWxpZCBudW1iZXJzLgorKwljYXNlICRjdXJyZW50IGluCisrCTB8WzEtOV18WzEtOV1bMC05 XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAt OV1bMC05XSkgOzsKKysJKikKKysJICAkZWNobyAiJG1vZGVuYW1lOiBDVVJSRU5UIFxgJGN1cnJl bnQnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIiAxPiYyCisrCSAgJGVjaG8gIiRtb2Rl bmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCisr CSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgOzsKKysJZXNhYworKworKwljYXNlICRyZXZpc2lv biBpbgorKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05 XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7CisrCSopCisrCSAgJGVjaG8gIiRt b2RlbmFtZTogUkVWSVNJT04gXGAkcmV2aXNpb24nIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRl Z2VyIiAxPiYyCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2 ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgOzsK KysJZXNhYworKworKwljYXNlICRhZ2UgaW4KKysJMHxbMS05XXxbMS05XVswLTldfFsxLTldWzAt OV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XVswLTldKSA7 OworKwkqKQorKwkgICRlY2hvICIkbW9kZW5hbWU6IEFHRSBcYCRhZ2UnIG11c3QgYmUgYSBub25u ZWdhdGl2ZSBpbnRlZ2VyIiAxPiYyCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkdmluZm8nIGlz IG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlM VVJFCisrCSAgOzsKKysJZXNhYworKworKwlpZiB0ZXN0ICIkYWdlIiAtZ3QgIiRjdXJyZW50Ijsg dGhlbgorKwkgICRlY2hvICIkbW9kZW5hbWU6IEFHRSBcYCRhZ2UnIGlzIGdyZWF0ZXIgdGhhbiB0 aGUgY3VycmVudCBpbnRlcmZhY2UgbnVtYmVyIFxgJGN1cnJlbnQnIiAxPiYyCisrCSAgJGVjaG8g IiRtb2RlbmFtZTogXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIiAx PiYyCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCWZpCisrCisrCSMgQ2FsY3VsYXRlIHRoZSB2 ZXJzaW9uIHZhcmlhYmxlcy4KKysJbWFqb3I9CisrCXZlcnN1ZmZpeD0KKysJdmVyc3RyaW5nPQor KwljYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysJbm9uZSkgOzsKKysKKysJZGFyd2luKQorKwkgICMg TGlrZSBMaW51eCwgYnV0IHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBhdmFpbGFibGUgaW4KKysJ ICAjIHZlcnN0cmluZyBmb3IgY29kaW5nIGl0IGludG8gdGhlIGxpYnJhcnkgaGVhZGVyCisrCSAg bWFqb3I9LmBleHByICRjdXJyZW50IC0gJGFnZWAKKysJICB2ZXJzdWZmaXg9IiRtYWpvci4kYWdl LiRyZXZpc2lvbiIKKysJICAjIERhcndpbiBsZCBkb2Vzbid0IGxpa2UgMCBmb3IgdGhlc2Ugb3B0 aW9ucy4uLgorKwkgIG1pbm9yX2N1cnJlbnQ9YGV4cHIgJGN1cnJlbnQgKyAxYAorKwkgIHhsY3Zl cnN0cmluZz0iJHt3bH0tY29tcGF0aWJpbGl0eV92ZXJzaW9uICR7d2x9JG1pbm9yX2N1cnJlbnQg JHt3bH0tY3VycmVudF92ZXJzaW9uICR7d2x9JG1pbm9yX2N1cnJlbnQuJHJldmlzaW9uIgorKwkg IHZlcnN0cmluZz0iLWNvbXBhdGliaWxpdHlfdmVyc2lvbiAkbWlub3JfY3VycmVudCAtY3VycmVu dF92ZXJzaW9uICRtaW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKKysJICA7OworKworKwlmcmVlYnNk LWFvdXQpCisrCSAgbWFqb3I9Ii4kY3VycmVudCIKKysJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4k cmV2aXNpb24iOworKwkgIDs7CisrCisrCWZyZWVic2QtZWxmKQorKwkgIG1ham9yPSIuJGN1cnJl bnQiCisrCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQiOworKwkgIDs7CisrCisrCWlyaXggfCBub25z dG9wdXgpCisrCSAgaWYgdGVzdCAiWCRsdF9pcml4X2luY3JlbWVudCIgPSAiWG5vIjsgdGhlbgor KwkgICAgbWFqb3I9YGV4cHIgJGN1cnJlbnQgLSAkYWdlYAorKwkgIGVsc2UKKysJICAgIG1ham9y PWBleHByICRjdXJyZW50IC0gJGFnZSArIDFgCisrCSAgZmkKKysJICBjYXNlICR2ZXJzaW9uX3R5 cGUgaW4KKysJICAgIG5vbnN0b3B1eCkgdmVyc3RyaW5nX3ByZWZpeD1ub25zdG9wdXggOzsKKysJ ICAgICopICAgICAgICAgdmVyc3RyaW5nX3ByZWZpeD1zZ2kgOzsKKysJICBlc2FjCisrCSAgdmVy c3RyaW5nPSIkdmVyc3RyaW5nX3ByZWZpeCRtYWpvci4kcmV2aXNpb24iCisrCisrCSAgIyBBZGQg aW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KKysJICBs b29wPSRyZXZpc2lvbgorKwkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUgMDsgZG8KKysJICAgIGlm YWNlPWBleHByICRyZXZpc2lvbiAtICRsb29wYAorKwkgICAgbG9vcD1gZXhwciAkbG9vcCAtIDFg CisrCSAgICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmdfcHJlZml4JG1ham9yLiRpZmFjZTokdmVyc3Ry aW5nIgorKwkgIGRvbmUKKysKKysJICAjIEJlZm9yZSB0aGlzIHBvaW50LCAkbWFqb3IgbXVzdCBu b3QgY29udGFpbiBgLicuCisrCSAgbWFqb3I9LiRtYWpvcgorKwkgIHZlcnN1ZmZpeD0iJG1ham9y LiRyZXZpc2lvbiIKKysJICA7OworKworKwlsaW51eCkKKysJICBtYWpvcj0uYGV4cHIgJGN1cnJl bnQgLSAkYWdlYAorKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgorKwkgIDs7 CisrCisrCW9zZikKKysJICBtYWpvcj0uYGV4cHIgJGN1cnJlbnQgLSAkYWdlYAorKwkgIHZlcnN1 ZmZpeD0iLiRjdXJyZW50LiRhZ2UuJHJldmlzaW9uIgorKwkgIHZlcnN0cmluZz0iJGN1cnJlbnQu JGFnZS4kcmV2aXNpb24iCisrCisrCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQg d2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KKysJICBsb29wPSRhZ2UKKysJICB3aGlsZSB0ZXN0ICIk bG9vcCIgLW5lIDA7IGRvCisrCSAgICBpZmFjZT1gZXhwciAkY3VycmVudCAtICRsb29wYAorKwkg ICAgbG9vcD1gZXhwciAkbG9vcCAtIDFgCisrCSAgICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6JHtp ZmFjZX0uMCIKKysJICBkb25lCisrCisrCSAgIyBNYWtlIGV4ZWN1dGFibGVzIGRlcGVuZCBvbiBv dXIgY3VycmVudCB2ZXJzaW9uLgorKwkgIHZlcnN0cmluZz0iJHZlcnN0cmluZzoke2N1cnJlbnR9 LjAiCisrCSAgOzsKKysKKysJc3Vub3MpCisrCSAgbWFqb3I9Ii4kY3VycmVudCIKKysJICB2ZXJz dWZmaXg9Ii4kY3VycmVudC4kcmV2aXNpb24iCisrCSAgOzsKKysKKysJd2luZG93cykKKysJICAj IFVzZSAnLScgcmF0aGVyIHRoYW4gJy4nLCBzaW5jZSB3ZSBvbmx5IHdhbnQgb25lCisrCSAgIyBl eHRlbnNpb24gb24gRE9TIDguMyBmaWxlc3lzdGVtcy4KKysJICBtYWpvcj1gZXhwciAkY3VycmVu dCAtICRhZ2VgCisrCSAgdmVyc3VmZml4PSItJG1ham9yIgorKwkgIDs7CisrCisrCSopCisrCSAg JGVjaG8gIiRtb2RlbmFtZTogdW5rbm93biBsaWJyYXJ5IHZlcnNpb24gdHlwZSBcYCR2ZXJzaW9u X3R5cGUnIiAxPiYyCisrCSAgJGVjaG8gIkZhdGFsIGNvbmZpZ3VyYXRpb24gZXJyb3IuICBTZWUg dGhlICRQQUNLQUdFIGRvY3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAxPiYyCisrCSAgZXhpdCAk RVhJVF9GQUlMVVJFCisrCSAgOzsKKysJZXNhYworKworKwkjIENsZWFyIHRoZSB2ZXJzaW9uIGlu Zm8gaWYgd2UgZGVmYXVsdGVkLCBhbmQgdGhleSBzcGVjaWZpZWQgYSByZWxlYXNlLgorKwlpZiB0 ZXN0IC16ICIkdmluZm8iICYmIHRlc3QgLW4gIiRyZWxlYXNlIjsgdGhlbgorKwkgIG1ham9yPQor KwkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgorKwkgIGRhcndpbikKKysJICAgICMgd2UgY2FuJ3Qg Y2hlY2sgZm9yICIwLjAiIGluIGFyY2hpdmVfY21kcyBkdWUgdG8gcXVvdGluZworKwkgICAgIyBw cm9ibGVtcywgc28gd2UgcmVzZXQgaXQgY29tcGxldGVseQorKwkgICAgdmVyc3RyaW5nPQorKwkg ICAgOzsKKysJICAqKQorKwkgICAgdmVyc3RyaW5nPSIwLjAiCisrCSAgICA7OworKwkgIGVzYWMK KysJICBpZiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCisrCSAgICB2ZXJzdWZmaXg9 CisrCSAgZWxzZQorKwkgICAgdmVyc3VmZml4PSIuMC4wIgorKwkgIGZpCisrCWZpCisrCisrCSMg UmVtb3ZlIHZlcnNpb24gaW5mbyBmcm9tIG5hbWUgaWYgdmVyc2lvbmluZyBzaG91bGQgYmUgYXZv aWRlZAorKwlpZiB0ZXN0ICIkYXZvaWRfdmVyc2lvbiIgPSB5ZXMgJiYgdGVzdCAiJG5lZWRfdmVy c2lvbiIgPSBubzsgdGhlbgorKwkgIG1ham9yPQorKwkgIHZlcnN1ZmZpeD0KKysJICB2ZXJzdHJp bmc9IiIKKysJZmkKKysKKysJIyBDaGVjayB0byBzZWUgaWYgdGhlIGFyY2hpdmUgd2lsbCBoYXZl IHVuZGVmaW5lZCBzeW1ib2xzLgorKwlpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkIiA9IHllczsg dGhlbgorKwkgIGlmIHRlc3QgIiRhbGxvd191bmRlZmluZWRfZmxhZyIgPSB1bnN1cHBvcnRlZDsg dGhlbgorKwkgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogdW5kZWZpbmVkIHN5bWJvbHMg bm90IGFsbG93ZWQgaW4gJGhvc3Qgc2hhcmVkIGxpYnJhcmllcyIgMT4mMgorKwkgICAgYnVpbGRf bGlidG9vbF9saWJzPW5vCisrCSAgICBidWlsZF9vbGRfbGlicz15ZXMKKysJICBmaQorKwllbHNl CisrCSAgIyBEb24ndCBhbGxvdyB1bmRlZmluZWQgc3ltYm9scy4KKysJICBhbGxvd191bmRlZmlu ZWRfZmxhZz0iJG5vX3VuZGVmaW5lZF9mbGFnIgorKwlmaQorKyAgICAgIGZpCisrCisrICAgICAg aWYgdGVzdCAiJG1vZGUiICE9IHJlbGluazsgdGhlbgorKwkjIFJlbW92ZSBvdXIgb3V0cHV0cywg YnV0IGRvbid0IHJlbW92ZSBvYmplY3QgZmlsZXMgc2luY2UgdGhleQorKwkjIG1heSBoYXZlIGJl ZW4gY3JlYXRlZCB3aGVuIGNvbXBpbGluZyBQSUMgb2JqZWN0cy4KKysJcmVtb3ZlbGlzdD0KKysJ dGVtcHJlbW92ZWxpc3Q9YCRlY2hvICIkb3V0cHV0X29iamRpci8qImAKKysJZm9yIHAgaW4gJHRl bXByZW1vdmVsaXN0OyBkbworKwkgIGNhc2UgJHAgaW4KKysJICAgICouJG9iamV4dCkKKysJICAg ICAgIDs7CisrCSAgICAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSB8ICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLiogfCAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9JHtyZWxlYXNlfS4qKQorKwkg ICAgICAgaWYgdGVzdCAiWCRwcmVjaW91c19maWxlc19yZWdleCIgIT0gIlgiOyB0aGVuCisrCSAg ICAgICAgIGlmIGVjaG8gJHAgfCAkRUdSRVAgLWUgIiRwcmVjaW91c19maWxlc19yZWdleCIgPi9k ZXYvbnVsbCAyPiYxCisrCSAgICAgICAgIHRoZW4KKysJCSAgIGNvbnRpbnVlCisrCQkgZmkKKysJ ICAgICAgIGZpCisrCSAgICAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlzdCAkcCIKKysJICAgICAg IDs7CisrCSAgICAqKSA7OworKwkgIGVzYWMKKysJZG9uZQorKwlpZiB0ZXN0IC1uICIkcmVtb3Zl bGlzdCI7IHRoZW4KKysJICAkc2hvdyAiJHtybX1yICRyZW1vdmVsaXN0IgorKwkgICRydW4gJHty bX1yICRyZW1vdmVsaXN0CisrCWZpCisrICAgICAgZmkKKysKKysgICAgICAjIE5vdyBzZXQgdGhl IHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KKysgICAgICBpZiB0ZXN0ICIk YnVpbGRfb2xkX2xpYnMiID0geWVzICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IGNv bnZlbmllbmNlIDsgdGhlbgorKwlvbGRsaWJzPSIkb2xkbGlicyAkb3V0cHV0X29iamRpci8kbGli bmFtZS4kbGliZXh0IgorKworKwkjIFRyYW5zZm9ybSAubG8gZmlsZXMgdG8gLm8gZmlsZXMuCisr CW9sZG9ianM9IiRvYmpzICJgJGVjaG8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAn L1wuJyR7bGliZXh0fSckL2QnIC1lICIkbG8ybyIgfCAkTkwyU1BgCisrICAgICAgZmkKKysKKysg ICAgICAjIEVsaW1pbmF0ZSBhbGwgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzLgorKyAgICAgICNmb3Ig cGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbworKyAgICAgICMJbGliX3NlYXJjaF9wYXRoPWAkZWNo byAiJGxpYl9zZWFyY2hfcGF0aCAiIHwgJHtTRUR9IC1lICJzJSAkcGF0aCAlICVnImAKKysgICAg ICAjCWRlcGxpYnM9YCRlY2hvICIkZGVwbGlicyAiIHwgJHtTRUR9IC1lICJzJSAtTCRwYXRoICUg JWciYAorKyAgICAgICMJZGVwZW5kZW5jeV9saWJzPWAkZWNobyAiJGRlcGVuZGVuY3lfbGlicyAi IHwgJHtTRUR9IC1lICJzJSAtTCRwYXRoICUgJWciYAorKyAgICAgICNkb25lCisrCisrICAgICAg aWYgdGVzdCAtbiAiJHhycGF0aCI7IHRoZW4KKysJIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW55 IHJwYXRoIGZsYWdzLCB0aGVuIGFkZCB0aGVtLgorKwl0ZW1wX3hycGF0aD0KKysJZm9yIGxpYmRp ciBpbiAkeHJwYXRoOyBkbworKwkgIHRlbXBfeHJwYXRoPSIkdGVtcF94cnBhdGggLVIkbGliZGly IgorKwkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisrCSAgKiIgJGxpYmRpciAiKikgOzsK KysJICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRoICRsaWJkaXIiIDs7CisrCSAg ZXNhYworKwlkb25lCisrCWlmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiICE9IHllcyB8fCB0 ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisrCSAgZGVwZW5kZW5jeV9saWJzPSIk dGVtcF94cnBhdGggJGRlcGVuZGVuY3lfbGlicyIKKysJZmkKKysgICAgICBmaQorKworKyAgICAg ICMgTWFrZSBzdXJlIGRsZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMgdGhhdCB3b24n dCBiZSBkbHByZW9wZW5lZAorKyAgICAgIG9sZF9kbGZpbGVzPSIkZGxmaWxlcyIKKysgICAgICBk bGZpbGVzPQorKyAgICAgIGZvciBsaWIgaW4gJG9sZF9kbGZpbGVzOyBkbworKwljYXNlICIgJGRs cHJlZmlsZXMgJGRsZmlsZXMgIiBpbgorKwkqIiAkbGliICIqKSA7OworKwkqKSBkbGZpbGVzPSIk ZGxmaWxlcyAkbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKworKyAgICAgICMgTWFrZSBz dXJlIGRscHJlZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMKKysgICAgICBvbGRfZGxw cmVmaWxlcz0iJGRscHJlZmlsZXMiCisrICAgICAgZGxwcmVmaWxlcz0KKysgICAgICBmb3IgbGli IGluICRvbGRfZGxwcmVmaWxlczsgZG8KKysJY2FzZSAiJGRscHJlZmlsZXMgIiBpbgorKwkqIiAk bGliICIqKSA7OworKwkqKSBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliIiA7OworKwllc2Fj CisrICAgICAgZG9uZQorKworKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0g eWVzOyB0aGVuCisrCWlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KKysJICBjYXNlICRob3N0IGlu CisrCSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAq LSotYmVvcyopCisrCSAgICAjIHRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIGMg bGlicmFyeSAoYXMgc3VjaCkhCisrCSAgICA7OworKwkgICotKi1yaGFwc29keSogfCAqLSotZGFy d2luMS5bMDEyXSkKKysJICAgICMgUmhhcHNvZHkgQyBsaWJyYXJ5IGlzIGluIHRoZSBTeXN0ZW0g ZnJhbWV3b3JrCisrCSAgICBkZXBsaWJzPSIkZGVwbGlicyAtZnJhbWV3b3JrIFN5c3RlbSIKKysJ ICAgIDs7CisrCSAgKi0qLW5ldGJzZCopCisrCSAgICAjIERvbid0IGxpbmsgd2l0aCBsaWJjIHVu dGlsIHRoZSBhLm91dCBsZC5zbyBpcyBmaXhlZC4KKysJICAgIDs7CisrCSAgKi0qLW9wZW5ic2Qq IHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCisrCSAgICAjIERvIG5vdCBpbmNsdWRl IGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4KKysJICAgIDs7CisrCSAgKi0qLXNj bzMuMnY1KiB8ICotKi1zY281djYqKQorKwkgICAgIyBDYXVzZXMgcHJvYmxlbXMgd2l0aCBfX2N0 eXBlCisrCSAgICA7OworKwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAqLSotdW5p eHdhcmUqIHwgKi0qLU9wZW5VTklYKikKKysJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBsaWJjIGlu IHRoZSBjb3JyZWN0IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKKysJICAgIDs7CisrIAkgICop CisrCSAgICAjIEFkZCBsaWJjIHRvIGRlcGxpYnMgb24gYWxsIG90aGVyIHN5c3RlbXMgaWYgbmVj ZXNzYXJ5LgorKwkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbmVlZF9sYyIgPSAieWVzIjsg dGhlbgorKwkgICAgICBkZXBsaWJzPSIkZGVwbGlicyAtbGMiCisrCSAgICBmaQorKwkgICAgOzsK KysJICBlc2FjCisrCWZpCisrCisrCSMgVHJhbnNmb3JtIGRlcGxpYnMgaW50byBvbmx5IGRlcGxp YnMgdGhhdCBjYW4gYmUgbGlua2VkIGluIHNoYXJlZC4KKysJbmFtZV9zYXZlPSRuYW1lCisrCWxp Ym5hbWVfc2F2ZT0kbGlibmFtZQorKwlyZWxlYXNlX3NhdmU9JHJlbGVhc2UKKysJdmVyc3VmZml4 X3NhdmU9JHZlcnN1ZmZpeAorKwltYWpvcl9zYXZlPSRtYWpvcgorKwkjIEknbSBub3Qgc3VyZSBp ZiBJJ20gdHJlYXRpbmcgdGhlIHJlbGVhc2UgY29ycmVjdGx5LiAgSSB0aGluaworKwkjIHJlbGVh c2Ugc2hvdWxkIHNob3cgdXAgaW4gdGhlIC1sIChpZSAtbGdtcDUpIHNvIHdlIGRvbid0IHdhbnQg dG8KKysJIyBhZGQgaXQgaW4gdHdpY2UuICBJcyB0aGF0IGNvcnJlY3Q/CisrCXJlbGVhc2U9IiIK KysJdmVyc3VmZml4PSIiCisrCW1ham9yPSIiCisrCW5ld2RlcGxpYnM9CisrCWRyb3BwZWRkZXBz PW5vCisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCXBhc3NfYWxsKQorKwkgICMg RG9uJ3QgY2hlY2sgZm9yIHNoYXJlZC9zdGF0aWMuICBFdmVyeXRoaW5nIHdvcmtzLgorKwkgICMg VGhpcyBtaWdodCBiZSBhIGxpdHRsZSBuYWl2ZS4gIFdlIG1pZ2h0IHdhbnQgdG8gY2hlY2sKKysJ ICAjIHdoZXRoZXIgdGhlIGxpYnJhcnkgZXhpc3RzIG9yIG5vdC4gIEJ1dCB0aGlzIGlzIG9uCisr CSAgIyBvc2YzICYgb3NmNCBhbmQgSSdtIG5vdCByZWFsbHkgc3VyZS4uLiBKdXN0CisrCSAgIyBp bXBsZW1lbnRpbmcgd2hhdCB3YXMgYWxyZWFkeSB0aGUgYmVoYXZpb3IuCisrCSAgbmV3ZGVwbGli cz0kZGVwbGlicworKwkgIDs7CisrCXRlc3RfY29tcGlsZSkKKysJICAjIFRoaXMgY29kZSBzdHJl c3NlcyB0aGUgImxpYnJhcmllcyBhcmUgcHJvZ3JhbXMiIHBhcmFkaWdtIHRvIGl0cworKwkgICMg bGltaXRzLiBNYXliZSBldmVuIGJyZWFrcyBpdC4gIFdlIGNvbXBpbGUgYSBwcm9ncmFtLCBsaW5r aW5nIGl0CisrCSAgIyBhZ2FpbnN0IHRoZSBkZXBsaWJzIGFzIGEgcHJveHkgZm9yIHRoZSBsaWJy YXJ5LiAgVGhlbiB3ZSBjYW4gY2hlY2sKKysJICAjIHdoZXRoZXIgdGhleSBsaW5rZWQgaW4gc3Rh dGljYWxseSBvciBkeW5hbWljYWxseSB3aXRoIGxkZC4KKysJICAkcm0gY29uZnRlc3QuYworKwkg IGNhdCA+IGNvbmZ0ZXN0LmMgPDxFT0YKKysJICBpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0KKytF T0YKKysJICAkcm0gY29uZnRlc3QKKysJICBpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3Qg Y29uZnRlc3QuYyAkZGVwbGliczsgdGhlbgorKwkgICAgbGRkX291dHB1dD1gbGRkIGNvbmZ0ZXN0 YAorKwkgICAgZm9yIGkgaW4gJGRlcGxpYnM7IGRvCisrCSAgICAgIG5hbWU9YGV4cHIgJGkgOiAn LWxcKC4qXCknYAorKwkgICAgICAjIElmICRuYW1lIGlzIGVtcHR5IHdlIGFyZSBvcGVyYXRpbmcg b24gYSAtTCBhcmd1bWVudC4KKysgICAgICAgICAgICAgIGlmIHRlc3QgIiRuYW1lIiAhPSAiIiAm JiB0ZXN0ICIkbmFtZSIgIT0gIjAiOyB0aGVuCisrCQlpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xf bGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCQkgIGNhc2UgIiAk cHJlZGVwcyAkcG9zdGRlcHMgIiBpbgorKwkJICAqIiAkaSAiKikKKysJCSAgICBuZXdkZXBsaWJz PSIkbmV3ZGVwbGlicyAkaSIKKysJCSAgICBpPSIiCisrCQkgICAgOzsKKysJCSAgZXNhYworKwkg ICAgICAgIGZpCisrCQlpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCisrCQkgIGxpYm5hbWU9YGV2YWwg XFwkZWNobyBcIiRsaWJuYW1lX3NwZWNcImAKKysJCSAgZGVwbGliX21hdGNoZXM9YGV2YWwgXFwk ZWNobyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcImAKKysJCSAgc2V0IGR1bW15ICRkZXBsaWJfbWF0 Y2hlcworKwkJICBkZXBsaWJfbWF0Y2g9JDIKKysJCSAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRw dXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhlbgorKwkJICAgIG5ld2RlcGxpYnM9 IiRuZXdkZXBsaWJzICRpIgorKwkJICBlbHNlCisrCQkgICAgZHJvcHBlZGRlcHM9eWVzCisrCQkg ICAgJGVjaG8KKysJCSAgICAkZWNobyAiKioqIFdhcm5pbmc6IGR5bmFtaWMgbGlua2VyIGRvZXMg bm90IGFjY2VwdCBuZWVkZWQgbGlicmFyeSAkaS4iCisrCQkgICAgJGVjaG8gIioqKiBJIGhhdmUg dGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGlu IHdoZW4iCisrCQkgICAgJGVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQg SSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisrCQkgICAgJGVjaG8gIioqKiBzaGFy ZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggSSBiZWxpZXZlIHlvdSBkbyBub3QgaGF2 ZSIKKysJCSAgICAkZWNobyAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0 aGF0IHRoZSBsaW5rZXIgZGlkIG5vdCB1c2UgaXQgZm9yIgorKwkJICAgICRlY2hvICIqKiogaXRz IGR5bmFtaWMgZGVwZW5kZW5jeSBsaXN0IHRoYXQgcHJvZ3JhbXMgZ2V0IHJlc29sdmVkIHdpdGgg YXQgcnVudGltZS4iCisrCQkgIGZpCisrCQlmaQorKwkgICAgICBlbHNlCisrCQluZXdkZXBsaWJz PSIkbmV3ZGVwbGlicyAkaSIKKysJICAgICAgZmkKKysJICAgIGRvbmUKKysJICBlbHNlCisrCSAg ICAjIEVycm9yIG9jY3VycmVkIGluIHRoZSBmaXJzdCBjb21waWxlLiAgTGV0J3MgdHJ5IHRvIHNh bHZhZ2UKKysJICAgICMgdGhlIHNpdHVhdGlvbjogQ29tcGlsZSBhIHNlcGFyYXRlIHByb2dyYW0g Zm9yIGVhY2ggbGlicmFyeS4KKysJICAgIGZvciBpIGluICRkZXBsaWJzOyBkbworKwkgICAgICBu YW1lPWBleHByICRpIDogJy1sXCguKlwpJ2AKKysJICAgICAgIyBJZiAkbmFtZSBpcyBlbXB0eSB3 ZSBhcmUgb3BlcmF0aW5nIG9uIGEgLUwgYXJndW1lbnQuCisrICAgICAgICAgICAgICBpZiB0ZXN0 ICIkbmFtZSIgIT0gIiIgJiYgdGVzdCAiJG5hbWUiICE9ICIwIjsgdGhlbgorKwkJJHJtIGNvbmZ0 ZXN0CisrCQlpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAkaTsgdGhl bgorKwkJICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3RgCisrCQkgIGlmIHRlc3QgIlgkYWxsb3df bGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKysJCSAg ICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJCSAgICAqIiAkaSAiKikKKysJCSAg ICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorKwkJICAgICAgaT0iIgorKwkJICAgICAg OzsKKysJCSAgICBlc2FjCisrCQkgIGZpCisrCQkgIGlmIHRlc3QgLW4gIiRpIiA7IHRoZW4KKysJ CSAgICBsaWJuYW1lPWBldmFsIFxcJGVjaG8gXCIkbGlibmFtZV9zcGVjXCJgCisrCQkgICAgZGVw bGliX21hdGNoZXM9YGV2YWwgXFwkZWNobyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNcImAKKysJCSAg ICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVzCisrCQkgICAgZGVwbGliX21hdGNoPSQyCisrCQkg ICAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1uZSAw IDsgdGhlbgorKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQkgICAgZWxz ZQorKwkJICAgICAgZHJvcHBlZGRlcHM9eWVzCisrCQkgICAgICAkZWNobworKwkJICAgICAgJGVj aG8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQgbmVlZGVkIGxp YnJhcnkgJGkuIgorKwkJICAgICAgJGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8g bWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisrCQkgICAgICAk ZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRo aXMgaWYgeW91IGhhdmUgYSIKKysJCSAgICAgICRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2Yg dGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisrCQkgICAgICAk ZWNobyAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBsaW5r ZXIgZGlkIG5vdCB1c2UgdGhpcyBvbmUiCisrCQkgICAgICAkZWNobyAiKioqIGFzIGEgZHluYW1p YyBkZXBlbmRlbmN5IHRoYXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRp bWUuIgorKwkJICAgIGZpCisrCQkgIGZpCisrCQllbHNlCisrCQkgIGRyb3BwZWRkZXBzPXllcwor KwkJICAkZWNobworKwkJICAkZWNobyAiKioqIFdhcm5pbmchICBMaWJyYXJ5ICRpIGlzIG5lZWRl ZCBieSB0aGlzIGxpYnJhcnkgYnV0IEkgd2FzIG5vdCBhYmxlIHRvIgorKwkJICAkZWNobyAiKioq IG1ha2UgaXQgbGluayBpbiEgIFlvdSB3aWxsIHByb2JhYmx5IG5lZWQgdG8gaW5zdGFsbCBpdCBv ciBzb21lIgorKwkJICAkZWNobyAiKioqIGxpYnJhcnkgdGhhdCBpdCBkZXBlbmRzIG9uIGJlZm9y ZSB0aGlzIGxpYnJhcnkgd2lsbCBiZSBmdWxseSIKKysJCSAgJGVjaG8gIioqKiBmdW5jdGlvbmFs LiAgSW5zdGFsbGluZyBpdCBiZWZvcmUgY29udGludWluZyB3b3VsZCBiZSBldmVuIGJldHRlci4i CisrCQlmaQorKwkgICAgICBlbHNlCisrCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKKysJ ICAgICAgZmkKKysJICAgIGRvbmUKKysJICBmaQorKwkgIDs7CisrCWZpbGVfbWFnaWMqKQorKwkg IHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2QKKysJICBmaWxlX21hZ2ljX3JlZ2V4PWBl eHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQyIFwoLipcKSJgCisrCSAgZm9yIGFfZGVw bGliIGluICRkZXBsaWJzOyBkbworKwkgICAgbmFtZT1gZXhwciAkYV9kZXBsaWIgOiAnLWxcKC4q XCknYAorKwkgICAgIyBJZiAkbmFtZSBpcyBlbXB0eSB3ZSBhcmUgb3BlcmF0aW5nIG9uIGEgLUwg YXJndW1lbnQuCisrICAgICAgICAgICAgaWYgdGVzdCAiJG5hbWUiICE9ICIiICYmIHRlc3QgICIk bmFtZSIgIT0gIjAiOyB0aGVuCisrCSAgICAgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJz X3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KKysJCWNhc2UgIiAkcHJlZGVw cyAkcG9zdGRlcHMgIiBpbgorKwkJKiIgJGFfZGVwbGliICIqKQorKwkJICBuZXdkZXBsaWJzPSIk bmV3ZGVwbGlicyAkYV9kZXBsaWIiCisrCQkgIGFfZGVwbGliPSIiCisrCQkgIDs7CisrCQllc2Fj CisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCisrCQls aWJuYW1lPWBldmFsIFxcJGVjaG8gXCIkbGlibmFtZV9zcGVjXCJgCisrCQlmb3IgaSBpbiAkbGli X3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aDsgZG8K KysJCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4tXSogMj4vZGV2L251bGxgCisr CQkgIGZvciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGliczsgZG8KKysJCSAgICAgICMgRm9s bG93IHNvZnQgbGlua3MuCisrCQkgICAgICBpZiBscyAtbExkICIkcG90ZW50X2xpYiIgMj4vZGV2 L251bGwgXAorKwkJCSB8IGdyZXAgIiAtPiAiID4vZGV2L251bGw7IHRoZW4KKysJCQljb250aW51 ZQorKwkJICAgICAgZmkKKysJCSAgICAgICMgVGhlIHN0YXRlbWVudCBhYm92ZSB0cmllcyB0byBh dm9pZCBlbnRlcmluZyBhbgorKwkJICAgICAgIyBlbmRsZXNzIGxvb3AgYmVsb3csIGluIGNhc2Ug b2YgY3ljbGljIGxpbmtzLgorKwkJICAgICAgIyBXZSBtaWdodCBzdGlsbCBlbnRlciBhbiBlbmRs ZXNzIGxvb3AsIHNpbmNlIGEgbGluaworKwkJICAgICAgIyBsb29wIGNhbiBiZSBjbG9zZWQgd2hp bGUgd2UgZm9sbG93IGxpbmtzLAorKwkJICAgICAgIyBidXQgc28gd2hhdD8KKysJCSAgICAgIHBv dGxpYj0iJHBvdGVudF9saWIiCisrCQkgICAgICB3aGlsZSB0ZXN0IC1oICIkcG90bGliIiAyPi9k ZXYvbnVsbDsgZG8KKysJCQlwb3RsaWJsaW5rPWBscyAtbGQgJHBvdGxpYiB8ICR7U0VEfSAncy8u KiAtPiAvLydgCisrCQkJY2FzZSAkcG90bGlibGluayBpbgorKwkJCVtcXC9dKiB8IFtBLVphLXpd OltcXC9dKikgcG90bGliPSIkcG90bGlibGluayI7OworKwkJCSopIHBvdGxpYj1gJGVjaG8gIlgk cG90bGliIiB8ICRYc2VkIC1lICdzLFteL10qJCwsJ2AiJHBvdGxpYmxpbmsiOzsKKysJCQllc2Fj CisrCQkgICAgICBkb25lCisrCQkgICAgICBpZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcIlwkcG90 bGliXCIgMj4vZGV2L251bGwgXAorKwkJCSB8ICR7U0VEfSAxMHEgXAorKwkJCSB8ICRFR1JFUCAi JGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisrCQkJbmV3ZGVwbGlicz0iJG5l d2RlcGxpYnMgJGFfZGVwbGliIgorKwkJCWFfZGVwbGliPSIiCisrCQkJYnJlYWsgMgorKwkJICAg ICAgZmkKKysJCSAgZG9uZQorKwkJZG9uZQorKwkgICAgICBmaQorKwkgICAgICBpZiB0ZXN0IC1u ICIkYV9kZXBsaWIiIDsgdGhlbgorKwkJZHJvcHBlZGRlcHM9eWVzCisrCQkkZWNobworKwkJJGVj aG8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwgZmlsZSBmb3Ig bGlicmFyeSAkYV9kZXBsaWIuIgorKwkJJGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkg dG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisrCQkkZWNo byAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMg aWYgeW91IGhhdmUgYSIKKysJCSRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJh cnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisrCQkkZWNobyAiKioqIGJlY2F1 c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFydGlu ZyIKKysJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgorKwkJICAkZWNobyAiKioqIHdpdGgg JGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciBmaWxlIG1hZ2lj IHRlc3QpIgorKwkJZWxzZQorKwkJICAkZWNobyAiKioqIHdpdGggJGxpYm5hbWUgYW5kIG5vbmUg b2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKKysJCSAgJGVjaG8g IioqKiB1c2luZyBhIGZpbGUgbWFnaWMuIExhc3QgZmlsZSBjaGVja2VkOiAkcG90bGliIgorKwkJ ZmkKKysJICAgICAgZmkKKysJICAgIGVsc2UKKysJICAgICAgIyBBZGQgYSAtTCBhcmd1bWVudC4K KysJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorKwkgICAgZmkKKysJ ICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgorKwkgIDs7CisrCW1hdGNoX3BhdHRl cm4qKQorKwkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2QKKysJICBtYXRjaF9wYXR0 ZXJuX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQyIFwoLipcKSJgCisr CSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkgICAgbmFtZT1gZXhwciAkYV9kZXBs aWIgOiAnLWxcKC4qXCknYAorKwkgICAgIyBJZiAkbmFtZSBpcyBlbXB0eSB3ZSBhcmUgb3BlcmF0 aW5nIG9uIGEgLUwgYXJndW1lbnQuCisrCSAgICBpZiB0ZXN0IC1uICIkbmFtZSIgJiYgdGVzdCAi JG5hbWUiICE9ICIwIjsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGli c193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCQljYXNlICIgJHByZWRl cHMgJHBvc3RkZXBzICIgaW4KKysJCSoiICRhX2RlcGxpYiAiKikKKysJCSAgbmV3ZGVwbGlicz0i JG5ld2RlcGxpYnMgJGFfZGVwbGliIgorKwkJICBhX2RlcGxpYj0iIgorKwkJICA7OworKwkJZXNh YworKwkgICAgICBmaQorKwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgorKwkJ bGlibmFtZT1gZXZhbCBcXCRlY2hvIFwiJGxpYm5hbWVfc3BlY1wiYAorKwkJZm9yIGkgaW4gJGxp Yl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRv CisrCQkgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZVsuLV0qIDI+L2Rldi9udWxsYAor KwkJICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50aWFsX2xpYnM7IGRvCisrCQkgICAgcG90bGli PSIkcG90ZW50X2xpYiIgIyBzZWUgc3ltbGluay1jaGVjayBhYm92ZSBpbiBmaWxlX21hZ2ljIHRl c3QKKysJCSAgICBpZiBldmFsICRlY2hvIFwiJHBvdGVudF9saWJcIiAyPi9kZXYvbnVsbCBcCisr CQkgICAgICAgIHwgJHtTRUR9IDEwcSBcCisrCQkgICAgICAgIHwgJEVHUkVQICIkbWF0Y2hfcGF0 dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KKysJCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdk ZXBsaWJzICRhX2RlcGxpYiIKKysJCSAgICAgIGFfZGVwbGliPSIiCisrCQkgICAgICBicmVhayAy CisrCQkgICAgZmkKKysJCSAgZG9uZQorKwkJZG9uZQorKwkgICAgICBmaQorKwkgICAgICBpZiB0 ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgorKwkJZHJvcHBlZGRlcHM9eWVzCisrCQkkZWNobwor KwkJJGVjaG8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwgZmls ZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgorKwkJJGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFi aWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCisr CQkkZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRv IHRoaXMgaWYgeW91IGhhdmUgYSIKKysJCSRlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhl IGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisrCQkkZWNobyAiKioq IGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBz dGFydGluZyIKKysJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgorKwkJICAkZWNobyAiKioq IHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciByZWdl eCBwYXR0ZXJuIHRlc3QpIgorKwkJZWxzZQorKwkJICAkZWNobyAiKioqIHdpdGggJGxpYm5hbWUg YW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKKysJ CSAgJGVjaG8gIioqKiB1c2luZyBhIHJlZ2V4IHBhdHRlcm4uIExhc3QgZmlsZSBjaGVja2VkOiAk cG90bGliIgorKwkJZmkKKysJICAgICAgZmkKKysJICAgIGVsc2UKKysJICAgICAgIyBBZGQgYSAt TCBhcmd1bWVudC4KKysJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgor KwkgICAgZmkKKysJICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgorKwkgIDs7Cisr CW5vbmUgfCB1bmtub3duIHwgKikKKysJICBuZXdkZXBsaWJzPSIiCisrCSAgdG1wX2RlcGxpYnM9 YCRlY2hvICJYICRkZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMkLy8nIFwKKysJICAgIC1lICdz LyAtW0xSXVteIF0qLy9nJ2AKKysJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRo X3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCSAgICBmb3IgaSBpbiAkcHJlZGVw cyAkcG9zdGRlcHMgOyBkbworKwkgICAgICAjIGNhbid0IHVzZSBYc2VkIGJlbG93LCBiZWNhdXNl ICRpIG1pZ2h0IGNvbnRhaW4gJy8nCisrCSAgICAgIHRtcF9kZXBsaWJzPWAkZWNobyAiWCAkdG1w X2RlcGxpYnMiIHwgJHtTRUR9IC1lICIxcyxeWCwsIiAtZSAicywkaSwsImAKKysJICAgIGRvbmUK KysJICBmaQorKwkgIGlmICRlY2hvICJYICR0bXBfZGVwbGlicyIgfCAkWHNlZCAtZSAncy9bIAld Ly9nJyBcCisrCSAgICB8IGdyZXAgLiA+L2Rldi9udWxsOyB0aGVuCisrCSAgICAkZWNobworKwkg ICAgaWYgdGVzdCAiWCRkZXBsaWJzX2NoZWNrX21ldGhvZCIgPSAiWG5vbmUiOyB0aGVuCisrCSAg ICAgICRlY2hvICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5v dCBzdXBwb3J0ZWQgaW4gdGhpcyBwbGF0Zm9ybS4iCisrCSAgICBlbHNlCisrCSAgICAgICRlY2hv ICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB0 byBiZSBzdXBwb3J0ZWQuIgorKwkgICAgZmkKKysJICAgICRlY2hvICIqKiogQWxsIGRlY2xhcmVk IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBiZWluZyBkcm9wcGVkLiIKKysJICAgIGRy b3BwZWRkZXBzPXllcworKwkgIGZpCisrCSAgOzsKKysJZXNhYworKwl2ZXJzdWZmaXg9JHZlcnN1 ZmZpeF9zYXZlCisrCW1ham9yPSRtYWpvcl9zYXZlCisrCXJlbGVhc2U9JHJlbGVhc2Vfc2F2ZQor KwlsaWJuYW1lPSRsaWJuYW1lX3NhdmUKKysJbmFtZT0kbmFtZV9zYXZlCisrCisrCWNhc2UgJGhv c3QgaW4KKysJKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQorKwkgICMgT24gUmhh cHNvZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5IGlzIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCisrCSAg bmV3ZGVwbGlicz1gJGVjaG8gIlggJG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIC1m cmFtZXdvcmsgU3lzdGVtIC8nYAorKwkgIDs7CisrCWVzYWMKKysKKysJaWYgdGVzdCAiJGRyb3Bw ZWRkZXBzIiA9IHllczsgdGhlbgorKwkgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzOyB0aGVuCisr CSAgICAkZWNobworKwkgICAgJGVjaG8gIioqKiBXYXJuaW5nOiBsaWJ0b29sIGNvdWxkIG5vdCBz YXRpc2Z5IGFsbCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IgorKwkgICAgJGVjaG8gIioqKiBkZXBl bmRlbmNpZXMgb2YgbW9kdWxlICRsaWJuYW1lLiAgVGhlcmVmb3JlLCBsaWJ0b29sIHdpbGwgY3Jl YXRlIgorKwkgICAgJGVjaG8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsg YXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIgorKwkgICAgJGVjaG8gIioqKiBhcHBsaWNhdGlvbiBp cyBsaW5rZWQgd2l0aCB0aGUgLWRsb3BlbiBmbGFnLiIKKysJICAgIGlmIHRlc3QgLXogIiRnbG9i YWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrCSAgICAgICRlY2hvCisrCSAgICAgICRlY2hvICIqKiog SG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0byBleHRy YWN0IHN5bWJvbCIKKysJICAgICAgJGVjaG8gIioqKiBsaXN0cyBmcm9tIGEgcHJvZ3JhbSwgdXNp bmcgXGBubScgb3IgZXF1aXZhbGVudCwgYnV0IGxpYnRvb2wgY291bGQiCisrCSAgICAgICRlY2hv ICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFi bHkgdXNlbGVzcy4iCisrCSAgICAgICRlY2hvICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMg YW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxwLiIKKysJICAgIGZpCisrCSAgICBpZiB0ZXN0ICIk YnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KKysJICAgICAgb2xkbGlicz0iJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUuJGxpYmV4dCIKKysJICAgICAgYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQor KwkgICAgICBidWlsZF9vbGRfbGlicz15ZXMKKysJICAgIGVsc2UKKysJICAgICAgYnVpbGRfbGli dG9vbF9saWJzPW5vCisrCSAgICBmaQorKwkgIGVsc2UKKysJICAgICRlY2hvICIqKiogVGhlIGlu dGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaGF2ZSBiZWVuIGRyb3BwZWQgaGVyZSB3aWxs IGJlIgorKwkgICAgJGVjaG8gIioqKiBhdXRvbWF0aWNhbGx5IGFkZGVkIHdoZW5ldmVyIGEgcHJv Z3JhbSBpcyBsaW5rZWQgd2l0aCB0aGlzIGxpYnJhcnkiCisrCSAgICAkZWNobyAiKioqIG9yIGlz IGRlY2xhcmVkIHRvIC1kbG9wZW4gaXQuIgorKworKwkgICAgaWYgdGVzdCAiJGFsbG93X3VuZGVm aW5lZCIgPSBubzsgdGhlbgorKwkgICAgICAkZWNobworKwkgICAgICAkZWNobyAiKioqIFNpbmNl IHRoaXMgbGlicmFyeSBtdXN0IG5vdCBjb250YWluIHVuZGVmaW5lZCBzeW1ib2xzLCIKKysJICAg ICAgJGVjaG8gIioqKiBiZWNhdXNlIGVpdGhlciB0aGUgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9y dCB0aGVtIG9yIgorKwkgICAgICAkZWNobyAiKioqIGl0IHdhcyBleHBsaWNpdGx5IHJlcXVlc3Rl ZCB3aXRoIC1uby11bmRlZmluZWQsIgorKwkgICAgICAkZWNobyAiKioqIGxpYnRvb2wgd2lsbCBv bmx5IGNyZWF0ZSBhIHN0YXRpYyB2ZXJzaW9uIG9mIGl0LiIKKysJICAgICAgaWYgdGVzdCAiJGJ1 aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCisrCQlvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGli bmFtZS4kbGliZXh0IgorKwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQorKwkJYnVpbGRfb2xk X2xpYnM9eWVzCisrCSAgICAgIGVsc2UKKysJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubworKwkgICAg ICBmaQorKwkgICAgZmkKKysJICBmaQorKwlmaQorKwkjIERvbmUgY2hlY2tpbmcgZGVwbGlicyEK KysJZGVwbGlicz0kbmV3ZGVwbGlicworKyAgICAgIGZpCisrCisrCisrICAgICAgIyBtb3ZlIGxp YnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0byBub3QgeWV0Cisr ICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpYnJh cnkgc2VhcmNoIGxpc3QKKysgICAgICBuZXdfbGlicz0KKysgICAgICBmb3IgcGF0aCBpbiAkbm90 aW5zdF9wYXRoOyBkbworKwljYXNlICIgJG5ld19saWJzICIgaW4KKysJKiIgLUwkcGF0aC8kb2Jq ZGlyICIqKSA7OworKwkqKQorKwkgIGNhc2UgIiAkZGVwbGlicyAiIGluCisrCSAgKiIgLUwkcGF0 aC8kb2JqZGlyICIqKQorKwkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIi IDs7CisrCSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysgICAgICBkb25lCisrICAgICAgZm9yIGRl cGxpYiBpbiAkZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGliIGluCisrCS1MKikKKysJICBjYXNl ICIgJG5ld19saWJzICIgaW4KKysJICAqIiAkZGVwbGliICIqKSA7OworKwkgICopIG5ld19saWJz PSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisrCSAgOzsKKysJKikgbmV3X2xpYnM9 IiRuZXdfbGlicyAkZGVwbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgIGRlcGxp YnM9IiRuZXdfbGlicyIKKysKKysKKysgICAgICAjIEFsbCB0aGUgbGlicmFyeS1zcGVjaWZpYyB2 YXJpYWJsZXMgKGluc3RhbGxfbGliZGlyIGlzIHNldCBhYm92ZSkuCisrICAgICAgbGlicmFyeV9u YW1lcz0KKysgICAgICBvbGRfbGlicmFyeT0KKysgICAgICBkbG5hbWU9CisrCisrICAgICAgIyBU ZXN0IGFnYWluLCB3ZSBtYXkgaGF2ZSBkZWNpZGVkIG5vdCB0byBidWlsZCBpdCBhbnkgbW9yZQor KyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCWlmIHRl c3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCisrCSAgIyBIYXJkY29kZSB0aGUg bGlicmFyeSBwYXRocworKwkgIGhhcmRjb2RlX2xpYmRpcnM9CisrCSAgZGVwX3JwYXRoPQorKwkg IHJwYXRoPSIkZmluYWxpemVfcnBhdGgiCisrCSAgdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBy cGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgiCisrCSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7IGRv CisrCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKysJ ICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCQlp ZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJCSAgaGFyZGNvZGVfbGliZGly cz0iJGxpYmRpciIKKysJCWVsc2UKKysJCSAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBs aWJkaXJzLgorKwkJICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xp YmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkJICAqIiRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisrCQkgICAg OzsKKysJCSAgKikKKysJCSAgICBoYXJkY29kZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGlycyRo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKKysJCSAgICA7OworKwkJICBlc2FjCisr CQlmaQorKwkgICAgICBlbHNlCisrCQlldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY1wiCisrCQlkZXBfcnBhdGg9IiRkZXBfcnBhdGggJGZsYWciCisrCSAgICAgIGZpCisrCSAg ICBlbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJICAgICAgY2FzZSAiJHBlcm1f cnBhdGggIiBpbgorKwkgICAgICAqIiAkbGliZGlyICIqKSA7OworKwkgICAgICAqKSBwZXJtX3Jw YXRoPSIkcGVybV9ycGF0aCAkbGliZGlyIiA7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkg IGRvbmUKKysJICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJw YXRoLgorKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgorKwkg ICAgIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgorKwkgICAgbGliZGlyPSIkaGFy ZGNvZGVfbGliZGlycyIKKysJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX2xkIjsgdGhlbgorKwkgICAgICBjYXNlICRhcmNoaXZlX2NtZHMgaW4KKysJICAgICAgKlwk TEQqKSBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkXCIgOzsK KysJICAgICAgKikgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjXCIgOzsKKysJICAgICAgZXNhYworKwkgICAgZWxzZQorKwkgICAgICBldmFsIGRlcF9ycGF0 aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKysJICAgIGZpCisrCSAgZmkKKysJICBp ZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiICYmIHRlc3QgLW4gIiRwZXJtX3JwYXRoIjsgdGhlbgor KwkgICAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KKysJICAgIHJwYXRoPQorKwkg ICAgZm9yIGRpciBpbiAkcGVybV9ycGF0aDsgZG8KKysJICAgICAgcnBhdGg9IiRycGF0aCRkaXI6 IgorKwkgICAgZG9uZQorKwkgICAgZXZhbCAiJHJ1bnBhdGhfdmFyPSckcnBhdGhcJCRydW5wYXRo X3Zhcic7IGV4cG9ydCAkcnVucGF0aF92YXIiCisrCSAgZmkKKysJICB0ZXN0IC1uICIkZGVwX3Jw YXRoIiAmJiBkZXBsaWJzPSIkZGVwX3JwYXRoICRkZXBsaWJzIgorKwlmaQorKworKwlzaGxpYnBh dGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgiCisrCXRlc3QgIiRtb2RlIiAhPSByZWxpbmsgJiYgc2hs aWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkc2hsaWJwYXRoIgorKwlpZiB0ZXN0IC1uICIkc2hs aWJwYXRoIjsgdGhlbgorKwkgIGV2YWwgIiRzaGxpYnBhdGhfdmFyPSckc2hsaWJwYXRoXCQkc2hs aWJwYXRoX3Zhcic7IGV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKKysJZmkKKysKKysJIyBHZXQgdGhl IHJlYWwgYW5kIGxpbmsgbmFtZXMgb2YgdGhlIGxpYnJhcnkuCisrCWV2YWwgc2hhcmVkX2V4dD1c IiRzaHJleHRfY21kc1wiCisrCWV2YWwgbGlicmFyeV9uYW1lcz1cIiRsaWJyYXJ5X25hbWVzX3Nw ZWNcIgorKwlzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMKKysJcmVhbG5hbWU9IiQyIgorKwlzaGlm dDsgc2hpZnQKKysKKysJaWYgdGVzdCAtbiAiJHNvbmFtZV9zcGVjIjsgdGhlbgorKwkgIGV2YWwg c29uYW1lPVwiJHNvbmFtZV9zcGVjXCIKKysJZWxzZQorKwkgIHNvbmFtZT0iJHJlYWxuYW1lIgor KwlmaQorKwlpZiB0ZXN0IC16ICIkZGxuYW1lIjsgdGhlbgorKwkgIGRsbmFtZT0kc29uYW1lCisr CWZpCisrCisrCWxpYj0iJG91dHB1dF9vYmpkaXIvJHJlYWxuYW1lIgorKwlsaW5rbmFtZXM9Cisr CWZvciBsaW5rCisrCWRvCisrCSAgbGlua25hbWVzPSIkbGlua25hbWVzICRsaW5rIgorKwlkb25l CisrCisrCSMgVXNlIHN0YW5kYXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGljCisrCXRlc3QgLXog IiRwaWNfZmxhZyIgJiYgbGlib2Jqcz1gJGVjaG8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNl ZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAorKworKwkjIFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhwb3J0 ZWQgc3ltYm9scworKwlpZiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisrCSAgaWYg dGVzdCAiJGFsd2F5c19leHBvcnRfc3ltYm9scyIgPSB5ZXMgfHwgdGVzdCAtbiAiJGV4cG9ydF9z eW1ib2xzX3JlZ2V4IjsgdGhlbgorKwkgICAgJHNob3cgImdlbmVyYXRpbmcgc3ltYm9sIGxpc3Qg Zm9yIFxgJGxpYm5hbWUubGEnIgorKwkgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLmV4cCIKKysJICAgICRydW4gJHJtICRleHBvcnRfc3ltYm9scworKwkgICAgY21k cz0kZXhwb3J0X3N5bWJvbHNfY21kcworKwkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisr CSAgICBmb3IgY21kIGluICRjbWRzOyBkbworKwkgICAgICBJRlM9IiRzYXZlX2lmcyIKKysJICAg ICAgZXZhbCBjbWQ9XCIkY21kXCIKKysJICAgICAgaWYgbGVuPWBleHByICJYJGNtZCIgOiAiLioi YCAmJgorKwkgICAgICAgdGVzdCAiJGxlbiIgLWxlICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRt YXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCisrCSAgICAgICAgJHNob3cgIiRjbWQiCisrCSAgICAg ICAgJHJ1biBldmFsICIkY21kIiB8fCBleGl0ICQ/CisrCSAgICAgICAgc2tpcHBlZF9leHBvcnQ9 ZmFsc2UKKysJICAgICAgZWxzZQorKwkgICAgICAgICMgVGhlIGNvbW1hbmQgbGluZSBpcyB0b28g bG9uZyB0byBleGVjdXRlIGluIG9uZSBzdGVwLgorKwkgICAgICAgICRzaG93ICJ1c2luZyByZWxv YWRhYmxlIG9iamVjdCBmaWxlIGZvciBleHBvcnQgbGlzdC4uLiIKKysJICAgICAgICBza2lwcGVk X2V4cG9ydD06CisrCQkjIEJyZWFrIG91dCBlYXJseSwgb3RoZXJ3aXNlIHNraXBwZWRfZXhwb3J0 IG1heSBiZQorKwkJIyBzZXQgdG8gZmFsc2UgYnkgYSBsYXRlciBidXQgc2hvcnRlciBjbWQuCisr CQlicmVhaworKwkgICAgICBmaQorKwkgICAgZG9uZQorKwkgICAgSUZTPSIkc2F2ZV9pZnMiCisr CSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCisrCSAgICAgICRz aG93ICIkRUdSRVAgLWUgXCIkZXhwb3J0X3N5bWJvbHNfcmVnZXhcIiBcIiRleHBvcnRfc3ltYm9s c1wiID4gXCIke2V4cG9ydF9zeW1ib2xzfVRcIiIKKysJICAgICAgJHJ1biBldmFsICckRUdSRVAg LWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9scyIgPiAiJHtleHBvcnRf c3ltYm9sc31UIicKKysJICAgICAgJHNob3cgIiRtdiBcIiR7ZXhwb3J0X3N5bWJvbHN9VFwiIFwi JGV4cG9ydF9zeW1ib2xzXCIiCisrCSAgICAgICRydW4gZXZhbCAnJG12ICIke2V4cG9ydF9zeW1i b2xzfVQiICIkZXhwb3J0X3N5bWJvbHMiJworKwkgICAgZmkKKysJICBmaQorKwlmaQorKworKwlp ZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMi OyB0aGVuCisrCSAgJHJ1biBldmFsICckZWNobyAiWCRpbmNsdWRlX2V4cHN5bXMiIHwgJFNQMk5M ID4+ICIkZXhwb3J0X3N5bWJvbHMiJworKwlmaQorKworKwl0bXBfZGVwbGlicz0KKysJZm9yIHRl c3RfZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkJY2FzZSAiICRjb252ZW5pZW5jZSAiIGluCisr CQkqIiAkdGVzdF9kZXBsaWIgIiopIDs7CisrCQkqKQorKwkJCXRtcF9kZXBsaWJzPSIkdG1wX2Rl cGxpYnMgJHRlc3RfZGVwbGliIgorKwkJCTs7CisrCQllc2FjCisrCWRvbmUKKysJZGVwbGlicz0i JHRtcF9kZXBsaWJzIgorKworKwlpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVuCisrCSAg aWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorKwkgICAgc2F2ZV9s aWJvYmpzPSRsaWJvYmpzCisrCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9ianMgJHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjXCIKKysJICBlbHNlCisrCSAgICBnZW50b3A9IiRvdXRwdXRfb2JqZGly LyR7b3V0cHV0bmFtZX14IgorKwkgICAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisr CisrCSAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKKysJICAg IGxpYm9ianM9IiRsaWJvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgorKwkgIGZp CisrCWZpCisrCQorKwlpZiB0ZXN0ICIkdGhyZWFkX3NhZmUiID0geWVzICYmIHRlc3QgLW4gIiR0 aHJlYWRfc2FmZV9mbGFnX3NwZWMiOyB0aGVuCisrCSAgZXZhbCBmbGFnPVwiJHRocmVhZF9zYWZl X2ZsYWdfc3BlY1wiCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRmbGFnIgorKwlm aQorKworKwkjIE1ha2UgYSBiYWNrdXAgb2YgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgd2hlbiBy ZWxpbmtpbmcKKysJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisrCSAgJHJ1biBldmFs ICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJHJtICR7cmVhbG5hbWV9VSAmJiAkbXYgJHJlYWxuYW1l ICR7cmVhbG5hbWV9VSknIHx8IGV4aXQgJD8KKysJZmkKKysKKysJIyBEbyBlYWNoIG9mIHRoZSBh cmNoaXZlIGNvbW1hbmRzLgorKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyAmJiB0ZXN0IC1uICIk bW9kdWxlX2NtZHMiIDsgdGhlbgorKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYg dGVzdCAtbiAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRoZW4KKysJICAgIGV2YWwgdGVzdF9jbWRz PVwiJG1vZHVsZV9leHBzeW1fY21kc1wiCisrCSAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2NtZHMK KysJICBlbHNlCisrCSAgICBldmFsIHRlc3RfY21kcz1cIiRtb2R1bGVfY21kc1wiCisrCSAgICBj bWRzPSRtb2R1bGVfY21kcworKwkgIGZpCisrCWVsc2UKKysJaWYgdGVzdCAtbiAiJGV4cG9ydF9z eW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1fY21kcyI7IHRoZW4KKysJICBldmFs IHRlc3RfY21kcz1cIiRhcmNoaXZlX2V4cHN5bV9jbWRzXCIKKysJICBjbWRzPSRhcmNoaXZlX2V4 cHN5bV9jbWRzCisrCWVsc2UKKysJICBldmFsIHRlc3RfY21kcz1cIiRhcmNoaXZlX2NtZHNcIgor KwkgIGNtZHM9JGFyY2hpdmVfY21kcworKwkgIGZpCisrCWZpCisrCisrCWlmIHRlc3QgIlgkc2tp cHBlZF9leHBvcnQiICE9ICJYOiIgJiYKKysJICAgbGVuPWBleHByICJYJHRlc3RfY21kcyIgOiAi LioiIDI+L2Rldi9udWxsYCAmJgorKwkgICB0ZXN0ICIkbGVuIiAtbGUgIiRtYXhfY21kX2xlbiIg fHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KKysJICA6CisrCWVsc2UKKysJICAj IFRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwgbGluayBw aWVjZXdpc2UuCisrCSAgJGVjaG8gImNyZWF0aW5nIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLi4u IgorKworKwkgICMgU2F2ZSB0aGUgdmFsdWUgb2YgJG91dHB1dCBhbmQgJGxpYm9ianMgYmVjYXVz ZSB3ZSB3YW50IHRvCisrCSAgIyB1c2UgdGhlbSBsYXRlci4gIElmIHdlIGhhdmUgd2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsIHdlCisrCSAgIyB3YW50IHRvIHVzZSBzYXZlX2xpYm9ianMgYXMgaXQg d2FzIGJlZm9yZQorKwkgICMgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgd2FzIGV4cGFuZGVkLCBi ZWNhdXNlIHdlIGNhbid0CisrCSAgIyBhc3N1bWUgdGhlIGxpbmtlciB1bmRlcnN0YW5kcyB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYy4KKysJICAjIFRoaXMgbWF5IGhhdmUgdG8gYmUgcmV2aXNpdGVk LCBpbiBjYXNlIHRvbyBtYW55CisrCSAgIyBjb252ZW5pZW5jZSBsaWJyYXJpZXMgZ2V0IGxpbmtl ZCBpbiBhbmQgZW5kIHVwIGV4Y2VlZGluZworKwkgICMgdGhlIHNwZWMuCisrCSAgaWYgdGVzdCAt eiAiJGNvbnZlbmllbmNlIiB8fCB0ZXN0IC16ICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0 aGVuCisrCSAgICBzYXZlX2xpYm9ianM9JGxpYm9ianMKKysJICBmaQorKwkgIHNhdmVfb3V0cHV0 PSRvdXRwdXQKKysJICBvdXRwdXRfbGE9YCRlY2hvICJYJG91dHB1dCIgfCAkWHNlZCAtZSAiJGJh c2VuYW1lImAKKysKKysJICAjIENsZWFyIHRoZSByZWxvYWRhYmxlIG9iamVjdCBjcmVhdGlvbiBj b21tYW5kIHF1ZXVlIGFuZAorKwkgICMgaW5pdGlhbGl6ZSBrIHRvIG9uZS4KKysJICB0ZXN0X2Nt ZHM9CisrCSAgY29uY2F0X2NtZHM9CisrCSAgb2JqbGlzdD0KKysJICBkZWxmaWxlcz0KKysJICBs YXN0X3JvYmo9CisrCSAgaz0xCisrCSAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEt JHtrfS4kb2JqZXh0CisrCSAgIyBMb29wIG92ZXIgdGhlIGxpc3Qgb2Ygb2JqZWN0cyB0byBiZSBs aW5rZWQuCisrCSAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCisrCSAgZG8KKysJICAgIGV2YWwg dGVzdF9jbWRzPVwiJHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmpcIgorKwkgICAgaWYg dGVzdCAiWCRvYmpsaXN0IiA9IFggfHwKKysJICAgICAgIHsgbGVuPWBleHByICJYJHRlc3RfY21k cyIgOiAiLioiIDI+L2Rldi9udWxsYCAmJgorKwkJIHRlc3QgIiRsZW4iIC1sZSAiJG1heF9jbWRf bGVuIjsgfTsgdGhlbgorKwkgICAgICBvYmpsaXN0PSIkb2JqbGlzdCAkb2JqIgorKwkgICAgZWxz ZQorKwkgICAgICAjIFRoZSBjb21tYW5kICR0ZXN0X2NtZHMgaXMgYWxtb3N0IHRvbyBsb25nLCBh ZGQgYQorKwkgICAgICAjIGNvbW1hbmQgdG8gdGhlIHF1ZXVlLgorKwkgICAgICBpZiB0ZXN0ICIk ayIgLWVxIDEgOyB0aGVuCisrCQkjIFRoZSBmaXJzdCBmaWxlIGRvZXNuJ3QgaGF2ZSBhIHByZXZp b3VzIGNvbW1hbmQgdG8gYWRkLgorKwkJZXZhbCBjb25jYXRfY21kcz1cIiRyZWxvYWRfY21kcyAk b2JqbGlzdCAkbGFzdF9yb2JqXCIKKysJICAgICAgZWxzZQorKwkJIyBBbGwgc3Vic2VxdWVudCBy ZWxvYWRhYmxlIG9iamVjdCBmaWxlcyB3aWxsIGxpbmsgaW4KKysJCSMgdGhlIGxhc3Qgb25lIGNy ZWF0ZWQuCisrCQlldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc34kcmVsb2FkX2NtZHMg JG9iamxpc3QgJGxhc3Rfcm9ialwiCisrCSAgICAgIGZpCisrCSAgICAgIGxhc3Rfcm9iaj0kb3V0 cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAorKwkgICAgICBrPWBleHByICRrICsg MWAKKysJICAgICAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0 CisrCSAgICAgIG9iamxpc3Q9JG9iagorKwkgICAgICBsZW49MQorKwkgICAgZmkKKysJICBkb25l CisrCSAgIyBIYW5kbGUgdGhlIHJlbWFpbmluZyBvYmplY3RzIGJ5IGNyZWF0aW5nIG9uZSBsYXN0 CisrCSAgIyByZWxvYWRhYmxlIG9iamVjdCBmaWxlLiAgQWxsIHN1YnNlcXVlbnQgcmVsb2FkYWJs ZSBvYmplY3QKKysJICAjIGZpbGVzIHdpbGwgbGluayBpbiB0aGUgbGFzdCBvbmUgY3JlYXRlZC4K KysJICB0ZXN0IC16ICIkY29uY2F0X2NtZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34K KysJICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JHJlbG9hZF9jbWRzICRvYmps aXN0ICRsYXN0X3JvYmpcIgorKworKwkgIGlmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0aGVu CisrCSAgICAkc2hvdyAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSci CisrCSAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgorKwkg ICAgJHJ1biAkcm0gJGV4cG9ydF9zeW1ib2xzCisrCSAgICBsaWJvYmpzPSRvdXRwdXQKKysJICAg ICMgQXBwZW5kIHRoZSBjb21tYW5kIHRvIGNyZWF0ZSB0aGUgZXhwb3J0IGZpbGUuCisrCSAgICBl dmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc34kZXhwb3J0X3N5bWJvbHNfY21kc1wiCisr ICAgICAgICAgIGZpCisrCisrCSAgIyBTZXQgdXAgYSBjb21tYW5kIHRvIHJlbW92ZSB0aGUgcmVs b2FkYWJsZSBvYmplY3QgZmlsZXMKKysJICAjIGFmdGVyIHRoZXkgYXJlIHVzZWQuCisrCSAgaT0w CisrCSAgd2hpbGUgdGVzdCAiJGkiIC1sdCAiJGsiCisrCSAgZG8KKysJICAgIGk9YGV4cHIgJGkg KyAxYAorKwkgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0X29iamRpci8kb3V0cHV0X2xh LSR7aX0uJG9iamV4dCIKKysJICBkb25lCisrCisrCSAgJGVjaG8gImNyZWF0aW5nIGEgdGVtcG9y YXJ5IHJlbG9hZGFibGUgb2JqZWN0IGZpbGU6ICRvdXRwdXQiCisrCisrCSAgIyBMb29wIHRocm91 Z2ggdGhlIGNvbW1hbmRzIGdlbmVyYXRlZCBhYm92ZSBhbmQgZXhlY3V0ZSB0aGVtLgorKwkgIHNh dmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwkgIGZvciBjbWQgaW4gJGNvbmNhdF9jbWRzOyBkbwor KwkgICAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgICAkc2hvdyAiJGNtZCIKKysJICAgICRydW4gZXZh bCAiJGNtZCIgfHwgZXhpdCAkPworKwkgIGRvbmUKKysJICBJRlM9IiRzYXZlX2lmcyIKKysKKysJ ICBsaWJvYmpzPSRvdXRwdXQKKysJICAjIFJlc3RvcmUgdGhlIHZhbHVlIG9mIG91dHB1dC4KKysJ ICBvdXRwdXQ9JHNhdmVfb3V0cHV0CisrCisrCSAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIiAm JiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCisrCSAgICBldmFsIGxp Ym9ianM9XCJcJGxpYm9ianMgJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKKysJICBmaQorKwkg ICMgRXhwYW5kIHRoZSBsaWJyYXJ5IGxpbmtpbmcgY29tbWFuZHMgYWdhaW4gdG8gcmVzZXQgdGhl CisrCSAgIyB2YWx1ZSBvZiAkbGlib2JqcyBmb3IgcGllY2V3aXNlIGxpbmtpbmcuCisrCisrCSAg IyBEbyBlYWNoIG9mIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgorKwkgIGlmIHRlc3QgIiRtb2R1bGUi ID0geWVzICYmIHRlc3QgLW4gIiRtb2R1bGVfY21kcyIgOyB0aGVuCisrCSAgICBpZiB0ZXN0IC1u ICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRtb2R1bGVfZXhwc3ltX2NtZHMiOyB0aGVu CisrCSAgICAgIGNtZHM9JG1vZHVsZV9leHBzeW1fY21kcworKwkgICAgZWxzZQorKwkgICAgICBj bWRzPSRtb2R1bGVfY21kcworKwkgICAgZmkKKysJICBlbHNlCisrCSAgaWYgdGVzdCAtbiAiJGV4 cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1fY21kcyI7IHRoZW4KKysJ ICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKKysJICBlbHNlCisrCSAgICBjbWRzPSRhcmNo aXZlX2NtZHMKKysJICAgIGZpCisrCSAgZmkKKysKKysJICAjIEFwcGVuZCB0aGUgY29tbWFuZCB0 byByZW1vdmUgdGhlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzCisrCSAgIyB0byB0aGUganVzdC1y ZXNldCAkY21kcy4KKysJICBldmFsIGNtZHM9XCJcJGNtZHN+XCRybSAkZGVsZmlsZXNcIgorKwlm aQorKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nficKKysJZm9yIGNtZCBpbiAkY21kczsgZG8KKysJ ICBJRlM9IiRzYXZlX2lmcyIKKysJICBldmFsIGNtZD1cIiRjbWRcIgorKwkgICRzaG93ICIkY21k IgorKwkgICRydW4gZXZhbCAiJGNtZCIgfHwgeworKwkgICAgbHRfZXhpdD0kPworKworKwkgICAg IyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBleGl0CisrCSAgICBpZiB0ZXN0 ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKysJICAgICAgJHJ1biBldmFsICcoY2QgJG91dHB1dF9v YmpkaXIgJiYgJHJtICR7cmVhbG5hbWV9VCAmJiAkbXYgJHtyZWFsbmFtZX1VICRyZWFsbmFtZSkn CisrCSAgICBmaQorKworKwkgICAgZXhpdCAkbHRfZXhpdAorKwkgIH0KKysJZG9uZQorKwlJRlM9 IiRzYXZlX2lmcyIKKysKKysJIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBl eGl0CisrCWlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorKwkgICRydW4gZXZhbCAnKGNk ICRvdXRwdXRfb2JqZGlyICYmICRybSAke3JlYWxuYW1lfVQgJiYgJG12ICRyZWFsbmFtZSAke3Jl YWxuYW1lfVQgJiYgJG12ICIkcmVhbG5hbWUiVSAkcmVhbG5hbWUpJyB8fCBleGl0ICQ/CisrCisr CSAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgorKwkgICAgaWYgdGVzdCAteiAiJHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgorKwkgICAgICAkc2hvdyAiJHtybX1yICRnZW50 b3AiCisrCSAgICAgICRydW4gJHtybX1yICIkZ2VudG9wIgorKwkgICAgZmkKKysJICBmaQorKwor KwkgIGV4aXQgJEVYSVRfU1VDQ0VTUworKwlmaQorKworKwkjIENyZWF0ZSBsaW5rcyB0byB0aGUg cmVhbCBsaWJyYXJ5LgorKwlmb3IgbGlua25hbWUgaW4gJGxpbmtuYW1lczsgZG8KKysJICBpZiB0 ZXN0ICIkcmVhbG5hbWUiICE9ICIkbGlua25hbWUiOyB0aGVuCisrCSAgICAkc2hvdyAiKGNkICRv dXRwdXRfb2JqZGlyICYmICRybSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5rbmFt ZSkiCisrCSAgICAkcnVuIGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkcm0gJGxpbmtuYW1l ICYmICRMTl9TICRyZWFsbmFtZSAkbGlua25hbWUpJyB8fCBleGl0ICQ/CisrCSAgZmkKKysJZG9u ZQorKworKwkjIElmIC1tb2R1bGUgb3IgLWV4cG9ydC1keW5hbWljIHdhcyBzcGVjaWZpZWQsIHNl dCB0aGUgZGxuYW1lLgorKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyB8fCB0ZXN0ICIkZXhwb3J0 X2R5bmFtaWMiID0geWVzOyB0aGVuCisrCSAgIyBPbiBhbGwga25vd24gb3BlcmF0aW5nIHN5c3Rl bXMsIHRoZXNlIGFyZSBpZGVudGljYWwuCisrCSAgZGxuYW1lPSIkc29uYW1lIgorKwlmaQorKyAg ICAgIGZpCisrICAgICAgOzsKKysKKysgICAgb2JqKQorKyAgICAgIGNhc2UgIiAkZGVwbGlicyIg aW4KKysgICAgICAqXCAtbCogfCAqXCAtTCopCisrCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6 IFxgLWwnIGFuZCBcYC1MJyBhcmUgaWdub3JlZCBmb3Igb2JqZWN0cyIgMT4mMiA7OworKyAgICAg IGVzYWMKKysKKysgICAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0 ICIkZGxzZWxmIiAhPSBubzsgdGhlbgorKwkkZWNobyAiJG1vZGVuYW1lOiB3YXJuaW5nOiBcYC1k bG9wZW4nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiIDE+JjIKKysgICAgICBmaQorKworKyAgICAg IGlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KKysJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzog XGAtcnBhdGgnIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiIDE+JjIKKysgICAgICBmaQorKworKyAg ICAgIGlmIHRlc3QgLW4gIiR4cnBhdGgiOyB0aGVuCisrCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5p bmc6IFxgLVInIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiIDE+JjIKKysgICAgICBmaQorKworKyAg ICAgIGlmIHRlc3QgLW4gIiR2aW5mbyI7IHRoZW4KKysJJGVjaG8gIiRtb2RlbmFtZTogd2Fybmlu ZzogXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIiAxPiYyCisrICAgICAg ZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkcmVsZWFzZSI7IHRoZW4KKysJJGVjaG8gIiRtb2Rl bmFtZTogd2FybmluZzogXGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIgMT4mMgor KyAgICAgIGZpCisrCisrICAgICAgY2FzZSAkb3V0cHV0IGluCisrICAgICAgKi5sbykKKysJaWYg dGVzdCAtbiAiJG9ianMkb2xkX2RlcGxpYnMiOyB0aGVuCisrCSAgJGVjaG8gIiRtb2RlbmFtZTog Y2Fubm90IGJ1aWxkIGxpYnJhcnkgb2JqZWN0IFxgJG91dHB1dCcgZnJvbSBub24tbGlidG9vbCBv YmplY3RzIiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCWZpCisrCWxpYm9iaj0iJG91 dHB1dCIKKysJb2JqPWAkZWNobyAiWCRvdXRwdXQiIHwgJFhzZWQgLWUgIiRsbzJvImAKKysJOzsK KysgICAgICAqKQorKwlsaWJvYmo9CisrCW9iaj0iJG91dHB1dCIKKysJOzsKKysgICAgICBlc2Fj CisrCisrICAgICAgIyBEZWxldGUgdGhlIG9sZCBvYmplY3RzLgorKyAgICAgICRydW4gJHJtICRv YmogJGxpYm9iagorKworKyAgICAgICMgT2JqZWN0cyBmcm9tIGNvbnZlbmllbmNlIGxpYnJhcmll cy4gIFRoaXMgYXNzdW1lcworKyAgICAgICMgc2luZ2xlLXZlcnNpb24gY29udmVuaWVuY2UgbGli cmFyaWVzLiAgV2hlbmV2ZXIgd2UgY3JlYXRlCisrICAgICAgIyBkaWZmZXJlbnQgb25lcyBmb3Ig UElDL25vbi1QSUMsIHRoaXMgd2UnbGwgaGF2ZSB0byBkdXBsaWNhdGUKKysgICAgICAjIHRoZSBl eHRyYWN0aW9uLgorKyAgICAgIHJlbG9hZF9jb252X29ianM9CisrICAgICAgZ2VudG9wPQorKyAg ICAgICMgcmVsb2FkX2NtZHMgcnVucyAkTEQgZGlyZWN0bHksIHNvIGxldCB1cyBnZXQgcmlkIG9m CisrICAgICAgIyAtV2wgZnJvbSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyBhbmQgaG9wZSB3ZSBj YW4gZ2V0IGJ5IHdpdGgKKysgICAgICAjIHR1cm5pbmcgY29tbWEgaW50byBzcGFjZS4uCisrICAg ICAgd2w9CisrCisrICAgICAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgorKwlpZiB0 ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCisrCSAgZXZhbCB0bXBfd2hv bGVfYXJjaGl2ZV9mbGFncz1cIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCisrCSAgcmVsb2Fk X2NvbnZfb2Jqcz0kcmVsb2FkX29ianNcIGAkZWNobyAiWCR0bXBfd2hvbGVfYXJjaGl2ZV9mbGFn cyIgfCAkWHNlZCAtZSAnc3wsfCB8ZydgCisrCWVsc2UKKysJICBnZW50b3A9IiRvdXRwdXRfb2Jq ZGlyLyR7b2JqfXgiCisrCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisrCisrCSAg ZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCisrCSAgcmVsb2FkX2Nv bnZfb2Jqcz0iJHJlbG9hZF9vYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgorKwlm aQorKyAgICAgIGZpCisrCisrICAgICAgIyBDcmVhdGUgdGhlIG9sZC1zdHlsZSBvYmplY3QuCisr ICAgICAgcmVsb2FkX29ianM9IiRvYmpzJG9sZF9kZXBsaWJzICJgJGVjaG8gIlgkbGlib2JqcyIg fCAkU1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSQnL2QnIC1lICcvXC5saWIkL2QnIC1l ICIkbG8ybyIgfCAkTkwyU1BgIiAkcmVsb2FkX2NvbnZfb2JqcyIgIyMjIHRlc3RzdWl0ZTogc2tp cCBuZXN0ZWQgcXVvdGluZyB0ZXN0CisrCisrICAgICAgb3V0cHV0PSIkb2JqIgorKyAgICAgIGNt ZHM9JHJlbG9hZF9jbWRzCisrICAgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisrICAgICAg Zm9yIGNtZCBpbiAkY21kczsgZG8KKysJSUZTPSIkc2F2ZV9pZnMiCisrCWV2YWwgY21kPVwiJGNt ZFwiCisrCSRzaG93ICIkY21kIgorKwkkcnVuIGV2YWwgIiRjbWQiIHx8IGV4aXQgJD8KKysgICAg ICBkb25lCisrICAgICAgSUZTPSIkc2F2ZV9pZnMiCisrCisrICAgICAgIyBFeGl0IGlmIHdlIGFy ZW4ndCBkb2luZyBhIGxpYnJhcnkgb2JqZWN0IGZpbGUuCisrICAgICAgaWYgdGVzdCAteiAiJGxp Ym9iaiI7IHRoZW4KKysJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KKysJICAkc2hvdyAiJHty bX1yICRnZW50b3AiCisrCSAgJHJ1biAke3JtfXIgJGdlbnRvcAorKwlmaQorKworKwlleGl0ICRF WElUX1NVQ0NFU1MKKysgICAgICBmaQorKworKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29s X2xpYnMiICE9IHllczsgdGhlbgorKwlpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgorKwkgICRz aG93ICIke3JtfXIgJGdlbnRvcCIKKysJICAkcnVuICR7cm19ciAkZ2VudG9wCisrCWZpCisrCisr CSMgQ3JlYXRlIGFuIGludmFsaWQgbGlidG9vbCBvYmplY3QgaWYgbm8gUElDLCBzbyB0aGF0IHdl IGRvbid0CisrCSMgYWNjaWRlbnRhbGx5IGxpbmsgaXQgaW50byBhIHByb2dyYW0uCisrCSMgJHNo b3cgImVjaG8gdGltZXN0YW1wID4gJGxpYm9iaiIKKysJIyAkcnVuIGV2YWwgImVjaG8gdGltZXN0 YW1wID4gJGxpYm9iaiIgfHwgZXhpdCAkPworKwlleGl0ICRFWElUX1NVQ0NFU1MKKysgICAgICBm aQorKworKyAgICAgIGlmIHRlc3QgLW4gIiRwaWNfZmxhZyIgfHwgdGVzdCAiJHBpY19tb2RlIiAh PSBkZWZhdWx0OyB0aGVuCisrCSMgT25seSBkbyBjb21tYW5kcyBpZiB3ZSByZWFsbHkgaGF2ZSBk aWZmZXJlbnQgUElDIG9iamVjdHMuCisrCXJlbG9hZF9vYmpzPSIkbGlib2JqcyAkcmVsb2FkX2Nv bnZfb2JqcyIKKysJb3V0cHV0PSIkbGlib2JqIgorKwljbWRzPSRyZWxvYWRfY21kcworKwlzYXZl X2lmcz0iJElGUyI7IElGUz0nficKKysJZm9yIGNtZCBpbiAkY21kczsgZG8KKysJICBJRlM9IiRz YXZlX2lmcyIKKysJICBldmFsIGNtZD1cIiRjbWRcIgorKwkgICRzaG93ICIkY21kIgorKwkgICRy dW4gZXZhbCAiJGNtZCIgfHwgZXhpdCAkPworKwlkb25lCisrCUlGUz0iJHNhdmVfaWZzIgorKyAg ICAgIGZpCisrCisrICAgICAgaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KKysJJHNob3cgIiR7 cm19ciAkZ2VudG9wIgorKwkkcnVuICR7cm19ciAkZ2VudG9wCisrICAgICAgZmkKKysKKysgICAg ICBleGl0ICRFWElUX1NVQ0NFU1MKKysgICAgICA7OworKworKyAgICBwcm9nKQorKyAgICAgIGNh c2UgJGhvc3QgaW4KKysJKmN5Z3dpbiopIG91dHB1dD1gJGVjaG8gJG91dHB1dCB8ICR7U0VEfSAt ZSAncywuZXhlJCwsO3MsJCwuZXhlLCdgIDs7CisrICAgICAgZXNhYworKyAgICAgIGlmIHRlc3Qg LW4gIiR2aW5mbyI7IHRoZW4KKysJJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAtdmVyc2lv bi1pbmZvJyBpcyBpZ25vcmVkIGZvciBwcm9ncmFtcyIgMT4mMgorKyAgICAgIGZpCisrCisrICAg ICAgaWYgdGVzdCAtbiAiJHJlbGVhc2UiOyB0aGVuCisrCSRlY2hvICIkbW9kZW5hbWU6IHdhcm5p bmc6IFxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIHByb2dyYW1zIiAxPiYyCisrICAgICAgZmkK KysKKysgICAgICBpZiB0ZXN0ICIkcHJlbG9hZCIgPSB5ZXM7IHRoZW4KKysJaWYgdGVzdCAiJGRs b3Blbl9zdXBwb3J0IiA9IHVua25vd24gJiYgdGVzdCAiJGRsb3Blbl9zZWxmIiA9IHVua25vd24g JiYKKysJICAgdGVzdCAiJGRsb3Blbl9zZWxmX3N0YXRpYyIgPSB1bmtub3duOyB0aGVuCisrCSAg JGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGBBQ19MSUJUT09MX0RMT1BFTicgbm90IHVzZWQu IEFzc3VtaW5nIG5vIGRsb3BlbiBzdXBwb3J0LiIKKysJZmkKKysgICAgICBmaQorKworKyAgICAg IGNhc2UgJGhvc3QgaW4KKysgICAgICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0p CisrCSMgT24gUmhhcHNvZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5IGlzIHRoZSBTeXN0ZW0gZnJh bWV3b3JrCisrCWNvbXBpbGVfZGVwbGlicz1gJGVjaG8gIlggJGNvbXBpbGVfZGVwbGlicyIgfCAk WHNlZCAtZSAncy8gLWxjIC8gLWZyYW1ld29yayBTeXN0ZW0gLydgCisrCWZpbmFsaXplX2RlcGxp YnM9YCRlY2hvICJYICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMgLyAtZnJh bWV3b3JrIFN5c3RlbSAvJ2AKKysJOzsKKysgICAgICBlc2FjCisrCisrICAgICAgY2FzZSAkaG9z dCBpbgorKyAgICAgICpkYXJ3aW4qKQorKyAgICAgICAgIyBEb24ndCBhbGxvdyBsYXp5IGxpbmtp bmcsIGl0IGJyZWFrcyBDKysgZ2xvYmFsIGNvbnN0cnVjdG9ycworKyAgICAgICAgaWYgdGVzdCAi JHRhZ25hbWUiID0gQ1hYIDsgdGhlbgorKyAgICAgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGls ZV9jb21tYW5kICR7d2x9LWJpbmRfYXRfbG9hZCIKKysgICAgICAgIGZpbmFsaXplX2NvbW1hbmQ9 IiRmaW5hbGl6ZV9jb21tYW5kICR7d2x9LWJpbmRfYXRfbG9hZCIKKysgICAgICAgIGZpCisrICAg ICAgICA7OworKyAgICAgIGVzYWMKKysKKysKKysgICAgICAjIG1vdmUgbGlicmFyeSBzZWFyY2gg cGF0aHMgdGhhdCBjb2luY2lkZSB3aXRoIHBhdGhzIHRvIG5vdCB5ZXQKKysgICAgICAjIGluc3Rh bGxlZCBsaWJyYXJpZXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlicmFyeSBzZWFyY2ggbGlz dAorKyAgICAgIG5ld19saWJzPQorKyAgICAgIGZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRv CisrCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgorKwkqIiAtTCRwYXRoLyRvYmpkaXIgIiopIDs7Cisr CSopCisrCSAgY2FzZSAiICRjb21waWxlX2RlcGxpYnMgIiBpbgorKwkgICoiIC1MJHBhdGgvJG9i amRpciAiKikKKysJICAgIG5ld19saWJzPSIkbmV3X2xpYnMgLUwkcGF0aC8kb2JqZGlyIiA7Owor KwkgIGVzYWMKKysJICA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgIGZvciBkZXBsaWIg aW4gJGNvbXBpbGVfZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGliIGluCisrCS1MKikKKysJICBj YXNlICIgJG5ld19saWJzICIgaW4KKysJICAqIiAkZGVwbGliICIqKSA7OworKwkgICopIG5ld19s aWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisrCSAgOzsKKysJKikgbmV3X2xp YnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgIGNv bXBpbGVfZGVwbGlicz0iJG5ld19saWJzIgorKworKworKyAgICAgIGNvbXBpbGVfY29tbWFuZD0i JGNvbXBpbGVfY29tbWFuZCAkY29tcGlsZV9kZXBsaWJzIgorKyAgICAgIGZpbmFsaXplX2NvbW1h bmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRmaW5hbGl6ZV9kZXBsaWJzIgorKworKyAgICAgIGlmIHRl c3QgLW4gIiRycGF0aCR4cnBhdGgiOyB0aGVuCisrCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFu eSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KKysJZm9yIGxpYmRpciBpbiAkcnBhdGggJHhy cGF0aDsgZG8KKysJICAjIFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVzZSAtcnBhdGguCisrCSAgY2Fz ZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KKysJICAqIiAkbGliZGlyICIqKSA7OworKwkgICopIGZp bmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIgOzsKKysJICBlc2FjCisrCWRv bmUKKysgICAgICBmaQorKworKyAgICAgICMgTm93IGhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGhz CisrICAgICAgcnBhdGg9CisrICAgICAgaGFyZGNvZGVfbGliZGlycz0KKysgICAgICBmb3IgbGli ZGlyIGluICRjb21waWxlX3JwYXRoICRmaW5hbGl6ZV9ycGF0aDsgZG8KKysJaWYgdGVzdCAtbiAi JGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCSAgICBpZiB0ZXN0IC16ICIkaGFyZGNvZGVf bGliZGlycyI7IHRoZW4KKysJICAgICAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKKysJICAg IGVsc2UKKysJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgorKwkg ICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkgICAgICAqIiRoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisrCQk7OworKwkgICAg ICAqKQorKwkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciRsaWJkaXIiCisrCQk7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkg IGVsc2UKKysJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKysJ ICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisrCSAgZmkKKysJZWxpZiB0ZXN0IC1uICIkcnVucGF0 aF92YXIiOyB0aGVuCisrCSAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgorKwkgICoiICRsaWJkaXIg IiopIDs7CisrCSAgKikgcGVybV9ycGF0aD0iJHBlcm1fcnBhdGggJGxpYmRpciIgOzsKKysJICBl c2FjCisrCWZpCisrCWNhc2UgJGhvc3QgaW4KKysJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwg Ki0qLXB3MzIqIHwgKi0qLW9zMiopCisrCSAgdGVzdGJpbmRpcj1gJGVjaG8gIlgkbGliZGlyIiB8 ICRYc2VkIC1lICdzKi9saWIkKi9iaW4qJ2AKKysJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4K KysJICAqIjokbGliZGlyOiIqKSA7OworKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hw YXRoOiRsaWJkaXIiOzsKKysJICBlc2FjCisrCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCisr CSAgKiI6JHRlc3RiaW5kaXI6IiopIDs7CisrCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJj aHBhdGg6JHRlc3RiaW5kaXIiOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKyAgICAgIGRv bmUKKysgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJw YXRoLgorKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgor KwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisrCWxpYmRpcj0iJGhhcmRjb2Rl X2xpYmRpcnMiCisrCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgor KyAgICAgIGZpCisrICAgICAgY29tcGlsZV9ycGF0aD0iJHJwYXRoIgorKworKyAgICAgIHJwYXRo PQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcnM9CisrICAgICAgZm9yIGxpYmRpciBpbiAkZmluYWxp emVfcnBhdGg7IGRvCisrCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsg dGhlbgorKwkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgor KwkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisrCSAgICAgIGhhcmRj b2RlX2xpYmRpcnM9IiRsaWJkaXIiCisrCSAgICBlbHNlCisrCSAgICAgICMgSnVzdCBhY2N1bXVs YXRlIHRoZSB1bmlxdWUgbGliZGlycy4KKysJICAgICAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KKysJ ICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciIqKQorKwkJOzsKKysJICAgICAgKikKKysJCWhhcmRjb2RlX2xpYmRpcnM9IiRo YXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgorKwkJOzsK KysJICAgICAgZXNhYworKwkgICAgZmkKKysJICBlbHNlCisrCSAgICBldmFsIGZsYWc9XCIkaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrCSAgICBycGF0aD0iJHJwYXRoICRmbGFnIgorKwkg IGZpCisrCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgorKwkgIGNhc2UgIiRmaW5h bGl6ZV9wZXJtX3JwYXRoICIgaW4KKysJICAqIiAkbGliZGlyICIqKSA7OworKwkgICopIGZpbmFs aXplX3Blcm1fcnBhdGg9IiRmaW5hbGl6ZV9wZXJtX3JwYXRoICRsaWJkaXIiIDs7CisrCSAgZXNh YworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBs aWJkaXJzIGludG8gdGhlIHJwYXRoLgorKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yIiAmJgorKwkgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCisr CWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCisrCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNcIgorKyAgICAgIGZpCisrICAgICAgZmluYWxpemVfcnBhdGg9IiRycGF0 aCIKKysKKysgICAgICBpZiB0ZXN0IC1uICIkbGlib2JqcyIgJiYgdGVzdCAiJGJ1aWxkX29sZF9s aWJzIiA9IHllczsgdGhlbgorKwkjIFRyYW5zZm9ybSBhbGwgdGhlIGxpYnJhcnkgb2JqZWN0cyBp bnRvIHN0YW5kYXJkIG9iamVjdHMuCisrCWNvbXBpbGVfY29tbWFuZD1gJGVjaG8gIlgkY29tcGls ZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCisrCWZpbmFs aXplX2NvbW1hbmQ9YCRlY2hvICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQg LWUgIiRsbzJvIiB8ICROTDJTUGAKKysgICAgICBmaQorKworKyAgICAgIGRsc3ltcz0KKysgICAg ICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBu bzsgdGhlbgorKwlpZiB0ZXN0IC1uICIkTk0iICYmIHRlc3QgLW4gIiRnbG9iYWxfc3ltYm9sX3Bp cGUiOyB0aGVuCisrCSAgZGxzeW1zPSIke291dHB1dG5hbWV9Uy5jIgorKwllbHNlCisrCSAgJGVj aG8gIiRtb2RlbmFtZTogbm90IGNvbmZpZ3VyZWQgdG8gZXh0cmFjdCBnbG9iYWwgc3ltYm9scyBm cm9tIGRscHJlb3BlbmVkIGZpbGVzIiAxPiYyCisrCWZpCisrICAgICAgZmkKKysKKysgICAgICBp ZiB0ZXN0IC1uICIkZGxzeW1zIjsgdGhlbgorKwljYXNlICRkbHN5bXMgaW4KKysJIiIpIDs7Cisr CSouYykKKysJICAjIERpc2NvdmVyIHRoZSBubGlzdCBvZiBlYWNoIG9mIHRoZSBkbGZpbGVzLgor KwkgIG5saXN0PSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Lm5tIgorKworKwkgICRzaG93 ICIkcm0gJG5saXN0ICR7bmxpc3R9UyAke25saXN0fVQiCisrCSAgJHJ1biAkcm0gIiRubGlzdCIg IiR7bmxpc3R9UyIgIiR7bmxpc3R9VCIKKysKKysJICAjIFBhcnNlIHRoZSBuYW1lIGxpc3QgaW50 byBhIHNvdXJjZSBmaWxlLgorKwkgICRzaG93ICJjcmVhdGluZyAkb3V0cHV0X29iamRpci8kZGxz eW1zIgorKworKwkgIHRlc3QgLXogIiRydW4iICYmICRlY2hvID4gIiRvdXRwdXRfb2JqZGlyLyRk bHN5bXMiICJcCisrLyogJGRsc3ltcyAtIHN5bWJvbCByZXNvbHV0aW9uIHRhYmxlIGZvciBcYCRv dXRwdXRuYW1lJyBkbHN5bSBlbXVsYXRpb24uICovCisrLyogR2VuZXJhdGVkIGJ5ICRQUk9HUkFN IC0gR05VICRQQUNLQUdFICRWRVJTSU9OJFRJTUVTVEFNUCAqLworKworKyNpZmRlZiBfX2NwbHVz cGx1cworK2V4dGVybiBcIkNcIiB7CisrI2VuZGlmCisrCisrLyogUHJldmVudCB0aGUgb25seSBr aW5kIG9mIGRlY2xhcmF0aW9uIGNvbmZsaWN0cyB3ZSBjYW4gbWFrZS4gKi8KKysjZGVmaW5lIGx0 X3ByZWxvYWRlZF9zeW1ib2xzIHNvbWVfb3RoZXJfc3ltYm9sCisrCisrLyogRXh0ZXJuYWwgc3lt Ym9sIGRlY2xhcmF0aW9ucyBmb3IgdGhlIGNvbXBpbGVyLiAqL1wKKysiCisrCisrCSAgaWYgdGVz dCAiJGRsc2VsZiIgPSB5ZXM7IHRoZW4KKysJICAgICRzaG93ICJnZW5lcmF0aW5nIHN5bWJvbCBs aXN0IGZvciBcYCRvdXRwdXQnIgorKworKwkgICAgdGVzdCAteiAiJHJ1biIgJiYgJGVjaG8gJzog QFBST0dSQU1AICcgPiAiJG5saXN0IgorKworKwkgICAgIyBBZGQgb3VyIG93biBwcm9ncmFtIG9i amVjdHMgdG8gdGhlIHN5bWJvbCBsaXN0LgorKwkgICAgcHJvZ2ZpbGVzPWAkZWNobyAiWCRvYmpz JG9sZF9kZXBsaWJzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAkTkwyU1BgCisrCSAg ICBmb3IgYXJnIGluICRwcm9nZmlsZXM7IGRvCisrCSAgICAgICRzaG93ICJleHRyYWN0aW5nIGds b2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRhcmcnIgorKwkgICAgICAkcnVuIGV2YWwgIiROTSAkYXJn IHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKKysJICAgIGRvbmUKKysKKysJICAg IGlmIHRlc3QgLW4gIiRleGNsdWRlX2V4cHN5bXMiOyB0aGVuCisrCSAgICAgICRydW4gZXZhbCAn JEVHUkVQIC12ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQnCisr CSAgICAgICRydW4gZXZhbCAnJG12ICIkbmxpc3QiVCAiJG5saXN0IicKKysJICAgIGZpCisrCisr CSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCisrCSAgICAgICRy dW4gZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkbmxpc3QiID4gIiRu bGlzdCJUJworKwkgICAgICAkcnVuIGV2YWwgJyRtdiAiJG5saXN0IlQgIiRubGlzdCInCisrCSAg ICBmaQorKworKwkgICAgIyBQcmVwYXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKKysJ ICAgIGlmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4KKysJICAgICAgZXhwb3J0X3N5 bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIKKysJICAgICAgJHJ1biAkcm0g JGV4cG9ydF9zeW1ib2xzCisrCSAgICAgICRydW4gZXZhbCAiJHtTRUR9IC1uIC1lICcvXjogQFBS T0dSQU1AICQvZCcgLWUgJ3MvXi4qIFwoLipcKSQvXDEvcCcgIic8ICIkbmxpc3QiID4gIiRleHBv cnRfc3ltYm9scyInCisrICAgICAgICAgICAgICBjYXNlICRob3N0IGluCisrICAgICAgICAgICAg ICAqY3lnd2luKiB8ICptaW5ndyogKQorKwkgICAgICAgICRydW4gZXZhbCAiZWNobyBFWFBPUlRT ICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKKysJCSRydW4gZXZhbCAnY2F0 ICIkZXhwb3J0X3N5bWJvbHMiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJwor KyAgICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgICAgZXNhYworKwkgICAgZWxzZQorKwkg ICAgICAkcnVuIGV2YWwgIiR7U0VEfSAtZSAncy9cKFtdLlsqXiRdXCkvXFxcXFwxL2cnIC1lICdz L14vIC8nIC1lICdzLyQvJC8nIicgPCAiJGV4cG9ydF9zeW1ib2xzIiA+ICIkb3V0cHV0X29iamRp ci8kb3V0cHV0bmFtZS5leHAiJworKwkgICAgICAkcnVuIGV2YWwgJ2dyZXAgLWYgIiRvdXRwdXRf b2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIgPCAiJG5saXN0IiA+ICIkbmxpc3QiVCcKKysJICAgICAg JHJ1biBldmFsICdtdiAiJG5saXN0IlQgIiRubGlzdCInCisrICAgICAgICAgICAgICBjYXNlICRo b3N0IGluCisrICAgICAgICAgICAgICAqY3lnd2luKiB8ICptaW5ndyogKQorKwkgICAgICAgICRy dW4gZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVm IicKKysJCSRydW4gZXZhbCAnY2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0 bmFtZS5kZWYiJworKyAgICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgICAgZXNhYworKwkg ICAgZmkKKysJICBmaQorKworKwkgIGZvciBhcmcgaW4gJGRscHJlZmlsZXM7IGRvCisrCSAgICAk c2hvdyAiZXh0cmFjdGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkYXJnJyIKKysJICAgIG5h bWU9YCRlY2hvICIkYXJnIiB8ICR7U0VEfSAtZSAncyVeLiovJSUnYAorKwkgICAgJHJ1biBldmFs ICckZWNobyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJworKwkgICAgJHJ1biBldmFsICIkTk0gJGFy ZyB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgPj4gJyRubGlzdCciCisrCSAgZG9uZQorKworKwkgIGlm IHRlc3QgLXogIiRydW4iOyB0aGVuCisrCSAgICAjIE1ha2Ugc3VyZSB3ZSBoYXZlIGF0IGxlYXN0 IGFuIGVtcHR5IGZpbGUuCisrCSAgICB0ZXN0IC1mICIkbmxpc3QiIHx8IDogPiAiJG5saXN0Igor KworKwkgICAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7IHRoZW4KKysJICAgICAgJEVH UkVQIC12ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQKKysJICAg ICAgJG12ICIkbmxpc3QiVCAiJG5saXN0IgorKwkgICAgZmkKKysKKysJICAgICMgVHJ5IHNvcnRp bmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCisrCSAgICBpZiBncmVwIC12ICJeOiAiIDwg IiRubGlzdCIgfAorKwkJaWYgc29ydCAtayAzIDwvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYxOyB0 aGVuCisrCQkgIHNvcnQgLWsgMworKwkJZWxzZQorKwkJICBzb3J0ICsyCisrCQlmaSB8CisrCQl1 bmlxID4gIiRubGlzdCJTOyB0aGVuCisrCSAgICAgIDoKKysJICAgIGVsc2UKKysJICAgICAgZ3Jl cCAtdiAiXjogIiA8ICIkbmxpc3QiID4gIiRubGlzdCJTCisrCSAgICBmaQorKworKwkgICAgaWYg dGVzdCAtZiAiJG5saXN0IlM7IHRoZW4KKysJICAgICAgZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9f Y2RlY2wiJyA8ICIkbmxpc3QiUyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyInCisrCSAgICBl bHNlCisrCSAgICAgICRlY2hvICcvKiBOT05FICovJyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3lt cyIKKysJICAgIGZpCisrCisrCSAgICAkZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIg IlwKKysKKysjdW5kZWYgbHRfcHJlbG9hZGVkX3N5bWJvbHMKKysKKysjaWYgZGVmaW5lZCAoX19T VERDX18pICYmIF9fU1REQ19fCisrIyBkZWZpbmUgbHRfcHRyIHZvaWQgKgorKyNlbHNlCisrIyBk ZWZpbmUgbHRfcHRyIGNoYXIgKgorKyMgZGVmaW5lIGNvbnN0CisrI2VuZGlmCisrCisrLyogVGhl IG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICovCisrIgorKworKwkg ICAgY2FzZSAkaG9zdCBpbgorKwkgICAgKmN5Z3dpbiogfCAqbWluZ3cqICkKKysJICAkZWNobyA+ PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIgIlwKKysvKiBEQVRBIGltcG9ydHMgZnJvbSBETExz IG9uIFdJTjMyIGNhbid0IGJlIGNvbnN0LCBiZWNhdXNlCisrICAgcnVudGltZSByZWxvY2F0aW9u cyBhcmUgcGVyZm9ybWVkIC0tIHNlZSBsZCdzIGRvY3VtZW50YXRpb24KKysgICBvbiBwc2V1ZG8t cmVsb2NzICovCisrc3RydWN0IHsKKysiCisrCSAgICAgIDs7CisrCSAgICAqICkKKysJICAkZWNo byA+PiAiJG91dHB1dF9vYmpkaXIvJGRsc3ltcyIgIlwKKytjb25zdCBzdHJ1Y3QgeworKyIKKysJ ICAgICAgOzsKKysJICAgIGVzYWMKKysKKysKKysJICAkZWNobyA+PiAiJG91dHB1dF9vYmpkaXIv JGRsc3ltcyIgIlwKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICBsdF9wdHIgYWRkcmVzczsKKyt9 CisrbHRfcHJlbG9hZGVkX3N5bWJvbHNbXSA9Cisre1wKKysiCisrCisrCSAgICBldmFsICIkZ2xv YmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyIgPCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpk aXIvJGRsc3ltcyIKKysKKysJICAgICRlY2hvID4+ICIkb3V0cHV0X29iamRpci8kZGxzeW1zIiAi XAorKyAgezAsIChsdF9wdHIpIDB9CisrfTsKKysKKysvKiBUaGlzIHdvcmtzIGFyb3VuZCBhIHBy b2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KKysjaWZkZWYgRlJFRUJTRF9XT1JLQVJPVU5ECisr c3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgpIHsKKysgIHJldHVybiBsdF9w cmVsb2FkZWRfc3ltYm9sczsKKyt9CisrI2VuZGlmCisrCisrI2lmZGVmIF9fY3BsdXNwbHVzCisr fQorKyNlbmRpZlwKKysiCisrCSAgZmkKKysKKysJICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9Cisr CSAgY2FzZSAkaG9zdCBpbgorKwkgICMgY29tcGlsaW5nIHRoZSBzeW1ib2wgdGFibGUgZmlsZSB3 aXRoIHBpY19mbGFnIHdvcmtzIGFyb3VuZAorKwkgICMgYSBGcmVlQlNEIGJ1ZyB0aGF0IGNhdXNl cyBwcm9ncmFtcyB0byBjcmFzaCB3aGVuIC1sbSBpcworKwkgICMgbGlua2VkIGJlZm9yZSBhbnkg b3RoZXIgUElDIG9iamVjdC4gIEJ1dCB3ZSBtdXN0IG5vdCB1c2UKKysJICAjIHBpY19mbGFnIHdo ZW4gbGlua2luZyB3aXRoIC1zdGF0aWMuICBUaGUgcHJvYmxlbSBleGlzdHMgaW4KKysJICAjIEZy ZWVCU0QgMi4yLjYgYW5kIGlzIGZpeGVkIGluIEZyZWVCU0QgMy4xLgorKwkgICotKi1mcmVlYnNk Mip8Ki0qLWZyZWVic2QzLjAqfCotKi1mcmVlYnNkZWxmMy4wKikKKysJICAgIGNhc2UgIiRjb21w aWxlX2NvbW1hbmQgIiBpbgorKwkgICAgKiIgLXN0YXRpYyAiKikgOzsKKysJICAgICopIHBpY19m bGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyAtREZSRUVCU0RfV09SS0FST1VORCI7OworKwkg ICAgZXNhYzs7CisrCSAgKi0qLWhwdXgqKQorKwkgICAgY2FzZSAiJGNvbXBpbGVfY29tbWFuZCAi IGluCisrCSAgICAqIiAtc3RhdGljICIqKSA7OworKwkgICAgKikgcGljX2ZsYWdfZm9yX3N5bXRh YmxlPSIgJHBpY19mbGFnIjs7CisrCSAgICBlc2FjCisrCSAgZXNhYworKworKwkgICMgTm93IGNv bXBpbGUgdGhlIGR5bmFtaWMgc3ltYm9sIGZpbGUuCisrCSAgJHNob3cgIihjZCAkb3V0cHV0X29i amRpciAmJiAkTFRDQyAgJExUQ0ZMQUdTIC1jJG5vX2J1aWx0aW5fZmxhZyRwaWNfZmxhZ19mb3Jf c3ltdGFibGUgXCIkZGxzeW1zXCIpIgorKwkgICRydW4gZXZhbCAnKGNkICRvdXRwdXRfb2JqZGly ICYmICRMVENDICAkTFRDRkxBR1MgLWMkbm9fYnVpbHRpbl9mbGFnJHBpY19mbGFnX2Zvcl9zeW10 YWJsZSAiJGRsc3ltcyIpJyB8fCBleGl0ICQ/CisrCisrCSAgIyBDbGVhbiB1cCB0aGUgZ2VuZXJh dGVkIGZpbGVzLgorKwkgICRzaG93ICIkcm0gJG91dHB1dF9vYmpkaXIvJGRsc3ltcyAkbmxpc3Qg JHtubGlzdH1TICR7bmxpc3R9VCIKKysJICAkcnVuICRybSAiJG91dHB1dF9vYmpkaXIvJGRsc3lt cyIgIiRubGlzdCIgIiR7bmxpc3R9UyIgIiR7bmxpc3R9VCIKKysKKysJICAjIFRyYW5zZm9ybSB0 aGUgc3ltYm9sIGZpbGUgaW50byB0aGUgY29ycmVjdCBuYW1lLgorKyAgICAgICAgICBjYXNlICRo b3N0IGluCisrICAgICAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiApCisrICAgICAgICAgICAgaWYg dGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfS5kZWYiIDsgdGhlbgorKyAgICAg ICAgICAgICAgY29tcGlsZV9jb21tYW5kPWAkZWNobyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFNQ Mk5MIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX0u ZGVmICRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQYAor KyAgICAgICAgICAgICAgZmluYWxpemVfY29tbWFuZD1gJGVjaG8gIlgkZmluYWxpemVfY29tbWFu ZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJHtvdXRw dXRuYW1lfS5kZWYgJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9JSIgfCAk TkwyU1BgCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgY29tcGlsZV9jb21tYW5k PWAkZWNobyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlQFNZTUZJ TEVAJSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQYAor KyAgICAgICAgICAgICAgZmluYWxpemVfY29tbWFuZD1gJGVjaG8gIlgkZmluYWxpemVfY29tbWFu ZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJHtvdXRw dXRuYW1lfVMuJHtvYmpleHR9JSIgfCAkTkwyU1BgCisrICAgICAgICAgICAgIGZpCisrICAgICAg ICAgICAgOzsKKysgICAgICAgICAgKiApCisrICAgICAgICAgICAgY29tcGlsZV9jb21tYW5kPWAk ZWNobyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVA JSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQYAorKyAg ICAgICAgICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRlY2hvICJYJGZpbmFsaXplX2NvbW1hbmQiIHwg JFNQMk5MIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFt ZX1TLiR7b2JqZXh0fSUiIHwgJE5MMlNQYAorKyAgICAgICAgICAgIDs7CisrICAgICAgICAgIGVz YWMKKysJICA7OworKwkqKQorKwkgICRlY2hvICIkbW9kZW5hbWU6IHVua25vd24gc3VmZml4IGZv ciBcYCRkbHN5bXMnIiAxPiYyCisrCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgOzsKKysJZXNh YworKyAgICAgIGVsc2UKKysJIyBXZSBrZWVwIGdvaW5nIGp1c3QgaW4gY2FzZSB0aGUgdXNlciBk aWRuJ3QgcmVmZXIgdG8KKysJIyBsdF9wcmVsb2FkZWRfc3ltYm9scy4gIFRoZSBsaW5rZXIgd2ls bCBmYWlsIGlmIGdsb2JhbF9zeW1ib2xfcGlwZQorKwkjIHJlYWxseSB3YXMgcmVxdWlyZWQuCisr CisrCSMgTnVsbGlmeSB0aGUgc3ltYm9sIGZpbGUuCisrCWNvbXBpbGVfY29tbWFuZD1gJGVjaG8g IlgkY29tcGlsZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1lICJzJSBAU1lNRklMRUAlJSIg fCAkTkwyU1BgCisrCWZpbmFsaXplX2NvbW1hbmQ9YCRlY2hvICJYJGZpbmFsaXplX2NvbW1hbmQi IHwgJFNQMk5MIHwgJFhzZWQgLWUgInMlIEBTWU1GSUxFQCUlIiB8ICROTDJTUGAKKysgICAgICBm aQorKworKyAgICAgIGlmIHRlc3QgIiRuZWVkX3JlbGluayIgPSBubyB8fCB0ZXN0ICIkYnVpbGRf bGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KKysJIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBz cGVjaWZpY2F0aW9uLgorKwljb21waWxlX2NvbW1hbmQ9YCRlY2hvICJYJGNvbXBpbGVfY29tbWFu ZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJyB8ICROTDJT UGAKKysJbGlua19jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCisrCisr CSMgV2UgaGF2ZSBubyB1bmluc3RhbGxlZCBsaWJyYXJ5IGRlcGVuZGVuY2llcywgc28gZmluYWxp emUgcmlnaHQgbm93LgorKwkkc2hvdyAiJGxpbmtfY29tbWFuZCIKKysJJHJ1biBldmFsICIkbGlu a19jb21tYW5kIgorKwlleGl0X3N0YXR1cz0kPworKworKwkjIERlbGV0ZSB0aGUgZ2VuZXJhdGVk IGZpbGVzLgorKwlpZiB0ZXN0IC1uICIkZGxzeW1zIjsgdGhlbgorKwkgICRzaG93ICIkcm0gJG91 dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpleHR9IgorKwkgICRydW4gJHJtICIkb3V0 cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4dH0iCisrCWZpCisrCisrCWV4aXQgJGV4 aXRfc3RhdHVzCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3Zh ciI7IHRoZW4KKysJIyBXZSBzaG91bGQgc2V0IHRoZSBzaGxpYnBhdGhfdmFyCisrCXJwYXRoPQor Kwlmb3IgZGlyIGluICR0ZW1wX3JwYXRoOyBkbworKwkgIGNhc2UgJGRpciBpbgorKwkgIFtcXC9d KiB8IFtBLVphLXpdOltcXC9dKikKKysJICAgICMgQWJzb2x1dGUgcGF0aC4KKysJICAgIHJwYXRo PSIkcnBhdGgkZGlyOiIKKysJICAgIDs7CisrCSAgKikKKysJICAgICMgUmVsYXRpdmUgcGF0aDog YWRkIGEgdGhpc2RpciBlbnRyeS4KKysJICAgIHJwYXRoPSIkcnBhdGhcJHRoaXNkaXIvJGRpcjoi CisrCSAgICA7OworKwkgIGVzYWMKKysJZG9uZQorKwl0ZW1wX3JwYXRoPSIkcnBhdGgiCisrICAg ICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkY29tcGlsZV9zaGxpYnBhdGgkZmluYWxpemVf c2hsaWJwYXRoIjsgdGhlbgorKwljb21waWxlX2NvbW1hbmQ9IiRzaGxpYnBhdGhfdmFyPVwiJGNv bXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGlicGF0aFwkJHNobGlicGF0aF92YXJcIiAkY29t cGlsZV9jb21tYW5kIgorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAtbiAiJGZpbmFsaXplX3No bGlicGF0aCI7IHRoZW4KKysJZmluYWxpemVfY29tbWFuZD0iJHNobGlicGF0aF92YXI9XCIkZmlu YWxpemVfc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3ZhclwiICRmaW5hbGl6ZV9jb21tYW5kIgorKyAg ICAgIGZpCisrCisrICAgICAgY29tcGlsZV92YXI9CisrICAgICAgZmluYWxpemVfdmFyPQorKyAg ICAgIGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJaWYgdGVzdCAtbiAiJHBlcm1f cnBhdGgiOyB0aGVuCisrCSAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KKysJICBy cGF0aD0KKysJICBmb3IgZGlyIGluICRwZXJtX3JwYXRoOyBkbworKwkgICAgcnBhdGg9IiRycGF0 aCRkaXI6IgorKwkgIGRvbmUKKysJICBjb21waWxlX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRo XCQkcnVucGF0aF92YXJcIiAiCisrCWZpCisrCWlmIHRlc3QgLW4gIiRmaW5hbGl6ZV9wZXJtX3Jw YXRoIjsgdGhlbgorKwkgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIuCisrCSAgcnBh dGg9CisrCSAgZm9yIGRpciBpbiAkZmluYWxpemVfcGVybV9ycGF0aDsgZG8KKysJICAgIHJwYXRo PSIkcnBhdGgkZGlyOiIKKysJICBkb25lCisrCSAgZmluYWxpemVfdmFyPSIkcnVucGF0aF92YXI9 XCIkcnBhdGhcJCRydW5wYXRoX3ZhclwiICIKKysJZmkKKysgICAgICBmaQorKworKyAgICAgIGlm IHRlc3QgIiRub19pbnN0YWxsIiA9IHllczsgdGhlbgorKwkjIFdlIGRvbid0IG5lZWQgdG8gY3Jl YXRlIGEgd3JhcHBlciBzY3JpcHQuCisrCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFyJGNvbXBp bGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgorKwkjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNw ZWNpZmljYXRpb24uCisrCWxpbmtfY29tbWFuZD1gJGVjaG8gIlgkbGlua19jb21tYW5kIiB8ICRY c2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAorKwkjIERlbGV0ZSB0aGUgb2xkIG91 dHB1dCBmaWxlLgorKwkkcnVuICRybSAkb3V0cHV0CisrCSMgTGluayB0aGUgZXhlY3V0YWJsZSBh bmQgZXhpdAorKwkkc2hvdyAiJGxpbmtfY29tbWFuZCIKKysJJHJ1biBldmFsICIkbGlua19jb21t YW5kIiB8fCBleGl0ICQ/CisrCWV4aXQgJEVYSVRfU1VDQ0VTUworKyAgICAgIGZpCisrCisrICAg ICAgaWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbiIgPSByZWxpbms7IHRoZW4KKysJIyBGYXN0IGlu c3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCisrCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVfdmFy JGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgorKwlyZWxpbmtfY29tbWFuZD0iJGZpbmFs aXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgorKworKwkkZWNobyAiJG1v ZGVuYW1lOiB3YXJuaW5nOiB0aGlzIHBsYXRmb3JtIGRvZXMgbm90IGxpa2UgdW5pbnN0YWxsZWQg c2hhcmVkIGxpYnJhcmllcyIgMT4mMgorKwkkZWNobyAiJG1vZGVuYW1lOiBcYCRvdXRwdXQnIHdp bGwgYmUgcmVsaW5rZWQgZHVyaW5nIGluc3RhbGxhdGlvbiIgMT4mMgorKyAgICAgIGVsc2UKKysJ aWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgIT0gbm87IHRoZW4KKysJICBsaW5rX2NvbW1hbmQ9IiRm aW5hbGl6ZV92YXIkY29tcGlsZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgorKwkgIGlmIHRlc3Qg IiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisrCSAgICByZWxpbmtfY29tbWFuZD1gJGVjaG8g IlgkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiIHwgJFNQMk5MIHwg JFhzZWQgLWUgJ3MlQE9VVFBVVEAlXCRwcm9nZGlyL1wkZmlsZSVnJyB8ICROTDJTUGAKKysJICBl bHNlCisrCSAgICAjIGZhc3RfaW5zdGFsbCBpcyBzZXQgdG8gbmVlZGxlc3MKKysJICAgIHJlbGlu a19jb21tYW5kPQorKwkgIGZpCisrCWVsc2UKKysJICBsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3Zh ciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKKysJICByZWxpbmtfY29tbWFuZD0iJGZp bmFsaXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRoIgorKwlmaQorKyAgICAg IGZpCisrCisrICAgICAgIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgor KyAgICAgIGxpbmtfY29tbWFuZD1gJGVjaG8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdz JUBPVVRQVVRAJSciJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiJyVnJ2AKKysKKysgICAgICAj IERlbGV0ZSB0aGUgb2xkIG91dHB1dCBmaWxlcy4KKysgICAgICAkcnVuICRybSAkb3V0cHV0ICRv dXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lICRvdXRwdXRfb2JqZGlyL2x0LSRvdXRwdXRuYW1lCisr CisrICAgICAgJHNob3cgIiRsaW5rX2NvbW1hbmQiCisrICAgICAgJHJ1biBldmFsICIkbGlua19j b21tYW5kIiB8fCBleGl0ICQ/CisrCisrICAgICAgIyBOb3cgY3JlYXRlIHRoZSB3cmFwcGVyIHNj cmlwdC4KKysgICAgICAkc2hvdyAiY3JlYXRpbmcgJG91dHB1dCIKKysKKysgICAgICAjIFF1b3Rl IHRoZSByZWxpbmsgY29tbWFuZCBmb3Igc2hpcHBpbmcuCisrICAgICAgaWYgdGVzdCAtbiAiJHJl bGlua19jb21tYW5kIjsgdGhlbgorKwkjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkg YWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCisrCWZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9m b3JfcmVsaW5rOyBkbworKwkgIGlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVu CisrCSAgICByZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCIgfHwgdW5z ZXQgJHZhciB8fCB7ICR2YXI9OyBleHBvcnQgJHZhcjsgfTsgfTsgJHJlbGlua19jb21tYW5kIgor KwkgIGVsaWYgZXZhbCB2YXJfdmFsdWU9XCQkdmFyOyB0ZXN0IC16ICIkdmFyX3ZhbHVlIjsgdGhl bgorKwkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21t YW5kIgorKwkgIGVsc2UKKysJICAgIHZhcl92YWx1ZT1gJGVjaG8gIlgkdmFyX3ZhbHVlIiB8ICRY c2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKysJICAgIHJlbGlua19jb21tYW5kPSIkdmFyPVwi JHZhcl92YWx1ZVwiOyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgorKwkgIGZpCisrCWRv bmUKKysJcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJHJlbGlua19jb21tYW5kKSIKKysJcmVs aW5rX2NvbW1hbmQ9YCRlY2hvICJYJHJlbGlua19jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2VkIC1l ICIkc2VkX3F1b3RlX3N1YnN0IiB8ICROTDJTUGAKKysgICAgICBmaQorKworKyAgICAgICMgUXVv dGUgJGVjaG8gZm9yIHNoaXBwaW5nLgorKyAgICAgIGlmIHRlc3QgIlgkZWNobyIgPSAiWCRTSEVM TCAkcHJvZ3BhdGggLS1mYWxsYmFjay1lY2hvIjsgdGhlbgorKwljYXNlICRwcm9ncGF0aCBpbgor KwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIHFlY2hvPSIkU0hFTEwgJHByb2dwYXRoIC0tZmFs bGJhY2stZWNobyI7OworKwkqKSBxZWNobz0iJFNIRUxMIGBwd2RgLyRwcm9ncGF0aCAtLWZhbGxi YWNrLWVjaG8iOzsKKysJZXNhYworKwlxZWNobz1gJGVjaG8gIlgkcWVjaG8iIHwgJFhzZWQgLWUg IiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGVsc2UKKysJcWVjaG89YCRlY2hvICJYJGVjaG8i IHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGZpCisrCisrICAgICAgIyBP bmx5IGFjdHVhbGx5IGRvIHRoaW5ncyBpZiBvdXIgcnVuIGNvbW1hbmQgaXMgbm9uLW51bGwuCisr ICAgICAgaWYgdGVzdCAteiAiJHJ1biI7IHRoZW4KKysJIyB3aW4zMiB3aWxsIHRoaW5rIHRoZSBz Y3JpcHQgaXMgYSBiaW5hcnkgaWYgaXQgaGFzCisrCSMgYSAuZXhlIHN1ZmZpeCwgc28gd2Ugc3Ry aXAgaXQgb2ZmIGhlcmUuCisrCWNhc2UgJG91dHB1dCBpbgorKwkgICouZXhlKSBvdXRwdXQ9YCRl Y2hvICRvdXRwdXR8JHtTRUR9ICdzLC5leGUkLCwnYCA7OworKwllc2FjCisrCSMgdGVzdCBmb3Ig Y3lnd2luIGJlY2F1c2UgbXYgZmFpbHMgdy9vIC5leGUgZXh0ZW5zaW9ucworKwljYXNlICRob3N0 IGluCisrCSAgKmN5Z3dpbiopCisrCSAgICBleGVleHQ9LmV4ZQorKwkgICAgb3V0cHV0bmFtZT1g JGVjaG8gJG91dHB1dG5hbWV8JHtTRUR9ICdzLC5leGUkLCwnYCA7OworKwkgICopIGV4ZWV4dD0g OzsKKysJZXNhYworKwljYXNlICRob3N0IGluCisrCSAgKmN5Z3dpbiogfCAqbWluZ3cqICkKKysg ICAgICAgICAgICBvdXRwdXRfbmFtZT1gYmFzZW5hbWUgJG91dHB1dGAKKysgICAgICAgICAgICBv dXRwdXRfcGF0aD1gZGlybmFtZSAkb3V0cHV0YAorKyAgICAgICAgICAgIGN3cmFwcGVyc291cmNl PSIkb3V0cHV0X3BhdGgvJG9iamRpci9sdC0kb3V0cHV0X25hbWUuYyIKKysgICAgICAgICAgICBj d3JhcHBlcj0iJG91dHB1dF9wYXRoLyRvdXRwdXRfbmFtZS5leGUiCisrICAgICAgICAgICAgJHJt ICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXIKKysgICAgICAgICAgICB0cmFwICIkcm0gJGN3cmFw cGVyc291cmNlICRjd3JhcHBlcjsgZXhpdCAkRVhJVF9GQUlMVVJFIiAxIDIgMTUKKysKKysJICAg IGNhdCA+ICRjd3JhcHBlcnNvdXJjZSA8PEVPRgorKworKy8qICRjd3JhcHBlcnNvdXJjZSAtIHRl bXBvcmFyeSB3cmFwcGVyIGV4ZWN1dGFibGUgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKKysgICBH ZW5lcmF0ZWQgYnkgJFBST0dSQU0gLSBHTlUgJFBBQ0tBR0UgJFZFUlNJT04kVElNRVNUQU1QCisr CisrICAgVGhlICRvdXRwdXQgcHJvZ3JhbSBjYW5ub3QgYmUgZGlyZWN0bHkgZXhlY3V0ZWQgdW50 aWwgYWxsIHRoZSBsaWJ0b29sCisrICAgbGlicmFyaWVzIHRoYXQgaXQgZGVwZW5kcyBvbiBhcmUg aW5zdGFsbGVkLgorKworKyAgIFRoaXMgd3JhcHBlciBleGVjdXRhYmxlIHNob3VsZCBuZXZlciBi ZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysgICBJZiBpdCBpcywgaXQgd2ls bCBub3Qgb3BlcmF0ZSBjb3JyZWN0bHkuCisrCisrICAgQ3VycmVudGx5LCBpdCBzaW1wbHkgZXhl Y3MgdGhlIHdyYXBwZXIgKnNjcmlwdCogIi9iaW4vc2ggJG91dHB1dCIsCisrICAgYnV0IGNvdWxk IGV2ZW50dWFsbHkgYWJzb3JiIGFsbCBvZiB0aGUgc2NyaXB0cyBmdW5jdGlvbmFsaXR5IGFuZAor KyAgIGV4ZWMgJG9iamRpci8kb3V0cHV0bmFtZSBkaXJlY3RseS4KKysqLworK0VPRgorKwkgICAg Y2F0ID4+ICRjd3JhcHBlcnNvdXJjZTw8IkVPRiIKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaW5j bHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPHVuaXN0ZC5oPgorKyNpbmNsdWRlIDxtYWxsb2Mu aD4KKysjaW5jbHVkZSA8c3RkYXJnLmg+CisrI2luY2x1ZGUgPGFzc2VydC5oPgorKyNpbmNsdWRl IDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVkZSA8c3lzL3N0YXQuaD4K KysKKysjaWYgZGVmaW5lZChQQVRIX01BWCkKKysjIGRlZmluZSBMVF9QQVRITUFYIFBBVEhfTUFY CisrI2VsaWYgZGVmaW5lZChNQVhQQVRITEVOKQorKyMgZGVmaW5lIExUX1BBVEhNQVggTUFYUEFU SExFTgorKyNlbHNlCisrIyBkZWZpbmUgTFRfUEFUSE1BWCAxMDI0CisrI2VuZGlmCisrCisrI2lm bmRlZiBESVJfU0VQQVJBVE9SCisrIyBkZWZpbmUgRElSX1NFUEFSQVRPUiAnLycKKysjIGRlZmlu ZSBQQVRIX1NFUEFSQVRPUiAnOicKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAoX1dJTjMyKSB8 fCBkZWZpbmVkIChfX01TRE9TX18pIHx8IGRlZmluZWQgKF9fREpHUFBfXykgfHwgXAorKyAgZGVm aW5lZCAoX19PUzJfXykKKysjIGRlZmluZSBIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTQorKyMg aWZuZGVmIERJUl9TRVBBUkFUT1JfMgorKyMgIGRlZmluZSBESVJfU0VQQVJBVE9SXzIgJ1xcJwor KyMgZW5kaWYKKysjIGlmbmRlZiBQQVRIX1NFUEFSQVRPUl8yCisrIyAgZGVmaW5lIFBBVEhfU0VQ QVJBVE9SXzIgJzsnCisrIyBlbmRpZgorKyNlbmRpZgorKworKyNpZm5kZWYgRElSX1NFUEFSQVRP Ul8yCisrIyBkZWZpbmUgSVNfRElSX1NFUEFSQVRPUihjaCkgKChjaCkgPT0gRElSX1NFUEFSQVRP UikKKysjZWxzZSAvKiBESVJfU0VQQVJBVE9SXzIgKi8KKysjIGRlZmluZSBJU19ESVJfU0VQQVJB VE9SKGNoKSBcCisrICAgICAgICAoKChjaCkgPT0gRElSX1NFUEFSQVRPUikgfHwgKChjaCkgPT0g RElSX1NFUEFSQVRPUl8yKSkKKysjZW5kaWYgLyogRElSX1NFUEFSQVRPUl8yICovCisrCisrI2lm bmRlZiBQQVRIX1NFUEFSQVRPUl8yCisrIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gpICgo Y2gpID09IFBBVEhfU0VQQVJBVE9SKQorKyNlbHNlIC8qIFBBVEhfU0VQQVJBVE9SXzIgKi8KKysj IGRlZmluZSBJU19QQVRIX1NFUEFSQVRPUihjaCkgKChjaCkgPT0gUEFUSF9TRVBBUkFUT1JfMikK KysjZW5kaWYgLyogUEFUSF9TRVBBUkFUT1JfMiAqLworKworKyNkZWZpbmUgWE1BTExPQyh0eXBl LCBudW0pICAgICAgKCh0eXBlICopIHhtYWxsb2MgKChudW0pICogc2l6ZW9mKHR5cGUpKSkKKysj ZGVmaW5lIFhGUkVFKHN0YWxlKSBkbyB7IFwKKysgIGlmIChzdGFsZSkgeyBmcmVlICgodm9pZCAq KSBzdGFsZSk7IHN0YWxlID0gMDsgfSBcCisrfSB3aGlsZSAoMCkKKysKKysvKiAtRERFQlVHIGlz IGZhaXJseSBjb21tb24gaW4gQ0ZMQUdTLiAgKi8KKysjdW5kZWYgREVCVUcKKysjaWYgZGVmaW5l ZCBERUJVR1dSQVBQRVIKKysjIGRlZmluZSBERUJVRyhmb3JtYXQsIC4uLikgZnByaW50ZihzdGRl cnIsIGZvcm1hdCwgX19WQV9BUkdTX18pCisrI2Vsc2UKKysjIGRlZmluZSBERUJVRyhmb3JtYXQs IC4uLikKKysjZW5kaWYKKysKKytjb25zdCBjaGFyICpwcm9ncmFtX25hbWUgPSBOVUxMOworKwor K3ZvaWQgKiB4bWFsbG9jIChzaXplX3QgbnVtKTsKKytjaGFyICogeHN0cmR1cCAoY29uc3QgY2hh ciAqc3RyaW5nKTsKKytjb25zdCBjaGFyICogYmFzZV9uYW1lIChjb25zdCBjaGFyICpuYW1lKTsK KytjaGFyICogZmluZF9leGVjdXRhYmxlKGNvbnN0IGNoYXIgKndyYXBwZXIpOworK2ludCAgICBj aGVja19leGVjdXRhYmxlKGNvbnN0IGNoYXIgKnBhdGgpOworK2NoYXIgKiBzdHJlbmR6YXAoY2hh ciAqc3RyLCBjb25zdCBjaGFyICpwYXQpOworK3ZvaWQgbHRfZmF0YWwgKGNvbnN0IGNoYXIgKm1l c3NhZ2UsIC4uLik7CisrCisraW50CisrbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyt7 CisrICBjaGFyICoqbmV3YXJnejsKKysgIGludCBpOworKworKyAgcHJvZ3JhbV9uYW1lID0gKGNo YXIgKikgeHN0cmR1cCAoYmFzZV9uYW1lIChhcmd2WzBdKSk7CisrICBERUJVRygiKG1haW4pIGFy Z3ZbMF0gICAgICA6ICVzXG4iLGFyZ3ZbMF0pOworKyAgREVCVUcoIihtYWluKSBwcm9ncmFtX25h bWUgOiAlc1xuIixwcm9ncmFtX25hbWUpOworKyAgbmV3YXJneiA9IFhNQUxMT0MoY2hhciAqLCBh cmdjKzIpOworK0VPRgorKworKyAgICAgICAgICAgIGNhdCA+PiAkY3dyYXBwZXJzb3VyY2UgPDxF T0YKKysgIG5ld2FyZ3pbMF0gPSAoY2hhciAqKSB4c3RyZHVwKCIkU0hFTEwiKTsKKytFT0YKKysK KysgICAgICAgICAgICBjYXQgPj4gJGN3cmFwcGVyc291cmNlIDw8IkVPRiIKKysgIG5ld2FyZ3pb MV0gPSBmaW5kX2V4ZWN1dGFibGUoYXJndlswXSk7CisrICBpZiAobmV3YXJnelsxXSA9PSBOVUxM KQorKyAgICBsdF9mYXRhbCgiQ291bGRuJ3QgZmluZCAlcyIsIGFyZ3ZbMF0pOworKyAgREVCVUco IihtYWluKSBmb3VuZCBleGUgYXQgOiAlc1xuIixuZXdhcmd6WzFdKTsKKysgIC8qIHdlIGtub3cg dGhlIHNjcmlwdCBoYXMgdGhlIHNhbWUgbmFtZSwgd2l0aG91dCB0aGUgLmV4ZSAqLworKyAgLyog c28gbWFrZSBzdXJlIG5ld2FyZ3pbMV0gZG9lc24ndCBlbmQgaW4gLmV4ZSAqLworKyAgc3RyZW5k emFwKG5ld2FyZ3pbMV0sIi5leGUiKTsKKysgIGZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspCisr ICAgIG5ld2FyZ3pbaSsxXSA9IHhzdHJkdXAoYXJndltpXSk7CisrICBuZXdhcmd6W2FyZ2MrMV0g PSBOVUxMOworKworKyAgZm9yIChpPTA7IGk8YXJnYysxOyBpKyspCisrICB7CisrICAgIERFQlVH KCIobWFpbikgbmV3YXJnelslZF0gICA6ICVzXG4iLGksbmV3YXJneltpXSk7CisrICAgIDsKKysg IH0KKysKKytFT0YKKysKKysgICAgICAgICAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgICAg ICAgICBtaW5ndyopCisrICAgICAgICAgICAgICAgIGNhdCA+PiAkY3dyYXBwZXJzb3VyY2UgPDxF T0YKKysgIGV4ZWN2KCIkU0hFTEwiLChjaGFyIGNvbnN0ICoqKW5ld2FyZ3opOworK0VPRgorKyAg ICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgICopCisrICAgICAgICAgICAgICAgIGNhdCA+ PiAkY3dyYXBwZXJzb3VyY2UgPDxFT0YKKysgIGV4ZWN2KCIkU0hFTEwiLG5ld2FyZ3opOworK0VP RgorKyAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICBlc2FjCisrCisrICAgICAgICAgICAg Y2F0ID4+ICRjd3JhcHBlcnNvdXJjZSA8PCJFT0YiCisrICByZXR1cm4gMTI3OworK30KKysKKyt2 b2lkICoKKyt4bWFsbG9jIChzaXplX3QgbnVtKQorK3sKKysgIHZvaWQgKiBwID0gKHZvaWQgKikg bWFsbG9jIChudW0pOworKyAgaWYgKCFwKQorKyAgICBsdF9mYXRhbCAoIk1lbW9yeSBleGhhdXN0 ZWQiKTsKKysKKysgIHJldHVybiBwOworK30KKysKKytjaGFyICoKKyt4c3RyZHVwIChjb25zdCBj aGFyICpzdHJpbmcpCisreworKyAgcmV0dXJuIHN0cmluZyA/IHN0cmNweSAoKGNoYXIgKikgeG1h bGxvYyAoc3RybGVuIChzdHJpbmcpICsgMSksIHN0cmluZykgOiBOVUxMCisrOworK30KKysKKytj b25zdCBjaGFyICoKKytiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCisreworKyAgY29uc3Qg Y2hhciAqYmFzZTsKKysKKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0p CisrICAvKiBTa2lwIG92ZXIgdGhlIGRpc2sgbmFtZSBpbiBNU0RPUyBwYXRobmFtZXMuICovCisr ICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpbmFtZVswXSkgJiYgbmFtZVsxXSA9PSAnOicp CisrICAgIG5hbWUgKz0gMjsKKysjZW5kaWYKKysKKysgIGZvciAoYmFzZSA9IG5hbWU7ICpuYW1l OyBuYW1lKyspCisrICAgIGlmIChJU19ESVJfU0VQQVJBVE9SICgqbmFtZSkpCisrICAgICAgYmFz ZSA9IG5hbWUgKyAxOworKyAgcmV0dXJuIGJhc2U7CisrfQorKworK2ludAorK2NoZWNrX2V4ZWN1 dGFibGUoY29uc3QgY2hhciAqIHBhdGgpCisreworKyAgc3RydWN0IHN0YXQgc3Q7CisrCisrICBE RUJVRygiKGNoZWNrX2V4ZWN1dGFibGUpICA6ICVzXG4iLCBwYXRoID8gKCpwYXRoID8gcGF0aCA6 ICJFTVBUWSEiKSA6ICJOVUxMISIpOworKyAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCisrICAg IHJldHVybiAwOworKworKyAgaWYgKChzdGF0IChwYXRoLCAmc3QpID49IDApICYmCisrICAgICAg KAorKyAgICAgICAgLyogTWluR1cgJiBuYXRpdmUgV0lOMzIgZG8gbm90IHN1cHBvcnQgU19JWE9U SCBvciBTX0lYR1JQICovCisrI2lmIGRlZmluZWQgKFNfSVhPVEgpCisrICAgICAgICgoc3Quc3Rf bW9kZSAmIFNfSVhPVEgpID09IFNfSVhPVEgpIHx8CisrI2VuZGlmCisrI2lmIGRlZmluZWQgKFNf SVhHUlApCisrICAgICAgICgoc3Quc3RfbW9kZSAmIFNfSVhHUlApID09IFNfSVhHUlApIHx8Cisr I2VuZGlmCisrICAgICAgICgoc3Quc3RfbW9kZSAmIFNfSVhVU1IpID09IFNfSVhVU1IpKQorKyAg ICAgICkKKysgICAgcmV0dXJuIDE7CisrICBlbHNlCisrICAgIHJldHVybiAwOworK30KKysKKysv KiBTZWFyY2hlcyBmb3IgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgd3JhcHBlci4gIFJldHVybnMKKysg ICBuZXdseSBhbGxvY2F0ZWQgZnVsbCBwYXRoIG5hbWUgaWYgZm91bmQsIE5VTEwgb3RoZXJ3aXNl ICovCisrY2hhciAqCisrZmluZF9leGVjdXRhYmxlIChjb25zdCBjaGFyKiB3cmFwcGVyKQorK3sK KysgIGludCBoYXNfc2xhc2ggPSAwOworKyAgY29uc3QgY2hhciogcDsKKysgIGNvbnN0IGNoYXIq IHBfbmV4dDsKKysgIC8qIHN0YXRpYyBidWZmZXIgZm9yIGdldGN3ZCAqLworKyAgY2hhciB0bXBb TFRfUEFUSE1BWCArIDFdOworKyAgaW50IHRtcF9sZW47CisrICBjaGFyKiBjb25jYXRfbmFtZTsK KysKKysgIERFQlVHKCIoZmluZF9leGVjdXRhYmxlKSAgOiAlc1xuIiwgd3JhcHBlciA/ICgqd3Jh cHBlciA/IHdyYXBwZXIgOiAiRU1QVFkhIikgOiAiTlVMTCEiKTsKKysKKysgIGlmICgod3JhcHBl ciA9PSBOVUxMKSB8fCAoKndyYXBwZXIgPT0gJ1wwJykpCisrICAgIHJldHVybiBOVUxMOworKwor KyAgLyogQWJzb2x1dGUgcGF0aD8gKi8KKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklM RV9TWVNURU0pCisrICBpZiAoaXNhbHBoYSAoKHVuc2lnbmVkIGNoYXIpd3JhcHBlclswXSkgJiYg d3JhcHBlclsxXSA9PSAnOicpCisrICB7CisrICAgIGNvbmNhdF9uYW1lID0geHN0cmR1cCAod3Jh cHBlcik7CisrICAgIGlmIChjaGVja19leGVjdXRhYmxlKGNvbmNhdF9uYW1lKSkKKysgICAgICBy ZXR1cm4gY29uY2F0X25hbWU7CisrICAgIFhGUkVFKGNvbmNhdF9uYW1lKTsKKysgIH0KKysgIGVs c2UKKysgIHsKKysjZW5kaWYKKysgICAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKHdyYXBwZXJbMF0p KQorKyAgICB7CisrICAgICAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsKKysgICAg ICBpZiAoY2hlY2tfZXhlY3V0YWJsZShjb25jYXRfbmFtZSkpCisrICAgICAgICByZXR1cm4gY29u Y2F0X25hbWU7CisrICAgICAgWEZSRUUoY29uY2F0X25hbWUpOworKyAgICB9CisrI2lmIGRlZmlu ZWQgKEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQorKyAgfQorKyNlbmRpZgorKworKyAgZm9y IChwID0gd3JhcHBlcjsgKnA7IHArKykKKysgICAgaWYgKCpwID09ICcvJykKKysgICAgeworKyAg ICAgIGhhc19zbGFzaCA9IDE7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysgIGlmICghaGFzX3Ns YXNoKQorKyAgeworKyAgICAvKiBubyBzbGFzaGVzOyBzZWFyY2ggUEFUSCAqLworKyAgICBjb25z dCBjaGFyKiBwYXRoID0gZ2V0ZW52ICgiUEFUSCIpOworKyAgICBpZiAocGF0aCAhPSBOVUxMKQor KyAgICB7CisrICAgICAgZm9yIChwID0gcGF0aDsgKnA7IHAgPSBwX25leHQpCisrICAgICAgewor KyAgICAgICAgY29uc3QgY2hhciogcTsKKysgICAgICAgIHNpemVfdCBwX2xlbjsKKysgICAgICAg IGZvciAocSA9IHA7ICpxOyBxKyspCisrICAgICAgICAgIGlmIChJU19QQVRIX1NFUEFSQVRPUigq cSkpCisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBwX2xlbiA9IHEgLSBwOworKyAgICAg ICAgcF9uZXh0ID0gKCpxID09ICdcMCcgPyBxIDogcSArIDEpOworKyAgICAgICAgaWYgKHBfbGVu ID09IDApCisrICAgICAgICB7CisrICAgICAgICAgIC8qIGVtcHR5IHBhdGg6IGN1cnJlbnQgZGly ZWN0b3J5ICovCisrICAgICAgICAgIGlmIChnZXRjd2QgKHRtcCwgTFRfUEFUSE1BWCkgPT0gTlVM TCkKKysgICAgICAgICAgICBsdF9mYXRhbCAoImdldGN3ZCBmYWlsZWQiKTsKKysgICAgICAgICAg dG1wX2xlbiA9IHN0cmxlbih0bXApOworKyAgICAgICAgICBjb25jYXRfbmFtZSA9IFhNQUxMT0Mo Y2hhciwgdG1wX2xlbiArIDEgKyBzdHJsZW4od3JhcHBlcikgKyAxKTsKKysgICAgICAgICAgbWVt Y3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBfbGVuKTsKKysgICAgICAgICAgY29uY2F0X25hbWVb dG1wX2xlbl0gPSAnLyc7CisrICAgICAgICAgIHN0cmNweSAoY29uY2F0X25hbWUgKyB0bXBfbGVu ICsgMSwgd3JhcHBlcik7CisrICAgICAgICB9CisrICAgICAgICBlbHNlCisrICAgICAgICB7Cisr ICAgICAgICAgIGNvbmNhdF9uYW1lID0gWE1BTExPQyhjaGFyLCBwX2xlbiArIDEgKyBzdHJsZW4o d3JhcHBlcikgKyAxKTsKKysgICAgICAgICAgbWVtY3B5IChjb25jYXRfbmFtZSwgcCwgcF9sZW4p OworKyAgICAgICAgICBjb25jYXRfbmFtZVtwX2xlbl0gPSAnLyc7CisrICAgICAgICAgIHN0cmNw eSAoY29uY2F0X25hbWUgKyBwX2xlbiArIDEsIHdyYXBwZXIpOworKyAgICAgICAgfQorKyAgICAg ICAgaWYgKGNoZWNrX2V4ZWN1dGFibGUoY29uY2F0X25hbWUpKQorKyAgICAgICAgICByZXR1cm4g Y29uY2F0X25hbWU7CisrICAgICAgICBYRlJFRShjb25jYXRfbmFtZSk7CisrICAgICAgfQorKyAg ICB9CisrICAgIC8qIG5vdCBmb3VuZCBpbiBQQVRIOyBhc3N1bWUgY3VyZGlyICovCisrICB9Cisr ICAvKiBSZWxhdGl2ZSBwYXRoIHwgbm90IGZvdW5kIGluIHBhdGg6IHByZXBlbmQgY3dkICovCisr ICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCisrICAgIGx0X2ZhdGFsICgi Z2V0Y3dkIGZhaWxlZCIpOworKyAgdG1wX2xlbiA9IHN0cmxlbih0bXApOworKyAgY29uY2F0X25h bWUgPSBYTUFMTE9DKGNoYXIsIHRtcF9sZW4gKyAxICsgc3RybGVuKHdyYXBwZXIpICsgMSk7Cisr ICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOworKyAgY29uY2F0X25hbWVbdG1w X2xlbl0gPSAnLyc7CisrICBzdHJjcHkgKGNvbmNhdF9uYW1lICsgdG1wX2xlbiArIDEsIHdyYXBw ZXIpOworKworKyAgaWYgKGNoZWNrX2V4ZWN1dGFibGUoY29uY2F0X25hbWUpKQorKyAgICByZXR1 cm4gY29uY2F0X25hbWU7CisrICBYRlJFRShjb25jYXRfbmFtZSk7CisrICByZXR1cm4gTlVMTDsK Kyt9CisrCisrY2hhciAqCisrc3RyZW5kemFwKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqcGF0KQor K3sKKysgIHNpemVfdCBsZW4sIHBhdGxlbjsKKysKKysgIGFzc2VydChzdHIgIT0gTlVMTCk7Cisr ICBhc3NlcnQocGF0ICE9IE5VTEwpOworKworKyAgbGVuID0gc3RybGVuKHN0cik7CisrICBwYXRs ZW4gPSBzdHJsZW4ocGF0KTsKKysKKysgIGlmIChwYXRsZW4gPD0gbGVuKQorKyAgeworKyAgICBz dHIgKz0gbGVuIC0gcGF0bGVuOworKyAgICBpZiAoc3RyY21wKHN0ciwgcGF0KSA9PSAwKQorKyAg ICAgICpzdHIgPSAnXDAnOworKyAgfQorKyAgcmV0dXJuIHN0cjsKKyt9CisrCisrc3RhdGljIHZv aWQKKytsdF9lcnJvcl9jb3JlIChpbnQgZXhpdF9zdGF0dXMsIGNvbnN0IGNoYXIgKiBtb2RlLAor KyAgICAgICAgICBjb25zdCBjaGFyICogbWVzc2FnZSwgdmFfbGlzdCBhcCkKKyt7CisrICBmcHJp bnRmIChzdGRlcnIsICIlczogJXM6ICIsIHByb2dyYW1fbmFtZSwgbW9kZSk7CisrICB2ZnByaW50 ZiAoc3RkZXJyLCBtZXNzYWdlLCBhcCk7CisrICBmcHJpbnRmIChzdGRlcnIsICIuXG4iKTsKKysK KysgIGlmIChleGl0X3N0YXR1cyA+PSAwKQorKyAgICBleGl0IChleGl0X3N0YXR1cyk7CisrfQor KworK3ZvaWQKKytsdF9mYXRhbCAoY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKQorK3sKKysgIHZh X2xpc3QgYXA7CisrICB2YV9zdGFydCAoYXAsIG1lc3NhZ2UpOworKyAgbHRfZXJyb3JfY29yZSAo RVhJVF9GQUlMVVJFLCAiRkFUQUwiLCBtZXNzYWdlLCBhcCk7CisrICB2YV9lbmQgKGFwKTsKKyt9 CisrRU9GCisrICAgICAgICAgICMgd2Ugc2hvdWxkIHJlYWxseSB1c2UgYSBidWlsZC1wbGF0Zm9y bSBzcGVjaWZpYyBjb21waWxlcgorKyAgICAgICAgICAjIGhlcmUsIGJ1dCBPVE9ILCB0aGUgd3Jh cHBlcnMgKHNoZWxsIHNjcmlwdCBhbmQgdGhpcyBDIG9uZSkKKysgICAgICAgICAgIyBhcmUgb25s eSB1c2VmdWwgaWYgeW91IHdhbnQgdG8gZXhlY3V0ZSB0aGUgInJlYWwiIGJpbmFyeS4KKysgICAg ICAgICAgIyBTaW5jZSB0aGUgInJlYWwiIGJpbmFyeSBpcyBidWlsdCBmb3IgJGhvc3QsIHRoZW4g dGhpcworKyAgICAgICAgICAjIHdyYXBwZXIgbWlnaHQgYXMgd2VsbCBiZSBidWlsdCBmb3IgJGhv c3QsIHRvby4KKysgICAgICAgICAgJHJ1biAkTFRDQyAkTFRDRkxBR1MgLXMgLW8gJGN3cmFwcGVy ICRjd3JhcHBlcnNvdXJjZQorKyAgICAgICAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAg JHJtICRvdXRwdXQKKysgICAgICAgIHRyYXAgIiRybSAkb3V0cHV0OyBleGl0ICRFWElUX0ZBSUxV UkUiIDEgMiAxNQorKworKwkkZWNobyA+ICRvdXRwdXQgIlwKKysjISAkU0hFTEwKKysKKysjICRv dXRwdXQgLSB0ZW1wb3Jhcnkgd3JhcHBlciBzY3JpcHQgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUK KysjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAtIEdOVSAkUEFDS0FHRSAkVkVSU0lPTiRUSU1FU1RB TVAKKysjCisrIyBUaGUgJG91dHB1dCBwcm9ncmFtIGNhbm5vdCBiZSBkaXJlY3RseSBleGVjdXRl ZCB1bnRpbCBhbGwgdGhlIGxpYnRvb2wKKysjIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24g YXJlIGluc3RhbGxlZC4KKysjCisrIyBUaGlzIHdyYXBwZXIgc2NyaXB0IHNob3VsZCBuZXZlciBi ZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4KKysjIElmIGl0IGlzLCBpdCB3aWxs IG5vdCBvcGVyYXRlIGNvcnJlY3RseS4KKysKKysjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxw cyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCisrIyBtZXRhY2hhcmFj dGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4K KytYc2VkPScke1NFRH0gLWUgMXMvXlgvLycKKytzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVf c3Vic3QnCisrCisrIyBCZSBCb3VybmUgY29tcGF0aWJsZSAodGFrZW4gZnJvbSBBdXRvY29uZjpf QVNfQk9VUk5FX0NPTVBBVElCTEUpLgorK2lmIHRlc3QgLW4gXCJcJHtaU0hfVkVSU0lPTitzZXR9 XCIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgZW11bGF0ZSBzaAor KyAgTlVMTENNRD06CisrICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGlu ZyBvbiBcJHsxK1wiXCRAXCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2Uu ICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJc JEBcIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBcYChzZXQgLW8p IDI+L2Rldi9udWxsXGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYworK2ZpCisrQklO X1NIPXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FTRT0xOyBleHBvcnQg RFVBTENBU0UgIyBmb3IgTUtTIHNoCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVs bCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBz ZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKwor K3JlbGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIKKysKKysjIFRoaXMgZW52aXJvbm1l bnQgdmFyaWFibGUgZGV0ZXJtaW5lcyBvdXIgb3BlcmF0aW9uIG1vZGUuCisraWYgdGVzdCBcIlwk bGlidG9vbF9pbnN0YWxsX21hZ2ljXCIgPSBcIiRtYWdpY1wiOyB0aGVuCisrICAjIGluc3RhbGwg bW9kZSBuZWVkcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlOgorKyAgbm90aW5zdF9kZXBsaWJzPSck bm90aW5zdF9kZXBsaWJzJworK2Vsc2UKKysgICMgV2hlbiB3ZSBhcmUgc291cmNlZCBpbiBleGVj dXRlIG1vZGUsIFwkZmlsZSBhbmQgXCRlY2hvIGFyZSBhbHJlYWR5IHNldC4KKysgIGlmIHRlc3Qg XCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KKysgICAgZWNo bz1cIiRxZWNob1wiCisrICAgIGZpbGU9XCJcJDBcIgorKyAgICAjIE1ha2Ugc3VyZSBlY2hvIHdv cmtzLgorKyAgICBpZiB0ZXN0IFwiWFwkMVwiID0gWC0tbm8tcmVleGVjOyB0aGVuCisrICAgICAg IyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCisrICAgICAgc2hp ZnQKKysgICAgZWxpZiB0ZXN0IFwiWFxgKFwkZWNobyAnXHQnKSAyPi9kZXYvbnVsbFxgXCIgPSAn WFx0JzsgdGhlbgorKyAgICAgICMgWWlwcGVlLCBcJGVjaG8gd29ya3MhCisrICAgICAgOgorKyAg ICBlbHNlCisrICAgICAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQgdGhl biBtYXliZSBcJGVjaG8gd2lsbCB3b3JrLgorKyAgICAgIGV4ZWMgJFNIRUxMIFwiXCQwXCIgLS1u by1yZWV4ZWMgXCR7MStcIlwkQFwifQorKyAgICBmaQorKyAgZmlcCisrIgorKwkkZWNobyA+PiAk b3V0cHV0ICJcCisrCisrICAjIEZpbmQgdGhlIGRpcmVjdG9yeSB0aGF0IHRoaXMgc2NyaXB0IGxp dmVzIGluLgorKyAgdGhpc2Rpcj1cYFwkZWNobyBcIlhcJGZpbGVcIiB8IFwkWHNlZCAtZSAncyUv W14vXSokJSUnXGAKKysgIHRlc3QgXCJ4XCR0aGlzZGlyXCIgPSBcInhcJGZpbGVcIiAmJiB0aGlz ZGlyPS4KKysKKysgICMgRm9sbG93IHN5bWJvbGljIGxpbmtzIHVudGlsIHdlIGdldCB0byB0aGUg cmVhbCB0aGlzZGlyLgorKyAgZmlsZT1cYGxzIC1sZCBcIlwkZmlsZVwiIHwgJHtTRUR9IC1uICdz Ly4qLT4gLy9wJ1xgCisrICB3aGlsZSB0ZXN0IC1uIFwiXCRmaWxlXCI7IGRvCisrICAgIGRlc3Rk aXI9XGBcJGVjaG8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qXCQlJSdcYAorKwor KyAgICAjIElmIHRoZXJlIHdhcyBhIGRpcmVjdG9yeSBjb21wb25lbnQsIHRoZW4gY2hhbmdlIHRo aXNkaXIuCisrICAgIGlmIHRlc3QgXCJ4XCRkZXN0ZGlyXCIgIT0gXCJ4XCRmaWxlXCI7IHRoZW4K KysgICAgICBjYXNlIFwiXCRkZXN0ZGlyXCIgaW4KKysgICAgICBbXFxcXC9dKiB8IFtBLVphLXpd OltcXFxcL10qKSB0aGlzZGlyPVwiXCRkZXN0ZGlyXCIgOzsKKysgICAgICAqKSB0aGlzZGlyPVwi XCR0aGlzZGlyL1wkZGVzdGRpclwiIDs7CisrICAgICAgZXNhYworKyAgICBmaQorKworKyAgICBm aWxlPVxgXCRlY2hvIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1lICdzJV4uKi8lJSdcYAorKyAgICBm aWxlPVxgbHMgLWxkIFwiXCR0aGlzZGlyL1wkZmlsZVwiIHwgJHtTRUR9IC1uICdzLy4qLT4gLy9w J1xgCisrICBkb25lCisrCisrICAjIFRyeSB0byBnZXQgdGhlIGFic29sdXRlIGRpcmVjdG9yeSBu YW1lLgorKyAgYWJzZGlyPVxgY2QgXCJcJHRoaXNkaXJcIiAmJiBwd2RcYAorKyAgdGVzdCAtbiBc IlwkYWJzZGlyXCIgJiYgdGhpc2Rpcj1cIlwkYWJzZGlyXCIKKysiCisrCisrCWlmIHRlc3QgIiRm YXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisrCSAgJGVjaG8gPj4gJG91dHB1dCAiXAorKyAgcHJv Z3JhbT1sdC0nJG91dHB1dG5hbWUnJGV4ZWV4dAorKyAgcHJvZ2Rpcj1cIlwkdGhpc2Rpci8kb2Jq ZGlyXCIKKysKKysgIGlmIHRlc3QgISAtZiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiB8fCBcXAor KyAgICAgeyBmaWxlPVxgbHMgLTFkdCBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiBcIlwkcHJvZ2Rp ci8uLi9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8ICR7U0VEfSAxcVxgOyBcXAorKyAgICAgICB0 ZXN0IFwiWFwkZmlsZVwiICE9IFwiWFwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgfTsgdGhlbgorKwor KyAgICBmaWxlPVwiXCRcJC1cJHByb2dyYW1cIgorKworKyAgICBpZiB0ZXN0ICEgLWQgXCJcJHBy b2dkaXJcIjsgdGhlbgorKyAgICAgICRta2RpciBcIlwkcHJvZ2RpclwiCisrICAgIGVsc2UKKysg ICAgICAkcm0gXCJcJHByb2dkaXIvXCRmaWxlXCIKKysgICAgZmkiCisrCisrCSAgJGVjaG8gPj4g JG91dHB1dCAiXAorKworKyAgICAjIHJlbGluayBleGVjdXRhYmxlIGlmIG5lY2Vzc2FyeQorKyAg ICBpZiB0ZXN0IC1uIFwiXCRyZWxpbmtfY29tbWFuZFwiOyB0aGVuCisrICAgICAgaWYgcmVsaW5r X2NvbW1hbmRfb3V0cHV0PVxgZXZhbCBcJHJlbGlua19jb21tYW5kIDI+JjFcYDsgdGhlbiA6Cisr ICAgICAgZWxzZQorKwkkZWNobyBcIlwkcmVsaW5rX2NvbW1hbmRfb3V0cHV0XCIgPiYyCisrCSRy bSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgorKwlleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgICBmaQor KyAgICBmaQorKworKyAgICAkbXYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJcJHByb2dkaXIvXCRw cm9ncmFtXCIgMj4vZGV2L251bGwgfHwKKysgICAgeyAkcm0gXCJcJHByb2dkaXIvXCRwcm9ncmFt XCI7CisrICAgICAgJG12IFwiXCRwcm9nZGlyL1wkZmlsZVwiIFwiXCRwcm9nZGlyL1wkcHJvZ3Jh bVwiOyB9CisrICAgICRybSBcIlwkcHJvZ2Rpci9cJGZpbGVcIgorKyAgZmkiCisrCWVsc2UKKysJ ICAkZWNobyA+PiAkb3V0cHV0ICJcCisrICBwcm9ncmFtPSckb3V0cHV0bmFtZScKKysgIHByb2dk aXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCisrIgorKwlmaQorKworKwkkZWNobyA+PiAkb3V0cHV0 ICJcCisrCisrICBpZiB0ZXN0IC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB0aGVuIgorKwor KwkjIEV4cG9ydCBvdXIgc2hsaWJwYXRoX3ZhciBpZiB3ZSBoYXZlIG9uZS4KKysJaWYgdGVzdCAi JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHNobGlicGF0 aF92YXIiICYmIHRlc3QgLW4gIiR0ZW1wX3JwYXRoIjsgdGhlbgorKwkgICRlY2hvID4+ICRvdXRw dXQgIlwKKysgICAgIyBBZGQgb3VyIG93biBsaWJyYXJ5IHBhdGggdG8gJHNobGlicGF0aF92YXIK KysgICAgJHNobGlicGF0aF92YXI9XCIkdGVtcF9ycGF0aFwkJHNobGlicGF0aF92YXJcIgorKwor KyAgICAjIFNvbWUgc3lzdGVtcyBjYW5ub3QgY29wZSB3aXRoIGNvbG9uLXRlcm1pbmF0ZWQgJHNo bGlicGF0aF92YXIKKysgICAgIyBUaGUgc2Vjb25kIGNvbG9uIGlzIGEgd29ya2Fyb3VuZCBmb3Ig YSBidWcgaW4gQmVPUyBSNCBzZWQKKysgICAgJHNobGlicGF0aF92YXI9XGBcJGVjaG8gXCJYXCQk c2hsaWJwYXRoX3ZhclwiIHwgXCRYc2VkIC1lICdzLzo6KlwkLy8nXGAKKysKKysgICAgZXhwb3J0 ICRzaGxpYnBhdGhfdmFyCisrIgorKwlmaQorKworKwkjIGZpeHVwIHRoZSBkbGwgc2VhcmNocGF0 aCBpZiB3ZSBuZWVkIHRvLgorKwlpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KKysJ ICAkZWNobyA+PiAkb3V0cHV0ICJcCisrICAgICMgQWRkIHRoZSBkbGwgc2VhcmNoIHBhdGggY29t cG9uZW50cyB0byB0aGUgZXhlY3V0YWJsZSBQQVRICisrICAgIFBBVEg9JGRsbHNlYXJjaHBhdGg6 XCRQQVRICisrIgorKwlmaQorKworKwkkZWNobyA+PiAkb3V0cHV0ICJcCisrICAgIGlmIHRlc3Qg XCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KKysgICAgICAj IFJ1biB0aGUgYWN0dWFsIHByb2dyYW0gd2l0aCBvdXIgYXJndW1lbnRzLgorKyIKKysJY2FzZSAk aG9zdCBpbgorKwkjIEJhY2tzbGFzaGVzIHNlcGFyYXRlIGRpcmVjdG9yaWVzIG9uIHBsYWluIHdp bmRvd3MKKysJKi0qLW1pbmd3IHwgKi0qLW9zMiopCisrCSAgJGVjaG8gPj4gJG91dHB1dCAiXAor KyAgICAgIGV4ZWMgXCJcJHByb2dkaXJcXFxcXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQorKyIK KysJICA7OworKworKwkqKQorKwkgICRlY2hvID4+ICRvdXRwdXQgIlwKKysgICAgICBleGVjIFwi XCRwcm9nZGlyL1wkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KKysiCisrCSAgOzsKKysJZXNhYwor KwkkZWNobyA+PiAkb3V0cHV0ICJcCisrICAgICAgXCRlY2hvIFwiXCQwOiBjYW5ub3QgZXhlYyBc JHByb2dyYW0gXCQqXCIKKysgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgZmkKKysgIGVs c2UKKysgICAgIyBUaGUgcHJvZ3JhbSBkb2Vzbid0IGV4aXN0LgorKyAgICBcJGVjaG8gXCJcJDA6 IGVycm9yOiBcXFxgXCRwcm9nZGlyL1wkcHJvZ3JhbScgZG9lcyBub3QgZXhpc3RcIiAxPiYyCisr ICAgIFwkZWNobyBcIlRoaXMgc2NyaXB0IGlzIGp1c3QgYSB3cmFwcGVyIGZvciBcJHByb2dyYW0u XCIgMT4mMgorKyAgICAkZWNobyBcIlNlZSB0aGUgJFBBQ0tBR0UgZG9jdW1lbnRhdGlvbiBmb3Ig bW9yZSBpbmZvcm1hdGlvbi5cIiAxPiYyCisrICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKyAgZmkK KytmaVwKKysiCisrCWNobW9kICt4ICRvdXRwdXQKKysgICAgICBmaQorKyAgICAgIGV4aXQgJEVY SVRfU1VDQ0VTUworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBTZWUgaWYgd2UgbmVl ZCB0byBidWlsZCBhbiBvbGQtZmFzaGlvbmVkIGFyY2hpdmUuCisrICAgIGZvciBvbGRsaWIgaW4g JG9sZGxpYnM7IGRvCisrCisrICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBj b252ZW5pZW5jZTsgdGhlbgorKwlvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgorKwlhZGRsaWJzPSIk Y29udmVuaWVuY2UiCisrCWJ1aWxkX2xpYnRvb2xfbGlicz1ubworKyAgICAgIGVsc2UKKysJaWYg dGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBtb2R1bGU7IHRoZW4KKysJICBvbGRvYmpzPSIk bGlib2Jqc19zYXZlIgorKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubworKwllbHNlCisrCSAgb2xk b2Jqcz0iJG9sZF9kZXBsaWJzICRub25fcGljX29iamVjdHMiCisrCWZpCisrCWFkZGxpYnM9IiRv bGRfY29udmVuaWVuY2UiCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkYWRkbGli cyI7IHRoZW4KKysJZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKysJZ2Vu ZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisrCisrCWZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAk Z2VudG9wICRhZGRsaWJzCisrCW9sZG9ianM9IiRvbGRvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2 ZXNfcmVzdWx0IgorKyAgICAgIGZpCisrCisrICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhl IGFyY2hpdmUgY29tbWFuZHMuCisrICAgICAgaWYgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21f bmV3X2NtZHMiICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrICAg ICAgIGNtZHM9JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKKysgICAgICBlbHNlCisrCSMgUE9T SVggZGVtYW5kcyBubyBwYXRocyB0byBiZSBlbmNvZGVkIGluIGFyY2hpdmVzLiAgV2UgaGF2ZQor KwkjIHRvIGF2b2lkIGNyZWF0aW5nIGFyY2hpdmVzIHdpdGggZHVwbGljYXRlIGJhc2VuYW1lcyBp ZiB3ZQorKwkjIG1pZ2h0IGhhdmUgdG8gZXh0cmFjdCB0aGVtIGFmdGVyd2FyZHMsIGUuZy4sIHdo ZW4gY3JlYXRpbmcgYQorKwkjIHN0YXRpYyBhcmNoaXZlIG91dCBvZiBhIGNvbnZlbmllbmNlIGxp YnJhcnksIG9yIHdoZW4gbGlua2luZworKwkjIHRoZSBlbnRpcmV0eSBvZiBhIGxpYnRvb2wgYXJj aGl2ZSBpbnRvIGFub3RoZXIgKGN1cnJlbnRseQorKwkjIG5vdCBzdXBwb3J0ZWQgYnkgbGlidG9v bCkuCisrCWlmIChmb3Igb2JqIGluICRvbGRvYmpzCisrCSAgICBkbworKwkgICAgICAkZWNobyAi WCRvYmoiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJworKwkgICAgZG9uZSB8IHNvcnQgfCBzb3J0IC11 YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCisrCSAgOgorKwllbHNlCisrCSAgJGVjaG8gImNvcHlp bmcgc2VsZWN0ZWQgb2JqZWN0IGZpbGVzIHRvIGF2b2lkIGJhc2VuYW1lIGNvbmZsaWN0cy4uLiIK KysKKysJICBpZiB0ZXN0IC16ICIkZ2VudG9wIjsgdGhlbgorKwkgICAgZ2VudG9wPSIkb3V0cHV0 X29iamRpci8ke291dHB1dG5hbWV9eCIKKysJICAgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2Vu dG9wIgorKworKwkgICAgJHNob3cgIiR7cm19ciAkZ2VudG9wIgorKwkgICAgJHJ1biAke3JtfXIg IiRnZW50b3AiCisrCSAgICAkc2hvdyAiJG1rZGlyICRnZW50b3AiCisrCSAgICAkcnVuICRta2Rp ciAiJGdlbnRvcCIKKysJICAgIGV4aXRfc3RhdHVzPSQ/CisrCSAgICBpZiB0ZXN0ICIkZXhpdF9z dGF0dXMiIC1uZSAwICYmIHRlc3QgISAtZCAiJGdlbnRvcCI7IHRoZW4KKysJICAgICAgZXhpdCAk ZXhpdF9zdGF0dXMKKysJICAgIGZpCisrCSAgZmkKKysKKysJICBzYXZlX29sZG9ianM9JG9sZG9i anMKKysJICBvbGRvYmpzPQorKwkgIGNvdW50ZXI9MQorKwkgIGZvciBvYmogaW4gJHNhdmVfb2xk b2JqcworKwkgIGRvCisrCSAgICBvYmpiYXNlPWAkZWNobyAiWCRvYmoiIHwgJFhzZWQgLWUgJ3Ml Xi4qLyUlJ2AKKysJICAgIGNhc2UgIiAkb2xkb2JqcyAiIGluCisrCSAgICAiICIpIG9sZG9ianM9 JG9iaiA7OworKwkgICAgKltcIC9dIiRvYmpiYXNlICIqKQorKwkgICAgICB3aGlsZSA6OyBkbwor KwkJIyBNYWtlIHN1cmUgd2UgZG9uJ3QgcGljayBhbiBhbHRlcm5hdGUgbmFtZSB0aGF0IGFsc28K KysJCSMgb3ZlcmxhcHMuCisrCQluZXdvYmo9bHQkY291bnRlci0kb2JqYmFzZQorKwkJY291bnRl cj1gZXhwciAkY291bnRlciArIDFgCisrCQljYXNlICIgJG9sZG9ianMgIiBpbgorKwkJKltcIC9d IiRuZXdvYmogIiopIDs7CisrCQkqKSBpZiB0ZXN0ICEgLWYgIiRnZW50b3AvJG5ld29iaiI7IHRo ZW4gYnJlYWs7IGZpIDs7CisrCQllc2FjCisrCSAgICAgIGRvbmUKKysJICAgICAgJHNob3cgImxu ICRvYmogJGdlbnRvcC8kbmV3b2JqIHx8IGNwICRvYmogJGdlbnRvcC8kbmV3b2JqIgorKwkgICAg ICAkcnVuIGxuICIkb2JqIiAiJGdlbnRvcC8kbmV3b2JqIiB8fAorKwkgICAgICAkcnVuIGNwICIk b2JqIiAiJGdlbnRvcC8kbmV3b2JqIgorKwkgICAgICBvbGRvYmpzPSIkb2xkb2JqcyAkZ2VudG9w LyRuZXdvYmoiCisrCSAgICAgIDs7CisrCSAgICAqKSBvbGRvYmpzPSIkb2xkb2JqcyAkb2JqIiA7 OworKwkgICAgZXNhYworKwkgIGRvbmUKKysJZmkKKysKKysJZXZhbCBjbWRzPVwiJG9sZF9hcmNo aXZlX2NtZHNcIgorKworKwlpZiBsZW49YGV4cHIgIlgkY21kcyIgOiAiLioiYCAmJgorKwkgICAg IHRlc3QgIiRsZW4iIC1sZSAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1s ZSAtMTsgdGhlbgorKwkgIGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKKysJZWxzZQorKwkgICMgdGhl IGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBsaW5rIGluIG9uZSBzdGVwLCBsaW5rIGluIHBh cnRzCisrCSAgJGVjaG8gInVzaW5nIHBpZWNld2lzZSBhcmNoaXZlIGxpbmtpbmcuLi4iCisrCSAg c2F2ZV9SQU5MSUI9JFJBTkxJQgorKwkgIFJBTkxJQj06CisrCSAgb2JqbGlzdD0KKysJICBjb25j YXRfY21kcz0KKysJICBzYXZlX29sZG9ianM9JG9sZG9ianMKKysKKysJICAjIElzIHRoZXJlIGEg YmV0dGVyIHdheSBvZiBmaW5kaW5nIHRoZSBsYXN0IG9iamVjdCBpbiB0aGUgbGlzdD8KKysJICBm b3Igb2JqIGluICRzYXZlX29sZG9ianMKKysJICBkbworKwkgICAgbGFzdF9vbGRvYmo9JG9iagor KwkgIGRvbmUKKysJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKKysJICBkbworKwkgICAgb2xk b2Jqcz0iJG9iamxpc3QgJG9iaiIKKysJICAgIG9iamxpc3Q9IiRvYmpsaXN0ICRvYmoiCisrCSAg ICBldmFsIHRlc3RfY21kcz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIKKysJICAgIGlmIGxlbj1gZXhw ciAiWCR0ZXN0X2NtZHMiIDogIi4qIiAyPi9kZXYvbnVsbGAgJiYKKysJICAgICAgIHRlc3QgIiRs ZW4iIC1sZSAiJG1heF9jbWRfbGVuIjsgdGhlbgorKwkgICAgICA6CisrCSAgICBlbHNlCisrCSAg ICAgICMgdGhlIGFib3ZlIGNvbW1hbmQgc2hvdWxkIGJlIHVzZWQgYmVmb3JlIGl0IGdldHMgdG9v IGxvbmcKKysJICAgICAgb2xkb2Jqcz0kb2JqbGlzdAorKwkgICAgICBpZiB0ZXN0ICIkb2JqIiA9 ICIkbGFzdF9vbGRvYmoiIDsgdGhlbgorKwkgICAgICAgIFJBTkxJQj0kc2F2ZV9SQU5MSUIKKysJ ICAgICAgZmkKKysJICAgICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21kcz0k Y29uY2F0X2NtZHN+CisrCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21kc30k b2xkX2FyY2hpdmVfY21kc1wiCisrCSAgICAgIG9iamxpc3Q9CisrCSAgICBmaQorKwkgIGRvbmUK KysJICBSQU5MSUI9JHNhdmVfUkFOTElCCisrCSAgb2xkb2Jqcz0kb2JqbGlzdAorKwkgIGlmIHRl c3QgIlgkb2xkb2JqcyIgPSAiWCIgOyB0aGVuCisrCSAgICBldmFsIGNtZHM9XCJcJGNvbmNhdF9j bWRzXCIKKysJICBlbHNlCisrCSAgICBldmFsIGNtZHM9XCJcJGNvbmNhdF9jbWRzflwkb2xkX2Fy Y2hpdmVfY21kc1wiCisrCSAgZmkKKysJZmkKKysgICAgICBmaQorKyAgICAgIHNhdmVfaWZzPSIk SUZTIjsgSUZTPSd+JworKyAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCisrICAgICAgICBldmFs IGNtZD1cIiRjbWRcIgorKwlJRlM9IiRzYXZlX2lmcyIKKysJJHNob3cgIiRjbWQiCisrCSRydW4g ZXZhbCAiJGNtZCIgfHwgZXhpdCAkPworKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRzYXZlX2lm cyIKKysgICAgZG9uZQorKworKyAgICBpZiB0ZXN0IC1uICIkZ2VuZXJhdGVkIjsgdGhlbgorKyAg ICAgICRzaG93ICIke3JtfXIkZ2VuZXJhdGVkIgorKyAgICAgICRydW4gJHtybX1yJGdlbmVyYXRl ZAorKyAgICBmaQorKworKyAgICAjIE5vdyBjcmVhdGUgdGhlIGxpYnRvb2wgYXJjaGl2ZS4KKysg ICAgY2FzZSAkb3V0cHV0IGluCisrICAgICoubGEpCisrICAgICAgb2xkX2xpYnJhcnk9CisrICAg ICAgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAmJiBvbGRfbGlicmFyeT0iJGxpYm5hbWUu JGxpYmV4dCIKKysgICAgICAkc2hvdyAiY3JlYXRpbmcgJG91dHB1dCIKKysKKysgICAgICAjIFBy ZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCisr ICAgICAgZm9yIHZhciBpbiAkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms7IGRvCisrCWlmIGV2 YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCisrCSAgcmVsaW5rX2NvbW1hbmQ9Insg dGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiIHx8IHVuc2V0ICR2YXIgfHwgeyAkdmFyPTsgZXhwb3J0 ICR2YXI7IH07IH07ICRyZWxpbmtfY29tbWFuZCIKKysJZWxpZiBldmFsIHZhcl92YWx1ZT1cJCR2 YXI7IHRlc3QgLXogIiR2YXJfdmFsdWUiOyB0aGVuCisrCSAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9 OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgorKwllbHNlCisrCSAgdmFyX3ZhbHVlPWAk ZWNobyAiWCR2YXJfdmFsdWUiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKwkgIHJl bGlua19jb21tYW5kPSIkdmFyPVwiJHZhcl92YWx1ZVwiOyBleHBvcnQgJHZhcjsgJHJlbGlua19j b21tYW5kIgorKwlmaQorKyAgICAgIGRvbmUKKysgICAgICAjIFF1b3RlIHRoZSBsaW5rIGNvbW1h bmQgZm9yIHNoaXBwaW5nLgorKyAgICAgIHJlbGlua19jb21tYW5kPSIoY2QgYHB3ZGA7ICRTSEVM TCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1tb2RlPXJlbGluayAkbGlidG9vbF9hcmdzIEBp bnN0X3ByZWZpeF9kaXJAKSIKKysgICAgICByZWxpbmtfY29tbWFuZD1gJGVjaG8gIlgkcmVsaW5r X2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiIHwgJE5MMlNQ YAorKyAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzIDsgdGhlbgorKwly ZWxpbmtfY29tbWFuZD0KKysgICAgICBmaQorKworKworKyAgICAgICMgT25seSBjcmVhdGUgdGhl IG91dHB1dCBpZiBub3QgYSBkcnkgcnVuLgorKyAgICAgIGlmIHRlc3QgLXogIiRydW4iOyB0aGVu CisrCWZvciBpbnN0YWxsZWQgaW4gbm8geWVzOyBkbworKwkgIGlmIHRlc3QgIiRpbnN0YWxsZWQi ID0geWVzOyB0aGVuCisrCSAgICBpZiB0ZXN0IC16ICIkaW5zdGFsbF9saWJkaXIiOyB0aGVuCisr CSAgICAgIGJyZWFrCisrCSAgICBmaQorKwkgICAgb3V0cHV0PSIkb3V0cHV0X29iamRpci8kb3V0 cHV0bmFtZSJpCisrCSAgICAjIFJlcGxhY2UgYWxsIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFy aWVzIHdpdGggdGhlIGluc3RhbGxlZCBvbmVzCisrCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9Cisr CSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgICAgIGNhc2UgJGRl cGxpYiBpbgorKwkgICAgICAqLmxhKQorKwkJbmFtZT1gJGVjaG8gIlgkZGVwbGliIiB8ICRYc2Vk IC1lICdzJV4uKi8lJSdgCisrCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9 XCguKlwpJC9cMS9wJyAkZGVwbGliYAorKwkJaWYgdGVzdCAteiAiJGxpYmRpciI7IHRoZW4KKysJ CSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkZGVwbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFy Y2hpdmUiIDE+JjIKKysJCSAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCQlmaQorKwkJbmV3ZGVwZW5k ZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzICRsaWJkaXIvJG5hbWUiCisrCQk7OworKwkg ICAgICAqKSBuZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGRlcGxpYiIg OzsKKysJICAgICAgZXNhYworKwkgICAgZG9uZQorKwkgICAgZGVwZW5kZW5jeV9saWJzPSIkbmV3 ZGVwZW5kZW5jeV9saWJzIgorKwkgICAgbmV3ZGxmaWxlcz0KKysJICAgIGZvciBsaWIgaW4gJGRs ZmlsZXM7IGRvCisrCSAgICAgIG5hbWU9YCRlY2hvICJYJGxpYiIgfCAkWHNlZCAtZSAncyVeLiov JSUnYAorKwkgICAgICBldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwp JC9cMS9wJyAkbGliYAorKwkgICAgICBpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgorKwkJJGVj aG8gIiRtb2RlbmFtZTogXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiIDE+ JjIKKysJCWV4aXQgJEVYSVRfRkFJTFVSRQorKwkgICAgICBmaQorKwkgICAgICBuZXdkbGZpbGVz PSIkbmV3ZGxmaWxlcyAkbGliZGlyLyRuYW1lIgorKwkgICAgZG9uZQorKwkgICAgZGxmaWxlcz0i JG5ld2RsZmlsZXMiCisrCSAgICBuZXdkbHByZWZpbGVzPQorKwkgICAgZm9yIGxpYiBpbiAkZGxw cmVmaWxlczsgZG8KKysJICAgICAgbmFtZT1gJGVjaG8gIlgkbGliIiB8ICRYc2VkIC1lICdzJV4u Ki8lJSdgCisrCSAgICAgIGV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4q XCkkL1wxL3AnICRsaWJgCisrCSAgICAgIGlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCisrCQkk ZWNobyAiJG1vZGVuYW1lOiBcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIg MT4mMgorKwkJZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgICAgIGZpCisrCSAgICAgIG5ld2RscHJl ZmlsZXM9IiRuZXdkbHByZWZpbGVzICRsaWJkaXIvJG5hbWUiCisrCSAgICBkb25lCisrCSAgICBk bHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKKysJICBlbHNlCisrCSAgICBuZXdkbGZpbGVzPQor KwkgICAgZm9yIGxpYiBpbiAkZGxmaWxlczsgZG8KKysJICAgICAgY2FzZSAkbGliIGluCisrCQlb XFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKKysJCSopIGFicz1gcHdkYCIv JGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAk YWJzIgorKwkgICAgZG9uZQorKwkgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCisrCSAgICBuZXdk bHByZWZpbGVzPQorKwkgICAgZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsgZG8KKysJICAgICAgY2Fz ZSAkbGliIGluCisrCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKKysJ CSopIGFicz1gcHdkYCIvJGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICBuZXdkbHByZWZp bGVzPSIkbmV3ZGxwcmVmaWxlcyAkYWJzIgorKwkgICAgZG9uZQorKwkgICAgZGxwcmVmaWxlcz0i JG5ld2RscHJlZmlsZXMiCisrCSAgZmkKKysJICAkcm0gJG91dHB1dAorKwkgICMgcGxhY2UgZGxu YW1lIGluIGNvcnJlY3QgcG9zaXRpb24gZm9yIGN5Z3dpbgorKwkgIHRkbG5hbWU9JGRsbmFtZQor KwkgIGNhc2UgJGhvc3QsJG91dHB1dCwkaW5zdGFsbGVkLCRtb2R1bGUsJGRsbmFtZSBpbgorKwkg ICAgKmN5Z3dpbiosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqbWluZ3cqLCpsYWkseWVzLG5vLCouZGxs KSB0ZGxuYW1lPS4uL2Jpbi8kZGxuYW1lIDs7CisrCSAgZXNhYworKwkgICRlY2hvID4gJG91dHB1 dCAiXAorKyMgJG91dHB1dG5hbWUgLSBhIGxpYnRvb2wgbGlicmFyeSBmaWxlCisrIyBHZW5lcmF0 ZWQgYnkgJFBST0dSQU0gLSBHTlUgJFBBQ0tBR0UgJFZFUlNJT04kVElNRVNUQU1QCisrIworKyMg UGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQorKyMgSXQgaXMgbmVjZXNzYXJ5IGZvciBs aW5raW5nIHRoZSBsaWJyYXJ5LgorKworKyMgVGhlIG5hbWUgdGhhdCB3ZSBjYW4gZGxvcGVuKDMp LgorK2RsbmFtZT0nJHRkbG5hbWUnCisrCisrIyBOYW1lcyBvZiB0aGlzIGxpYnJhcnkuCisrbGli cmFyeV9uYW1lcz0nJGxpYnJhcnlfbmFtZXMnCisrCisrIyBUaGUgbmFtZSBvZiB0aGUgc3RhdGlj IGFyY2hpdmUuCisrb2xkX2xpYnJhcnk9JyRvbGRfbGlicmFyeScKKysKKysjIExpYnJhcmllcyB0 aGF0IHRoaXMgb25lIGRlcGVuZHMgdXBvbi4KKytkZXBlbmRlbmN5X2xpYnM9JyRkZXBlbmRlbmN5 X2xpYnMnCisrCisrIyBWZXJzaW9uIGluZm9ybWF0aW9uIGZvciAkbGlibmFtZS4KKytjdXJyZW50 PSRjdXJyZW50CisrYWdlPSRhZ2UKKytyZXZpc2lvbj0kcmV2aXNpb24KKysKKysjIElzIHRoaXMg YW4gYWxyZWFkeSBpbnN0YWxsZWQgbGlicmFyeT8KKytpbnN0YWxsZWQ9JGluc3RhbGxlZAorKwor KyMgU2hvdWxkIHdlIHdhcm4gYWJvdXQgcG9ydGFiaWxpdHkgd2hlbiBsaW5raW5nIGFnYWluc3Qg LW1vZHVsZXM/Cisrc2hvdWxkbm90bGluaz0kbW9kdWxlCisrCisrIyBGaWxlcyB0byBkbG9wZW4v ZGxwcmVvcGVuCisrZGxvcGVuPSckZGxmaWxlcycKKytkbHByZW9wZW49JyRkbHByZWZpbGVzJwor KworKyMgRGlyZWN0b3J5IHRoYXQgdGhpcyBsaWJyYXJ5IG5lZWRzIHRvIGJlIGluc3RhbGxlZCBp bjoKKytsaWJkaXI9JyRpbnN0YWxsX2xpYmRpciciCisrCSAgaWYgdGVzdCAiJGluc3RhbGxlZCIg PSBubyAmJiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0geWVzOyB0aGVuCisrCSAgICAkZWNobyA+PiAk b3V0cHV0ICJcCisrcmVsaW5rX2NvbW1hbmQ9XCIkcmVsaW5rX2NvbW1hbmRcIiIKKysJICBmaQor Kwlkb25lCisrICAgICAgZmkKKysKKysgICAgICAjIERvIGEgc3ltYm9saWMgbGluayBzbyB0aGF0 IHRoZSBsaWJ0b29sIGFyY2hpdmUgY2FuIGJlIGZvdW5kIGluCisrICAgICAgIyBMRF9MSUJSQVJZ X1BBVEggYmVmb3JlIHRoZSBwcm9ncmFtIGlzIGluc3RhbGxlZC4KKysgICAgICAkc2hvdyAiKGNk ICRvdXRwdXRfb2JqZGlyICYmICRybSAkb3V0cHV0bmFtZSAmJiAkTE5fUyAuLi8kb3V0cHV0bmFt ZSAkb3V0cHV0bmFtZSkiCisrICAgICAgJHJ1biBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYg JHJtICRvdXRwdXRuYW1lICYmICRMTl9TIC4uLyRvdXRwdXRuYW1lICRvdXRwdXRuYW1lKScgfHwg ZXhpdCAkPworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgZXhpdCAkRVhJVF9TVUNDRVNTCisr ICAgIDs7CisrCisrICAjIGxpYnRvb2wgaW5zdGFsbCBtb2RlCisrICBpbnN0YWxsKQorKyAgICBt b2RlbmFtZT0iJG1vZGVuYW1lOiBpbnN0YWxsIgorKworKyAgICAjIFRoZXJlIG1heSBiZSBhbiBv cHRpb25hbCBzaCgxKSBhcmd1bWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mCisrICAgICMgaW5zdGFs bF9wcm9nIChlc3BlY2lhbGx5IG9uIFdpbmRvd3MgTlQpLgorKyAgICBpZiB0ZXN0ICIkbm9ub3B0 IiA9ICIkU0hFTEwiIHx8IHRlc3QgIiRub25vcHQiID0gL2Jpbi9zaCB8fAorKyAgICAgICAjIEFs bG93IHRoZSB1c2Ugb2YgR05VIHNodG9vbCdzIGluc3RhbGwgY29tbWFuZC4KKysgICAgICAgJGVj aG8gIlgkbm9ub3B0IiB8IGdyZXAgc2h0b29sID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgIyBB ZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgorKyAgICAgIGFyZz1gJGVjaG8gIlgkbm9ub3B0IiB8ICRY c2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAq W1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKysJYXJnPSJc IiRhcmdcIiIKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgaW5zdGFsbF9wcm9nPSIkYXJnICIK KysgICAgICBhcmc9IiQxIgorKyAgICAgIHNoaWZ0CisrICAgIGVsc2UKKysgICAgICBpbnN0YWxs X3Byb2c9CisrICAgICAgYXJnPSRub25vcHQKKysgICAgZmkKKysKKysgICAgIyBUaGUgcmVhbCBm aXJzdCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIG5hbWUgb2YgdGhlIGluc3RhbGxhdGlvbiBwcm9n cmFtLgorKyAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgaXQuCisrICAgIGFyZz1gJGVjaG8gIlgk YXJnIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKysgICAgY2FzZSAkYXJnIGluCisr ICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQorKyAg ICAgIGFyZz0iXCIkYXJnXCIiCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICBpbnN0YWxsX3By b2c9IiRpbnN0YWxsX3Byb2ckYXJnIgorKworKyAgICAjIFdlIG5lZWQgdG8gYWNjZXB0IGF0IGxl YXN0IGFsbCB0aGUgQlNEIGluc3RhbGwgZmxhZ3MuCisrICAgIGRlc3Q9CisrICAgIGZpbGVzPQor KyAgICBvcHRzPQorKyAgICBwcmV2PQorKyAgICBpbnN0YWxsX3R5cGU9CisrICAgIGlzZGlyPW5v CisrICAgIHN0cmlwbWU9CisrICAgIGZvciBhcmcKKysgICAgZG8KKysgICAgICBpZiB0ZXN0IC1u ICIkZGVzdCI7IHRoZW4KKysJZmlsZXM9IiRmaWxlcyAkZGVzdCIKKysJZGVzdD0kYXJnCisrCWNv bnRpbnVlCisrICAgICAgZmkKKysKKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAtZCkgaXNk aXI9eWVzIDs7CisrICAgICAgLWYpIAorKyAgICAgIAljYXNlICIgJGluc3RhbGxfcHJvZyAiIGlu CisrCSpbXFxcIC9dY3BcICopIDs7CisrCSopIHByZXY9JGFyZyA7OworKwllc2FjCisrCTs7Cisr ICAgICAgLWcgfCAtbSB8IC1vKSBwcmV2PSRhcmcgOzsKKysgICAgICAtcykKKysJc3RyaXBtZT0i IC1zIgorKwljb250aW51ZQorKwk7OworKyAgICAgIC0qKQorKwk7OworKyAgICAgICopCisrCSMg SWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkZWQgYW4gYXJndW1lbnQsIHRoZW4gc2tpcCBpdC4K KysJaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCisrCSAgcHJldj0KKysJZWxzZQorKwkgIGRlc3Q9 JGFyZworKwkgIGNvbnRpbnVlCisrCWZpCisrCTs7CisrICAgICAgZXNhYworKworKyAgICAgICMg QWVzdGhldGljYWxseSBxdW90ZSB0aGUgYXJndW1lbnQuCisrICAgICAgYXJnPWAkZWNobyAiWCRh cmciIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGNhc2UgJGFyZyBpbgor KyAgICAgICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQor Kwlhcmc9IlwiJGFyZ1wiIgorKwk7OworKyAgICAgIGVzYWMKKysgICAgICBpbnN0YWxsX3Byb2c9 IiRpbnN0YWxsX3Byb2cgJGFyZyIKKysgICAgZG9uZQorKworKyAgICBpZiB0ZXN0IC16ICIkaW5z dGFsbF9wcm9nIjsgdGhlbgorKyAgICAgICRlY2hvICIkbW9kZW5hbWU6IHlvdSBtdXN0IHNwZWNp ZnkgYW4gaW5zdGFsbCBwcm9ncmFtIiAxPiYyCisrICAgICAgJGVjaG8gIiRoZWxwIiAxPiYyCisr ICAgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRw cmV2IjsgdGhlbgorKyAgICAgICRlY2hvICIkbW9kZW5hbWU6IHRoZSBcYCRwcmV2JyBvcHRpb24g cmVxdWlyZXMgYW4gYXJndW1lbnQiIDE+JjIKKysgICAgICAkZWNobyAiJGhlbHAiIDE+JjIKKysg ICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAteiAiJGZp bGVzIjsgdGhlbgorKyAgICAgIGlmIHRlc3QgLXogIiRkZXN0IjsgdGhlbgorKwkkZWNobyAiJG1v ZGVuYW1lOiBubyBmaWxlIG9yIGRlc3RpbmF0aW9uIHNwZWNpZmllZCIgMT4mMgorKyAgICAgIGVs c2UKKysJJGVjaG8gIiRtb2RlbmFtZTogeW91IG11c3Qgc3BlY2lmeSBhIGRlc3RpbmF0aW9uIiAx PiYyCisrICAgICAgZmkKKysgICAgICAkZWNobyAiJGhlbHAiIDE+JjIKKysgICAgICBleGl0ICRF WElUX0ZBSUxVUkUKKysgICAgZmkKKysKKysgICAgIyBTdHJpcCBhbnkgdHJhaWxpbmcgc2xhc2gg ZnJvbSB0aGUgZGVzdGluYXRpb24uCisrICAgIGRlc3Q9YCRlY2hvICJYJGRlc3QiIHwgJFhzZWQg LWUgJ3MlLyQlJSdgCisrCisrICAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIGRlc3RpbmF0aW9u IGlzIGEgZGlyZWN0b3J5LgorKyAgICB0ZXN0IC1kICIkZGVzdCIgJiYgaXNkaXI9eWVzCisrICAg IGlmIHRlc3QgIiRpc2RpciIgPSB5ZXM7IHRoZW4KKysgICAgICBkZXN0ZGlyPSIkZGVzdCIKKysg ICAgICBkZXN0bmFtZT0KKysgICAgZWxzZQorKyAgICAgIGRlc3RkaXI9YCRlY2hvICJYJGRlc3Qi IHwgJFhzZWQgLWUgJ3MlL1teL10qJCUlJ2AKKysgICAgICB0ZXN0ICJYJGRlc3RkaXIiID0gIlgk ZGVzdCIgJiYgZGVzdGRpcj0uCisrICAgICAgZGVzdG5hbWU9YCRlY2hvICJYJGRlc3QiIHwgJFhz ZWQgLWUgJ3MlXi4qLyUlJ2AKKysKKysgICAgICAjIE5vdCBhIGRpcmVjdG9yeSwgc28gY2hlY2sg dG8gc2VlIHRoYXQgdGhlcmUgaXMgb25seSBvbmUgZmlsZSBzcGVjaWZpZWQuCisrICAgICAgc2V0 IGR1bW15ICRmaWxlcworKyAgICAgIGlmIHRlc3QgIiQjIiAtZ3QgMjsgdGhlbgorKwkkZWNobyAi JG1vZGVuYW1lOiBcYCRkZXN0JyBpcyBub3QgYSBkaXJlY3RvcnkiIDE+JjIKKysJJGVjaG8gIiRo ZWxwIiAxPiYyCisrCWV4aXQgJEVYSVRfRkFJTFVSRQorKyAgICAgIGZpCisrICAgIGZpCisrICAg IGNhc2UgJGRlc3RkaXIgaW4KKysgICAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OworKyAg ICAqKQorKyAgICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KKysJY2FzZSAkZmlsZSBpbgorKwkq LmxvKSA7OworKwkqKQorKwkgICRlY2hvICIkbW9kZW5hbWU6IFxgJGRlc3RkaXInIG11c3QgYmUg YW4gYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUiIDE+JjIKKysJICAkZWNobyAiJGhlbHAiIDE+JjIK KysJICBleGl0ICRFWElUX0ZBSUxVUkUKKysJICA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAg ICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBwZXIg c2NyaXB0cyBqdXN0IHRvIHNldCB2YXJpYWJsZXMgcmF0aGVyCisrICAgICMgdGhhbiBydW5uaW5n IHRoZWlyIHByb2dyYW1zLgorKyAgICBsaWJ0b29sX2luc3RhbGxfbWFnaWM9IiRtYWdpYyIKKysK KysgICAgc3RhdGljbGlicz0KKysgICAgZnV0dXJlX2xpYmRpcnM9CisrICAgIGN1cnJlbnRfbGli ZGlycz0KKysgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbworKworKyAgICAgICMgRG8gZWFjaCBp bnN0YWxsYXRpb24uCisrICAgICAgY2FzZSAkZmlsZSBpbgorKyAgICAgICouJGxpYmV4dCkKKysJ IyBEbyB0aGUgc3RhdGljIGxpYnJhcmllcyBsYXRlci4KKysJc3RhdGljbGlicz0iJHN0YXRpY2xp YnMgJGZpbGUiCisrCTs7CisrCisrICAgICAgKi5sYSkKKysJIyBDaGVjayB0byBzZWUgdGhhdCB0 aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KKysJaWYgKCR7U0VEfSAtZSAnMnEnICRm aWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4gOgorKwllbHNlCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkZmlsZScgaXMgbm90IGEg dmFsaWQgbGlidG9vbCBhcmNoaXZlIiAxPiYyCisrCSAgJGVjaG8gIiRoZWxwIiAxPiYyCisrCSAg ZXhpdCAkRVhJVF9GQUlMVVJFCisrCWZpCisrCisrCWxpYnJhcnlfbmFtZXM9CisrCW9sZF9saWJy YXJ5PQorKwlyZWxpbmtfY29tbWFuZD0KKysJIyBJZiB0aGVyZSBpcyBubyBkaXJlY3RvcnkgY29t cG9uZW50LCB0aGVuIGFkZCBvbmUuCisrCWNhc2UgJGZpbGUgaW4KKysJKi8qIHwgKlxcKikgLiAk ZmlsZSA7OworKwkqKSAuIC4vJGZpbGUgOzsKKysJZXNhYworKworKwkjIEFkZCB0aGUgbGliZGly IHRvIGN1cnJlbnRfbGliZGlycyBpZiBpdCBpcyB0aGUgZGVzdGluYXRpb24uCisrCWlmIHRlc3Qg IlgkZGVzdGRpciIgPSAiWCRsaWJkaXIiOyB0aGVuCisrCSAgY2FzZSAiJGN1cnJlbnRfbGliZGly cyAiIGluCisrCSAgKiIgJGxpYmRpciAiKikgOzsKKysJICAqKSBjdXJyZW50X2xpYmRpcnM9IiRj dXJyZW50X2xpYmRpcnMgJGxpYmRpciIgOzsKKysJICBlc2FjCisrCWVsc2UKKysJICAjIE5vdGUg dGhlIGxpYmRpciBhcyBhIGZ1dHVyZSBsaWJkaXIuCisrCSAgY2FzZSAiJGZ1dHVyZV9saWJkaXJz ICIgaW4KKysJICAqIiAkbGliZGlyICIqKSA7OworKwkgICopIGZ1dHVyZV9saWJkaXJzPSIkZnV0 dXJlX2xpYmRpcnMgJGxpYmRpciIgOzsKKysJICBlc2FjCisrCWZpCisrCisrCWRpcj1gJGVjaG8g IlgkZmlsZSIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYC8KKysJdGVzdCAiWCRkaXIiID0gIlgk ZmlsZS8iICYmIGRpcj0KKysJZGlyPSIkZGlyJG9iamRpciIKKysKKysJaWYgdGVzdCAtbiAiJHJl bGlua19jb21tYW5kIjsgdGhlbgorKwkgICMgRGV0ZXJtaW5lIHRoZSBwcmVmaXggdGhlIHVzZXIg aGFzIGFwcGxpZWQgdG8gb3VyIGZ1dHVyZSBkaXIuCisrCSAgaW5zdF9wcmVmaXhfZGlyPWAkZWNo byAiJGRlc3RkaXIiIHwgJFNFRCAicyUkbGliZGlyXCQlJSJgCisrCisrCSAgIyBEb24ndCBhbGxv dyB0aGUgdXNlciB0byBwbGFjZSB1cyBvdXRzaWRlIG9mIG91ciBleHBlY3RlZAorKwkgICMgbG9j YXRpb24gYi9jIHRoaXMgcHJldmVudHMgZmluZGluZyBkZXBlbmRlbnQgbGlicmFyaWVzIHRoYXQK KysJICAjIGFyZSBpbnN0YWxsZWQgdG8gdGhlIHNhbWUgcHJlZml4LgorKwkgICMgQXQgcHJlc2Vu dCwgdGhpcyBjaGVjayBkb2Vzbid0IGFmZmVjdCB3aW5kb3dzIC5kbGwncyB0aGF0CisrCSAgIyBh cmUgaW5zdGFsbGVkIGludG8gJGxpYmRpci8uLi9iaW4gKGN1cnJlbnRseSwgdGhhdCB3b3JrcyBm aW5lKQorKwkgICMgYnV0IGl0J3Mgc29tZXRoaW5nIHRvIGtlZXAgYW4gZXllIG9uLgorKwkgIGlm IHRlc3QgIiRpbnN0X3ByZWZpeF9kaXIiID0gIiRkZXN0ZGlyIjsgdGhlbgorKwkgICAgJGVjaG8g IiRtb2RlbmFtZTogZXJyb3I6IGNhbm5vdCBpbnN0YWxsIFxgJGZpbGUnIHRvIGEgZGlyZWN0b3J5 IG5vdCBlbmRpbmcgaW4gJGxpYmRpciIgMT4mMgorKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisr CSAgZmkKKysKKysJICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgorKwkgICAg IyBTdGljayB0aGUgaW5zdF9wcmVmaXhfZGlyIGRhdGEgaW50byB0aGUgbGluayBjb21tYW5kLgor KwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRlY2hvICIkcmVsaW5rX2NvbW1hbmQiIHwgJFNQMk5MIHwg JFNFRCAicyVAaW5zdF9wcmVmaXhfZGlyQCUtaW5zdC1wcmVmaXgtZGlyICRpbnN0X3ByZWZpeF9k aXIlIiB8ICROTDJTUGAKKysJICBlbHNlCisrCSAgICByZWxpbmtfY29tbWFuZD1gJGVjaG8gIiRy ZWxpbmtfY29tbWFuZCIgfCAkU1AyTkwgfCAkU0VEICJzJUBpbnN0X3ByZWZpeF9kaXJAJSUiIHwg JE5MMlNQYAorKwkgIGZpCisrCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogcmVsaW5r aW5nIFxgJGZpbGUnIiAxPiYyCisrCSAgJHNob3cgIiRyZWxpbmtfY29tbWFuZCIKKysJICBpZiAk cnVuIGV2YWwgIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4gOgorKwkgIGVsc2UKKysJICAgICRlY2hv ICIkbW9kZW5hbWU6IGVycm9yOiByZWxpbmsgXGAkZmlsZScgd2l0aCB0aGUgYWJvdmUgY29tbWFu ZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIgMT4mMgorKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisr CSAgZmkKKysJZmkKKysKKysJIyBTZWUgdGhlIG5hbWVzIG9mIHRoZSBzaGFyZWQgbGlicmFyeS4K KysJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzCisrCWlmIHRlc3QgLW4gIiQyIjsgdGhlbgorKwkg IHJlYWxuYW1lPSIkMiIKKysJICBzaGlmdAorKwkgIHNoaWZ0CisrCisrCSAgc3JjbmFtZT0iJHJl YWxuYW1lIgorKwkgIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCIgJiYgc3JjbmFtZT0iJHJlYWxu YW1lIlQKKysKKysJICAjIEluc3RhbGwgdGhlIHNoYXJlZCBsaWJyYXJ5IGFuZCBidWlsZCB0aGUg c3ltbGlua3MuCisrCSAgJHNob3cgIiRpbnN0YWxsX3Byb2cgJGRpci8kc3JjbmFtZSAkZGVzdGRp ci8kcmVhbG5hbWUiCisrCSAgJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nICRkaXIvJHNyY25hbWUg JGRlc3RkaXIvJHJlYWxuYW1lIiB8fCBleGl0ICQ/CisrCSAgaWYgdGVzdCAtbiAiJHN0cmlwbWUi ICYmIHRlc3QgLW4gIiRzdHJpcGxpYiI7IHRoZW4KKysJICAgICRzaG93ICIkc3RyaXBsaWIgJGRl c3RkaXIvJHJlYWxuYW1lIgorKwkgICAgJHJ1biBldmFsICIkc3RyaXBsaWIgJGRlc3RkaXIvJHJl YWxuYW1lIiB8fCBleGl0ICQ/CisrCSAgZmkKKysKKysJICBpZiB0ZXN0ICIkIyIgLWd0IDA7IHRo ZW4KKysJICAgICMgRGVsZXRlIHRoZSBvbGQgc3ltbGlua3MsIGFuZCBjcmVhdGUgbmV3IG9uZXMu CisrCSAgICAjIFRyeSBgbG4gLXNmJyBmaXJzdCwgYmVjYXVzZSB0aGUgYGxuJyBiaW5hcnkgbWln aHQgZGVwZW5kIG9uCisrCSAgICAjIHRoZSBzeW1saW5rIHdlIHJlcGxhY2UhICBTb2xhcmlzIC9i aW4vbG4gZG9lcyBub3QgdW5kZXJzdGFuZCAtZiwKKysJICAgICMgc28gd2UgYWxzbyBuZWVkIHRv IHRyeSBybSAmJiBsbiAtcy4KKysJICAgIGZvciBsaW5rbmFtZQorKwkgICAgZG8KKysJICAgICAg aWYgdGVzdCAiJGxpbmtuYW1lIiAhPSAiJHJlYWxuYW1lIjsgdGhlbgorKyAgICAgICAgICAgICAg ICAkc2hvdyAiKGNkICRkZXN0ZGlyICYmIHsgJExOX1MgLWYgJHJlYWxuYW1lICRsaW5rbmFtZSB8 fCB7ICRybSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRsaW5rbmFtZTsgfTsgfSkiCisr ICAgICAgICAgICAgICAgICRydW4gZXZhbCAiKGNkICRkZXN0ZGlyICYmIHsgJExOX1MgLWYgJHJl YWxuYW1lICRsaW5rbmFtZSB8fCB7ICRybSAkbGlua25hbWUgJiYgJExOX1MgJHJlYWxuYW1lICRs aW5rbmFtZTsgfTsgfSkiCisrCSAgICAgIGZpCisrCSAgICBkb25lCisrCSAgZmkKKysKKysJICAj IERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFuZHMuCisrCSAgbGliPSIk ZGVzdGRpci8kcmVhbG5hbWUiCisrCSAgY21kcz0kcG9zdGluc3RhbGxfY21kcworKwkgIHNhdmVf aWZzPSIkSUZTIjsgSUZTPSd+JworKwkgIGZvciBjbWQgaW4gJGNtZHM7IGRvCisrCSAgICBJRlM9 IiRzYXZlX2lmcyIKKysJICAgIGV2YWwgY21kPVwiJGNtZFwiCisrCSAgICAkc2hvdyAiJGNtZCIK KysJICAgICRydW4gZXZhbCAiJGNtZCIgfHwgeworKwkgICAgICBsdF9leGl0PSQ/CisrCisrCSAg ICAgICMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAorKwkgICAgICBp ZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKysJCSRydW4gZXZhbCAnKGNkICRvdXRwdXRf b2JqZGlyICYmICRybSAke3JlYWxuYW1lfVQgJiYgJG12ICR7cmVhbG5hbWV9VSAkcmVhbG5hbWUp JworKwkgICAgICBmaQorKworKwkgICAgICBleGl0ICRsdF9leGl0CisrCSAgICB9CisrCSAgZG9u ZQorKwkgIElGUz0iJHNhdmVfaWZzIgorKwlmaQorKworKwkjIEluc3RhbGwgdGhlIHBzZXVkby1s aWJyYXJ5IGZvciBpbmZvcm1hdGlvbiBwdXJwb3Nlcy4KKysJbmFtZT1gJGVjaG8gIlgkZmlsZSIg fCAkWHNlZCAtZSAncyVeLiovJSUnYAorKwlpbnN0bmFtZT0iJGRpci8kbmFtZSJpCisrCSRzaG93 ICIkaW5zdGFsbF9wcm9nICRpbnN0bmFtZSAkZGVzdGRpci8kbmFtZSIKKysJJHJ1biBldmFsICIk aW5zdGFsbF9wcm9nICRpbnN0bmFtZSAkZGVzdGRpci8kbmFtZSIgfHwgZXhpdCAkPworKworKwkj IE1heWJlIGluc3RhbGwgdGhlIHN0YXRpYyBsaWJyYXJ5LCB0b28uCisrCXRlc3QgLW4gIiRvbGRf bGlicmFyeSIgJiYgc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGRpci8kb2xkX2xpYnJhcnkiCisr CTs7CisrCisrICAgICAgKi5sbykKKysJIyBJbnN0YWxsIChpLmUuIGNvcHkpIGEgbGlidG9vbCBv YmplY3QuCisrCisrCSMgRmlndXJlIG91dCBkZXN0aW5hdGlvbiBmaWxlIG5hbWUsIGlmIGl0IHdh c24ndCBhbHJlYWR5IHNwZWNpZmllZC4KKysJaWYgdGVzdCAtbiAiJGRlc3RuYW1lIjsgdGhlbgor KwkgIGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdG5hbWUiCisrCWVsc2UKKysJICBkZXN0ZmlsZT1g JGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAorKwkgIGRlc3RmaWxlPSIkZGVz dGRpci8kZGVzdGZpbGUiCisrCWZpCisrCisrCSMgRGVkdWNlIHRoZSBuYW1lIG9mIHRoZSBkZXN0 aW5hdGlvbiBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCisrCWNhc2UgJGRlc3RmaWxlIGluCisrCSou bG8pCisrCSAgc3RhdGljZGVzdD1gJGVjaG8gIlgkZGVzdGZpbGUiIHwgJFhzZWQgLWUgIiRsbzJv ImAKKysJICA7OworKwkqLiRvYmpleHQpCisrCSAgc3RhdGljZGVzdD0iJGRlc3RmaWxlIgorKwkg IGRlc3RmaWxlPQorKwkgIDs7CisrCSopCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogY2Fubm90IGNv cHkgYSBsaWJ0b29sIG9iamVjdCB0byBcYCRkZXN0ZmlsZSciIDE+JjIKKysJICAkZWNobyAiJGhl bHAiIDE+JjIKKysJICBleGl0ICRFWElUX0ZBSUxVUkUKKysJICA7OworKwllc2FjCisrCisrCSMg SW5zdGFsbCB0aGUgbGlidG9vbCBvYmplY3QgaWYgcmVxdWVzdGVkLgorKwlpZiB0ZXN0IC1uICIk ZGVzdGZpbGUiOyB0aGVuCisrCSAgJHNob3cgIiRpbnN0YWxsX3Byb2cgJGZpbGUgJGRlc3RmaWxl IgorKwkgICRydW4gZXZhbCAiJGluc3RhbGxfcHJvZyAkZmlsZSAkZGVzdGZpbGUiIHx8IGV4aXQg JD8KKysJZmkKKysKKysJIyBJbnN0YWxsIHRoZSBvbGQgb2JqZWN0IGlmIGVuYWJsZWQuCisrCWlm IHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KKysJICAjIERlZHVjZSB0aGUgbmFt ZSBvZiB0aGUgb2xkLXN0eWxlIG9iamVjdCBmaWxlLgorKwkgIHN0YXRpY29iaj1gJGVjaG8gIlgk ZmlsZSIgfCAkWHNlZCAtZSAiJGxvMm8iYAorKworKwkgICRzaG93ICIkaW5zdGFsbF9wcm9nICRz dGF0aWNvYmogJHN0YXRpY2Rlc3QiCisrCSAgJHJ1biBldmFsICIkaW5zdGFsbF9wcm9nIFwkc3Rh dGljb2JqIFwkc3RhdGljZGVzdCIgfHwgZXhpdCAkPworKwlmaQorKwlleGl0ICRFWElUX1NVQ0NF U1MKKysJOzsKKysKKysgICAgICAqKQorKwkjIEZpZ3VyZSBvdXQgZGVzdGluYXRpb24gZmlsZSBu YW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZpZWQuCisrCWlmIHRlc3QgLW4gIiRkZXN0 bmFtZSI7IHRoZW4KKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgorKwllbHNlCisr CSAgZGVzdGZpbGU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKKysJICBk ZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RmaWxlIgorKwlmaQorKworKwkjIElmIHRoZSBmaWxlIGlz IG1pc3NpbmcsIGFuZCB0aGVyZSBpcyBhIC5leGUgb24gdGhlIGVuZCwgc3RyaXAgaXQKKysJIyBi ZWNhdXNlIGl0IGlzIG1vc3QgbGlrZWx5IGEgbGlidG9vbCBzY3JpcHQgd2UgYWN0dWFsbHkgd2Fu dCB0bworKwkjIGluc3RhbGwKKysJc3RyaXBwZWRfZXh0PSIiCisrCWNhc2UgJGZpbGUgaW4KKysJ ICAqLmV4ZSkKKysJICAgIGlmIHRlc3QgISAtZiAiJGZpbGUiOyB0aGVuCisrCSAgICAgIGZpbGU9 YCRlY2hvICRmaWxlfCR7U0VEfSAncywuZXhlJCwsJ2AKKysJICAgICAgc3RyaXBwZWRfZXh0PSIu ZXhlIgorKwkgICAgZmkKKysJICAgIDs7CisrCWVzYWMKKysKKysJIyBEbyBhIHRlc3QgdG8gc2Vl IGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgorKwljYXNlICRob3N0IGluCisr CSpjeWd3aW4qfCptaW5ndyopCisrCSAgICB3cmFwcGVyPWAkZWNobyAkZmlsZSB8ICR7U0VEfSAt ZSAncywuZXhlJCwsJ2AKKysJICAgIDs7CisrCSopCisrCSAgICB3cmFwcGVyPSRmaWxlCisrCSAg ICA7OworKwllc2FjCisrCWlmICgke1NFRH0gLWUgJzRxJyAkd3JhcHBlciB8IGdyZXAgIl4jIEdl bmVyYXRlZCBieSAuKiRQQUNLQUdFIik+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICBub3RpbnN0 X2RlcGxpYnM9CisrCSAgcmVsaW5rX2NvbW1hbmQ9CisrCisrCSAgIyBOb3RlIHRoYXQgaXQgaXMg bm90IG5lY2Vzc2FyeSBvbiBjeWd3aW4vbWluZ3cgdG8gYXBwZW5kIGEgZG90IHRvCisrCSAgIyBm b28gZXZlbiBpZiBib3RoIGZvbyBhbmQgRklMRS5leGUgZXhpc3Q6IGF1dG9tYXRpYy1hcHBlbmQt LmV4ZQorKwkgICMgYmVoYXZpb3IgaGFwcGVucyBvbmx5IGZvciBleGVjKDMpLCBub3QgZm9yIG9w ZW4oMikhICBBbHNvLCBzb3VyY2luZworKwkgICMgYEZJTEUuJyBkb2VzIG5vdCB3b3JrIG9uIGN5 Z3dpbiBtYW5hZ2VkIG1vdW50cy4KKysJICAjCisrCSAgIyBJZiB0aGVyZSBpcyBubyBkaXJlY3Rv cnkgY29tcG9uZW50LCB0aGVuIGFkZCBvbmUuCisrCSAgY2FzZSAkd3JhcHBlciBpbgorKwkgICov KiB8ICpcXCopIC4gJHt3cmFwcGVyfSA7OworKwkgICopIC4gLi8ke3dyYXBwZXJ9IDs7CisrCSAg ZXNhYworKworKwkgICMgQ2hlY2sgdGhlIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBoYXZlIGJlZW4g c2V0LgorKwkgIGlmIHRlc3QgLXogIiRub3RpbnN0X2RlcGxpYnMiOyB0aGVuCisrCSAgICAkZWNo byAiJG1vZGVuYW1lOiBpbnZhbGlkIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgXGAkd3JhcHBlcici IDE+JjIKKysJICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorKwkgIGZpCisrCisrCSAgZmluYWxpemU9 eWVzCisrCSAgZm9yIGxpYiBpbiAkbm90aW5zdF9kZXBsaWJzOyBkbworKwkgICAgIyBDaGVjayB0 byBzZWUgdGhhdCBlYWNoIGxpYnJhcnkgaXMgaW5zdGFsbGVkLgorKwkgICAgbGliZGlyPQorKwkg ICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KKysJICAgICAgIyBJZiB0aGVyZSBpcyBubyBkaXJl Y3RvcnkgY29tcG9uZW50LCB0aGVuIGFkZCBvbmUuCisrCSAgICAgIGNhc2UgJGxpYiBpbgorKwkg ICAgICAqLyogfCAqXFwqKSAuICRsaWIgOzsKKysJICAgICAgKikgLiAuLyRsaWIgOzsKKysJICAg ICAgZXNhYworKwkgICAgZmkKKysJICAgIGxpYmZpbGU9IiRsaWJkaXIvImAkZWNobyAiWCRsaWIi IHwgJFhzZWQgLWUgJ3MlXi4qLyUlZydgICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3Rp bmcgdGVzdAorKwkgICAgaWYgdGVzdCAtbiAiJGxpYmRpciIgJiYgdGVzdCAhIC1mICIkbGliZmls ZSI7IHRoZW4KKysJICAgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogXGAkbGliJyBoYXMg bm90IGJlZW4gaW5zdGFsbGVkIGluIFxgJGxpYmRpciciIDE+JjIKKysJICAgICAgZmluYWxpemU9 bm8KKysJICAgIGZpCisrCSAgZG9uZQorKworKwkgIHJlbGlua19jb21tYW5kPQorKwkgICMgTm90 ZSB0aGF0IGl0IGlzIG5vdCBuZWNlc3Nhcnkgb24gY3lnd2luL21pbmd3IHRvIGFwcGVuZCBhIGRv dCB0bworKwkgICMgZm9vIGV2ZW4gaWYgYm90aCBmb28gYW5kIEZJTEUuZXhlIGV4aXN0OiBhdXRv bWF0aWMtYXBwZW5kLS5leGUKKysJICAjIGJlaGF2aW9yIGhhcHBlbnMgb25seSBmb3IgZXhlYygz KSwgbm90IGZvciBvcGVuKDIpISAgQWxzbywgc291cmNpbmcKKysJICAjIGBGSUxFLicgZG9lcyBu b3Qgd29yayBvbiBjeWd3aW4gbWFuYWdlZCBtb3VudHMuCisrCSAgIworKwkgICMgSWYgdGhlcmUg aXMgbm8gZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBhZGQgb25lLgorKwkgIGNhc2UgJHdyYXBw ZXIgaW4KKysJICAqLyogfCAqXFwqKSAuICR7d3JhcHBlcn0gOzsKKysJICAqKSAuIC4vJHt3cmFw cGVyfSA7OworKwkgIGVzYWMKKysKKysJICBvdXRwdXRuYW1lPQorKwkgIGlmIHRlc3QgIiRmYXN0 X2luc3RhbGwiID0gbm8gJiYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkgICAg aWYgdGVzdCAiJGZpbmFsaXplIiA9IHllcyAmJiB0ZXN0IC16ICIkcnVuIjsgdGhlbgorKwkgICAg ICB0bXBkaXI9YGZ1bmNfbWt0ZW1wZGlyYAorKwkgICAgICBmaWxlPWAkZWNobyAiWCRmaWxlJHN0 cmlwcGVkX2V4dCIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAorKwkgICAgICBvdXRwdXRuYW1lPSIk dG1wZGlyLyRmaWxlIgorKwkgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmlj YXRpb24uCisrCSAgICAgIHJlbGlua19jb21tYW5kPWAkZWNobyAiWCRyZWxpbmtfY29tbWFuZCIg fCAkU1AyTkwgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXRuYW1lIiclZycgfCAkTkwy U1BgCisrCisrCSAgICAgICRzaG93ICIkcmVsaW5rX2NvbW1hbmQiCisrCSAgICAgIGlmICRydW4g ZXZhbCAiJHJlbGlua19jb21tYW5kIjsgdGhlbiA6CisrCSAgICAgIGVsc2UKKysJCSRlY2hvICIk bW9kZW5hbWU6IGVycm9yOiByZWxpbmsgXGAkZmlsZScgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBi ZWZvcmUgaW5zdGFsbGluZyBpdCIgMT4mMgorKwkJJHtybX1yICIkdG1wZGlyIgorKwkJY29udGlu dWUKKysJICAgICAgZmkKKysJICAgICAgZmlsZT0iJG91dHB1dG5hbWUiCisrCSAgICBlbHNlCisr CSAgICAgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IGNhbm5vdCByZWxpbmsgXGAkZmlsZSci IDE+JjIKKysJICAgIGZpCisrCSAgZWxzZQorKwkgICAgIyBJbnN0YWxsIHRoZSBiaW5hcnkgdGhh dCB3ZSBjb21waWxlZCBlYXJsaWVyLgorKwkgICAgZmlsZT1gJGVjaG8gIlgkZmlsZSRzdHJpcHBl ZF9leHQiIHwgJFhzZWQgLWUgInMlXChbXi9dKlwpJCUkb2JqZGlyL1wxJSJgCisrCSAgZmkKKysJ ZmkKKysKKysJIyByZW1vdmUgLmV4ZSBzaW5jZSBjeWd3aW4gL3Vzci9iaW4vaW5zdGFsbCB3aWxs IGFwcGVuZCBhbm90aGVyCisrCSMgb25lIGFueXdheSAKKysJY2FzZSAkaW5zdGFsbF9wcm9nLCRo b3N0IGluCisrCSovdXNyL2Jpbi9pbnN0YWxsKiwqY3lnd2luKikKKysJICBjYXNlICRmaWxlOiRk ZXN0ZmlsZSBpbgorKwkgICouZXhlOiouZXhlKQorKwkgICAgIyB0aGlzIGlzIG9rCisrCSAgICA7 OworKwkgICouZXhlOiopCisrCSAgICBkZXN0ZmlsZT0kZGVzdGZpbGUuZXhlCisrCSAgICA7Owor KwkgICo6Ki5leGUpCisrCSAgICBkZXN0ZmlsZT1gJGVjaG8gJGRlc3RmaWxlIHwgJHtTRUR9IC1l ICdzLC5leGUkLCwnYAorKwkgICAgOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKwkkc2hv dyAiJGluc3RhbGxfcHJvZyRzdHJpcG1lICRmaWxlICRkZXN0ZmlsZSIKKysJJHJ1biBldmFsICIk aW5zdGFsbF9wcm9nXCRzdHJpcG1lIFwkZmlsZSBcJGRlc3RmaWxlIiB8fCBleGl0ICQ/CisrCXRl c3QgLW4gIiRvdXRwdXRuYW1lIiAmJiAke3JtfXIgIiR0bXBkaXIiCisrCTs7CisrICAgICAgZXNh YworKyAgICBkb25lCisrCisrICAgIGZvciBmaWxlIGluICRzdGF0aWNsaWJzOyBkbworKyAgICAg IG5hbWU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKKysKKysgICAgICAj IFNldCB1cCB0aGUgcmFubGliIHBhcmFtZXRlcnMuCisrICAgICAgb2xkbGliPSIkZGVzdGRpci8k bmFtZSIKKysKKysgICAgICAkc2hvdyAiJGluc3RhbGxfcHJvZyAkZmlsZSAkb2xkbGliIgorKyAg ICAgICRydW4gZXZhbCAiJGluc3RhbGxfcHJvZyBcJGZpbGUgXCRvbGRsaWIiIHx8IGV4aXQgJD8K KysKKysgICAgICBpZiB0ZXN0IC1uICIkc3RyaXBtZSIgJiYgdGVzdCAtbiAiJG9sZF9zdHJpcGxp YiI7IHRoZW4KKysJJHNob3cgIiRvbGRfc3RyaXBsaWIgJG9sZGxpYiIKKysJJHJ1biBldmFsICIk b2xkX3N0cmlwbGliICRvbGRsaWIiIHx8IGV4aXQgJD8KKysgICAgICBmaQorKworKyAgICAgICMg RG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KKysgICAgICBjbWRz PSRvbGRfcG9zdGluc3RhbGxfY21kcworKyAgICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+Jwor KyAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCisrCUlGUz0iJHNhdmVfaWZzIgorKwlldmFsIGNt ZD1cIiRjbWRcIgorKwkkc2hvdyAiJGNtZCIKKysJJHJ1biBldmFsICIkY21kIiB8fCBleGl0ICQ/ CisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJHNhdmVfaWZzIgorKyAgICBkb25lCisrCisrICAg IGlmIHRlc3QgLW4gIiRmdXR1cmVfbGliZGlycyI7IHRoZW4KKysgICAgICAkZWNobyAiJG1vZGVu YW1lOiB3YXJuaW5nOiByZW1lbWJlciB0byBydW4gXGAkcHJvZ25hbWUgLS1maW5pc2gkZnV0dXJl X2xpYmRpcnMnIiAxPiYyCisrICAgIGZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRjdXJyZW50X2xp YmRpcnMiOyB0aGVuCisrICAgICAgIyBNYXliZSBqdXN0IGRvIGEgZHJ5IHJ1bi4KKysgICAgICB0 ZXN0IC1uICIkcnVuIiAmJiBjdXJyZW50X2xpYmRpcnM9IiAtbiRjdXJyZW50X2xpYmRpcnMiCisr ICAgICAgZXhlY19jbWQ9JyRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1maW5pc2gk Y3VycmVudF9saWJkaXJzJworKyAgICBlbHNlCisrICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCisr ICAgIGZpCisrICAgIDs7CisrCisrICAjIGxpYnRvb2wgZmluaXNoIG1vZGUKKysgIGZpbmlzaCkK KysgICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogZmluaXNoIgorKyAgICBsaWJkaXJzPSIkbm9ub3B0 IgorKyAgICBhZG1pbmNtZHM9CisrCisrICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRmaW5p c2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCisrICAgICAgZm9yIGRpcgorKyAg ICAgIGRvCisrCWxpYmRpcnM9IiRsaWJkaXJzICRkaXIiCisrICAgICAgZG9uZQorKworKyAgICAg IGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCisrCWlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyI7 IHRoZW4KKysJICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgZmluaXNoIGNvbW1hbmRzLgorKwkg IGNtZHM9JGZpbmlzaF9jbWRzCisrCSAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisrCSAgZm9y IGNtZCBpbiAkY21kczsgZG8KKysJICAgIElGUz0iJHNhdmVfaWZzIgorKwkgICAgZXZhbCBjbWQ9 XCIkY21kXCIKKysJICAgICRzaG93ICIkY21kIgorKwkgICAgJHJ1biBldmFsICIkY21kIiB8fCBh ZG1pbmNtZHM9IiRhZG1pbmNtZHMKKysgICAgICAgJGNtZCIKKysJICBkb25lCisrCSAgSUZTPSIk c2F2ZV9pZnMiCisrCWZpCisrCWlmIHRlc3QgLW4gIiRmaW5pc2hfZXZhbCI7IHRoZW4KKysJICAj IERvIHRoZSBzaW5nbGUgZmluaXNoX2V2YWwuCisrCSAgZXZhbCBjbWRzPVwiJGZpbmlzaF9ldmFs XCIKKysJICAkcnVuIGV2YWwgIiRjbWRzIiB8fCBhZG1pbmNtZHM9IiRhZG1pbmNtZHMKKysgICAg ICAgJGNtZHMiCisrCWZpCisrICAgICAgZG9uZQorKyAgICBmaQorKworKyAgICAjIEV4aXQgaGVy ZSBpZiB0aGV5IHdhbnRlZCBzaWxlbnQgbW9kZS4KKysgICAgdGVzdCAiJHNob3ciID0gOiAmJiBl eGl0ICRFWElUX1NVQ0NFU1MKKysKKysgICAgJGVjaG8gIlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiB8ICRYc2Vk CisrICAgICRlY2hvICJMaWJyYXJpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbjoiCisrICAgIGZv ciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCisrICAgICAgJGVjaG8gIiAgICRsaWJkaXIiCisrICAg IGRvbmUKKysgICAgJGVjaG8KKysgICAgJGVjaG8gIklmIHlvdSBldmVyIGhhcHBlbiB0byB3YW50 IHRvIGxpbmsgYWdhaW5zdCBpbnN0YWxsZWQgbGlicmFyaWVzIgorKyAgICAkZWNobyAiaW4gYSBn aXZlbiBkaXJlY3RvcnksIExJQkRJUiwgeW91IG11c3QgZWl0aGVyIHVzZSBsaWJ0b29sLCBhbmQi CisrICAgICRlY2hvICJzcGVjaWZ5IHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBsaWJyYXJ5LCBv ciB1c2UgdGhlIFxgLUxMSUJESVInIgorKyAgICAkZWNobyAiZmxhZyBkdXJpbmcgbGlua2luZyBh bmQgZG8gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmc6IgorKyAgICBpZiB0ZXN0IC1uICIk c2hsaWJwYXRoX3ZhciI7IHRoZW4KKysgICAgICAkZWNobyAiICAgLSBhZGQgTElCRElSIHRvIHRo ZSBcYCRzaGxpYnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKKysgICAgICAkZWNobyAi ICAgICBkdXJpbmcgZXhlY3V0aW9uIgorKyAgICBmaQorKyAgICBpZiB0ZXN0IC1uICIkcnVucGF0 aF92YXIiOyB0aGVuCisrICAgICAgJGVjaG8gIiAgIC0gYWRkIExJQkRJUiB0byB0aGUgXGAkcnVu cGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgorKyAgICAgICRlY2hvICIgICAgIGR1cmlu ZyBsaW5raW5nIgorKyAgICBmaQorKyAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYyI7IHRoZW4KKysgICAgICBsaWJkaXI9TElCRElSCisrICAgICAgZXZhbCBmbGFnPVwi JGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorKworKyAgICAgICRlY2hvICIgICAtIHVzZSB0 aGUgXGAkZmxhZycgbGlua2VyIGZsYWciCisrICAgIGZpCisrICAgIGlmIHRlc3QgLW4gIiRhZG1p bmNtZHMiOyB0aGVuCisrICAgICAgJGVjaG8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlz dHJhdG9yIHJ1biB0aGVzZSBjb21tYW5kczokYWRtaW5jbWRzIgorKyAgICBmaQorKyAgICBpZiB0 ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgorKyAgICAgICRlY2hvICIgICAtIGhhdmUgeW91 ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBhZGQgTElCRElSIHRvIFxgL2V0Yy9sZC5zby5jb25mJyIK KysgICAgZmkKKysgICAgJGVjaG8KKysgICAgJGVjaG8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5c3Rl bSBkb2N1bWVudGF0aW9uIGFib3V0IHNoYXJlZCBsaWJyYXJpZXMgZm9yIgorKyAgICAkZWNobyAi bW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSkgYW5kIGxkLnNvKDgpIG1hbnVhbCBw YWdlcy4iCisrICAgICRlY2hvICJYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgfCAkWHNlZAorKyAgICBleGl0ICRF WElUX1NVQ0NFU1MKKysgICAgOzsKKysKKysgICMgbGlidG9vbCBleGVjdXRlIG1vZGUKKysgIGV4 ZWN1dGUpCisrICAgIG1vZGVuYW1lPSIkbW9kZW5hbWU6IGV4ZWN1dGUiCisrCisrICAgICMgVGhl IGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBjb21tYW5kIG5hbWUuCisrICAgIGNtZD0iJG5vbm9wdCIK KysgICAgaWYgdGVzdCAteiAiJGNtZCI7IHRoZW4KKysgICAgICAkZWNobyAiJG1vZGVuYW1lOiB5 b3UgbXVzdCBzcGVjaWZ5IGEgQ09NTUFORCIgMT4mMgorKyAgICAgICRlY2hvICIkaGVscCIKKysg ICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgZmkKKysKKysgICAgIyBIYW5kbGUgLWRsb3Bl biBmbGFncyBpbW1lZGlhdGVseS4KKysgICAgZm9yIGZpbGUgaW4gJGV4ZWN1dGVfZGxmaWxlczsg ZG8KKysgICAgICBpZiB0ZXN0ICEgLWYgIiRmaWxlIjsgdGhlbgorKwkkZWNobyAiJG1vZGVuYW1l OiBcYCRmaWxlJyBpcyBub3QgYSBmaWxlIiAxPiYyCisrCSRlY2hvICIkaGVscCIgMT4mMgorKwll eGl0ICRFWElUX0ZBSUxVUkUKKysgICAgICBmaQorKworKyAgICAgIGRpcj0KKysgICAgICBjYXNl ICRmaWxlIGluCisrICAgICAgKi5sYSkKKysJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxs eSBpcyBhIGxpYnRvb2wgYXJjaGl2ZS4KKysJaWYgKCR7U0VEfSAtZSAnMnEnICRmaWxlIHwgZ3Jl cCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgor KwllbHNlCisrCSAgJGVjaG8gIiRtb2RlbmFtZTogXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0 b29sIGFyY2hpdmUiIDE+JjIKKysJICAkZWNobyAiJGhlbHAiIDE+JjIKKysJICBleGl0ICRFWElU X0ZBSUxVUkUKKysJZmkKKysKKysJIyBSZWFkIHRoZSBsaWJ0b29sIGxpYnJhcnkuCisrCWRsbmFt ZT0KKysJbGlicmFyeV9uYW1lcz0KKysKKysJIyBJZiB0aGVyZSBpcyBubyBkaXJlY3RvcnkgY29t cG9uZW50LCB0aGVuIGFkZCBvbmUuCisrCWNhc2UgJGZpbGUgaW4KKysJKi8qIHwgKlxcKikgLiAk ZmlsZSA7OworKwkqKSAuIC4vJGZpbGUgOzsKKysJZXNhYworKworKwkjIFNraXAgdGhpcyBsaWJy YXJ5IGlmIGl0IGNhbm5vdCBiZSBkbG9wZW5lZC4KKysJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRo ZW4KKysJICAjIFdhcm4gaWYgaXQgd2FzIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgdGVzdCAtbiAi JGxpYnJhcnlfbmFtZXMiICYmICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgJGZpbGUnIHdh cyBub3QgbGlua2VkIHdpdGggXGAtZXhwb3J0LWR5bmFtaWMnIgorKwkgIGNvbnRpbnVlCisrCWZp CisrCisrCWRpcj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAorKwl0 ZXN0ICJYJGRpciIgPSAiWCRmaWxlIiAmJiBkaXI9LgorKworKwlpZiB0ZXN0IC1mICIkZGlyLyRv YmpkaXIvJGRsbmFtZSI7IHRoZW4KKysJICBkaXI9IiRkaXIvJG9iamRpciIKKysJZWxzZQorKwkg IGlmIHRlc3QgISAtZiAiJGRpci8kZGxuYW1lIjsgdGhlbgorKwkgICAgJGVjaG8gIiRtb2RlbmFt ZTogY2Fubm90IGZpbmQgXGAkZGxuYW1lJyBpbiBcYCRkaXInIG9yIFxgJGRpci8kb2JqZGlyJyIg MT4mMgorKwkgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisrCSAgZmkKKysJZmkKKysJOzsKKysKKysg ICAgICAqLmxvKQorKwkjIEp1c3QgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgLmxv IGZpbGUuCisrCWRpcj1gJGVjaG8gIlgkZmlsZSIgfCAkWHNlZCAtZSAncyUvW14vXSokJSUnYAor Kwl0ZXN0ICJYJGRpciIgPSAiWCRmaWxlIiAmJiBkaXI9LgorKwk7OworKworKyAgICAgICopCisr CSRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmcgXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBub24t bGlidG9vbCBsaWJyYXJpZXMgYW5kIG9iamVjdHMiIDE+JjIKKysJY29udGludWUKKysJOzsKKysg ICAgICBlc2FjCisrCisrICAgICAgIyBHZXQgdGhlIGFic29sdXRlIHBhdGhuYW1lLgorKyAgICAg IGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKysgICAgICB0ZXN0IC1uICIkYWJzZGlyIiAmJiBk aXI9IiRhYnNkaXIiCisrCisrICAgICAgIyBOb3cgYWRkIHRoZSBkaXJlY3RvcnkgdG8gc2hsaWJw YXRoX3Zhci4KKysgICAgICBpZiBldmFsICJ0ZXN0IC16IFwiXCQkc2hsaWJwYXRoX3ZhclwiIjsg dGhlbgorKwlldmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyXCIiCisrICAgICAgZWxzZQorKwll dmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyOlwkJHNobGlicGF0aF92YXJcIiIKKysgICAgICBm aQorKyAgICBkb25lCisrCisrICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlw dHMganVzdCB0byBzZXQgc2hsaWJwYXRoX3ZhcgorKyAgICAjIHJhdGhlciB0aGFuIHJ1bm5pbmcg dGhlaXIgcHJvZ3JhbXMuCisrICAgIGxpYnRvb2xfZXhlY3V0ZV9tYWdpYz0iJG1hZ2ljIgorKwor KyAgICAjIENoZWNrIGlmIGFueSBvZiB0aGUgYXJndW1lbnRzIGlzIGEgd3JhcHBlciBzY3JpcHQu CisrICAgIGFyZ3M9CisrICAgIGZvciBmaWxlCisrICAgIGRvCisrICAgICAgY2FzZSAkZmlsZSBp bgorKyAgICAgIC0qKSA7OworKyAgICAgICopCisrCSMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlz IGlzIHJlYWxseSBhIGxpYnRvb2wgcHJvZ3JhbS4KKysJaWYgKCR7U0VEfSAtZSAnNHEnICRmaWxl IHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KKysJICAjIElmIHRoZXJlIGlzIG5vIGRpcmVjdG9yeSBjb21wb25lbnQsIHRoZW4gYWRkIG9u ZS4KKysJICBjYXNlICRmaWxlIGluCisrCSAgKi8qIHwgKlxcKikgLiAkZmlsZSA7OworKwkgICop IC4gLi8kZmlsZSA7OworKwkgIGVzYWMKKysKKysJICAjIFRyYW5zZm9ybSBhcmcgdG8gd3JhcHBl ZCBuYW1lLgorKwkgIGZpbGU9IiRwcm9nZGlyLyRwcm9ncmFtIgorKwlmaQorKwk7OworKyAgICAg IGVzYWMKKysgICAgICAjIFF1b3RlIGFyZ3VtZW50cyAodG8gcHJlc2VydmUgc2hlbGwgbWV0YWNo YXJhY3RlcnMpLgorKyAgICAgIGZpbGU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgIiRzZWRf cXVvdGVfc3Vic3QiYAorKyAgICAgIGFyZ3M9IiRhcmdzIFwiJGZpbGVcIiIKKysgICAgZG9uZQor KworKyAgICBpZiB0ZXN0IC16ICIkcnVuIjsgdGhlbgorKyAgICAgIGlmIHRlc3QgLW4gIiRzaGxp YnBhdGhfdmFyIjsgdGhlbgorKwkjIEV4cG9ydCB0aGUgc2hsaWJwYXRoX3Zhci4KKysJZXZhbCAi ZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgorKyAgICAgIGZpCisrCisrICAgICAgIyBSZXN0b3JlIHNh dmVkIGVudmlyb25tZW50IHZhcmlhYmxlcworKyAgICAgIGZvciBsdF92YXIgaW4gTEFORyBMQU5H VUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUworKyAgICAgIGRvCisr CWV2YWwgImlmIHRlc3QgXCJcJHtzYXZlXyRsdF92YXIrc2V0fVwiID0gc2V0OyB0aGVuCisrCQkk bHRfdmFyPVwkc2F2ZV8kbHRfdmFyOyBleHBvcnQgJGx0X3ZhcgorKwkgICAgICBmaSIKKysgICAg ICBkb25lCisrCisrICAgICAgIyBOb3cgcHJlcGFyZSB0byBhY3R1YWxseSBleGVjIHRoZSBjb21t YW5kLgorKyAgICAgIGV4ZWNfY21kPSJcJGNtZCRhcmdzIgorKyAgICBlbHNlCisrICAgICAgIyBE aXNwbGF5IHdoYXQgd291bGQgYmUgZG9uZS4KKysgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRo X3ZhciI7IHRoZW4KKysJZXZhbCAiXCRlY2hvIFwiXCRzaGxpYnBhdGhfdmFyPVwkJHNobGlicGF0 aF92YXJcIiIKKysJJGVjaG8gImV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKKysgICAgICBmaQorKyAg ICAgICRlY2hvICIkY21kJGFyZ3MiCisrICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgIGZp CisrICAgIDs7CisrCisrICAjIGxpYnRvb2wgY2xlYW4gYW5kIHVuaW5zdGFsbCBtb2RlCisrICBj bGVhbiB8IHVuaW5zdGFsbCkKKysgICAgbW9kZW5hbWU9IiRtb2RlbmFtZTogJG1vZGUiCisrICAg IHJtPSIkbm9ub3B0IgorKyAgICBmaWxlcz0KKysgICAgcm1mb3JjZT0KKysgICAgZXhpdF9zdGF0 dXM9MAorKworKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3Qg dG8gc2V0IHZhcmlhYmxlcyByYXRoZXIKKysgICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3Jh bXMuCisrICAgIGxpYnRvb2xfaW5zdGFsbF9tYWdpYz0iJG1hZ2ljIgorKworKyAgICBmb3IgYXJn CisrICAgIGRvCisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLWYpIHJtPSIkcm0gJGFyZyI7 IHJtZm9yY2U9eWVzIDs7CisrICAgICAgLSopIHJtPSIkcm0gJGFyZyIgOzsKKysgICAgICAqKSBm aWxlcz0iJGZpbGVzICRhcmciIDs7CisrICAgICAgZXNhYworKyAgICBkb25lCisrCisrICAgIGlm IHRlc3QgLXogIiRybSI7IHRoZW4KKysgICAgICAkZWNobyAiJG1vZGVuYW1lOiB5b3UgbXVzdCBz cGVjaWZ5IGFuIFJNIHByb2dyYW0iIDE+JjIKKysgICAgICAkZWNobyAiJGhlbHAiIDE+JjIKKysg ICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKysgICAgZmkKKysKKysgICAgcm1kaXJzPQorKworKyAg ICBvcmlnb2JqZGlyPSIkb2JqZGlyIgorKyAgICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRvCisrICAg ICAgZGlyPWAkZWNobyAiWCRmaWxlIiB8ICRYc2VkIC1lICdzJS9bXi9dKiQlJSdgCisrICAgICAg aWYgdGVzdCAiWCRkaXIiID0gIlgkZmlsZSI7IHRoZW4KKysJZGlyPS4KKysJb2JqZGlyPSIkb3Jp Z29iamRpciIKKysgICAgICBlbHNlCisrCW9iamRpcj0iJGRpci8kb3JpZ29iamRpciIKKysgICAg ICBmaQorKyAgICAgIG5hbWU9YCRlY2hvICJYJGZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AK KysgICAgICB0ZXN0ICIkbW9kZSIgPSB1bmluc3RhbGwgJiYgb2JqZGlyPSIkZGlyIgorKworKyAg ICAgICMgUmVtZW1iZXIgb2JqZGlyIGZvciByZW1vdmFsIGxhdGVyLCBiZWluZyBjYXJlZnVsIHRv IGF2b2lkIGR1cGxpY2F0ZXMKKysgICAgICBpZiB0ZXN0ICIkbW9kZSIgPSBjbGVhbjsgdGhlbgor KwljYXNlICIgJHJtZGlycyAiIGluCisrCSAgKiIgJG9iamRpciAiKikgOzsKKysJICAqKSBybWRp cnM9IiRybWRpcnMgJG9iamRpciIgOzsKKysJZXNhYworKyAgICAgIGZpCisrCisrICAgICAgIyBE b24ndCBlcnJvciBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0IGFuZCBybSAtZiB3YXMgdXNlZC4K KysgICAgICBpZiAodGVzdCAtTCAiJGZpbGUiKSA+L2Rldi9udWxsIDI+JjEgXAorKwl8fCAodGVz dCAtaCAiJGZpbGUiKSA+L2Rldi9udWxsIDI+JjEgXAorKwl8fCB0ZXN0IC1mICIkZmlsZSI7IHRo ZW4KKysJOgorKyAgICAgIGVsaWYgdGVzdCAtZCAiJGZpbGUiOyB0aGVuCisrCWV4aXRfc3RhdHVz PTEKKysJY29udGludWUKKysgICAgICBlbGlmIHRlc3QgIiRybWZvcmNlIiA9IHllczsgdGhlbgor Kwljb250aW51ZQorKyAgICAgIGZpCisrCisrICAgICAgcm1maWxlcz0iJGZpbGUiCisrCisrICAg ICAgY2FzZSAkbmFtZSBpbgorKyAgICAgICoubGEpCisrCSMgUG9zc2libHkgYSBsaWJ0b29sIGFy Y2hpdmUsIHNvIHZlcmlmeSBpdC4KKysJaWYgKCR7U0VEfSAtZSAnMnEnICRmaWxlIHwgZ3JlcCAi XiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICAu ICRkaXIvJG5hbWUKKysKKysJICAjIERlbGV0ZSB0aGUgbGlidG9vbCBsaWJyYXJpZXMgYW5kIHN5 bWxpbmtzLgorKwkgIGZvciBuIGluICRsaWJyYXJ5X25hbWVzOyBkbworKwkgICAgcm1maWxlcz0i JHJtZmlsZXMgJG9iamRpci8kbiIKKysJICBkb25lCisrCSAgdGVzdCAtbiAiJG9sZF9saWJyYXJ5 IiAmJiBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRvbGRfbGlicmFyeSIKKysKKysJICBjYXNl ICIkbW9kZSIgaW4KKysJICBjbGVhbikKKysJICAgIGNhc2UgIiAgJGxpYnJhcnlfbmFtZXMgIiBp bgorKwkgICAgIyAiICAiIGluIHRoZSBiZWdpbm5pbmcgY2F0Y2hlcyBlbXB0eSAkZGxuYW1lCisr CSAgICAqIiAkZGxuYW1lICIqKSA7OworKwkgICAgKikgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRp ci8kZGxuYW1lIiA7OworKwkgICAgZXNhYworKwkgICAgIHRlc3QgLW4gIiRsaWJkaXIiICYmIHJt ZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG5hbWUgJG9iamRpci8ke25hbWV9aSIKKysJICAgIDs7 CisrCSAgdW5pbnN0YWxsKQorKwkgICAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiOyB0aGVu CisrCSAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0dW5pbnN0YWxsIGNvbW1hbmRz LgorKwkgICAgICBjbWRzPSRwb3N0dW5pbnN0YWxsX2NtZHMKKysJICAgICAgc2F2ZV9pZnM9IiRJ RlMiOyBJRlM9J34nCisrCSAgICAgIGZvciBjbWQgaW4gJGNtZHM7IGRvCisrCQlJRlM9IiRzYXZl X2lmcyIKKysJCWV2YWwgY21kPVwiJGNtZFwiCisrCQkkc2hvdyAiJGNtZCIKKysJCSRydW4gZXZh bCAiJGNtZCIKKysJCWlmIHRlc3QgIiQ/IiAtbmUgMCAmJiB0ZXN0ICIkcm1mb3JjZSIgIT0geWVz OyB0aGVuCisrCQkgIGV4aXRfc3RhdHVzPTEKKysJCWZpCisrCSAgICAgIGRvbmUKKysJICAgICAg SUZTPSIkc2F2ZV9pZnMiCisrCSAgICBmaQorKworKwkgICAgaWYgdGVzdCAtbiAiJG9sZF9saWJy YXJ5IjsgdGhlbgorKwkgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgb2xkX3Bvc3R1bmlu c3RhbGwgY29tbWFuZHMuCisrCSAgICAgIGNtZHM9JG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMKKysJ ICAgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCisrCSAgICAgIGZvciBjbWQgaW4gJGNtZHM7 IGRvCisrCQlJRlM9IiRzYXZlX2lmcyIKKysJCWV2YWwgY21kPVwiJGNtZFwiCisrCQkkc2hvdyAi JGNtZCIKKysJCSRydW4gZXZhbCAiJGNtZCIKKysJCWlmIHRlc3QgIiQ/IiAtbmUgMCAmJiB0ZXN0 ICIkcm1mb3JjZSIgIT0geWVzOyB0aGVuCisrCQkgIGV4aXRfc3RhdHVzPTEKKysJCWZpCisrCSAg ICAgIGRvbmUKKysJICAgICAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgICBmaQorKwkgICAgIyBGSVhN RTogc2hvdWxkIHJlaW5zdGFsbCB0aGUgYmVzdCByZW1haW5pbmcgc2hhcmVkIGxpYnJhcnkuCisr CSAgICA7OworKwkgIGVzYWMKKysJZmkKKysJOzsKKysKKysgICAgICAqLmxvKQorKwkjIFBvc3Np Ymx5IGEgbGlidG9vbCBvYmplY3QsIHNvIHZlcmlmeSBpdC4KKysJaWYgKCR7U0VEfSAtZSAnMnEn ICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+L2Rldi9udWxsIDI+ JjE7IHRoZW4KKysKKysJICAjIFJlYWQgdGhlIC5sbyBmaWxlCisrCSAgLiAkZGlyLyRuYW1lCisr CisrCSAgIyBBZGQgUElDIG9iamVjdCB0byB0aGUgbGlzdCBvZiBmaWxlcyB0byByZW1vdmUuCisr CSAgaWYgdGVzdCAtbiAiJHBpY19vYmplY3QiIFwKKysJICAgICAmJiB0ZXN0ICIkcGljX29iamVj dCIgIT0gbm9uZTsgdGhlbgorKwkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGRpci8kcGljX29iamVj dCIKKysJICBmaQorKworKwkgICMgQWRkIG5vbi1QSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZp bGVzIHRvIHJlbW92ZS4KKysJICBpZiB0ZXN0IC1uICIkbm9uX3BpY19vYmplY3QiIFwKKysJICAg ICAmJiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJICAgIHJtZmlsZXM9 IiRybWZpbGVzICRkaXIvJG5vbl9waWNfb2JqZWN0IgorKwkgIGZpCisrCWZpCisrCTs7CisrCisr ICAgICAgKikKKysJaWYgdGVzdCAiJG1vZGUiID0gY2xlYW4gOyB0aGVuCisrCSAgbm9leGVuYW1l PSRuYW1lCisrCSAgY2FzZSAkZmlsZSBpbgorKwkgICouZXhlKQorKwkgICAgZmlsZT1gJGVjaG8g JGZpbGV8JHtTRUR9ICdzLC5leGUkLCwnYAorKwkgICAgbm9leGVuYW1lPWAkZWNobyAkbmFtZXwk e1NFRH0gJ3MsLmV4ZSQsLCdgCisrCSAgICAjICRmaWxlIHdpdGggLmV4ZSBoYXMgYWxyZWFkeSBi ZWVuIGFkZGVkIHRvIHJtZmlsZXMsCisrCSAgICAjIGFkZCAkZmlsZSB3aXRob3V0IC5leGUKKysJ ICAgIHJtZmlsZXM9IiRybWZpbGVzICRmaWxlIgorKwkgICAgOzsKKysJICBlc2FjCisrCSAgIyBE byBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgYSBsaWJ0b29sIHByb2dyYW0uCisrCSAgaWYgKCR7 U0VEfSAtZSAnNHEnICRmaWxlIHwgZ3JlcCAiXiMgR2VuZXJhdGVkIGJ5IC4qJFBBQ0tBR0UiKSA+ L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICAgIHJlbGlua19jb21tYW5kPQorKwkgICAgLiAkZGly LyRub2V4ZW5hbWUKKysKKysJICAgICMgbm90ZSAkbmFtZSBzdGlsbCBjb250YWlucyAuZXhlIGlm IGl0IHdhcyBpbiAkZmlsZSBvcmlnaW5hbGx5CisrCSAgICAjIGFzIGRvZXMgdGhlIHZlcnNpb24g b2YgJGZpbGUgdGhhdCB3YXMgYWRkZWQgaW50byAkcm1maWxlcworKwkgICAgcm1maWxlcz0iJHJt ZmlsZXMgJG9iamRpci8kbmFtZSAkb2JqZGlyLyR7bmFtZX1TLiR7b2JqZXh0fSIKKysJICAgIGlm IHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzICYmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7 IHRoZW4KKysJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci9sdC0kbmFtZSIKKysJICAg IGZpCisrCSAgICBpZiB0ZXN0ICJYJG5vZXhlbmFtZSIgIT0gIlgkbmFtZSIgOyB0aGVuCisrCSAg ICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvbHQtJHtub2V4ZW5hbWV9LmMiCisrCSAgICBm aQorKwkgIGZpCisrCWZpCisrCTs7CisrICAgICAgZXNhYworKyAgICAgICRzaG93ICIkcm0gJHJt ZmlsZXMiCisrICAgICAgJHJ1biAkcm0gJHJtZmlsZXMgfHwgZXhpdF9zdGF0dXM9MQorKyAgICBk b25lCisrICAgIG9iamRpcj0iJG9yaWdvYmpkaXIiCisrCisrICAgICMgVHJ5IHRvIHJlbW92ZSB0 aGUgJHtvYmpkaXJ9cyBpbiB0aGUgZGlyZWN0b3JpZXMgd2hlcmUgd2UgZGVsZXRlZCBmaWxlcwor KyAgICBmb3IgZGlyIGluICRybWRpcnM7IGRvCisrICAgICAgaWYgdGVzdCAtZCAiJGRpciI7IHRo ZW4KKysJJHNob3cgInJtZGlyICRkaXIiCisrCSRydW4gcm1kaXIgJGRpciA+L2Rldi9udWxsIDI+ JjEKKysgICAgICBmaQorKyAgICBkb25lCisrCisrICAgIGV4aXQgJGV4aXRfc3RhdHVzCisrICAg IDs7CisrCisrICAiIikKKysgICAgJGVjaG8gIiRtb2RlbmFtZTogeW91IG11c3Qgc3BlY2lmeSBh IE1PREUiIDE+JjIKKysgICAgJGVjaG8gIiRnZW5lcmljX2hlbHAiIDE+JjIKKysgICAgZXhpdCAk RVhJVF9GQUlMVVJFCisrICAgIDs7CisrICBlc2FjCisrCisrICBpZiB0ZXN0IC16ICIkZXhlY19j bWQiOyB0aGVuCisrICAgICRlY2hvICIkbW9kZW5hbWU6IGludmFsaWQgb3BlcmF0aW9uIG1vZGUg XGAkbW9kZSciIDE+JjIKKysgICAgJGVjaG8gIiRnZW5lcmljX2hlbHAiIDE+JjIKKysgICAgZXhp dCAkRVhJVF9GQUlMVVJFCisrICBmaQorK2ZpICMgdGVzdCAteiAiJHNob3dfaGVscCIKKysKKytp ZiB0ZXN0IC1uICIkZXhlY19jbWQiOyB0aGVuCisrICBldmFsIGV4ZWMgJGV4ZWNfY21kCisrICBl eGl0ICRFWElUX0ZBSUxVUkUKKytmaQorKworKyMgV2UgbmVlZCB0byBkaXNwbGF5IGhlbHAgZm9y IGVhY2ggb2YgdGhlIG1vZGVzLgorK2Nhc2UgJG1vZGUgaW4KKysiIikgJGVjaG8gXAorKyJVc2Fn ZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIFtNT0RFLUFSR10uLi4KKysKKytQcm92aWRlIGdlbmVy YWxpemVkIGxpYnJhcnktYnVpbGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KKysKKysgICAgLS1jb25m aWcgICAgICAgICAgc2hvdyBhbGwgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMKKysgICAgLS1kZWJ1 ZyAgICAgICAgICAgZW5hYmxlIHZlcmJvc2Ugc2hlbGwgdHJhY2luZworKy1uLCAtLWRyeS1ydW4g ICAgICAgICBkaXNwbGF5IGNvbW1hbmRzIHdpdGhvdXQgbW9kaWZ5aW5nIGFueSBmaWxlcworKyAg ICAtLWZlYXR1cmVzICAgICAgICBkaXNwbGF5IGJhc2ljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRp b24gYW5kIGV4aXQKKysgICAgLS1maW5pc2ggICAgICAgICAgc2FtZSBhcyBcYC0tbW9kZT1maW5p c2gnCisrICAgIC0taGVscCAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIG1lc3NhZ2UgYW5k IGV4aXQKKysgICAgLS1tb2RlPU1PREUgICAgICAgdXNlIG9wZXJhdGlvbiBtb2RlIE1PREUgW2Rl ZmF1bHQ9aW5mZXJyZWQgZnJvbSBNT0RFLUFSR1NdCisrICAgIC0tcXVpZXQgICAgICAgICAgIHNh bWUgYXMgXGAtLXNpbGVudCcKKysgICAgLS1zaWxlbnQgICAgICAgICAgZG9uJ3QgcHJpbnQgaW5m b3JtYXRpb25hbCBtZXNzYWdlcworKyAgICAtLXRhZz1UQUcgICAgICAgICB1c2UgY29uZmlndXJh dGlvbiB2YXJpYWJsZXMgZnJvbSB0YWcgVEFHCisrICAgIC0tdmVyc2lvbiAgICAgICAgIHByaW50 IHZlcnNpb24gaW5mb3JtYXRpb24KKysKKytNT0RFIG11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dp bmc6CisrCisrICAgICAgY2xlYW4gICAgICAgICAgIHJlbW92ZSBmaWxlcyBmcm9tIHRoZSBidWls ZCBkaXJlY3RvcnkKKysgICAgICBjb21waWxlICAgICAgICAgY29tcGlsZSBhIHNvdXJjZSBmaWxl IGludG8gYSBsaWJ0b29sIG9iamVjdAorKyAgICAgIGV4ZWN1dGUgICAgICAgICBhdXRvbWF0aWNh bGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEgcHJvZ3JhbQorKyAgICAgIGZpbmlzaCAg ICAgICAgICBjb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzCisr ICAgICAgaW5zdGFsbCAgICAgICAgIGluc3RhbGwgbGlicmFyaWVzIG9yIGV4ZWN1dGFibGVzCisr ICAgICAgbGluayAgICAgICAgICAgIGNyZWF0ZSBhIGxpYnJhcnkgb3IgYW4gZXhlY3V0YWJsZQor KyAgICAgIHVuaW5zdGFsbCAgICAgICByZW1vdmUgbGlicmFyaWVzIGZyb20gYW4gaW5zdGFsbGVk IGRpcmVjdG9yeQorKworK01PREUtQVJHUyB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgTU9ERS4gIFRy eSBcYCRtb2RlbmFtZSAtLWhlbHAgLS1tb2RlPU1PREUnIGZvcgorK2EgbW9yZSBkZXRhaWxlZCBk ZXNjcmlwdGlvbiBvZiBNT0RFLgorKworK1JlcG9ydCBidWdzIHRvIDxidWctbGlidG9vbEBnbnUu b3JnPi4iCisrICBleGl0ICRFWElUX1NVQ0NFU1MKKysgIDs7CisrCisrY2xlYW4pCisrICAkZWNo byBcCisrIlVzYWdlOiAkbW9kZW5hbWUgW09QVElPTl0uLi4gLS1tb2RlPWNsZWFuIFJNIFtSTS1P UFRJT05dLi4uIEZJTEUuLi4KKysKKytSZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0 b3J5LgorKworK1JNIGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUg ZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggRklMRQorKyh0eXBpY2FsbHkgXGAvYmluL3JtJyku ICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKKyt0 byBSTS4KKysKKytJZiBGSUxFIGlzIGEgbGlidG9vbCBsaWJyYXJ5LCBvYmplY3Qgb3IgcHJvZ3Jh bSwgYWxsIHRoZSBmaWxlcyBhc3NvY2lhdGVkCisrd2l0aCBpdCBhcmUgZGVsZXRlZC4gT3RoZXJ3 aXNlLCBvbmx5IEZJTEUgaXRzZWxmIGlzIGRlbGV0ZWQgdXNpbmcgUk0uIgorKyAgOzsKKysKKytj b21waWxlKQorKyAgJGVjaG8gXAorKyJVc2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIC0tbW9k ZT1jb21waWxlIENPTVBJTEUtQ09NTUFORC4uLiBTT1VSQ0VGSUxFCisrCisrQ29tcGlsZSBhIHNv dXJjZSBmaWxlIGludG8gYSBsaWJ0b29sIGxpYnJhcnkgb2JqZWN0LgorKworK1RoaXMgbW9kZSBh Y2NlcHRzIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBvcHRpb25zOgorKworKyAgLW8gT1VUUFVU LUZJTEUgICAgc2V0IHRoZSBvdXRwdXQgZmlsZSBuYW1lIHRvIE9VVFBVVC1GSUxFCisrICAtcHJl ZmVyLXBpYyAgICAgICB0cnkgdG8gYnVpbGRpbmcgUElDIG9iamVjdHMgb25seQorKyAgLXByZWZl ci1ub24tcGljICAgdHJ5IHRvIGJ1aWxkaW5nIG5vbi1QSUMgb2JqZWN0cyBvbmx5CisrICAtc3Rh dGljICAgICAgICAgICBhbHdheXMgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0 aWMgbGlua2luZworKworK0NPTVBJTEUtQ09NTUFORCBpcyBhIGNvbW1hbmQgdG8gYmUgdXNlZCBp biBjcmVhdGluZyBhIFxgc3RhbmRhcmQnIG9iamVjdCBmaWxlCisrZnJvbSB0aGUgZ2l2ZW4gU09V UkNFRklMRS4KKysKKytUaGUgb3V0cHV0IGZpbGUgbmFtZSBpcyBkZXRlcm1pbmVkIGJ5IHJlbW92 aW5nIHRoZSBkaXJlY3RvcnkgY29tcG9uZW50IGZyb20KKytTT1VSQ0VGSUxFLCB0aGVuIHN1YnN0 aXR1dGluZyB0aGUgQyBzb3VyY2UgY29kZSBzdWZmaXggXGAuYycgd2l0aCB0aGUKKytsaWJyYXJ5 IG9iamVjdCBzdWZmaXgsIFxgLmxvJy4iCisrICA7OworKworK2V4ZWN1dGUpCisrICAkZWNobyBc CisrIlVzYWdlOiAkbW9kZW5hbWUgW09QVElPTl0uLi4gLS1tb2RlPWV4ZWN1dGUgQ09NTUFORCBb QVJHU10uLi4KKysKKytBdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgsIHRoZW4gcnVuIGEg cHJvZ3JhbS4KKysKKytUaGlzIG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwg b3B0aW9uczoKKysKKysgIC1kbG9wZW4gRklMRSAgICAgIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRh aW5pbmcgRklMRSB0byB0aGUgbGlicmFyeSBwYXRoCisrCisrVGhpcyBtb2RlIHNldHMgdGhlIGxp YnJhcnkgcGF0aCBlbnZpcm9ubWVudCB2YXJpYWJsZSBhY2NvcmRpbmcgdG8gXGAtZGxvcGVuJwor K2ZsYWdzLgorKworK0lmIGFueSBvZiB0aGUgQVJHUyBhcmUgbGlidG9vbCBleGVjdXRhYmxlIHdy YXBwZXJzLCB0aGVuIHRoZXkgYXJlIHRyYW5zbGF0ZWQKKytpbnRvIHRoZWlyIGNvcnJlc3BvbmRp bmcgdW5pbnN0YWxsZWQgYmluYXJ5LCBhbmQgYW55IG9mIHRoZWlyIHJlcXVpcmVkIGxpYnJhcnkK KytkaXJlY3RvcmllcyBhcmUgYWRkZWQgdG8gdGhlIGxpYnJhcnkgcGF0aC4KKysKKytUaGVuLCBD T01NQU5EIGlzIGV4ZWN1dGVkLCB3aXRoIEFSR1MgYXMgYXJndW1lbnRzLiIKKysgIDs7CisrCisr ZmluaXNoKQorKyAgJGVjaG8gXAorKyJVc2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIC0tbW9k ZT1maW5pc2ggW0xJQkRJUl0uLi4KKysKKytDb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxp YnRvb2wgbGlicmFyaWVzLgorKworK0VhY2ggTElCRElSIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29u dGFpbnMgbGlidG9vbCBsaWJyYXJpZXMuCisrCisrVGhlIGNvbW1hbmRzIHRoYXQgdGhpcyBtb2Rl IGV4ZWN1dGVzIG1heSByZXF1aXJlIHN1cGVydXNlciBwcml2aWxlZ2VzLiAgVXNlCisrdGhlIFxg LS1kcnktcnVuJyBvcHRpb24gaWYgeW91IGp1c3Qgd2FudCB0byBzZWUgd2hhdCB3b3VsZCBiZSBl eGVjdXRlZC4iCisrICA7OworKworK2luc3RhbGwpCisrICAkZWNobyBcCisrIlVzYWdlOiAkbW9k ZW5hbWUgW09QVElPTl0uLi4gLS1tb2RlPWluc3RhbGwgSU5TVEFMTC1DT01NQU5ELi4uCisrCisr SW5zdGFsbCBleGVjdXRhYmxlcyBvciBsaWJyYXJpZXMuCisrCisrSU5TVEFMTC1DT01NQU5EIGlz IHRoZSBpbnN0YWxsYXRpb24gY29tbWFuZC4gIFRoZSBmaXJzdCBjb21wb25lbnQgc2hvdWxkIGJl CisrZWl0aGVyIHRoZSBcYGluc3RhbGwnIG9yIFxgY3AnIHByb2dyYW0uCisrCisrVGhlIHJlc3Qg b2YgdGhlIGNvbXBvbmVudHMgYXJlIGludGVycHJldGVkIGFzIGFyZ3VtZW50cyB0byB0aGF0IGNv bW1hbmQgKG9ubHkKKytCU0QtY29tcGF0aWJsZSBpbnN0YWxsIG9wdGlvbnMgYXJlIHJlY29nbml6 ZWQpLiIKKysgIDs7CisrCisrbGluaykKKysgICRlY2hvIFwKKysiVXNhZ2U6ICRtb2RlbmFtZSBb T1BUSU9OXS4uLiAtLW1vZGU9bGluayBMSU5LLUNPTU1BTkQuLi4KKysKKytMaW5rIG9iamVjdCBm aWxlcyBvciBsaWJyYXJpZXMgdG9nZXRoZXIgdG8gZm9ybSBhbm90aGVyIGxpYnJhcnksIG9yIHRv CisrY3JlYXRlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbS4KKysKKytMSU5LLUNPTU1BTkQgaXMgYSBj b21tYW5kIHVzaW5nIHRoZSBDIGNvbXBpbGVyIHRoYXQgeW91IHdvdWxkIHVzZSB0byBjcmVhdGUK KythIHByb2dyYW0gZnJvbSBzZXZlcmFsIG9iamVjdCBmaWxlcy4KKysKKytUaGUgZm9sbG93aW5n IGNvbXBvbmVudHMgb2YgTElOSy1DT01NQU5EIGFyZSB0cmVhdGVkIHNwZWNpYWxseToKKysKKysg IC1hbGwtc3RhdGljICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIGF0IGFsbAor KyAgLWF2b2lkLXZlcnNpb24gICAgZG8gbm90IGFkZCBhIHZlcnNpb24gc3VmZml4IGlmIHBvc3Np YmxlCisrICAtZGxvcGVuIEZJTEUgICAgICBcYC1kbHByZW9wZW4nIEZJTEUgaWYgaXQgY2Fubm90 IGJlIGRsb3BlbmVkIGF0IHJ1bnRpbWUKKysgIC1kbHByZW9wZW4gRklMRSAgIGxpbmsgaW4gRklM RSBhbmQgYWRkIGl0cyBzeW1ib2xzIHRvIGx0X3ByZWxvYWRlZF9zeW1ib2xzCisrICAtZXhwb3J0 LWR5bmFtaWMgICBhbGxvdyBzeW1ib2xzIGZyb20gT1VUUFVULUZJTEUgdG8gYmUgcmVzb2x2ZWQg d2l0aCBkbHN5bSgzKQorKyAgLWV4cG9ydC1zeW1ib2xzIFNZTUZJTEUKKysgICAgICAgICAgICAg ICAgICAgIHRyeSB0byBleHBvcnQgb25seSB0aGUgc3ltYm9scyBsaXN0ZWQgaW4gU1lNRklMRQor KyAgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4IFJFR0VYCisrICAgICAgICAgICAgICAgICAgICB0cnkg dG8gZXhwb3J0IG9ubHkgdGhlIHN5bWJvbHMgbWF0Y2hpbmcgUkVHRVgKKysgIC1MTElCRElSICAg ICAgICAgIHNlYXJjaCBMSUJESVIgZm9yIHJlcXVpcmVkIGluc3RhbGxlZCBsaWJyYXJpZXMKKysg IC1sTkFNRSAgICAgICAgICAgIE9VVFBVVC1GSUxFIHJlcXVpcmVzIHRoZSBpbnN0YWxsZWQgbGli cmFyeSBsaWJOQU1FCisrICAtbW9kdWxlICAgICAgICAgICBidWlsZCBhIGxpYnJhcnkgdGhhdCBj YW4gZGxvcGVuZWQKKysgIC1uby1mYXN0LWluc3RhbGwgIGRpc2FibGUgdGhlIGZhc3QtaW5zdGFs bCBtb2RlCisrICAtbm8taW5zdGFsbCAgICAgICBsaW5rIGEgbm90LWluc3RhbGxhYmxlIGV4ZWN1 dGFibGUKKysgIC1uby11bmRlZmluZWQgICAgIGRlY2xhcmUgdGhhdCBhIGxpYnJhcnkgZG9lcyBu b3QgcmVmZXIgdG8gZXh0ZXJuYWwgc3ltYm9scworKyAgLW8gT1VUUFVULUZJTEUgICAgY3JlYXRl IE9VVFBVVC1GSUxFIGZyb20gdGhlIHNwZWNpZmllZCBvYmplY3RzCisrICAtb2JqZWN0bGlzdCBG SUxFICBVc2UgYSBsaXN0IG9mIG9iamVjdCBmaWxlcyBmb3VuZCBpbiBGSUxFIHRvIHNwZWNpZnkg b2JqZWN0cworKyAgLXByZWNpb3VzLWZpbGVzLXJlZ2V4IFJFR0VYCisrICAgICAgICAgICAgICAg ICAgICBkb24ndCByZW1vdmUgb3V0cHV0IGZpbGVzIG1hdGNoaW5nIFJFR0VYCisrICAtcmVsZWFz ZSBSRUxFQVNFICBzcGVjaWZ5IHBhY2thZ2UgcmVsZWFzZSBpbmZvcm1hdGlvbgorKyAgLXJwYXRo IExJQkRJUiAgICAgdGhlIGNyZWF0ZWQgbGlicmFyeSB3aWxsIGV2ZW50dWFsbHkgYmUgaW5zdGFs bGVkIGluIExJQkRJUgorKyAgLVJbIF1MSUJESVIgICAgICAgYWRkIExJQkRJUiB0byB0aGUgcnVu dGltZSBwYXRoIG9mIHByb2dyYW1zIGFuZCBsaWJyYXJpZXMKKysgIC1zdGF0aWMgICAgICAgICAg IGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIG9mIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGli cmFyaWVzCisrICAtc3RhdGljLWxpYnRvb2wtbGlicworKyAgICAgICAgICAgICAgICAgICAgZG8g bm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgb2YgbGlidG9vbCBsaWJyYXJpZXMKKysgIC12ZXJz aW9uLWluZm8gQ1VSUkVOVFs6UkVWSVNJT05bOkFHRV1dCisrICAgICAgICAgICAgICAgICAgICBz cGVjaWZ5IGxpYnJhcnkgdmVyc2lvbiBpbmZvIFtlYWNoIHZhcmlhYmxlIGRlZmF1bHRzIHRvIDBd CisrCisrQWxsIG90aGVyIG9wdGlvbnMgKGFyZ3VtZW50cyBiZWdpbm5pbmcgd2l0aCBcYC0nKSBh cmUgaWdub3JlZC4KKysKKytFdmVyeSBvdGhlciBhcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgZmls ZW5hbWUuICBGaWxlcyBlbmRpbmcgaW4gXGAubGEnIGFyZQorK3RyZWF0ZWQgYXMgdW5pbnN0YWxs ZWQgbGlidG9vbCBsaWJyYXJpZXMsIG90aGVyIGZpbGVzIGFyZSBzdGFuZGFyZCBvciBsaWJyYXJ5 Cisrb2JqZWN0IGZpbGVzLgorKworK0lmIHRoZSBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxhJywg dGhlbiBhIGxpYnRvb2wgbGlicmFyeSBpcyBjcmVhdGVkLAorK29ubHkgbGlicmFyeSBvYmplY3Rz IChcYC5sbycgZmlsZXMpIG1heSBiZSBzcGVjaWZpZWQsIGFuZCBcYC1ycGF0aCcgaXMKKytyZXF1 aXJlZCwgZXhjZXB0IHdoZW4gY3JlYXRpbmcgYSBjb252ZW5pZW5jZSBsaWJyYXJ5LgorKworK0lm IE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAuYScgb3IgXGAubGliJywgdGhlbiBhIHN0YW5kYXJkIGxp YnJhcnkgaXMgY3JlYXRlZAorK3VzaW5nIFxgYXInIGFuZCBcYHJhbmxpYicsIG9yIG9uIFdpbmRv d3MgdXNpbmcgXGBsaWInLgorKworK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAubG8nIG9yIFxg LiR7b2JqZXh0fScsIHRoZW4gYSByZWxvYWRhYmxlIG9iamVjdCBmaWxlCisraXMgY3JlYXRlZCwg b3RoZXJ3aXNlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbSBpcyBjcmVhdGVkLiIKKysgIDs7CisrCisr dW5pbnN0YWxsKQorKyAgJGVjaG8gXAorKyJVc2FnZTogJG1vZGVuYW1lIFtPUFRJT05dLi4uIC0t bW9kZT11bmluc3RhbGwgUk0gW1JNLU9QVElPTl0uLi4gRklMRS4uLgorKworK1JlbW92ZSBsaWJy YXJpZXMgZnJvbSBhbiBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LgorKworK1JNIGlzIHRoZSBuYW1l IG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGVh Y2ggRklMRQorKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25z IChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKKyt0byBSTS4KKysKKytJZiBGSUxFIGlzIGEg bGlidG9vbCBsaWJyYXJ5LCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBpdCBhcmUgZGVs ZXRlZC4KKytPdGhlcndpc2UsIG9ubHkgRklMRSBpdHNlbGYgaXMgZGVsZXRlZCB1c2luZyBSTS4i CisrICA7OworKworKyopCisrICAkZWNobyAiJG1vZGVuYW1lOiBpbnZhbGlkIG9wZXJhdGlvbiBt b2RlIFxgJG1vZGUnIiAxPiYyCisrICAkZWNobyAiJGhlbHAiIDE+JjIKKysgIGV4aXQgJEVYSVRf RkFJTFVSRQorKyAgOzsKKytlc2FjCisrCisrJGVjaG8KKyskZWNobyAiVHJ5IFxgJG1vZGVuYW1l IC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgbW9kZXMuIgorKworK2V4 aXQgJD8KKysKKysjIFRoZSBUQUdzIGJlbG93IGFyZSBkZWZpbmVkIHN1Y2ggdGhhdCB3ZSBuZXZl ciBnZXQgaW50byBhIHNpdHVhdGlvbgorKyMgaW4gd2hpY2ggd2UgZGlzYWJsZSBib3RoIGtpbmRz IG9mIGxpYnJhcmllcy4gIEdpdmVuIGNvbmZsaWN0aW5nCisrIyBjaG9pY2VzLCB3ZSBnbyBmb3Ig YSBzdGF0aWMgbGlicmFyeSwgdGhhdCBpcyB0aGUgbW9zdCBwb3J0YWJsZSwKKysjIHNpbmNlIHdl IGNhbid0IHRlbGwgd2hldGhlciBzaGFyZWQgbGlicmFyaWVzIHdlcmUgZGlzYWJsZWQgYmVjYXVz ZQorKyMgdGhlIHVzZXIgYXNrZWQgZm9yIHRoYXQgb3IgYmVjYXVzZSB0aGUgcGxhdGZvcm0gZG9l c24ndCBzdXBwb3J0CisrIyB0aGVtLiAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IG9u IEFJWCwgYmVjYXVzZSB3ZSBkb24ndAorKyMgc3VwcG9ydCBoYXZpbmcgYm90aCBzdGF0aWMgYW5k IHNoYXJlZCBsaWJyYXJpZXMgZW5hYmxlZCBhdCB0aGUgc2FtZQorKyMgdGltZSBvbiB0aGF0IHBs YXRmb3JtLCBzbyB3ZSBkZWZhdWx0IHRvIGEgc2hhcmVkLW9ubHkgY29uZmlndXJhdGlvbi4KKysj IElmIGEgZGlzYWJsZS1zaGFyZWQgdGFnIGlzIGdpdmVuLCB3ZSdsbCBmYWxsYmFjayB0byBhIHN0 YXRpYy1vbmx5CisrIyBjb25maWd1cmF0aW9uLiAgQnV0IHdlJ2xsIG5ldmVyIGdvIGZyb20gc3Rh dGljLW9ubHkgdG8gc2hhcmVkLW9ubHkuCisrCisrIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09O RklHOiBkaXNhYmxlLXNoYXJlZAorK2Rpc2FibGVfbGlicz1zaGFyZWQKKysjICMjIyBFTkQgTElC VE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNoYXJlZAorKworKyMgIyMjIEJFR0lOIExJQlRPT0wg VEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKKytkaXNhYmxlX2xpYnM9c3RhdGljCisrIyAjIyMg RU5EIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKKysKKysjIExvY2FsIFZhcmlh YmxlczoKKysjIG1vZGU6c2hlbGwtc2NyaXB0CisrIyBzaC1pbmRlbnRhdGlvbjoyCisrIyBFbmQ6 CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL21pc3Npbmcgc29jaS0zLjAuMF90 cmVwMzAwL2NvbmZpZy9taXNzaW5nCistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL21pc3Np bmcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvY29uZmlnL21pc3NpbmcJMjAwOS0wNS0wMyAwMDoyMDozOS4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsMzY3IEBACisrIyEgL2Jpbi9zaAorKyMgQ29tbW9uIHN0dWIgZm9yIGEgZmV3 IG1pc3NpbmcgR05VIHByb2dyYW1zIHdoaWxlIGluc3RhbGxpbmcuCisrCisrc2NyaXB0dmVyc2lv bj0yMDA2LTA1LTEwLjIzCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTksIDIw MDAsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYKKysjICAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrIyBPcmlnaW5hbGx5IGJ5IEZyYW4sY29pcyBQaW5hcmQgPHBpbmFyZEBp cm8udW1vbnRyZWFsLmNhPiwgMTk5Ni4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3Ig KGF0IHlvdXIgb3B0aW9uKQorKyMgYW55IGxhdGVyIHZlcnNpb24uCisrCisrIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorKworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBu b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCisrIyAwMjExMC0xMzAxLCBV U0EuCisrCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEg cHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRl ZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2FtZSBkaXN0 cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0u CisrCisraWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorKyAgZWNobyAxPiYyICJUcnkgXGAkMCAtLWhl bHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgorKyAgZXhpdCAxCisrZmkKKysKKytydW49OgorK3Nl ZF9vdXRwdXQ9J3MvLiogLS1vdXRwdXRbID1dXChbXiBdKlwpLiovXDEvcCcKKytzZWRfbWludXNv PSdzLy4qIC1vIFwoW14gXSpcKS4qL1wxL3AnCisrCisrIyBJbiB0aGUgY2FzZXMgd2hlcmUgdGhp cyBtYXR0ZXJzLCBgbWlzc2luZycgaXMgYmVpbmcgcnVuIGluIHRoZQorKyMgc3JjZGlyIGFscmVh ZHkuCisraWYgdGVzdCAtZiBjb25maWd1cmUuYWM7IHRoZW4KKysgIGNvbmZpZ3VyZV9hYz1jb25m aWd1cmUuYWMKKytlbHNlCisrICBjb25maWd1cmVfYWM9Y29uZmlndXJlLmluCisrZmkKKysKKytt c2c9Im1pc3Npbmcgb24geW91ciBzeXN0ZW0iCisrCisrY2FzZSAkMSBpbgorKy0tcnVuKQorKyAg IyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBwcm9ncmFtLCBhbmQganVzdCBleGl0IGlmIGl0IHN1Y2Nl ZWRzLgorKyAgcnVuPQorKyAgc2hpZnQKKysgICIkQCIgJiYgZXhpdCAwCisrICAjIEV4aXQgY29k ZSA2MyBtZWFucyB2ZXJzaW9uIG1pc21hdGNoLiAgVGhpcyBvZnRlbiBoYXBwZW5zCisrICAjIHdo ZW4gdGhlIHVzZXIgdHJ5IHRvIHVzZSBhbiBhbmNpZW50IHZlcnNpb24gb2YgYSB0b29sIG9uCisr ICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVzIGEgbWluaW11bSB2ZXJzaW9uLiAgSW4gdGhpcyBjYXNl IHdlCisrICAjIHdlIHNob3VsZCBwcm9jZWVkIGhhcyBpZiB0aGUgcHJvZ3JhbSBoYWQgYmVlbiBh YnNlbnQsIG9yCisrICAjIGlmIC0tcnVuIGhhZG4ndCBiZWVuIHBhc3NlZC4KKysgIGlmIHRlc3Qg JD8gPSA2MzsgdGhlbgorKyAgICBydW49OgorKyAgICBtc2c9InByb2JhYmx5IHRvbyBvbGQiCisr ICBmaQorKyAgOzsKKysKKysgIC1ofC0taHwtLWhlfC0taGVsfC0taGVscCkKKysgICAgZWNobyAi XAorKyQwIFtPUFRJT05dLi4uIFBST0dSQU0gW0FSR1VNRU5UXS4uLgorKworK0hhbmRsZSBcYFBS T0dSQU0gW0FSR1VNRU5UXS4uLicgZm9yIHdoZW4gUFJPR1JBTSBpcyBtaXNzaW5nLCBvciByZXR1 cm4gYW4KKytlcnJvciBzdGF0dXMgaWYgdGhlcmUgaXMgbm8ga25vd24gaGFuZGxpbmcgZm9yIFBS T0dSQU0uCisrCisrT3B0aW9uczoKKysgIC1oLCAtLWhlbHAgICAgICBkaXNwbGF5IHRoaXMgaGVs cCBhbmQgZXhpdAorKyAgLXYsIC0tdmVyc2lvbiAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0aW9u IGFuZCBleGl0CisrICAtLXJ1biAgICAgICAgICAgdHJ5IHRvIHJ1biB0aGUgZ2l2ZW4gY29tbWFu ZCwgYW5kIGVtdWxhdGUgaXQgaWYgaXQgZmFpbHMKKysKKytTdXBwb3J0ZWQgUFJPR1JBTSB2YWx1 ZXM6CisrICBhY2xvY2FsICAgICAgdG91Y2ggZmlsZSBcYGFjbG9jYWwubTQnCisrICBhdXRvY29u ZiAgICAgdG91Y2ggZmlsZSBcYGNvbmZpZ3VyZScKKysgIGF1dG9oZWFkZXIgICB0b3VjaCBmaWxl IFxgY29uZmlnLmguaW4nCisrICBhdXRvbTR0ZSAgICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlLCBv ciBjcmVhdGUgYSBzdHViIG9uZQorKyAgYXV0b21ha2UgICAgIHRvdWNoIGFsbCBcYE1ha2VmaWxl LmluJyBmaWxlcworKyAgYmlzb24gICAgICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3Nz aWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQorKyAgZmxleCAgICAgICAgIGNyZWF0ZSBcYGxleC55 eS5jJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLmMKKysgIGhlbHAybWFuICAgICB0b3Vj aCB0aGUgb3V0cHV0IGZpbGUKKysgIGxleCAgICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycsIGlm IHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCisrICBtYWtlaW5mbyAgICAgdG91Y2ggdGhlIG91 dHB1dCBmaWxlCisrICB0YXIgICAgICAgICAgdHJ5IHRhciwgZ251dGFyLCBndGFyLCB0aGVuIHRh ciB3aXRob3V0IG5vbi1wb3J0YWJsZSBmbGFncworKyAgeWFjYyAgICAgICAgIGNyZWF0ZSBcYHku dGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQorKworK1NlbmQgYnVn IHJlcG9ydHMgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4iCisrICAgIGV4aXQgJD8KKysgICAg OzsKKysKKysgIC12fC0tdnwtLXZlfC0tdmVyfC0tdmVyc3wtLXZlcnNpfC0tdmVyc2lvfC0tdmVy c2lvbikKKysgICAgZWNobyAibWlzc2luZyAkc2NyaXB0dmVyc2lvbiAoR05VIEF1dG9tYWtlKSIK KysgICAgZXhpdCAkPworKyAgICA7OworKworKyAgLSopCisrICAgIGVjaG8gMT4mMiAiJDA6IFVu a25vd24gXGAkMScgb3B0aW9uIgorKyAgICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcgZm9y IG1vcmUgaW5mb3JtYXRpb24iCisrICAgIGV4aXQgMQorKyAgICA7OworKworK2VzYWMKKysKKysj IE5vdyBleGl0IGlmIHdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuICBBbHNvIGV4aXQgbm93IGlm IHdlCisrIyBkb24ndCBoYXZlIGl0IGFuZCAtLXZlcnNpb24gd2FzIHBhc3NlZCAobW9zdCBsaWtl bHkgdG8gZGV0ZWN0CisrIyB0aGUgcHJvZ3JhbSkuCisrY2FzZSAkMSBpbgorKyAgbGV4fHlhY2Mp CisrICAgICMgTm90IEdOVSBwcm9ncmFtcywgdGhleSBkb24ndCBoYXZlIC0tdmVyc2lvbi4KKysg ICAgOzsKKysKKysgIHRhcikKKysgICAgaWYgdGVzdCAtbiAiJHJ1biI7IHRoZW4KKysgICAgICAg ZWNobyAxPiYyICJFUlJPUjogXGB0YXInIHJlcXVpcmVzIC0tcnVuIgorKyAgICAgICBleGl0IDEK KysgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngtLXZlcnNpb24iIHx8IHRlc3QgIngkMiIgPSAieC0t aGVscCI7IHRoZW4KKysgICAgICAgZXhpdCAxCisrICAgIGZpCisrICAgIDs7CisrCisrICAqKQor KyAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9uKSA+IC9kZXYvbnVsbCAyPiYx OyB0aGVuCisrICAgICAgICMgV2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4KKysgICAgICAgZXhp dCAxCisrICAgIGVsaWYgdGVzdCAieCQyIiA9ICJ4LS12ZXJzaW9uIiB8fCB0ZXN0ICJ4JDIiID0g IngtLWhlbHAiOyB0aGVuCisrICAgICAgICMgQ291bGQgbm90IHJ1biAtLXZlcnNpb24gb3IgLS1o ZWxwLiAgVGhpcyBpcyBwcm9iYWJseSBzb21lb25lCisrICAgICAgICMgcnVubmluZyBgJFRPT0wg LS12ZXJzaW9uJyBvciBgJFRPT0wgLS1oZWxwJyB0byBjaGVjayB3aGV0aGVyCisrICAgICAgICMg JFRPT0wgZXhpc3RzIGFuZCBub3Qga25vd2luZyAkVE9PTCB1c2VzIG1pc3NpbmcuCisrICAgICAg IGV4aXQgMQorKyAgICBmaQorKyAgICA7OworK2VzYWMKKysKKysjIElmIGl0IGRvZXMgbm90IGV4 aXN0LCBvciBmYWlscyB0byBydW4gKHBvc3NpYmx5IGFuIG91dGRhdGVkIHZlcnNpb24pLAorKyMg dHJ5IHRvIGVtdWxhdGUgaXQuCisrY2FzZSAkMSBpbgorKyAgYWNsb2NhbCopCisrICAgIGVjaG8g MT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBp dCBpZgorKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFjaW5jbHVkZS5tNCcgb3IgXGAke2NvbmZp Z3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKKysgICAgICAgICB0byBpbnN0YWxsIHRoZSBcYEF1 dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9tCisrICAgICAgICAg YW55IEdOVSBhcmNoaXZlIHNpdGUuIgorKyAgICB0b3VjaCBhY2xvY2FsLm00CisrICAgIDs7Cisr CisrICBhdXRvY29uZikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogXGAkMScgaXMgJG1z Zy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisrICAgICAgICAgeW91IG1vZGlmaWVkIFxg JHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlCisrICAgICAg ICAgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9tIGFu eSBHTlUKKysgICAgICAgICBhcmNoaXZlIHNpdGUuIgorKyAgICB0b3VjaCBjb25maWd1cmUKKysg ICAgOzsKKysKKysgIGF1dG9oZWFkZXIpCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxg JDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBt b2RpZmllZCBcYGFjY29uZmlnLmgnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3 YW50CisrICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBw YWNrYWdlcy4gIEdyYWIgdGhlbQorKyAgICAgICAgIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUu IgorKyAgICBmaWxlcz1gc2VkIC1uICdzL15bIF0qQVtDTV1fQ09ORklHX0hFQURFUihcKFteKV0q XCkpLiovXDEvcCcgJHtjb25maWd1cmVfYWN9YAorKyAgICB0ZXN0IC16ICIkZmlsZXMiICYmIGZp bGVzPSJjb25maWcuaCIKKysgICAgdG91Y2hfZmlsZXM9CisrICAgIGZvciBmIGluICRmaWxlczsg ZG8KKysgICAgICBjYXNlICRmIGluCisrICAgICAgKjoqKSB0b3VjaF9maWxlcz0iJHRvdWNoX2Zp bGVzICJgZWNobyAiJGYiIHwKKysJCQkJICAgICAgIHNlZCAtZSAncy9eW146XSo6Ly8nIC1lICdz LzouKi8vJ2A7OworKyAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYuaW4iOzsK KysgICAgICBlc2FjCisrICAgIGRvbmUKKysgICAgdG91Y2ggJHRvdWNoX2ZpbGVzCisrICAgIDs7 CisrCisrICBhdXRvbWFrZSopCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlz ICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBtb2RpZmll ZCBcYE1ha2VmaWxlLmFtJywgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4K KysgICAgICAgICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQg XGBQZXJsJyBwYWNrYWdlcy4KKysgICAgICAgICBHcmFiIHRoZW0gZnJvbSBhbnkgR05VIGFyY2hp dmUgc2l0ZS4iCisrICAgIGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1ha2VmaWxlLmFtIC1wcmludCB8 CisrCSAgIHNlZCAncy9cLmFtJC8uaW4vJyB8CisrCSAgIHdoaWxlIHJlYWQgZjsgZG8gdG91Y2gg IiRmIjsgZG9uZQorKyAgICA7OworKworKyAgYXV0b200dGUpCisrICAgIGVjaG8gMT4mMiAiXAor K1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYnV0IGlzICRtc2cuCisrICAgICAgICAgWW91IG1p Z2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0IGhhdmluZyB0aGUKKysgICAgICAg ICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4KKysgICAgICAgICBZb3Ug Y2FuIGdldCBcYCQxJyBhcyBwYXJ0IG9mIFxgQXV0b2NvbmYnIGZyb20gYW55IEdOVQorKyAgICAg ICAgIGFyY2hpdmUgc2l0ZS4iCisrCisrICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNl ZF9vdXRwdXQiYAorKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2Vk IC1uICIkc2VkX21pbnVzbyJgCisrICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgorKwl0b3Vj aCAkZmlsZQorKyAgICBlbHNlCisrCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQorKwll Y2hvICIjISAvYmluL3NoIgorKwllY2hvICIjIENyZWF0ZWQgYnkgR05VIEF1dG9tYWtlIG1pc3Np bmcgYXMgYSByZXBsYWNlbWVudCBvZiIKKysJZWNobyAiIyAgJCAkQCIKKysJZWNobyAiZXhpdCAw IgorKwljaG1vZCAreCAkZmlsZQorKwlleGl0IDEKKysgICAgZmkKKysgICAgOzsKKysKKysgIGJp c29ufHlhY2MpCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnICRtc2cuICBZb3Ug c2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnknIGZp bGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UKKysgICAgICAgICBpbiBvcmRl ciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0Cisr ICAgICAgICAgXGBCaXNvbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrICAgIHJtIC1m IHkudGFiLmMgeS50YWIuaAorKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCisrICAgICAgICBl dmFsIExBU1RBUkc9IlwkeyQjfSIKKysJY2FzZSAkTEFTVEFSRyBpbgorKwkqLnkpCisrCSAgICBT UkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MveSQvYy8nYAorKwkgICAgaWYgdGVzdCAt ZiAiJFNSQ0ZJTEUiOyB0aGVuCisrCSAgICAgICAgIGNwICIkU1JDRklMRSIgeS50YWIuYworKwkg ICAgZmkKKysJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9oLydgCisr CSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KKysJICAgICAgICAgY3AgIiRTUkNGSUxF IiB5LnRhYi5oCisrCSAgICBmaQorKwkgIDs7CisrCWVzYWMKKysgICAgZmkKKysgICAgaWYgdGVz dCAhIC1mIHkudGFiLmg7IHRoZW4KKysJZWNobyA+eS50YWIuaAorKyAgICBmaQorKyAgICBpZiB0 ZXN0ICEgLWYgeS50YWIuYzsgdGhlbgorKwllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPnku dGFiLmMKKysgICAgZmkKKysgICAgOzsKKysKKysgIGxleHxmbGV4KQorKyAgICBlY2hvIDE+JjIg IlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYK KysgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC5sJyBmaWxlLiAgWW91IG1heSBuZWVkIHRoZSBc YEZsZXgnIHBhY2thZ2UKKysgICAgICAgICBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9u cyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0CisrICAgICAgICAgXGBGbGV4JyBmcm9tIGFu eSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgcm0gLWYgbGV4Lnl5LmMKKysgICAgaWYgdGVzdCAk IyAtbmUgMTsgdGhlbgorKyAgICAgICAgZXZhbCBMQVNUQVJHPSJcJHskI30iCisrCWNhc2UgJExB U1RBUkcgaW4KKysJKi5sKQorKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdz L2wkL2MvJ2AKKysJICAgIGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgorKwkgICAgICAgICBj cCAiJFNSQ0ZJTEUiIGxleC55eS5jCisrCSAgICBmaQorKwkgIDs7CisrCWVzYWMKKysgICAgZmkK KysgICAgaWYgdGVzdCAhIC1mIGxleC55eS5jOyB0aGVuCisrCWVjaG8gJ21haW4oKSB7IHJldHVy biAwOyB9JyA+bGV4Lnl5LmMKKysgICAgZmkKKysgICAgOzsKKysKKysgIGhlbHAybWFuKQorKyAg ICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5 IG5lZWQgaXQgaWYKKysJIHlvdSBtb2RpZmllZCBhIGRlcGVuZGVuY3kgb2YgYSBtYW51YWwgcGFn ZS4gIFlvdSBtYXkgbmVlZCB0aGUKKysJIFxgSGVscDJtYW4nIHBhY2thZ2UgaW4gb3JkZXIgZm9y IHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZQorKwkgZWZmZWN0LiAgWW91IGNhbiBnZXQgXGBI ZWxwMm1hbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrCisrICAgIGZpbGU9YGVjaG8g IiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAorKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmls ZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCisrICAgIGlmIHRlc3QgLWYgIiRm aWxlIjsgdGhlbgorKwl0b3VjaCAkZmlsZQorKyAgICBlbHNlCisrCXRlc3QgLXogIiRmaWxlIiB8 fCBleGVjID4kZmlsZQorKwllY2hvICIuYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJh dGUgdGhpcyBwYWdlIgorKwlleGl0IDEKKysgICAgZmkKKysgICAgOzsKKysKKysgIG1ha2VpbmZv KQorKyAgICBlY2hvIDE+JjIgIlwKKytXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3Vs ZCBvbmx5IG5lZWQgaXQgaWYKKysgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC50ZXhpJyBvciBc YC50ZXhpbmZvJyBmaWxlLCBvciBhbnkgb3RoZXIgZmlsZQorKyAgICAgICAgIGluZGlyZWN0bHkg YWZmZWN0aW5nIHRoZSBhc3BlY3Qgb2YgdGhlIG1hbnVhbC4gIFRoZSBzcHVyaW91cworKyAgICAg ICAgIGNhbGwgbWlnaHQgYWxzbyBiZSB0aGUgY29uc2VxdWVuY2Ugb2YgdXNpbmcgYSBidWdneSBc YG1ha2UnIChBSVgsCisrICAgICAgICAgRFUsIElSSVgpLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5z dGFsbCB0aGUgXGBUZXhpbmZvJyBwYWNrYWdlIG9yCisrICAgICAgICAgdGhlIFxgR05VIG1ha2Un IHBhY2thZ2UuICBHcmFiIGVpdGhlciBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAg IyBUaGUgZmlsZSB0byB0b3VjaCBpcyB0aGF0IHNwZWNpZmllZCB3aXRoIC1vIC4uLgorKyAgICBm aWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAKKysgICAgdGVzdCAteiAiJGZp bGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9taW51c28iYAorKyAgICBpZiB0 ZXN0IC16ICIkZmlsZSI7IHRoZW4KKysgICAgICAjIC4uLiBvciBpdCBpcyB0aGUgb25lIHNwZWNp ZmllZCB3aXRoIEBzZXRmaWxlbmFtZSAuLi4KKysgICAgICBpbmZpbGU9YGVjaG8gIiQqIiB8IHNl ZCAncy8uKiBcKFteIF0qXCkgKiQvXDEvJ2AKKysgICAgICBmaWxlPWBzZWQgLW4gJworKwkvXkBz ZXRmaWxlbmFtZS97CisrCSAgcy8uKiBcKFteIF0qXCkgKiQvXDEvCisrCSAgcAorKwkgIHEKKysJ fScgJGluZmlsZWAKKysgICAgICAjIC4uLiBvciBpdCBpcyBkZXJpdmVkIGZyb20gdGhlIHNvdXJj ZSBuYW1lIChkaXIvZi50ZXhpIGJlY29tZXMgZi5pbmZvKQorKyAgICAgIHRlc3QgLXogIiRmaWxl IiAmJiBmaWxlPWBlY2hvICIkaW5maWxlIiB8IHNlZCAncywuKi8sLDtzLC5bXi5dKiQsLCdgLmlu Zm8KKysgICAgZmkKKysgICAgIyBJZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdCwgdGhlIHVzZXIg cmVhbGx5IG5lZWRzIG1ha2VpbmZvOworKyAgICAjIGxldCdzIGZhaWwgd2l0aG91dCB0b3VjaGlu ZyBhbnl0aGluZy4KKysgICAgdGVzdCAtZiAkZmlsZSB8fCBleGl0IDEKKysgICAgdG91Y2ggJGZp bGUKKysgICAgOzsKKysKKysgIHRhcikKKysgICAgc2hpZnQKKysKKysgICAgIyBXZSBoYXZlIGFs cmVhZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBhcnQuCisrICAgICMgTG9vayBmb3IgZ251 dGFyL2d0YXIgYmVmb3JlIGludm9jYXRpb24gdG8gYXZvaWQgdWdseSBlcnJvcgorKyAgICAjIG1l c3NhZ2VzLgorKyAgICBpZiAoZ251dGFyIC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYxKTsgdGhl bgorKyAgICAgICBnbnV0YXIgIiRAIiAmJiBleGl0IDAKKysgICAgZmkKKysgICAgaWYgKGd0YXIg LS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCisrICAgICAgIGd0YXIgIiRAIiAmJiBl eGl0IDAKKysgICAgZmkKKysgICAgZmlyc3Rhcmc9IiQxIgorKyAgICBpZiBzaGlmdDsgdGhlbgor KwljYXNlICRmaXJzdGFyZyBpbgorKwkqbyopCisrCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0 YXJnIiB8IHNlZCBzL28vL2AKKysJICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAor KwkgICAgOzsKKysJZXNhYworKwljYXNlICRmaXJzdGFyZyBpbgorKwkqaCopCisrCSAgICBmaXJz dGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gvL2AKKysJICAgIHRhciAiJGZpcnN0YXJn IiAiJEAiICYmIGV4aXQgMAorKwkgICAgOzsKKysJZXNhYworKyAgICBmaQorKworKyAgICBlY2hv IDE+JjIgIlwKKytXQVJOSU5HOiBJIGNhbid0IHNlZW0gdG8gYmUgYWJsZSB0byBydW4gXGB0YXIn IHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4KKysgICAgICAgICBZb3UgbWF5IHdhbnQgdG8gaW5z dGFsbCBHTlUgdGFyIG9yIEZyZWUgcGF4dXRpbHMsIG9yIGNoZWNrIHRoZQorKyAgICAgICAgIGNv bW1hbmQgbGluZSBhcmd1bWVudHMuIgorKyAgICBleGl0IDEKKysgICAgOzsKKysKKysgICopCisr ICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYW5kIGlzICRtc2cu CisrICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0IGhh dmluZyB0aGUKKysgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhl bS4gIENoZWNrIHRoZSBcYFJFQURNRScgZmlsZSwKKysgICAgICAgICBpdCBvZnRlbiB0ZWxscyB5 b3UgYWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBpbnN0YWxsaW5nCisrICAgICAg ICAgdGhpcyBwYWNrYWdlLiAgWW91IG1heSBhbHNvIHBlZWsgYXQgYW55IEdOVSBhcmNoaXZlIHNp dGUsIGluIGNhc2UKKysgICAgICAgICBzb21lIG90aGVyIHBhY2thZ2Ugd291bGQgY29udGFpbiB0 aGlzIG1pc3NpbmcgXGAkMScgcHJvZ3JhbS4iCisrICAgIGV4aXQgMQorKyAgICA7OworK2VzYWMK KysKKytleGl0IDAKKysKKysjIExvY2FsIHZhcmlhYmxlczoKKysjIGV2YWw6IChhZGQtaG9vayAn d3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKysjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3Jp cHR2ZXJzaW9uPSIKKysjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgor KyMgdGltZS1zdGFtcC1lbmQ6ICIkIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZ3VyZSBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJlCistLS0gc29jaS0zLjAu MF80LXBhY2svY29uZmlndXJlCTIwMDktMDUtMDMgMDA6MjQ6MTMuMDAwMDAwMDAwICswMjAwCisr Kysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZQkyMDA5LTA1LTAzIDAwOjIwOjM2LjAwMDAw MDAwMCArMDIwMAorQEAgLTEsNzIgKzEsMjU3MTMgQEAKKy0jIS9iaW4vc2gKKysjISAvYmluL3No CisrIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBjcmVh dGUgTWFrZWZpbGVzLgorKyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzIGZvciBTT0NJ IDMuMC4wLgorKyMKKysjIFJlcG9ydCBidWdzIHRvIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3Jn ZS5uZXQ+LgorKyMKKysjIENvcHlyaWdodCAoQykgMjAwNC0yMDA5IE1hY2llaiBTb2JjemFrIDxt c29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrIworKyMgQ29weXJpZ2h0IChDKSAxOTky LCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAorKyMgMjAw MiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysjIFRoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCisrIyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tICMjCisrIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCisrIyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tICMjCisgCistaWYgWyAkIyAtZ3QgMCBdCistdGhlbgorLSAgICBpZiBbICQxID0g Ii1oZWxwIiAtbyAkMSA9ICItLWhlbHAiIF0KKysjIEJlIG1vcmUgQm91cm5lIGNvbXBhdGlibGUK KytEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCisraWYgdGVzdCAtbiAi JHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVu CisrICBlbXVsYXRlIHNoCisrICBOVUxMQ01EPToKKysgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBa c2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFy eSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICckezEr IiRAIn0nPSciJEAiJworKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytlbHNlCisrICBjYXNlIGAo c2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KKysgICpwb3NpeCopIHNldCAtbyBwb3NpeCA7OworK2Vz YWMKKysKKytmaQorKworKworKworKworKyMgUEFUSCBuZWVkcyBDUgorKyMgQXZvaWQgZGVwZW5k aW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KKythc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xt bm9wcXJzdHV2d3h5eicKKythc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZ WicKKythc19jcl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKKythc19jcl9k aWdpdHM9JzAxMjM0NTY3ODknCisrYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGln aXRzCisrCisrYXNfbmw9JworKycKKytleHBvcnQgYXNfbmwKKysjIFByaW50aW5nIGEgbG9uZyBz dHJpbmcgY3Jhc2hlcyBTb2xhcmlzIDcgL3Vzci9iaW4vcHJpbnRmLgorK2FzX2VjaG89J1xcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFwnCisrYXNfZWNobz0kYXNf ZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCisrYXNfZWNobz0kYXNfZWNobyRh c19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KKytpZiAodGVzdCAiWGBwcmlu dGYgJXMgJGFzX2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhlbgorKyAgYXNf ZWNobz0ncHJpbnRmICVzXG4nCisrICBhc19lY2hvX249J3ByaW50ZiAlcycKKytlbHNlCisrICBp ZiB0ZXN0ICJYYCgvdXNyL3VjYi9lY2hvIC1uIC1uICRhc19lY2hvKSAyPi9kZXYvbnVsbGAiID0g IlgtbiAkYXNfZWNobyI7IHRoZW4KKysgICAgYXNfZWNob19ib2R5PSdldmFsIC91c3IvdWNiL2Vj aG8gLW4gIiQxJGFzX25sIicKKysgICAgYXNfZWNob19uPScvdXNyL3VjYi9lY2hvIC1uJworKyAg ZWxzZQorKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgZXhwciAiWCQxIiA6ICJYXFwoLipcXCkiJwor KyAgICBhc19lY2hvX25fYm9keT0nZXZhbAorKyAgICAgIGFyZz0kMTsKKysgICAgICBjYXNlICRh cmcgaW4KKysgICAgICAqIiRhc19ubCIqKQorKwlleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFz X25sIjsKKysJYXJnPWBleHByICJYJGFyZyIgOiAiLiokYXNfbmxcXCguKlxcKSJgOzsKKysgICAg ICBlc2FjOworKyAgICAgIGV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19u bCIKKysgICAgJworKyAgICBleHBvcnQgYXNfZWNob19uX2JvZHkKKysgICAgYXNfZWNob19uPSdz aCAtYyAkYXNfZWNob19uX2JvZHkgYXNfZWNobycKKysgIGZpCisrICBleHBvcnQgYXNfZWNob19i b2R5CisrICBhc19lY2hvPSdzaCAtYyAkYXNfZWNob19ib2R5IGFzX2VjaG8nCisrZmkKKysKKysj IFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KKytpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3Nl dH0iICE9IHNldDsgdGhlbgorKyAgUEFUSF9TRVBBUkFUT1I9OgorKyAgKFBBVEg9Jy9iaW47L2Jp bic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgJiYgeworKyAgICAoUEFU SD0nL2JpbjovYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSB8fAor KyAgICAgIFBBVEhfU0VQQVJBVE9SPSc7JworKyAgfQorK2ZpCisrCisrIyBTdXBwb3J0IHVuc2V0 IHdoZW4gcG9zc2libGUuCisraWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9k ZXYvbnVsbCAyPiYxOyB0aGVuCisrICBhc191bnNldD11bnNldAorK2Vsc2UKKysgIGFzX3Vuc2V0 PWZhbHNlCisrZmkKKysKKysKKysjIElGUworKyMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcg bGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIuICBRdW90aW5nIGlzCisrIyB0aGVyZSB0byBw cmV2ZW50IGVkaXRvcnMgZnJvbSBjb21wbGFpbmluZyBhYm91dCBzcGFjZS10YWIuCisrIyAoSWYg X0FTX1BBVEhfV0FMSyB3ZXJlIGNhbGxlZCB3aXRoIElGUyB1bnNldCwgaXQgd291bGQgZGlzYWJs ZSB3b3JkCisrIyBzcGxpdHRpbmcgYnkgc2V0dGluZyBJRlMgdG8gZW1wdHkgdmFsdWUuKQorK0lG Uz0iICIiCSRhc19ubCIKKysKKysjIEZpbmQgd2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGgg aWYgd2UgY29udGFpbiBubyBkaXJlY3Rvcnkgc2VwYXJhdG9yLgorK2Nhc2UgJDAgaW4KKysgICpb XFwvXSogKSBhc19teXNlbGY9JDAgOzsKKysgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFU SF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9J RlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICB0ZXN0IC1yICIkYXNfZGly LyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhaworK2RvbmUKKytJRlM9JGFzX3Nh dmVfSUZTCisrCisrICAgICA7OworK2VzYWMKKysjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMs IG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCisrIyBpbiB3aGljaCBj YXNlIHdlIGFyZSBub3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCisraWYgdGVzdCAieCRhc19t eXNlbGYiID0geDsgdGhlbgorKyAgYXNfbXlzZWxmPSQwCisrZmkKKytpZiB0ZXN0ICEgLWYgIiRh c19teXNlbGYiOyB0aGVuCisrICAkYXNfZWNobyAiJGFzX215c2VsZjogZXJyb3I6IGNhbm5vdCBm aW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBmaWxlIG5hbWUiID4mMgorKyAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9CisrZmkKKysKKysjIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMu MCBVV0lOIGtzaC4KKytmb3IgYXNfdmFyIGluIEVOViBNQUlMIE1BSUxQQVRICisrZG8gKCRhc191 bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vuc2V0ICRhc192YXIKKytkb25l CisrUFMxPSckICcKKytQUzI9Jz4gJworK1BTND0nKyAnCisrCisrIyBOTFMgbnVpc2FuY2VzLgor K0xDX0FMTD1DCisrZXhwb3J0IExDX0FMTAorK0xBTkdVQUdFPUMKKytleHBvcnQgTEFOR1VBR0UK KysKKysjIFJlcXVpcmVkIHRvIHVzZSBiYXNlbmFtZS4KKytpZiBleHByIGEgOiAnXChhXCknID4v ZGV2L251bGwgMj4mMSAmJgorKyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4uXCknYCIg PSBYMDAxOyB0aGVuCisrICBhc19leHByPWV4cHIKKytlbHNlCisrICBhc19leHByPWZhbHNlCisr ZmkKKysKKytpZiAoYmFzZW5hbWUgLS0gLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFz ZW5hbWUgLS0gLyAyPiYxYCIgPSAiWC8iOyB0aGVuCisrICBhc19iYXNlbmFtZT1iYXNlbmFtZQor K2Vsc2UKKysgIGFzX2Jhc2VuYW1lPWZhbHNlCisrZmkKKysKKysKKysjIE5hbWUgb2YgdGhlIGV4 ZWN1dGFibGUuCisrYXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAiIHx8CisrJGFzX2V4cHIgWC8i JDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKKysJIFgiJDAiIDogJ1hcKC8vXCkkJyBc fCBcCisrCSBYIiQwIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBY LyIkMCIgfAorKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICAvXlhcL1woXC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJ ICAgIHEKKysJICB9CisrCSAgL15YXC9cKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEK KysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrCisrIyBDRFBBVEguCisrJGFzX3Vuc2V0IENEUEFU SAorKworKworK2lmIHRlc3QgIngkQ09ORklHX1NIRUxMIiA9IHg7IHRoZW4KKysgIGlmIChldmFs ICI6IikgMj4vZGV2L251bGw7IHRoZW4KKysgIGFzX2hhdmVfcmVxdWlyZWQ9eWVzCisrZWxzZQor KyAgYXNfaGF2ZV9yZXF1aXJlZD1ubworK2ZpCisrCisrICBpZiB0ZXN0ICRhc19oYXZlX3JlcXVp cmVkID0geWVzICYmCSAoZXZhbCAiOgorKyhhc19mdW5jX3JldHVybiAoKSB7CisrICAoZXhpdCBc JDEpCisrfQorK2FzX2Z1bmNfc3VjY2VzcyAoKSB7CisrICBhc19mdW5jX3JldHVybiAwCisrfQor K2FzX2Z1bmNfZmFpbHVyZSAoKSB7CisrICBhc19mdW5jX3JldHVybiAxCisrfQorK2FzX2Z1bmNf cmV0X3N1Y2Nlc3MgKCkgeworKyAgcmV0dXJuIDAKKyt9CisrYXNfZnVuY19yZXRfZmFpbHVyZSAo KSB7CisrICByZXR1cm4gMQorK30KKysKKytleGl0Y29kZT0wCisraWYgYXNfZnVuY19zdWNjZXNz OyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX3N1Y2Nl c3MgZmFpbGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19mYWlsdXJlOyB0aGVuCisrICBleGl0Y29k ZT0xCisrICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQuCisrZmkKKysKKytpZiBhc19m dW5jX3JldF9zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAgZWNo byBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KKytmaQorKworK2lmIGFzX2Z1bmNfcmV0X2Zh aWx1cmU7IHRoZW4KKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19yZXRfZmFpbHVyZSBz dWNjZWVkZWQuCisrZmkKKysKKytpZiAoIHNldCB4OyBhc19mdW5jX3JldF9zdWNjZXNzIHkgJiYg dGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAg ZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2ZWQuCisrZmkKKysKKyt0ZXN0 IFwkZXhpdGNvZGUgPSAwKSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KKysKKysoCisrICBhc19s aW5lbm9fMT1cJExJTkVOTworKyAgYXNfbGluZW5vXzI9XCRMSU5FTk8KKysgIHRlc3QgXCJ4XCRh c19saW5lbm9fMVwiICE9IFwieFwkYXNfbGluZW5vXzJcIiAmJgorKyAgdGVzdCBcInhcYGV4cHIg XCRhc19saW5lbm9fMSArIDFcYFwiID0gXCJ4XCRhc19saW5lbm9fMlwiKSB8fCB7IChleGl0IDEp OyBleGl0IDE7IH0KKysiKSAyPiAvZGV2L251bGw7IHRoZW4KKysgIDoKKytlbHNlCisrICBhc19j YW5kaWRhdGVfc2hlbGxzPQorKyAgICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBB UkFUT1IkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgY2FzZSAkYXNfZGlyIGluCisrCSAvKikKKysJICAgZm9yIGFzX2Jh c2UgaW4gc2ggYmFzaCBrc2ggc2g1OyBkbworKwkgICAgIGFzX2NhbmRpZGF0ZV9zaGVsbHM9IiRh c19jYW5kaWRhdGVfc2hlbGxzICRhc19kaXIvJGFzX2Jhc2UiCisrCSAgIGRvbmU7OworKyAgICAg ICBlc2FjCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysKKysgICAgICBmb3IgYXNfc2hl bGwgaW4gJGFzX2NhbmRpZGF0ZV9zaGVsbHMgJFNIRUxMOyBkbworKwkgIyBUcnkgb25seSBzaGVs bHMgdGhhdCBleGlzdCwgdG8gc2F2ZSBzZXZlcmFsIGZvcmtzLgorKwkgaWYgeyB0ZXN0IC1mICIk YXNfc2hlbGwiIHx8IHRlc3QgLWYgIiRhc19zaGVsbC5leGUiOyB9ICYmCisrCQl7ICgiJGFzX3No ZWxsIikgMj4gL2Rldi9udWxsIDw8XF9BU0VPRgorK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04r c2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgZW11bGF0ZSBz aAorKyAgTlVMTENNRD06CisrICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3Bs aXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdl LiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicK KysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2 L251bGxgIGluCisrICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsKKytlc2FjCisrCisrZmkKKysK KysKKys6CisrX0FTRU9GCisrfTsgdGhlbgorKyAgQ09ORklHX1NIRUxMPSRhc19zaGVsbAorKwkg ICAgICAgYXNfaGF2ZV9yZXF1aXJlZD15ZXMKKysJICAgICAgIGlmIHsgIiRhc19zaGVsbCIgMj4g L2Rldi9udWxsIDw8XF9BU0VPRgorK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYg KGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgZW11bGF0ZSBzaAorKyAgTlVM TENNRD06CisrICAjIFByZS00LjIgdmVyc2lvbnMgb2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9u ICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJs ZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKKysgIHNldG9w dCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGlu CisrICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsKKytlc2FjCisrCisrZmkKKysKKysKKys6Cisr KGFzX2Z1bmNfcmV0dXJuICgpIHsKKysgIChleGl0ICQxKQorK30KKythc19mdW5jX3N1Y2Nlc3Mg KCkgeworKyAgYXNfZnVuY19yZXR1cm4gMAorK30KKythc19mdW5jX2ZhaWx1cmUgKCkgeworKyAg YXNfZnVuY19yZXR1cm4gMQorK30KKythc19mdW5jX3JldF9zdWNjZXNzICgpIHsKKysgIHJldHVy biAwCisrfQorK2FzX2Z1bmNfcmV0X2ZhaWx1cmUgKCkgeworKyAgcmV0dXJuIDEKKyt9CisrCisr ZXhpdGNvZGU9MAorK2lmIGFzX2Z1bmNfc3VjY2VzczsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4 aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19zdWNjZXNzIGZhaWxlZC4KKytmaQorKworK2lmIGFz X2Z1bmNfZmFpbHVyZTsgdGhlbgorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX2ZhaWx1 cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19yZXRfc3VjY2VzczsgdGhlbgorKyAg OgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19yZXRfc3VjY2VzcyBmYWls ZWQuCisrZmkKKysKKytpZiBhc19mdW5jX3JldF9mYWlsdXJlOyB0aGVuCisrICBleGl0Y29kZT0x CisrICBlY2hvIGFzX2Z1bmNfcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYgKCBz ZXQgeDsgYXNfZnVuY19yZXRfc3VjY2VzcyB5ICYmIHRlc3QgeCA9ICIkMSIgKTsgdGhlbgorKyAg OgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gcG9zaXRpb25hbCBwYXJhbWV0ZXJzIHdl cmUgbm90IHNhdmVkLgorK2ZpCisrCisrdGVzdCAkZXhpdGNvZGUgPSAwKSB8fCB7IChleGl0IDEp OyBleGl0IDE7IH0KKysKKysoCisrICBhc19saW5lbm9fMT0kTElORU5PCisrICBhc19saW5lbm9f Mj0kTElORU5PCisrICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYK KysgIHRlc3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIpIHx8 IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorKworK19BU0VPRgorK307IHRoZW4KKysgIGJyZWFrCisr ZmkKKysKKytmaQorKworKyAgICAgIGRvbmUKKysKKysgICAgICBpZiB0ZXN0ICJ4JENPTkZJR19T SEVMTCIgIT0geDsgdGhlbgorKyAgZm9yIGFzX3ZhciBpbiBCQVNIX0VOViBFTlYKKysJZG8gKCRh c191bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEgJiYgJGFzX3Vuc2V0ICRhc192YXIKKysJ ZG9uZQorKwlleHBvcnQgQ09ORklHX1NIRUxMCisrCWV4ZWMgIiRDT05GSUdfU0hFTEwiICIkYXNf bXlzZWxmIiAkezErIiRAIn0KKytmaQorKworKworKyAgICBpZiB0ZXN0ICRhc19oYXZlX3JlcXVp cmVkID0gbm87IHRoZW4KKysgIGVjaG8gVGhpcyBzY3JpcHQgcmVxdWlyZXMgYSBzaGVsbCBtb3Jl IG1vZGVybiB0aGFuIGFsbCB0aGUKKysgICAgICBlY2hvIHNoZWxscyB0aGF0IEkgZm91bmQgb24g eW91ciBzeXN0ZW0uICBQbGVhc2UgaW5zdGFsbCBhCisrICAgICAgZWNobyBtb2Rlcm4gc2hlbGws IG9yIG1hbnVhbGx5IHJ1biB0aGUgc2NyaXB0IHVuZGVyIHN1Y2ggYQorKyAgICAgIGVjaG8gc2hl bGwgaWYgeW91IGRvIGhhdmUgb25lLgorKyAgICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorK2Zp CisrCisrCisrZmkKKysKKytmaQorKworKworKworKyhldmFsICJhc19mdW5jX3JldHVybiAoKSB7 CisrICAoZXhpdCBcJDEpCisrfQorK2FzX2Z1bmNfc3VjY2VzcyAoKSB7CisrICBhc19mdW5jX3Jl dHVybiAwCisrfQorK2FzX2Z1bmNfZmFpbHVyZSAoKSB7CisrICBhc19mdW5jX3JldHVybiAxCisr fQorK2FzX2Z1bmNfcmV0X3N1Y2Nlc3MgKCkgeworKyAgcmV0dXJuIDAKKyt9CisrYXNfZnVuY19y ZXRfZmFpbHVyZSAoKSB7CisrICByZXR1cm4gMQorK30KKysKKytleGl0Y29kZT0wCisraWYgYXNf ZnVuY19zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBh c19mdW5jX3N1Y2Nlc3MgZmFpbGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19mYWlsdXJlOyB0aGVu CisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQuCisrZmkK KysKKytpZiBhc19mdW5jX3JldF9zdWNjZXNzOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhpdGNv ZGU9MQorKyAgZWNobyBhc19mdW5jX3JldF9zdWNjZXNzIGZhaWxlZC4KKytmaQorKworK2lmIGFz X2Z1bmNfcmV0X2ZhaWx1cmU7IHRoZW4KKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19y ZXRfZmFpbHVyZSBzdWNjZWVkZWQuCisrZmkKKysKKytpZiAoIHNldCB4OyBhc19mdW5jX3JldF9z dWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuCisrICA6CisrZWxzZQorKyAgZXhp dGNvZGU9MQorKyAgZWNobyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2ZWQuCisr ZmkKKysKKyt0ZXN0IFwkZXhpdGNvZGUgPSAwIikgfHwgeworKyAgZWNobyBObyBzaGVsbCBmb3Vu ZCB0aGF0IHN1cHBvcnRzIHNoZWxsIGZ1bmN0aW9ucy4KKysgIGVjaG8gUGxlYXNlIHRlbGwgYnVn LWF1dG9jb25mQGdudS5vcmcgYWJvdXQgeW91ciBzeXN0ZW0sCisrICBlY2hvIGluY2x1ZGluZyBh bnkgZXJyb3IgcG9zc2libHkgb3V0cHV0IGJlZm9yZSB0aGlzIG1lc3NhZ2UuCisrICBlY2hvIFRo aXMgY2FuIGhlbHAgdXMgaW1wcm92ZSBmdXR1cmUgYXV0b2NvbmYgdmVyc2lvbnMuCisrICBlY2hv IENvbmZpZ3VyYXRpb24gd2lsbCBub3cgcHJvY2VlZCB3aXRob3V0IHNoZWxsIGZ1bmN0aW9ucy4K Kyt9CisrCisrCisrCisrICBhc19saW5lbm9fMT0kTElORU5PCisrICBhc19saW5lbm9fMj0kTElO RU5PCisrICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKysgIHRl c3QgInhgZXhwciAkYXNfbGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIgfHwgeworKwor KyAgIyBDcmVhdGUgJGFzX21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0IHdp dGggJExJTkVOTworKyAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAg VGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQorKyAgIyBsaW5lLW51bWJlciBsaW5lIGFmdGVyIGVh Y2ggbGluZSB1c2luZyAkTElORU5POyB0aGUgc2Vjb25kICdzZWQnCisrICAjIGRvZXMgdGhlIHJl YWwgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaAorKyAgIyBs aW5lLW51bWJlciBsaW5lIHdpdGggdGhlIGxpbmUgY29udGFpbmluZyAkTElORU5PLCBhbmQgYXBw ZW5kcworKyAgIyB0cmFpbGluZyAnLScgZHVyaW5nIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5F Tk8gaXMgbm90IGEgc3BlY2lhbAorKyAgIyBjYXNlIGF0IGxpbmUgZW5kLgorKyAgIyAoUmFqYSBS IEhhcmluYXRoIHN1Z2dlc3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhlCisr ICAjIHNjcmlwdHMgd2l0aCBvcHRpbWl6YXRpb24gaGVscCBmcm9tIFBhb2xvIEJvbnppbmkuICBC bGFtZSBMZWUKKysgICMgRS4gTWNNYWhvbiAoMTkzMS0xOTg5KSBmb3Igc2VkJ3Mgc3ludGF4LiAg Oi0pCisrICBzZWQgLW4gJworKyAgICBwCisrICAgIC9bJF1MSU5FTk8vPQorKyAgJyA8JGFzX215 c2VsZiB8CisrICAgIHNlZCAnCisrICAgICAgcy9bJF1MSU5FTk8uKi8mLS8KKysgICAgICB0IGxp bmVubworKyAgICAgIGIKKysgICAgICA6bGluZW5vCisrICAgICAgTgorKyAgICAgIDpsb29wCisr ICAgICAgcy9bJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXS4qXG5cKVwoLipcKS9cMlwxXDIv CisrICAgICAgdCBsb29wCisrICAgICAgcy8tXG4uKi8vCisrICAgICcgPiRhc19tZS5saW5lbm8g JiYKKysgIGNobW9kICt4ICIkYXNfbWUubGluZW5vIiB8fAorKyAgICB7ICRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJ WCBzaGVsbCIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCisrICAjIERvbid0 IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBwcm9i bGVtcworKyAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJlIHdl IG1pZ2h0IGZpbmQgdGhlCisrICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVz cGVjaWFsbHkgc2Vuc2l0aXZlIHRvIHRoaXMpLgorKyAgLiAiLi8kYXNfbWUubGluZW5vIgorKyAg IyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCisrICBleGl0CisrfQor KworKworK2lmIChhc19kaXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0gWC8p ID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfZGlybmFtZT1kaXJuYW1lCisrZWxzZQorKyAg YXNfZGlybmFtZT1mYWxzZQorK2ZpCisrCisrRUNIT19DPSBFQ0hPX049IEVDSE9fVD0KKytjYXNl IGBlY2hvIC1uIHhgIGluCisrLW4qKQorKyAgY2FzZSBgZWNobyAneFxjJ2AgaW4KKysgICpjKikg RUNIT19UPScJJzs7CSMgRUNIT19UIGlzIHNpbmdsZSB0YWIgY2hhcmFjdGVyLgorKyAgKikgICBF Q0hPX0M9J1xjJzs7CisrICBlc2FjOzsKKysqKQorKyAgRUNIT19OPSctbic7OworK2VzYWMKKytp ZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgorKyAgIHRlc3QgIlhgZXhwciAw MDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCisrICBhc19leHByPWV4cHIKKytlbHNl CisrICBhc19leHByPWZhbHNlCisrZmkKKysKKytybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25m JCQuZmlsZQorK2lmIHRlc3QgLWQgY29uZiQkLmRpcjsgdGhlbgorKyAgcm0gLWYgY29uZiQkLmRp ci9jb25mJCQuZmlsZQorK2Vsc2UKKysgIHJtIC1mIGNvbmYkJC5kaXIKKysgIG1rZGlyIGNvbmYk JC5kaXIgMj4vZGV2L251bGwKKytmaQorK2lmIChlY2hvID5jb25mJCQuZmlsZSkgMj4vZGV2L251 bGw7IHRoZW4KKysgIGlmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhl bgorKyAgICBhc19sbl9zPSdsbiAtcycKKysgICAgIyAuLi4gYnV0IHRoZXJlIGFyZSB0d28gZ290 Y2hhczoKKysgICAgIyAxKSBPbiBNU1lTLCBib3RoIGBsbiAtcyBmaWxlIGRpcicgYW5kIGBsbiBm aWxlIGRpcicgZmFpbC4KKysgICAgIyAyKSBESkdQUCA8IDIuMDQgaGFzIG5vIHN5bWxpbmtzOyBg bG4gLXMnIGNyZWF0ZXMgYSB3cmFwcGVyIGV4ZWN1dGFibGUuCisrICAgICMgSW4gYm90aCBjYXNl cywgd2UgaGF2ZSB0byBkZWZhdWx0IHRvIGBjcCAtcCcuCisrICAgIGxuIC1zIGNvbmYkJC5maWxl IGNvbmYkJC5kaXIgMj4vZGV2L251bGwgJiYgdGVzdCAhIC1mIGNvbmYkJC5leGUgfHwKKysgICAg ICBhc19sbl9zPSdjcCAtcCcKKysgIGVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9u dWxsOyB0aGVuCisrICAgIGFzX2xuX3M9bG4KKysgIGVsc2UKKysgICAgYXNfbG5fcz0nY3AgLXAn CisrICBmaQorK2Vsc2UKKysgIGFzX2xuX3M9J2NwIC1wJworK2ZpCisrcm0gLWYgY29uZiQkIGNv bmYkJC5leGUgY29uZiQkLmRpci9jb25mJCQuZmlsZSBjb25mJCQuZmlsZQorK3JtZGlyIGNvbmYk JC5kaXIgMj4vZGV2L251bGwKKysKKytpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCisr ICBhc19ta2Rpcl9wPToKKytlbHNlCisrICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAorKyAg YXNfbWtkaXJfcD1mYWxzZQorK2ZpCisrCisraWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4mMTsg dGhlbgorKyAgYXNfdGVzdF94PSd0ZXN0IC14JworK2Vsc2UKKysgIGlmIGxzIC1kTCAvID4vZGV2 L251bGwgMj4mMTsgdGhlbgorKyAgICBhc19sc19MX29wdGlvbj1MCisrICBlbHNlCisrICAgIGFz X2xzX0xfb3B0aW9uPQorKyAgZmkKKysgIGFzX3Rlc3RfeD0nCisrICAgIGV2YWwgc2ggLWMgJ1wn JworKyAgICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgorKwl0ZXN0IC1kICIkMS8uIjsKKysgICAg ICBlbHNlCisrCWNhc2UgJDEgaW4KKysJLSopc2V0ICIuLyQxIjs7CisrCWVzYWM7CisrCWNhc2Ug YGxzIC1sZCckYXNfbHNfTF9vcHRpb24nICIkMSIgMj4vZGV2L251bGxgIGluCisrCT8/P1tzeF0q KTo7OyopZmFsc2U7O2VzYWM7ZmkKKysgICAgJ1wnJyBzaAorKyAgJworK2ZpCisrYXNfZXhlY3V0 YWJsZV9wPSRhc190ZXN0X3gKKysKKysjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBv bnRvIGEgdmFsaWQgQ1BQIG5hbWUuCisrYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xl dHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKKysKKysjIFNl ZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFtZS4K Kythc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgor KworKworKworKworKyMgQ2hlY2sgdGhhdCB3ZSBhcmUgcnVubmluZyB1bmRlciB0aGUgY29ycmVj dCBzaGVsbC4KKytTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQorKworK2Nhc2UgWCRFQ0hP IGluCisrWCotLWZhbGxiYWNrLWVjaG8pCisrICAjIFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVvdGF0 aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgorKyAgRUNITz1gZWNobyAiJEVDSE8i IHwgc2VkICdzLFxcXFxcJFxcJDAsJyQwJywnYAorKyAgOzsKKytlc2FjCisrCisrZWNobz0ke0VD SE8tZWNob30KKytpZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCisrICAjIERpc2Nh cmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KKysgIHNoaWZ0CisrZWxpZiB0 ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyBBdm9pZCBpbmxpbmUgZG9j dW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgorKyAgOgorK2VsaWYgdGVzdCAiWGAoJGVj aG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnIDsgdGhlbgorKyAgIyBZaXBwZWUsICRlY2hv IHdvcmtzIQorKyAgOgorK2Vsc2UKKysgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVs bC4KKysgIGV4ZWMgJFNIRUxMICIkMCIgLS1uby1yZWV4ZWMgJHsxKyIkQCJ9CisrZmkKKysKKytp ZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyB1c2VkIGFzIGZhbGxi YWNrIGVjaG8KKysgIHNoaWZ0CisrICBjYXQgPDxFT0YKKyskKgorK0VPRgorKyAgZXhpdCAwCisr ZmkKKysKKysjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQg ZGlyZWN0b3J5IHRvIHN0ZG91dAorKyMgaWYgQ0RQQVRIIGlzIHNldC4KKysodW5zZXQgQ0RQQVRI KSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICisrCisraWYgdGVzdCAteiAiJEVDSE8i OyB0aGVuCisraWYgdGVzdCAiWCR7ZWNob190ZXN0X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0aGVu CisrIyBmaW5kIGEgc3RyaW5nIGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBsb25nIGFzIHRoZSBz aGVsbCBjYW4gY29wZSB3aXRoIGl0CisrICBmb3IgY21kIGluICdzZWQgNTBxICIkMCInICdzZWQg MjBxICIkMCInICdzZWQgMTBxICIkMCInICdzZWQgMnEgIiQwIicgJ2VjaG8gdGVzdCc7IGRvCisr ICAgICMgZXhwZWN0ZWQgc2l6ZXM6IGxlc3MgdGhhbiAyS2IsIDFLYiwgNTEyIGJ5dGVzLCAxNiBi eXRlcywgLi4uCisrICAgIGlmIChlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgKSAyPi9kZXYv bnVsbCAmJgorKyAgICAgICBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgICYmCisrICAgICAg ICh0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rl di9udWxsCisgICAgIHRoZW4KKy0gICAgICAgIGVjaG8gJ1JlY29nbml6ZWQgY29uZmlndXJlIG9w dGlvbnM6JworLSAgICAgICAgZWNobyAnJworLSAgICAgICAgZWNobyAnSW5zdGFsbGF0aW9uIG9w dGlvbnM6JworLSAgICAgICAgZWNobyAnLS1pbmNsdWRlLXByZWZpeD0vc29tZS9wYXRoICAgICAg LSBwYXRoIHRvIGluc3RhbGwgU09DSSBoZWFkZXIgZmlsZXMnCistICAgICAgICBlY2hvICctLWxp Yi1wcmVmaXg9L3NvbWUvcGF0aCAgICAgICAgICAtIHBhdGggdG8gaW5zdGFsbCBTT0NJIGxpYnJh cmllcycKKy0gICAgICAgIGVjaG8gJycKKy0gICAgICAgIGVjaG8gJ015U1FMIG9wdGlvbnM6Jwor LSAgICAgICAgZWNobyAnLS1teXNxbC1pbmNsdWRlPS9zb21lL3BhdGggICAgICAgLSBkaXJlY3Rv cnkgY29udGFpbmluZyBteXNxbC5oJworLSAgICAgICAgZWNobyAnLS1teXNxbC1saWI9L3NvbWUv cGF0aCAgICAgICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJteXNxbGNsaWVudC5bYXxz b10nCistICAgICAgICBlY2hvICcnCistICAgICAgICBlY2hvICdPcmFjbGUgb3B0aW9ucyAoaWYg T1JBQ0xFX0hPTUUgdmFyaWFibGUgaXMgbm90IHNldCk6JworLSAgICAgICAgZWNobyAnLS1vcmFj bGUtaW5jbHVkZT0vc29tZS9wYXRoICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBvY2kuaCcK Ky0gICAgICAgIGVjaG8gJy0tb3JhY2xlLWxpYj0vc29tZS9wYXRoICAgICAgICAgIC0gZGlyZWN0 b3J5IGNvbnRhaW5pbmcgbGliY2xudHNoLlthfHNvXScKKy0gICAgICAgIGVjaG8gJycKKy0gICAg ICAgIGVjaG8gJ1Bvc3RncmVTUUwgb3B0aW9uczonCistICAgICAgICBlY2hvICctLXBvc3RncmVz cWwtaW5jbHVkZT0vc29tZS9wYXRoICAtIGRpcmVjdG9yeSBjb250YWluaW5nIGxpYnBxL2xpYnBx LWZzLmgnCistICAgICAgICBlY2hvICctLXBvc3RncmVzcWwtbGliPS9zb21lL3BhdGggICAgICAt IGRpcmVjdG9yeSBjb250YWluaW5nIGxpYnBxLlthfHNvXScKKy0gICAgICAgIGVjaG8gJycKKy0g ICAgICAgIGVjaG8gJ1Rlc3QgcHJvZ3JhbXMgY29tcGlsYXRpb24gb3B0aW9ucyAobm90IG5lZWRl ZCBmb3IgbGlicmFyeSBidWlsZCk6JworLSAgICAgICAgZWNobyAnLS1ib29zdC1pbmNsdWRlPS9z b21lL3BhdGggICAgICAgLSByb290IGluY2x1ZGUgZGlyZWN0b3J5IG9mIEJvb3N0JworLSAgICAg ICAgZWNobyAnLS1ib29zdC1saWI9L3NvbWUvcGF0aCAgICAgICAgICAgLSByb290IGxpYiBkaXJl Y3Rvcnkgb2YgQm9vc3QnCistICAgICAgICBlY2hvICcnCistICAgICAgICBleGl0CisrICAgICAg YnJlYWsKKyAgICAgZmkKKysgIGRvbmUKKyBmaQorIAorLW1rZGlyIC1wIGJ1aWxkL3VuaXgvbG9j YWwKKy1wYXRoPSJidWlsZC91bml4L2xvY2FsL3BhcmFtZXRlcnMiCistcm0gLWYgJHBhdGgKKy10 b3VjaCAkcGF0aAorLWZvciBwYXJhbSBpbiAkKgorLWRvCistICAgICAgICBlY2hvICRwYXJhbSA+ PiAkcGF0aAorLWRvbmUKKy0KKy1wcmludGYgJ1RyeWluZyB0byBmaW5kIHRoZSBUY2wgaW50ZXJw cmV0ZXIuLi4gJworLXRjbF9mb3VuZD0wCistCistZm9yIHBhdGggaW4gIi91c3IvYmluL3RjbHNo IiBcCistICAgICAgICAgICAgIi91c3IvbG9jYWwvYmluL3RjbHNoOC41IiBcCistICAgICAgICAg ICAgIi91c3IvbG9jYWwvYmluL3RjbHNoOC40IiBcCistICAgICAgICAgICAgIi91c3IvbG9jYWwv YmluL3RjbHNoOC4zIjsgZG8KKy0gICAgaWYgWyAteCAkcGF0aCBdCistICAgIHRoZW4KKy0gICAg ICAgIGVjaG8gJHBhdGggPiBidWlsZC91bml4L2xvY2FsL3RjbAorLSAgICAgICAgZWNobyAkcGF0 aAorLSAgICAgICAgdGNsX2ZvdW5kPTEKKy0gICAgICAgIGJyZWFrCisraWYgdGVzdCAiWGAoJGVj aG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisrICAgZWNob190ZXN0aW5nX3N0cmlu Zz1gKCRlY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKyAgIHRlc3Qg IlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAg OgorK2Vsc2UKKysgICMgVGhlIFNvbGFyaXMsIEFJWCwgYW5kIERpZ2l0YWwgVW5peCBkZWZhdWx0 IGVjaG8gcHJvZ3JhbXMgdW5xdW90ZQorKyAgIyBiYWNrc2xhc2hlcy4gIFRoaXMgbWFrZXMgaXQg aW1wb3NzaWJsZSB0byBxdW90ZSBiYWNrc2xhc2hlcyB1c2luZworKyAgIyAgIGVjaG8gIiRzb21l dGhpbmciIHwgc2VkICdzL1xcL1xcXFwvZycKKysgICMKKysgICMgU28sIGZpcnN0IHdlIGxvb2sg Zm9yIGEgd29ya2luZyBlY2hvIGluIHRoZSB1c2VyJ3MgUEFUSC4KKysKKysgIGx0X3NhdmVfaWZz PSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgZm9yIGRpciBpbiAkUEFUSCAvdXNyL3Vj YjsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgIGlmICh0ZXN0IC1mICRkaXIvZWNo byB8fCB0ZXN0IC1mICRkaXIvZWNobyRhY19leGVleHQpICYmCisrICAgICAgIHRlc3QgIlhgKCRk aXIvZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAgICAgZWNob190ZXN0 aW5nX3N0cmluZz1gKCRkaXIvZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAg JiYKKysgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9z dHJpbmciOyB0aGVuCisrICAgICAgZWNobz0iJGRpci9lY2hvIgorKyAgICAgIGJyZWFrCisrICAg IGZpCisrICBkb25lCisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKysKKysgIGlmIHRlc3QgIlgkZWNo byIgPSBYZWNobzsgdGhlbgorKyAgICAjIFdlIGRpZG4ndCBmaW5kIGEgYmV0dGVyIGVjaG8sIHNv IGxvb2sgZm9yIGFsdGVybmF0aXZlcy4KKysgICAgaWYgdGVzdCAiWGAocHJpbnQgLXIgJ1x0Jykg Mj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisrICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YChw cmludCAtciAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKKysgICAgICAgdGVz dCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisr ICAgICAgIyBUaGlzIHNoZWxsIGhhcyBhIGJ1aWx0aW4gcHJpbnQgLXIgdGhhdCBkb2VzIHRoZSB0 cmljay4KKysgICAgICBlY2hvPSdwcmludCAtcicKKysgICAgZWxpZiAodGVzdCAtZiAvYmluL2tz aCB8fCB0ZXN0IC1mIC9iaW4va3NoJGFjX2V4ZWV4dCkgJiYKKysJIHRlc3QgIlgkQ09ORklHX1NI RUxMIiAhPSBYL2Jpbi9rc2g7IHRoZW4KKysgICAgICAjIElmIHdlIGhhdmUga3NoLCB0cnkgcnVu bmluZyBjb25maWd1cmUgYWdhaW4gd2l0aCBpdC4KKysgICAgICBPUklHSU5BTF9DT05GSUdfU0hF TEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KKysgICAgICBleHBvcnQgT1JJR0lOQUxfQ09ORklH X1NIRUxMCisrICAgICAgQ09ORklHX1NIRUxMPS9iaW4va3NoCisrICAgICAgZXhwb3J0IENPTkZJ R19TSEVMTAorKyAgICAgIGV4ZWMgJENPTkZJR19TSEVMTCAiJDAiIC0tbm8tcmVleGVjICR7MSsi JEAifQorKyAgICBlbHNlCisrICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgorKyAgICAgIGVjaG89 J3ByaW50ZiAlc1xuJworKyAgICAgIGlmIHRlc3QgIlhgKCRlY2hvICdcdCcpIDI+L2Rldi9udWxs YCIgPSAnWFx0JyAmJgorKwkgZWNob190ZXN0aW5nX3N0cmluZz1gKCRlY2hvICIkZWNob190ZXN0 X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKwkgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5n IiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCSMgQ29vbCwgcHJpbnRmIHdvcmtzCisr CToKKysgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NI RUxMICIkMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgorKwkgICB0ZXN0 ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKKysJICAgZWNob190ZXN0aW5nX3N0 cmluZz1gKCRPUklHSU5BTF9DT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hv X3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCisrCSAgIHRlc3QgIlgkZWNob190ZXN0aW5n X3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKwlDT05GSUdfU0hFTEw9JE9S SUdJTkFMX0NPTkZJR19TSEVMTAorKwlleHBvcnQgQ09ORklHX1NIRUxMCisrCVNIRUxMPSIkQ09O RklHX1NIRUxMIgorKwlleHBvcnQgU0hFTEwKKysJZWNobz0iJENPTkZJR19TSEVMTCAkMCAtLWZh bGxiYWNrLWVjaG8iCisrICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19T SEVMTCAiJDAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKKysJICAgdGVz dCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCisrCSAgIGVjaG9fdGVzdGluZ19z dHJpbmc9YCgkQ09ORklHX1NIRUxMICIkMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0 cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmci ID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKysJZWNobz0iJENPTkZJR19TSEVMTCAkMCAt LWZhbGxiYWNrLWVjaG8iCisrICAgICAgZWxzZQorKwkjIG1heWJlIHdpdGggYSBzbWFsbGVyIHN0 cmluZy4uLgorKwlwcmV2PToKKysKKysJZm9yIGNtZCBpbiAnZWNobyB0ZXN0JyAnc2VkIDJxICIk MCInICdzZWQgMTBxICIkMCInICdzZWQgMjBxICIkMCInICdzZWQgNTBxICIkMCInOyBkbworKwkg IGlmICh0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlhgZXZhbCAkY21kYCIpIDI+L2Rldi9u dWxsCisrCSAgdGhlbgorKwkgICAgYnJlYWsKKysJICBmaQorKwkgIHByZXY9IiRjbWQiCisrCWRv bmUKKysKKysJaWYgdGVzdCAiJHByZXYiICE9ICdzZWQgNTBxICIkMCInOyB0aGVuCisrCSAgZWNo b190ZXN0X3N0cmluZz1gZXZhbCAkcHJldmAKKysJICBleHBvcnQgZWNob190ZXN0X3N0cmluZwor KwkgIGV4ZWMgJHtPUklHSU5BTF9DT05GSUdfU0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19 ICIkMCIgJHsxKyIkQCJ9CisrCWVsc2UKKysJICAjIE9vcHMuICBXZSBsb3N0IGNvbXBsZXRlbHks IHNvIGp1c3Qgc3RpY2sgd2l0aCBlY2hvLgorKwkgIGVjaG89ZWNobworKwlmaQorKyAgICAgIGZp CisgICAgIGZpCisrICBmaQorK2ZpCisrZmkKKysKKysjIENvcHkgZWNobyBhbmQgcXVvdGUgdGhl IGNvcHkgc3VpdGFibHkgZm9yIHBhc3NpbmcgdG8gbGlidG9vbCBmcm9tCisrIyB0aGUgTWFrZWZp bGUsIGluc3RlYWQgb2YgcXVvdGluZyB0aGUgb3JpZ2luYWwsIHdoaWNoIGlzIHVzZWQgbGF0ZXIu CisrRUNITz0kZWNobworK2lmIHRlc3QgIlgkRUNITyIgPSAiWCRDT05GSUdfU0hFTEwgJDAgLS1m YWxsYmFjay1lY2hvIjsgdGhlbgorKyAgIEVDSE89IiRDT05GSUdfU0hFTEwgXFxcJFwkMCAtLWZh bGxiYWNrLWVjaG8iCisrZmkKKysKKysKKysKKysKKyt0YWduYW1lcz0ke3RhZ25hbWVzKyR7dGFn bmFtZXN9LH1DWFgKKysKKyt0YWduYW1lcz0ke3RhZ25hbWVzKyR7dGFnbmFtZXN9LH1GNzcKKysK KytleGVjIDc8JjAgPC9kZXYvbnVsbCA2PiYxCisrCisrIyBOYW1lIG9mIHRoZSBob3N0LgorKyMg aG9zdG5hbWUgb24gc29tZSBzeXN0ZW1zIChTVlIzLjIsIExpbnV4KSByZXR1cm5zIGEgYm9ndXMg ZXhpdCBzdGF0dXMsCisrIyBzbyB1bmFtZSBnZXRzIHJ1biB0b28uCisrYWNfaG9zdG5hbWU9YCho b3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCisrCisrIworKyMgSW5p dGlhbGl6YXRpb25zLgorKyMKKythY19kZWZhdWx0X3ByZWZpeD0vdXNyL2xvY2FsCisrYWNfY2xl YW5fZmlsZXM9CisrYWNfY29uZmlnX2xpYm9ial9kaXI9LgorK0xJQk9CSlM9CisrY3Jvc3NfY29t cGlsaW5nPW5vCisrc3ViZGlycz0KKytNRkxBR1M9CisrTUFLRUZMQUdTPQorK1NIRUxMPSR7Q09O RklHX1NIRUxMLS9iaW4vc2h9CisrCisrIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCisrUEFD S0FHRV9OQU1FPSdTT0NJJworK1BBQ0tBR0VfVEFSTkFNRT0nc29jaScKKytQQUNLQUdFX1ZFUlNJ T049JzMuMC4wJworK1BBQ0tBR0VfU1RSSU5HPSdTT0NJIDMuMC4wJworK1BBQ0tBR0VfQlVHUkVQ T1JUPSdtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQnCisrCisrYWNfdW5pcXVlX2ZpbGU9 InNvY2kvY29yZS9lcnJvci5jcHAiCisrIyBGYWN0b3JpbmcgZGVmYXVsdCBoZWFkZXJzIGZvciBt b3N0IHRlc3RzLgorK2FjX2luY2x1ZGVzX2RlZmF1bHQ9IlwKKysjaW5jbHVkZSA8c3RkaW8uaD4K KysjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAorKyMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisrI2Vu ZGlmCisrI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAorKyMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KKysj ZW5kaWYKKysjaWZkZWYgU1REQ19IRUFERVJTCisrIyBpbmNsdWRlIDxzdGRsaWIuaD4KKysjIGlu Y2x1ZGUgPHN0ZGRlZi5oPgorKyNlbHNlCisrIyBpZmRlZiBIQVZFX1NURExJQl9ICisrIyAgaW5j bHVkZSA8c3RkbGliLmg+CisrIyBlbmRpZgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1NUUklOR19I CisrIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICisr IyAgaW5jbHVkZSA8bWVtb3J5Lmg+CisrIyBlbmRpZgorKyMgaW5jbHVkZSA8c3RyaW5nLmg+Cisr I2VuZGlmCisrI2lmZGVmIEhBVkVfU1RSSU5HU19ICisrIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cisr I2VuZGlmCisrI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAorKyMgaW5jbHVkZSA8aW50dHlwZXMuaD4K KysjZW5kaWYKKysjaWZkZWYgSEFWRV9TVERJTlRfSAorKyMgaW5jbHVkZSA8c3RkaW50Lmg+Cisr I2VuZGlmCisrI2lmZGVmIEhBVkVfVU5JU1REX0gKKysjIGluY2x1ZGUgPHVuaXN0ZC5oPgorKyNl bmRpZiIKKysKKythY19zdWJzdF92YXJzPSdMVExJQk9CSlMKKytMSUJPQkpTCisrUlVOX1RFU1RT X0ZBTFNFCisrUlVOX1RFU1RTX1RSVUUKKytzZWRfb2sKKytkaWZmX29rCisrSFRNTF9ET0NfRkFM U0UKKytIVE1MX0RPQ19UUlVFCisrUEVSTAorK2dzX29rCisrZHZpcHNfb2sKKytsYXRleF9vawor K2RveHlnZW5fb2sKKytJTkZPX0RPQ19GQUxTRQorK0lORk9fRE9DX1RSVUUKKytQT1NUR1JFU1FM X0RJUlMKKytIQVZFX1BPU1RHUkVTUUxfRkFMU0UKKytIQVZFX1BPU1RHUkVTUUxfVFJVRQorK1BP U1RHUkVTUUxfTERGTEFHUworK1BPU1RHUkVTUUxfQ0ZMQUdTCisrUE9TVEdSRVNRTF9WRVJTSU9O CisrUEdfQ09ORklHCisrT1JBQ0xFX0RJUlMKKytIQVZFX09SQUNMRV9GQUxTRQorK0hBVkVfT1JB Q0xFX1RSVUUKKytPUkFDTEVfT0NJX0xERkxBR1MKKytPUkFDTEVfT0NJX0NGTEFHUworK09SQUNM RV9PQ0lfVkVSU0lPTgorK01ZU1FMX0RJUlMKKytIQVZFX01ZU1FMX0ZBTFNFCisrSEFWRV9NWVNR TF9UUlVFCisrTVlTUUxfTERGTEFHUworK01ZU1FMX0NGTEFHUworK01ZU1FMX1ZFUlNJT04KKytN WVNRTF9DT05GSUcKKytCT09TVF9WRVJTSU9OCisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19M SUIKKytCT09TVF9SRUdFWF9MSUIKKytCT09TVF9EQVRFX1RJTUVfTElCCisrQk9PU1RfU0lHTkFM U19MSUIKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJ QgorK0JPT1NUX0lPU1RSRUFNU19MSUIKKytCT09TVF9USFJFQURfTElCCisrQk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQgorK0JPT1NUX0ZJTEVTWVNURU1fTElCCisrQk9PU1RfTElCUworK0JPT1NU X0NGTEFHUworK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRAorK1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9U UlVFCisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RURfRkFMU0UKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUUKKytTT0NJX0hFQURFUlNf QlVSSUVECisrU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NPQ0lfSEVBREVSU19CVVJJRURf VFJVRQorK0xJQlRPT0wKKythY19jdF9GNzcKKytGRkxBR1MKKytGNzcKKytDUFAKKytOTUVESVQK KytEU1lNVVRJTAorK1JBTkxJQgorK0FSCisrRUNITworK0xOX1MKKytFR1JFUAorK0dSRVAKKytT RUQKKythbV9fZmFzdGRlcENDX0ZBTFNFCisrYW1fX2Zhc3RkZXBDQ19UUlVFCisrQ0NERVBNT0RF CisrYWNfY3RfQ0MKKytDRkxBR1MKKytDQworK0NYWENQUAorK2FtX19mYXN0ZGVwQ1hYX0ZBTFNF CisrYW1fX2Zhc3RkZXBDWFhfVFJVRQorK0NYWERFUE1PREUKKytBTURFUEJBQ0tTTEFTSAorK0FN REVQX0ZBTFNFCisrQU1ERVBfVFJVRQorK2FtX19xdW90ZQorK2FtX19pbmNsdWRlCisrREVQRElS CisrT0JKRVhUCisrRVhFRVhUCisrYWNfY3RfQ1hYCisrQ1BQRkxBR1MKKytMREZMQUdTCisrQ1hY RkxBR1MKKytDWFgKKytob3N0X29zCisraG9zdF92ZW5kb3IKKytob3N0X2NwdQorK2hvc3QKKyti dWlsZF9vcworK2J1aWxkX3ZlbmRvcgorK2J1aWxkX2NwdQorK2J1aWxkCisrVVBMT0FEX0NPTU1B TkQKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTgorK1JQTV9SRUxFQVNFCisrSEFWRV9DUFBVTklU X0ZBTFNFCisrSEFWRV9DUFBVTklUX1RSVUUKKytDUFBVTklUX1ZFUlNJT04KKytDUFBVTklUX0xJ QlMKKytDUFBVTklUX0NGTEFHUworK0NQUFVOSVRfQ09ORklHCisrYW1fX3VudGFyCisrYW1fX3Rh cgorK0FNVEFSCisrYW1fX2xlYWRpbmdfZG90CisrU0VUX01BS0UKKytBV0sKKytta2Rpcl9wCisr TUtESVJfUAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTQorK1NUUklQCisraW5zdGFsbF9zaAorK01B S0VJTkZPCisrQVVUT0hFQURFUgorK0FVVE9NQUtFCisrQVVUT0NPTkYKKytBQ0xPQ0FMCisrVkVS U0lPTgorK1BBQ0tBR0UKKytDWUdQQVRIX1cKKythbV9faXNyYworK0lOU1RBTExfREFUQQorK0lO U1RBTExfU0NSSVBUCisrSU5TVEFMTF9QUk9HUkFNCisrdGFyZ2V0X2FsaWFzCisraG9zdF9hbGlh cworK2J1aWxkX2FsaWFzCisrTElCUworK0VDSE9fVAorK0VDSE9fTgorK0VDSE9fQworK0RFRlMK KyttYW5kaXIKKytsb2NhbGVkaXIKKytsaWJkaXIKKytwc2RpcgorK3BkZmRpcgorK2R2aWRpcgor K2h0bWxkaXIKKytpbmZvZGlyCisrZG9jZGlyCisrb2xkaW5jbHVkZWRpcgorK2luY2x1ZGVkaXIK Kytsb2NhbHN0YXRlZGlyCisrc2hhcmVkc3RhdGVkaXIKKytzeXNjb25mZGlyCisrZGF0YWRpcgor K2RhdGFyb290ZGlyCisrbGliZXhlY2RpcgorK3NiaW5kaXIKKytiaW5kaXIKKytwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lCisrcHJlZml4CisrZXhlY19wcmVmaXgKKytQQUNLQUdFX0JVR1JFUE9SVAor K1BBQ0tBR0VfU1RSSU5HCisrUEFDS0FHRV9WRVJTSU9OCisrUEFDS0FHRV9UQVJOQU1FCisrUEFD S0FHRV9OQU1FCisrUEFUSF9TRVBBUkFUT1IKKytTSEVMTCcKKythY19zdWJzdF9maWxlcz0nJwor K2FjX3VzZXJfb3B0cz0nCisrZW5hYmxlX29wdGlvbl9jaGVja2luZworK3dpdGhfY3BwdW5pdF9w cmVmaXgKKyt3aXRoX2NwcHVuaXRfZXhlY19wcmVmaXgKKytlbmFibGVfc2hhcmVkCisrZW5hYmxl X3N0YXRpYworK2VuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nCisrZW5hYmxlX2Zhc3RfaW5zdGFs bAorK3dpdGhfZ251X2xkCisrZW5hYmxlX2xpYnRvb2xfbG9jaworK3dpdGhfcGljCisrd2l0aF90 YWdzCisrZW5hYmxlX2V4Y2VwdGlvbnMKKytlbmFibGVfaW5mb19kb2MKKytlbmFibGVfaHRtbF9k b2MKKyt3aXRoX2RvY2RpcgorK2VuYWJsZV9idXJyaWVkX2hlYWRlcnMKKytlbmFibGVfbXlzcWxf YnVycmllZF9oZWFkZXJzCisrZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzCisrd2l0 aF9ib29zdAorK2VuYWJsZV9iYWNrZW5kX215c3FsCisrd2l0aF9teXNxbAorK2VuYWJsZV9iYWNr ZW5kX29yYWNsZQorK3dpdGhfb3JhY2xlCisrd2l0aF9vcmFjbGVfaW5jbHVkZQorK3dpdGhfb3Jh Y2xlX2xpYgorK2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwKKyt3aXRoX3Bvc3RncmVzcWwKKysn CisrICAgICAgYWNfcHJlY2lvdXNfdmFycz0nYnVpbGRfYWxpYXMKKytob3N0X2FsaWFzCisrdGFy Z2V0X2FsaWFzCisrQ1hYCisrQ1hYRkxBR1MKKytMREZMQUdTCisrTElCUworK0NQUEZMQUdTCisr Q0NDCisrQ1hYQ1BQCisrQ0MKKytDRkxBR1MKKytDUFAKKytGNzcKKytGRkxBR1MnCisrCisrCisr IyBJbml0aWFsaXplIHNvbWUgdmFyaWFibGVzIHNldCBieSBvcHRpb25zLgorK2FjX2luaXRfaGVs cD0KKythY19pbml0X3ZlcnNpb249ZmFsc2UKKythY191bnJlY29nbml6ZWRfb3B0cz0KKythY191 bnJlY29nbml6ZWRfc2VwPQorKyMgVGhlIHZhcmlhYmxlcyBoYXZlIHRoZSBzYW1lIG5hbWVzIGFz IHRoZSBvcHRpb25zLCB3aXRoCisrIyBkYXNoZXMgY2hhbmdlZCB0byB1bmRlcmxpbmVzLgorK2Nh Y2hlX2ZpbGU9L2Rldi9udWxsCisrZXhlY19wcmVmaXg9Tk9ORQorK25vX2NyZWF0ZT0KKytub19y ZWN1cnNpb249CisrcHJlZml4PU5PTkUKKytwcm9ncmFtX3ByZWZpeD1OT05FCisrcHJvZ3JhbV9z dWZmaXg9Tk9ORQorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWU9cyx4LHgsCisrc2lsZW50PQorK3Np dGU9Cisrc3JjZGlyPQorK3ZlcmJvc2U9CisreF9pbmNsdWRlcz1OT05FCisreF9saWJyYXJpZXM9 Tk9ORQorKworKyMgSW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBvcHRpb25zLgorKyMgVGhlc2UgYXJl IGxlZnQgdW5leHBhbmRlZCBzbyB1c2VycyBjYW4gIm1ha2UgaW5zdGFsbCBleGVjX3ByZWZpeD0v Zm9vIgorKyMgYW5kIGFsbCB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIHN1cHBvc2VkIHRvIGJlIGJh c2VkIG9uIGV4ZWNfcHJlZml4CisrIyBieSBkZWZhdWx0IHdpbGwgYWN0dWFsbHkgY2hhbmdlLgor KyMgVXNlIGJyYWNlcyBpbnN0ZWFkIG9mIHBhcmVucyBiZWNhdXNlIHNoLCBwZXJsLCBldGMuIGFs c28gYWNjZXB0IHRoZW0uCisrIyAoVGhlIGxpc3QgZm9sbG93cyB0aGUgc2FtZSBvcmRlciBhcyB0 aGUgR05VIENvZGluZyBTdGFuZGFyZHMuKQorK2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmluJwor K3NiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L3NiaW4nCisrbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZp eH0vbGliZXhlYycKKytkYXRhcm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJworK2RhdGFkaXI9JyR7 ZGF0YXJvb3RkaXJ9JworK3N5c2NvbmZkaXI9JyR7cHJlZml4fS9ldGMnCisrc2hhcmVkc3RhdGVk aXI9JyR7cHJlZml4fS9jb20nCisrbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKKytpbmNs dWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKKytvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUn CisrZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdFX1RBUk5BTUV9JworK2luZm9k aXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCisraHRtbGRpcj0nJHtkb2NkaXJ9JworK2R2aWRpcj0n JHtkb2NkaXJ9JworK3BkZmRpcj0nJHtkb2NkaXJ9JworK3BzZGlyPScke2RvY2Rpcn0nCisrbGli ZGlyPScke2V4ZWNfcHJlZml4fS9saWInCisrbG9jYWxlZGlyPScke2RhdGFyb290ZGlyfS9sb2Nh bGUnCisrbWFuZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCisrCisrYWNfcHJldj0KKythY19kYXNo ZGFzaD0KKytmb3IgYWNfb3B0aW9uCisrZG8KKysgICMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBu ZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgorKyAgaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0 aGVuCisrICAgIGV2YWwgJGFjX3ByZXY9XCRhY19vcHRpb24KKysgICAgYWNfcHJldj0KKysgICAg Y29udGludWUKKysgIGZpCisrCisrICBjYXNlICRhY19vcHRpb24gaW4KKysgICo9KikJYWNfb3B0 YXJnPWBleHByICJYJGFjX29wdGlvbiIgOiAnW149XSo9XCguKlwpJ2AgOzsKKysgICopCWFjX29w dGFyZz15ZXMgOzsKKysgIGVzYWMKKysKKysgICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQgQ3lnbnVz IGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCisrCisrICBjYXNl ICRhY19kYXNoZGFzaCRhY19vcHRpb24gaW4KKysgIC0tKQorKyAgICBhY19kYXNoZGFzaD15ZXMg OzsKKysKKysgIC1iaW5kaXIgfCAtLWJpbmRpciB8IC0tYmluZGkgfCAtLWJpbmQgfCAtLWJpbiB8 IC0tYmkpCisrICAgIGFjX3ByZXY9YmluZGlyIDs7CisrICAtYmluZGlyPSogfCAtLWJpbmRpcj0q IHwgLS1iaW5kaT0qIHwgLS1iaW5kPSogfCAtLWJpbj0qIHwgLS1iaT0qKQorKyAgICBiaW5kaXI9 JGFjX29wdGFyZyA7OworKworKyAgLWJ1aWxkIHwgLS1idWlsZCB8IC0tYnVpbCB8IC0tYnVpIHwg LS1idSkKKysgICAgYWNfcHJldj1idWlsZF9hbGlhcyA7OworKyAgLWJ1aWxkPSogfCAtLWJ1aWxk PSogfCAtLWJ1aWw9KiB8IC0tYnVpPSogfCAtLWJ1PSopCisrICAgIGJ1aWxkX2FsaWFzPSRhY19v cHRhcmcgOzsKKysKKysgIC1jYWNoZS1maWxlIHwgLS1jYWNoZS1maWxlIHwgLS1jYWNoZS1maWwg fCAtLWNhY2hlLWZpIFwKKysgIHwgLS1jYWNoZS1mIHwgLS1jYWNoZS0gfCAtLWNhY2hlIHwgLS1j YWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQorKyAgICBhY19wcmV2PWNhY2hlX2ZpbGUgOzsKKysg IC1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbGU9KiB8IC0tY2FjaGUtZmlsPSogfCAtLWNhY2hl LWZpPSogXAorKyAgfCAtLWNhY2hlLWY9KiB8IC0tY2FjaGUtPSogfCAtLWNhY2hlPSogfCAtLWNh Y2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikKKysgICAgY2FjaGVfZmlsZT0kYWNfb3B0 YXJnIDs7CisrCisrICAtLWNvbmZpZy1jYWNoZSB8IC1DKQorKyAgICBjYWNoZV9maWxlPWNvbmZp Zy5jYWNoZSA7OworKworKyAgLWRhdGFkaXIgfCAtLWRhdGFkaXIgfCAtLWRhdGFkaSB8IC0tZGF0 YWQpCisrICAgIGFjX3ByZXY9ZGF0YWRpciA7OworKyAgLWRhdGFkaXI9KiB8IC0tZGF0YWRpcj0q IHwgLS1kYXRhZGk9KiB8IC0tZGF0YWQ9KikKKysgICAgZGF0YWRpcj0kYWNfb3B0YXJnIDs7Cisr CisrICAtZGF0YXJvb3RkaXIgfCAtLWRhdGFyb290ZGlyIHwgLS1kYXRhcm9vdGRpIHwgLS1kYXRh cm9vdGQgfCAtLWRhdGFyb290IFwKKysgIHwgLS1kYXRhcm9vIHwgLS1kYXRhcm8gfCAtLWRhdGFy KQorKyAgICBhY19wcmV2PWRhdGFyb290ZGlyIDs7CisrICAtZGF0YXJvb3RkaXI9KiB8IC0tZGF0 YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaT0qIHwgLS1kYXRhcm9vdGQ9KiBcCisrICB8IC0tZGF0 YXJvb3Q9KiB8IC0tZGF0YXJvbz0qIHwgLS1kYXRhcm89KiB8IC0tZGF0YXI9KikKKysgICAgZGF0 YXJvb3RkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qKQor KyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZGlzYWJsZS1cKC4qXCkn YAorKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUg bmFtZXMuCisrICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1d IiA+L2Rldi9udWxsICYmCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxp ZCBmZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KKysgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0CisrICAgIGFjX3VzZXJvcHQ9 YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKKysgICAgY2FzZSAk YWNfdXNlcl9vcHRzIGluCisrICAgICAgKiIKKysiZW5hYmxlXyRhY191c2Vyb3B0IgorKyIqKSA7 OworKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMk YWNfdW5yZWNvZ25pemVkX3NlcC0tZGlzYWJsZS0kYWNfdXNlcm9wdF9vcmlnIgorKwkgYWNfdW5y ZWNvZ25pemVkX3NlcD0nLCAnOzsKKysgICAgZXNhYworKyAgICBldmFsIGVuYWJsZV8kYWNfdXNl cm9wdD1ubyA7OworKworKyAgLWRvY2RpciB8IC0tZG9jZGlyIHwgLS1kb2NkaSB8IC0tZG9jIHwg LS1kbykKKysgICAgYWNfcHJldj1kb2NkaXIgOzsKKysgIC1kb2NkaXI9KiB8IC0tZG9jZGlyPSog fCAtLWRvY2RpPSogfCAtLWRvYz0qIHwgLS1kbz0qKQorKyAgICBkb2NkaXI9JGFjX29wdGFyZyA7 OworKworKyAgLWR2aWRpciB8IC0tZHZpZGlyIHwgLS1kdmlkaSB8IC0tZHZpZCB8IC0tZHZpIHwg LS1kdikKKysgICAgYWNfcHJldj1kdmlkaXIgOzsKKysgIC1kdmlkaXI9KiB8IC0tZHZpZGlyPSog fCAtLWR2aWRpPSogfCAtLWR2aWQ9KiB8IC0tZHZpPSogfCAtLWR2PSopCisrICAgIGR2aWRpcj0k YWNfb3B0YXJnIDs7CisrCisrICAtZW5hYmxlLSogfCAtLWVuYWJsZS0qKQorKyAgICBhY191c2Vy b3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxlLVwoW149XSpcKSdgCisrICAgICMg UmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KKysg ICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251 bGwgJiYKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1cmUg bmFtZTogJGFjX3VzZXJvcHQiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAg ICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKKysgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8g IiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAorKyAgICBjYXNlICRhY191c2VyX29w dHMgaW4KKysgICAgICAqIgorKyJlbmFibGVfJGFjX3VzZXJvcHQiCisrIiopIDs7CisrICAgICAg KikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29n bml6ZWRfc2VwLS1lbmFibGUtJGFjX3VzZXJvcHRfb3JpZyIKKysJIGFjX3VucmVjb2duaXplZF9z ZXA9JywgJzs7CisrICAgIGVzYWMKKysgICAgZXZhbCBlbmFibGVfJGFjX3VzZXJvcHQ9XCRhY19v cHRhcmcgOzsKKysKKysgIC1leGVjLXByZWZpeCB8IC0tZXhlY19wcmVmaXggfCAtLWV4ZWMtcHJl Zml4IHwgLS1leGVjLXByZWZpIFwKKysgIHwgLS1leGVjLXByZWYgfCAtLWV4ZWMtcHJlIHwgLS1l eGVjLXByIHwgLS1leGVjLXAgfCAtLWV4ZWMtIFwKKysgIHwgLS1leGVjIHwgLS1leGUgfCAtLWV4 KQorKyAgICBhY19wcmV2PWV4ZWNfcHJlZml4IDs7CisrICAtZXhlYy1wcmVmaXg9KiB8IC0tZXhl Y19wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaT0qIFwKKysgIHwgLS1l eGVjLXByZWY9KiB8IC0tZXhlYy1wcmU9KiB8IC0tZXhlYy1wcj0qIHwgLS1leGVjLXA9KiB8IC0t ZXhlYy09KiBcCisrICB8IC0tZXhlYz0qIHwgLS1leGU9KiB8IC0tZXg9KikKKysgICAgZXhlY19w cmVmaXg9JGFjX29wdGFyZyA7OworKworKyAgLWdhcyB8IC0tZ2FzIHwgLS1nYSB8IC0tZykKKysg ICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC1nYXMuCisrICAgIHdpdGhfZ2FzPXllcyA7OworKwor KyAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAtaCkKKysgICAgYWNfaW5pdF9oZWxw PWxvbmcgOzsKKysgIC1oZWxwPXIqIHwgLS1oZWxwPXIqIHwgLS1oZWw9ciogfCAtLWhlPXIqIHwg LWhyKikKKysgICAgYWNfaW5pdF9oZWxwPXJlY3Vyc2l2ZSA7OworKyAgLWhlbHA9cyogfCAtLWhl bHA9cyogfCAtLWhlbD1zKiB8IC0taGU9cyogfCAtaHMqKQorKyAgICBhY19pbml0X2hlbHA9c2hv cnQgOzsKKysKKysgIC1ob3N0IHwgLS1ob3N0IHwgLS1ob3MgfCAtLWhvKQorKyAgICBhY19wcmV2 PWhvc3RfYWxpYXMgOzsKKysgIC1ob3N0PSogfCAtLWhvc3Q9KiB8IC0taG9zPSogfCAtLWhvPSop CisrICAgIGhvc3RfYWxpYXM9JGFjX29wdGFyZyA7OworKworKyAgLWh0bWxkaXIgfCAtLWh0bWxk aXIgfCAtLWh0bWxkaSB8IC0taHRtbGQgfCAtLWh0bWwgfCAtLWh0bSB8IC0taHQpCisrICAgIGFj X3ByZXY9aHRtbGRpciA7OworKyAgLWh0bWxkaXI9KiB8IC0taHRtbGRpcj0qIHwgLS1odG1sZGk9 KiB8IC0taHRtbGQ9KiB8IC0taHRtbD0qIHwgLS1odG09KiBcCisrICB8IC0taHQ9KikKKysgICAg aHRtbGRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtaW5jbHVkZWRpciB8IC0taW5jbHVkZWRpciB8 IC0taW5jbHVkZWRpIHwgLS1pbmNsdWRlZCB8IC0taW5jbHVkZSBcCisrICB8IC0taW5jbHVkIHwg LS1pbmNsdSB8IC0taW5jbCB8IC0taW5jKQorKyAgICBhY19wcmV2PWluY2x1ZGVkaXIgOzsKKysg IC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpPSogfCAtLWluY2x1 ZGVkPSogfCAtLWluY2x1ZGU9KiBcCisrICB8IC0taW5jbHVkPSogfCAtLWluY2x1PSogfCAtLWlu Y2w9KiB8IC0taW5jPSopCisrICAgIGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWlu Zm9kaXIgfCAtLWluZm9kaXIgfCAtLWluZm9kaSB8IC0taW5mb2QgfCAtLWluZm8gfCAtLWluZikK KysgICAgYWNfcHJldj1pbmZvZGlyIDs7CisrICAtaW5mb2Rpcj0qIHwgLS1pbmZvZGlyPSogfCAt LWluZm9kaT0qIHwgLS1pbmZvZD0qIHwgLS1pbmZvPSogfCAtLWluZj0qKQorKyAgICBpbmZvZGly PSRhY19vcHRhcmcgOzsKKysKKysgIC1saWJkaXIgfCAtLWxpYmRpciB8IC0tbGliZGkgfCAtLWxp YmQpCisrICAgIGFjX3ByZXY9bGliZGlyIDs7CisrICAtbGliZGlyPSogfCAtLWxpYmRpcj0qIHwg LS1saWJkaT0qIHwgLS1saWJkPSopCisrICAgIGxpYmRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAt bGliZXhlY2RpciB8IC0tbGliZXhlY2RpciB8IC0tbGliZXhlY2RpIHwgLS1saWJleGVjZCB8IC0t bGliZXhlYyBcCisrICB8IC0tbGliZXhlIHwgLS1saWJleCB8IC0tbGliZSkKKysgICAgYWNfcHJl dj1saWJleGVjZGlyIDs7CisrICAtbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGlyPSogfCAtLWxp YmV4ZWNkaT0qIHwgLS1saWJleGVjZD0qIHwgLS1saWJleGVjPSogXAorKyAgfCAtLWxpYmV4ZT0q IHwgLS1saWJleD0qIHwgLS1saWJlPSopCisrICAgIGxpYmV4ZWNkaXI9JGFjX29wdGFyZyA7Owor KworKyAgLWxvY2FsZWRpciB8IC0tbG9jYWxlZGlyIHwgLS1sb2NhbGVkaSB8IC0tbG9jYWxlZCB8 IC0tbG9jYWxlKQorKyAgICBhY19wcmV2PWxvY2FsZWRpciA7OworKyAgLWxvY2FsZWRpcj0qIHwg LS1sb2NhbGVkaXI9KiB8IC0tbG9jYWxlZGk9KiB8IC0tbG9jYWxlZD0qIHwgLS1sb2NhbGU9KikK KysgICAgbG9jYWxlZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1sb2NhbHN0YXRlZGlyIHwgLS1s b2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGkgfCAtLWxvY2Fsc3RhdGVkIFwKKysgIHwgLS1s b2NhbHN0YXRlIHwgLS1sb2NhbHN0YXQgfCAtLWxvY2Fsc3RhIHwgLS1sb2NhbHN0IHwgLS1sb2Nh bHMpCisrICAgIGFjX3ByZXY9bG9jYWxzdGF0ZWRpciA7OworKyAgLWxvY2Fsc3RhdGVkaXI9KiB8 IC0tbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGk9KiB8IC0tbG9jYWxzdGF0ZWQ9KiBc CisrICB8IC0tbG9jYWxzdGF0ZT0qIHwgLS1sb2NhbHN0YXQ9KiB8IC0tbG9jYWxzdGE9KiB8IC0t bG9jYWxzdD0qIHwgLS1sb2NhbHM9KikKKysgICAgbG9jYWxzdGF0ZWRpcj0kYWNfb3B0YXJnIDs7 CisrCisrICAtbWFuZGlyIHwgLS1tYW5kaXIgfCAtLW1hbmRpIHwgLS1tYW5kIHwgLS1tYW4gfCAt LW1hIHwgLS1tKQorKyAgICBhY19wcmV2PW1hbmRpciA7OworKyAgLW1hbmRpcj0qIHwgLS1tYW5k aXI9KiB8IC0tbWFuZGk9KiB8IC0tbWFuZD0qIHwgLS1tYW49KiB8IC0tbWE9KiB8IC0tbT0qKQor KyAgICBtYW5kaXI9JGFjX29wdGFyZyA7OworKworKyAgLW5mcCB8IC0tbmZwIHwgLS1uZikKKysg ICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91dC1mcC4KKysgICAgd2l0aF9mcD1ubyA7OworKwor KyAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0t bm8tY3JlIFwKKysgIHwgLS1uby1jciB8IC0tbm8tYyB8IC1uKQorKyAgICBub19jcmVhdGU9eWVz IDs7CisrCisrICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lv IHwgLS1uby1yZWN1cnNpIFwKKysgIHwgLS1uby1yZWN1cnMgfCAtLW5vLXJlY3VyIHwgLS1uby1y ZWN1IHwgLS1uby1yZWMgfCAtLW5vLXJlIHwgLS1uby1yKQorKyAgICBub19yZWN1cnNpb249eWVz IDs7CisrCisrICAtb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVk ZWRpIHwgLS1vbGRpbmNsdWRlZCBcCisrICB8IC0tb2xkaW5jbHVkZSB8IC0tb2xkaW5jbHVkIHwg LS1vbGRpbmNsdSB8IC0tb2xkaW5jbCB8IC0tb2xkaW5jIFwKKysgIHwgLS1vbGRpbiB8IC0tb2xk aSB8IC0tb2xkIHwgLS1vbCB8IC0tbykKKysgICAgYWNfcHJldj1vbGRpbmNsdWRlZGlyIDs7Cisr ICAtb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGlyPSogfCAtLW9sZGluY2x1ZGVkaT0q IHwgLS1vbGRpbmNsdWRlZD0qIFwKKysgIHwgLS1vbGRpbmNsdWRlPSogfCAtLW9sZGluY2x1ZD0q IHwgLS1vbGRpbmNsdT0qIHwgLS1vbGRpbmNsPSogfCAtLW9sZGluYz0qIFwKKysgIHwgLS1vbGRp bj0qIHwgLS1vbGRpPSogfCAtLW9sZD0qIHwgLS1vbD0qIHwgLS1vPSopCisrICAgIG9sZGluY2x1 ZGVkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXByZWZpeCB8IC0tcHJlZml4IHwgLS1wcmVmaSB8 IC0tcHJlZiB8IC0tcHJlIHwgLS1wciB8IC0tcCkKKysgICAgYWNfcHJldj1wcmVmaXggOzsKKysg IC1wcmVmaXg9KiB8IC0tcHJlZml4PSogfCAtLXByZWZpPSogfCAtLXByZWY9KiB8IC0tcHJlPSog fCAtLXByPSogfCAtLXA9KikKKysgICAgcHJlZml4PSRhY19vcHRhcmcgOzsKKysKKysgIC1wcm9n cmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZmkgfCAtLXByb2dy YW0tcHJlZiBcCisrICB8IC0tcHJvZ3JhbS1wcmUgfCAtLXByb2dyYW0tcHIgfCAtLXByb2dyYW0t cCkKKysgICAgYWNfcHJldj1wcm9ncmFtX3ByZWZpeCA7OworKyAgLXByb2dyYW0tcHJlZml4PSog fCAtLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZmk9KiBcCisrICB8IC0tcHJvZ3Jh bS1wcmVmPSogfCAtLXByb2dyYW0tcHJlPSogfCAtLXByb2dyYW0tcHI9KiB8IC0tcHJvZ3JhbS1w PSopCisrICAgIHByb2dyYW1fcHJlZml4PSRhY19vcHRhcmcgOzsKKysKKysgIC1wcm9ncmFtLXN1 ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0tc3VmZmkgfCAtLXByb2dyYW0tc3Vm ZiBcCisrICB8IC0tcHJvZ3JhbS1zdWYgfCAtLXByb2dyYW0tc3UgfCAtLXByb2dyYW0tcykKKysg ICAgYWNfcHJldj1wcm9ncmFtX3N1ZmZpeCA7OworKyAgLXByb2dyYW0tc3VmZml4PSogfCAtLXBy b2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZmk9KiBcCisrICB8IC0tcHJvZ3JhbS1zdWZm PSogfCAtLXByb2dyYW0tc3VmPSogfCAtLXByb2dyYW0tc3U9KiB8IC0tcHJvZ3JhbS1zPSopCisr ICAgIHByb2dyYW1fc3VmZml4PSRhY19vcHRhcmcgOzsKKysKKysgIC1wcm9ncmFtLXRyYW5zZm9y bS1uYW1lIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5z Zm9ybS1uYW0gfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5z Zm9ybS1uIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS0gXAorKyAgfCAtLXByb2dyYW0tdHJhbnNmb3Jt IHwgLS1wcm9ncmFtLXRyYW5zZm9yIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zZm8gfCAtLXByb2dy YW0tdHJhbnNmIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zIHwgLS1wcm9ncmFtLXRyYW4gXAorKyAg fCAtLXByb2dyLXRyYSB8IC0tcHJvZ3JhbS10ciB8IC0tcHJvZ3JhbS10KQorKyAgICBhY19wcmV2 PXByb2dyYW1fdHJhbnNmb3JtX25hbWUgOzsKKysgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSog fCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9KiBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0t bmFtPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hPSogXAorKyAgfCAtLXByb2dyYW0tdHJhbnNm b3JtLW49KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tPSogXAorKyAgfCAtLXByb2dyYW0tdHJhbnNm b3JtPSogfCAtLXByb2dyYW0tdHJhbnNmb3I9KiBcCisrICB8IC0tcHJvZ3JhbS10cmFuc2ZvPSog fCAtLXByb2dyYW0tdHJhbnNmPSogXAorKyAgfCAtLXByb2dyYW0tdHJhbnM9KiB8IC0tcHJvZ3Jh bS10cmFuPSogXAorKyAgfCAtLXByb2dyLXRyYT0qIHwgLS1wcm9ncmFtLXRyPSogfCAtLXByb2dy YW0tdD0qKQorKyAgICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSRhY19vcHRhcmcgOzsKKysKKysg IC1wZGZkaXIgfCAtLXBkZmRpciB8IC0tcGRmZGkgfCAtLXBkZmQgfCAtLXBkZiB8IC0tcGQpCisr ICAgIGFjX3ByZXY9cGRmZGlyIDs7CisrICAtcGRmZGlyPSogfCAtLXBkZmRpcj0qIHwgLS1wZGZk aT0qIHwgLS1wZGZkPSogfCAtLXBkZj0qIHwgLS1wZD0qKQorKyAgICBwZGZkaXI9JGFjX29wdGFy ZyA7OworKworKyAgLXBzZGlyIHwgLS1wc2RpciB8IC0tcHNkaSB8IC0tcHNkIHwgLS1wcykKKysg ICAgYWNfcHJldj1wc2RpciA7OworKyAgLXBzZGlyPSogfCAtLXBzZGlyPSogfCAtLXBzZGk9KiB8 IC0tcHNkPSogfCAtLXBzPSopCisrICAgIHBzZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1xIHwg LXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCisrICB8IC1z aWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKKysgICAgc2lsZW50 PXllcyA7OworKworKyAgLXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2JpbmQg fCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCisrICAgIGFjX3ByZXY9c2JpbmRpciA7OworKyAgLXNi aW5kaXI9KiB8IC0tc2JpbmRpcj0qIHwgLS1zYmluZGk9KiB8IC0tc2JpbmQ9KiB8IC0tc2Jpbj0q IFwKKysgIHwgLS1zYmk9KiB8IC0tc2I9KikKKysgICAgc2JpbmRpcj0kYWNfb3B0YXJnIDs7Cisr CisrICAtc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRp IFwKKysgIHwgLS1zaGFyZWRzdGF0ZWQgfCAtLXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0IHwg LS1zaGFyZWRzdGEgXAorKyAgfCAtLXNoYXJlZHN0IHwgLS1zaGFyZWRzIHwgLS1zaGFyZWQgfCAt LXNoYXJlIHwgLS1zaGFyIFwKKysgIHwgLS1zaGEgfCAtLXNoKQorKyAgICBhY19wcmV2PXNoYXJl ZHN0YXRlZGlyIDs7CisrICAtc2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaXI9KiB8 IC0tc2hhcmVkc3RhdGVkaT0qIFwKKysgIHwgLS1zaGFyZWRzdGF0ZWQ9KiB8IC0tc2hhcmVkc3Rh dGU9KiB8IC0tc2hhcmVkc3RhdD0qIHwgLS1zaGFyZWRzdGE9KiBcCisrICB8IC0tc2hhcmVkc3Q9 KiB8IC0tc2hhcmVkcz0qIHwgLS1zaGFyZWQ9KiB8IC0tc2hhcmU9KiB8IC0tc2hhcj0qIFwKKysg IHwgLS1zaGE9KiB8IC0tc2g9KikKKysgICAgc2hhcmVkc3RhdGVkaXI9JGFjX29wdGFyZyA7Owor KworKyAgLXNpdGUgfCAtLXNpdGUgfCAtLXNpdCkKKysgICAgYWNfcHJldj1zaXRlIDs7CisrICAt c2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0qKQorKyAgICBzaXRlPSRhY19vcHRhcmcgOzsKKysK KysgIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAtLXNyY2QgfCAtLXNyYyB8IC0tc3Ip CisrICAgIGFjX3ByZXY9c3JjZGlyIDs7CisrICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1z cmNkaT0qIHwgLS1zcmNkPSogfCAtLXNyYz0qIHwgLS1zcj0qKQorKyAgICBzcmNkaXI9JGFjX29w dGFyZyA7OworKworKyAgLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaSB8 IC0tc3lzY29uZmQgfCAtLXN5c2NvbmYgXAorKyAgfCAtLXN5c2NvbiB8IC0tc3lzY28gfCAtLXN5 c2MgfCAtLXN5cyB8IC0tc3kpCisrICAgIGFjX3ByZXY9c3lzY29uZmRpciA7OworKyAgLXN5c2Nv bmZkaXI9KiB8IC0tc3lzY29uZmRpcj0qIHwgLS1zeXNjb25mZGk9KiB8IC0tc3lzY29uZmQ9KiB8 IC0tc3lzY29uZj0qIFwKKysgIHwgLS1zeXNjb249KiB8IC0tc3lzY289KiB8IC0tc3lzYz0qIHwg LS1zeXM9KiB8IC0tc3k9KikKKysgICAgc3lzY29uZmRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAt dGFyZ2V0IHwgLS10YXJnZXQgfCAtLXRhcmdlIHwgLS10YXJnIHwgLS10YXIgfCAtLXRhIHwgLS10 KQorKyAgICBhY19wcmV2PXRhcmdldF9hbGlhcyA7OworKyAgLXRhcmdldD0qIHwgLS10YXJnZXQ9 KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwgLS10YXI9KiB8IC0tdGE9KiB8IC0tdD0qKQorKyAg ICB0YXJnZXRfYWxpYXM9JGFjX29wdGFyZyA7OworKworKyAgLXYgfCAtdmVyYm9zZSB8IC0tdmVy Ym9zZSB8IC0tdmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikKKysgICAgdmVyYm9zZT15ZXMgOzsK KysKKysgIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJz IHwgLVYpCisrICAgIGFjX2luaXRfdmVyc2lvbj06IDs7CisrCisrICAtd2l0aC0qIHwgLS13aXRo LSopCisrICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRoLVwoW149 XSpcKSdgCisrICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJp YWJsZSBuYW1lcy4KKysgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9h bG51bV0iID4vZGV2L251bGwgJiYKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBp bnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3VzZXJvcHQiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQorKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKKysgICAgYWNfdXNl cm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAorKyAgICBj YXNlICRhY191c2VyX29wdHMgaW4KKysgICAgICAqIgorKyJ3aXRoXyRhY191c2Vyb3B0IgorKyIq KSA7OworKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29w dHMkYWNfdW5yZWNvZ25pemVkX3NlcC0td2l0aC0kYWNfdXNlcm9wdF9vcmlnIgorKwkgYWNfdW5y ZWNvZ25pemVkX3NlcD0nLCAnOzsKKysgICAgZXNhYworKyAgICBldmFsIHdpdGhfJGFjX3VzZXJv cHQ9XCRhY19vcHRhcmcgOzsKKysKKysgIC13aXRob3V0LSogfCAtLXdpdGhvdXQtKikKKysgICAg YWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKndpdGhvdXQtXCguKlwpJ2AKKysg ICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVz LgorKyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIgPi9k ZXYvbnVsbCAmJgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgcGFj a2FnZSBuYW1lOiAkYWNfdXNlcm9wdCIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 CisrICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAorKyAgICBhY191c2Vyb3B0PWAkYXNf ZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCisrICAgIGNhc2UgJGFjX3Vz ZXJfb3B0cyBpbgorKyAgICAgICoiCisrIndpdGhfJGFjX3VzZXJvcHQiCisrIiopIDs7CisrICAg ICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJl Y29nbml6ZWRfc2VwLS13aXRob3V0LSRhY191c2Vyb3B0X29yaWciCisrCSBhY191bnJlY29nbml6 ZWRfc2VwPScsICc7OworKyAgICBlc2FjCisrICAgIGV2YWwgd2l0aF8kYWNfdXNlcm9wdD1ubyA7 OworKworKyAgLS14KQorKyAgICAjIE9ic29sZXRlOyB1c2UgLS13aXRoLXguCisrICAgIHdpdGhf eD15ZXMgOzsKKysKKysgIC14LWluY2x1ZGVzIHwgLS14LWluY2x1ZGVzIHwgLS14LWluY2x1ZGUg fCAtLXgtaW5jbHVkIHwgLS14LWluY2x1IFwKKysgIHwgLS14LWluY2wgfCAtLXgtaW5jIHwgLS14 LWluIHwgLS14LWkpCisrICAgIGFjX3ByZXY9eF9pbmNsdWRlcyA7OworKyAgLXgtaW5jbHVkZXM9 KiB8IC0teC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGU9KiB8IC0teC1pbmNsdWQ9KiB8IC0teC1p bmNsdT0qIFwKKysgIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8IC0teC1pbj0qIHwgLS14LWk9 KikKKysgICAgeF9pbmNsdWRlcz0kYWNfb3B0YXJnIDs7CisrCisrICAteC1saWJyYXJpZXMgfCAt LXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJhcmkgXAorKyAgfCAtLXgtbGli cmFyIHwgLS14LWxpYnJhIHwgLS14LWxpYnIgfCAtLXgtbGliIHwgLS14LWxpIHwgLS14LWwpCisr ICAgIGFjX3ByZXY9eF9saWJyYXJpZXMgOzsKKysgIC14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJh cmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwKKysgIHwgLS14LWxpYnJh cj0qIHwgLS14LWxpYnJhPSogfCAtLXgtbGlicj0qIHwgLS14LWxpYj0qIHwgLS14LWxpPSogfCAt LXgtbD0qKQorKyAgICB4X2xpYnJhcmllcz0kYWNfb3B0YXJnIDs7CisrCisrICAtKikgeyAkYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJGFjX29wdGlvbgorK1Ry eSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjIKKysgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH0KKysgICAgOzsKKysKKysgICo9KikKKysgICAgYWNfZW52dmFyPWBleHBy ICJ4JGFjX29wdGlvbiIgOiAneFwoW149XSpcKT0nYAorKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0 IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCisrICAgIGV4cHIgIngkYWNfZW52 dmFyIiA6ICIuKlteXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKysgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhcmlhYmxlIG5hbWU6ICRhY19lbnZ2YXIiID4m MgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICBldmFsICRhY19lbnZ2YXI9XCRh Y19vcHRhcmcKKysgICAgZXhwb3J0ICRhY19lbnZ2YXIgOzsKKysKKysgICopCisrICAgICMgRklY TUU6IHNob3VsZCBiZSByZW1vdmVkIGluIGF1dG9jb25mIDMuMC4KKysgICAgJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogeW91IHNob3VsZCB1c2UgLS1idWlsZCwgLS1ob3N0LCAtLXRhcmdldCIg PiYyCisrICAgIGV4cHIgIngkYWNfb3B0aW9uIiA6ICIuKlteLS5fJGFzX2NyX2FsbnVtXSIgPi9k ZXYvbnVsbCAmJgorKyAgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFsaWQgaG9z dCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKKysgICAgOiAke2J1aWxkX2FsaWFzPSRhY19vcHRpb259 ICR7aG9zdF9hbGlhcz0kYWNfb3B0aW9ufSAke3RhcmdldF9hbGlhcz0kYWNfb3B0aW9ufQorKyAg ICA7OworKworKyAgZXNhYworIGRvbmUKKyAKKy1pZiBbICR0Y2xfZm91bmQgLWVxIDAgXQorLXRo ZW4KKy0gICAgICAgIGVjaG8gJ05PVCBmb3VuZC4nCistICAgICAgICBlY2hvICdJcyB0aGUgVGNs IGluc3RhbGxlZD8nCistICAgICAgICBleGl0CisraWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVu CisrICBhY19vcHRpb249LS1gZWNobyAkYWNfcHJldiB8IHNlZCAncy9fLy0vZydgCisrICB7ICRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBtaXNzaW5nIGFyZ3VtZW50IHRvICRhY19vcHRpb24iID4m MgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisrCisraWYgdGVzdCAtbiAiJGFj X3VucmVjb2duaXplZF9vcHRzIjsgdGhlbgorKyAgY2FzZSAkZW5hYmxlX29wdGlvbl9jaGVja2lu ZyBpbgorKyAgICBubykgOzsKKysgICAgZmF0YWwpIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mMgorKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OworKyAgICAqKSAgICAgJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiYy IDs7CisrICBlc2FjCisrZmkKKysKKysjIENoZWNrIGFsbCBkaXJlY3RvcnkgYXJndW1lbnRzIGZv ciBjb25zaXN0ZW5jeS4KKytmb3IgYWNfdmFyIGluCWV4ZWNfcHJlZml4IHByZWZpeCBiaW5kaXIg c2JpbmRpciBsaWJleGVjZGlyIGRhdGFyb290ZGlyIFwKKysJCWRhdGFkaXIgc3lzY29uZmRpciBz aGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGluY2x1ZGVkaXIgXAorKwkJb2xkaW5jbHVkZWRp ciBkb2NkaXIgaW5mb2RpciBodG1sZGlyIGR2aWRpciBwZGZkaXIgcHNkaXIgXAorKwkJbGliZGly IGxvY2FsZWRpciBtYW5kaXIKKytkbworKyAgZXZhbCBhY192YWw9XCQkYWNfdmFyCisrICAjIFJl bW92ZSB0cmFpbGluZyBzbGFzaGVzLgorKyAgY2FzZSAkYWNfdmFsIGluCisrICAgICovICkKKysg ICAgICBhY192YWw9YGV4cHIgIlgkYWNfdmFsIiA6ICdYXCguKlteL11cKScgXHwgIlgkYWNfdmFs IiA6ICdYXCguKlwpJ2AKKysgICAgICBldmFsICRhY192YXI9XCRhY192YWw7OworKyAgZXNhYwor KyAgIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWVzLgorKyAgY2FzZSAk YWNfdmFsIGluCisrICAgIFtcXC8kXSogfCA/OltcXC9dKiApICBjb250aW51ZTs7CisrICAgIE5P TkUgfCAnJyApIGNhc2UgJGFjX3ZhciBpbiAqcHJlZml4ICkgY29udGludWU7OyBlc2FjOzsKKysg IGVzYWMKKysgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGV4cGVjdGVkIGFuIGFic29sdXRl IGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwiID4mMgorKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQorK2RvbmUKKysKKysjIFRoZXJlIG1pZ2h0IGJlIHBlb3BsZSB3aG8g ZGVwZW5kIG9uIHRoZSBvbGQgYnJva2VuIGJlaGF2aW9yOiBgJGhvc3QnCisrIyB1c2VkIHRvIGhv bGQgdGhlIGFyZ3VtZW50IG9mIC0taG9zdCBldGMuCisrIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUg ZGF5LgorK2J1aWxkPSRidWlsZF9hbGlhcworK2hvc3Q9JGhvc3RfYWxpYXMKKyt0YXJnZXQ9JHRh cmdldF9hbGlhcworKworKyMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KKytpZiB0ZXN0ICJ4 JGhvc3RfYWxpYXMiICE9IHg7IHRoZW4KKysgIGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiID0geDsg dGhlbgorKyAgICBjcm9zc19jb21waWxpbmc9bWF5YmUKKysgICAgJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogSWYgeW91IHdhbnRlZCB0byBzZXQgdGhlIC0tYnVpbGQgdHlwZSwgZG9uJ3QgdXNl IC0taG9zdC4KKysgICAgSWYgYSBjcm9zcyBjb21waWxlciBpcyBkZXRlY3RlZCB0aGVuIGNyb3Nz IGNvbXBpbGUgbW9kZSB3aWxsIGJlIHVzZWQuIiA+JjIKKysgIGVsaWYgdGVzdCAieCRidWlsZF9h bGlhcyIgIT0gIngkaG9zdF9hbGlhcyI7IHRoZW4KKysgICAgY3Jvc3NfY29tcGlsaW5nPXllcwor KyAgZmkKKytmaQorKworK2FjX3Rvb2xfcHJlZml4PQorK3Rlc3QgLW4gIiRob3N0X2FsaWFzIiAm JiBhY190b29sX3ByZWZpeD0kaG9zdF9hbGlhcy0KKysKKyt0ZXN0ICIkc2lsZW50IiA9IHllcyAm JiBleGVjIDY+L2Rldi9udWxsCisrCisrCisrYWNfcHdkPWBwd2RgICYmIHRlc3QgLW4gIiRhY19w d2QiICYmCisrYWNfbHNfZGk9YGxzIC1kaSAuYCAmJgorK2FjX3B3ZF9sc19kaT1gY2QgIiRhY19w d2QiICYmIGxzIC1kaSAuYCB8fAorKyAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogd29ya2lu ZyBkaXJlY3RvcnkgY2Fubm90IGJlIGRldGVybWluZWQiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQorK3Rlc3QgIlgkYWNfbHNfZGkiID0gIlgkYWNfcHdkX2xzX2RpIiB8fAorKyAg eyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogcHdkIGRvZXMgbm90IHJlcG9ydCBuYW1lIG9mIHdv cmtpbmcgZGlyZWN0b3J5IiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysKKysK KysjIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYgbG9jYXRpb24gd2FzIG5vdCBzcGVjaWZpZWQu CisraWYgdGVzdCAteiAiJHNyY2RpciI7IHRoZW4KKysgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9eWVz CisrICAjIFRyeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhpcyBzY3JpcHQsIHRoZW4gdGhl IHBhcmVudCBkaXJlY3RvcnkuCisrICBhY19jb25mZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFzX215 c2VsZiIgfHwKKyskYXNfZXhwciBYIiRhc19teXNlbGYiIDogJ1hcKC4qW14vXVwpLy8qW14vXVte L10qLyokJyBcfCBcCisrCSBYIiRhc19teXNlbGYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSBY IiRhc19teXNlbGYiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRhc19teXNlbGYiIDogJ1hcKC9c KScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJGFzX215c2VsZiIgfAorKyAgICBz ZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8vXDEvCisrCSAg ICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wxLworKwkgICAg cQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAg fQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBz Ly4qLy4vOyBxJ2AKKysgIHNyY2Rpcj0kYWNfY29uZmRpcgorKyAgaWYgdGVzdCAhIC1yICIkc3Jj ZGlyLyRhY191bmlxdWVfZmlsZSI7IHRoZW4KKysgICAgc3JjZGlyPS4uCisrICBmaQorK2Vsc2UK KysgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9bm8KKytmaQorK2lmIHRlc3QgISAtciAiJHNyY2Rpci8k YWNfdW5pcXVlX2ZpbGUiOyB0aGVuCisrICB0ZXN0ICIkYWNfc3JjZGlyX2RlZmF1bHRlZCIgPSB5 ZXMgJiYgc3JjZGlyPSIkYWNfY29uZmRpciBvciAuLiIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlxdWVfZmlsZSkgaW4gJHNyY2RpciIg PiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKythY19tc2c9InNvdXJjZXMg YXJlIGluICRzcmNkaXIsIGJ1dCBcYGNkICRzcmNkaXInIGRvZXMgbm90IHdvcmsiCisrYWNfYWJz X2NvbmZkaXI9YCgKKysJY2QgIiRzcmNkaXIiICYmIHRlc3QgLXIgIi4vJGFjX3VuaXF1ZV9maWxl IiB8fCB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkYWNfbXNnIiA+JjIKKysgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KKysJcHdkKWAKKysjIFdoZW4gYnVpbGRpbmcgaW4gcGxhY2UsIHNl dCBzcmNkaXI9LgorK2lmIHRlc3QgIiRhY19hYnNfY29uZmRpciIgPSAiJGFjX3B3ZCI7IHRoZW4K KysgIHNyY2Rpcj0uCisrZmkKKysjIFJlbW92ZSB1bm5lY2Vzc2FyeSB0cmFpbGluZyBzbGFzaGVz IGZyb20gc3JjZGlyLgorKyMgRG91YmxlIHNsYXNoZXMgaW4gZmlsZSBuYW1lcyBpbiBvYmplY3Qg ZmlsZSBkZWJ1Z2dpbmcgaW5mbworKyMgbWVzcyB1cCBNLXggZ2RiIGluIEVtYWNzLgorK2Nhc2Ug JHNyY2RpciBpbgorKyovKSBzcmNkaXI9YGV4cHIgIlgkc3JjZGlyIiA6ICdYXCguKlteL11cKScg XHwgIlgkc3JjZGlyIiA6ICdYXCguKlwpJ2A7OworK2VzYWMKKytmb3IgYWNfdmFyIGluICRhY19w cmVjaW91c192YXJzOyBkbworKyAgZXZhbCBhY19lbnZfJHthY192YXJ9X3NldD1cJHske2FjX3Zh cn0rc2V0fQorKyAgZXZhbCBhY19lbnZfJHthY192YXJ9X3ZhbHVlPVwkJHthY192YXJ9CisrICBl dmFsIGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0PVwkeyR7YWNfdmFyfStzZXR9CisrICBldmFsIGFj X2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWU9XCQke2FjX3Zhcn0KKytkb25lCisrCisrIworKyMgUmVw b3J0IHRoZSAtLWhlbHAgbWVzc2FnZS4KKysjCisraWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAi bG9uZyI7IHRoZW4KKysgICMgT21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlvbnMg dG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgorKyAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9v IGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgorKyAgY2F0IDw8X0FDRU9G CisrXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgU09DSSAzLjAuMCB0byBhZGFwdCB0byBtYW55IGtp bmRzIG9mIHN5c3RlbXMuCisrCisrVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtWQVI9VkFMVUVdLi4u CisrCisrVG8gYXNzaWduIGVudmlyb25tZW50IHZhcmlhYmxlcyAoZS5nLiwgQ0MsIENGTEFHUy4u LiksIHNwZWNpZnkgdGhlbSBhcworK1ZBUj1WQUxVRS4gIFNlZSBiZWxvdyBmb3IgZGVzY3JpcHRp b25zIG9mIHNvbWUgb2YgdGhlIHVzZWZ1bCB2YXJpYWJsZXMuCisrCisrRGVmYXVsdHMgZm9yIHRo ZSBvcHRpb25zIGFyZSBzcGVjaWZpZWQgaW4gYnJhY2tldHMuCisrCisrQ29uZmlndXJhdGlvbjoK KysgIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0Cisr ICAgICAgLS1oZWxwPXNob3J0ICAgICAgICBkaXNwbGF5IG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhp cyBwYWNrYWdlCisrICAgICAgLS1oZWxwPXJlY3Vyc2l2ZSAgICBkaXNwbGF5IHRoZSBzaG9ydCBo ZWxwIG9mIGFsbCB0aGUgaW5jbHVkZWQgcGFja2FnZXMKKysgIC1WLCAtLXZlcnNpb24gICAgICAg ICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAorKyAgLXEsIC0tcXVpZXQs IC0tc2lsZW50ICAgZG8gbm90IHByaW50IFxgY2hlY2tpbmcuLi4nIG1lc3NhZ2VzCisrICAgICAg LS1jYWNoZS1maWxlPUZJTEUgICBjYWNoZSB0ZXN0IHJlc3VsdHMgaW4gRklMRSBbZGlzYWJsZWRd CisrICAtQywgLS1jb25maWctY2FjaGUgICAgICBhbGlhcyBmb3IgXGAtLWNhY2hlLWZpbGU9Y29u ZmlnLmNhY2hlJworKyAgLW4sIC0tbm8tY3JlYXRlICAgICAgICAgZG8gbm90IGNyZWF0ZSBvdXRw dXQgZmlsZXMKKysgICAgICAtLXNyY2Rpcj1ESVIgICAgICAgIGZpbmQgdGhlIHNvdXJjZXMgaW4g RElSIFtjb25maWd1cmUgZGlyIG9yIFxgLi4nXQorKworK0luc3RhbGxhdGlvbiBkaXJlY3Rvcmll czoKKysgIC0tcHJlZml4PVBSRUZJWCAgICAgICAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWluZGVw ZW5kZW50IGZpbGVzIGluIFBSRUZJWAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgWyRhY19k ZWZhdWx0X3ByZWZpeF0KKysgIC0tZXhlYy1wcmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJjaGl0 ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBpbiBFUFJFRklYCisrICAgICAgICAgICAgICAgICAgICAg ICAgICBbUFJFRklYXQorKworK0J5IGRlZmF1bHQsIFxgbWFrZSBpbnN0YWxsJyB3aWxsIGluc3Rh bGwgYWxsIHRoZSBmaWxlcyBpbgorK1xgJGFjX2RlZmF1bHRfcHJlZml4L2JpbicsIFxgJGFjX2Rl ZmF1bHRfcHJlZml4L2xpYicgZXRjLiAgWW91IGNhbiBzcGVjaWZ5CisrYW4gaW5zdGFsbGF0aW9u IHByZWZpeCBvdGhlciB0aGFuIFxgJGFjX2RlZmF1bHRfcHJlZml4JyB1c2luZyBcYC0tcHJlZml4 JywKKytmb3IgaW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUnLgorKworK0ZvciBiZXR0ZXIgY29u dHJvbCwgdXNlIHRoZSBvcHRpb25zIGJlbG93LgorKworK0ZpbmUgdHVuaW5nIG9mIHRoZSBpbnN0 YWxsYXRpb24gZGlyZWN0b3JpZXM6CisrICAtLWJpbmRpcj1ESVIgICAgICAgICAgICB1c2VyIGV4 ZWN1dGFibGVzIFtFUFJFRklYL2Jpbl0KKysgIC0tc2JpbmRpcj1ESVIgICAgICAgICAgIHN5c3Rl bSBhZG1pbiBleGVjdXRhYmxlcyBbRVBSRUZJWC9zYmluXQorKyAgLS1saWJleGVjZGlyPURJUiAg ICAgICAgcHJvZ3JhbSBleGVjdXRhYmxlcyBbRVBSRUZJWC9saWJleGVjXQorKyAgLS1zeXNjb25m ZGlyPURJUiAgICAgICAgcmVhZC1vbmx5IHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC9ldGNd CisrICAtLXNoYXJlZHN0YXRlZGlyPURJUiAgICBtb2RpZmlhYmxlIGFyY2hpdGVjdHVyZS1pbmRl cGVuZGVudCBkYXRhIFtQUkVGSVgvY29tXQorKyAgLS1sb2NhbHN0YXRlZGlyPURJUiAgICAgbW9k aWZpYWJsZSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvdmFyXQorKyAgLS1saWJkaXI9RElS ICAgICAgICAgICAgb2JqZWN0IGNvZGUgbGlicmFyaWVzIFtFUFJFRklYL2xpYl0KKysgIC0taW5j bHVkZWRpcj1ESVIgICAgICAgIEMgaGVhZGVyIGZpbGVzIFtQUkVGSVgvaW5jbHVkZV0KKysgIC0t b2xkaW5jbHVkZWRpcj1ESVIgICAgIEMgaGVhZGVyIGZpbGVzIGZvciBub24tZ2NjIFsvdXNyL2lu Y2x1ZGVdCisrICAtLWRhdGFyb290ZGlyPURJUiAgICAgICByZWFkLW9ubHkgYXJjaC4taW5kZXBl bmRlbnQgZGF0YSByb290IFtQUkVGSVgvc2hhcmVdCisrICAtLWRhdGFkaXI9RElSICAgICAgICAg ICByZWFkLW9ubHkgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElSXQor KyAgLS1pbmZvZGlyPURJUiAgICAgICAgICAgaW5mbyBkb2N1bWVudGF0aW9uIFtEQVRBUk9PVERJ Ui9pbmZvXQorKyAgLS1sb2NhbGVkaXI9RElSICAgICAgICAgbG9jYWxlLWRlcGVuZGVudCBkYXRh IFtEQVRBUk9PVERJUi9sb2NhbGVdCisrICAtLW1hbmRpcj1ESVIgICAgICAgICAgICBtYW4gZG9j dW1lbnRhdGlvbiBbREFUQVJPT1RESVIvbWFuXQorKyAgLS1kb2NkaXI9RElSICAgICAgICAgICAg ZG9jdW1lbnRhdGlvbiByb290IFtEQVRBUk9PVERJUi9kb2Mvc29jaV0KKysgIC0taHRtbGRpcj1E SVIgICAgICAgICAgIGh0bWwgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQorKyAgLS1kdmlkaXI9RElS ICAgICAgICAgICAgZHZpIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0KKysgIC0tcGRmZGlyPURJUiAg ICAgICAgICAgIHBkZiBkb2N1bWVudGF0aW9uIFtET0NESVJdCisrICAtLXBzZGlyPURJUiAgICAg ICAgICAgICBwcyBkb2N1bWVudGF0aW9uIFtET0NESVJdCisrX0FDRU9GCisrCisrICBjYXQgPDxc X0FDRU9GCisrCisrUHJvZ3JhbSBuYW1lczoKKysgIC0tcHJvZ3JhbS1wcmVmaXg9UFJFRklYICAg ICAgICAgICAgcHJlcGVuZCBQUkVGSVggdG8gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKKysgIC0t cHJvZ3JhbS1zdWZmaXg9U1VGRklYICAgICAgICAgICAgYXBwZW5kIFNVRkZJWCB0byBpbnN0YWxs ZWQgcHJvZ3JhbSBuYW1lcworKyAgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPVBST0dSQU0gICBy dW4gc2VkIFBST0dSQU0gb24gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKKysKKytTeXN0ZW0gdHlw ZXM6CisrICAtLWJ1aWxkPUJVSUxEICAgICBjb25maWd1cmUgZm9yIGJ1aWxkaW5nIG9uIEJVSUxE IFtndWVzc2VkXQorKyAgLS1ob3N0PUhPU1QgICAgICAgY3Jvc3MtY29tcGlsZSB0byBidWlsZCBw cm9ncmFtcyB0byBydW4gb24gSE9TVCBbQlVJTERdCisrX0FDRU9GCisrZmkKKysKKytpZiB0ZXN0 IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgorKyAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCisrICAg ICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgU09DSSAzLjAuMDoi OzsKKysgICBlc2FjCisrICBjYXQgPDxcX0FDRU9GCisrCisrT3B0aW9uYWwgRmVhdHVyZXM6Cisr ICAtLWRpc2FibGUtb3B0aW9uLWNoZWNraW5nICBpZ25vcmUgdW5yZWNvZ25pemVkIC0tZW5hYmxl Ly0td2l0aCBvcHRpb25zCisrICAtLWRpc2FibGUtRkVBVFVSRSAgICAgICBkbyBub3QgaW5jbHVk ZSBGRUFUVVJFIChzYW1lIGFzIC0tZW5hYmxlLUZFQVRVUkU9bm8pCisrICAtLWVuYWJsZS1GRUFU VVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCisrICAtLWVuYWJsZS1zaGFyZWRb PVBLR1NdICBidWlsZCBzaGFyZWQgbGlicmFyaWVzIFtkZWZhdWx0PW5vXQorKyAgLS1lbmFibGUt c3RhdGljWz1QS0dTXSAgYnVpbGQgc3RhdGljIGxpYnJhcmllcyBbZGVmYXVsdD15ZXNdCisrICAt LWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCisr ICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVu ZGVuY3kgZXh0cmFjdG9ycworKyAgLS1lbmFibGUtZmFzdC1pbnN0YWxsWz1QS0dTXQorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uIFtkZWZh dWx0PXllc10KKysgIC0tZGlzYWJsZS1saWJ0b29sLWxvY2sgIGF2b2lkIGxvY2tpbmcgKG1pZ2h0 IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcykKKysgIC0tZW5hYmxlLWV4Y2VwdGlvbnMgICAgIGVuYWJs ZSBleGNlcHRpb25zIGhhbmRsaW5nIG1lY2hhbmlzbQorKyAgLS1kaXNhYmxlLWluZm8tZG9jICAg ICAgZG8gbm90IGdlbmVyYXRlIEluZm8gZG9jdW1lbnRhdGlvbgorKyAgLS1kaXNhYmxlLWh0bWwt ZG9jICAgICAgZG8gbm90IGdlbmVyYXRlIEhUTUwgZG9jdW1lbnRhdGlvbgorKyAgLS1lbmFibGUt YnVycmllZC1oZWFkZXJzCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIGhlYWRl ciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZQorKyAgLS1lbmFibGUtbXlzcWwtYnVy cmllZC1oZWFkZXJzCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIE15U1FMIGhl YWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5CisrICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3R1cmUKKysgIC0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzCisrICAgICAg ICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZyb20g YSBkaXJlY3RvcnkKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZQorKyAgLS1l bmFibGUtYmFja2VuZC1teXNxbCAgYnVpbGQtaW4gTXlTUUwgYmFja2VuZCBzdXBwb3J0IFtkZWZh dWx0PW5vXQorKyAgLS1lbmFibGUtYmFja2VuZC1vcmFjbGUgYnVpbGQtaW4gT1JBQ0xFIGJhY2tl bmQgc3VwcG9ydCBbZGVmYXVsdD1ub10KKysgIC0tZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNxbAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGQtaW4gUG9zdGdyZVNRTCBiYWNrZW5kIHN1 cHBvcnQgW2RlZmF1bHQ9bm9dCisrCisrT3B0aW9uYWwgUGFja2FnZXM6CisrICAtLXdpdGgtUEFD S0FHRVs9QVJHXSAgICB1c2UgUEFDS0FHRSBbQVJHPXllc10KKysgIC0td2l0aG91dC1QQUNLQUdF ICAgICAgIGRvIG5vdCB1c2UgUEFDS0FHRSAoc2FtZSBhcyAtLXdpdGgtUEFDS0FHRT1ubykKKysg IC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0 YWxsZWQgKG9wdGlvbmFsKQorKyAgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXg9UEZYICBFeGVj IHByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpCisrICAtLXdpdGgt Z251LWxkICAgICAgICAgICBhc3N1bWUgdGhlIEMgY29tcGlsZXIgdXNlcyBHTlUgbGQgW2RlZmF1 bHQ9bm9dCisrICAtLXdpdGgtcGljICAgICAgICAgICAgICB0cnkgdG8gdXNlIG9ubHkgUElDL25v bi1QSUMgb2JqZWN0cyBbZGVmYXVsdD11c2UKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGJv dGhdCisrICAtLXdpdGgtdGFnc1s9VEFHU10gICAgICBpbmNsdWRlIGFkZGl0aW9uYWwgY29uZmln dXJhdGlvbnMgW2F1dG9tYXRpY10KKysgIC0td2l0aC1kb2NkaXI9RElSICAgICAgIHNldCBkb2N1 bWVudGF0aW9uIGRpcmVjdG9yeSB0byBESVIKKysgIC0td2l0aC1ib29zdD1ESVIgICAgICAgIHVz ZSBib29zdCAoZGVmYXVsdCBpcyBOTykgLCBzcGVjaWZ5IHRoZSByb290CisrICAgICAgICAgICAg ICAgICAgICAgICAgICBkaXJlY3RvcnkgZm9yIGJvb3N0IGxpYnJhcnkgKG9wdGlvbmFsKQorKyAg LS13aXRoLW15c3FsPVtBUkddICAgICAgdXNlIE15U1FMIGNsaWVudCBsaWJyYXJ5IFtkZWZhdWx0 PXllc10sIG9wdGlvbmFsbHkKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgcGF0 aCB0byBteXNxbF9jb25maWcKKysgIC0td2l0aC1vcmFjbGU9W0RJUl0gICAgIHVzZSBPcmFjbGUg T0NJIEFQSSBmcm9tIGdpdmVuIHBhdGggdG8gT3JhY2xlIGhvbWUKKysgICAgICAgICAgICAgICAg ICAgICAgICAgIGRpcmVjdG9yeQorKyAgLS13aXRoLW9yYWNsZS1pbmNsdWRlPVtESVJdCisrICAg ICAgICAgICAgICAgICAgICAgICAgICB1c2UgT3JhY2xlIE9DSSBBUEkgaGVhZGVycyBmcm9tIGdp dmVuIHBhdGgKKysgIC0td2l0aC1vcmFjbGUtbGliPVtESVJdIHVzZSBPcmFjbGUgT0NJIEFQSSBs aWJyYXJpZXMgZnJvbSBnaXZlbiBwYXRoCisrICAtLXdpdGgtcG9zdGdyZXNxbD1bQVJHXSB1c2Ug UG9zdGdyZVNRTCBsaWJyYXJ5IFtkZWZhdWx0PXllc10sIG9wdGlvbmFsbHkKKysgICAgICAgICAg ICAgICAgICAgICAgICAgIHNwZWNpZnkgcGF0aCB0byBwZ19jb25maWcKKysKKytTb21lIGluZmx1 ZW50aWFsIGVudmlyb25tZW50IHZhcmlhYmxlczoKKysgIENYWCAgICAgICAgIEMrKyBjb21waWxl ciBjb21tYW5kCisrICBDWFhGTEFHUyAgICBDKysgY29tcGlsZXIgZmxhZ3MKKysgIExERkxBR1Mg ICAgIGxpbmtlciBmbGFncywgZS5nLiAtTDxsaWIgZGlyPiBpZiB5b3UgaGF2ZSBsaWJyYXJpZXMg aW4gYQorKyAgICAgICAgICAgICAgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxsaWIgZGlyPgorKyAg TElCUyAgICAgICAgbGlicmFyaWVzIHRvIHBhc3MgdG8gdGhlIGxpbmtlciwgZS5nLiAtbDxsaWJy YXJ5PgorKyAgQ1BQRkxBR1MgICAgQy9DKysvT2JqZWN0aXZlIEMgcHJlcHJvY2Vzc29yIGZsYWdz LCBlLmcuIC1JPGluY2x1ZGUgZGlyPiBpZgorKyAgICAgICAgICAgICAgeW91IGhhdmUgaGVhZGVy cyBpbiBhIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8aW5jbHVkZSBkaXI+CisrICBDWFhDUFAgICAg ICBDKysgcHJlcHJvY2Vzc29yCisrICBDQyAgICAgICAgICBDIGNvbXBpbGVyIGNvbW1hbmQKKysg IENGTEFHUyAgICAgIEMgY29tcGlsZXIgZmxhZ3MKKysgIENQUCAgICAgICAgIEMgcHJlcHJvY2Vz c29yCisrICBGNzcgICAgICAgICBGb3J0cmFuIDc3IGNvbXBpbGVyIGNvbW1hbmQKKysgIEZGTEFH UyAgICAgIEZvcnRyYW4gNzcgY29tcGlsZXIgZmxhZ3MKKysKKytVc2UgdGhlc2UgdmFyaWFibGVz IHRvIG92ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZpZ3VyZScgb3IgdG8gaGVscAor K2l0IHRvIGZpbmQgbGlicmFyaWVzIGFuZCBwcm9ncmFtcyB3aXRoIG5vbnN0YW5kYXJkIG5hbWVz L2xvY2F0aW9ucy4KKysKKytSZXBvcnQgYnVncyB0byA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9y Z2UubmV0Pi4KKytfQUNFT0YKKythY19zdGF0dXM9JD8KKytmaQorKworK2lmIHRlc3QgIiRhY19p bml0X2hlbHAiID0gInJlY3Vyc2l2ZSI7IHRoZW4KKysgICMgSWYgdGhlcmUgYXJlIHN1YmRpcnMs IHJlcG9ydCB0aGVpciBzcGVjaWZpYyAtLWhlbHAuCisrICBmb3IgYWNfZGlyIGluIDogJGFjX3N1 YmRpcnNfYWxsOyBkbyB0ZXN0ICJ4JGFjX2RpciIgPSB4OiAmJiBjb250aW51ZQorKyAgICB0ZXN0 IC1kICIkYWNfZGlyIiB8fAorKyAgICAgIHsgY2QgIiRzcmNkaXIiICYmIGFjX3B3ZD1gcHdkYCAm JiBzcmNkaXI9LiAmJiB0ZXN0IC1kICIkYWNfZGlyIjsgfSB8fAorKyAgICAgIGNvbnRpbnVlCisr ICAgIGFjX2J1aWxkZGlyPS4KKysKKytjYXNlICIkYWNfZGlyIiBpbgorKy4pIGFjX2Rpcl9zdWZm aXg9IGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OworKyopCisr ICBhY19kaXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9dfHwn YAorKyAgIyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgorKyAg YWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAnc3wv W15cXC9dKnwvLi58ZztzfC98fCdgCisrICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGluCisr ICAiIikgYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7CisrICAq KSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKKysgIGVzYWMg OzsKKytlc2FjCisrYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCisrYWNfYWJzX2J1aWxkZGly PSRhY19wd2QkYWNfZGlyX3N1ZmZpeAorKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6Cisr YWNfdG9wX2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4CisrCisrY2FzZSAkc3JjZGlyIGlu CisrICAuKSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisrICAgIGFjX3NyY2Rpcj0uCisr ICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKKysgICAgYWNfYWJzX3RvcF9z cmNkaXI9JGFjX3B3ZCA7OworKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBuYW1l LgorKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OworKyAgICBhY190b3Bfc3Jj ZGlyPSRzcmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7OworKyAgKikgIyBS ZWxhdGl2ZSBuYW1lLgorKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGly JGFjX2Rpcl9zdWZmaXgKKysgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRz cmNkaXIKKysgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7CisrZXNhYwor K2FjX2Fic19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKysKKysgICAg Y2QgIiRhY19kaXIiIHx8IHsgYWNfc3RhdHVzPSQ/OyBjb250aW51ZTsgfQorKyAgICAjIENoZWNr IGZvciBndWVzdGVkIGNvbmZpZ3VyZS4KKysgICAgaWYgdGVzdCAtZiAiJGFjX3NyY2Rpci9jb25m aWd1cmUuZ251IjsgdGhlbgorKyAgICAgIGVjaG8gJiYKKysgICAgICAkU0hFTEwgIiRhY19zcmNk aXIvY29uZmlndXJlLmdudSIgLS1oZWxwPXJlY3Vyc2l2ZQorKyAgICBlbGlmIHRlc3QgLWYgIiRh Y19zcmNkaXIvY29uZmlndXJlIjsgdGhlbgorKyAgICAgIGVjaG8gJiYKKysgICAgICAkU0hFTEwg IiRhY19zcmNkaXIvY29uZmlndXJlIiAtLWhlbHA9cmVjdXJzaXZlCisrICAgIGVsc2UKKysgICAg ICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBubyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9u IGlzIGluICRhY19kaXIiID4mMgorKyAgICBmaSB8fCBhY19zdGF0dXM9JD8KKysgICAgY2QgIiRh Y19wd2QiIHx8IHsgYWNfc3RhdHVzPSQ/OyBicmVhazsgfQorKyAgZG9uZQorIGZpCisgCistZWNo byAnJworLWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBwYXJzZS1wYXJhbWV0ZXJzLnRj bAorLQorLWVjaG8gJycKKy1lY2hvICdDb25maWd1cmUgZG9uZS4nCistZWNobyAnWWVzLCBpdCB3 YXMgc2hvcnQuJworLWVjaG8gJycKKy1lY2hvICdZb3UgY2FuIG5vdyBydW4gbWFrZS4nCisrdGVz dCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAkYWNfc3RhdHVzCisraWYgJGFjX2luaXRfdmVy c2lvbjsgdGhlbgorKyAgY2F0IDw8XF9BQ0VPRgorK1NPQ0kgY29uZmlndXJlIDMuMC4wCisrZ2Vu ZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzCisrCisrQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkz LCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAorKzIwMDIsIDIwMDMs IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KKytnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBk aXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCisrCisrQ29weXJpZ2h0IChDKSAyMDA0LTIwMDkgTWFj aWVqIFNvYmN6YWsgPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKytfQUNFT0YKKysg IGV4aXQKKytmaQorK2NhdCA+Y29uZmlnLmxvZyA8PF9BQ0VPRgorK1RoaXMgZmlsZSBjb250YWlu cyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCisrcnVubmluZyBjb25m aWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KKysK KytJdCB3YXMgY3JlYXRlZCBieSBTT0NJICRhc19tZSAzLjAuMCwgd2hpY2ggd2FzCisrZ2VuZXJh dGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzLiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCisr CisrICAkICQwICRACisrCisrX0FDRU9GCisrZXhlYyA1Pj5jb25maWcubG9nCisreworK2NhdCA8 PF9BU1VOQU1FCisrIyMgLS0tLS0tLS0tICMjCisrIyMgUGxhdGZvcm0uICMjCisrIyMgLS0tLS0t LS0tICMjCisrCisraG9zdG5hbWUgPSBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVs bCB8IHNlZCAxcWAKKyt1bmFtZSAtbSA9IGAodW5hbWUgLW0pIDI+L2Rldi9udWxsIHx8IGVjaG8g dW5rbm93bmAKKyt1bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5r bm93bmAKKyt1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93 bmAKKyt1bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAK KysKKysvdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9udWxs IHx8IGVjaG8gdW5rbm93bmAKKysvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkg Mj4vZGV2L251bGwgICAgIHx8IGVjaG8gdW5rbm93bmAKKysKKysvYmluL2FyY2ggICAgICAgICAg ICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsICAgICAgICAgICAgICB8fCBlY2hvIHVua25v d25gCisrL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4vZGV2 L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAorKy91c3IvY29udmV4L2dldHN5c2luZm8gPSBg KC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKKysv dXNyL2Jpbi9ob3N0aW5mbyAgICAgID0gYCgvdXNyL2Jpbi9ob3N0aW5mbykgMj4vZGV2L251bGwg ICAgICB8fCBlY2hvIHVua25vd25gCisrL2Jpbi9tYWNoaW5lICAgICAgICAgICA9IGAoL2Jpbi9t YWNoaW5lKSAyPi9kZXYvbnVsbCAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAorKy91c3IvYmlu L29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsICAgICAgIHx8 IGVjaG8gdW5rbm93bmAKKysvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZlcnNl KSAyPi9kZXYvbnVsbCAgICAgICAgICB8fCBlY2hvIHVua25vd25gCisrCisrX0FTVU5BTUUKKysK Kythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAk UEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgorKyAgJGFzX2VjaG8gIlBBVEg6ICRhc19kaXIiCisrZG9uZQorK0lGUz0kYXNfc2F2 ZV9JRlMKKysKKyt9ID4mNQorKworK2NhdCA+JjUgPDxfQUNFT0YKKysKKysKKysjIyAtLS0tLS0t LS0tLSAjIworKyMjIENvcmUgdGVzdHMuICMjCisrIyMgLS0tLS0tLS0tLS0gIyMKKysKKytfQUNF T0YKKysKKysKKysjIEtlZXAgYSB0cmFjZSBvZiB0aGUgY29tbWFuZCBsaW5lLgorKyMgU3RyaXAg b3V0IC0tbm8tY3JlYXRlIGFuZCAtLW5vLXJlY3Vyc2lvbiBzbyB0aGV5IGRvIG5vdCBwaWxlIHVw LgorKyMgU3RyaXAgb3V0IC0tc2lsZW50IGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byByZWNvcmQg aXQgZm9yIGZ1dHVyZSBydW5zLgorKyMgQWxzbyBxdW90ZSBhbnkgYXJncyBjb250YWluaW5nIHNo ZWxsIG1ldGEtY2hhcmFjdGVycy4KKysjIE1ha2UgdHdvIHBhc3NlcyB0byBhbGxvdyBmb3IgcHJv cGVyIGR1cGxpY2F0ZS1hcmd1bWVudCBzdXBwcmVzc2lvbi4KKythY19jb25maWd1cmVfYXJncz0K KythY19jb25maWd1cmVfYXJnczA9CisrYWNfY29uZmlndXJlX2FyZ3MxPQorK2FjX211c3Rfa2Vl cF9uZXh0PWZhbHNlCisrZm9yIGFjX3Bhc3MgaW4gMSAyCisrZG8KKysgIGZvciBhY19hcmcKKysg IGRvCisrICAgIGNhc2UgJGFjX2FyZyBpbgorKyAgICAtbm8tY3JlYXRlIHwgLS1uby1jKiB8IC1u IHwgLW5vLXJlY3Vyc2lvbiB8IC0tbm8tciopIGNvbnRpbnVlIDs7CisrICAgIC1xIHwgLXF1aWV0 IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCisrICAgIHwgLXNpbGVu dCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsKQorKyAgICAgIGNvbnRpbnVl IDs7CisrICAgICpcJyopCisrICAgICAgYWNfYXJnPWAkYXNfZWNobyAiJGFjX2FyZyIgfCBzZWQg InMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysgICAgZXNhYworKyAgICBjYXNlICRhY19wYXNzIGlu CisrICAgIDEpIGFjX2NvbmZpZ3VyZV9hcmdzMD0iJGFjX2NvbmZpZ3VyZV9hcmdzMCAnJGFjX2Fy ZyciIDs7CisrICAgIDIpCisrICAgICAgYWNfY29uZmlndXJlX2FyZ3MxPSIkYWNfY29uZmlndXJl X2FyZ3MxICckYWNfYXJnJyIKKysgICAgICBpZiB0ZXN0ICRhY19tdXN0X2tlZXBfbmV4dCA9IHRy dWU7IHRoZW4KKysJYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UgIyBHb3QgdmFsdWUsIGJhY2sgdG8g bm9ybWFsLgorKyAgICAgIGVsc2UKKysJY2FzZSAkYWNfYXJnIGluCisrCSAgKj0qIHwgLS1jb25m aWctY2FjaGUgfCAtQyB8IC1kaXNhYmxlLSogfCAtLWRpc2FibGUtKiBcCisrCSAgfCAtZW5hYmxl LSogfCAtLWVuYWJsZS0qIHwgLWdhcyB8IC0tZyogfCAtbmZwIHwgLS1uZiogXAorKwkgIHwgLXEg fCAtcXVpZXQgfCAtLXEqIHwgLXNpbGVudCB8IC0tc2lsKiB8IC12IHwgLXZlcmIqIFwKKysJICB8 IC13aXRoLSogfCAtLXdpdGgtKiB8IC13aXRob3V0LSogfCAtLXdpdGhvdXQtKiB8IC0teCkKKysJ ICAgIGNhc2UgIiRhY19jb25maWd1cmVfYXJnczAgIiBpbgorKwkgICAgICAiJGFjX2NvbmZpZ3Vy ZV9hcmdzMSIqIiAnJGFjX2FyZycgIiogKSBjb250aW51ZSA7OworKwkgICAgZXNhYworKwkgICAg OzsKKysJICAtKiApIGFjX211c3Rfa2VlcF9uZXh0PXRydWUgOzsKKysJZXNhYworKyAgICAgIGZp CisrICAgICAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2FyZyci CisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9uZQorK2RvbmUKKyskYXNfdW5zZXQgYWNfY29u ZmlndXJlX2FyZ3MwIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MwK3NldH0iICE9IHNldCB8 fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMD07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczA7IH0KKysk YXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MxIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3Mx K3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMT07IGV4cG9ydCBhY19jb25maWd1 cmVfYXJnczE7IH0KKysKKysjIFdoZW4gaW50ZXJydXB0ZWQgb3IgZXhpdCdkLCBjbGVhbnVwIHRl bXBvcmFyeSBmaWxlcywgYW5kIGNvbXBsZXRlCisrIyBjb25maWcubG9nLiAgV2UgcmVtb3ZlIGNv bW1lbnRzIGJlY2F1c2UgYW55d2F5IHRoZSBxdW90ZXMgaW4gdGhlcmUKKysjIHdvdWxkIGNhdXNl IHByb2JsZW1zIG9yIGxvb2sgdWdseS4KKysjIFdBUk5JTkc6IFVzZSAnXCcnIHRvIHJlcHJlc2Vu dCBhbiBhcG9zdHJvcGhlIHdpdGhpbiB0aGUgdHJhcC4KKysjIFdBUk5JTkc6IERvIG5vdCBzdGFy dCB0aGUgdHJhcCBjb2RlIHdpdGggYSBuZXdsaW5lLCBkdWUgdG8gYSBGcmVlQlNEIDQuMCBidWcu CisrdHJhcCAnZXhpdF9zdGF0dXM9JD8KKysgICMgU2F2ZSBpbnRvIGNvbmZpZy5sb2cgc29tZSBp bmZvcm1hdGlvbiB0aGF0IG1pZ2h0IGhlbHAgaW4gZGVidWdnaW5nLgorKyAgeworKyAgICBlY2hv CisrCisrICAgIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgQ2Fj aGUgdmFyaWFibGVzLiAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAg ZWNobworKyAgICAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hh bmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAorKygKKysgIGZvciBhY192YXIgaW4gYChzZXQpIDI+ JjEgfCBzZWQgLW4gJ1wnJ3MvXlwoW2EtekEtWl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3AnXCcn YDsgZG8KKysgICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCisrICAgIGNhc2UgJGFjX3ZhbCBpbiAj KAorKyAgICAqJHthc19ubH0qKQorKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAorKyAgICAgICpf Y3ZfKikgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxl ICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5lIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiYyO30gOzsK KysgICAgICBlc2FjCisrICAgICAgY2FzZSAkYWNfdmFyIGluICMoCisrICAgICAgXyB8IElGUyB8 IGFzX25sKSA7OyAjKAorKyAgICAgIEJBU0hfQVJHViB8IEJBU0hfU09VUkNFKSBldmFsICRhY192 YXI9IDs7ICMoCisrICAgICAgKikgJGFzX3Vuc2V0ICRhY192YXIgOzsKKysgICAgICBlc2FjIDs7 CisrICAgIGVzYWMKKysgIGRvbmUKKysgIChzZXQpIDI+JjEgfAorKyAgICBjYXNlICRhc19ubGAo YWNfc3BhY2U9J1wnJyAnXCcnOyBzZXQpIDI+JjFgIGluICMoCisrICAgICoke2FzX25sfWFjX3Nw YWNlPVwgKikKKysgICAgICBzZWQgLW4gXAorKwkicy8nXCcnLydcJydcXFxcJ1wnJydcJycvZzsK KysJICBzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipc XCkvXFwxPSdcJydcXDInXCcnL3AiCisrICAgICAgOzsgIygKKysgICAgKikKKysgICAgICBzZWQg LW4gIi9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qPS9wIgorKyAgICAgIDs7 CisrICAgIGVzYWMgfAorKyAgICBzb3J0CisrKQorKyAgICBlY2hvCisrCisrICAgIGNhdCA8PFxf QVNCT1gKKysjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIE91dHB1dCB2YXJpYWJsZXMuICMj CisrIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgZWNobworKyAgICBmb3Ig YWNfdmFyIGluICRhY19zdWJzdF92YXJzCisrICAgIGRvCisrICAgICAgZXZhbCBhY192YWw9XCQk YWNfdmFyCisrICAgICAgY2FzZSAkYWNfdmFsIGluCisrICAgICAgKlwnXCcnKikgYWNfdmFsPWAk YXNfZWNobyAiJGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxcXFxcXFwnXCcnJ1wnJy9nImA7 OworKyAgICAgIGVzYWMKKysgICAgICAkYXNfZWNobyAiJGFjX3Zhcj0nXCcnJGFjX3ZhbCdcJyci CisrICAgIGRvbmUgfCBzb3J0CisrICAgIGVjaG8KKysKKysgICAgaWYgdGVzdCAtbiAiJGFjX3N1 YnN0X2ZpbGVzIjsgdGhlbgorKyAgICAgIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLS0t LS0tLS0tICMjCisrIyMgRmlsZSBzdWJzdGl0dXRpb25zLiAjIworKyMjIC0tLS0tLS0tLS0tLS0t LS0tLS0gIyMKKytfQVNCT1gKKysgICAgICBlY2hvCisrICAgICAgZm9yIGFjX3ZhciBpbiAkYWNf c3Vic3RfZmlsZXMKKysgICAgICBkbworKwlldmFsIGFjX3ZhbD1cJCRhY192YXIKKysJY2FzZSAk YWNfdmFsIGluCisrCSpcJ1wnJyopIGFjX3ZhbD1gJGFzX2VjaG8gIiRhY192YWwiIHwgc2VkICJz LydcJycvJ1wnJ1xcXFxcXFxcJ1wnJydcJycvZyJgOzsKKysJZXNhYworKwkkYXNfZWNobyAiJGFj X3Zhcj0nXCcnJGFjX3ZhbCdcJyciCisrICAgICAgZG9uZSB8IHNvcnQKKysgICAgICBlY2hvCisr ICAgIGZpCisrCisrICAgIGlmIHRlc3QgLXMgY29uZmRlZnMuaDsgdGhlbgorKyAgICAgIGNhdCA8 PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLSAjIworKyMjIGNvbmZkZWZzLmguICMjCisrIyMgLS0t LS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgICBlY2hvCisrICAgICAgY2F0IGNvbmZkZWZzLmgK KysgICAgICBlY2hvCisrICAgIGZpCisrICAgIHRlc3QgIiRhY19zaWduYWwiICE9IDAgJiYKKysg ICAgICAkYXNfZWNobyAiJGFzX21lOiBjYXVnaHQgc2lnbmFsICRhY19zaWduYWwiCisrICAgICRh c19lY2hvICIkYXNfbWU6IGV4aXQgJGV4aXRfc3RhdHVzIgorKyAgfSA+JjUKKysgIHJtIC1mIGNv cmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiAmJgorKyAgICBybSAtZiAtciBjb25mdGVzdCogY29u ZmRlZnMqIGNvbmYkJCogJGFjX2NsZWFuX2ZpbGVzICYmCisrICAgIGV4aXQgJGV4aXRfc3RhdHVz CisrJyAwCisrZm9yIGFjX3NpZ25hbCBpbiAxIDIgMTMgMTU7IGRvCisrICB0cmFwICdhY19zaWdu YWw9JyRhY19zaWduYWwnOyB7IChleGl0IDEpOyBleGl0IDE7IH0nICRhY19zaWduYWwKKytkb25l CisrYWNfc2lnbmFsPTAKKysKKysjIGNvbmZkZWZzLmggYXZvaWRzIE9TIGNvbW1hbmQgbGluZSBs ZW5ndGggbGltaXRzIHRoYXQgREVGUyBjYW4gZXhjZWVkLgorK3JtIC1mIC1yIGNvbmZ0ZXN0KiBj b25mZGVmcy5oCisrCisrIyBQcmVkZWZpbmVkIHByZXByb2Nlc3NvciB2YXJpYWJsZXMuCisrCisr Y2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgUEFDS0FHRV9OQU1FICIkUEFDS0FH RV9OQU1FIgorK19BQ0VPRgorKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiJFBBQ0tBR0VfVEFSTkFNRSIKKytfQUNFT0YKKysKKysKKytj YXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiRQQUNL QUdFX1ZFUlNJT04iCisrX0FDRU9GCisrCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgor KyNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiRQQUNLQUdFX1NUUklORyIKKytfQUNFT0YKKysKKysK KytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi JFBBQ0tBR0VfQlVHUkVQT1JUIgorK19BQ0VPRgorKworKworKyMgTGV0IHRoZSBzaXRlIGZpbGUg c2VsZWN0IGFuIGFsdGVybmF0ZSBjYWNoZSBmaWxlIGlmIGl0IHdhbnRzIHRvLgorKyMgUHJlZmVy IGFuIGV4cGxpY2l0bHkgc2VsZWN0ZWQgZmlsZSB0byBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIG9u ZXMuCisrYWNfc2l0ZV9maWxlMT1OT05FCisrYWNfc2l0ZV9maWxlMj1OT05FCisraWYgdGVzdCAt biAiJENPTkZJR19TSVRFIjsgdGhlbgorKyAgYWNfc2l0ZV9maWxlMT0kQ09ORklHX1NJVEUKKytl bGlmIHRlc3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhlbgorKyAgYWNfc2l0ZV9maWxlMT0kcHJl Zml4L3NoYXJlL2NvbmZpZy5zaXRlCisrICBhY19zaXRlX2ZpbGUyPSRwcmVmaXgvZXRjL2NvbmZp Zy5zaXRlCisrZWxzZQorKyAgYWNfc2l0ZV9maWxlMT0kYWNfZGVmYXVsdF9wcmVmaXgvc2hhcmUv Y29uZmlnLnNpdGUKKysgIGFjX3NpdGVfZmlsZTI9JGFjX2RlZmF1bHRfcHJlZml4L2V0Yy9jb25m aWcuc2l0ZQorK2ZpCisrZm9yIGFjX3NpdGVfZmlsZSBpbiAiJGFjX3NpdGVfZmlsZTEiICIkYWNf c2l0ZV9maWxlMiIKKytkbworKyAgdGVzdCAieCRhY19zaXRlX2ZpbGUiID0geE5PTkUgJiYgY29u dGludWUKKysgIGlmIHRlc3QgLXIgIiRhY19zaXRlX2ZpbGUiOyB0aGVuCisrICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIg PiY2O30KKysgICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1CisrICAgIC4gIiRh Y19zaXRlX2ZpbGUiCisrICBmaQorK2RvbmUKKysKKytpZiB0ZXN0IC1yICIkY2FjaGVfZmlsZSI7 IHRoZW4KKysgICMgU29tZSB2ZXJzaW9ucyBvZiBiYXNoIHdpbGwgZmFpbCB0byBzb3VyY2UgL2Rl di9udWxsIChzcGVjaWFsCisrICAjIGZpbGVzIGFjdHVhbGx5KSwgc28gd2UgYXZvaWQgZG9pbmcg dGhhdC4KKysgIGlmIHRlc3QgLWYgIiRjYWNoZV9maWxlIjsgdGhlbgorKyAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgICAgY2FzZSAk Y2FjaGVfZmlsZSBpbgorKyAgICAgIFtcXC9dKiB8ID86W1xcL10qICkgLiAiJGNhY2hlX2ZpbGUi OzsKKysgICAgICAqKSAgICAgICAgICAgICAgICAgICAgICAuICIuLyRjYWNoZV9maWxlIjs7Cisr ICAgIGVzYWMKKysgIGZpCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNy ZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBjcmVhdGlu ZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgID4kY2FjaGVfZmlsZQorK2ZpCisrCisrIyBD aGVjayB0aGF0IHRoZSBwcmVjaW91cyB2YXJpYWJsZXMgc2F2ZWQgaW4gdGhlIGNhY2hlIGhhdmUg a2VwdCB0aGUgc2FtZQorKyMgdmFsdWUuCisrYWNfY2FjaGVfY29ycnVwdGVkPWZhbHNlCisrZm9y IGFjX3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFyczsgZG8KKysgIGV2YWwgYWNfb2xkX3NldD1cJGFj X2N2X2Vudl8ke2FjX3Zhcn1fc2V0CisrICBldmFsIGFjX25ld19zZXQ9XCRhY19lbnZfJHthY192 YXJ9X3NldAorKyAgZXZhbCBhY19vbGRfdmFsPVwkYWNfY3ZfZW52XyR7YWNfdmFyfV92YWx1ZQor KyAgZXZhbCBhY19uZXdfdmFsPVwkYWNfZW52XyR7YWNfdmFyfV92YWx1ZQorKyAgY2FzZSAkYWNf b2xkX3NldCwkYWNfbmV3X3NldCBpbgorKyAgICBzZXQsKQorKyAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwn IGluIHRoZSBwcmV2aW91cyBydW4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBcYCRh Y192YXInIHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiYy O30KKysgICAgICBhY19jYWNoZV9jb3JydXB0ZWQ9OiA7OworKyAgICAsc2V0KQorKyAgICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBp biB0aGUgcHJldmlvdXMgcnVuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNf dmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQorKyAgICAgIGFjX2Nh Y2hlX2NvcnJ1cHRlZD06IDs7CisrICAgICwpOzsKKysgICAgKikKKysgICAgICBpZiB0ZXN0ICJ4 JGFjX29sZF92YWwiICE9ICJ4JGFjX25ld192YWwiOyB0aGVuCisrCSMgZGlmZmVyZW5jZXMgaW4g d2hpdGVzcGFjZSBkbyBub3QgbGVhZCB0byBmYWlsdXJlLgorKwlhY19vbGRfdmFsX3c9YGVjaG8g eCAkYWNfb2xkX3ZhbGAKKysJYWNfbmV3X3ZhbF93PWBlY2hvIHggJGFjX25ld192YWxgCisrCWlm IHRlc3QgIiRhY19vbGRfdmFsX3ciICE9ICIkYWNfbmV3X3ZhbF93IjsgdGhlbgorKwkgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5j ZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFj X3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mMjt9CisrCSAgYWNf Y2FjaGVfY29ycnVwdGVkPToKKysJZWxzZQorKwkgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiB3YXJuaW5nOiBpZ25vcmluZyB3aGl0ZXNwYWNlIGNoYW5nZXMgaW4gXGAkYWNfdmFyJyBzaW5j ZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogd2FybmluZzogaWdu b3Jpbmcgd2hpdGVzcGFjZSBjaGFuZ2VzIGluIFxgJGFjX3Zhcicgc2luY2UgdGhlIHByZXZpb3Vz IHJ1bjoiID4mMjt9CisrCSAgZXZhbCAkYWNfdmFyPVwkYWNfb2xkX3ZhbAorKwlmaQorKwl7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogICBmb3JtZXIgdmFsdWU6ICBcYCRhY19vbGRfdmFsJyIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogICBmb3JtZXIgdmFsdWU6ICBcYCRhY19vbGRfdmFsJyIg PiYyO30KKysJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICAgY3VycmVudCB2YWx1ZTogXGAk YWNfbmV3X3ZhbCciID4mNQorKyRhc19lY2hvICIkYXNfbWU6ICAgY3VycmVudCB2YWx1ZTogXGAk YWNfbmV3X3ZhbCciID4mMjt9CisrICAgICAgZmk7OworKyAgZXNhYworKyAgIyBQYXNzIHByZWNp b3VzIHZhcmlhYmxlcyB0byBjb25maWcuc3RhdHVzLgorKyAgaWYgdGVzdCAiJGFjX25ld19zZXQi ID0gc2V0OyB0aGVuCisrICAgIGNhc2UgJGFjX25ld192YWwgaW4KKysgICAgKlwnKikgYWNfYXJn PSRhY192YXI9YCRhc19lY2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9n ImAgOzsKKysgICAgKikgYWNfYXJnPSRhY192YXI9JGFjX25ld192YWwgOzsKKysgICAgZXNhYwor KyAgICBjYXNlICIgJGFjX2NvbmZpZ3VyZV9hcmdzICIgaW4KKysgICAgICAqIiAnJGFjX2FyZycg IiopIDs7ICMgQXZvaWQgZHVwcy4gIFVzZSBvZiBxdW90ZXMgZW5zdXJlcyBhY2N1cmFjeS4KKysg ICAgICAqKSBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzICckYWNfYXJnJyIg OzsKKysgICAgZXNhYworKyAgZmkKKytkb25lCisraWYgJGFjX2NhY2hlX2NvcnJ1cHRlZDsgdGhl bgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9u bWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQi ID4mMjt9CisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogcnVuIFxgbWFr ZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3ZlciIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3Ig XGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4mMjt9CisrICAgeyAoZXhpdCAxKTsg ZXhpdCAxOyB9OyB9CisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKythY19leHQ9YworK2FjX2NwcD0n JENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQg JENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisr YWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworKworK2FjX2NvbmZpZ19o ZWFkZXJzPSIkYWNfY29uZmlnX2hlYWRlcnMgc29jaS9jb25maWcuaCIKKysKKysKKythY19hdXhf ZGlyPQorK2ZvciBhY19kaXIgaW4gY29uZmlnICIkc3JjZGlyIi9jb25maWc7IGRvCisrICBpZiB0 ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwtc2giOyB0aGVuCisrICAgIGFjX2F1eF9kaXI9JGFjX2Rp cgorKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLXNoIC1jIgorKyAgICBi cmVhaworKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwuc2giOyB0aGVuCisrICAgIGFj X2F1eF9kaXI9JGFjX2RpcgorKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxs LnNoIC1jIgorKyAgICBicmVhaworKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL3NodG9vbCI7IHRo ZW4KKysgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCisrICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhf ZGlyL3NodG9vbCBpbnN0YWxsIC1jIgorKyAgICBicmVhaworKyAgZmkKKytkb25lCisraWYgdGVz dCAteiAiJGFjX2F1eF9kaXIiOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogY2Fubm90IGZpbmQgaW5zdGFsbC1zaCBvciBpbnN0YWxsLnNoIGluIGNvbmZpZyBc IiRzcmNkaXJcIi9jb25maWciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3Qg ZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gY29uZmlnIFwiJHNyY2RpclwiL2NvbmZp ZyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorKworKyMgVGhlc2Ug dGhyZWUgdmFyaWFibGVzIGFyZSB1bmRvY3VtZW50ZWQgYW5kIHVuc3VwcG9ydGVkLAorKyMgYW5k IGFyZSBpbnRlbmRlZCB0byBiZSB3aXRoZHJhd24gaW4gYSBmdXR1cmUgQXV0b2NvbmYgcmVsZWFz ZS4KKysjIFRoZXkgY2FuIGNhdXNlIHNlcmlvdXMgcHJvYmxlbXMgaWYgYSBidWlsZGVyJ3Mgc291 cmNlIHRyZWUgaXMgaW4gYSBkaXJlY3RvcnkKKysjIHdob3NlIGZ1bGwgbmFtZSBjb250YWlucyB1 bnVzdWFsIGNoYXJhY3RlcnMuCisrYWNfY29uZmlnX2d1ZXNzPSIkU0hFTEwgJGFjX2F1eF9kaXIv Y29uZmlnLmd1ZXNzIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgorK2FjX2NvbmZpZ19z dWI9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRo aXMgdmFyLgorK2FjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3VyZSIgICMg UGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KKysKKysKKythbV9fYXBpX3ZlcnNpb249JzEuMTAn CisrCisrIyBGaW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHByb2dy YW0gKGZhc3RlciksCisrIyBzbyBvbmUgc2NyaXB0IGlzIGFzIGdvb2QgYXMgYW5vdGhlci4gIEJ1 dCBhdm9pZCB0aGUgYnJva2VuIG9yCisrIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6CisrIyBTeXNW IC9ldGMvaW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKKysjIFN1bk9TIC91c3IvZXRjL2luc3Rh bGwKKysjIElSSVggL3NiaW4vaW5zdGFsbAorKyMgQUlYIC9iaW4vaW5zdGFsbAorKyMgQW1pZ2FP UyAvQy9pbnN0YWxsLCB3aGljaCBpbnN0YWxscyBib290YmxvY2tzIG9uIGZsb3BweSBkaXNjcwor KyMgQUlYIDQgL3Vzci9iaW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGhvdXQg YSAtZyBmbGFnCisrIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlzaGFuZGxl cyBub25leGlzdGVudCBhcmdzCisrIyBTVlI0IC91c3IvdWNiL2luc3RhbGwsIHdoaWNoIHRyaWVz IHRvIHVzZSB0aGUgbm9uZXhpc3RlbnQgZ3JvdXAgInN0YWZmIgorKyMgT1MvMidzIHN5c3RlbSBp bnN0YWxsLCB3aGljaCBoYXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpYworKyMgLi9p bnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20gLi9p bnN0YWxsLnNoLgorKyMgUmVqZWN0IGluc3RhbGwgcHJvZ3JhbXMgdGhhdCBjYW5ub3QgaW5zdGFs bCBtdWx0aXBsZSBmaWxlcy4KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAiID4mNjsgfQorK2lmIHRlc3QgLXogIiRJ TlNUQUxMIjsgdGhlbgorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8K KysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisr ICAjIEFjY291bnQgZm9yIHBlb3BsZSB3aG8gcHV0IHRyYWlsaW5nIHNsYXNoZXMgaW4gUEFUSCBl bGVtZW50cy4KKytjYXNlICRhc19kaXIvIGluCisrICAuLyB8IC4vLyB8IC9jQy8qIHwgXAorKyAg L2V0Yy8qIHwgL3Vzci9zYmluLyogfCAvdXNyL2V0Yy8qIHwgL3NiaW4vKiB8IC91c3IvYWZzd3Mv YmluLyogfCBcCisrICA/OlxcL29zMlxcL2luc3RhbGxcXC8qIHwgPzpcXC9PUzJcXC9JTlNUQUxM XFwvKiB8IFwKKysgIC91c3IvdWNiLyogKSA7OworKyAgKikKKysgICAgIyBPU0YxIGFuZCBTQ08g T0RUIDMuMCBoYXZlIHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KKysgICAgIyBEb24ndCB1 c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290Cisr ICAgICMgYnkgZGVmYXVsdC4KKysgICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2NvaW5zdCBp bnN0YWxsOyBkbworKyAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9l eHRlbnNpb25zOyBkbworKwlpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB9OyB0aGVu CisrCSAgaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKKysJICAgIGdyZXAgZHNwbXNnICIk YXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICAg ICMgQUlYIGluc3RhbGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVudGlv bi4KKysJICAgIDoKKysJICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCisrCSAgICBn cmVwIHB3cGx1cyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYx OyB0aGVuCisrCSAgICAjIHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3JpcHQgdXNlZCBieSBI UCBwd3BsdXMtLWRvbid0IHVzZS4KKysJICAgIDoKKysJICBlbHNlCisrCSAgICBybSAtcmYgY29u ZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKKysJICAgIGVjaG8gb25lID4gY29u ZnRlc3Qub25lCisrCSAgICBlY2hvIHR3byA+IGNvbmZ0ZXN0LnR3bworKwkgICAgbWtkaXIgY29u ZnRlc3QuZGlyCisrCSAgICBpZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLWMgY29u ZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byAiYHB3ZGAvY29uZnRlc3QuZGlyIiAmJgorKwkgICAgICB0 ZXN0IC1zIGNvbmZ0ZXN0Lm9uZSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LnR3byAmJgorKwkgICAgICB0 ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC5vbmUgJiYKKysJICAgICAgdGVzdCAtcyBjb25m dGVzdC5kaXIvY29uZnRlc3QudHdvCisrCSAgICB0aGVuCisrCSAgICAgIGFjX2N2X3BhdGhfaW5z dGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKKysJICAgICAgYnJlYWsgMwor KwkgICAgZmkKKysJICBmaQorKwlmaQorKyAgICAgIGRvbmUKKysgICAgZG9uZQorKyAgICA7Owor K2VzYWMKKysKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK3JtIC1yZiBjb25mdGVzdC5v bmUgY29uZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgorKworK2ZpCisrICBpZiB0ZXN0ICIke2FjX2N2 X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgICBJTlNUQUxMPSRhY19jdl9wYXRo X2luc3RhbGwKKysgIGVsc2UKKysgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1c2UgdGhlIHNsb3cg c2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQorKyAgICAjIHZhbHVlIGZvciBJTlNUQUxMIHdp dGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCisrICAgICMgYnJlYWsg b3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlzCisrICAg ICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUgbmFtZS4KKysgICAgSU5T VEFMTD0kYWNfaW5zdGFsbF9zaAorKyAgZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRJTlNUQUxMIiA+JjUKKyskYXNfZWNobyAiJElOU1RBTEwiID4mNjsgfQor KworKyMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMgaW4g JHt2YXItdmFsfS4KKysjIEl0IHRoaW5rcyB0aGUgZmlyc3QgY2xvc2UgYnJhY2UgZW5kcyB0aGUg dmFyaWFibGUgc3Vic3RpdHV0aW9uLgorK3Rlc3QgLXogIiRJTlNUQUxMX1BST0dSQU0iICYmIElO U1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKKysKKyt0ZXN0IC16ICIkSU5TVEFMTF9TQ1JJUFQi ICYmIElOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JworKworK3Rlc3QgLXogIiRJTlNUQUxMX0RB VEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCisrCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2Fu ZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBp cyBzYW5lLi4uICIgPiY2OyB9CisrIyBKdXN0IGluIGNhc2UKKytzbGVlcCAxCisrZWNobyB0aW1l c3RhbXAgPiBjb25mdGVzdC5maWxlCisrIyBEbyBgc2V0JyBpbiBhIHN1YnNoZWxsIHNvIHdlIGRv bid0IGNsb2JiZXIgdGhlIGN1cnJlbnQgc2hlbGwncworKyMgYXJndW1lbnRzLiAgTXVzdCB0cnkg LUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQorKyMgc3ltbGluazsgc29t ZSBzeXN0ZW1zIHBsYXkgd2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9kIHRpbWUgb2Ygc3ltbGlua3MK KysjIChlZyBGcmVlQlNEIHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBzeW1saW5rJ3MgY29u dGFpbmluZworKyMgZGlyZWN0b3J5KS4KKytpZiAoCisrICAgc2V0IFggYGxzIC1MdCAkc3JjZGly L2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKKysgICBpZiB0ZXN0ICIkKiIg PSAiWCI7IHRoZW4KKysgICAgICAjIC1MIGRpZG4ndCB3b3JrLgorKyAgICAgIHNldCBYIGBscyAt dCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlYAorKyAgIGZpCisrICAgcm0gLWYgY29u ZnRlc3QuZmlsZQorKyAgIGlmIHRlc3QgIiQqIiAhPSAiWCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25m dGVzdC5maWxlIiBcCisrICAgICAgJiYgdGVzdCAiJCoiICE9ICJYIGNvbmZ0ZXN0LmZpbGUgJHNy Y2Rpci9jb25maWd1cmUiOyB0aGVuCisrCisrICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRo ZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgorKyAgICAgICMgaWYsIGZv ciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKKysgICAg ICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVh bGx5CisrICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNp ZGVyZWQgInNhbmUiLgorKyAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJva2Vu CisrYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IGxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9r ZW4KKythbGlhcyBpbiB5b3VyIGVudmlyb25tZW50IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQorKyAgIGZpCisrCisrICAgdGVzdCAiJDIiID0gY29uZnRlc3QuZmlsZQorKyAg ICkKKyt0aGVuCisrICAgIyBPay4KKysgICA6CisrZWxzZQorKyAgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0 cmlidXRlZCBmaWxlcyEKKytDaGVjayB5b3VyIHN5c3RlbSBjbG9jayIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IG5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1 dGVkIGZpbGVzIQorK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrIiA+JjI7fQorKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKyt0ZXN0ICIkcHJvZ3JhbV9wcmVm aXgiICE9IE5PTkUgJiYKKysgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMmXiYkcHJvZ3JhbV9w cmVmaXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgorKyMgVXNlIGEgZG91YmxlICQgc28gbWFr ZSBpZ25vcmVzIGl0LgorK3Rlc3QgIiRwcm9ncmFtX3N1ZmZpeCIgIT0gTk9ORSAmJgorKyAgcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZT0icyZcJCYkcHJvZ3JhbV9zdWZmaXgmOyRwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lIgorKyMgRG91YmxlIGFueSBcIG9yICQuCisrIyBCeSBkZWZhdWx0IHdhcyBgcyx4 LHgnLCByZW1vdmUgaXQgaWYgdXNlbGVzcy4KKythY19zY3JpcHQ9J3MvW1xcJF0vJiYvZztzLztz LHgseCwkLy8nCisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1gJGFzX2VjaG8gIiRwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lIiB8IHNlZCAiJGFjX3NjcmlwdCJgCisrCisrIyBleHBhbmQgJGFjX2F1eF9k aXIgdG8gYW4gYWJzb2x1dGUgcGF0aAorK2FtX2F1eF9kaXI9YGNkICRhY19hdXhfZGlyICYmIHB3 ZGAKKysKKyt0ZXN0IHgiJHtNSVNTSU5HK3NldH0iID0geHNldCB8fCBNSVNTSU5HPSJcJHtTSEVM TH0gJGFtX2F1eF9kaXIvbWlzc2luZyIKKysjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwKKytp ZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhlbgorKyAgYW1fbWlzc2luZ19ydW49IiRN SVNTSU5HIC0tcnVuICIKKytlbHNlCisrICBhbV9taXNzaW5nX3J1bj0KKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYG1pc3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9y IG1pc3NpbmciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgbWlzc2luZycgc2Ny aXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZyIgPiYyO30KKytmaQorKworK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0IC16ICIkTUtESVJfUCI7IHRoZW4KKysgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0 aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi9vcHQvc2Z3L2JpbgorK2RvCisrICBJRlM9JGFz X3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX3By b2cgaW4gbWtkaXIgZ21rZGlyOyBkbworKwkgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVj dXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrCSAgIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJvZyRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7 IH0gfHwgY29udGludWUKKysJICAgY2FzZSBgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQi IC0tdmVyc2lvbiAyPiYxYCBpbiAjKAorKwkgICAgICdta2RpciAoR05VIGNvcmV1dGlscykgJyog fCBcCisrCSAgICAgJ21rZGlyIChjb3JldXRpbHMpICcqIHwgXAorKwkgICAgICdta2RpciAoZmls ZXV0aWxzKSAnNC4xKikKKysJICAgICAgIGFjX2N2X3BhdGhfbWtkaXI9JGFzX2Rpci8kYWNfcHJv ZyRhY19leGVjX2V4dAorKwkgICAgICAgYnJlYWsgMzs7CisrCSAgIGVzYWMKKysJIGRvbmUKKysg ICAgICAgZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKysKKysgIGlmIHRl c3QgIiR7YWNfY3ZfcGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbgorKyAgICBNS0RJUl9QPSIk YWNfY3ZfcGF0aF9ta2RpciAtcCIKKysgIGVsc2UKKysgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1 c2UgdGhlIHNsb3cgc2hlbGwgc2NyaXB0LiAgRG9uJ3QgY2FjaGUgYQorKyAgICAjIHZhbHVlIGZv ciBNS0RJUl9QIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCisr ICAgICMgYnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0 b3J5IGlzCisrICAgICMgcmVtb3ZlZCwgb3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUgbmFt ZS4KKysgICAgdGVzdCAtZCAuLy0tdmVyc2lvbiAmJiBybWRpciAuLy0tdmVyc2lvbgorKyAgICBN S0RJUl9QPSIkYWNfaW5zdGFsbF9zaCAtZCIKKysgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkTUtESVJfUCIgPiY1CisrJGFzX2VjaG8gIiRNS0RJUl9QIiA+ JjY7IH0KKysKKytta2Rpcl9wPSIkTUtESVJfUCIKKytjYXNlICRta2Rpcl9wIGluCisrICBbXFwv JF0qIHwgPzpbXFwvXSopIDs7CisrICAqLyopIG1rZGlyX3A9IlwkKHRvcF9idWlsZGRpcikvJG1r ZGlyX3AiIDs7CisrZXNhYworKworK2ZvciBhY19wcm9nIGluIGdhd2sgbWF3ayBuYXdrIGF3awor K2RvCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2Fu IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dv cmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfQVdLK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRBV0siOyB0aGVuCisrICBh Y19jdl9wcm9nX0FXSz0iJEFXSyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisr ZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGly IGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K KysgICAgYWNfY3ZfcHJvZ19BV0s9IiRhY19wcm9nIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVh ayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkK KytBV0s9JGFjX2N2X3Byb2dfQVdLCisraWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRBV0siID4mNQorKyRhc19lY2hvICIkQVdL IiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu byIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAgdGVzdCAtbiAiJEFX SyIgJiYgYnJlYWsKKytkb25lCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4gIiA+JjY7IH0K KytzZXQgeCAke01BS0UtbWFrZX0KKythY19tYWtlPWAkYXNfZWNobyAiJDIiIHwgc2VkICdzLysv cC9nOyBzL1teYS16QS1aMC05X10vXy9nJ2AKKytpZiB7IGFzX3Zhcj1hY19jdl9wcm9nX21ha2Vf JHthY19tYWtlfV9zZXQ7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07 IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25m dGVzdC5tYWtlIDw8XF9BQ0VPRgorK1NIRUxMID0gL2Jpbi9zaAorK2FsbDoKKysJQGVjaG8gJ0BA QCUlJT0kKE1BS0UpPUBAQCUlJScKKytfQUNFT0YKKysjIEdOVSBtYWtlIHNvbWV0aW1lcyBwcmlu dHMgIm1ha2VbMV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KKytjYXNl IGAke01BS0UtbWFrZX0gLWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbGAgaW4KKysgICpAQEAl JSU9Pyo9QEBAJSUlKikKKysgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9 eWVzOzsKKysgICopCisrICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PW5v OzsKKytlc2FjCisrcm0gLWYgY29uZnRlc3QubWFrZQorK2ZpCisraWYgZXZhbCB0ZXN0IFwkYWNf Y3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVuCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQor KyAgU0VUX01BS0U9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICBTRVRfTUFLRT0iTUFLRT0ke01B S0UtbWFrZX0iCisrZmkKKysKKytybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAorK21rZGlyIC50c3Qg Mj4vZGV2L251bGwKKytpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KKysgIGFtX19sZWFkaW5nX2RvdD0u CisrZWxzZQorKyAgYW1fX2xlYWRpbmdfZG90PV8KKytmaQorK3JtZGlyIC50c3QgMj4vZGV2L251 bGwKKysKKytpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiOyB0aGVuCisr ICAjIFVzZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRoYXQgbWFr ZSdzIG91dHB1dAorKyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUkuIgorKyAg YW1fX2lzcmM9JyAtSSQoc3JjZGlyKScKKysgICMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFscmVh ZHkgY29uZmlndXJlZAorKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7IHRoZW4K KysgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHNvdXJjZSBkaXJlY3Rv cnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJlIGZpcnN0 IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogc291cmNlIGRpcmVjdG9yeSBhbHJlYWR5 IGNvbmZpZ3VyZWQ7IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhlcmUgZmlyc3QiID4mMjt9Cisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICBmaQorK2ZpCisrCisrIyB0ZXN0IHdoZXRo ZXIgd2UgaGF2ZSBjeWdwYXRoCisraWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRoZW4KKysgIGlm IChjeWdwYXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICBD WUdQQVRIX1c9J2N5Z3BhdGggLXcnCisrICBlbHNlCisrICAgIENZR1BBVEhfVz1lY2hvCisrICBm aQorK2ZpCisrCisrCisrIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgorKyBQ QUNLQUdFPSdzb2NpJworKyBWRVJTSU9OPSczLjAuMCcKKysKKysKKytjYXQgPj5jb25mZGVmcy5o IDw8X0FDRU9GCisrI2RlZmluZSBQQUNLQUdFICIkUEFDS0FHRSIKKytfQUNFT0YKKysKKysKKytj YXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBWRVJTSU9OICIkVkVSU0lPTiIKKytf QUNFT0YKKysKKysjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCisrCisrQUNMT0NBTD0ke0FD TE9DQUwtIiR7YW1fbWlzc2luZ19ydW59YWNsb2NhbC0ke2FtX19hcGlfdmVyc2lvbn0ifQorKwor KworK0FVVE9DT05GPSR7QVVUT0NPTkYtIiR7YW1fbWlzc2luZ19ydW59YXV0b2NvbmYifQorKwor KworK0FVVE9NQUtFPSR7QVVUT01BS0UtIiR7YW1fbWlzc2luZ19ydW59YXV0b21ha2UtJHthbV9f YXBpX3ZlcnNpb259In0KKysKKysKKytBVVRPSEVBREVSPSR7QVVUT0hFQURFUi0iJHthbV9taXNz aW5nX3J1bn1hdXRvaGVhZGVyIn0KKysKKysKKytNQUtFSU5GTz0ke01BS0VJTkZPLSIke2FtX21p c3NpbmdfcnVufW1ha2VpbmZvIn0KKysKKytpbnN0YWxsX3NoPSR7aW5zdGFsbF9zaC0iXCQoU0hF TEwpICRhbV9hdXhfZGlyL2luc3RhbGwtc2gifQorKworKyMgSW5zdGFsbGVkIGJpbmFyaWVzIGFy ZSB1c3VhbGx5IHN0cmlwcGVkIHVzaW5nIGBzdHJpcCcgd2hlbiB0aGUgdXNlcgorKyMgcnVuIGBt YWtlIGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5vdCBiZSB0aGUgcmln aHQKKysjIHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0aW9uIGVudmlyb25tZW50cywgdGhl cmVmb3JlIEF1dG9tYWtlCisrIyB3aWxsIGhvbm9yIHRoZSBgU1RSSVAnIGVudmlyb25tZW50IHZh cmlhYmxlIHRvIG92ZXJydWxlIHRoaXMgcHJvZ3JhbS4KKytpZiB0ZXN0ICIkY3Jvc3NfY29tcGls aW5nIiAhPSBubzsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgor KyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIiwg c28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190 b29sX3ByZWZpeH1zdHJpcDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19TVFJJUCtzZXR9IiA9 IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0 ZXN0IC1uICIkU1RSSVAiOyB0aGVuCisrICBhY19jdl9wcm9nX1NUUklQPSIkU1RSSVAiICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJ RlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFz X3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4 ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3Qg LWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfU1RSSVA9IiR7 YWNfdG9vbF9wcmVmaXh9c3RyaXAiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZp CisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK1NUUklQPSRh Y19jdl9wcm9nX1NUUklQCisraWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFNUUklQIiA+JjUKKyskYXNfZWNobyAiJFNUUklQ IiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBu byIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAt eiAiJGFjX2N2X3Byb2dfU1RSSVAiOyB0aGVuCisrICBhY19jdF9TVFJJUD0kU1RSSVAKKysgICMg RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBzdHJpcDsgYWNfd29yZD0kMgorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zf cHJvZ19hY19jdF9TVFJJUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCisrICBh Y19jdl9wcm9nX2FjX2N0X1NUUklQPSIkYWNfY3RfU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9InN0cmlwIgorKyAg ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19z YXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9TVFJJUD0kYWNfY3ZfcHJvZ19hY19jdF9TVFJJ UAorK2lmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9TVFJJUCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9T VFJJUCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngk YWNfY3RfU1RSSVAiID0geDsgdGhlbgorKyAgICBTVFJJUD0iOiIKKysgIGVsc2UKKysgICAgY2Fz ZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhl ZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNp bmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2Fj X3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgU1RSSVA9JGFjX2N0X1NUUklQCisrICBm aQorK2Vsc2UKKysgIFNUUklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIKKytmaQorKworK2ZpCisrSU5T VEFMTF9TVFJJUF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKKysKKysjIFdlIG5lZWQg YXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBvbgor KyMgc29tZSBwbGF0Zm9ybXMuCisrIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZvciBiYWNrd2FyZCBj b21wYXRpYmlsaXR5LgorKworK0FNVEFSPSR7QU1UQVItIiR7YW1fbWlzc2luZ19ydW59dGFyIn0K KysKKythbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtB TVRBUn0geGYgLScKKysKKysKKysKKysKKysKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13 aXRoLWNwcHVuaXQtcHJlZml4IHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfY3BwdW5pdF9w cmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhfY3BwdW5pdF9wcmVmaXg7 IGNwcHVuaXRfY29uZmlnX3ByZWZpeD0iJHdpdGh2YWwiCisrZWxzZQorKyAgY3BwdW5pdF9jb25m aWdfcHJlZml4PSIiCisrZmkKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLWNwcHVuaXQt ZXhlYy1wcmVmaXggd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9jcHB1bml0X2V4ZWNfcHJl Zml4K3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX2NwcHVuaXRfZXhlY19wcmVm aXg7IGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIkd2l0aHZhbCIKKytlbHNlCisrICBjcHB1 bml0X2NvbmZpZ19leGVjX3ByZWZpeD0iIgorK2ZpCisrCisrCisrICBpZiB0ZXN0IHgkY3BwdW5p dF9jb25maWdfZXhlY19wcmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVuaXRfY29uZmlnX2Fy Z3M9IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX2V4 ZWNfcHJlZml4IgorKyAgICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhzZXQg OyB0aGVuCisrICAgICAgICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVm aXgvYmluL2NwcHVuaXQtY29uZmlnCisrICAgICBmaQorKyAgZmkKKysgIGlmIHRlc3QgeCRjcHB1 bml0X2NvbmZpZ19wcmVmaXggIT0geCA7IHRoZW4KKysgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9 IiRjcHB1bml0X2NvbmZpZ19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZpZ19wcmVmaXgiCisr ICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KKysgICAg ICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmluL2NwcHVuaXQtY29u ZmlnCisrICAgICBmaQorKyAgZmkKKysKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi Y3BwdW5pdC1jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgor K3NldCBkdW1teSBjcHB1bml0LWNvbmZpZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9DUFBV TklUX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBjYXNlICRDUFBVTklUX0NPTkZJRyBpbgorKyAgW1xcL10qIHwgPzpbXFwv XSopCisrICBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHPSIkQ1BQVU5JVF9DT05GSUciICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysgICopCisr ICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAk UEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYm ICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAg IGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi CisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9 JGFzX3NhdmVfSUZTCisrCisrICB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRyIg JiYgYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0ibm8iCisrICA7OworK2VzYWMKKytmaQorK0NQ UFVOSVRfQ09ORklHPSRhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHCisraWYgdGVzdCAtbiAiJENQ UFVOSVRfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJENQUFVOSVRfQ09ORklHIiA+JjUKKyskYXNfZWNobyAiJENQUFVOSVRfQ09ORklHIiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAgY3BwdW5pdF92ZXJzaW9uX21p bj0xLjEwCisrCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIENw cHVuaXQgLSB2ZXJzaW9uID49ICRjcHB1bml0X3ZlcnNpb25fbWluIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgQ3BwdW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRfdmVyc2lvbl9taW4u Li4gIiA+JjY7IH0KKysgIG5vX2NwcHVuaXQ9IiIKKysgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJ RyIgPSAibm8iIDsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgbm9fY3BwdW5pdD15ZXMKKysg IGVsc2UKKysgICAgQ1BQVU5JVF9DRkxBR1M9YCRDUFBVTklUX0NPTkZJRyAtLWNmbGFnc2AKKysg ICAgQ1BQVU5JVF9MSUJTPWAkQ1BQVU5JVF9DT05GSUcgLS1saWJzYAorKyAgICBDUFBVTklUX1ZF UlNJT049YCRDUFBVTklUX0NPTkZJRyAtLXZlcnNpb25gCisrCisrICAgIGNwcHVuaXRfbWFqb3Jf dmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAgICAgc2VkICdzL1wo WzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wxLydgCisrICAgIGNwcHVuaXRfbWlub3Jf dmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAgICAgc2VkICdzL1wo WzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wyLydgCisrICAgIGNwcHVuaXRfbWljcm9f dmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwgXAorKyAgICAgICAgICAgc2VkICdzL1wo WzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wzLydgCisrCisrICAgIGNwcHVuaXRfbWFq b3JfbWluPWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWluIHwgXAorKyAgICAgICAgICAgc2VkICdz L1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wxLydgCisrICAgIGlmIHRlc3QgIngk e2NwcHVuaXRfbWFqb3JfbWlufSIgPSAieCIgOyB0aGVuCisrICAgICAgIGNwcHVuaXRfbWFqb3Jf bWluPTAKKysgICAgZmkKKysKKysgICAgY3BwdW5pdF9taW5vcl9taW49YGVjaG8gJGNwcHVuaXRf dmVyc2lvbl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwp LlwoWzAtOV0qXCkvXDIvJ2AKKysgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taW5vcl9taW59IiA9 ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5pdF9taW5vcl9taW49MAorKyAgICBmaQorKworKyAg ICBjcHB1bml0X21pY3JvX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKKysgICAg ICAgICAgIHNlZCAncy9cKFswLTldKlwpLlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMy8nYAorKyAg ICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21pY3JvX21pbn0iID0gIngiIDsgdGhlbgorKyAgICAgICBj cHB1bml0X21pY3JvX21pbj0wCisrICAgIGZpCisrCisrICAgIGNwcHVuaXRfdmVyc2lvbl9wcm9w ZXI9YGV4cHIgXAorKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPiAkY3BwdW5pdF9t YWpvcl9taW4gXHwgXAorKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAkY3BwdW5p dF9tYWpvcl9taW4gXCYgXAorKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBcPiAkY3Bw dW5pdF9taW5vcl9taW4gXHwgXAorKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPSAk Y3BwdW5pdF9tYWpvcl9taW4gXCYgXAorKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lvbiBc PSAkY3BwdW5pdF9taW5vcl9taW4gXCYgXAorKyAgICAgICAgJGNwcHVuaXRfbWljcm9fdmVyc2lv biBcPj0gJGNwcHVuaXRfbWljcm9fbWluIGAKKysKKysgICAgaWYgdGVzdCAiJGNwcHVuaXRfdmVy c2lvbl9wcm9wZXIiID0gIjEiIDsgdGhlbgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRjcHB1bml0X21ham9yX3ZlcnNpb24uJGNwcHVuaXRfbWlub3JfdmVyc2lv bi4kY3BwdW5pdF9taWNyb192ZXJzaW9uIiA+JjUKKyskYXNfZWNobyAiJGNwcHVuaXRfbWFqb3Jf dmVyc2lvbi4kY3BwdW5pdF9taW5vcl92ZXJzaW9uLiRjcHB1bml0X21pY3JvX3ZlcnNpb24iID4m NjsgfQorKyAgICBlbHNlCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICAgICAgbm9fY3BwdW5pdD15ZXMK KysgICAgZmkKKysgIGZpCisrCisrICBpZiB0ZXN0ICJ4JG5vX2NwcHVuaXQiID0geCA7IHRoZW4K KysgICAgIDoKKysgIGVsc2UKKysgICAgIENQUFVOSVRfQ0ZMQUdTPSIiCisrICAgICBDUFBVTklU X0xJQlM9IiIKKysgICAgIDoKKysgIGZpCisrCisrCisrCisrCisrCisrIGlmIHRlc3QgIngkQ1BQ VU5JVF9MSUJTIiAhPSB4OyB0aGVuCisrICBIQVZFX0NQUFVOSVRfVFJVRT0KKysgIEhBVkVfQ1BQ VU5JVF9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX0NQUFVOSVRfVFJVRT0nIycKKysgIEhBVkVf Q1BQVU5JVF9GQUxTRT0KKytmaQorKworKworKyMgUlBNIHJlbGVhc2UgbnVtYmVyCisrUlBNX1JF TEVBU0U9IjYiCisrCisrCisrIyBTaGFyZWQgbGlicmFyeSB2ZXJzaW9uaW5nCisrR0VORVJJQ19M SUJSQVJZX1ZFUlNJT049IjM6MDowIgorKyMgICAgICAgICAgICAgICAgICAgICAgICB8IHwgfAor KyMgICAgICAgICAgICAgICAgICstLS0tLS0rIHwgKy0tLSsKKysjICAgICAgICAgICAgICAgICB8 ICAgICAgICB8ICAgICB8CisrIyAgICAgICAgICAgICAgY3VycmVudDpyZXZpc2lvbjphZ2UKKysj ICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8CisrIyAgICAgICAgICAgICAgICAgfCAg ICAgICAgfCAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkOwor KyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHNldCB0byB6ZXJvIGlmIGludGVy ZmFjZXMgaGF2ZSBiZWVuCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgcmVt b3ZlZCBvciBjaGFuZ2VkCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgKy0gaW5jcmVtZW50 IGlmIHNvdXJjZSBjb2RlIGhhcyBjaGFuZ2VkOworKyMgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgIHNldCB0byB6ZXJvIGlmIGN1cnJlbnQgaXMgaW5jcmVtZW50ZWQKKysjICAgICAgICAgICAg ICAgICArLSBpbmNyZW1lbnQgaWYgaW50ZXJmYWNlcyBoYXZlIGJlZW4gYWRkZWQsIHJlbW92ZWQK KysjICAgICAgICAgICAgICAgICAgICBvciBjaGFuZ2VkCisrCisrCisrIyBVcGxvYWQgY29tbWFu ZCBmb3IgU291cmNlRm9yZ2UKKytVUExPQURfQ09NTUFORD0ibmNmdHBwdXQgLXYgdXBsb2FkLnNv dXJjZWZvcmdlLm5ldCAvaW5jb21pbmciCisrCisrCisrIyBDaGVjayBmb3IgaG9zdCBhbmQgZGlz YWJsZSBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGluIFdpbmRvd3MKKysjIE1ha2Ugc3VyZSB3 ZSBjYW4gcnVuIGNvbmZpZy5zdWIuCisrJFNIRUxMICIkYWNfYXV4X2Rpci9jb25maWcuc3ViIiBz dW40ID4vZGV2L251bGwgMj4mMSB8fAorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNhbm5vdCBydW4gJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuICRTSEVMTCAkYWNfYXV4X2Rpci9jb25m aWcuc3ViIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZSIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2FjX2N2X2J1aWxkK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGFjX2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcworK3Rlc3QgIngk YWNfYnVpbGRfYWxpYXMiID0geCAmJgorKyAgYWNfYnVpbGRfYWxpYXM9YCRTSEVMTCAiJGFjX2F1 eF9kaXIvY29uZmlnLmd1ZXNzImAKKyt0ZXN0ICJ4JGFjX2J1aWxkX2FsaWFzIiA9IHggJiYKKysg IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQg dHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9y OiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mMjt9Cisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrYWNfY3ZfYnVpbGQ9YCRTSEVMTCAiJGFjX2F1 eF9kaXIvY29uZmlnLnN1YiIgJGFjX2J1aWxkX2FsaWFzYCB8fAorKyAgeyB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6ICRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViICRhY19i dWlsZF9hbGlhcyBmYWlsZWQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkU0hFTEwg JGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMgZmFpbGVkIiA+JjI7fQorKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX2N2X2J1aWxkIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2J1aWxk IiA+JjY7IH0KKytjYXNlICRhY19jdl9idWlsZCBpbgorKyotKi0qKSA7OworKyopIHsgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBi dWlsZCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgdmFsdWUgb2YgY2Fu b25pY2FsIGJ1aWxkIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisrZXNh YworK2J1aWxkPSRhY19jdl9idWlsZAorK2FjX3NhdmVfSUZTPSRJRlM7IElGUz0nLScKKytzZXQg eCAkYWNfY3ZfYnVpbGQKKytzaGlmdAorK2J1aWxkX2NwdT0kMQorK2J1aWxkX3ZlbmRvcj0kMgor K3NoaWZ0OyBzaGlmdAorKyMgUmVtZW1iZXIsIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgSUZTIGlz IHVzZWQgdG8gY3JlYXRlICQqLAorKyMgZXhjZXB0IHdpdGggb2xkIHNoZWxsczoKKytidWlsZF9v cz0kKgorK0lGUz0kYWNfc2F2ZV9JRlMKKytjYXNlICRidWlsZF9vcyBpbiAqXCAqKSBidWlsZF9v cz1gZWNobyAiJGJ1aWxkX29zIiB8IHNlZCAncy8gLy0vZydgOzsgZXNhYworKworKworK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlLi4uICIgPiY2OyB9CisraWYgdGVz dCAiJHthY19jdl9ob3N0K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgIngkaG9zdF9hbGlhcyIgPSB4OyB0aGVuCisrICBh Y19jdl9ob3N0PSRhY19jdl9idWlsZAorK2Vsc2UKKysgIGFjX2N2X2hvc3Q9YCRTSEVMTCAiJGFj X2F1eF9kaXIvY29uZmlnLnN1YiIgJGhvc3RfYWxpYXNgIHx8CisrICAgIHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkaG9z dF9hbGlhcyBmYWlsZWQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkU0hFTEwgJGFj X2F1eF9kaXIvY29uZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQiID4mMjt9CisrICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdl9ob3N0IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2hvc3QiID4m NjsgfQorK2Nhc2UgJGFjX2N2X2hvc3QgaW4KKysqLSotKikgOzsKKysqKSB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCB2YWx1ZSBvZiBjYW5vbmljYWwgaG9zdCIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgdmFsdWUgb2YgY2Fub25pY2Fs IGhvc3QiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKKytlc2FjCisraG9z dD0kYWNfY3ZfaG9zdAorK2FjX3NhdmVfSUZTPSRJRlM7IElGUz0nLScKKytzZXQgeCAkYWNfY3Zf aG9zdAorK3NoaWZ0CisraG9zdF9jcHU9JDEKKytob3N0X3ZlbmRvcj0kMgorK3NoaWZ0OyBzaGlm dAorKyMgUmVtZW1iZXIsIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgSUZTIGlzIHVzZWQgdG8gY3Jl YXRlICQqLAorKyMgZXhjZXB0IHdpdGggb2xkIHNoZWxsczoKKytob3N0X29zPSQqCisrSUZTPSRh Y19zYXZlX0lGUworK2Nhc2UgJGhvc3Rfb3MgaW4gKlwgKikgaG9zdF9vcz1gZWNobyAiJGhvc3Rf b3MiIHwgc2VkICdzLyAvLS9nJ2A7OyBlc2FjCisrCisrCisrY2FzZSAkaG9zdCBpbgorKyAgKi0q LW1zZG9zKiB8ICotKi1nbzMyKiB8ICotKi1taW5ndzMyKiB8ICotKi1jeWd3aW4qIHwgKi0qLXdp bmRvd3MqKQorKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc2hhcmVkIHdhcyBnaXZlbi4K KytpZiB0ZXN0ICIke2VuYWJsZV9zaGFyZWQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZh bD0kZW5hYmxlX3NoYXJlZDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2FzZSAkZW5hYmxl dmFsIGluCisrICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsKKysgICAgbm8pIGVuYWJsZV9z aGFyZWQ9bm8gOzsKKysgICAgKikKKysgICAgICBlbmFibGVfc2hhcmVkPW5vCisrICAgICAgIyBM b29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBz ZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9T RVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKysJSUZTPSIkbHRf c2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisrCSAgZW5hYmxlX3No YXJlZD15ZXMKKysJZmkKKysgICAgICBkb25lCisrICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisr ICAgICAgOzsKKysgICAgZXNhYworK2Vsc2UKKysgIGVuYWJsZV9zaGFyZWQ9bm8KKytmaQorKwor KworKworKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3RhdGljIHdhcyBnaXZlbi4KKytp ZiB0ZXN0ICIke2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0k ZW5hYmxlX3N0YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2FzZSAkZW5hYmxldmFs IGluCisrICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKKysgICAgbm8pIGVuYWJsZV9zdGF0 aWM9bm8gOzsKKysgICAgKikKKysgICAgIGVuYWJsZV9zdGF0aWM9bm8KKysgICAgICAjIExvb2sg YXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFy YXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFS QVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9zYXZl X2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfc3RhdGlj PXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAg ICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5hYmxlX3N0YXRpYz15ZXMKKytmaQorKworKwor KyAgICA7OworKyAgKikKKysgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMg Z2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuCisrICBl bmFibGV2YWw9JGVuYWJsZV9zaGFyZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9CisrICAgIGNhc2Ug JGVuYWJsZXZhbCBpbgorKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7CisrICAgIG5vKSBl bmFibGVfc2hhcmVkPW5vIDs7CisrICAgICopCisrICAgICAgZW5hYmxlX3NoYXJlZD1ubworKyAg ICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9u IGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9 JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlG Uz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVu YWJsZV9zaGFyZWQ9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVf aWZzIgorKyAgICAgIDs7CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfc2hhcmVkPXllcwor K2ZpCisrCisrCisrICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zdGF0aWMgd2FzIGdpdmVu LgorK2lmIHRlc3QgIiR7ZW5hYmxlX3N0YXRpYytzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxl dmFsPSRlbmFibGVfc3RhdGljOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFi bGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVfc3RhdGljPXllcyA7OworKyAgICBubykgZW5hYmxl X3N0YXRpYz1ubyA7OworKyAgICAqKQorKyAgICAgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICMg TG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qg c2VwYXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhf U0VQQVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0 X3NhdmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9z dGF0aWM9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgor KyAgICAgIDs7CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfc3RhdGljPW5vCisrZmkKKysK KysKKysKKysgICAgOzsKKytlc2FjCisrCisrIyBDaGVja3MgZm9yIHByb2dyYW1zCisrc2F2ZV9D WFhGTEFHUz0iJENYWEZMQUdTIgorK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorK2lmIHRlc3QgLXogIiRDWFgiOyB0 aGVuCisrICBpZiB0ZXN0IC1uICIkQ0NDIjsgdGhlbgorKyAgICBDWFg9JENDQworKyAgZWxzZQor KyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICBmb3IgYWNfcHJvZyBp biBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZDQyBLQ0MgUkNDIHhsQ19yIHhs QworKyAgZG8KKysgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVm aXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0 IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9n X0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DWFg9IiRDWFgi ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJ RlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfQ1hY PSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgor KyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrQ1hY PSRhY19jdl9wcm9nX0NYWAorK2lmIHRlc3QgLW4gIiRDWFgiOyB0aGVuCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYIiA+JjUKKyskYXNfZWNobyAiJENYWCIgPiY2 OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgICAgdGVzdCAtbiAiJENYWCIg JiYgYnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRDWFgiOyB0aGVuCisrICBhY19j dF9DWFg9JENYWAorKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBncHAgYUNDIENDIGN4eCBjYysr IGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKKytkbworKyAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCisrc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0 X0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19j dF9DWFg9IiRhY19jdF9DWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vs c2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBp biAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisr ICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAg YnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQor K2ZpCisrYWNfY3RfQ1hYPSRhY19jdl9wcm9nX2FjX2N0X0NYWAorK2lmIHRlc3QgLW4gIiRhY19j dF9DWFgiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf Y3RfQ1hYIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0NYWCIgPiY2OyB9CisrZWxzZQorKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIg PiY2OyB9CisrZmkKKysKKysKKysgIHRlc3QgLW4gIiRhY19jdF9DWFgiICYmIGJyZWFrCisrZG9u ZQorKworKyAgaWYgdGVzdCAieCRhY19jdF9DWFgiID0geDsgdGhlbgorKyAgICBDWFg9ImcrKyIK KysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgor K3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3Nz IHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0 cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgQ1hYPSRh Y19jdF9DWFgKKysgIGZpCisrZmkKKysKKysgIGZpCisrZmkKKysjIFByb3ZpZGUgc29tZSBpbmZv cm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCisrJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgQysrIGNvbXBpbGVyIHZlcnNpb24iID4mNQorK3NldCBYICRhY19jb21waWxl CisrYWNfY29tcGlsZXI9JDIKKyt7IChhY190cnk9IiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1 IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+ JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3Ry eT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRh Y19jb21waWxlciAtdiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVz KTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIKKytjYXNlICIoKCRhY190cnki IGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8K KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfQorKworK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOwor K30KKytfQUNFT0YKKythY19jbGVhbl9maWxlc19zYXZlPSRhY19jbGVhbl9maWxlcworK2FjX2Ns ZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgYS5vdXQgYS5vdXQuZFNZTSBhLmV4ZSBiLm91dCIK KysjIFRyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZSB3aXRob3V0IC1vIGZpcnN0LCBkaXNyZWdh cmQgYS5vdXQuCisrIyBJdCB3aWxsIGhlbHAgdXMgZGlhZ25vc2UgYnJva2VuIGNvbXBpbGVycywg YW5kIGZpbmRpbmcgb3V0IGFuIGludHVpdGlvbgorKyMgb2YgZXhlZXh0LgorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0 IGZpbGUgbmFtZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciBk ZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gIiA+JjY7IH0KKythY19saW5rX2RlZmF1bHQ9YCRh c19lY2hvICIkYWNfbGluayIgfCBzZWQgJ3MvIC1vICpjb25mdGVzdFteIF0qLy8nYAorKworKyMg VGhlIHBvc3NpYmxlIG91dHB1dCBmaWxlczoKKythY19maWxlcz0iYS5vdXQgY29uZnRlc3QuZXhl IGNvbmZ0ZXN0IGEuZXhlIGFfb3V0LmV4ZSBiLm91dCBjb25mdGVzdC4qIgorKworK2FjX3JtZmls ZXM9CisrZm9yIGFjX2ZpbGUgaW4gJGFjX2ZpbGVzCisrZG8KKysgIGNhc2UgJGFjX2ZpbGUgaW4K KysgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0g fCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5kU1lNIHwgKi5vIHwgKi5vYmogKSA7 OworKyAgICAqICkgYWNfcm1maWxlcz0iJGFjX3JtZmlsZXMgJGFjX2ZpbGUiOzsKKysgIGVzYWMK Kytkb25lCisrcm0gLWYgJGFjX3JtZmlsZXMKKysKKytpZiB7IChhY190cnk9IiRhY19saW5rX2Rl ZmF1bHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisr ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGlua19kZWZhdWx0Iikg Mj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICMgQXV0 b2NvbmYtMi4xMyBjb3VsZCBzZXQgdGhlIGFjX2N2X2V4ZWV4dCB2YXJpYWJsZSB0byBgbm8nLgor KyMgU28gaWdub3JlIGEgdmFsdWUgb2YgYG5vJywgb3RoZXJ3aXNlIHRoaXMgd291bGQgbGVhZCB0 byBgRVhFRVhUID0gbm8nCisrIyBpbiBhIE1ha2VmaWxlLiAgV2Ugc2hvdWxkIG5vdCBvdmVycmlk ZSBhY19jdl9leGVleHQgaWYgaXQgd2FzIGNhY2hlZCwKKysjIHNvIHRoYXQgdGhlIHVzZXIgY2Fu IHNob3J0LWNpcmN1aXQgdGhpcyB0ZXN0IGZvciBjb21waWxlcnMgdW5rbm93biB0bworKyMgQXV0 b2NvbmYuCisrZm9yIGFjX2ZpbGUgaW4gJGFjX2ZpbGVzICcnCisrZG8KKysgIHRlc3QgLWYgIiRh Y19maWxlIiB8fCBjb250aW51ZQorKyAgY2FzZSAkYWNfZmlsZSBpbgorKyAgICAqLiRhY19leHQg fCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8 ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApCisrCTs7CisrICAgIFthYl0u b3V0ICkKKysJIyBXZSBmb3VuZCB0aGUgZGVmYXVsdCBleGVjdXRhYmxlLCBidXQgZXhlZXh0PScn IGlzIG1vc3QKKysJIyBjZXJ0YWlubHkgcmlnaHQuCisrCWJyZWFrOzsKKysgICAgKi4qICkKKysg ICAgICAgIGlmIHRlc3QgIiR7YWNfY3ZfZXhlZXh0K3NldH0iID0gc2V0ICYmIHRlc3QgIiRhY19j dl9leGVleHQiICE9IG5vOworKwl0aGVuIDo7IGVsc2UKKysJICAgYWNfY3ZfZXhlZXh0PWBleHBy ICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCisrCWZpCisrCSMgV2Ugc2V0IGFjX2N2X2V4 ZWV4dCBoZXJlIGJlY2F1c2UgdGhlIGxhdGVyIHRlc3QgZm9yIGl0IGlzIG5vdAorKwkjIHNhZmU6 IGNyb3NzIGNvbXBpbGVycyBtYXkgbm90IGFkZCB0aGUgc3VmZml4IGlmIGdpdmVuIGFuIGAtbycK KysJIyBhcmd1bWVudCwgc28gd2UgbWF5IG5lZWQgdG8ga25vdyBpdCBhdCB0aGF0IHBvaW50IGFs cmVhZHkuCisrCSMgRXZlbiBpZiB0aGlzIHNlY3Rpb24gbG9va3MgY3J1ZnR5OiBpdCBoYXMgdGhl IGFkdmFudGFnZSBvZgorKwkjIGFjdHVhbGx5IHdvcmtpbmcuCisrCWJyZWFrOzsKKysgICAgKiAp CisrCWJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrdGVzdCAiJGFjX2N2X2V4ZWV4dCIgPSBubyAm JiBhY19jdl9leGVleHQ9CisrCisrZWxzZQorKyAgYWNfZmlsZT0nJworK2ZpCisrCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2ZpbGUiID4mNQorKyRhc19lY2hvICIk YWNfZmlsZSIgPiY2OyB9CisraWYgdGVzdCAteiAiJGFjX2ZpbGUiOyB0aGVuCisrICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6 IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNf cHdkJzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMrKyBj b21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCisrU2VlIFxgY29uZmlnLmxvZycgZm9y IG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBDKysgY29tcGls ZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3Jl IGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQgNzcpOyBleGl0IDc3OyB9OyB9OyB9CisrZmkK KysKKythY19leGVleHQ9JGFjX2N2X2V4ZWV4dAorKworKyMgQ2hlY2sgdGhhdCB0aGUgY29tcGls ZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVyCisrIyB0 aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBjb21waWxlLgorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgd29ya3Mi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciB3b3Jr cy4uLiAiID4mNjsgfQorKyMgRklYTUU6IFRoZXNlIGNyb3NzIGNvbXBpbGVyIGhhY2tzIHNob3Vs ZCBiZSByZW1vdmVkIGZvciBBdXRvY29uZiAzLjAKKysjIElmIG5vdCBjcm9zcyBjb21waWxpbmcs IGNoZWNrIHRoYXQgd2UgY2FuIHJ1biBhIHNpbXBsZSBwcm9ncmFtLgorK2lmIHRlc3QgIiRjcm9z c19jb21waWxpbmciICE9IHllczsgdGhlbgorKyAgaWYgeyBhY190cnk9Jy4vJGFjX2ZpbGUnCisr ICB7IChjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY190cnkiKSAyPiY1CisrICBhY19z dGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorKyAgICBjcm9zc19jb21waWxp bmc9bm8KKysgIGVsc2UKKysgICAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSBtYXliZTsg dGhlbgorKwljcm9zc19jb21waWxpbmc9eWVzCisrICAgIGVsc2UKKysJeyB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gQysrIGNvbXBpbGVkIHByb2dyYW1zLgorK0lmIHlv dSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgorK1NlZSBcYGNvbmZpZy5s b2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fu bm90IHJ1biBDKysgY29tcGlsZWQgcHJvZ3JhbXMuCisrSWYgeW91IG1lYW50IHRvIGNyb3NzIGNv bXBpbGUsIHVzZSBcYC0taG9zdCcuCisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWls cy4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrICAgIGZpCisrICBm aQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKysk YXNfZWNobyAieWVzIiA+JjY7IH0KKysKKytybSAtZiAtciBhLm91dCBhLm91dC5kU1lNIGEuZXhl IGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCBiLm91dAorK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9m aWxlc19zYXZlCisrIyBDaGVjayB0aGF0IHRoZSBjb21waWxlciBwcm9kdWNlcyBleGVjdXRhYmxl cyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKKysjIHRoZSBjb21waWxlciBpcyBicm9rZW4s IG9yIHdlIGNyb3NzIGNvbXBpbGUuCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uICIgPiY2OyB9CisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNyb3NzX2NvbXBpbGluZyIgPiY1CisrJGFz X2VjaG8gIiRjcm9zc19jb21waWxpbmciID4mNjsgfQorKworK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uICIgPiY2OyB9CisraWYg eyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19s aW5rIikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysg ICMgSWYgYm90aCBgY29uZnRlc3QuZXhlJyBhbmQgYGNvbmZ0ZXN0JyBhcmUgYHByZXNlbnQnICh3 ZWxsLCBvYnNlcnZhYmxlKQorKyMgY2F0Y2ggYGNvbmZ0ZXN0LmV4ZScuICBGb3IgaW5zdGFuY2Ug d2l0aCBDeWd3aW4sIGBscyBjb25mdGVzdCcgd2lsbAorKyMgd29yayBwcm9wZXJseSAoaS5lLiwg cmVmZXIgdG8gYGNvbmZ0ZXN0LmV4ZScpLCB3aGlsZSBpdCB3b24ndCB3aXRoCisrIyBgcm0nLgor K2ZvciBhY19maWxlIGluIGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBjb25mdGVzdC4qOyBkbworKyAg dGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCisrICBjYXNlICRhY19maWxlIGluCisrICAg ICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5i YiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkgOzsKKysg ICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdg CisrCSAgYnJlYWs7OworKyAgICAqICkgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytlbHNlCisr ICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KKyt7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9m IGV4ZWN1dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQgbGluaworK1NlZSBcYGNvbmZpZy5sb2cn IGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90 IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQgbGluawor K1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfTsgfQorK2ZpCisrCisrcm0gLWYgY29uZnRlc3QkYWNfY3ZfZXhlZXh0 CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2V4ZWV4dCIgPiY1 CisrJGFzX2VjaG8gIiRhY19jdl9leGVleHQiID4mNjsgfQorKworK3JtIC1mIGNvbmZ0ZXN0LiRh Y19leHQKKytFWEVFWFQ9JGFjX2N2X2V4ZWV4dAorK2FjX2V4ZWV4dD0kRVhFRVhUCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVz IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcy4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zfb2JqZXh0K3NldH0iID0gc2V0OyB0aGVuCisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9i agorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChl dmFsICIkYWNfY29tcGlsZSIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMp OyB9OyB0aGVuCisrICBmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iaiBjb25m dGVzdC4qOyBkbworKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlOworKyAgY2FzZSAk YWNfZmlsZSBpbgorKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBk YiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gKSA7Owor KyAgICAqKSBhY19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxlIiA6ICcuKlwuXCguKlwpJ2AKKysg ICAgICAgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1CisrCisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFj X3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4m Mjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRl IHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21waWxlCisrU2VlIFxgY29uZmlnLmxv ZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5u b3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQorK1NlZSBc YGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfTsgfQorK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuJGFjX2N2X29iamV4dCBjb25m dGVzdC4kYWNfZXh0CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3Zfb2JqZXh0IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X29iamV4dCIgPiY2OyB9CisrT0JK RVhUPSRhY19jdl9vYmpleHQKKythY19vYmpleHQ9JE9CSkVYVAorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMrKyBjb21w aWxlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhl IEdOVSBDKysgY29tcGlsZXIuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2N4eF9jb21w aWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMu aC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysK KytpbnQKKyttYWluICgpCisreworKyNpZm5kZWYgX19HTlVDX18KKysgICAgICAgY2hva2UgbWUK KysjZW5kaWYKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29i amV4dDsgdGhlbgorKyAgYWNfY29tcGlsZXJfZ251PXllcworK2Vsc2UKKysgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKKysKKysJYWNfY29tcGlsZXJfZ251PW5vCisrZmkKKysKKytybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKythY19j dl9jeHhfY29tcGlsZXJfZ251PSRhY19jb21waWxlcl9nbnUKKysKKytmaQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjUKKysk YXNfZWNobyAiJGFjX2N2X2N4eF9jb21waWxlcl9nbnUiID4mNjsgfQorK2lmIHRlc3QgJGFjX2Nv bXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAgR1hYPXllcworK2Vsc2UKKysgIEdYWD0KKytmaQor K2FjX3Rlc3RfQ1hYRkxBR1M9JHtDWFhGTEFHUytzZXR9CisrYWNfc2F2ZV9DWFhGTEFHUz0kQ1hY RkxBR1MKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ1hY IGFjY2VwdHMgLWciID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2Nl cHRzIC1nLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2N4eF9nK3NldH0iID0g c2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX3Nh dmVfY3h4X3dlcnJvcl9mbGFnPSRhY19jeHhfd2Vycm9yX2ZsYWcKKysgICBhY19jeHhfd2Vycm9y X2ZsYWc9eWVzCisrICAgYWNfY3ZfcHJvZ19jeHhfZz1ubworKyAgIENYWEZMQUdTPSItZyIKKysg ICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21h aW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29u ZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgk YWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19z dGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisr ICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRl c3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19v YmpleHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfY3h4X2c9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQorKworKwlDWFhGTEFHUz0iIgorKyAgICAgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Cisr aWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwg IiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVy MQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0 ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgOgor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3h4X3dlcnJvcl9mbGFn PSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZworKwkgQ1hYRkxBR1M9Ii1nIgorKwkgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisrewor KworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4K KysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Cisr ICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVu CisrICBhY19jdl9wcm9nX2N4eF9nPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKKysKKysKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKysKKytybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICBh Y19jeHhfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jeHhfZyIgPiY1CisrJGFz X2VjaG8gIiRhY19jdl9wcm9nX2N4eF9nIiA+JjY7IH0KKytpZiB0ZXN0ICIkYWNfdGVzdF9DWFhG TEFHUyIgPSBzZXQ7IHRoZW4KKysgIENYWEZMQUdTPSRhY19zYXZlX0NYWEZMQUdTCisrZWxpZiB0 ZXN0ICRhY19jdl9wcm9nX2N4eF9nID0geWVzOyB0aGVuCisrICBpZiB0ZXN0ICIkR1hYIiA9IHll czsgdGhlbgorKyAgICBDWFhGTEFHUz0iLWcgLU8yIgorKyAgZWxzZQorKyAgICBDWFhGTEFHUz0i LWciCisrICBmaQorK2Vsc2UKKysgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgIENY WEZMQUdTPSItTzIiCisrICBlbHNlCisrICAgIENYWEZMQUdTPQorKyAgZmkKKytmaQorK2FjX2V4 dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrREVQ RElSPSIke2FtX19sZWFkaW5nX2RvdH1kZXBzIgorKworK2FjX2NvbmZpZ19jb21tYW5kcz0iJGFj X2NvbmZpZ19jb21tYW5kcyBkZXBmaWxlcyIKKysKKysKKythbV9tYWtlPSR7TUFLRS1tYWtlfQor K2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKKythbV9fZG9pdDoKKysJQGVjaG8gZG9uZQorKy5QSE9O WTogYW1fX2RvaXQKKytFTkQKKysjIElmIHdlIGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3Rp dmUsIGp1c3QgY29tbWVudCBvdXQgdGhlIGNvZGUuCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2UiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21h a2UuLi4gIiA+JjY7IH0KKythbV9faW5jbHVkZT0iIyIKKythbV9fcXVvdGU9CisrX2FtX3Jlc3Vs dD1ub25lCisrIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytlY2hvICJpbmNs dWRlIGNvbmZpbmMiID4gY29uZm1mCisrIyBXZSBncmVwIG91dCBgRW50ZXJpbmcgZGlyZWN0b3J5 JyBhbmQgYExlYXZpbmcgZGlyZWN0b3J5JworKyMgbWVzc2FnZXMgd2hpY2ggY2FuIG9jY3VyIGlm IGB3JyBlbmRzIHVwIGluIE1BS0VGTEFHUy4KKysjIEluIHBhcnRpY3VsYXIgd2UgZG9uJ3QgbG9v ayBhdCBgXm1ha2U6JyBiZWNhdXNlIEdOVSBtYWtlIG1pZ2h0CisrIyBiZSBpbnZva2VkIHVuZGVy IHNvbWUgb3RoZXIgbmFtZSAodXN1YWxseSAiZ21ha2UiKSwgaW4gd2hpY2gKKysjIGNhc2UgaXQg cHJpbnRzIGl0cyBuZXcgbmFtZSBpbnN0ZWFkIG9mIGBtYWtlJy4KKytpZiB0ZXN0ICJgJGFtX21h a2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbCB8IGdyZXAgLXYgJ2luZyBkaXJlY3RvcnknYCIg PSAiZG9uZSI7IHRoZW4KKysgICBhbV9faW5jbHVkZT1pbmNsdWRlCisrICAgYW1fX3F1b3RlPQor KyAgIF9hbV9yZXN1bHQ9R05VCisrZmkKKysjIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVk ZS4KKytpZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVuCisrICAgZWNobyAnLmluY2x1 ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgorKyAgIGlmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25m bWYgMj4gL2Rldi9udWxsYCIgPSAiZG9uZSI7IHRoZW4KKysgICAgICBhbV9faW5jbHVkZT0uaW5j bHVkZQorKyAgICAgIGFtX19xdW90ZT0iXCIiCisrICAgICAgX2FtX3Jlc3VsdD1CU0QKKysgICBm aQorK2ZpCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJF9hbV9y ZXN1bHQiID4mNQorKyRhc19lY2hvICIkX2FtX3Jlc3VsdCIgPiY2OyB9Cisrcm0gLWYgY29uZmlu YyBjb25mbWYKKysKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2lu ZyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZytzZXR9 IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZzsK KytmaQorKworK2lmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubzsg dGhlbgorKyAgYW1fZGVwY29tcD0iJGFjX2F1eF9kaXIvZGVwY29tcCIKKysgIEFNREVQQkFDS1NM QVNIPSdcJworK2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9 IHhubzsgdGhlbgorKyAgQU1ERVBfVFJVRT0KKysgIEFNREVQX0ZBTFNFPScjJworK2Vsc2UKKysg IEFNREVQX1RSVUU9JyMnCisrICBBTURFUF9GQUxTRT0KKytmaQorKworKworKworK2RlcGNjPSIk Q1hYIiAgYW1fY29tcGlsZXJfbGlzdD0KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4K KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAteiAiJEFN REVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhlbgorKyAgIyBXZSBtYWtlIGEg c3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUuICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cAor KyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZl ciByZW1vdmUuICBGb3IKKysgICMgaW5zdGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAt VVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCisrICAjIG1ha2luZyBhIGR1bW15IGZpbGUgbmFt ZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0aGUgb3V0cHV0CisrICAjIGluIEQn LgorKyAgbWtkaXIgY29uZnRlc3QuZGlyCisrICAjIENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVj YXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQorKyAgIyB1c2luZyBhIHJl bGF0aXZlIGRpcmVjdG9yeS4KKysgIGNwICIkYW1fZGVwY29tcCIgY29uZnRlc3QuZGlyCisrICBj ZCBjb25mdGVzdC5kaXIKKysgICMgV2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNp ZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQorKyAgIyBpdCBoZWxwcyB0byBkZXRlY3QgaW5h cHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFuY2UKKysgICMgYm90aCBUcnU2 NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0IGRlcGVuZGVuY2llcyBhcyBhCisr ICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBl bmRlbmNpZXMgaW4KKysgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwg cHV0IHRoZW0gaW4gdGhlIG9iamVjdAorKyAgIyBkaXJlY3RvcnkuCisrICBta2RpciBzdWIKKysK KysgIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCisrICBpZiB0ZXN0 ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAiIjsgdGhlbgorKyAgICAgYW1fY29tcGlsZXJfbGlzdD1g c2VkIC1uICdzL14jKlwoW2EtekEtWjAtOV0qXCkpJC9cMS9wJyA8IC4vZGVwY29tcGAKKysgIGZp CisrICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsgZG8KKysgICAgIyBTZXR1cCBh IHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVzLCBiZWNhdXNlIHNvbWUgY29tcGlsZXJzCisr ICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3 aXRoIFwpLCBhbmQKKysgICAgIyB3ZSBzaG91bGQgbm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3 aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgorKyAgICAjCisrICAgICMgV2UgbmVlZCB0byByZWNy ZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUgY29tcGlsZXIgbWF5CisrICAg ICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcgd2l0aCBvYnNjdXJlIGNvbW1h bmQgbGluZXMuCisrICAgICMgVGhpcyBoYXBwZW5zIGF0IGxlYXN0IHdpdGggdGhlIEFJWCBDIGNv bXBpbGVyLgorKyAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKKysgICAgZm9yIGkgaW4gMSAyIDMgNCA1 IDY7IGRvCisrICAgICAgZWNobyAnI2luY2x1ZGUgImNvbmZ0c3QnJGknLmgiJyA+PiBzdWIvY29u ZnRlc3QuYworKyAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRpLmgnIGNyZWF0ZXMgb25s eSBzdWIvY29uZnRzdDEuaCB3aXRoCisrICAgICAgIyBTb2xhcmlzIDgncyB7L3Vzcix9L2Jpbi9z aC4KKysgICAgICB0b3VjaCBzdWIvY29uZnRzdCRpLmgKKysgICAgZG9uZQorKyAgICBlY2hvICIk e2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19xdW90ZX0iID4g Y29uZm1mCisrCisrICAgIGNhc2UgJGRlcG1vZGUgaW4KKysgICAgbm9zaWRlZWZmZWN0KQorKyAg ICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwg c28gdGhleSdsbAorKyAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0 ZWQKKysgICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7 IHRoZW4KKysJY29udGludWUKKysgICAgICBlbHNlCisrCWJyZWFrCisrICAgICAgZmkKKysgICAg ICA7OworKyAgICBub25lKSBicmVhayA7OworKyAgICBlc2FjCisrICAgICMgV2UgY2hlY2sgd2l0 aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgorKyAgICAj IG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5v dCBwcm9wZXJseQorKyAgICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0byBkZXRlY3Qg dGhpcy4KKysgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCisrICAgICAgIHNvdXJjZT1zdWIvY29u ZnRlc3QuYyBvYmplY3Q9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IFwKKysgICAgICAgZGVwZmls ZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKKysgICAgICAg JFNIRUxMIC4vZGVwY29tcCAkZGVwY2MgLWMgLW8gc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1 Yi9jb25mdGVzdC5jIFwKKysgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCisr ICAgICAgIGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+ JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2 L251bGwgMj4mMSAmJgorKyAgICAgICBncmVwIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIv Y29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICAke01BS0UtbWFrZX0gLXMg LWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgICAjIGljYyBkb2Vzbid0IGNo b2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCisrICAg ICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBm b3IgYW55IG1lc3NhZ2UKKysgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQg b3Igbm90IHN1cHBvcnRlZC4KKysgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3 LjEgY29tcGxhaW4gdGh1c2x5OgorKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5n OiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKKysgICAgICAjIFRo ZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgorKyAgICAgICMgICBpY2M6IENvbW1hbmQg bGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCisrICAgICAgaWYgKGdyZXAg J2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8CisrICAgICAgICAgIGdyZXAgJ25vdCBz dXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKKysg ICAgICAgIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQorKyAg ICAgICAgYnJlYWsKKysgICAgICBmaQorKyAgICBmaQorKyAgZG9uZQorKworKyAgY2QgLi4KKysg IHJtIC1yZiBjb25mdGVzdC5kaXIKKytlbHNlCisrICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2Nv bXBpbGVyX3R5cGU9bm9uZQorK2ZpCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjUKKysk YXNfZWNobyAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY2OyB9Cisr Q1hYREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUK KysKKysgaWYKKysgIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBc CisrICAmJiB0ZXN0ICIkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdj YzM7IHRoZW4KKysgIGFtX19mYXN0ZGVwQ1hYX1RSVUU9CisrICBhbV9fZmFzdGRlcENYWF9GQUxT RT0nIycKKytlbHNlCisrICBhbV9fZmFzdGRlcENYWF9UUlVFPScjJworKyAgYW1fX2Zhc3RkZXBD WFhfRkFMU0U9CisrZmkKKysKKysKKythY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3NvciIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3Nvci4uLiAi ID4mNjsgfQorK2lmIHRlc3QgLXogIiRDWFhDUFAiOyB0aGVuCisrICBpZiB0ZXN0ICIke2FjX2N2 X3Byb2dfQ1hYQ1BQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDWFhDUFAgbmVlZHMg dG8gYmUgZXhwYW5kZWQKKysgICAgZm9yIENYWENQUCBpbiAiJENYWCAtRSIgIi9saWIvY3BwIgor KyAgICBkbworKyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKKytmb3IgYWNfY3h4X3ByZXByb2Nf d2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29t ZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9z cy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBp ZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVu IG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5z IHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0 aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisr ICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpZmRlZiBfX1NU RENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5o PgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytpZiB7IChhY190cnk9 IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwg IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9 JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAt ZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFn JGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAg ICAgfTsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysg ICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2ZpCisrCisrcm0g LWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICMgT0ssIHdvcmtzIG9uIHNh bmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCisrICAjIGNh biBiZSBkZXRlY3RlZCBhbmQgaG93LgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KKytfQUNFT0YKKytpZiB7 IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBh Y19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy CisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nf d2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5l cnIKKysgICAgICAgfTsgdGhlbgorKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1 dC4KKytjb250aW51ZQorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysgICMg UGFzc2VzIGJvdGggdGVzdHMuCisrYWNfcHJlcHJvY19vaz06CisrYnJlYWsKKytmaQorKworK3Jt IC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrZG9uZQorKyMgQmVjYXVzZSBv ZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVk LgorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisraWYgJGFjX3ByZXByb2Nf b2s7IHRoZW4KKysgIGJyZWFrCisrZmkKKysKKysgICAgZG9uZQorKyAgICBhY19jdl9wcm9nX0NY WENQUD0kQ1hYQ1BQCisrCisrZmkKKysgIENYWENQUD0kYWNfY3ZfcHJvZ19DWFhDUFAKKytlbHNl CisrICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkQ1hYQ1BQIiA+JjUKKyskYXNfZWNobyAiJENYWENQUCIgPiY2OyB9 CisrYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jeHhfcHJlcHJvY193YXJuX2ZsYWcgaW4g JycgeWVzCisrZG8KKysgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywg c28gY29uZmlndXJpbmcgZ2xpYmMKKysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdv cmtzLgorKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlz IGRlZmluZWQsIHNpbmNlCisrICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5k aW5nIGNvbXBpbGVycy4KKysgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhy b3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAi U3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNhdCA+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBj b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNs dWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisr CQkgICAgIFN5bnRheCBlcnJvcgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25m dGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25m dGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVy MQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxs ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJv cl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisr ICA6CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBCcm9rZW46IGZh aWxzIG9uIHZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5v dyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJlIGRldGVjdGVk IGFuZCBob3cuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVm cy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLwor KyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFj X2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+ L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 OyB0aGVuCisrICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorK2NvbnRpbnVl CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisr c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBQYXNzZXMgYm90aCB0 ZXN0cy4KKythY19wcmVwcm9jX29rPToKKyticmVhaworK2ZpCisrCisrcm0gLWYgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKytkb25lCisrIyBCZWNhdXNlIG9mIGBicmVhaycsIF9B Q19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCisrcm0gLWYgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKytpZiAkYWNfcHJlcHJvY19vazsgdGhlbgorKyAg OgorK2Vsc2UKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRh Y19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+ JjI7fQorK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDKysgcHJlcHJvY2Vz c29yIFwiJENYWENQUFwiIGZhaWxzIHNhbml0eSBjaGVjaworK1NlZSBcYGNvbmZpZy5sb2cnIGZv ciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogQysrIHByZXBy b2Nlc3NvciBcIiRDWFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKKytTZWUgXGBjb25maWcubG9n JyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07 IH0KKytmaQorKworK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21w aWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNf bGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2Nf Y29tcGlsZXJfZ251CisrCisrQ1hYRkxBR1M9IiRzYXZlX0NYWEZMQUdTIgorKyMgRmluZCBhIGdv b2QgaW5zdGFsbCBwcm9ncmFtLiAgV2UgcHJlZmVyIGEgQyBwcm9ncmFtIChmYXN0ZXIpLAorKyMg c28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tl biBvcgorKyMgaW5jb21wYXRpYmxlIHZlcnNpb25zOgorKyMgU3lzViAvZXRjL2luc3RhbGwsIC91 c3Ivc2Jpbi9pbnN0YWxsCisrIyBTdW5PUyAvdXNyL2V0Yy9pbnN0YWxsCisrIyBJUklYIC9zYmlu L2luc3RhbGwKKysjIEFJWCAvYmluL2luc3RhbGwKKysjIEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hp Y2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBmbG9wcHkgZGlzY3MKKysjIEFJWCA0IC91c3IvYmlu L2luc3RhbGxic2QsIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRob3V0IGEgLWcgZmxhZworKyMgQUZT IC91c3IvYWZzd3MvYmluL2luc3RhbGwsIHdoaWNoIG1pc2hhbmRsZXMgbm9uZXhpc3RlbnQgYXJn cworKyMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3aGljaCB0cmllcyB0byB1c2UgdGhlIG5vbmV4 aXN0ZW50IGdyb3VwICJzdGFmZiIKKysjIE9TLzIncyBzeXN0ZW0gaW5zdGFsbCwgd2hpY2ggaGFz IGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2VtYW50aWMKKysjIC4vaW5zdGFsbCwgd2hpY2ggY2Fu IGJlIGVycm9uZW91c2x5IGNyZWF0ZWQgYnkgbWFrZSBmcm9tIC4vaW5zdGFsbC5zaC4KKysjIFJl amVjdCBpbnN0YWxsIHByb2dyYW1zIHRoYXQgY2Fubm90IGluc3RhbGwgbXVsdGlwbGUgZmlsZXMu CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRp YmxlIGluc3RhbGwiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRp YmxlIGluc3RhbGwuLi4gIiA+JjY7IH0KKytpZiB0ZXN0IC16ICIkSU5TVEFMTCI7IHRoZW4KKytp ZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVf SUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgIyBBY2NvdW50IGZvciBw ZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEggZWxlbWVudHMuCisrY2FzZSAk YXNfZGlyLyBpbgorKyAgLi8gfCAuLy8gfCAvY0MvKiB8IFwKKysgIC9ldGMvKiB8IC91c3Ivc2Jp bi8qIHwgL3Vzci9ldGMvKiB8IC9zYmluLyogfCAvdXNyL2Fmc3dzL2Jpbi8qIHwgXAorKyAgPzpc XC9vczJcXC9pbnN0YWxsXFwvKiB8ID86XFwvT1MyXFwvSU5TVEFMTFxcLyogfCBcCisrICAvdXNy L3VjYi8qICkgOzsKKysgICopCisrICAgICMgT1NGMSBhbmQgU0NPIE9EVCAzLjAgaGF2ZSB0aGVp ciBvd24gbmFtZXMgZm9yIGluc3RhbGwuCisrICAgICMgRG9uJ3QgdXNlIGluc3RhbGxic2QgZnJv bSBPU0Ygc2luY2UgaXQgaW5zdGFsbHMgc3R1ZmYgYXMgcm9vdAorKyAgICAjIGJ5IGRlZmF1bHQu CisrICAgIGZvciBhY19wcm9nIGluIGdpbnN0YWxsIHNjb2luc3QgaW5zdGFsbDsgZG8KKysgICAg ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysJ aWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94 ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKwkgIGlmIHRlc3QgJGFj X3Byb2cgPSBpbnN0YWxsICYmCisrCSAgICBncmVwIGRzcG1zZyAiJGFzX2Rpci8kYWNfcHJvZyRh Y19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAgICAjIEFJWCBpbnN0YWxsLiAg SXQgaGFzIGFuIGluY29tcGF0aWJsZSBjYWxsaW5nIGNvbnZlbnRpb24uCisrCSAgICA6CisrCSAg ZWxpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgorKwkgICAgZ3JlcCBwd3BsdXMgIiRhc19k aXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwkgICAgIyBw cm9ncmFtLXNwZWNpZmljIGluc3RhbGwgc2NyaXB0IHVzZWQgYnkgSFAgcHdwbHVzLS1kb24ndCB1 c2UuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgcm0gLXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVz dC50d28gY29uZnRlc3QuZGlyCisrCSAgICBlY2hvIG9uZSA+IGNvbmZ0ZXN0Lm9uZQorKwkgICAg ZWNobyB0d28gPiBjb25mdGVzdC50d28KKysJICAgIG1rZGlyIGNvbmZ0ZXN0LmRpcgorKwkgICAg aWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiIC1jIGNvbmZ0ZXN0Lm9uZSBjb25mdGVz dC50d28gImBwd2RgL2NvbmZ0ZXN0LmRpciIgJiYKKysJICAgICAgdGVzdCAtcyBjb25mdGVzdC5v bmUgJiYgdGVzdCAtcyBjb25mdGVzdC50d28gJiYKKysJICAgICAgdGVzdCAtcyBjb25mdGVzdC5k aXIvY29uZnRlc3Qub25lICYmCisrCSAgICAgIHRlc3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0 LnR3bworKwkgICAgdGhlbgorKwkgICAgICBhY19jdl9wYXRoX2luc3RhbGw9IiRhc19kaXIvJGFj X3Byb2ckYWNfZXhlY19leHQgLWMiCisrCSAgICAgIGJyZWFrIDMKKysJICAgIGZpCisrCSAgZmkK KysJZmkKKysgICAgICBkb25lCisrICAgIGRvbmUKKysgICAgOzsKKytlc2FjCisrCisrZG9uZQor K0lGUz0kYXNfc2F2ZV9JRlMKKysKKytybSAtcmYgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBj b25mdGVzdC5kaXIKKysKKytmaQorKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0 fSIgPSBzZXQ7IHRoZW4KKysgICAgSU5TVEFMTD0kYWNfY3ZfcGF0aF9pbnN0YWxsCisrICBlbHNl CisrICAgICMgQXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIERv bid0IGNhY2hlIGEKKysgICAgIyB2YWx1ZSBmb3IgSU5TVEFMTCB3aXRoaW4gYSBzb3VyY2UgZGly ZWN0b3J5LCBiZWNhdXNlIHRoYXQgd2lsbAorKyAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVz aW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcworKyAgICAjIHJlbW92ZWQsIG9yIGlm IHRoZSB2YWx1ZSBpcyBhIHJlbGF0aXZlIG5hbWUuCisrICAgIElOU1RBTEw9JGFjX2luc3RhbGxf c2gKKysgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkSU5T VEFMTCIgPiY1CisrJGFzX2VjaG8gIiRJTlNUQUxMIiA+JjY7IH0KKysKKysjIFVzZSB0ZXN0IC16 IGJlY2F1c2UgU3VuT1M0IHNoIG1pc2hhbmRsZXMgYnJhY2VzIGluICR7dmFyLXZhbH0uCisrIyBJ dCB0aGlua3MgdGhlIGZpcnN0IGNsb3NlIGJyYWNlIGVuZHMgdGhlIHZhcmlhYmxlIHN1YnN0aXR1 dGlvbi4KKyt0ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAmJiBJTlNUQUxMX1BST0dSQU09JyR7 SU5TVEFMTH0nCisrCisrdGVzdCAteiAiJElOU1RBTExfU0NSSVBUIiAmJiBJTlNUQUxMX1NDUklQ VD0nJHtJTlNUQUxMfScKKysKKyt0ZXN0IC16ICIkSU5TVEFMTF9EQVRBIiAmJiBJTlNUQUxMX0RB VEE9JyR7SU5TVEFMTH0gLW0gNjQ0JworKworKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1mYXN0 LWluc3RhbGwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2Zhc3RfaW5zdGFsbCtzZXR9 IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfZmFzdF9pbnN0YWxsOyBwPSR7UEFD S0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBlbmFibGVf ZmFzdF9pbnN0YWxsPXllcyA7OworKyAgICBubykgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubyA7Owor KyAgICAqKQorKyAgICAgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KKysgICAgICAjIExvb2sgYXQg dGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRv cnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRP UiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9zYXZlX2lm cyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfZmFzdF9pbnN0 YWxsPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysg ICAgICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMKKytm aQorKworKworK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxl PSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGlu az0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29t cGlsZXJfZ251CisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWdjYyIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9 Z2NjOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRDQyI7IHRo ZW4KKysgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3Ig YXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1nY2MiCisrICAgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVf SUZTCisrCisrZmkKKytmaQorK0NDPSRhY19jdl9wcm9nX0NDCisraWYgdGVzdCAtbiAiJENDIjsg dGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKKysk YXNfZWNobyAiJENDIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2Zp CisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQ0MiOyB0aGVuCisrICBhY19jdF9DQz0kQ0MKKysg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgZ2NjOyBhY193b3JkPSQyCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w cm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KKysgIGFjX2N2X3By b2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu CisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNf ZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iZ2NjIgorKyAgICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBi cmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisr ZmkKKythY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQworK2lmIHRlc3QgLW4gIiRhY19jdF9D QyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9D QyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9 CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfQ0MiID0geDsgdGhlbgorKyAgICBDQz0iIgor KyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisr eWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3Mg dG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRy aXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBDQz0kYWNf Y3RfQ0MKKysgIGZpCisrZWxzZQorKyAgQ0M9IiRhY19jdl9wcm9nX0NDIgorK2ZpCisrCisraWYg dGVzdCAteiAiJENDIjsgdGhlbgorKyAgICAgICAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVm aXgiOyB0aGVuCisrICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3By ZWZpeH1jYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1 bW15ICR7YWNfdG9vbF9wcmVmaXh9Y2M7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0 fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg aWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZl X0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4 dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xf cHJlZml4fWNjIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytk b25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytDQz0kYWNfY3ZfcHJvZ19DQwor K2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2 OyB9CisrZmkKKysKKysKKysgIGZpCisrZmkKKytpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCisrICAj IEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgY2M7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2df Q0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExl dCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrICBhY19wcm9nX3JlamVjdGVk PW5vCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIg aW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIg JiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRl bnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgor KyAgICBpZiB0ZXN0ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA9ICIvdXNyL3VjYi9j YyI7IHRoZW4KKysgICAgICAgYWNfcHJvZ19yZWplY3RlZD15ZXMKKysgICAgICAgY29udGludWUK KysgICAgIGZpCisrICAgIGFjX2N2X3Byb2dfQ0M9ImNjIgorKyAgICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBi cmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2lmIHRl c3QgJGFjX3Byb2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KKysgICMgV2UgZm91bmQgYSBib2dvbiBp biB0aGUgcGF0aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVyIHVzZSBpdC4KKysgIHNldCBkdW1teSAk YWNfY3ZfcHJvZ19DQworKyAgc2hpZnQKKysgIGlmIHRlc3QgJCMgIT0gMDsgdGhlbgorKyAgICAj IFdlIGNob3NlIGEgZGlmZmVyZW50IGNvbXBpbGVyIGZyb20gdGhlIGJvZ3VzIG9uZS4KKysgICAg IyBIb3dldmVyLCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNvIHRoZSBib2dvbiB3aWxsIGJl IGNob3NlbgorKyAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBqdXN0IHRoZSBiYXNlbmFtZTsg dXNlIHRoZSBmdWxsIGZpbGUgbmFtZS4KKysgICAgc2hpZnQKKysgICAgYWNfY3ZfcHJvZ19DQz0i JGFzX2Rpci8kYWNfd29yZCR7MSsnICd9JEAiCisrICBmaQorK2ZpCisrZmkKKytmaQorK0NDPSRh Y19jdl9wcm9nX0NDCisraWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKKyskYXNfZWNobyAiJENDIiA+JjY7IH0KKytl bHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFz X2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJENDIjsgdGhl bgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgZm9yIGFjX3Byb2cg aW4gY2wuZXhlCisrICBkbworKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190 b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KKytzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DQz0i JENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbwor KyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysg IGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAg aWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94 ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9n X0NDPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsg MgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisr Q0M9JGFjX2N2X3Byb2dfQ0MKKytpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQorKyRhc19lY2hvICIkQ0MiID4mNjsg fQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK KyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAgIHRlc3QgLW4gIiRDQyIgJiYg YnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KKysgIGFjX2N0X0ND PSRDQworKyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCisrZG8KKysgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgorK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19j dF9DQytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0 X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UK Kythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAk UEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYm ICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAg IGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19wcm9nIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVh ayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkK KythY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQworK2lmIHRlc3QgLW4gIiRhY19jdF9DQyI7 IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DQyIg PiY1CisrJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9Cisr ZmkKKysKKysKKysgIHRlc3QgLW4gIiRhY19jdF9DQyIgJiYgYnJlYWsKKytkb25lCisrCisrICBp ZiB0ZXN0ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KKysgICAgQ0M9IiIKKysgIGVsc2UKKysgICAg Y2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQor K2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgQ0M9JGFjX2N0X0NDCisrICBmaQor K2ZpCisrCisrZmkKKysKKysKKyt0ZXN0IC16ICIkQ0MiICYmIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICisrU2Vl IFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICisrU2VlIFxg Y29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9OyB9CisrCisrIyBQcm92aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNv bXBpbGVyLgorKyRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMgY29tcGls ZXIgdmVyc2lvbiIgPiY1Cisrc2V0IFggJGFjX2NvbXBpbGUKKythY19jb21waWxlcj0kMgorK3sg KGFjX3RyeT0iJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiCisrY2FzZSAiKCgkYWNfdHJ5IiBp bgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK KysgIChldmFsICIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIpIDI+JjUKKysgIGFjX3N0YXR1 cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIChleGl0ICRhY19zdGF0dXMpOyB9CisreyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLXYgPiY1 IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVyIC12ID4mNSIpIDI+ JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9CisreyAoYWNfdHJ5PSIkYWNf Y29tcGlsZXIgLVYgPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBp bGVyIC1WID4mNSIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9Cisr CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVz aW5nIHRoZSBHTlUgQyBjb21waWxlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhl ciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9jX2NvbXBpbGVyX2dudStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZk ZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrI2lmbmRlZiBfX0dOVUNfXworKyAg ICAgICBjaG9rZSBtZQorKyNlbmRpZgorKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxl IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0 LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4m NQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysg IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFn IiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY29tcGlsZXJfZ251PXllcworK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY29tcGlsZXJfZ251PW5vCisrZmkKKysK KytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh Y19leHQKKythY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251CisrCisrZmkKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY19jb21waWxlcl9nbnUi ID4mNQorKyRhc19lY2hvICIkYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNjsgfQorK2lmIHRlc3Qg JGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAgR0NDPXllcworK2Vsc2UKKysgIEdDQz0K KytmaQorK2FjX3Rlc3RfQ0ZMQUdTPSR7Q0ZMQUdTK3NldH0KKythY19zYXZlX0NGTEFHUz0kQ0ZM QUdTCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJENDIGFj Y2VwdHMgLWciID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJENDIGFjY2VwdHMg LWcuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2NfZytzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19zYXZlX2Nf d2Vycm9yX2ZsYWc9JGFjX2Nfd2Vycm9yX2ZsYWcKKysgICBhY19jX3dlcnJvcl9mbGFnPXllcwor KyAgIGFjX2N2X3Byb2dfY2NfZz1ubworKyAgIENGTEFHUz0iLWciCisrICAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKwor KyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAo ZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRl c3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK KysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAg YWNfY3ZfcHJvZ19jY19nPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysK KysJQ0ZMQUdTPSIiCisrICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog Y29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQor K19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19j b21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYwor K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKysk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNv bmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3Qu ZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJv cl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKKysKKysJYWNfY193ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jX3dlcnJvcl9mbGFn CisrCSBDRkxBR1M9Ii1nIgorKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog Y29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQor K19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19j b21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYwor K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKysk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNv bmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3Qu ZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJv cl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY3ZfcHJvZ19jY19nPXllcworK2Vs c2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKworK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisr Cisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k YWNfZXh0CisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICBhY19jX3dlcnJvcl9mbGFnPSRhY19zYXZlX2Nfd2Vy cm9yX2ZsYWcKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19j dl9wcm9nX2NjX2ciID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jY19nIiA+JjY7IH0KKytp ZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCisrICBDRkxBR1M9JGFjX3NhdmVf Q0ZMQUdTCisrZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX2cgPSB5ZXM7IHRoZW4KKysgIGlmIHRl c3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIENGTEFHUz0iLWcgLU8yIgorKyAgZWxzZQorKyAg ICBDRkxBR1M9Ii1nIgorKyAgZmkKKytlbHNlCisrICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhl bgorKyAgICBDRkxBR1M9Ii1PMiIKKysgIGVsc2UKKysgICAgQ0ZMQUdTPQorKyAgZmkKKytmaQor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJENDIG9wdGlvbiB0byBh Y2NlcHQgSVNPIEM4OSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRDQyBvcHRpb24g dG8gYWNjZXB0IElTTyBDODkuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2Nf Yzg5K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGFjX2N2X3Byb2dfY2NfYzg5PW5vCisrYWNfc2F2ZV9DQz0kQ0MKKytjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxzdGRhcmcuaD4KKysj aW5jbHVkZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisrI2luY2x1ZGUgPHN5 cy9zdGF0Lmg+CisrLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBzdG9sZW4gZnJv bSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLworK3N0cnVjdCBidWYgeyBpbnQgeDsgfTsKKytG SUxFICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpOworK3N0 YXRpYyBjaGFyICplIChwLCBpKQorKyAgICAgY2hhciAqKnA7CisrICAgICBpbnQgaTsKKyt7Cisr ICByZXR1cm4gcFtpXTsKKyt9Cisrc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoq LCBpbnQpLCBjaGFyICoqcCwgLi4uKQorK3sKKysgIGNoYXIgKnM7CisrICB2YV9saXN0IHY7Cisr ICB2YV9zdGFydCAodixwKTsKKysgIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50KSk7CisrICB2YV9l bmQgKHYpOworKyAgcmV0dXJuIHM7CisrfQorKworKy8qIE9TRiA0LjAgQ29tcGFxIGNjIGlzIHNv bWUgc29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCisrICAgZnVuY3Rpb24g cHJvdG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFyYWN0ZXIgY29uc3Rh bnRzLgorKyAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0dW5hdGVseSwgaW5z dGVhZCBhcmUgc2lsZW50bHkgdHJlYXRlZAorKyAgIGFzICd4Jy4gIFRoZSBmb2xsb3dpbmcgaW5k dWNlcyBhbiBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRlZCB0byBnZXQKKysgICBwcm9wZXIgQU5T SSBtb2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBvdXQgdHJ1ZSwgZm9y IGFuCisrICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5IHRvIHdyaXRlICdc eDAwJz09MCB0byBnZXQgc29tZXRoaW5nCisrICAgdGhhdCdzIHRydWUgb25seSB3aXRoIC1zdGQu ICAqLworK2ludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/IDEgOiAtMV07CisrCisrLyog SUJNIEMgNiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQsIGJ1dCBpdCByZXBsYWNl cyBtYWNybyBwYXJhbWV0ZXJzCisrICAgaW5zaWRlIHN0cmluZ3MgYW5kIGNoYXJhY3RlciBjb25z dGFudHMuICAqLworKyNkZWZpbmUgRk9PKHgpICd4JworK2ludCB4bGM2X2NjX2FycmF5W0ZPTyhh KSA9PSAneCcgPyAxIDogLTFdOworKworK2ludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOworK3N0 cnVjdCBzMSB7aW50ICgqZikgKGludCBhKTt9OworK3N0cnVjdCBzMiB7aW50ICgqZikgKGRvdWJs ZSBhKTt9OworK2ludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBi dWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOworK2ludCBhcmdjOworK2NoYXIg Kiphcmd2OworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFy Z3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOworKyAgOworKyAgcmV0dXJuIDA7 CisrfQorK19BQ0VPRgorK2ZvciBhY19hcmcgaW4gJycgLXFsYW5nbHZsPWV4dGM4OSAtcWxhbmds dmw9YW5zaSAtc3RkIFwKKysJLUFlICItQWEgLURfSFBVWF9TT1VSQ0UiICItWGMgLURfX0VYVEVO U0lPTlNfXyIKKytkbworKyAgQ0M9IiRhY19zYXZlX0NDICRhY19hcmciCisrICBybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfY2NfYzg5PSRhY19hcmcKKytlbHNlCisrICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0CisrICB0ZXN0ICJ4JGFjX2N2X3Byb2dfY2NfYzg5IiAhPSAieG5v IiAmJiBicmVhaworK2RvbmUKKytybSAtZiBjb25mdGVzdC4kYWNfZXh0CisrQ0M9JGFjX3NhdmVf Q0MKKysKKytmaQorKyMgQUNfQ0FDSEVfVkFMCisrY2FzZSAieCRhY19jdl9wcm9nX2NjX2M4OSIg aW4KKysgIHgpCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vbmUg bmVlZGVkIiA+JjUKKyskYXNfZWNobyAibm9uZSBuZWVkZWQiID4mNjsgfSA7OworKyAgeG5vKQor KyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB1bnN1cHBvcnRlZCIgPiY1 CisrJGFzX2VjaG8gInVuc3VwcG9ydGVkIiA+JjY7IH0gOzsKKysgICopCisrICAgIENDPSIkQ0Mg JGFjX2N2X3Byb2dfY2NfYzg5IgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkYWNfY3ZfcHJvZ19jY19jODkiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jY19j ODkiID4mNjsgfSA7OworK2VzYWMKKysKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQ RkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGls ZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK2RlcGNjPSIkQ0MiICAgYW1fY29tcGls ZXJfbGlzdD0KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZGVwZW5k ZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGRlcGVuZGVu Y3kgc3R5bGUgb2YgJGRlcGNjLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthbV9jdl9DQ19kZXBl bmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVz dCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCisrICAjIFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRo ZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCisrICAjIG1ha2luZyBib2d1 cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgor KyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qg d2lsbCBlbmQgdXAKKysgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVz ZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKKysgICMgaW4gRCcuCisrICBta2RpciBjb25m dGVzdC5kaXIKKysgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3 ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCisrICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5 LgorKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKKysgIGNkIGNvbmZ0ZXN0LmRpcgor KyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVj dG9yeSBiZWNhdXNlCisrICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5k ZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQorKyAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBz dXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKKysgICMgc2lkZSBlZmZlY3Qg b2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2llcyBpbgorKyAg IyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUg b2JqZWN0CisrICAjIGRpcmVjdG9yeS4KKysgIG1rZGlyIHN1YgorKworKyAgYW1fY3ZfQ0NfZGVw ZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xp c3QiID0gIiI7IHRoZW4KKysgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9eIypcKFth LXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCisrICBmaQorKyAgZm9yIGRlcG1vZGUg aW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55 IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycworKyAgICAjIGxpa2UgdG8gd3Jh cCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisrICAg ICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQg YnkgdGhpcy4KKysgICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMg Zm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAgICAjIG92ZXJ3cml0ZSBzb21l IG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgorKyAgICAj IFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KKysgICAgOiA+ IHN1Yi9jb25mdGVzdC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbworKyAgICAgIGVj aG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKKysgICAgICAj IFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmgg d2l0aAorKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCisrICAgICAgdG91Y2gg c3ViL2NvbmZ0c3QkaS5oCisrICAgIGRvbmUKKysgICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHth bV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgorKworKyAgICBj YXNlICRkZXBtb2RlIGluCisrICAgIG5vc2lkZWVmZmVjdCkKKysgICAgICAjIGFmdGVyIHRoaXMg dGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKKysgICAg ICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCisrICAgICAgaWYgdGVz dCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCisrCWNvbnRpbnVl CisrICAgICAgZWxzZQorKwlicmVhaworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgbm9uZSkg YnJlYWsgOzsKKysgICAgZXNhYworKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBm b3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKysgICAgIyBtb2RlLiAgSXQgdHVybnMg b3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKKysgICAg IyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuCisrICAgIGlmIGRl cG1vZGU9JGRlcG1vZGUgXAorKyAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PXN1 Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBcCisrICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBv IHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisrICAgICAgICRTSEVMTCAuL2RlcGNvbXAg JGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuYyBcCisr ICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgorKyAgICAgICBncmVwIHN1Yi9j b25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgIGdy ZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysg ICAgICAgZ3JlcCBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LlBvID4gL2Rl di9udWxsIDI+JjEgJiYKKysgICAgICAgJHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYv bnVsbCAyPiYxOyB0aGVuCisrICAgICAgIyBpY2MgZG9lc24ndCBjaG9rZSBvbiB1bmtub3duIG9w dGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncworKyAgICAgICMgb3IgcmVtYXJrcyAo ZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdlCisr ICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQu CisrICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBhbmQgNy4xIGNvbXBsYWluIHRodXNs eToKKysgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcgb3B0aW9u ICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCisrICAgICAgIyBUaGUgZGlhZ25vc2lzIGNoYW5n ZWQgaW4gaWNjIDguMDoKKysgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgcmVtYXJrOiBvcHRp b24gJy1NUCcgbm90IHN1cHBvcnRlZAorKyAgICAgIGlmIChncmVwICdpZ25vcmluZyBvcHRpb24n IGNvbmZ0ZXN0LmVyciB8fAorKyAgICAgICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBjb25mdGVz dC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCisrICAgICAgICBhbV9jdl9DQ19k ZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQorKyAgICAgICAgYnJlYWsKKysgICAg ICBmaQorKyAgICBmaQorKyAgZG9uZQorKworKyAgY2QgLi4KKysgIHJtIC1yZiBjb25mdGVzdC5k aXIKKytlbHNlCisrICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCisr ZmkKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhbV9jdl9D Q19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1CisrJGFzX2VjaG8gIiRhbV9jdl9DQ19k ZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY2OyB9CisrQ0NERVBNT0RFPWRlcG1vZGU9JGFt X2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCisrCisrIGlmCisrICB0ZXN0ICJ4JGVu YWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAorKyAgJiYgdGVzdCAiJGFtX2N2X0ND X2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KKysgIGFtX19mYXN0ZGVw Q0NfVFJVRT0KKysgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9JyMnCisrZWxzZQorKyAgYW1fX2Zhc3Rk ZXBDQ19UUlVFPScjJworKyAgYW1fX2Zhc3RkZXBDQ19GQUxTRT0KKytmaQorKworKworK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0 cnVuY2F0ZSBvdXRwdXQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBhIHNlZCB0aGF0 IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3Zf cGF0aF9TRUQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBz ZWQgYW5kIGdzZWQuCisrIyBUaGVuIHVzZSB0aGF0IGxpc3Qgb2Ygc2VkJ3MgYXMgb25lcyB0byB0 ZXN0IGZvciB0cnVuY2F0aW9uLgorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgbHRfYWNfcHJvZyBpbiBzZWQgZ3Nl ZDsgZG8KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCisrICAgICAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRsdF9hY19wcm9nJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRsdF9hY19wcm9nJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgorKyAgICAgICAgbHRfYWNfc2VkX2xpc3Q9IiRsdF9hY19zZWRfbGlzdCAkYXNfZGlyLyRs dF9hY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIGZpCisrICAgIGRvbmUKKysgIGRvbmUKKytk b25lCisrSUZTPSRhc19zYXZlX0lGUworK2x0X2FjX21heD0wCisrbHRfYWNfY291bnQ9MAorKyMg QWRkIC91c3IveHBnNC9iaW4vc2VkIGFzIGl0IGlzIHR5cGljYWxseSBmb3VuZCBvbiBTb2xhcmlz CisrIyBhbG9uZyB3aXRoIC9iaW4vc2VkIHRoYXQgdHJ1bmNhdGVzIG91dHB1dC4KKytmb3IgbHRf YWNfc2VkIGluICRsdF9hY19zZWRfbGlzdCAvdXNyL3hwZzQvYmluL3NlZDsgZG8KKysgIHRlc3Qg ISAtZiAkbHRfYWNfc2VkICYmIGNvbnRpbnVlCisrICBjYXQgL2Rldi9udWxsID4gY29uZnRlc3Qu aW4KKysgIGx0X2FjX2NvdW50PTAKKysgIGVjaG8gJEVDSE9fTiAiMDEyMzQ1Njc4OSRFQ0hPX0Mi ID5jb25mdGVzdC5pbgorKyAgIyBDaGVjayBmb3IgR05VIHNlZCBhbmQgc2VsZWN0IGl0IGlmIGl0 IGlzIGZvdW5kLgorKyAgaWYgIiRsdF9hY19zZWQiIC0tdmVyc2lvbiAyPiYxIDwgL2Rldi9udWxs IHwgZ3JlcCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBsdF9jdl9wYXRoX1NFRD0kbHRf YWNfc2VkCisrICAgIGJyZWFrCisrICBmaQorKyAgd2hpbGUgdHJ1ZTsgZG8KKysgICAgY2F0IGNv bmZ0ZXN0LmluIGNvbmZ0ZXN0LmluID5jb25mdGVzdC50bXAKKysgICAgbXYgY29uZnRlc3QudG1w IGNvbmZ0ZXN0LmluCisrICAgIGNwIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0Lm5sCisrICAgIGVjaG8g Pj5jb25mdGVzdC5ubAorKyAgICAkbHRfYWNfc2VkIC1lICdzL2EkLy8nIDwgY29uZnRlc3Qubmwg PmNvbmZ0ZXN0Lm91dCB8fCBicmVhaworKyAgICBjbXAgLXMgY29uZnRlc3Qub3V0IGNvbmZ0ZXN0 Lm5sIHx8IGJyZWFrCisrICAgICMgMTAwMDAgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFu IGVub3VnaAorKyAgICB0ZXN0ICRsdF9hY19jb3VudCAtZ3QgMTAgJiYgYnJlYWsKKysgICAgbHRf YWNfY291bnQ9YGV4cHIgJGx0X2FjX2NvdW50ICsgMWAKKysgICAgaWYgdGVzdCAkbHRfYWNfY291 bnQgLWd0ICRsdF9hY19tYXg7IHRoZW4KKysgICAgICBsdF9hY19tYXg9JGx0X2FjX2NvdW50Cisr ICAgICAgbHRfY3ZfcGF0aF9TRUQ9JGx0X2FjX3NlZAorKyAgICBmaQorKyAgZG9uZQorK2RvbmUK KysKKytmaQorKworK1NFRD0kbHRfY3ZfcGF0aF9TRUQKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkU0VEIiA+JjUKKyskYXNfZWNobyAiJFNFRCIgPiY2OyB9CisrCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxl cyBsb25nIGxpbmVzIGFuZCAtZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGdyZXAg dGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHth Y19jdl9wYXRoX0dSRVArc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAteiAiJEdSRVAiOyB0aGVuCisrICBhY19wYXRoX0dS RVBfZm91bmQ9ZmFsc2UKKysgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVz dCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBn NC9iaW4KKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KKysgIGZvciBhY19wcm9nIGluIGdyZXAgZ2dyZXA7IGRvCisrICAgIGZvciBhY19l eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgICAgIGFjX3Bh dGhfR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIKKysgICAgICB7IHRlc3QgLWYg IiRhY19wYXRoX0dSRVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRoX0dSRVAiOyB9IHx8IGNvbnRp bnVlCisrIyBDaGVjayBmb3IgR05VIGFjX3BhdGhfR1JFUCBhbmQgc2VsZWN0IGl0IGlmIGl0IGlz IGZvdW5kLgorKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX0dSRVAKKytjYXNlIGAiJGFjX3Bh dGhfR1JFUCIgLS12ZXJzaW9uIDI+JjFgIGluCisrKkdOVSopCisrICBhY19jdl9wYXRoX0dSRVA9 IiRhY19wYXRoX0dSRVAiIGFjX3BhdGhfR1JFUF9mb3VuZD06OzsKKysqKQorKyAgYWNfY291bnQ9 MAorKyAgJGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4iY29uZnRlc3QuaW4iCisrICB3aGlsZSA6Cisr ICBkbworKyAgICBjYXQgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1w IgorKyAgICBtdiAiY29uZnRlc3QudG1wIiAiY29uZnRlc3QuaW4iCisrICAgIGNwICJjb25mdGVz dC5pbiIgImNvbmZ0ZXN0Lm5sIgorKyAgICAkYXNfZWNobyAnR1JFUCcgPj4gImNvbmZ0ZXN0Lm5s IgorKyAgICAiJGFjX3BhdGhfR1JFUCIgLWUgJ0dSRVAkJyAtZSAnLShjYW5ub3QgbWF0Y2gpLScg PCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhaworKyAg ICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJy ZWFrCisrICAgIGFjX2NvdW50PWBleHByICRhY19jb3VudCArIDFgCisrICAgIGlmIHRlc3QgJGFj X2NvdW50IC1ndCAke2FjX3BhdGhfR1JFUF9tYXgtMH07IHRoZW4KKysgICAgICAjIEJlc3Qgb25l IHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBhIGJldHRlciBvbmUKKysgICAg ICBhY19jdl9wYXRoX0dSRVA9IiRhY19wYXRoX0dSRVAiCisrICAgICAgYWNfcGF0aF9HUkVQX21h eD0kYWNfY291bnQKKysgICAgZmkKKysgICAgIyAxMCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2Vl bXMgbW9yZSB0aGFuIGVub3VnaAorKyAgICB0ZXN0ICRhY19jb3VudCAtZ3QgMTAgJiYgYnJlYWsK KysgIGRvbmUKKysgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5ubCBj b25mdGVzdC5vdXQ7OworK2VzYWMKKysKKysgICAgICAkYWNfcGF0aF9HUkVQX2ZvdW5kICYmIGJy ZWFrIDMKKysgICAgZG9uZQorKyAgZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrICBp ZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9HUkVQIjsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBncmVwIGNvdWxkIGJlIGZvdW5kIGlu ICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRI X1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9CisrICBmaQorK2Vsc2UKKysgIGFjX2N2X3BhdGhfR1JFUD0kR1JFUAorK2ZpCisrCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcGF0aF9HUkVQIiA+ JjUKKyskYXNfZWNobyAiJGFjX2N2X3BhdGhfR1JFUCIgPiY2OyB9CisrIEdSRVA9IiRhY19jdl9w YXRoX0dSRVAiCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciBlZ3JlcCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGVncmVwLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHthY19jdl9wYXRoX0VHUkVQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIGVjaG8gYSB8ICRHUkVQIC1FICco YXxiKScgPi9kZXYvbnVsbCAyPiYxCisrICAgdGhlbiBhY19jdl9wYXRoX0VHUkVQPSIkR1JFUCAt RSIKKysgICBlbHNlCisrICAgICBpZiB0ZXN0IC16ICIkRUdSRVAiOyB0aGVuCisrICBhY19wYXRo X0VHUkVQX2ZvdW5kPWZhbHNlCisrICAjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5k IHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNy L3hwZzQvYmluCisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfcHJvZyBpbiBlZ3JlcDsgZG8KKysgICAgZm9yIGFjX2V4 ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICAgICAgYWNfcGF0 aF9FR1JFUD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIKKysgICAgICB7IHRlc3QgLWYg IiRhY19wYXRoX0VHUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9FR1JFUCI7IH0gfHwgY29u dGludWUKKysjIENoZWNrIGZvciBHTlUgYWNfcGF0aF9FR1JFUCBhbmQgc2VsZWN0IGl0IGlmIGl0 IGlzIGZvdW5kLgorKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX0VHUkVQCisrY2FzZSBgIiRh Y19wYXRoX0VHUkVQIiAtLXZlcnNpb24gMj4mMWAgaW4KKysqR05VKikKKysgIGFjX2N2X3BhdGhf RUdSRVA9IiRhY19wYXRoX0VHUkVQIiBhY19wYXRoX0VHUkVQX2ZvdW5kPTo7OworKyopCisrICBh Y19jb3VudD0wCisrICAkYXNfZWNob19uIDAxMjM0NTY3ODkgPiJjb25mdGVzdC5pbiIKKysgIHdo aWxlIDoKKysgIGRvCisrICAgIGNhdCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5pbiIgPiJjb25m dGVzdC50bXAiCisrICAgIG12ICJjb25mdGVzdC50bXAiICJjb25mdGVzdC5pbiIKKysgICAgY3Ag ImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QubmwiCisrICAgICRhc19lY2hvICdFR1JFUCcgPj4gImNv bmZ0ZXN0Lm5sIgorKyAgICAiJGFjX3BhdGhfRUdSRVAiICdFR1JFUCQnIDwgImNvbmZ0ZXN0Lm5s IiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJlYWsKKysgICAgZGlmZiAiY29uZnRl c3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8fCBicmVhaworKyAgICBhY19j b3VudD1gZXhwciAkYWNfY291bnQgKyAxYAorKyAgICBpZiB0ZXN0ICRhY19jb3VudCAtZ3QgJHth Y19wYXRoX0VHUkVQX21heC0wfTsgdGhlbgorKyAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZl IGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQorKyAgICAgIGFjX2N2X3BhdGhf RUdSRVA9IiRhY19wYXRoX0VHUkVQIgorKyAgICAgIGFjX3BhdGhfRUdSRVBfbWF4PSRhY19jb3Vu dAorKyAgICBmaQorKyAgICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRo YW4gZW5vdWdoCisrICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAgZG9uZQor KyAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91 dDs7CisrZXNhYworKworKyAgICAgICRhY19wYXRoX0VHUkVQX2ZvdW5kICYmIGJyZWFrIDMKKysg ICAgZG9uZQorKyAgZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrICBpZiB0ZXN0IC16 ICIkYWNfY3ZfcGF0aF9FR1JFUCI7IHRoZW4KKysgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgZWdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgk UEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogbm8gYWNjZXB0YWJsZSBlZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFS QVRPUi91c3IveHBnNC9iaW4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Cisr ICBmaQorK2Vsc2UKKysgIGFjX2N2X3BhdGhfRUdSRVA9JEVHUkVQCisrZmkKKysKKysgICBmaQor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3BhdGhfRUdS RVAiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9FR1JFUCIgPiY2OyB9CisrIEVHUkVQPSIk YWNfY3ZfcGF0aF9FR1JFUCIKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLWdudS1s ZCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbgor KyAgd2l0aHZhbD0kd2l0aF9nbnVfbGQ7IHRlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251 X2xkPXllcworK2Vsc2UKKysgIHdpdGhfZ251X2xkPW5vCisrZmkKKysKKythY19wcm9nPWxkCisr aWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1wcm9n LW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IGxkIHVzZWQgYnkgJENDLi4uICIgPiY2OyB9CisrICBjYXNlICRob3N0IGluCisrICAqLSotbWlu Z3cqKQorKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2gg dXBzZXRzIG1pbmd3CisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4m NSB8IHRyIC1kICdcMDE1J2AgOzsKKysgICopCisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXBy b2ctbmFtZT1sZCkgMj4mNWAgOzsKKysgIGVzYWMKKysgIGNhc2UgJGFjX3Byb2cgaW4KKysgICAg IyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCisrICAgIFtcXC9dKiB8ID86W1xcL10qKQorKyAgICAg IHJlX2RpcmVsdD0nL1teL11bXi9dKi9cLlwuLycKKysgICAgICAjIENhbm9uaWNhbGl6ZSB0aGUg cGF0aG5hbWUgb2YgbGQKKysgICAgICBhY19wcm9nPWBlY2hvICRhY19wcm9nfCAkU0VEICdzJVxc XFwlLyVnJ2AKKysgICAgICB3aGlsZSBlY2hvICRhY19wcm9nIHwgZ3JlcCAiJHJlX2RpcmVsdCIg PiAvZGV2L251bGwgMj4mMTsgZG8KKysJYWNfcHJvZz1gZWNobyAkYWNfcHJvZ3wgJFNFRCAicyUk cmVfZGlyZWx0JS8lImAKKysgICAgICBkb25lCisrICAgICAgdGVzdCAteiAiJExEIiAmJiBMRD0i JGFjX3Byb2ciCisrICAgICAgOzsKKysgICIiKQorKyAgICAjIElmIGl0IGZhaWxzLCB0aGVuIHBy ZXRlbmQgd2UgYXJlbid0IHVzaW5nIEdDQy4KKysgICAgYWNfcHJvZz1sZAorKyAgICA7OworKyAg KikKKysgICAgIyBJZiBpdCBpcyByZWxhdGl2ZSwgdGhlbiBzZWFyY2ggZm9yIHRoZSBmaXJzdCBs ZCBpbiBQQVRILgorKyAgICB3aXRoX2dudV9sZD11bmtub3duCisrICAgIDs7CisrICBlc2FjCisr ZWxpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEdOVSBsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIEdOVSBsZC4uLiAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3Igbm9uLUdOVSBsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIG5vbi1HTlUgbGQuLi4gIiA+JjY7IH0KKytmaQorK2lmIHRlc3QgIiR7bHRfY3ZfcGF0 aF9MRCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCisrICBsdF9zYXZlX2lmcz0iJElGUyI7IElG Uz0kUEFUSF9TRVBBUkFUT1IKKysgIGZvciBhY19kaXIgaW4gJFBBVEg7IGRvCisrICAgIElGUz0i JGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBp ZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9n JGFjX2V4ZWV4dCI7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRhY19wcm9n IgorKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4gIEknZCBy YXRoZXIgdXNlIC0tdmVyc2lvbiwKKysgICAgICAjIGJ1dCBhcHBhcmVudGx5IHNvbWUgdmFyaWFu dHMgb2YgR05VIGxkIG9ubHkgYWNjZXB0IC12LgorKyAgICAgICMgQnJlYWsgb25seSBpZiBpdCB3 YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgorKyAgICAgIGNhc2UgYCIkbHRf Y3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgorKyAgICAgICpHTlUqIHwgKid3aXRo IEJGRCcqKQorKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCisrCTs7CisrICAg ICAgKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYgYnJlYWsKKysJOzsKKysgICAg ICBlc2FjCisrICAgIGZpCisrICBkb25lCisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKytlbHNlCisr ICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdp dGggYSBwYXRoLgorK2ZpCisrZmkKKysKKytMRD0iJGx0X2N2X3BhdGhfTEQiCisraWYgdGVzdCAt biAiJExEIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJExE IiA+JjUKKyskYXNfZWNobyAiJExEIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQor K3Rlc3QgLXogIiRMRCIgJiYgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5v IGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgiID4mMjt9CisrICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 bHRfY3ZfcHJvZ19nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKyAgIyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24gaGVyZSwgYnV0 IGFwcGFyZW50bHkgc29tZSBHTlUgbGRzIG9ubHkgYWNjZXB0IC12LgorK2Nhc2UgYCRMRCAtdiAy PiYxIDwvZGV2L251bGxgIGluCisrKkdOVSogfCAqJ3dpdGggQkZEJyopCisrICBsdF9jdl9wcm9n X2dudV9sZD15ZXMKKysgIDs7CisrKikKKysgIGx0X2N2X3Byb2dfZ251X2xkPW5vCisrICA7Owor K2VzYWMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9w cm9nX2dudV9sZCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2dudV9sZCIgPiY2OyB9Cisr d2l0aF9nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkCisrCisrCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmplY3QgZmlsZXMi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmpl Y3QgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2xkX3JlbG9hZF9mbGFnK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGx0X2N2X2xkX3JlbG9hZF9mbGFnPSctcicKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRsdF9jdl9sZF9yZWxvYWRfZmxhZyIgPiY1CisrJGFzX2VjaG8gIiRsdF9j dl9sZF9yZWxvYWRfZmxhZyIgPiY2OyB9CisrcmVsb2FkX2ZsYWc9JGx0X2N2X2xkX3JlbG9hZF9m bGFnCisrY2FzZSAkcmVsb2FkX2ZsYWcgaW4KKysiIiB8ICIgIiopIDs7CisrKikgcmVsb2FkX2Zs YWc9IiAkcmVsb2FkX2ZsYWciIDs7CisrZXNhYworK3JlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2Zs YWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKytjYXNlICRob3N0X29zIGluCisrICBkYXJ3aW4q KQorKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICAgIHJlbG9hZF9jbWRzPSck TFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycK KysgICAgZWxzZQorKyAgICAgIHJlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1 dCRyZWxvYWRfb2JqcycKKysgICAgZmkKKysgICAgOzsKKytlc2FjCisrCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBCU0QtY29tcGF0aWJsZSBubSIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIEJTRC1jb21wYXRpYmxlIG5tLi4uICIgPiY2OyB9CisraWYg dGVzdCAiJHtsdF9jdl9wYXRoX05NK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiROTSI7IHRoZW4KKysgICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorKyAgbHRfY3ZfcGF0aF9OTT0iJE5NIgorK2Vs c2UKKysgIGx0X25tX3RvX2NoZWNrPSIke2FjX3Rvb2xfcHJlZml4fW5tIgorKyAgaWYgdGVzdCAt biAiJGFjX3Rvb2xfcHJlZml4IiAmJiB0ZXN0ICIkYnVpbGQiID0gIiRob3N0IjsgdGhlbgorKyAg ICBsdF9ubV90b19jaGVjaz0iJGx0X25tX3RvX2NoZWNrIG5tIgorKyAgZmkKKysgIGZvciBsdF90 bXBfbm0gaW4gJGx0X25tX3RvX2NoZWNrOyBkbworKyAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElG Uz0kUEFUSF9TRVBBUkFUT1IKKysgICAgZm9yIGFjX2RpciBpbiAkUEFUSCAvdXNyL2Njcy9iaW4v ZWxmIC91c3IvY2NzL2JpbiAvdXNyL3VjYiAvYmluOyBkbworKyAgICAgIElGUz0iJGx0X3NhdmVf aWZzIgorKyAgICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisrICAgICAgdG1wX25t PSIkYWNfZGlyLyRsdF90bXBfbm0iCisrICAgICAgaWYgdGVzdCAtZiAiJHRtcF9ubSIgfHwgdGVz dCAtZiAiJHRtcF9ubSRhY19leGVleHQiIDsgdGhlbgorKwkjIENoZWNrIHRvIHNlZSBpZiB0aGUg bm0gYWNjZXB0cyBhIEJTRC1jb21wYXQgZmxhZy4KKysJIyBBZGRpbmcgdGhlIGBzZWQgMXEnIHBy ZXZlbnRzIGZhbHNlIHBvc2l0aXZlcyBvbiBIUC1VWCwgd2hpY2ggc2F5czoKKysJIyAgIG5tOiB1 bmtub3duIG9wdGlvbiAiQiIgaWdub3JlZAorKwkjIFRydTY0J3Mgbm0gY29tcGxhaW5zIHRoYXQg L2Rldi9udWxsIGlzIGFuIGludmFsaWQgb2JqZWN0IGZpbGUKKysJY2FzZSBgIiR0bXBfbm0iIC1C IC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCisrCSovZGV2L251bGwqIHwgKidJbnZhbGlk IGZpbGUgb3Igb2JqZWN0IHR5cGUnKikKKysJICBsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1CIgor KwkgIGJyZWFrCisrCSAgOzsKKysJKikKKysJICBjYXNlIGAiJHRtcF9ubSIgLXAgL2Rldi9udWxs IDI+JjEgfCBzZWQgJzFxJ2AgaW4KKysJICAqL2Rldi9udWxsKikKKysJICAgIGx0X2N2X3BhdGhf Tk09IiR0bXBfbm0gLXAiCisrCSAgICBicmVhaworKwkgICAgOzsKKysJICAqKQorKwkgICAgbHRf Y3ZfcGF0aF9OTT0ke2x0X2N2X3BhdGhfTk09IiR0bXBfbm0ifSAjIGtlZXAgdGhlIGZpcnN0IG1h dGNoLCBidXQKKysJICAgIGNvbnRpbnVlICMgc28gdGhhdCB3ZSBjYW4gdHJ5IHRvIGZpbmQgb25l IHRoYXQgc3VwcG9ydHMgQlNEIGZsYWdzCisrCSAgICA7OworKwkgIGVzYWMKKysJICA7OworKwll c2FjCisrICAgICAgZmkKKysgICAgZG9uZQorKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgIGRv bmUKKysgIHRlc3QgLXogIiRsdF9jdl9wYXRoX05NIiAmJiBsdF9jdl9wYXRoX05NPW5tCisrZmkK KytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wYXRoX05N IiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3BhdGhfTk0iID4mNjsgfQorK05NPSIkbHRfY3ZfcGF0 aF9OTSIKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBs biAtcyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3Jr cy4uLiAiID4mNjsgfQorK0xOX1M9JGFzX2xuX3MKKytpZiB0ZXN0ICIkTE5fUyIgPSAibG4gLXMi OyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQor KyRhc19lY2hvICJ5ZXMiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vLCB1c2luZyAkTE5fUyIgPiY1CisrJGFzX2VjaG8gIm5vLCB1c2luZyAk TE5fUyIgPiY2OyB9CisrZmkKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVzIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kK3NldH0iID0gc2V0OyB0 aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X2ZpbGVf bWFnaWNfY21kPSckTUFHSUNfQ01EJworK2x0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPQorK2x0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSd1bmtub3duJworKyMgTmVlZCB0byBzZXQgdGhlIHBy ZWNlZGluZyB2YXJpYWJsZSBvbiBhbGwgcGxhdGZvcm1zIHRoYXQgc3VwcG9ydAorKyMgaW50ZXJs aWJyYXJ5IGRlcGVuZGVuY2llcy4KKysjICdub25lJyAtLSBkZXBlbmRlbmNpZXMgbm90IHN1cHBv cnRlZC4KKysjIGB1bmtub3duJyAtLSBzYW1lIGFzIG5vbmUsIGJ1dCBkb2N1bWVudHMgdGhhdCB3 ZSByZWFsbHkgZG9uJ3Qga25vdy4KKysjICdwYXNzX2FsbCcgLS0gYWxsIGRlcGVuZGVuY2llcyBw YXNzZWQgd2l0aCBubyBjaGVja3MuCisrIyAndGVzdF9jb21waWxlJyAtLSBjaGVjayBieSBtYWtp bmcgdGVzdCBwcm9ncmFtLgorKyMgJ2ZpbGVfbWFnaWMgW1tyZWdleF1dJyAtLSBjaGVjayBieSBs b29raW5nIGZvciBmaWxlcyBpbiBsaWJyYXJ5IHBhdGgKKysjIHdoaWNoIHJlc3BvbmRzIHRvIHRo ZSAkZmlsZV9tYWdpY19jbWQgd2l0aCBhIGdpdmVuIGV4dGVuZGVkIHJlZ2V4LgorKyMgSWYgeW91 IGhhdmUgYGZpbGUnIG9yIGVxdWl2YWxlbnQgb24geW91ciBzeXN0ZW0gYW5kIHlvdSdyZSBub3Qg c3VyZQorKyMgd2hldGhlciBgcGFzc19hbGwnIHdpbGwgKmFsd2F5cyogd29yaywgeW91IHByb2Jh Ymx5IHdhbnQgdGhpcyBvbmUuCisrCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeFs0LTldKikKKysg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2Jlb3MqKQor KyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrYnNkaVs0 NV0qKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTld WzAtOV0qLWJpdCBbTUxdU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpJworKyAgbHRfY3Zf ZmlsZV9tYWdpY19jbWQ9Jy91c3IvYmluL2ZpbGUgLUwnCisrICBsdF9jdl9maWxlX21hZ2ljX3Rl c3RfZmlsZT0vc2hsaWIvbGliYy5zbworKyAgOzsKKysKKytjeWd3aW4qKQorKyAgIyBmdW5jX3dp bjMyX2xpYmlkIGlzIGEgc2hlbGwgZnVuY3Rpb24gZGVmaW5lZCBpbiBsdG1haW4uc2gKKysgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8 Xng4NiBETEwnCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVuY193aW4zMl9saWJpZCcKKysg IDs7CisrCisrbWluZ3cqIHwgcHczMiopCisrICAjIEJhc2UgTVNZUy9NaW5HVyBkbyBub3QgcHJv dmlkZSB0aGUgJ2ZpbGUnIGNvbW1hbmQgbmVlZGVkIGJ5CisrICAjIGZ1bmNfd2luMzJfbGliaWQg c2hlbGwgZnVuY3Rpb24sIHNvIHVzZSBhIHdlYWtlciB0ZXN0IGJhc2VkIG9uICdvYmpkdW1wJywK KysgICMgdW5sZXNzIHdlIGZpbmQgJ2ZpbGUnLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHdlIGFyZSBj cm9zcy1jb21waWxpbmcuCisrICBpZiAoIGZpbGUgLyApID4vZGV2L251bGwgMj4mMTsgdGhlbgor KyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hpdmUg aW1wb3J0fF54ODYgRExMJworKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVuY193aW4zMl9s aWJpZCcKKysgIGVsc2UKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFn aWMgZmlsZSBmb3JtYXQgcGVpKi1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT8nCisrICAgIGx0 X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKKysgIGZpCisrICA7OworKworK2Rhcndp biogfCByaGFwc29keSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAor KyAgOzsKKysKKytmcmVlYnNkKiB8IGRyYWdvbmZseSopCisrICBpZiBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBjYXNlICRob3N0 X2NwdSBpbgorKyAgICBpKjg2ICkKKysgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgdGhlIHByZXNl bmNlIG9mIE9wZW5CU0QgaGVyZSB3YXMgYSBtaXN0YWtlLgorKyAgICAgICMgTGV0J3MgYWNjZXB0 IGJvdGggb2YgdGhlbSB1bnRpbCB0aGlzIGlzIGNsZWFyZWQgdXAuCisrICAgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKEZyZWVCU0R8T3BlbkJTRHxEcmFnb25GbHkp L2lbMy05XTg2IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5JworKyAgICAg IGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKKysgICAgICBsdF9jdl9maWxlX21h Z2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvLipgCisrICAgICAgOzsKKysgICAg ZXNhYworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAor KyAgZmkKKysgIDs7CisrCisrZ251KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBh c3NfYWxsCisrICA7OworKworK2hwdXgxMC4yMCogfCBocHV4MTEqKQorKyAgbHRfY3ZfZmlsZV9t YWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysgIGlhNjQqKQor KyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1b MC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gSUE2NCcKKysgICAgbHRf Y3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KKysgICAgOzsK KysgIGhwcGEqNjQqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdp YyAoc1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0g UEEtUklTQyBbMC05XS5bMC05XScKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vz ci9saWIvcGEyMF82NC9saWJjLnNsCisrICAgIDs7CisrICAqKQorKyAgICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxQQS1SSVNDWzAtOV0u WzAtOV0pIHNoYXJlZCBsaWJyYXJ5JworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0v dXNyL2xpYi9saWJjLnNsCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2ludGVyaXhbMy05 XSopCisrICAjIFBJQyBjb2RlIGlzIGJyb2tlbiBvbiBJbnRlcml4IDMueCwgdGhhdCdzIHdoeSB8 XC5hIG5vdCB8X3BpY1wuYSBoZXJlCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0 Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb3xcLmEpJCcKKysgIDs7CisrCisraXJpeDUqIHwgaXJp eDYqIHwgbm9uc3RvcHV4KikKKysgIGNhc2UgJExEIGluCisrICAqLTMyfCoiLTMyICIpIGxpYm1h Z2ljPTMyLWJpdDs7CisrICAqLW4zMnwqIi1uMzIgIikgbGlibWFnaWM9TjMyOzsKKysgICotNjR8 KiItNjQgIikgbGlibWFnaWM9NjQtYml0OzsKKysgICopIGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsK KysgIGVzYWMKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7Owor KworKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KKytsaW51eCogfCBrKmJzZCotZ251KQorKyAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrbmV0YnNkKikK KysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fID4gL2Rldi9udWxs OyB0aGVuCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9s aWJbXi9dKyhcLnNvXC5bMC05XStcLlswLTldK3xfcGljXC5hKSQnCisrICBlbHNlCisrICAgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvfF9w aWNcLmEpJCcKKysgIGZpCisrICA7OworKworK25ld29zNiopCisrICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0IFtNTF1TQiAoZXhlY3V0 YWJsZXxkeW5hbWljIGxpYiknCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxl CisrICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJubHMuc28KKysgIDs7 CisrCisrbnRvLXFueCopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD11bmtub3duCisr ICA7OworKworK29wZW5ic2QqKQorKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAt RSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVu YnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdt YXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvXC5bMC05XStcLlswLTldK3xcLnNvfF9waWNcLmEp JCcKKysgIGVsc2UKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRl cm4gL2xpYlteL10rKFwuc29cLlswLTldK1wuWzAtOV0rfF9waWNcLmEpJCcKKysgIGZpCisrICA7 OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPXBhc3NfYWxsCisrICA7OworKworK3Jkb3MqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrc29sYXJpcyopCisrICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytzeXN2NCB8IHN5c3Y0LjMqKQorKyAgY2Fz ZSAkaG9zdF92ZW5kb3IgaW4KKysgIG1vdG9yb2xhKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0IFtNTF1TQiAoc2hhcmVkIG9i amVjdHxkeW5hbWljIGxpYikgTVswLTldWzAtOV0qIFZlcnNpb24gWzAtOV0nCisrICAgIGx0X2N2 X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91c3IvbGliL2xpYmMuc28qYAorKyAgICA7Owor KyAgbmNyKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgICA7 OworKyAgc2VxdWVudCkKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScKKysg ICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0q LWJpdCBbTE1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIgKScKKysgICAgOzsKKysgIHNu aSkKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4vZmlsZScKKysgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9ImZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTE1dU0Ig ZHluYW1pYyBsaWIiCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9saWIvbGliYy5z bworKyAgICA7OworKyAgc2llbWVucykKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 cGFzc19hbGwKKysgICAgOzsKKysgIHBjKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD1wYXNzX2FsbAorKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzeXN2NSogfCBzY28zLjJ2 NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKKysgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworK2VzYWMKKysKKytmaQor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCIgPiY2 OyB9CisrZmlsZV9tYWdpY19jbWQ9JGx0X2N2X2ZpbGVfbWFnaWNfY21kCisrZGVwbGlic19jaGVj a19tZXRob2Q9JGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kCisrdGVzdCAteiAiJGRlcGxpYnNf Y2hlY2tfbWV0aG9kIiAmJiBkZXBsaWJzX2NoZWNrX21ldGhvZD11bmtub3duCisrCisrCisrCisr CisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KKytMVENDPSR7TFRD Qy0iJENDIn0KKysKKysjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVz ZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9CisrCisrIyBBbGxvdyBD QyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytjb21waWxlcj0kQ0MKKysK KysKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGlidG9vbC1sb2NrIHdhcyBnaXZlbi4KKytp ZiB0ZXN0ICIke2VuYWJsZV9saWJ0b29sX2xvY2src2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJs ZXZhbD0kZW5hYmxlX2xpYnRvb2xfbG9jazsKKytmaQorKworK3Rlc3QgIngkZW5hYmxlX2xpYnRv b2xfbG9jayIgIT0geG5vICYmIGVuYWJsZV9saWJ0b29sX2xvY2s9eWVzCisrCisrIyBTb21lIGZs YWdzIG5lZWQgdG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgY29tcGlsZXIgb3IgbGlua2VyIGZvciBn b29kCisrIyBsaWJ0b29sIHN1cHBvcnQuCisrY2FzZSAkaG9zdCBpbgorK2lhNjQtKi1ocHV4KikK KysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycg PiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBc IiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19z dGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jpbi9m aWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCisrICAgICpFTEYtMzIqKQorKyAgICAgIEhQVVhf SUE2NF9NT0RFPSIzMiIKKysgICAgICA7OworKyAgICAqRUxGLTY0KikKKysgICAgICBIUFVYX0lB NjRfTU9ERT0iNjQiCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIHJtIC1yZiBjb25m dGVzdCoKKysgIDs7CisrKi0qLWlyaXg2KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFy ZSB1c2luZy4KKysgIGVjaG8gJyNsaW5lIDU1NjkgImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFj X2V4dAorKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwi IikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICBpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0g eWVzOyB0aGVuCisrICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAg aW4KKysgICAgKjMyLWJpdCopCisrICAgICAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJic21pcCIKKysg ICAgICA7OworKyAgICAqTjMyKikKKysgICAgICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJtaXBuMzIi CisrICAgICAgOzsKKysgICAgKjY0LWJpdCopCisrICAgICAgTEQ9IiR7TEQtbGR9IC1tZWxmNjRi bWlwIgorKyAgICAgIDs7CisrICAgIGVzYWMKKysgICBlbHNlCisrICAgIGNhc2UgYC91c3IvYmlu L2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KKysgICAgKjMyLWJpdCopCisrICAgICAgTEQ9 IiR7TEQtbGR9IC0zMiIKKysgICAgICA7OworKyAgICAqTjMyKikKKysgICAgICBMRD0iJHtMRC1s ZH0gLW4zMiIKKysgICAgICA7OworKyAgICAqNjQtYml0KikKKysgICAgICBMRD0iJHtMRC1sZH0g LTY0IgorKyAgICAgIDs7CisrICAgIGVzYWMKKysgICBmaQorKyAgZmkKKysgIHJtIC1yZiBjb25m dGVzdCoKKysgIDs7CisrCisreDg2XzY0LSprZnJlZWJzZCotZ251fHg4Nl82NC0qbGludXgqfHBw YyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqfCBcCisrczM5MCotKmxpbnV4KnxzcGFyYyotKmxp bnV4KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2lu dCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElO RU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1Cisr ICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgorKyAgICBjYXNlIGAvdXNy L2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCisrICAgICozMi1iaXQqKQorKyAgICAgIGNhc2UgJGhv c3QgaW4KKysgICAgICAgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkKKysgICAgICAgICAgTEQ9IiR7 TEQtbGR9IC1tIGVsZl9pMzg2X2Zic2QiCisrICAgICAgICAgIDs7CisrICAgICAgICB4ODZfNjQt KmxpbnV4KikKKysgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9pMzg2IgorKyAgICAgICAg ICA7OworKyAgICAgICAgcHBjNjQtKmxpbnV4Knxwb3dlcnBjNjQtKmxpbnV4KikKKysgICAgICAg ICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMycHBjbGludXgiCisrICAgICAgICAgIDs7CisrICAgICAg ICBzMzkweC0qbGludXgqKQorKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3MzOTAiCisr ICAgICAgICAgIDs7CisrICAgICAgICBzcGFyYzY0LSpsaW51eCopCisrICAgICAgICAgIExEPSIk e0xELWxkfSAtbSBlbGYzMl9zcGFyYyIKKysgICAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAg ICAgOzsKKysgICAgKjY0LWJpdCopCisrICAgICAgbGlic3VmZj02NAorKyAgICAgIGNhc2UgJGhv c3QgaW4KKysgICAgICAgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkKKysgICAgICAgICAgTEQ9IiR7 TEQtbGR9IC1tIGVsZl94ODZfNjRfZmJzZCIKKysgICAgICAgICAgOzsKKysgICAgICAgIHg4Nl82 NC0qbGludXgqKQorKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NCIKKysgICAg ICAgICAgOzsKKysgICAgICAgIHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqKQorKyAgICAg ICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisrICAgICAgICAgIDs7CisrICAgICAgICBz MzkwKi0qbGludXgqKQorKyAgICAgICAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfczM5MCIKKysg ICAgICAgICAgOzsKKysgICAgICAgIHNwYXJjKi0qbGludXgqKQorKyAgICAgICAgICBMRD0iJHtM RC1sZH0gLW0gZWxmNjRfc3BhcmMiCisrICAgICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAg IDs7CisrICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqCisrICA7OworKworKyot Ki1zY28zLjJ2NSopCisrICAjIE9uIFNDTyBPcGVuU2VydmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8g Z2V0IGZ1bGwtZmVhdHVyZWQgYmluYXJpZXMuCisrICBTQVZFX0NGTEFHUz0iJENGTEFHUyIKKysg IENGTEFHUz0iJENGTEFHUyAtYmVsZiIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1iZWxmIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1iZWxmLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHtsdF9jdl9jY19uZWVkc19iZWxmK3NldH0iID0gc2V0OyB0aGVuCisr ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2V4dD1jCisrYWNfY3Bw PSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK KythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrICAgICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7 CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nh c2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAg YWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNf ZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNf dGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBsdF9jdl9jY19u ZWVkc19iZWxmPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJbHRf Y3ZfY2NfbmVlZHNfYmVsZj1ubworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29u ZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Cisr ICAgICBhY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJEND IC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRD QyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVy X2dudQorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2 X2NjX25lZWRzX2JlbGYiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgPiY2 OyB9CisrICBpZiB0ZXN0IHgiJGx0X2N2X2NjX25lZWRzX2JlbGYiICE9IHgieWVzIjsgdGhlbgor KyAgICAjIHRoaXMgaXMgcHJvYmFibHkgZ2NjIDIuOC4wLCBlZ2NzIDEuMCBvciBuZXdlcjsgbm8g bmVlZCBmb3IgLWJlbGYKKysgICAgQ0ZMQUdTPSIkU0FWRV9DRkxBR1MiCisrICBmaQorKyAgOzsK KytzcGFyYyotKnNvbGFyaXMqKQorKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5n LgorKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKKysgIGlmIHsgKGV2YWwgZWNo byAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorKyAgKGV2YWwgJGFjX2Nv bXBpbGUpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisr ICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KKysgICAgKjY0LWJpdCopCisr ICAgICAgY2FzZSAkbHRfY3ZfcHJvZ19nbnVfbGQgaW4KKysgICAgICB5ZXMqKSBMRD0iJHtMRC1s ZH0gLW0gZWxmNjRfc3BhcmMiIDs7CisrICAgICAgKikKKysgICAgICAgIGlmICR7TEQtbGR9IC02 NCAtciAtbyBjb25mdGVzdDIubyBjb25mdGVzdC5vID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwkg IExEPSIke0xELWxkfSAtNjQiCisrCWZpCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7Cisr ICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3QqCisrICA7OworKworKworK2VzYWMK KysKKytuZWVkX2xvY2tzPSIkZW5hYmxlX2xpYnRvb2xfbG9jayIKKysKKysKKythY19leHQ9Ywor K2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRh Y19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nv ciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNz b3IuLi4gIiA+JjY7IH0KKysjIE9uIFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0 b3J5LgorK2lmIHRlc3QgLW4gIiRDUFAiICYmIHRlc3QgLWQgIiRDUFAiOyB0aGVuCisrICBDUFA9 CisrZmkKKytpZiB0ZXN0IC16ICIkQ1BQIjsgdGhlbgorKyAgaWYgdGVzdCAiJHthY19jdl9wcm9n X0NQUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1BQIG5lZWRzIHRvIGJlIGV4cGFu ZGVkCisrICAgIGZvciBDUFAgaW4gIiRDQyAtRSIgIiRDQyAtRSAtdHJhZGl0aW9uYWwtY3BwIiAi L2xpYi9jcHAiCisrICAgIGRvCisrICAgICAgYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19j X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxl IHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBm cmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFz c2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4 aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBj YyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBu b3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlz IGNhc2UuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5o LiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNp ZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUg PGFzc2VydC5oPgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytpZiB7 IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBh Y19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy CisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dh cm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgor KyAgICAgICB9OyB0aGVuCisrICA6CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysK KytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mg b24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysg ICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5k IGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgor K2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3Ry eSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3ByZXBy b2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCisrICAgICAgIH07IHRoZW4KKysgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5w dXQuCisrY29udGludWUKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAj IFBhc3NlcyBib3RoIHRlc3RzLgorK2FjX3ByZXByb2Nfb2s9OgorK2JyZWFrCisrZmkKKysKKyty bSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworK2RvbmUKKysjIEJlY2F1c2Ug b2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBl ZC4KKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorK2lmICRhY19wcmVwcm9j X29rOyB0aGVuCisrICBicmVhaworK2ZpCisrCisrICAgIGRvbmUKKysgICAgYWNfY3ZfcHJvZ19D UFA9JENQUAorKworK2ZpCisrICBDUFA9JGFjX2N2X3Byb2dfQ1BQCisrZWxzZQorKyAgYWNfY3Zf cHJvZ19DUFA9JENQUAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JENQUCIgPiY1CisrJGFzX2VjaG8gIiRDUFAiID4mNjsgfQorK2FjX3ByZXByb2Nfb2s9ZmFsc2UK Kytmb3IgYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKKytkbworKyAgIyBVc2UgYSBo ZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYworKyAg IyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCisrICAjIFByZWZlciA8bGltaXRz Lmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKysgICMgPGxp bWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgorKyAgIyBPbiB0 aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNl ciwKKysgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8g Y2F0Y2ggdGhpcyBjYXNlLgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog Y29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysjaWZkZWYgX19TVERDX18KKysjIGluY2x1ZGUgPGxpbWl0cy5oPgorKyNlbHNlCisr IyBpbmNsdWRlIDxhc3NlcnQuaD4KKysjZW5kaWYKKysJCSAgICAgU3ludGF4IGVycm9yCisrX0FD RU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgk YWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0 LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4m NQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysg IChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2Nf cHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKKysKKysgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KKytjb250aW51 ZQorK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICMg T0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBo ZWFkZXJzCisrICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgorKyAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4K KytfQUNFT0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNl ICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29u ZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy MSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5l cnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIk YWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICAjIEJyb2tlbjogc3VjY2VzcyBvbiBp bnZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQorKworKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KKythY19wcmVwcm9jX29rPToKKyticmVhawor K2ZpCisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKytkb25lCisr IyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUg d2FzIHNraXBwZWQuCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKytpZiAk YWNfcHJlcHJvY19vazsgdGhlbgorKyAgOgorK2Vsc2UKKysgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBDIHByZXByb2Nlc3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKKytT ZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVjaworK1Nl ZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfTsgfQorK2ZpCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQ UEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVy X2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9oZWFkZXJfc3RkYytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZz LmguICAqLworKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaW5jbHVkZSA8c3RkYXJnLmg+CisrI2lu Y2x1ZGUgPHN0cmluZy5oPgorKyNpbmNsdWRlIDxmbG9hdC5oPgorKworK2ludAorK21haW4gKCkK Kyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5 IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9 JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAt ZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0 aGVuCisrICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1CisrCisrCWFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysKKytpZiB0 ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorKyAgIyBTdW5PUyA0Lnggc3RyaW5n LmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgorKyAgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3RyaW5nLmg+Cisr CisrX0FDRU9GCisraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAor KyAgJEVHUkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgOgorK2Vsc2UKKysg IGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVzdCoKKysKKytmaQorKwor K2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIElTQyAyLjAuMiBz dGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCisrICBjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YK KytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxzdGRsaWIu aD4KKysKKytfQUNFT0YKKytpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4m NSB8CisrICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgOgorK2Vsc2UK KysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVzdCoKKysKKytmaQor KworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIC9iaW4vY2Mg aW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxlc3MgdXNpbmcgLWFu c2kuCisrICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgorKyAgOgorK2Vs c2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1 ZGUgPGN0eXBlLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpZiAoKCcgJyAmIDB4MEZGKSA9 PSAweDAyMCkKKysjIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYmIChjKSA8PSAneicp CisrIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDog KGMpKQorKyNlbHNlCisrIyBkZWZpbmUgSVNMT1dFUihjKSBcCisrCQkgICAoKCdhJyA8PSAoYykg JiYgKGMpIDw9ICdpJykgXAorKwkJICAgICB8fCAoJ2onIDw9IChjKSAmJiAoYykgPD0gJ3InKSBc CisrCQkgICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicpKQorKyMgZGVmaW5lIFRPVVBQ RVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCisrI2VuZGlmCisrCisrI2Rl ZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYpKSkKKytpbnQKKytt YWluICgpCisreworKyAgaW50IGk7CisrICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCisrICAg IGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKKysJfHwgdG91cHBlciAoaSkgIT0g VE9VUFBFUiAoaSkpCisrICAgICAgcmV0dXJuIDI7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9G Cisrcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQorKyAgYWNfc3RhdHVz PSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0 JworKyAgeyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisr ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfdHJ5IikgMj4mNQorKyAg YWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKysgIDoKKytlbHNlCisr ICAkYXNfZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVz IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrKCBleGl0ICRhY19zdGF0dXMgKQor K2FjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1m IGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrCisr ZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFk ZXJfc3RkYyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfc3RkYyIgPiY2OyB9CisraWYg dGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5o IDw8XF9BQ0VPRgorKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKKytfQUNFT0YKKysKKytmaQorKwor KyMgT24gSVJJWCA1LjMsIHN5cy90eXBlcyBhbmQgaW50dHlwZXMuaCBhcmUgY29uZmxpY3Rpbmcu CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrZm9yIGFjX2hlYWRlciBpbiBzeXMvdHlwZXMu aCBzeXMvc3RhdC5oIHN0ZGxpYi5oIHN0cmluZy5oIG1lbW9yeS5oIHN0cmluZ3MuaCBcCisrCQkg IGludHR5cGVzLmggc3RkaW50LmggdW5pc3RkLmgKKytkbworK2FzX2FjX0hlYWRlcj1gJGFzX2Vj aG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFzX2Fj X0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyRhY19pbmNsdWRlc19kZWZhdWx0CisrCisrI2lu Y2x1ZGUgPCRhY19oZWFkZXI+CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAor K2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFs ICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5l cjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkg dGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBldmFs ICIkYXNfYWNfSGVhZGVyPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cisr CisrCWV2YWwgIiRhc19hY19IZWFkZXI9bm8iCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK2FjX3Jlcz1g ZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidg CisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+ JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFsICdhc192YWw9JHsn JGFzX2FjX0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4 JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysj ZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKKytfQUNF T0YKKysKKytmaQorKworK2RvbmUKKysKKysKKysKKytmb3IgYWNfaGVhZGVyIGluIGRsZmNuLmgK KytkbworK2FzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8 ICRhc190cl9zaGAKKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7 JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0hlYWRlcjsg ZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19h Y19IZWFkZXInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3Jl cyIgPiY2OyB9CisrZWxzZQorKyAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/CisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5IiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eS4uLiAiID4mNjsgfQor K2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrJGFjX2luY2x1ZGVz X2RlZmF1bHQKKysjaW5jbHVkZSA8JGFjX2hlYWRlcj4KKytfQUNFT0YKKytybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190 cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1 cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJt IC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7 IHRoZW4KKysgIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisrCWFjX2hlYWRlcl9jb21waWxlcj1ubworK2ZpCisrCisrcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1 CisrJGFzX2VjaG8gIiRhY19oZWFkZXJfY29tcGlsZXIiID4mNjsgfQorKworKyMgSXMgdGhlIGhl YWRlciBwcmVzZW50PworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNf aGVhZGVyIHByZXNlbmNlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyAkYWNfaGVhZGVyIHBy ZXNlbmNlLi4uICIgPiY2OyB9CisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog Y29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysjaW5jbHVkZSA8JGFjX2hlYWRlcj4KKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRh Y19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRh Y19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8K KysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBj b25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g Pi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19j X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0 aGVuCisrICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1CisrCisrICBhY19oZWFkZXJfcHJlcHJvYz1ubworK2ZpCisrCisrcm0gLWYgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQorKyRhc19lY2hvICIkYWNfaGVhZGVyX3ByZXBy b2MiID4mNjsgfQorKworKyMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPworK2Nhc2UgJGFj X2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2Zs YWcgaW4KKysgIHllczpubzogKQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FS TklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0 aGUgcHJlcHJvY2Vzc29yISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hl YWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vz c29yISIgPiYyO30KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRh Y19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUg Y29tcGlsZXIncyByZXN1bHQiID4mMjt9CisrICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcworKyAg ICA7OworKyAgbm86eWVzOiogKQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FS TklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3Qg YmUgY29tcGlsZWQiID4mMjt9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJO SU5HOiAkYWNfaGVhZGVyOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRl cnM/IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgY2hl Y2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQorKyAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBBdXRvY29u ZiBkb2N1bWVudGF0aW9uIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVh ZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mMjt9CisrICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgc2VjdGlvbiBcIlBy ZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBX QVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBD b21waWxlZFwiIiA+JjI7fQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO RzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcg d2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQorKyAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNv bXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiAkYWNfaGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHBy ZWNlZGVuY2UiID4mMjt9CisrICAgICggY2F0IDw8XF9BU0JPWAorKyMjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIFJlcG9ydCB0aGlzIHRvIG1z b2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldCAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworK19BU0JPWAorKyAgICAgKSB8IHNlZCAicy9e LyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgorKyAgICA7OworK2VzYWMKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFz X2FjX0hlYWRlcjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhl bgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBldmFsICIkYXNfYWNf SGVhZGVyPVwkYWNfaGVhZGVyX3ByZXByb2MiCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0k eyckYXNfYWNfSGVhZGVyJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8g IiRhY19yZXMiID4mNjsgfQorKworK2ZpCisrYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2Fj X0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFzX3Zh bCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5l IGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKKytfQUNFT0YKKysK KytmaQorKworK2RvbmUKKysKKysKKysKKytpZiB0ZXN0IC1uICIkQ1hYIiAmJiAoIHRlc3QgIlgk Q1hYIiAhPSAiWG5vIiAmJgorKyAgICAoICh0ZXN0ICJYJENYWCIgPSAiWGcrKyIgJiYgYGcrKyAt diA+L2Rldi9udWxsIDI+JjFgICkgfHwKKysgICAgKHRlc3QgIlgkQ1hYIiAhPSAiWGcrKyIpKSkg OyB0aGVuCisrICBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn CisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3NvciIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3Nvci4uLiAiID4mNjsgfQorK2lm IHRlc3QgLXogIiRDWFhDUFAiOyB0aGVuCisrICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1hYQ1BQ K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDWFhDUFAgbmVlZHMgdG8gYmUgZXhwYW5k ZWQKKysgICAgZm9yIENYWENQUCBpbiAiJENYWCAtRSIgIi9saWIvY3BwIgorKyAgICBkbworKyAg ICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKKytmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGlu ICcnIHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2Ms IHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3 b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBp cyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFu ZGluZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRo cm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4g IlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisrICBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpZmRlZiBfX1NURENfXworKyMgaW5j bHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgor KwkJICAgICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29u ZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29u ZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAg LXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5l cjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVs bCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJy b3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgor KyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysgICMgQnJva2VuOiBm YWlscyBvbiB2YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2ZpCisrCisrcm0gLWYgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBO b3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCisrICAjIGNhbiBiZSBkZXRlY3Rl ZCBhbmQgaG93LgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRl ZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cisr Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRh Y19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRh Y19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8K KysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBj b25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g Pi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFj X2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAg fTsgdGhlbgorKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KKytjb250aW51 ZQorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQor K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysgICMgUGFzc2VzIGJvdGgg dGVzdHMuCisrYWNfcHJlcHJvY19vaz06CisrYnJlYWsKKytmaQorKworK3JtIC1mIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrZG9uZQorKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBf QUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgorK3JtIC1mIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisraWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KKysg IGJyZWFrCisrZmkKKysKKysgICAgZG9uZQorKyAgICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQ CisrCisrZmkKKysgIENYWENQUD0kYWNfY3ZfcHJvZ19DWFhDUFAKKytlbHNlCisrICBhY19jdl9w cm9nX0NYWENQUD0kQ1hYQ1BQCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkQ1hYQ1BQIiA+JjUKKyskYXNfZWNobyAiJENYWENQUCIgPiY2OyB9CisrYWNfcHJlcHJv Y19vaz1mYWxzZQorK2ZvciBhY19jeHhfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCisrZG8K KysgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJp bmcgZ2xpYmMKKysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgorKyAgIyBQ cmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNp bmNlCisrICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVy cy4KKysgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29t cGlsZXIncyBwYXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9y IiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBl bmQgY29uZmRlZnMuaC4gICovCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMu aD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCQkgICAgIFN5bnRh eCBlcnJvcgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0 IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0 IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRl c3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAor KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICA6CisrZWxzZQor KyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlk IGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0 aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCisr ICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxh Y19ub25leGlzdGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVz dC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNh YworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK KyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVz dC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQor KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYm IHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9m bGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICAj IEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZWxzZQorKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KKythY19w cmVwcm9jX29rPToKKyticmVhaworK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19leHQKKysKKytkb25lCisrIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lG RUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCisrcm0gLWYgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19leHQKKytpZiAkYWNfcHJlcHJvY19vazsgdGhlbgorKyAgOgorK2Vsc2UKKysg IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDKysgcHJlcHJvY2Vzc29yIFwiJENYWENQ UFwiIGZhaWxzIHNhbml0eSBjaGVjaworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFp bHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogQysrIHByZXByb2Nlc3NvciBcIiRD WFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKKytTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBk ZXRhaWxzLiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KKytmaQorKwor K2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRD WFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5r PSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4 X2NvbXBpbGVyX2dudQorKworK2ZpCisrCisrCisrYWNfZXh0PWYKKythY19jb21waWxlPSckRjc3 IC1jICRGRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJEY3NyAtbyBjb25m dGVzdCRhY19leGVleHQgJEZGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2Y3N19jb21waWxlcl9nbnUKKytpZiB0ZXN0IC1u ICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICBmb3IgYWNfcHJvZyBpbiBnNzcgeGxmIGY3NyBm cnQgcGdmNzcgY2Y3NyBmb3J0NzcgZmwzMiBhZjc3IHhsZjkwIGY5MCBwZ2Y5MCBwZ2hwZiBlcGNm OTAgZ2ZvcnRyYW4gZzk1IHhsZjk1IGY5NSBmb3J0IGlmb3J0IGlmYyBlZmMgcGdmOTUgbGY5NSBm dG4KKysgIGRvCisrICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJl Zml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3Nl dCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJv Z19GNzcrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgaWYgdGVzdCAtbiAiJEY3NyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfRjc3PSIkRjc3 IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAg SUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0Y3 Nz0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIK KysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0Y3 Nz0kYWNfY3ZfcHJvZ19GNzcKKytpZiB0ZXN0IC1uICIkRjc3IjsgdGhlbgorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJEY3NyIgPiY1CisrJGFzX2VjaG8gIiRGNzciID4m NjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+ JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAgIHRlc3QgLW4gIiRGNzci ICYmIGJyZWFrCisrICBkb25lCisrZmkKKytpZiB0ZXN0IC16ICIkRjc3IjsgdGhlbgorKyAgYWNf Y3RfRjc3PSRGNzcKKysgIGZvciBhY19wcm9nIGluIGc3NyB4bGYgZjc3IGZydCBwZ2Y3NyBjZjc3 IGZvcnQ3NyBmbDMyIGFmNzcgeGxmOTAgZjkwIHBnZjkwIHBnaHBmIGVwY2Y5MCBnZm9ydHJhbiBn OTUgeGxmOTUgZjk1IGZvcnQgaWZvcnQgaWZjIGVmYyBwZ2Y5NSBsZjk1IGZ0bgorK2RvCisrICAj IEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfYWNfY3RfRjc3K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9GNzciOyB0aGVuCisr ICBhY19jdl9wcm9nX2FjX2N0X0Y3Nz0iJGFjX2N0X0Y3NyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9GNzc9IiRhY19wcm9nIgorKyAg ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19z YXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9GNzc9JGFjX2N2X3Byb2dfYWNfY3RfRjc3Cisr aWYgdGVzdCAtbiAiJGFjX2N0X0Y3NyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdF9GNzciID4mNQorKyRhc19lY2hvICIkYWNfY3RfRjc3IiA+JjY7 IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1 CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworKyAgdGVzdCAtbiAiJGFjX2N0X0Y3 NyIgJiYgYnJlYWsKKytkb25lCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X0Y3NyIgPSB4OyB0aGVu CisrICAgIEY3Nz0iIgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rv b2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO RzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4 ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNh YworKyAgICBGNzc9JGFjX2N0X0Y3NworKyAgZmkKKytmaQorKworKworKyMgUHJvdmlkZSBzb21l IGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21waWxlci4KKyskYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciBGb3J0cmFuIDc3IGNvbXBpbGVyIHZlcnNpb24iID4mNQorK3NldCBY ICRhY19jb21waWxlCisrYWNfY29tcGlsZXI9JDIKKyt7IChhY190cnk9IiRhY19jb21waWxlciAt LXZlcnNpb24gPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVy IC0tdmVyc2lvbiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsg fQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIKKytjYXNl ICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAyPiY1CisrICBh Y19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3JtIC1mIGEub3V0CisrCisrIyBJZiB3 ZSBkb24ndCB1c2UgYC5GJyBhcyBleHRlbnNpb24sIHRoZSBwcmVwcm9jZXNzb3IgaXMgbm90IHJ1 biBvbiB0aGUKKysjIGlucHV0IGZpbGUuICAoTm90ZSB0aGF0IHRoaXMgb25seSBuZWVkcyB0byB3 b3JrIGZvciBHTlUgY29tcGlsZXJzLikKKythY19zYXZlX2V4dD0kYWNfZXh0CisrYWNfZXh0PUYK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNp bmcgdGhlIEdOVSBGb3J0cmFuIDc3IGNvbXBpbGVyIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEZvcnRyYW4gNzcgY29tcGlsZXIuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2Y3N19jb21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRo ZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrICAgICAgcHJvZ3JhbSBtYWluCisrI2lmbmRlZiBfX0dOVUNf XworKyAgICAgICBjaG9rZSBtZQorKyNlbmRpZgorKworKyAgICAgIGVuZAorK19BQ0VPRgorK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nh c2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQor KyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19mNzdfd2Vycm9yX2ZsYWciIHx8 CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19jb21waWxlcl9nbnU9eWVzCisrZWxzZQorKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jb21waWxlcl9nbnU9bm8KKytmaQorKworK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4 dAorK2FjX2N2X2Y3N19jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQorKworK2ZpCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2Y3N19jb21waWxlcl9nbnUi ID4mNQorKyRhc19lY2hvICIkYWNfY3ZfZjc3X2NvbXBpbGVyX2dudSIgPiY2OyB9CisrYWNfZXh0 PSRhY19zYXZlX2V4dAorK2FjX3Rlc3RfRkZMQUdTPSR7RkZMQUdTK3NldH0KKythY19zYXZlX0ZG TEFHUz0kRkZMQUdTCisrRkZMQUdTPQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyICRGNzcgYWNjZXB0cyAtZyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciAkRjc3IGFjY2VwdHMgLWcuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3By b2dfZjc3X2crc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgRkZMQUdTPS1nCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr ICAgICAgcHJvZ3JhbSBtYWluCisrCisrICAgICAgZW5kCisrX0FDRU9GCisrcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNf dHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Cisr ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0 dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBy bSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Y3N193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfZjc3X2c9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQorKworKwlhY19jdl9wcm9nX2Y3N19nPW5vCisrZmkKKysKKytybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2Y3N19n IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X3Byb2dfZjc3X2ciID4mNjsgfQorK2lmIHRlc3QgIiRh Y190ZXN0X0ZGTEFHUyIgPSBzZXQ7IHRoZW4KKysgIEZGTEFHUz0kYWNfc2F2ZV9GRkxBR1MKKytl bGlmIHRlc3QgJGFjX2N2X3Byb2dfZjc3X2cgPSB5ZXM7IHRoZW4KKysgIGlmIHRlc3QgIngkYWNf Y3ZfZjc3X2NvbXBpbGVyX2dudSIgPSB4eWVzOyB0aGVuCisrICAgIEZGTEFHUz0iLWcgLU8yIgor KyAgZWxzZQorKyAgICBGRkxBR1M9Ii1nIgorKyAgZmkKKytlbHNlCisrICBpZiB0ZXN0ICJ4JGFj X2N2X2Y3N19jb21waWxlcl9nbnUiID0geHllczsgdGhlbgorKyAgICBGRkxBR1M9Ii1PMiIKKysg IGVsc2UKKysgICAgRkZMQUdTPQorKyAgZmkKKytmaQorKworK2lmIHRlc3QgJGFjX2NvbXBpbGVy X2dudSA9IHllczsgdGhlbgorKyAgRzc3PXllcworK2Vsc2UKKysgIEc3Nz0KKytmaQorK2FjX2V4 dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisr CisrCisrIyBBdXRvY29uZiAyLjEzJ3MgQUNfT0JKRVhUIGFuZCBBQ19FWEVFWFQgbWFjcm9zIG9u bHkgd29ya3MgZm9yIEMgY29tcGlsZXJzIQorKyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGggb2Yg Y29tbWFuZCBsaW5lIGFyZ3VtZW50cworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBh cmd1bWVudHMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19tYXhfY21kX2xlbitz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICAgIGk9MAorKyAgdGVzdHN0cmluZz0iQUJDRCIKKysKKysgIGNhc2UgJGJ1aWxkX29zIGluCisr ICBtc2Rvc2RqZ3BwKikKKysgICAgIyBPbiBESkdQUCwgdGhpcyB0ZXN0IGNhbiBibG93IHVwIHBy ZXR0eSBiYWRseSBkdWUgdG8gcHJvYmxlbXMgaW4gbGliYworKyAgICAjIChhbnkgc2luZ2xlIGFy Z3VtZW50IGV4Y2VlZGluZyAyMDAwIGJ5dGVzIGNhdXNlcyBhIGJ1ZmZlciBvdmVycnVuCisrICAg ICMgZHVyaW5nIGdsb2IgZXhwYW5zaW9uKS4gIEV2ZW4gaWYgaXQgd2VyZSBmaXhlZCwgdGhlIHJl c3VsdCBvZiB0aGlzCisrICAgICMgY2hlY2sgd291bGQgYmUgbGFyZ2VyIHRoYW4gaXQgc2hvdWxk IGJlLgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTIyODg7ICAgICMgMTJLIGlzIGFib3V0 IHJpZ2h0CisrICAgIDs7CisrCisrICBnbnUqKQorKyAgICAjIFVuZGVyIEdOVSBIdXJkLCB0aGlz IHRlc3QgaXMgbm90IHJlcXVpcmVkIGJlY2F1c2UgdGhlcmUgaXMKKysgICAgIyBubyBsaW1pdCB0 byB0aGUgbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisrICAgICMgTGlidG9vbCB3 aWxsIGludGVycHJldCAtMSBhcyBubyBsaW1pdCB3aGF0c29ldmVyCisrICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj0tMTsKKysgICAgOzsKKysKKysgIGN5Z3dpbiogfCBtaW5ndyopCisrICAgICMg T24gV2luOXgvTUUsIHRoaXMgdGVzdCBibG93cyB1cCAtLSBpdCBzdWNjZWVkcywgYnV0IHRha2Vz CisrICAgICMgYWJvdXQgNSBtaW51dGVzIGFzIHRoZSB0ZXN0c3RyaW5nIGdyb3dzIGV4cG9uZW50 aWFsbHkuCisrICAgICMgV29yc2UsIHNpbmNlIDl4L01FIGFyZSBub3QgcHJlLWVtcHRpdmVseSBt dWx0aXRhc2tpbmcsCisrICAgICMgeW91IGVuZCB1cCB3aXRoIGEgImZyb3plbiIgY29tcHV0ZXIs IGV2ZW4gdGhvdWdoIHdpdGggcGF0aWVuY2UKKysgICAgIyB0aGUgdGVzdCBldmVudHVhbGx5IHN1 Y2NlZWRzICh3aXRoIGEgbWF4IGxpbmUgbGVuZ3RoIG9mIDI1NmspLgorKyAgICAjIEluc3RlYWQs IGxldCdzIGp1c3QgcHVudDogdXNlIHRoZSBtaW5pbXVtIGxpbmVsZW5ndGggcmVwb3J0ZWQgYnkK KysgICAgIyBhbGwgb2YgdGhlIHN1cHBvcnRlZCBwbGF0Zm9ybXM6IDgxOTIgKG9uIE5ULzJLL1hQ KS4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7CisrICAgIDs7CisrCisrICBhbWln YW9zKikKKysgICAgIyBPbiBBbWlnYU9TIHdpdGggcGRrc2gsIHRoaXMgdGVzdCB0YWtlcyBob3Vy cywgbGl0ZXJhbGx5LgorKyAgICAjIFNvIHdlIGp1c3QgcHVudCBhbmQgdXNlIGEgbWluaW11bSBs aW5lIGxlbmd0aCBvZiA4MTkyLgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKysg ICAgOzsKKysKKysgIG5ldGJzZCogfCBmcmVlYnNkKiB8IG9wZW5ic2QqIHwgZGFyd2luKiB8IGRy YWdvbmZseSopCisrICAgICMgVGhpcyBoYXMgYmVlbiBhcm91bmQgc2luY2UgMzg2QlNELCBhdCBs ZWFzdC4gIExpa2VseSBmdXJ0aGVyLgorKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2N0bDsgdGhl bgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJn bWF4YAorKyAgICBlbGlmIHRlc3QgLXggL3Vzci9zYmluL3N5c2N0bDsgdGhlbgorKyAgICAgIGx0 X2N2X3N5c19tYXhfY21kX2xlbj1gL3Vzci9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKKysg ICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj02NTUzNgkjIHVzYWJsZSBkZWZh dWx0IGZvciBhbGwgQlNEcworKyAgICBmaQorKyAgICAjIEFuZCBhZGQgYSBzYWZldHkgem9uZQor KyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBc LyA0YAorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21k X2xlbiBcKiAzYAorKyAgICA7OworKworKyAgaW50ZXJpeCopCisrICAgICMgV2Uga25vdyB0aGUg dmFsdWUgMjYyMTQ0IGFuZCBoYXJkY29kZSBpdCB3aXRoIGEgc2FmZXR5IHpvbmUgKGxpa2UgQlNE KQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTk2NjA4CisrICAgIDs7CisrCisrICBvc2Yq KQorKyAgICAjIERyLiBIYW5zIEVra2VoYXJkIFBsZXNzZXIgcmVwb3J0cyBzZWVpbmcgYSBrZXJu ZWwgcGFuaWMgcnVubmluZyBjb25maWd1cmUKKysgICAgIyBkdWUgdG8gdGhpcyB0ZXN0IHdoZW4g ZXhlY19kaXNhYmxlX2FyZ19saW1pdCBpcyAxIG9uIFRydTY0LiBJdCBpcyBub3QKKysgICAgIyBu aWNlIHRvIGNhdXNlIGtlcm5lbCBwYW5pY3Mgc28gbGV0cyBhdm9pZCB0aGUgbG9vcCBiZWxvdy4K KysgICAgIyBGaXJzdCBzZXQgYSByZWFzb25hYmxlIGRlZmF1bHQuCisrICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj0xNjM4NAorKyAgICAjCisrICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY29uZmln OyB0aGVuCisrICAgICAgY2FzZSBgL3NiaW4vc3lzY29uZmlnIC1xIHByb2MgZXhlY19kaXNhYmxl X2FyZ19saW1pdGAgaW4KKysgICAgICAgICoxKikgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xIDs7 CisrICAgICAgZXNhYworKyAgICBmaQorKyAgICA7OworKyAgc2NvMy4ydjUqKQorKyAgICBsdF9j dl9zeXNfbWF4X2NtZF9sZW49MTAyNDAwCisrICAgIDs7CisrICBzeXN2NSogfCBzY281djYqIHwg c3lzdjQuMnV3MiopCisrICAgIGthcmdtYXg9YGdyZXAgQVJHX01BWCAvZXRjL2NvbmYvY2YuZC9z dHVuZSAyPi9kZXYvbnVsbGAKKysgICAgaWYgdGVzdCAtbiAiJGthcmdtYXgiOyB0aGVuCisrICAg ICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBlY2hvICRrYXJnbWF4IHwgc2VkICdzLy4qWyAJXS8v J2AKKysgICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0zMjc2OAorKyAgICBm aQorKyAgICA7OworKyAgKikKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAoZ2V0Y29uZiBB UkdfTUFYKSAyPiAvZGV2L251bGxgCisrICAgIGlmIHRlc3QgLW4gIiRsdF9jdl9zeXNfbWF4X2Nt ZF9sZW4iOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9z eXNfbWF4X2NtZF9sZW4gXC8gNGAKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIg JGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAorKyAgICBlbHNlCisrICAgICAgU0hFTEw9JHtT SEVMTC0ke0NPTkZJR19TSEVMTC0vYmluL3NofX0KKysgICAgICB3aGlsZSAodGVzdCAiWCJgJFNI RUxMICQwIC0tZmFsbGJhY2stZWNobyAiWCR0ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAorKwkg ICAgICAgPSAiWFgkdGVzdHN0cmluZyIpID4vZGV2L251bGwgMj4mMSAmJgorKwkgICAgICBuZXdf cmVzdWx0PWBleHByICJYJHRlc3RzdHJpbmciIDogIi4qIiAyPiYxYCAmJgorKwkgICAgICBsdF9j dl9zeXNfbWF4X2NtZF9sZW49JG5ld19yZXN1bHQgJiYKKysJICAgICAgdGVzdCAkaSAhPSAxNyAj IDEvMiBNQiBzaG91bGQgYmUgZW5vdWdoCisrICAgICAgZG8KKysgICAgICAgIGk9YGV4cHIgJGkg KyAxYAorKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCisrICAgICAg ZG9uZQorKyAgICAgIHRlc3RzdHJpbmc9CisrICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZl dHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbiBtYXNzaXZlCisrICAg ICAgIyBhbW91bnRzIG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0g dG8gdGhlIGxpbmtlci4KKysgICAgICAjIEl0IGFwcGVhcnMgYXMgdGhvdWdoIDEvMiBpcyBhIHVz YWJsZSB2YWx1ZS4KKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5 c19tYXhfY21kX2xlbiBcLyAyYAorKyAgICBmaQorKyAgICA7OworKyAgZXNhYworKworK2ZpCisr CisraWYgdGVzdCAtbiAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIDsgdGhlbgorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3N5c19tYXhfY21kX2xlbiIgPiY1Cisr JGFzX2VjaG8gIiRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iID4mNjsgfQorK2Vsc2UKKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vbmUiID4mNQorKyRhc19lY2hvICJub25l IiA+JjY7IH0KKytmaQorKworKworKworKworKworKyMgQ2hlY2sgZm9yIGNvbW1hbmQgdG8gZ3Jh YiB0aGUgcmF3IHN5bWJvbCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3ltYm9sIGZyb20gbm0uCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGNvbW1hbmQgdG8gcGFyc2UgJE5NIG91 dHB1dCBmcm9tICRjb21waWxlciBvYmplY3QiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGNv bW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3QuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUrc2V0fSIgPSBzZXQ7 IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKyMgVGhlc2Ug YXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBzeXN0ZW1z LgorKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUgb2xkZXIgdGhhbiBV bHRyaXg/ISEgOyldCisrCisrIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBnbG9iYWwg c3ltYm9sIGNvZGVzLgorK3N5bWNvZGU9J1tCQ0RFR1JTVF0nCisrCisrIyBSZWdleHAgdG8gbWF0 Y2ggc3ltYm9scyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBkaXJlY3RseSBmcm9tIEMuCisrc3ltcGF0 PSdcKFtfQS1aYS16XVtfQS1aYS16MC05XSpcKScKKysKKysjIFRyYW5zZm9ybSBhbiBleHRyYWN0 ZWQgc3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xhcmF0aW9uCisrbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAncy9eLiAuKiBcKC4qXCkkL2V4dGVybiBp bnQgXDE7L3AnIgorKworKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRv IHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcworK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwpICQvICB7XFxcIlwx XFxcIiwgKGx0X3B0cikgMH0sL3AnIC1lICdzL14kc3ltY29kZSBcKFteIF0qXCkgXChbXiBdKlwp JC8gIHtcIlwyXCIsIChsdF9wdHIpIFwmXDJ9LC9wJyIKKysKKysjIERlZmluZSBzeXN0ZW0tc3Bl Y2lmaWMgdmFyaWFibGVzLgorK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgqKQorKyAgc3ltY29kZT0n W0JDRFRdJworKyAgOzsKKytjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisrICBzeW1jb2RlPSdb QUJDREdJU1RXXScKKysgIDs7CisraHB1eCopICMgSXRzIGxpbmtlciBkaXN0aW5ndWlzaGVzIGRh dGEgZnJvbSBjb2RlIHN5bWJvbHMKKysgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVu CisrICAgIHN5bWNvZGU9J1tBQkNERUdSU1RdJworKyAgZmkKKysgIGx0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwx KCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCciCisr ICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdz L146IFwoW14gXSpcKSAkLyAge1xcXCJcMVxcXCIsIChsdF9wdHIpIDB9LC9wJyAtZSAncy9eJHN5 bWNvZGUqIFwoW14gXSpcKSBcKFteIF0qXCkkLyAge1wiXDJcIiwgKGx0X3B0cikgXCZcMn0sL3An IgorKyAgOzsKKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9 IGlhNjQ7IHRoZW4KKysgICAgc3ltY29kZT0nW0FCQ0RHSVJTVFddJworKyAgICBsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFwoLipcKSQvZXh0ZXJu IGludCBcMSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7 L3AnIgorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0ic2Vk IC1uIC1lICdzL146IFwoW14gXSpcKSAkLyAge1xcXCJcMVxcXCIsIChsdF9wdHIpIDB9LC9wJyAt ZSAncy9eJHN5bWNvZGUqIFwoW14gXSpcKSBcKFteIF0qXCkkLyAge1wiXDJcIiwgKGx0X3B0cikg XCZcMn0sL3AnIgorKyAgZmkKKysgIDs7CisraXJpeCogfCBub25zdG9wdXgqKQorKyAgc3ltY29k ZT0nW0JDREVHUlNUXScKKysgIDs7Cisrb3NmKikKKysgIHN5bWNvZGU9J1tCQ0RFR1FSU1RdJwor KyAgOzsKKytzb2xhcmlzKikKKysgIHN5bWNvZGU9J1tCRFJUXScKKysgIDs7Cisrc2NvMy4ydjUq KQorKyAgc3ltY29kZT0nW0RUXScKKysgIDs7Cisrc3lzdjQuMnV3MiopCisrICBzeW1jb2RlPSdb RFRdJworKyAgOzsKKytzeXN2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQor KyAgc3ltY29kZT0nW0FCRFRdJworKyAgOzsKKytzeXN2NCkKKysgIHN5bWNvZGU9J1tERk5TVFVd JworKyAgOzsKKytlc2FjCisrCisrIyBIYW5kbGUgQ1JMRiBpbiBtaW5ndyB0b29sIGNoYWluCisr b3B0X2NyPQorK2Nhc2UgJGJ1aWxkX29zIGluCisrbWluZ3cqKQorKyAgb3B0X2NyPWBlY2hvICd4 XHswLDFcfScgfCB0ciB4ICdcMDE1J2AgIyBvcHRpb24gY3IgaW4gcmVnZXhwCisrICA7OworK2Vz YWMKKysKKysjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB1c2UgaXRzIHN0YW5kYXJkIHN5 bWJvbCBjb2Rlcy4KKytjYXNlIGAkTk0gLVYgMj4mMWAgaW4KKysqR05VKiB8ICond2l0aCBCRkQn KikKKysgIHN5bWNvZGU9J1tBQkNER0lSU1RXXScgOzsKKytlc2FjCisrCisrIyBUcnkgd2l0aG91 dCBhIHByZWZpeCB1bmRlcmNvcmUsIHRoZW4gd2l0aCBpdC4KKytmb3IgYWNfc3ltcHJmeCBpbiAi IiAiXyI7IGRvCisrCisrICAjIFRyYW5zZm9ybSBzeW1jb2RlLCBzeW1wYXQsIGFuZCBzeW1wcmZ4 IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMgc3ltYm9sLgorKyAgc3lteGZybT0iXFwxICRhY19z eW1wcmZ4XFwyIFxcMiIKKysKKysgICMgV3JpdGUgdGhlIHJhdyBhbmQgQyBpZGVudGlmaWVycy4K KysgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbIAldXCgk c3ltY29kZSRzeW1jb2RlKlwpWyAJXVsgCV0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5 bXhmcm0vcCciCisrCisrICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBwaXBlIHdvcmtzIGNvcnJl Y3RseS4KKysgIHBpcGVfd29ya3M9bm8KKysKKysgIHJtIC1mIGNvbmZ0ZXN0KgorKyAgY2F0ID4g Y29uZnRlc3QuJGFjX2V4dCA8PEVPRgorKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIg eworKyNlbmRpZgorK2NoYXIgbm1fdGVzdF92YXI7Cisrdm9pZCBubV90ZXN0X2Z1bmMoKXt9Cisr I2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZgorK2ludCBtYWluKCl7bm1fdGVzdF92YXI9 J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9CisrRU9GCisrCisrICBpZiB7IChldmFsIGVj aG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19j b21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgor KyAgICAjIE5vdyB0cnkgdG8gZ3JhYiB0aGUgc3ltYm9scy4KKysgICAgbmxpc3Q9Y29uZnRlc3Qu bm0KKysgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkTk0gY29uZnRlc3Qu JGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBcPiAkbmxpc3RcIiIp ID4mNQorKyAgKGV2YWwgJE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3BpcGUgXD4gJG5saXN0KSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB0ZXN0IC1zICIkbmxpc3QiOyB0aGVuCisrICAgICAgIyBUcnkgc29ydGlu ZyBhbmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KKysgICAgICBpZiBzb3J0ICIkbmxpc3QiIHwg dW5pcSA+ICIkbmxpc3QiVDsgdGhlbgorKwltdiAtZiAiJG5saXN0IlQgIiRubGlzdCIKKysgICAg ICBlbHNlCisrCXJtIC1mICIkbmxpc3QiVAorKyAgICAgIGZpCisrCisrICAgICAgIyBNYWtlIHN1 cmUgdGhhdCB3ZSBzbmFnZ2VkIGFsbCB0aGUgc3ltYm9scyB3ZSBuZWVkLgorKyAgICAgIGlmIGdy ZXAgJyBubV90ZXN0X3ZhciQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KKysJaWYgZ3JlcCAn IG5tX3Rlc3RfZnVuYyQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KKysJICBjYXQgPDxFT0Yg PiBjb25mdGVzdC4kYWNfZXh0CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB7Cisr I2VuZGlmCisrCisrRU9GCisrCSAgIyBOb3cgZ2VuZXJhdGUgdGhlIHN5bWJvbCBmaWxlLgorKwkg IGV2YWwgIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCInIDwgIiRubGlzdCIgfCBn cmVwIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dCcKKysKKysJICBjYXQgPDxFT0YgPj4gY29u ZnRlc3QuJGFjX2V4dAorKyNpZiBkZWZpbmVkIChfX1NURENfXykgJiYgX19TVERDX18KKysjIGRl ZmluZSBsdF9wdHJfdCB2b2lkICoKKysjZWxzZQorKyMgZGVmaW5lIGx0X3B0cl90IGNoYXIgKgor KyMgZGVmaW5lIGNvbnN0CisrI2VuZGlmCisrCisrLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1i b2wgbmFtZXMgYW5kIHN5bWJvbHMuICovCisrY29uc3Qgc3RydWN0IHsKKysgIGNvbnN0IGNoYXIg Km5hbWU7CisrICBsdF9wdHJfdCBhZGRyZXNzOworK30KKytsdF9wcmVsb2FkZWRfc3ltYm9sc1td ID0KKyt7CisrRU9GCisrCSAgJFNFRCAicy9eJHN5bWNvZGUkc3ltY29kZSogXCguKlwpIFwoLipc KSQvICB7XCJcMlwiLCAobHRfcHRyX3QpIFwmXDJ9LC8iIDwgIiRubGlzdCIgfCBncmVwIC12IG1h aW4gPj4gY29uZnRlc3QuJGFjX2V4dAorKwkgIGNhdCA8PFxFT0YgPj4gY29uZnRlc3QuJGFjX2V4 dAorKyAgezAsIChsdF9wdHJfdCkgMH0KKyt9OworKworKyNpZmRlZiBfX2NwbHVzcGx1cworK30K KysjZW5kaWYKKytFT0YKKysJICAjIE5vdyB0cnkgbGlua2luZyB0aGUgdHdvIGZpbGVzLgorKwkg IG12IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRzdG0uJGFjX29iamV4dAorKwkgIGx0X3NhdmVf TElCUz0iJExJQlMiCisrCSAgbHRfc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCisrCSAgTElCUz0iY29u ZnRzdG0uJGFjX29iamV4dCIKKysJICBDRkxBR1M9IiRDRkxBR1MkbHRfcHJvZ19jb21waWxlcl9u b19idWlsdGluX2ZsYWciCisrCSAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIk YWNfbGlua1wiIikgPiY1CisrICAoZXZhbCAkYWNfbGluaykgMj4mNQorKyAgYWNfc3RhdHVzPSQ/ CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhl bgorKwkgICAgcGlwZV93b3Jrcz15ZXMKKysJICBmaQorKwkgIExJQlM9IiRsdF9zYXZlX0xJQlMi CisrCSAgQ0ZMQUdTPSIkbHRfc2F2ZV9DRkxBR1MiCisrCWVsc2UKKysJICBlY2hvICJjYW5ub3Qg ZmluZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JjUKKysJZmkKKysgICAgICBlbHNlCisrCWVj aG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIgPiY1CisrICAgICAgZmkKKysg ICAgZWxzZQorKyAgICAgIGVjaG8gImNhbm5vdCBydW4gJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3BpcGUiID4mNQorKyAgICBmaQorKyAgZWxzZQorKyAgICBlY2hvICIkcHJvZ25hbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQorKyAgICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysgIGZp CisrICBybSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCisrCisrICAjIERvIG5vdCB1c2UgdGhlIGds b2JhbF9zeW1ib2xfcGlwZSB1bmxlc3MgaXQgd29ya3MuCisrICBpZiB0ZXN0ICIkcGlwZV93b3Jr cyIgPSB5ZXM7IHRoZW4KKysgICAgYnJlYWsKKysgIGVsc2UKKysgICAgbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfcGlwZT0KKysgIGZpCisrZG9uZQorKworK2ZpCisrCisraWYgdGVzdCAteiAiJGx0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrICBsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF90b19jZGVjbD0KKytmaQorK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF9waXBlJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIjsgdGhlbgorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogZmFpbGVkIiA+JjUKKyskYXNfZWNobyAiZmFp bGVkIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBvayIgPiY1CisrJGFzX2VjaG8gIm9rIiA+JjY7IH0KKytmaQorKworK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3Igb2JqZGlyIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyBmb3Igb2JqZGlyLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9vYmpkaXIrc2V0 fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg cm0gLWYgLmxpYnMgMj4vZGV2L251bGwKKytta2RpciAubGlicyAyPi9kZXYvbnVsbAorK2lmIHRl c3QgLWQgLmxpYnM7IHRoZW4KKysgIGx0X2N2X29iamRpcj0ubGlicworK2Vsc2UKKysgICMgTVMt RE9TIGRvZXMgbm90IGFsbG93IGZpbGVuYW1lcyB0aGF0IGJlZ2luIHdpdGggYSBkb3QuCisrICBs dF9jdl9vYmpkaXI9X2xpYnMKKytmaQorK3JtZGlyIC5saWJzIDI+L2Rldi9udWxsCisrZmkKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3Zfb2JqZGlyIiA+JjUKKysk YXNfZWNobyAiJGx0X2N2X29iamRpciIgPiY2OyB9Cisrb2JqZGlyPSRsdF9jdl9vYmpkaXIKKysK KysKKysKKysKKysKKytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisrICAjIEFJWCBzb21ldGlt ZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUK KysgICMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52aXJvbm1lbnQgdmFy aWFibGUsIHRoZSBwcm9ibGVtcworKyAgIyB2YW5pc2ggaW4gYSBwdWZmIG9mIHNtb2tlLgorKyAg aWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVuCisrICAgIENPTExF Q1RfTkFNRVM9CisrICAgIGV4cG9ydCBDT0xMRUNUX05BTUVTCisrICBmaQorKyAgOzsKKytlc2Fj CisrCisrIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3Rpbmcu ICBJdCBiYWNrc2xhc2hpZmllcworKyMgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0 aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmluZ3MuCisrWHNlZD0nc2VkIC1lIDFzL15YLy8n Cisrc2VkX3F1b3RlX3N1YnN0PSdzL1woW1xcIlxcYCRcXFxcXVwpL1xcXDEvZycKKysKKysjIFNh bWUgYXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KKytkb3Vi bGVfcXVvdGVfc3Vic3Q9J3MvXChbXFwiXFxgXFxcXF1cKS9cXFwxL2cnCisrCisrIyBTZWQgc3Vi c3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNoZWxsIHZhcmlhYmxl IGluIGEKKysjIGRvdWJsZV9xdW90ZV9zdWJzdCdlZCBzdHJpbmcuCisrZGVsYXlfdmFyaWFibGVf c3Vic3Q9J3MvXFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKKysKKysjIFNlZCBzdWJzdGl0dXRpb24g dG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQgZXhwcmVzc2lvbnMKKytub19n bG9iX3N1YnN0PSdzL1wqL1xcXCovZycKKysKKysjIENvbnN0YW50czoKKytybT0icm0gLWYiCisr CisrIyBHbG9iYWwgdmFyaWFibGVzOgorK2RlZmF1bHRfb2ZpbGU9bGlidG9vbAorK2Nhbl9idWls ZF9zaGFyZWQ9eWVzCisrCisrIyBBbGwga25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNo aXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCisrIyB3aGljaCBuZWVkcyAnLmxp YicpLgorK2xpYmV4dD1hCisrbHRtYWluPSIkYWNfYXV4X2Rpci9sdG1haW4uc2giCisrb2ZpbGU9 IiRkZWZhdWx0X29maWxlIgorK3dpdGhfZ251X2xkPSIkbHRfY3ZfcHJvZ19nbnVfbGQiCisrCisr aWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWFyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1hcjsgYWNfd29yZD0k MgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7YWNfY3ZfcHJvZ19BUitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQVIiOyB0aGVuCisrICBhY19jdl9w cm9nX0FSPSIkQVIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKyth c19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFU SAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19k aXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7 IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRh c190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFj X2N2X3Byb2dfQVI9IiR7YWNfdG9vbF9wcmVmaXh9YXIiCisrICAgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJy ZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytm aQorK0FSPSRhY19jdl9wcm9nX0FSCisraWYgdGVzdCAtbiAiJEFSIjsgdGhlbgorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJEFSIiA+JjUKKyskYXNfZWNobyAiJEFSIiA+ JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAi JGFjX2N2X3Byb2dfQVIiOyB0aGVuCisrICBhY19jdF9BUj0kQVIKKysgICMgRXh0cmFjdCB0aGUg Zmlyc3Qgd29yZCBvZiAiYXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgorK3NldCBkdW1teSBhcjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9BUitzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBp ZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0FSPSIkYWNf Y3RfQVIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisr ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3By b2dfYWNfY3RfQVI9ImFyIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2Rv bmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9BUj0kYWNf Y3ZfcHJvZ19hY19jdF9BUgorK2lmIHRlc3QgLW4gIiRhY19jdF9BUiI7IHRoZW4KKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9BUiIgPiY1CisrJGFzX2VjaG8g IiRhY19jdF9BUiIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRl c3QgIngkYWNfY3RfQVIiID0geDsgdGhlbgorKyAgICBBUj0iZmFsc2UiCisrICBlbHNlCisrICAg IGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJl Zml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6 IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30K KythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIEFSPSRhY19jdF9BUgorKyAgZmkK KytlbHNlCisrICBBUj0iJGFjX2N2X3Byb2dfQVIiCisrZmkKKysKKytpZiB0ZXN0IC1uICIkYWNf dG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNf dG9vbF9wcmVmaXh9cmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KKytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1yYW5saWI7IGFjX3dvcmQ9JDIKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfUkFOTElCK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICBhY19jdl9w cm9nX1JBTkxJQj0iJFJBTkxJQiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisr ZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGly IGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K KysgICAgYWNfY3ZfcHJvZ19SQU5MSUI9IiR7YWNfdG9vbF9wcmVmaXh9cmFubGliIgorKyAgICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZl X0lGUworKworK2ZpCisrZmkKKytSQU5MSUI9JGFjX2N2X3Byb2dfUkFOTElCCisraWYgdGVzdCAt biAiJFJBTkxJQiI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRSQU5MSUIiID4mNQorKyRhc19lY2hvICIkUkFOTElCIiA+JjY7IH0KKytlbHNlCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfUkFOTElCIjsg dGhlbgorKyAgYWNfY3RfUkFOTElCPSRSQU5MSUIKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29y ZCBvZiAicmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytz ZXQgZHVtbXkgcmFubGliOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1JBTkxJQitz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9S QU5MSUI9IiRhY19jdF9SQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgor K2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2Rp ciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu CisrICAgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSJyYW5saWIiCisrICAgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Cisr ICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisr ZmkKKytmaQorK2FjX2N0X1JBTkxJQj0kYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIKKytpZiB0ZXN0 IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFjX2N0X1JBTkxJQiIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9SQU5MSUIiID4m NjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+ JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X1JB TkxJQiIgPSB4OyB0aGVuCisrICAgIFJBTkxJQj0iOiIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jv c3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRo IGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jv c3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xf d2FybmVkPXllcyA7OworK2VzYWMKKysgICAgUkFOTElCPSRhY19jdF9SQU5MSUIKKysgIGZpCisr ZWxzZQorKyAgUkFOTElCPSIkYWNfY3ZfcHJvZ19SQU5MSUIiCisrZmkKKysKKytpZiB0ZXN0IC1u ICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2Yg IiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlwOyBhY193b3JkPSQyCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHthY19jdl9wcm9nX1NUUklQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KKysgIGFjX2N2 X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisr ZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGly IGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K KysgICAgYWNfY3ZfcHJvZ19TVFJJUD0iJHthY190b29sX3ByZWZpeH1zdHJpcCIKKysgICAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9J RlMKKysKKytmaQorK2ZpCisrU1RSSVA9JGFjX2N2X3Byb2dfU1RSSVAKKytpZiB0ZXN0IC1uICIk U1RSSVAiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkU1RS SVAiID4mNQorKyRhc19lY2hvICIkU1RSSVAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQor K2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19TVFJJUCI7IHRoZW4KKysg IGFjX2N0X1NUUklQPSRTVFJJUAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzdHJp cCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IHN0 cmlwOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1NUUklQK3NldH0iID0gc2V0OyB0 aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4g IiRhY19jdF9TVFJJUCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9IiRhY19jdF9T VFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8K KysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisr ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJv Z19hY19jdF9TVFJJUD0ic3RyaXAiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZp CisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X1NU UklQPSRhY19jdl9wcm9nX2FjX2N0X1NUUklQCisraWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsg dGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X1NUUklQ IiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X1NUUklQIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7 IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9TVFJJUCIgPSB4OyB0aGVuCisrICAgIFNU UklQPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2Fy bmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNp bmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0 aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAg ICBTVFJJUD0kYWNfY3RfU1RSSVAKKysgIGZpCisrZWxzZQorKyAgU1RSSVA9IiRhY19jdl9wcm9n X1NUUklQIgorK2ZpCisrCisrCisrb2xkX0NDPSIkQ0MiCisrb2xkX0NGTEFHUz0iJENGTEFHUyIK KysKKysjIFNldCBzYW5lIGRlZmF1bHRzIGZvciB2YXJpb3VzIHZhcmlhYmxlcworK3Rlc3QgLXog IiRBUiIgJiYgQVI9YXIKKyt0ZXN0IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQorK3Rl c3QgLXogIiRBUyIgJiYgQVM9YXMKKyt0ZXN0IC16ICIkQ0MiICYmIENDPWNjCisrdGVzdCAteiAi JExUQ0MiICYmIExUQ0M9JENDCisrdGVzdCAteiAiJExUQ0ZMQUdTIiAmJiBMVENGTEFHUz0kQ0ZM QUdTCisrdGVzdCAteiAiJERMTFRPT0wiICYmIERMTFRPT0w9ZGxsdG9vbAorK3Rlc3QgLXogIiRM RCIgJiYgTEQ9bGQKKyt0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCisrdGVzdCAteiAi JE1BR0lDX0NNRCIgJiYgTUFHSUNfQ01EPWZpbGUKKyt0ZXN0IC16ICIkTk0iICYmIE5NPW5tCisr dGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1Q PW9iamR1bXAKKyt0ZXN0IC16ICIkUkFOTElCIiAmJiBSQU5MSUI9OgorK3Rlc3QgLXogIiRTVFJJ UCIgJiYgU1RSSVA9OgorK3Rlc3QgLXogIiRhY19vYmpleHQiICYmIGFjX29iamV4dD1vCisrCisr IyBEZXRlcm1pbmUgY29tbWFuZHMgdG8gY3JlYXRlIG9sZC1zdHlsZSBzdGF0aWMgYXJjaGl2ZXMu Cisrb2xkX2FyY2hpdmVfY21kcz0nJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMnCisrb2xk X3Bvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDY0NCAkb2xkbGliJworK29sZF9wb3N0dW5pbnN0YWxs X2NtZHM9CisrCisraWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgIG9wZW5ic2QqKQorKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5z dGFsbF9jbWRzflwkUkFOTElCIC10IFwkb2xkbGliIgorKyAgICA7OworKyAgKikKKysgICAgb2xk X3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiBcJG9sZGxp YiIKKysgICAgOzsKKysgIGVzYWMKKysgIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9j bWRzflwkUkFOTElCIFwkb2xkbGliIgorK2ZpCisrCisrZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVy IiI7IGRvCisrICBjYXNlICRjY190ZW1wIGluCisrICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxl IHwgY2NhY2hlIHwgKltcXC9dY2NhY2hlICkgOzsKKysgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNj IHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAqKSBicmVh azs7CisrICBlc2FjCisrZG9uZQorK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1wIiB8ICRY c2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorKworKworKyMgT25seSBw ZXJmb3JtIHRoZSBjaGVjayBmb3IgZmlsZSwgaWYgdGhlIGNoZWNrIG1ldGhvZCByZXF1aXJlcyBp dAorK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrZmlsZV9tYWdpYyopCisrICBpZiB0 ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCisrICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJHthY190b29sX3ByZWZpeH1maWxlIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJHthY190b29sX3ByZWZpeH1maWxlLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wYXRoX01BR0lDX0NNRCtzZXR9IiA9IHNldDsgdGhl bgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRNQUdJQ19D TUQgaW4KKytbXFwvKl0gfCAgPzpbXFwvXSopCisrICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1B R0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisr ICA7OworKyopCisrICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKKysgIGx0X3NhdmVf aWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgYWNfZHVtbXk9Ii91c3IvYmluJFBB VEhfU0VQQVJBVE9SJFBBVEgiCisrICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KKysgICAg SUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisr ICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4fWZpbGU7IHRoZW4KKysgICAg ICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4fWZpbGUiCisr ICAgICAgaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgorKwljYXNlICRk ZXBsaWJzX2NoZWNrX21ldGhvZCBpbgorKwkiZmlsZV9tYWdpYyAiKikKKysJICBmaWxlX21hZ2lj X3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogImZpbGVfbWFnaWMgXCguKlwp ImAKKysJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKKysJICBpZiBldmFsICRm aWxlX21hZ2ljX2NtZCBcJGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+IC9kZXYvbnVsbCB8CisrCSAg ICAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgorKwkgICAgOgor KwkgIGVsc2UKKysJICAgIGNhdCA8PEVPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRoZSBjb21t YW5kIGxpYnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmllcywKKysqKiogJGZpbGVf bWFnaWNfY21kLCBwcm9kdWNlcyBvdXRwdXQgdGhhdCBsaWJ0b29sIGNhbm5vdCByZWNvZ25pemUu CisrKioqIFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBmYWlsIHRvIHJlY29nbml6ZSBz aGFyZWQgbGlicmFyaWVzCisrKioqIGFzIHN1Y2guICBUaGlzIHdpbGwgYWZmZWN0IHRoZSBjcmVh dGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0CisrKioqIGRlcGVuZCBvbiBzaGFyZWQgbGli cmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlua2VkIHdpdGggc3VjaCBsaWJ0b29sCisrKioqIGxpYnJh cmllcyB3aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlzIHByb2JsZW0uICBOZXZlcnRoZWxlc3Ms IHlvdQorKyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhlIHByb2JsZW0gdG8geW91ciBzeXN0ZW0g bWFuYWdlciBhbmQvb3IgdG8KKysqKiogYnVnLWxpYnRvb2xAZ251Lm9yZworKworK0VPRgorKwkg IGZpIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIGJyZWFrCisrICAgIGZpCisrICBkb25l CisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgIE1BR0lDX0NNRD0iJGx0X3NhdmVfTUFHSUNfQ01E IgorKyAgOzsKKytlc2FjCisrZmkKKysKKytNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NN RCIKKytpZiB0ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJE1BR0lDX0NNRCIgPiY1CisrJGFzX2VjaG8gIiRNQUdJQ19DTUQi ID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v IiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisraWYgdGVzdCAteiAiJGx0X2N2 X3BhdGhfTUFHSUNfQ01EIjsgdGhlbgorKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4Ijsg dGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGZpbGUi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBmaWxlLi4uICIgPiY2OyB9CisraWYgdGVz dCAiJHtsdF9jdl9wYXRoX01BR0lDX0NNRCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRNQUdJQ19DTUQgaW4KKytbXFwvKl0g fCAgPzpbXFwvXSopCisrICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7OworKyopCisrICBs dF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKKysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZT PSRQQVRIX1NFUEFSQVRPUgorKyAgYWNfZHVtbXk9Ii91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBB VEgiCisrICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9p ZnMiCisrICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisrICAgIGlmIHRlc3QgLWYg JGFjX2Rpci9maWxlOyB0aGVuCisrICAgICAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRhY19kaXIv ZmlsZSIKKysgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0aGVuCisr CWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCSJmaWxlX21hZ2ljICIqKQorKwkgIGZp bGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiZmlsZV9tYWdp YyBcKC4qXCkiYAorKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorKwkgIGlm IGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9udWxs IHwKKysJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisr CSAgICA6CisrCSAgZWxzZQorKwkgICAgY2F0IDw8RU9GIDE+JjIKKysKKysqKiogV2FybmluZzog dGhlIGNvbW1hbmQgbGlidG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAorKyoq KiAkZmlsZV9tYWdpY19jbWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJl Y29nbml6ZS4KKysqKiogVGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8gcmVj b2duaXplIHNoYXJlZCBsaWJyYXJpZXMKKysqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3Qg dGhlIGNyZWF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKKysqKiogZGVwZW5kIG9uIHNo YXJlZCBsaWJyYXJpZXMsIGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKKysq KiogbGlicmFyaWVzIHdpbGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5ldmVy dGhlbGVzcywgeW91CisrKioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3Vy IHN5c3RlbSBtYW5hZ2VyIGFuZC9vciB0bworKyoqKiBidWctbGlidG9vbEBnbnUub3JnCisrCisr RU9GCisrCSAgZmkgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgYnJlYWsKKysgICAgZmkK KysgIGRvbmUKKysgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9N QUdJQ19DTUQiCisrICA7OworK2VzYWMKKytmaQorKworK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhf TUFHSUNfQ01EIgorK2lmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUFHSUNfQ01EIiA+JjUKKyskYXNfZWNobyAiJE1B R0lDX0NNRCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGVsc2UKKysg ICAgTUFHSUNfQ01EPToKKysgIGZpCisrZmkKKysKKysgIGZpCisrICA7OworK2VzYWMKKysKKysK KysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgcmhhcHNvZHkqIHwgZGFyd2luKikKKysgICAgaWYg dGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWRzeW11dGlsIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1kc3ltdXRpbDsg YWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFj X3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsg fQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19EU1lNVVRJTCtzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkRFNZTVVU SUwiOyB0aGVuCisrICBhY19jdl9wcm9nX0RTWU1VVElMPSIkRFNZTVVUSUwiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVf SUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfRFNZTVVUSUw9IiR7YWNf dG9vbF9wcmVmaXh9ZHN5bXV0aWwiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZp CisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0RTWU1VVElM PSRhY19jdl9wcm9nX0RTWU1VVElMCisraWYgdGVzdCAtbiAiJERTWU1VVElMIjsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJERTWU1VVElMIiA+JjUKKyskYXNf ZWNobyAiJERTWU1VVElMIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKwor K2ZpCisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfRFNZTVVUSUwiOyB0aGVuCisrICBhY19jdF9E U1lNVVRJTD0kRFNZTVVUSUwKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZHN5bXV0 aWwiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBk c3ltdXRpbDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTCtzZXR9IiA9 IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0 ZXN0IC1uICIkYWNfY3RfRFNZTVVUSUwiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0RTWU1V VElMPSIkYWNfY3RfRFNZTVVUSUwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgor K2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2Rp ciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu CisrICAgIGFjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUw9ImRzeW11dGlsIgorKyAgICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUwor KworK2ZpCisrZmkKKythY19jdF9EU1lNVVRJTD0kYWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTAor K2lmIHRlc3QgLW4gIiRhY19jdF9EU1lNVVRJTCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9EU1lNVVRJTCIgPiY1CisrJGFzX2VjaG8gIiRhY19j dF9EU1lNVVRJTCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRl c3QgIngkYWNfY3RfRFNZTVVUSUwiID0geDsgdGhlbgorKyAgICBEU1lNVVRJTD0iOiIKKysgIGVs c2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczop CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xz IG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgRFNZTVVUSUw9JGFj X2N0X0RTWU1VVElMCisrICBmaQorK2Vsc2UKKysgIERTWU1VVElMPSIkYWNfY3ZfcHJvZ19EU1lN VVRJTCIKKytmaQorKworKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisr ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9bm1lZGl0Iiwg c28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190 b29sX3ByZWZpeH1ubWVkaXQ7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfTk1FRElUK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlm IHRlc3QgLW4gIiROTUVESVQiOyB0aGVuCisrICBhY19jdl9wcm9nX05NRURJVD0iJE5NRURJVCIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElG Uz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3Ig YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsg dGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19OTUVE SVQ9IiR7YWNfdG9vbF9wcmVmaXh9bm1lZGl0IgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAy CisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytO TUVESVQ9JGFjX2N2X3Byb2dfTk1FRElUCisraWYgdGVzdCAtbiAiJE5NRURJVCI7IHRoZW4KKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICROTUVESVQiID4mNQorKyRhc19l Y2hvICIkTk1FRElUIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2Zp CisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfTk1FRElUIjsgdGhlbgorKyAgYWNfY3RfTk1FRElU PSROTUVESVQKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAibm1lZGl0Iiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgbm1lZGl0OyBhY193 b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X05NRURJVCtzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3Rf Tk1FRElUIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9OTUVESVQ9IiRhY19jdF9OTUVESVQi ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJ RlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfYWNf Y3RfTk1FRElUPSJubWVkaXQiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisr ZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X05NRURJ VD0kYWNfY3ZfcHJvZ19hY19jdF9OTUVESVQKKytpZiB0ZXN0IC1uICIkYWNfY3RfTk1FRElUIjsg dGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X05NRURJ VCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9OTUVESVQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4m NjsgfQorK2ZpCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X05NRURJVCIgPSB4OyB0aGVuCisrICAg IE5NRURJVD0iOiIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29s X3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVk IHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMK KysgICAgTk1FRElUPSRhY19jdF9OTUVESVQKKysgIGZpCisrZWxzZQorKyAgTk1FRElUPSIkYWNf Y3ZfcHJvZ19OTUVESVQiCisrZmkKKysKKysKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAtc2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZyIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtlciBmbGFnLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X2FwcGxlX2Nj X3NpbmdsZV9tb2Q9bm8KKysgICAgICBpZiB0ZXN0IC16ICIke0xUX01VTFRJX01PRFVMRX0iOyB0 aGVuCisrICAgIyBCeSBkZWZhdWx0IHdlIHdpbGwgYWRkIHRoZSAtc2luZ2xlX21vZHVsZSBmbGFn LiBZb3UgY2FuIG92ZXJyaWRlCisrICAgIyBieSBlaXRoZXIgc2V0dGluZyB0aGUgZW52aXJvbm1l bnQgdmFyaWFibGUgTFRfTVVMVElfTU9EVUxFCisrICAgIyBub24tZW1wdHkgYXQgY29uZmlndXJl IHRpbWUsIG9yIGJ5IGFkZGluZyAtbXVsdGlfbW9kdWxlIHRvIHRoZQorKyAgICMgbGluayBmbGFn cy4KKysgICBlY2hvICJpbnQgZm9vKHZvaWQpe3JldHVybiAxO30iID4gY29uZnRlc3QuYworKyAg ICRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJjb25mdGVzdC5keWxpYiBcCisrICAgICAt ZHluYW1pY2xpYiAke3dsfS1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMKKysgICBpZiB0ZXN0IC1m IGxpYmNvbmZ0ZXN0LmR5bGliOyB0aGVuCisrICAgICBsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9k PXllcworKyAgICAgcm0gLXJmIGxpYmNvbmZ0ZXN0LmR5bGliKgorKyAgIGZpCisrICAgcm0gY29u ZnRlc3QuYworKyAgICAgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9h cHBsZV9jY19zaW5nbGVfbW9kIiA+JjY7IH0KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGxpbmtlciBmbGFnIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3IgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIg ZmxhZy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19s aXN0K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ubworKyAgICAgIHNhdmVfTERG TEFHUz0kTERGTEFHUworKyAgICAgIGVjaG8gIl9tYWluIiA+IGNvbmZ0ZXN0LnN5bQorKyAgICAg IExERkxBR1M9IiRMREZMQUdTIC1XbCwtZXhwb3J0ZWRfc3ltYm9sc19saXN0LGNvbmZ0ZXN0LnN5 bSIKKysgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5o LiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKwor K2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisr cm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190 cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAy PmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRl c3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dl cnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmci ID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0 aGVuCisrICBsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9eWVzCisrZWxzZQorKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9 bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAg ICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorKyAgIExERkxBR1M9IiRzYXZl X0xERkxBR1MiCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk bHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X2xk X2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPiY2OyB9CisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysg ICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bMDEyM10pCisrICAgICAgX2x0X2Rhcl9hbGxvd191bmRl ZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworKyAgICBkYXJ3aW4xLiop CisrICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3 bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7CisrICAgIGRhcndpbiopCisrICAgICAgIyBp ZiBydW5uaW5nIG9uIDEwLjUgb3IgbGF0ZXIsIHRoZSBkZXBsb3ltZW50IHRhcmdldCBkZWZhdWx0 cworKyAgICAgICMgdG8gdGhlIE9TIHZlcnNpb24sIGlmIG9uIHg4NiwgYW5kIDEwLjQsIHRoZSBk ZXBsb3ltZW50CisrICAgICAgIyB0YXJnZXQgZGVmYXVsdHMgdG8gMTAuNC4gRG9uJ3QgeW91IGxv dmUgaXQ/CisrICAgICAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVC0xMC4wfSwkaG9z dCBpbgorKyAgIDEwLjAsKjg2Ki1kYXJ3aW44KnwxMC4wLCotZGFyd2luWzkxXSopCisrICAgICBf bHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29r dXAnIDs7CisrICAgMTAuWzAxMl0qKQorKyAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7 d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworKyAg IDEwLiopCisrICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7 d2x9ZHluYW1pY19sb29rdXAnIDs7CisrICAgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAg ICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPSAieWVzIjsgdGhlbgorKyAg ICAgIF9sdF9kYXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUnCisrICAgIGZpCisrICAgIGlm IHRlc3QgIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID0gInllcyI7IHRoZW4KKysg ICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sc19saXN0LCRv dXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0nCisrICAgIGVsc2UKKysgICAg ICBfbHRfZGFyX2V4cG9ydF9zeW1zPSJ+JE5NRURJVCAtcyBcJG91dHB1dF9vYmpkaXIvXCR7bGli bmFtZX0tc3ltYm9scy5leHBzeW0gXCR7bGlifSIKKysgICAgZmkKKysgICAgaWYgdGVzdCAiJERT WU1VVElMIiAhPSAiOiI7IHRoZW4KKysgICAgICBfbHRfZHN5bXV0aWw9In4kRFNZTVVUSUwgXCRs aWIgfHwgOiIKKysgICAgZWxzZQorKyAgICAgIF9sdF9kc3ltdXRpbD0KKysgICAgZmkKKysgICAg OzsKKysgIGVzYWMKKysKKysKKytlbmFibGVfZGxvcGVuPW5vCisrZW5hYmxlX3dpbjMyX2RsbD1u bworKworKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1saWJ0b29sLWxvY2sgd2FzIGdpdmVuLgor K2lmIHRlc3QgIiR7ZW5hYmxlX2xpYnRvb2xfbG9jaytzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5h YmxldmFsPSRlbmFibGVfbGlidG9vbF9sb2NrOworK2ZpCisrCisrdGVzdCAieCRlbmFibGVfbGli dG9vbF9sb2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15ZXMKKysKKysKKysjIENo ZWNrIHdoZXRoZXIgLS13aXRoLXBpYyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX3BpYytz ZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9waWM7IHBpY19tb2RlPSIkd2l0aHZh bCIKKytlbHNlCisrICBwaWNfbW9kZT1kZWZhdWx0CisrZmkKKysKKyt0ZXN0IC16ICIkcGljX21v ZGUiICYmIHBpY19tb2RlPWRlZmF1bHQKKysKKysjIFVzZSBDIGZvciB0aGUgZGVmYXVsdCBjb25m aWd1cmF0aW9uIGluIHRoZSBsaWJ0b29sIHNjcmlwdAorK3RhZ25hbWU9CisrbHRfc2F2ZV9DQz0i JENDIgorK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSck Q0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0n JENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGls ZXJfZ251CisrCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMgdGVzdCBzb3VyY2Vz LgorK2FjX2V4dD1jCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMg dGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisrb2JqZXh0PSRvYmpleHQKKysKKysjIENvZGUgdG8g YmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxlX3Rlc3Rf Y29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBz aW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oKXty ZXR1cm4oMCk7fScKKysKKysKKysjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNl IENDLgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3 ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdT In0KKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgor K2NvbXBpbGVyPSRDQworKworKworKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1w bGUgdGVzdCBjb2RlCisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFsICIkYWNf Y29tcGlsZSIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVz dC5lcnIKKytfbHRfY29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCisrJHJt IGNvbmZ0ZXN0KgorKworK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRs dF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2xp bmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJy CisrX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskcm0gLXIgY29u ZnRlc3QqCisrCisrCisrCisrbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9CisrCisr aWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRp bl9mbGFnPScgLWZuby1idWlsdGluJworKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9u cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8t cnR0aSAtZm5vLWV4Y2VwdGlvbnMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2df Y29tcGlsZXJfcnR0aV9leGNlcHRpb25zK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNl cHRpb25zPW5vCisrICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICBlY2hvICIk bHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBsdF9j b21waWxlcl9mbGFnPSItZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIgorKyAgICMgSW5zZXJ0IHRo ZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisr ICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQg dGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29u dGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5v dCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICAjIFRo ZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcg c2VkLgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAorKyAgIC1l ICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKysgICAtZSAn czogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6 JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6ODE3NTog JGx0X2NvbXBpbGVcIiIgPiY1KQorKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5l cnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICBlY2hv ICIkYXNfbWU6ODE3OTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFjX3N0 YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCisrICAgICAjIFRoZSBjb21waWxl ciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAor KyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVz dWFsIG91dHB1dC4KKysgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAk WHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9k JyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgor KyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz15ZXMKKysgICAgIGZp CisrICAgZmkKKysgICAkcm0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMiID4m NQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMiID4mNjsg fQorKworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMiID0g eHllczsgdGhlbgorKyAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0iJGx0X3By b2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiCisr ZWxzZQorKyAgICA6CisrZmkKKysKKytmaQorKworK2x0X3Byb2dfY29tcGlsZXJfd2w9CisrbHRf cHJvZ19jb21waWxlcl9waWM9CisrbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9CisrCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHBy b2R1Y2UgUElDIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlv biB0byBwcm9kdWNlIFBJQy4uLiAiID4mNjsgfQorKworKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KKysgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgbHRfcHJvZ19jb21w aWxlcl9zdGF0aWM9Jy1zdGF0aWMnCisrCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBh aXgqKQorKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysgICAgICBpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3Nv cgorKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxlYXN0 IDY4MDIwIGNvZGUgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcywgYnV0CisrICAgICAgIyBhZGRp bmcgdGhlIGAtbTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBi ZXR0ZXIsCisrICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KKysgICAgICBsdF9wcm9nX2NvbXBpbGVy X3BpYz0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0JworKyAgICAgIDs7 CisrCisrICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwg b3NmNCogfCBvc2Y1KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlc2UgT1Nl cy4KKysgICAgICA7OworKworKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqKQor KyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdo ZXRoZXIgaXQgaXMgYmVpbmcKKysgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwg KGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgorKyAgICAgICMgQWx0aG91 Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQt c3R5bGUKKysgICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJhcmllcworKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfcGljPSctRERMTF9FWFBPUlQnCisrICAgICAgOzsKKysKKysgICAg ZGFyd2luKiB8IHJoYXBzb2R5KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlz IHBsYXRmb3JtCisrICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJ QiBmaWxlcworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZm5vLWNvbW1vbicKKysgICAg ICA7OworKworKyAgICBpbnRlcml4WzMtOV0qKQorKyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1m cGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCisrICAgICAgIyBJbnN0ZWFk LCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCisrICAgICAgOzsKKysK KysgICAgbXNkb3NkamdwcCopCisrICAgICAgIyBKdXN0IGJlY2F1c2Ugd2UgdXNlIEdDQyBkb2Vz bid0IG1lYW4gd2Ugc3VkZGVubHkgZ2V0IHNoYXJlZCBsaWJyYXJpZXMKKysgICAgICAjIG9uIHN5 c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZW0uCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9j YW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZW5hYmxlX3NoYXJlZD1ubworKyAgICAgIDs7Cisr CisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisrCWx0 X3Byb2dfY29tcGlsZXJfcGljPS1LY29uZm9ybV9waWMKKysgICAgICBmaQorKyAgICAgIDs7Cisr CisrICAgIGhwdXgqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBJQTY0IEhQLVVY IGFuZCA2NC1iaXQgSFAtVVgsIGJ1dAorKyAgICAgICMgbm90IGZvciBQQSBIUC1VWC4KKysgICAg ICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIGhwcGEqNjQqfGlhNjQqKQorKwkjICtaIHRoZSBk ZWZhdWx0CisrCTs7CisrICAgICAgKikKKysJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDJwor Kwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfcGljPSctZlBJQycKKysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAg ICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhl IHN5c3RlbSBjb21waWxlci4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1 IiA9IGlhNjQ7IHRoZW4KKysJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJ bHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIGVsc2UKKysJbHRfcHJv Z19jb21waWxlcl9zdGF0aWM9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKKysgICAgICBm aQorKyAgICAgIDs7CisrICAgICAgZGFyd2luKikKKysgICAgICAgICMgUElDIGlzIHRoZSBkZWZh dWx0IG9uIHRoaXMgcGxhdGZvcm0KKysgICAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93 ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAg ICAgICB4bGMqKQorKyAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctcW5vY29tbW9uJwor KyAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAgICAgOzsKKysgICAg ICAgZXNhYworKyAgICAgICA7OworKworKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBv czIqKQorKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0 ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKKysgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4g YSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgorKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljPSctRERMTF9FWFBPUlQnCisrICAgICAgOzsKKysKKysgICAgaHB1 eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVds LCcKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0 IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9z dF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7 OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPScrWicKKysJOzsKKysgICAgICBl c2FjCisrICAgICAgIyBJcyB0aGVyZSBhIGJldHRlciBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyB0 aGF0IHdvcmtzIHdpdGggdGhlIGJ1bmRsZWQgQ0M/CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9z dGF0aWM9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJworKyAgICAgIDs7CisrCisrICAgIGlyaXg1KiB8 IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcK KysgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1bHQuCisrICAgICAgbHRfcHJv Z19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIG5ld3Nv czYpCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJworKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICBsaW51eCogfCBr KmJzZCotZ251KQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgaWNjKiB8IGVj YyopCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGlj PSctS1BJQycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCisrICAgICAgICA7 OworKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQorKyAgICAgICAgIyBQ b3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdjYyBjb21waWxlciwK KysJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkKKysJbHRfcHJvZ19jb21waWxl cl93bD0nLVdsLCcKKysJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mcGljJworKwlsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgICA7OworKyAgICAgIGNjYyopCisrICAg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKyAgICAgICAgIyBBbGwgQWxwaGEgY29k ZSBpcyBQSUMuCisrICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQn CisrICAgICAgICA7OworKyAgICAgICopCisrICAgICAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNl ZCA1cWAgaW4KKysJKlN1blwgQyopCisrCSAgIyBTdW4gQyA1LjkKKysJICBsdF9wcm9nX2NvbXBp bGVyX3BpYz0nLUtQSUMnCisrCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwor KwkgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCSAgOzsKKysJKlN1blwgRiopCisrCSAg IyBTdW4gRm9ydHJhbiA4LjMgcGFzc2VzIGFsbCB1bnJlY29nbml6ZWQgZmxhZ3MgdG8gdGhlIGxp bmtlcgorKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKysJICBsdF9wcm9nX2NvbXBp bGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrCSAgbHRfcHJvZ19jb21waWxlcl93bD0nJworKwkgIDs7 CisrCWVzYWMKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgb3NmMyogfCBv c2Y0KiB8IG9zZjUqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAg IyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9 Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHJkb3MqKQorKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICBzb2xhcmlz KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCisrICAgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisr ICAgICAgZjc3KiB8IGY5MCogfCBmOTUqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctUW9wdGlv biBsZCAnOzsKKysgICAgICAqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJzs7CisrICAg ICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisrICAgICAgbHRfcHJvZ19jb21w aWxlcl93bD0nLVFvcHRpb24gbGQgJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctUElD JworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICA7Owor KworKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyopCisrICAgICAgbHRfcHJvZ19j b21waWxlcl93bD0nLVdsLCcKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisr ICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrCWx0X3By b2dfY29tcGlsZXJfcGljPSctS2NvbmZvcm1fcGljJworKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Yz0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzeXN2NSogfCB1bml4 d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3BlblVOSVgqKQorKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwor KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICA7OworKwor KyAgICB1bmljb3MqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAg bHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgOzsKKysKKysgICAg dXRzNCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1waWMnCisrICAgICAgbHRfcHJv Z19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgICopCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgOzsKKysgICAg ZXNhYworKyAgZmkKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRf cHJvZ19jb21waWxlcl9waWMiID4mNQorKyRhc19lY2hvICIkbHRfcHJvZ19jb21waWxlcl9waWMi ID4mNjsgfQorKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0dWFs bHkgd29ya3MuCisrIworK2lmIHRlc3QgLW4gIiRsdF9wcm9nX2NvbXBpbGVyX3BpYyI7IHRoZW4K KysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJ QyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpYyB3b3JrcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpYyB3b3Jrcy4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3Mrc2V0 fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3M9bm8KKysgIGFjX291dGZpbGU9Y29uZnRlc3Qu JGFjX29iamV4dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29u ZnRlc3QuJGFjX2V4dAorKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiRsdF9wcm9nX2NvbXBpbGVyX3Bp YyAtRFBJQyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxh c3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmlu ZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2Nv bXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAg ICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQg d29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFy aWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNf Y29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGls ZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVy X2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2 YWwgZWNobyAiXCJcJGFzX21lOjg0NjU6ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAi JGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPworKyAgIGNhdCBj b25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjg0Njk6IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsg dGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBv cHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3 YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCisrICAgICAkZWNobyAiWCRfbHRf Y29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCisr ICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysg ICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRl c3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNf d29ya3M9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJHJtIGNvbmZ0ZXN0KgorKworK2ZpCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJf cGljX3dvcmtzIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtz IiA+JjY7IH0KKysKKytpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzIiA9 IHh5ZXM7IHRoZW4KKysgICAgY2FzZSAkbHRfcHJvZ19jb21waWxlcl9waWMgaW4KKysgICAgICIi IHwgIiAiKikgOzsKKysgICAgICopIGx0X3Byb2dfY29tcGlsZXJfcGljPSIgJGx0X3Byb2dfY29t cGlsZXJfcGljIiA7OworKyAgICAgZXNhYworK2Vsc2UKKysgICAgbHRfcHJvZ19jb21waWxlcl9w aWM9CisrICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQ9bm8KKytmaQorKwor K2ZpCisrY2FzZSAkaG9zdF9vcyBpbgorKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBz dXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6CisrICAqZGpncHAqKQorKyAgICBsdF9w cm9nX2NvbXBpbGVyX3BpYz0KKysgICAgOzsKKysgICopCisrICAgIGx0X3Byb2dfY29tcGlsZXJf cGljPSIkbHRfcHJvZ19jb21waWxlcl9waWMgLURQSUMiCisrICAgIDs7CisrZXNhYworKworKyMK KysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkgd29ya3MuCisr IworK3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3Mi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRf dG1wX3N0YXRpY19mbGFnIHdvcmtzLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9n X2NvbXBpbGVyX3N0YXRpY193b3JrcytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jr cz1ubworKyAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCisrICAgTERGTEFHUz0iJExERkxBR1Mg JGx0X3RtcF9zdGF0aWNfZmxhZyIKKysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2Rl IiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVy cikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KKysgICAgICMgVGhlIGxpbmtl ciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAor KyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBpZiB0ZXN0IC1z IGNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBj b25maWcubG9nLgorKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKysgICAgICAgJGVjaG8g IlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3Qu ZXhwCisrICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0 LmVyMgorKyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVs bDsgdGhlbgorKyAgICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzPXllcwor KyAgICAgICBmaQorKyAgICAgZWxzZQorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRp Y193b3Jrcz15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICAkcm0gLXIgY29uZnRlc3QqCisrICAg TERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPiY1CisrJGFz X2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPiY2OyB9CisrCisraWYg dGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPSB4eWVzOyB0aGVuCisr ICAgIDoKKytlbHNlCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPQorK2ZpCisrCisrCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0 cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRj b21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19v PW5vCisrICAgJHJtIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCisrICAgbWtkaXIgY29uZnRlc3QK KysgICBjZCBjb25mdGVzdAorKyAgIG1rZGlyIG91dAorKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29t cGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKworKyAgIGx0X2NvbXBpbGVyX2Zs YWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKKysgICAjIEluc2VydCB0aGUgb3B0aW9u IGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIp IGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQu CisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFj a3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBo ZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgbHRfY29tcGlsZT1g ZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDom JGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRs dF9jb21waWxlcl9mbGFnJjo7IHQnIFwKKysgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzon YAorKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo4NTY5OiAkbHRfY29tcGlsZVwiIiA+JjUpCisr ICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVz PSQ/CisrICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjg1NzM6 IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3Qg LXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0CisrICAgdGhlbgorKyAgICAgIyBUaGUgY29tcGls ZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQK KysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAgJGVjaG8gIlgk X2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRl c3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0 L2NvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlm ZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAg ICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICBj aG1vZCB1K3cgLiAyPiY1CisrICAgJHJtIGNvbmZ0ZXN0KgorKyAgICMgU0dJIEMrKyBjb21waWxl ciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKKysgICAjIHRlbXBsYXRl IGluc3RhbnRpYXRpb24KKysgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkcm0gb3V0L2lpX2Zp bGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCisrICAgJHJtIG91dC8qICYmIHJtZGlyIG91dAor KyAgIGNkIC4uCisrICAgcm1kaXIgY29uZnRlc3QKKysgICAkcm0gY29uZnRlc3QqCisrCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxl cl9jX28iID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX28iID4mNjsgfQor KworKworK2hhcmRfbGlua3M9Im5vdHRlc3RlZCIKKytpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19jb21w aWxlcl9jX28iID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCisrICAjIGRv IG5vdCBvdmVyd3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRfbG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVz ZXIKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiB3ZSBjYW4gbG9j ayB3aXRoIGhhcmQgbGlua3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHdlIGNhbiBs b2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsgfQorKyAgaGFyZF9saW5rcz15ZXMKKysgICRy bSBjb25mdGVzdCoKKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBo YXJkX2xpbmtzPW5vCisrICB0b3VjaCBjb25mdGVzdC5hCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0 ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIg Mj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGhhcmRfbGlua3MiID4mNQorKyRhc19lY2hvICIkaGFyZF9saW5rcyIgPiY2 OyB9CisrICBpZiB0ZXN0ICIkaGFyZF9saW5rcyIgPSBubzsgdGhlbgorKyAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAt bycsIHNvIFxgbWFrZSAtaicgbWF5IGJlIHVuc2FmZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogXGAkQ0MnIGRvZXMgbm90IHN1cHBvcnQgXGAtYyAtbycsIHNvIFxgbWFrZSAtaicg bWF5IGJlIHVuc2FmZSIgPiYyO30KKysgICAgbmVlZF9sb2Nrcz13YXJuCisrICBmaQorK2Vsc2UK KysgIG5lZWRfbG9ja3M9bm8KKytmaQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJl ZCBsaWJyYXJpZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21w aWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQor KworKyAgcnVucGF0aF92YXI9CisrICBhbGxvd191bmRlZmluZWRfZmxhZz0KKysgIGVuYWJsZV9z aGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9bm8KKysgIGFyY2hpdmVfY21kcz0KKysgIGFyY2hp dmVfZXhwc3ltX2NtZHM9CisrICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzPQorKyAgb2xkX2Fy Y2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9CisrICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9Cisr ICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysgIHRocmVhZF9zYWZlX2ZsYWdfc3BlYz0KKysg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9CisrICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X2xkPQorKyAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0KKysgIGhhcmRjb2RlX2RpcmVjdD1u bworKyAgaGFyZGNvZGVfbWludXNfTD1ubworKyAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj11bnN1 cHBvcnRlZAorKyAgbGlua19hbGxfZGVwbGlicz11bmtub3duCisrICBoYXJkY29kZV9hdXRvbWF0 aWM9bm8KKysgIG1vZHVsZV9jbWRzPQorKyAgbW9kdWxlX2V4cHN5bV9jbWRzPQorKyAgYWx3YXlz X2V4cG9ydF9zeW1ib2xzPW5vCisrICBleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gJGxpYm9ianMg JGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcn IHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrICAjIGluY2x1ZGVfZXhwc3ltcyBz aG91bGQgYmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdheXMq CisrICAjIGluY2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAorKyAgaW5jbHVkZV9leHBzeW1zPQor KyAgIyBleGNsdWRlX2V4cHN5bXMgY2FuIGJlIGFuIGV4dGVuZGVkIHJlZ2V4cCBvZiBzeW1ib2xz IHRvIGV4Y2x1ZGUKKysgICMgaXQgd2lsbCBiZSB3cmFwcGVkIGJ5IGAgKCcgYW5kIGApJCcsIHNv IG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdpbm5pbmcgb3IKKysgICMgZW5kIG9mIGxpbmUuICBFeGFt cGxlOiBgYXxiY3wuKmQuKicgd2lsbCBleGNsdWRlIHRoZSBzeW1ib2xzIGBhJyBhbmQgYGJjJywK KysgICMgYXMgd2VsbCBhcyBhbnkgc3ltYm9sIHRoYXQgY29udGFpbnMgYGQnLgorKyAgZXhjbHVk ZV9leHBzeW1zPSdfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionCisrICAj IEFsdGhvdWdoIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXyBpcyBhIHZhbGlkIHN5bWJvbCBDIG5hbWUs IG1vc3QgYS5vdXQKKysgICMgcGxhdGZvcm1zIChhYil1c2UgaXQgaW4gUElDIGNvZGUsIGJ1dCB0 aGVpciBsaW5rZXJzIGdldCBjb25mdXNlZCBpZgorKyAgIyB0aGUgc3ltYm9sIGlzIGV4cGxpY2l0 bHkgcmVmZXJlbmNlZC4gIFNpbmNlIHBvcnRhYmxlIGNvZGUgY2Fubm90CisrICAjIHJlbHkgb24g dGhpcyBzeW1ib2wgbmFtZSwgaXQncyBwcm9iYWJseSBmaW5lIHRvIG5ldmVyIGluY2x1ZGUgaXQg aW4KKysgICMgcHJlbG9hZGVkIHN5bWJvbCB0YWJsZXMuCisrICAjIEV4Y2x1ZGUgc2hhcmVkIGxp YnJhcnkgaW5pdGlhbGl6YXRpb24vZmluYWxpemF0aW9uIHN5bWJvbHMuCisrICBleHRyYWN0X2V4 cHN5bXNfY21kcz0KKysgICMgSnVzdCBiZWluZyBwYXJhbm9pZCBhYm91dCBlbnN1cmluZyB0aGF0 IGNjX2Jhc2VuYW1lIGlzIHNldC4KKysgIGZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbwor KyAgY2FzZSAkY2NfdGVtcCBpbgorKyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNo ZSB8ICpbXFwvXWNjYWNoZSApIDs7CisrICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlm eSB8ICpbXFwvXXB1cmlmeSApIDs7CisrICAgIFwtKikgOzsKKysgICAgKikgYnJlYWs7OworKyAg ZXNhYworK2RvbmUKKytjY19iYXNlbmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAn cyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4K KysgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKKysgICAgIyBGSVhNRTogdGhlIE1TVkMrKyBw b3J0IGhhc24ndCBiZWVuIHRlc3RlZCBpbiBhIGxvb29vbmcgdGltZQorKyAgICAjIFdoZW4gbm90 IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAj IE1pY3Jvc29mdCBWaXN1YWwgQysrLgorKyAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4K KysgICAgICB3aXRoX2dudV9sZD1ubworKyAgICBmaQorKyAgICA7OworKyAgaW50ZXJpeCopCisr ICAgICMgd2UganVzdCBob3BlL2Fzc3VtZSB0aGlzIGlzIGdjYyBhbmQgbm90IGM4OSAoPSBNU1ZD KyspCisrICAgIHdpdGhfZ251X2xkPXllcworKyAgICA7OworKyAgb3BlbmJzZCopCisrICAgIHdp dGhfZ251X2xkPW5vCisrICAgIDs7CisrICBlc2FjCisrCisrICBsZF9zaGxpYnM9eWVzCisrICBp ZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAgICMgSWYgYXJjaGl2ZV9jbWRz IHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5CisrICAgIHdsYXJjPScke3ds fScKKysKKysgICAgIyBTZXQgc29tZSBkZWZhdWx0cyBmb3IgR05VIGxkIHdpdGggc2hhcmVkIGxp YnJhcnkgc3VwcG9ydC4gVGhlc2UKKysgICAgIyBhcmUgcmVzZXQgbGF0ZXIgaWYgc2hhcmVkIGxp YnJhcmllcyBhcmUgbm90IHN1cHBvcnRlZC4gUHV0dGluZyB0aGVtCisrICAgICMgaGVyZSBhbGxv d3MgdGhlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4KKysgICAgcnVucGF0aF92YXI9 TERfUlVOX1BBVEgKKysgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tLXJwYXRo ICR7d2x9JGxpYmRpcicKKysgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS0tZXhw b3J0LWR5bmFtaWMnCisrICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13aG9s ZS1hcmNoaXZlIGV0LiBhbC4KKysgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnbm8td2hv bGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KKysJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9 IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xl LWFyY2hpdmUnCisrICAgICAgZWxzZQorKyAgCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQorKyAg ICBmaQorKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KKysgICAgY2FzZSBgJExEIC12 IDI+L2Rldi9udWxsYCBpbgorKyAgICAgICpcIFswMV0uKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIu MTAuKikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8IDIuMTEKKysgICAgICAqXCAyLjExLjkzLjAuMlwg Kikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIFJINy4zIC4uLgorKyAgICAgICpc IDIuMTEuOTIuMC4xMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIE1hbmRy YWtlIDguMiAuLi4KKysgICAgICAqXCAyLjExLiopIDs7ICMgb3RoZXIgMi4xMSB2ZXJzaW9ucwor KyAgICAgICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKKysgICAgZXNhYworKwor KyAgICAjIFNlZSBpZiBHTlUgbGQgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4KKysgICAgY2Fz ZSAkaG9zdF9vcyBpbgorKyAgICBhaXhbMy05XSopCisrICAgICAgIyBPbiBBSVgvUFBDLCB0aGUg R05VIGxpbmtlciBpcyB2ZXJ5IGJyb2tlbgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0g aWE2NDsgdGhlbgorKwlsZF9zaGxpYnM9bm8KKysJY2F0IDw8RU9GIDE+JjIKKysKKysqKiogV2Fy bmluZzogdGhlIEdOVSBsaW5rZXIsIGF0IGxlYXN0IHVwIHRvIHJlbGVhc2UgMi45LjEsIGlzIHJl cG9ydGVkCisrKioqIHRvIGJlIHVuYWJsZSB0byByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJh cmllcyBvbiBBSVguCisrKioqIFRoZXJlZm9yZSwgbGlidG9vbCBpcyBkaXNhYmxpbmcgc2hhcmVk IGxpYnJhcmllcyBzdXBwb3J0LiAgSWYgeW91CisrKioqIHJlYWxseSBjYXJlIGZvciBzaGFyZWQg bGlicmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5IHlvdXIgUEFUSAorKyoqKiBzbyB0aGF0 IGEgbm9uLUdOVSBsaW5rZXIgaXMgZm91bmQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrRU9GCisr ICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBhcmNoaXZlX2Nt ZHM9JyRybSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIE5B TUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2Rl ZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVj aG8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5 LmRhdGF+JGVjaG8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRp ci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRs aWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCisrICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9 eWVzCisrCisrICAgICAgIyBTYW11ZWwgQS4gRmFsdm8gSUkgPGtjNXRqYUBkb2xwaGluLm9wZW5w cm9qZWN0cy5uZXQ+IHJlcG9ydHMKKysgICAgICAjIHRoYXQgdGhlIHNlbWFudGljcyBvZiBkeW5h bWljIGxpYnJhcmllcyBvbiBBbWlnYU9TLCBhdCBsZWFzdCB1cAorKyAgICAgICMgdG8gdmVyc2lv biA0LCBpcyB0byBzaGFyZSBkYXRhIGFtb25nIG11bHRpcGxlIHByb2dyYW1zIGxpbmtlZAorKyAg ICAgICMgd2l0aCB0aGUgc2FtZSBkeW5hbWljIGxpYnJhcnkuICBTaW5jZSB0aGlzIGRvZXNuJ3Qg bWF0Y2ggdGhlCisrICAgICAgIyBiZWhhdmlvciBvZiBzaGFyZWQgbGlicmFyaWVzIG9uIG90aGVy IHBsYXRmb3Jtcywgd2UgY2FuJ3QgdXNlCisrICAgICAgIyB0aGVtLgorKyAgICAgIGxkX3NobGli cz1ubworKyAgICAgIDs7CisrCisrICAgIGJlb3MqKQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4m MSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgor KwlhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAorKwkjIEpvc2VwaCBCZWNrZW5iYWNo IDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCisrCSMgc3VwcG9ydCAt LXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJ YXJjaGl2ZV9jbWRzPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAgZWxzZQorKwlsZF9z aGxpYnM9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGN5Z3dpbiogfCBtaW5ndyog fCBwdzMyKikKKysgICAgICAjIF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKKysgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNl YXJjaCBwYXRoIGZvciBETExzLgorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1M JGxpYmRpcicKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAorKyAgICAg IGFsd2F5c19leHBvcnRfc3ltYm9scz1ubworKyAgICAgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0 aWNfcnVudGltZXM9eWVzCisrICAgICAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NICRsaWJvYmpz ICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltCQ0RH UlNdWyBdL3MvLipbIF1cKFteIF0qXCkvXDEgREFUQS8nXCcnIC1lICdcJycvXltBSVRXXVsgXS9z Ly4qWyBdLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrCisrICAgICAg aWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVu CisrICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0 by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKwkjIElm IHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5l CisrCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCisr CWFyY2hpdmVfZXhwc3ltX2NtZHM9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNg IiA9IHhFWFBPUlRTOyB0aGVuCisrCSAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGly LyRzb25hbWUuZGVmOworKwllbHNlCisrCSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIv JHNvbmFtZS5kZWY7CisrCSAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8k c29uYW1lLmRlZjsKKysJZml+CisrCSRDQyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRzb25hbWUu ZGVmICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8k c29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxp YiAtWGxpbmtlciAkbGliJworKyAgICAgIGVsc2UKKysJbGRfc2hsaWJzPW5vCisrICAgICAgZmkK KysgICAgICA7OworKworKyAgICBpbnRlcml4WzMtOV0qKQorKyAgICAgIGhhcmRjb2RlX2RpcmVj dD1ubworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGlyJworKyAgICAgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysgICAgICAjIEhhY2s6IE9uIEludGVyaXggMy54LCB3 ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCisrICAgICAgIyBJ bnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgx MDAwMDAwMCBieQorKyAgICAgICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZs aWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKKysgICAgICAjIGNvbnN1bWluZyBhbmQg ZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCisr ICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5k IDB4NkZGQzAwMDAgYXQgbGluaworKyAgICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAw MDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgorKyAgICAgIGFyY2hpdmVfY21k cz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUg NDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysgICAgICBhcmNoaXZl X2V4cHN5bV9jbWRzPSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRp ci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmls ZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAk e1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwor KyAgICAgIDs7CisrCisrICAgIGdudSogfCBsaW51eCogfCBrKmJzZCotZ251KQorKyAgICAgIGlm ICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9k ZXYvbnVsbDsgdGhlbgorKwl0bXBfYWRkZmxhZz0KKysJY2FzZSAkY2NfYmFzZW5hbWUsJGhvc3Rf Y3B1IGluCisrCXBnY2MqKQkJCQkjIFBvcnRsYW5kIEdyb3VwIEMgY29tcGlsZXIKKysJICB3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNv bnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1c IiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNl XCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFn JworKwkgIDs7CisrCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikJIyBQb3J0bGFuZCBHcm91cCBm NzcgYW5kIGY5MCBjb21waWxlcnMKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0t LXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4g XCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsg ZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZl JworKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWluJyA7OworKwllY2MqLGlhNjQq IHwgaWNjKixpYTY0KikJCSMgSW50ZWwgQyBjb21waWxlciBvbiBpYTY0CisrCSAgdG1wX2FkZGZs YWc9JyAtaV9keW5hbWljJyA7OworKwllZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVs IEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYyAt bm9mb3JfbWFpbicgOzsKKysJaWZjKiB8IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGls ZXIKKysJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7OworKwllc2FjCisrCWNhc2UgYCRD QyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkqU3VuXCBDKikJCQkjIFN1biBDIDUuOQorKwkgIHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVu Y2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8 fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRlY2hv IFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBf c2hhcmVkZmxhZz0nLUcnIDs7CisrCSpTdW5cIEYqKQkJCSMgU3VuIEZvcnRyYW4gOC4zCisrCSAg dG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworKwkqKQorKwkgIHRtcF9zaGFyZWRmbGFnPSctc2hhcmVk JyA7OworKwllc2FjCisrCWFyY2hpdmVfY21kcz0nJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1w X2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgLW8gJGxpYicKKysKKysJaWYgdGVzdCAkc3VwcG9ydHNfYW5vbl92ZXJzaW9u aW5nID0geWVzOyB0aGVuCisrCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJGVjaG8gInsgZ2xvYmFs OiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrICBjYXQgJGV4cG9ydF9zeW1ib2xz IHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+ CisrICAkZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+ CisrCSAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lv bi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKysJZmkK KysgICAgICBlbHNlCisrCWxkX3NobGlicz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysg ICAgbmV0YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19F TEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlICRs aWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW8gJGxpYicKKysJd2xhcmM9CisrICAgICAg ZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlhcmNoaXZlX2V4 cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhw b3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHNvbGFy aXMqKQorKyAgICAgIGlmICRMRCAtdiAyPiYxIHwgZ3JlcCAnQkZEIDJcLjgnID4gL2Rldi9udWxs OyB0aGVuCisrCWxkX3NobGlicz1ubworKwljYXQgPDxFT0YgMT4mMgorKworKyoqKiBXYXJuaW5n OiBUaGUgcmVsZWFzZXMgMi44Liogb2YgdGhlIEdOVSBsaW5rZXIgY2Fubm90IHJlbGlhYmx5Cisr KioqIGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNvbGFyaXMgc3lzdGVtcy4gIFRoZXJlZm9y ZSwgbGlidG9vbAorKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAg V2UgdXJnZSB5b3UgdG8gdXBncmFkZSBHTlUKKysqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjku MSBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQorKyoqKiB5b3VyIFBBVEgg b3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCisr KioqIHVzZWQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrRU9GCisrICAgICAgZWxpZiAkTEQgLS1o ZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7 IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJYXJjaGl2ZV9l eHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4 cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZWxzZQorKwlsZF9zaGxpYnM9bm8KKysgICAg ICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1 bml4d2FyZSogfCBPcGVuVU5JWCopCisrICAgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCisrICAg ICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjFbMC01XS4qKQorKwlsZF9zaGxp YnM9bm8KKysJY2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IFJlbGVhc2VzIG9m IHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QKKysqKiogcmVsaWFi bHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxp YnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVy Z2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45MS4w LjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKKysqKiogeW91ciBQQVRI IG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwor KyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK19MVF9FT0YKKysJOzsKKysJKikKKysJ ICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicg PiAvZGV2L251bGw7IHRoZW4KKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9J2B0ZXN0 IC16ICIkU0NPQUJTUEFUSCIgJiYgZWNobyAke3dsfS1ycGF0aCwkbGliZGlyYCcKKysJICAgIGFy Y2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAt byAkbGliJworKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSxcJHtTQ09BQlNQQVRIOiske2lu c3RhbGxfbGliZGlyfS99JHNvbmFtZSwtcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJv bHMgLW8gJGxpYicKKysJICBlbHNlCisrCSAgICBsZF9zaGxpYnM9bm8KKysJICBmaQorKwk7Owor KyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBzdW5vczQqKQorKyAgICAgIGFyY2hpdmVf Y21kcz0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICB3bGFyYz0KKysgICAgICBoYXJkY29kZV9k aXJlY3Q9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7Cisr CisrICAgICopCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQg dGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJENDIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAg IGVsc2UKKysJbGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBlc2FjCisr CisrICAgIGlmIHRlc3QgIiRsZF9zaGxpYnMiID0gbm87IHRoZW4KKysgICAgICBydW5wYXRoX3Zh cj0KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQorKyAgICAgIGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYz0KKysgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysgICAgZmkK KysgIGVsc2UKKysgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lz dGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFp eDMqKQorKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCisrICAgICAgYWx3 YXlzX2V4cG9ydF9zeW1ib2xzPXllcworKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRMRCAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mg LWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJfRkxBR1MgJGxp YiAkb3V0cHV0X29iamRpci8kc29uYW1lJworKyAgICAgICMgTm90ZTogdGhpcyBsaW5rZXIgaGFy ZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCisrICAgICAgIyBhcmUg bm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgorKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9 eWVzCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29t cGlsZXJfc3RhdGljIjsgdGhlbgorKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0 YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKKysJIyBicm9rZW4gY29sbGVjdDIuCisr CWhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysg ICAgYWl4WzQtOV0qKQorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisr CSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwg c28gd2UgZG9uJ3QKKysJIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisrCWFpeF91c2Vf cnVudGltZWxpbmtpbmc9bm8KKysJZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKKysJbm9fZW50cnlf ZmxhZz0iIgorKyAgICAgIGVsc2UKKysJIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2Ug ZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCisrCSMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlY IG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKysJaWYgJE5NIC1WIDI+ JjEgfCBncmVwICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgZXhwb3J0X3N5bWJvbHNfY21k cz0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkMiA9 PSAiVCIpIHx8IChcJDIgPT0gIkQiKSB8fCAoXCQyID09ICJCIikpICYmIChzdWJzdHIoXCQzLDEs MSkgIT0gIi4iKSkgeyBwcmludCBcJDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJv bHMnCisrCWVsc2UKKysJICBleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gLUJDcGcgJGxpYm9ianMg JGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkMiA9PSAiVCIpIHx8IChcJDIgPT0gIkQi KSB8fCAoXCQyID09ICJCIikpICYmIChzdWJzdHIoXCQzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBc JDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrCWZpCisrCWFpeF91c2Vf cnVudGltZWxpbmtpbmc9bm8KKysKKysJIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1 biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisrCSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRs IGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQorKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5r aW5nLgorKwljYXNlICRob3N0X29zIGluIGFpeDQuWzIzXXxhaXg0LlsyM10uKnxhaXhbNS05XSop CisrCSAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrICAJICBpZiAodGVzdCAkbGRfZmxh ZyA9ICItYnJ0bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsgdGhlbgorKyAgCSAg ICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcworKyAgCSAgICBicmVhaworKyAgCSAgZmkKKysJ ICBkb25lCisrCSAgOzsKKysJZXNhYworKworKwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JworKwlu b19lbnRyeV9mbGFnPSctYm5vZW50cnknCisrICAgICAgZmkKKysKKysgICAgICAjIFdoZW4gbGFy Z2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCisr ICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElm IGxpbmtpbmcgYSBsaWJyYXJ5CisrICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9y IFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KKysgICAgICAjIENYWEZMQUdTL0NG TEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAorKyAgICAg ICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdT LgorKworKyAgICAgIGFyY2hpdmVfY21kcz0nJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMK KysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JworKyAgICAgIGxpbmtfYWxsX2Rl cGxpYnM9eWVzCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJY2FzZSAk aG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAxMl0uKikKKysJIyBXZSBvbmx5IHdhbnQgdG8g ZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCisrCSMgYmVsb3cgZm9yIGJy b2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKworKwkgIGNvbGxlY3QybmFtZT1g JHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAKKysJICBpZiB0ZXN0IC1mICIkY29sbGVj dDJuYW1lIiAmJiBcCisrICAJICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCBncmVwIHJlc29s dmVfbGliX25hbWUgPi9kZXYvbnVsbAorKwkgIHRoZW4KKysgIAkgICMgV2UgaGF2ZSByZXdvcmtl ZCBjb2xsZWN0MgorKyAgCSAgOgorKwkgIGVsc2UKKysgIAkgICMgV2UgaGF2ZSBvbGQgY29sbGVj dDIKKysgIAkgIGhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAorKyAgCSAgIyBJdCBmYWlscyB0 byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAorKyAgCSAg IyBwYXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21p bnVzX0wKKysgIAkgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZworKyAgCSAgaGFy ZGNvZGVfbWludXNfTD15ZXMKKysgIAkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxp YmRpcicKKysgIAkgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9CisrCSAgZmkKKysJICA7Owor Kwllc2FjCisrCXNoYXJlZF9mbGFnPSctc2hhcmVkJworKwlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50 aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICIn JHt3bH0tRycKKysJZmkKKysgICAgICBlbHNlCisrCSMgbm90IHVzaW5nIGdjYworKwlpZiB0ZXN0 ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgCSMgVmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1 LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNlCisrICAJIyBjaG9rZXMgb24g LVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoKKysJICBzaGFyZWRfZmxhZz0n LUcnCisrCWVsc2UKKysJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7 IHRoZW4KKysJICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJworKwkgIGVsc2UKKysJICAgIHNoYXJl ZF9mbGFnPScke3dsfS1iTTpTUkUnCisrCSAgZmkKKysJZmkKKysgICAgICBmaQorKworKyAgICAg ICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdpbm5p bmcgd2l0aAorKyAgICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5l cmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQuCisrICAgICAgYWx3YXlzX2V4cG9ydF9z eW1ib2xzPXllcworKyAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHll czsgdGhlbgorKwkjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxv YWRpbmcgZmxhZ3MgKC1icnRsKSwKKysJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3Is IGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwlhbGxvd191bmRlZmluZWRfZmxh Zz0nLWJlcm9rJworKyAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20g dGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KKysgICAgICAgY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisr Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisr eworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysg IGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFz X3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKworK2x0X2FpeF9s aWJwYXRoX3NlZD0nCisrICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKKysJL14wLyB7 CisrCSAgICBzL14wICAqXCguKlwpJC9cMS8KKysJICAgIHAKKysJfQorKyAgICB9JworK2FpeF9s aWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4g LWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBp ZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0 aGVuCisrICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2 L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKytmaQorK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5k U1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91 c3IvbGliOi9saWIiOyBmaQorKworKyAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSck e3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgorKwlhcmNoaXZlX2V4cHN5bV9j bWRzPSJcJENDIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAn Ilwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxv d191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBlY2hvICIke3dsfSR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhwb3J0X3N5 bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAgICAgICBlbHNlCisrCWlmIHRlc3QgIiRob3N0X2NwdSIg PSBpYTY0OyB0aGVuCisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tUiAkbGli ZGlyOi91c3IvbGliOi9saWInCisrCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ii16IG5vZGVmcyIK KysJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyIn ICRjb21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4 cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorKwllbHNlCisrCSAjIERldGVybWluZSB0aGUg ZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0 YWJsZS4KKysJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmgu ICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+ PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisr aW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3Ry eT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytl c2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+ Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVz dC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vy cm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIg PSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRo ZW4KKysKKytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8s L14kLyB7CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0K KysgICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2 L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBh IDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAi JGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3Qk YWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJg CisrZmkKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKyty bSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVu IGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysJIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCSAgIyBX YXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywK KysJICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEg YnJva2VuIGxpYnJhcnkuCisrCSAgbm9fdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1iZXJub3RvaycK KysJICBhbGxvd191bmRlZmluZWRfZmxhZz0nICR7d2x9LWJlcm9rJworKwkgICMgRXhwb3J0ZWQg c3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcwor KwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSckY29udmVuaWVuY2UnCisrCSAgYXJjaGl2ZV9j bWRzX25lZWRfbGM9eWVzCisrCSAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRp b25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkIGxpYnJhcmllcy4KKysJICBhcmNoaXZlX2V4cHN5bV9j bWRzPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9i anMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBv cnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisrCWZpCisr ICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBhcmNoaXZlX2Nt ZHM9JyRybSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIE5B TUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2Rl ZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVj aG8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5 LmRhdGF+JGVjaG8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRp ci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRs aWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCisrICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9 eWVzCisrICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBkaWZmZXJlbnQgc2VtYW50aWNzIG9uIHRo ZSBHTlUgbGQgc2VjdGlvbgorKyAgICAgIGxkX3NobGlicz1ubworKyAgICAgIDs7CisrCisrICAg IGJzZGlbNDVdKikKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9LXJkeW5hbWljCisr ICAgICAgOzsKKysKKysgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQorKyAgICAgICMgV2hl biBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCisr ICAgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKysgICAgICAjIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCisrICAgICAgIyBu byBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PScgJworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCisrICAgICAgIyBU ZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KKysgICAgICBsaWJl eHQ9bGliCisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28g ZmlsZXMuCisrICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICAgICAgIyBGSVhNRTogU2V0dGlu ZyBsaW5rbmFtZXMgaGVyZSBpcyBhIGJhZCBoYWNrLgorKyAgICAgIGFyY2hpdmVfY21kcz0nJEND IC1vICRsaWIgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzIGBlY2hvICIkZGVwbGlicyIgfCAkU0VE IC1lICdcJydzLyAtbGMkLy8nXCcnYCAtbGluayAtZGxsfmxpbmtuYW1lcz0nCisrICAgICAgIyBU aGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWlsZCBhIC5saWIgZmlsZSBpZiB3ZSBidWls ZCBhIERMTC4KKysgICAgICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzPSd0cnVlJworKyAgICAg ICMgRklYTUU6IFNob3VsZCBsZXQgdGhlIHVzZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCisr ICAgICAgb2xkX2FyY2hpdmVfY21kcz0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBs aWJzJworKyAgICAgIGZpeF9zcmNmaWxlX3BhdGg9J2BjeWdwYXRoIC13ICIkc3JjZmlsZSJgJwor KyAgICAgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9eWVzCisrICAgICAgOzsK KysKKysgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKysgICAgICBjYXNlICRob3N0X29zIGluCisr ICAgICAgICByaGFwc29keSogfCBkYXJ3aW4xLlswMTJdKQorKyAgICAgICAgIGFsbG93X3VuZGVm aW5lZF9mbGFnPScke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycKKysgICAgICAgICA7Owor KyAgICAgICAqKSAjIERhcndpbiAxLjMgb24KKysgICAgICAgICBpZiB0ZXN0IC16ICR7TUFDT1NY X0RFUExPWU1FTlRfVEFSR0VUfSA7IHRoZW4KKysgICAgICAgICAgIGFsbG93X3VuZGVmaW5lZF9m bGFnPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycK KysgICAgICAgICBlbHNlCisrICAgICAgICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFS R0VUfSBpbgorKyAgICAgICAgICAgICAxMC5bMDEyXSkKKysgICAgICAgICAgICAgICBhbGxvd191 bmRlZmluZWRfZmxhZz0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9 c3VwcHJlc3MnCisrICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgMTAuKikKKysgICAg ICAgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHlu YW1pY19sb29rdXAnCisrICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgIGVzYWMKKysgICAg ICAgICBmaQorKyAgICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIGFyY2hpdmVfY21kc19u ZWVkX2xjPW5vCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PW5vCisrICAgICAgaGFyZGNvZGVfYXV0 b21hdGljPXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9dW5zdXBwb3J0ZWQKKysg ICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJworKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9 eWVzCisrICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIDsgdGhlbgorKyAgICAJb3V0cHV0X3ZlcmJv c2VfbGlua19jbWQ9J2VjaG8nCisrICAgICAgICBhcmNoaXZlX2NtZHM9IlwkQ0MgLWR5bmFtaWNs aWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwk Y29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5n ICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCisrICAgICAgICBtb2R1bGVfY21k cz0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpz IFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgICAgYXJj aGl2ZV9leHBzeW1fY21kcz0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0 cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwk YWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBp bGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19s dF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9Igor KyAgICAgICAgbW9kdWxlX2V4cHN5bV9jbWRzPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9z eW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0Mg XCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxp YnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0i CisrICAgIGVsc2UKKysgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgeGxjKikK KysgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysgICAgICAgICBhcmNo aXZlX2NtZHM9JyRDQyAtcW1rc2hyb2JqICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1pbnN0YWxsX25hbWUgJHt3bH1g ZWNobyAkcnBhdGgvJHNvbmFtZWAgJHhsY3ZlcnN0cmluZycKKysgICAgICAgICBtb2R1bGVfY21k cz0nJENDICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliIC1idW5kbGUgJGxpYm9ianMgJGRl cGxpYnMkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgICAgICMgRG9uJ3QgZml4IHRoaXMgYnkgdXNp bmcgdGhlIGxkIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgZmxhZywgaXQgZG9lc24ndCBleGlzdCBp biBvbGRlciBkYXJ3aW4gbGRzCisrICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nc2VkIC1l ICJzLCMuKiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCguLipcKSxfJiwiIDwgJGV4cG9y dF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX4kQ0Mg LXFta3Nocm9iaiAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9JHJwYXRoLyRzb25hbWUg JHhsY3ZlcnN0cmluZ35ubWVkaXQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xz LmV4cHN5bSAke2xpYn0nCisrICAgICAgICAgIG1vZHVsZV9leHBzeW1fY21kcz0nc2VkIC1lICJz LCMuKiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCguLipcKSxfJiwiIDwgJGV4cG9ydF9z eW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX4kQ0MgJGFs bG93X3VuZGVmaW5lZF9mbGFnICAtbyAkbGliIC1idW5kbGUgJGxpYm9ianMgJGRlcGxpYnMkY29t cGlsZXJfZmxhZ3N+bm1lZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5l eHBzeW0gJHtsaWJ9JworKyAgICAgICAgICA7OworKyAgICAgICAqKQorKyAgICAgICAgIGxkX3No bGlicz1ubworKyAgICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgICAgICA7Owor KworKyAgICBkZ3V4KikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cj1ubworKyAgICAgIDs7CisrCisrICAgIGZyZWVic2QxKikKKysgICAgICBsZF9zaGxpYnM9bm8K KysgICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMi4yLlswMTJdIGFsbG93cyB1cyB0byBpbmNs dWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3RydWN0b3IKKysgICAgIyBzdXBwb3J0LiAgRnV0 dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4cGxpY2l0IGMrK3J0 MC5vCisrICAgICMgZG9lcyBub3QgYnJlYWsgYW55dGhpbmcsIGFuZCBoZWxwcyBzaWduaWZpY2Fu dGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQorKyAgICAjIGV4dHJhIHNwYWNlKS4KKysgICAg ZnJlZWJzZDIuMiopCisrICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC91c3IvbGliL2MrK3J0MC5vJworKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKKysgICAgICBoYXJkY29k ZV9kaXJlY3Q9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7 CisrCisrICAgICMgVW5mb3J0dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAyIGRv IG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4KKysgICAgZnJlZWJzZDIqKQorKyAgICAgIGFyY2hpdmVf Y21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrICAgICAgaGFyZGNvZGVfbWludXNf TD15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysKKysg ICAgIyBGcmVlQlNEIDMgYW5kIGdyZWF0ZXIgdXNlcyBnY2MgLXNoYXJlZCB0byBkbyBzaGFyZWQg bGlicmFyaWVzLgorKyAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCisrICAgICAgYXJjaGl2ZV9j bWRzPSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisrICAgICAg aGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysg ICAgICA7OworKworKyAgICBocHV4OSopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KKysJYXJjaGl2ZV9jbWRzPSckcm0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJl ZCAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpk aXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAg ICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckcm0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kTEQg LWIgK2IgJGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGli IHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICBmaQorKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysK KysgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRI LAorKyAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5Lgor KyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjPScke3dsfS1FJworKyAgICAgIDs7CisrCisrICAgIGhwdXgxMCopCisrICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwlhcmNoaXZlX2Nt ZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0k aW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0 YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAg ICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrCWhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3I9OgorKworKwloYXJkY29kZV9kaXJlY3Q9eWVzCisrCWV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYz0nJHt3bH0tRScKKysKKysJIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVh bGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24g b2YgdGhlIGxpYnJhcnkuCisrCWhhcmRjb2RlX21pbnVzX0w9eWVzCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBocHV4MTEqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIk d2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJY2FzZSAkaG9zdF9jcHUgaW4KKysJaHBwYSo2NCop CisrCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwlpYTY0KikK KysJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9 K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JworKwkgIDs7CisrCSopCisrCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAtZlBJQyAke3ds fStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWVzYWMKKysgICAgICBl bHNlCisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEqNjQqKQorKwkgIGFyY2hpdmVfY21kcz0n JENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWlhNjQqKQorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1i ICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgYXJjaGl2ZV9j bWRzPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7Owor Kwllc2FjCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRo ZW4KKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisr CWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKworKwljYXNlICRob3N0X2NwdSBpbgorKwlo cHBhKjY0KnxpYTY0KikKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPScrYiAkbGli ZGlyJworKwkgIGhhcmRjb2RlX2RpcmVjdD1ubworKwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9 bm8KKysJICA7OworKwkqKQorKwkgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysJICBleHBvcnRfZHlu YW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCisrCisrCSAgIyBoYXJkY29kZV9taW51c19MOiBOb3Qg cmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2Nh dGlvbiBvZiB0aGUgbGlicmFyeS4KKysJICBoYXJkY29kZV9taW51c19MPXllcworKwkgIDs7Cisr CWVzYWMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5v bnN0b3B1eCopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJYXJjaGl2ZV9j bWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1z ZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7 b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrICAgICAgZWxzZQorKwlhcmNo aXZlX2NtZHM9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLXNv bmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAk dmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWInCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9Jy1ycGF0aCAkbGliZGly JworKyAgICAgIGZpCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBh dGggJHt3bH0kbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKyAg ICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysg ICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxs OyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICMgYS5vdXQKKysgICAgICBlbHNlCisrCWFyY2hpdmVf Y21kcz0nJExEIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz JyAgICAgICMgRUxGCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PSctUiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIGFy Y2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06CisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1u bworKyAgICAgIDs7CisrCisrICAgIG9wZW5ic2QqKQorKyAgICAgIGlmIHRlc3QgLWYgL3Vzci9s aWJleGVjL2xkLnNvOyB0aGVuCisrCWhhcmRjb2RlX2RpcmVjdD15ZXMKKysJaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcj1ubworKwlpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBn cmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgt cG93ZXJwYyI7IHRoZW4KKysJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICBhcmNoaXZlX2V4 cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJv bHMnCisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgsJGxpYmRpcicK KysJICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCisrCWVsc2UKKysJICBjYXNl ICRob3N0X29zIGluCisrCSAgIG9wZW5ic2RbMDFdLiogfCBvcGVuYnNkMi5bMC03XSB8IG9wZW5i c2QyLlswLTddLiopCisrCSAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKKysJICAgICA7OworKwkgICAqKQorKwkgICAgIGFyY2hp dmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKwkgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9 LXJwYXRoLCRsaWJkaXInCisrCSAgICAgOzsKKysJICBlc2FjCisrICAgICAgICBmaQorKyAgICAg IGVsc2UKKysJbGRfc2hsaWJzPW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBvczIq KQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAgICBo YXJkY29kZV9taW51c19MPXllcworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9y dGVkCisrICAgICAgYXJjaGl2ZV9jbWRzPSckZWNobyAiTElCUkFSWSAkbGlibmFtZSBJTklUSU5T VEFOQ0UiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRlY2hvICJERVNDUklQVElPTiBc IiRsaWJuYW1lXCIiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyBEQVRBID4+ ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyAiIFNJTkdMRSBOT05TSEFSRUQiID4+ ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kZWNobyBFWFBPUlRTID4+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmRlZn5lbXhleHAgJGxpYm9ianMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZGVmfiRDQyAtWmRsbCAtWmNydGRsbCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCisrICAgICAgb2xkX2FyY2hp dmVfRnJvbV9uZXdfY21kcz0nZW14aW1wIC1vICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmEgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAgIDs7CisrCisrICAgIG9zZjMqKQorKyAg ICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPScg JHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNo YXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBl Y2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lz dHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAgICBl bHNlCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworKwlh cmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtv dXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAg ICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKysgICAgICA7OworKworKyAgICBvc2Y0KiB8 IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKKysgICAg ICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhbGxvd191bmRlZmluZWRfZmxhZz0nICR7 d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFy ZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3Ry aW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBk YXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicK KysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwor KyAgICAgIGVsc2UKKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAtZXhwZWN0X3VucmVzb2x2ZWQg XConCisrCWFyY2hpdmVfY21kcz0nJExEIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0 ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwlhcmNo aXZlX2V4cHN5bV9jbWRzPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50 ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmU7IGVj aG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRf ZmxhZ30gLWlucHV0ICRsaWIuZXhwICRsaW5rZXJfZmxhZ3MgJGxpYm9ianMgJGRlcGxpYnMgLXNv bmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAk dmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWJ+JHJtICRsaWIuZXhwJworKworKwkjIEJvdGggYyBhbmQgY3h4IGNvbXBpbGVyIHN1 cHBvcnQgLXJwYXRoIGRpcmVjdGx5CisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1ycGF0 aCAkbGliZGlyJworKyAgICAgIGZpCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06 CisrICAgICAgOzsKKysKKysgICAgc29sYXJpcyopCisrICAgICAgbm9fdW5kZWZpbmVkX2ZsYWc9 JyAteiB0ZXh0JworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCXdsYXJjPSck e3dsfScKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1oICR7d2x9JHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBz eW1fY21kcz0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xz IHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+JGVjaG8gImxvY2FsOiAqOyB9 OyIgPj4gJGxpYi5leHB+CisrCSAgJENDIC1zaGFyZWQgJHt3bH0tTSAke3dsfSRsaWIuZXhwICR7 d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzfiRybSAkbGliLmV4cCcKKysgICAgICBlbHNlCisrCXdsYXJjPScnCisrCWFyY2hpdmVfY21k cz0nJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRlY2hv ICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMv XCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhw fgorKyAgCSRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRybSAkbGliLmV4cCcK KysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicK KysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgY2FzZSAkaG9zdF9vcyBp bgorKyAgICAgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0uKikgOzsKKysgICAgICAq KQorKwkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtl ciBvcHRpb25zLAorKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRp c2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCisrCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0 byByZW9yZGVyLgorKyAJIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4x PykKKysJaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYz0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRl ZmF1bHRleHRyYWN0JworKwllbHNlCisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Jy16IGFs bGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3QnCisrCWZpCisrCTs7CisrICAg ICAgZXNhYworKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisrICAgICAgOzsKKysKKysgICAg c3Vub3M0KikKKysgICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVu CisrCSMgVXNlICRDQyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGlu IHNvbWUgZXh0cmEgLm8KKysJIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rp b25zIHdvcmsuCisrCWFyY2hpdmVfY21kcz0nJENDIC1HICR7d2x9LWggJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCWFyY2hp dmVfY21kcz0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc3RhdGljIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisrICAg ICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5v CisrICAgICAgOzsKKysKKysgICAgc3lzdjQpCisrICAgICAgY2FzZSAkaG9zdF92ZW5kb3IgaW4K KysJc25pKQorKwkgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIGhhcmRjb2RlX2RpcmVjdD15ZXMgIyBp cyB0aGlzIHJlYWxseSB0cnVlPz8/CisrCTs7CisrCXNpZW1lbnMpCisrCSAgIyMgTEQgaXMgbGQg aXQgbWFrZXMgYSBQTEFNTElCCisrCSAgIyMgQ0MganVzdCBtYWtlcyBhIEdyb3NzTW9kdWxlLgor KwkgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtl cl9mbGFncycKKysJICByZWxvYWRfY21kcz0nJENDIC1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMn CisrCSAgaGFyZGNvZGVfZGlyZWN0PW5vCisrICAgICAgICA7OworKwltb3Rvcm9sYSkKKysJICBh cmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncycKKysJICBoYXJkY29kZV9kaXJlY3Q9bm8gI01vdG9yb2xhIG1hbnVhbCBz YXlzIHllcywgYnV0IG15IHRlc3RzIHNheSB0aGV5IGxpZQorKwk7OworKyAgICAgIGVzYWMKKysg ICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0LjMqKQorKyAgICAgIGFyY2hpdmVfY21k cz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICBleHBvcnRfZHlu YW1pY19mbGFnX3NwZWM9Jy1CZXhwb3J0JworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikK KysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJExEIC1H IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwlo YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrCXJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrCWhh cmRjb2RlX3J1bnBhdGhfdmFyPXllcworKwlsZF9zaGxpYnM9eWVzCisrICAgICAgZmkKKysgICAg ICA7OworKworKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJl Ny5bMDFdLlsxMF0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuWzAyNF0qKQorKyAgICAgIG5v X3VuZGVmaW5lZF9mbGFnPScke3dsfS16LHRleHQnCisrICAgICAgYXJjaGl2ZV9jbWRzX25lZWRf bGM9bm8KKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgcnVucGF0aF92 YXI9J0xEX1JVTl9QQVRIJworKworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisr CWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0Mg LXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlh cmNoaXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtRyAke3ds fS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAg ICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQorKyAgICAgICMgTm90ZTogV2UgY2FuIE5P VCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90CisrICAg ICAgIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2Vk IGZyb20gbGliYyB0bworKyAgICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5z IGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAorKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3Rs eS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKKysgICAgICAjIHRo b3VnaCwgd2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2 eS1oYW5kZWQKKysgICAgICAjIGFzIC16IGRlZnMuCisrICAgICAgbm9fdW5kZWZpbmVkX2ZsYWc9 JyR7d2x9LXosdGV4dCcKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0nJHt3bH0teixub2Rl ZnMnCisrICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KKysgICAgICBoYXJkY29kZV9zaGxp YnBhdGhfdmFyPW5vCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nYHRlc3QgLXog IiRTQ09BQlNQQVRIIiAmJiBlY2hvICR7d2x9LVIsJGxpYmRpcmAnCisrICAgICAgaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcj0nOicKKysgICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcworKyAgICAg IGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmV4cG9ydCcKKysgICAgICBydW5wYXRo X3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K KysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5z dGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0 OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9 L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAg ICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0taCxcJHtTQ09BQlNQQVRIOisk e2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1HICR7d2x9LUJleHBvcnQ6 JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0v fSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAg ICAgZmkKKysgICAgICA7OworKworKyAgICB1dHM0KikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRM RCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK KysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisrICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgbGRf c2hsaWJzPW5vCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRfc2hsaWJzIiA+JjUKKyskYXNfZWNobyAiJGxkX3No bGlicyIgPiY2OyB9CisrdGVzdCAiJGxkX3NobGlicyIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVk PW5vCisrCisrIworKyMgRG8gd2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsgbGliYz8KKysjCisr Y2FzZSAieCRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgaW4KKyt4fHh5ZXMpCisrICAjIEFzc3VtZSAt bGMgc2hvdWxkIGJlIGFkZGVkCisrICBhcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKKysKKysgIGlm IHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgor KyAgICBjYXNlICRhcmNoaXZlX2NtZHMgaW4KKysgICAgKid+JyopCisrICAgICAgIyBGSVhNRTog d2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgorKyAgICAg IDs7CisrICAgICckQ0MgJyopCisrICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGlt cGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQorKyAgICAgICMgc3lzdGVtcywg LWxnY2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYwor KyAgICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgorKyAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhw bGljaXRseSBsaW5rZWQgaW4iID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgLWxj IHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiAiID4mNjsgfQorKyAgICAgICRybSBj b25mdGVzdCoKKysgICAgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNv bmZ0ZXN0LiRhY19leHQKKysKKysgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5P OiBcIiRhY19jb21waWxlXCIiKSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBh Y19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgorKyAg ICAgICAgc29uYW1lPWNvbmZ0ZXN0CisrICAgICAgICBsaWI9Y29uZnRlc3QKKysgICAgICAgIGxp Ym9ianM9Y29uZnRlc3QuJGFjX29iamV4dAorKyAgICAgICAgZGVwbGlicz0KKysgICAgICAgIHds PSRsdF9wcm9nX2NvbXBpbGVyX3dsCisrCXBpY19mbGFnPSRsdF9wcm9nX2NvbXBpbGVyX3BpYwor KyAgICAgICAgY29tcGlsZXJfZmxhZ3M9LXYKKysgICAgICAgIGxpbmtlcl9mbGFncz0tdgorKyAg ICAgICAgdmVyc3RyaW5nPQorKyAgICAgICAgb3V0cHV0X29iamRpcj0uCisrICAgICAgICBsaWJu YW1lPWNvbmZ0ZXN0CisrICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxv d191bmRlZmluZWRfZmxhZworKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9CisrICAgICAg ICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhcmNoaXZlX2NtZHMgMlw+XCYx IFx8IGdyZXAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMVwiIikgPiY1CisrICAoZXZhbCAk YXJjaGl2ZV9jbWRzIDJcPlwmMSBcfCBncmVwIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEp IDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9CisrICAgICAgICB0aGVu CisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KKysgICAgICAgIGVsc2UKKysJICBhcmNoaXZl X2NtZHNfbmVlZF9sYz15ZXMKKysgICAgICAgIGZpCisrICAgICAgICBhbGxvd191bmRlZmluZWRf ZmxhZz0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZworKyAgICAgIGVsc2UKKysgICAgICAg IGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgIGZpCisrICAgICAgJHJtIGNvbmZ0ZXN0Kgor KyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhcmNoaXZlX2NtZHNf bmVlZF9sYyIgPiY1CisrJGFzX2VjaG8gIiRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgPiY2OyB9Cisr ICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIDs7CisrZXNhYworKworK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3Mi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGlj cy4uLiAiID4mNjsgfQorK2xpYnJhcnlfbmFtZXNfc3BlYz0KKytsaWJuYW1lX3NwZWM9J2xpYiRu YW1lJworK3NvbmFtZV9zcGVjPQorK3NocmV4dF9jbWRzPSIuc28iCisrcG9zdGluc3RhbGxfY21k cz0KKytwb3N0dW5pbnN0YWxsX2NtZHM9CisrZmluaXNoX2NtZHM9CisrZmluaXNoX2V2YWw9Cisr c2hsaWJwYXRoX3Zhcj0KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93bgorK3Zl cnNpb25fdHlwZT1ub25lCisrZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgorK3N5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgorKworK2lmIHRlc3QgIiRHQ0Mi ID0geWVzOyB0aGVuCisrICBjYXNlICRob3N0X29zIGluCisrICAgIGRhcndpbiopIGx0X2F3a19h cmc9Ii9ebGlicmFyaWVzOi8sL0xSLyIgOzsKKysgICAgKikgbHRfYXdrX2FyZz0iL15saWJyYXJp ZXM6LyIgOzsKKysgIGVzYWMKKysgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2Vh cmNoLWRpcnMgfCBhd2sgJGx0X2F3a19hcmcgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1l ICJzLD0vLC8sZyJgCisrICBpZiBlY2hvICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCBncmVwICc7 JyA+L2Rldi9udWxsIDsgdGhlbgorKyAgICAjIGlmIHRoZSBwYXRoIGNvbnRhaW5zICI7IiB0aGVu IHdlIGFzc3VtZSBpdCB0byBiZSB0aGUgc2VwYXJhdG9yCisrICAgICMgb3RoZXJ3aXNlIGRlZmF1 bHQgdG8gdGhlIHN0YW5kYXJkIHBhdGggc2VwYXJhdG9yIChpLmUuICI6IikgLSBpdCBpcworKyAg ICAjIGFzc3VtZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBhdGhuYW1lIGNvbnRhaW5zICI7 IiBidXQgdGhhdCBzaG91bGQKKysgICAgIyBva2F5IGluIHRoZSByZWFsIHdvcmxkIHdoZXJlICI7 IiBpbiBkaXJwYXRocyBpcyBpdHNlbGYgcHJvYmxlbWF0aWMuCisrICAgIGx0X3NlYXJjaF9wYXRo X3NwZWM9YGVjaG8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAor KyAgZWxzZQorKyAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIkbHRfc2VhcmNoX3BhdGhf c3BlYyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKysgIGZpCisrICAjIE9r LCBub3cgd2UgaGF2ZSB0aGUgcGF0aCwgc2VwYXJhdGVkIGJ5IHNwYWNlcywgd2UgY2FuIHN0ZXAg dGhyb3VnaCBpdAorKyAgIyBhbmQgYWRkIG11bHRpbGliIGRpciBpZiBuZWNlc3NhcnkuCisrICBs dF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0KKysgIGx0X211bHRpX29zX2Rpcj1gJENDICRDUFBG TEFHUyAkQ0ZMQUdTICRMREZMQUdTIC1wcmludC1tdWx0aS1vcy1kaXJlY3RvcnkgMj4vZGV2L251 bGxgCisrICBmb3IgbHRfc3lzX3BhdGggaW4gJGx0X3NlYXJjaF9wYXRoX3NwZWM7IGRvCisrICAg IGlmIHRlc3QgLWQgIiRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIjsgdGhlbgorKyAgICAg IGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMg JGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiCisrICAgIGVsc2UKKysgICAgICB0ZXN0IC1k ICIkbHRfc3lzX3BhdGgiICYmIFwKKysJbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90 bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgiCisrICAgIGZpCisrICBkb25lCisr ICBsdF9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyB8 IGF3ayAnCisrQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30geworKyAgbHRfZm9vPSIiOworKyAg bHRfY291bnQ9MDsKKysgIGZvciAobHRfaSA9IE5GOyBsdF9pID4gMDsgbHRfaS0tKSB7CisrICAg IGlmICgkbHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKKysgICAgICBpZiAoJGx0X2kgPT0g Ii4uIikgeworKyAgICAgICAgbHRfY291bnQrKzsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAg aWYgKGx0X2NvdW50ID09IDApIHsKKysgICAgICAgICAgbHRfZm9vPSIvIiAkbHRfaSBsdF9mb287 CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBsdF9jb3VudC0tOworKyAgICAgICAgfQor KyAgICAgIH0KKysgICAgfQorKyAgfQorKyAgaWYgKGx0X2ZvbyAhPSAiIikgeyBsdF9mcmVxW2x0 X2Zvb10rKzsgfQorKyAgaWYgKGx0X2ZyZXFbbHRfZm9vXSA9PSAxKSB7IHByaW50IGx0X2Zvbzsg fQorK30nYAorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICRsdF9zZWFyY2hfcGF0 aF9zcGVjYAorK2Vsc2UKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xp YiAvdXNyL2xvY2FsL2xpYiIKKytmaQorK25lZWRfbGliX3ByZWZpeD11bmtub3duCisraGFyZGNv ZGVfaW50b19saWJzPW5vCisrCisrIyB3aGVuIHlvdSBzZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBt YWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNldF92ZXJzaW9uCisrIyBmbGFncyB0byBiZSBs ZWZ0IHdpdGhvdXQgYXJndW1lbnRzCisrbmVlZF92ZXJzaW9uPXVua25vd24KKysKKytjYXNlICRo b3N0X29zIGluCisrYWl4MyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGli bmFtZS5hJworKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrCisrICAjIEFJWCAzIGhhcyBubyB2 ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIHdlIGFwcGVuZCBhIG1ham9yIHZlcnNpb24gdG8gdGhlIG5h bWUuCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgOzsKKysKKythaXhbNC05XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICAjIEFJWCA1 IHN1cHBvcnRzIElBNjQKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICisrICBlbHNlCisrICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xs ZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKKysgICAgIyBmb3IgZGVwZW5kZW5jZSBs aWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAorKyAgICAjIHRoZSBs aW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCisr ICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2Fz IGZpeGVkIGluCisrICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAz LjAuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXg0IHwgYWl4NC5bMDFdIHwgYWl4 NC5bMDFdLiopCisrICAgICAgaWYgeyBlY2hvICcjaWYgX19HTlVDX18gPiAyIHx8IChfX0dOVUNf XyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49IDk3KScKKysJICAgZWNobyAnIHllcyAnCisrCSAg IGVjaG8gJyNlbmRpZic7IH0gfCAke0NDfSAtRSAtIHwgZ3JlcCB5ZXMgPiAvZGV2L251bGw7IHRo ZW4KKysJOgorKyAgICAgIGVsc2UKKysJY2FuX2J1aWxkX3NoYXJlZD1ubworKyAgICAgIGZpCisr ICAgICAgOzsKKysgICAgZXNhYworKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lv bmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0Cisr ICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9u aW5nIHN1cHBvcnQgdG8KKysgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4g YmUgdXNlZnVsIGluIGZ1dHVyZS4KKysgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtp bmciID0geWVzOyB0aGVuCisrICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBB SVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCisrICAgICAgIyBpbnN0ZWFkIG9mIGxp YjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKKysgICAgICAj IHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAg IGVsc2UKKysgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxp YnJhcmllcyB0aHJvdWdoIEFJWDQuMgorKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5v dCBkb2luZyBydW4gdGltZSBsaW5raW5nLgorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJworKyAgICAgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGZpCisrICAgIHNobGli cGF0aF92YXI9TElCUEFUSAorKyAgZmkKKysgIDs7CisrCisrYW1pZ2FvcyopCisrICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJworKyAgIyBDcmVhdGUg JHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KKysgIGZpbmlzaF9l dmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8g bGlibmFtZT1gJGVjaG8gIlgkbGliIiB8ICRYc2VkIC1lICdcJydzJV4uKi9cKFteL10qXClcLml4 bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJHJtIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFy eS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJh cnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEg fHwgZXhpdCAxOyBkb25lJworKyAgOzsKKysKKytiZW9zKikKKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3Mg bGQuc28iCisrICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAorKyAgOzsKKysKKytic2RpWzQ1 XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgJGxp YmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL1gxMS9saWIgL3Vzci9jb250cmliL2xp YiAvbGliIC91c3IvbG9jYWwvbGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9z aGxpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgICMgdGhlIGRlZmF1bHQgbGQuc28uY29u ZiBhbHNvIGNvbnRhaW5zIC91c3IvY29udHJpYi9saWIgYW5kCisrICAjIC91c3IvWDExUjYvbGli ICgvdXNyL1gxMSBpcyBhIGxpbmsgdG8gL3Vzci9YMTFSNiksIGJ1dCBsZXQgdXMgYWxsb3cKKysg ICMgbGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2UgaW50byBwcm9ncmFtcworKyAgOzsKKysKKytj eWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisrICB2ZXJzaW9uX3R5cGU9d2luZG93cworKyAgc2hy ZXh0X2NtZHM9Ii5kbGwiCisrICBuZWVkX3ZlcnNpb249bm8KKysgIG5lZWRfbGliX3ByZWZpeD1u bworKworKyAgY2FzZSAkR0NDLCRob3N0X29zIGluCisrICB5ZXMsY3lnd2luKiB8IHllcyxtaW5n dyogfCB5ZXMscHczMiopCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEn CisrICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0 YWxsX2NtZHMKKysgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtm aWxlfWB+CisrICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHti YXNlX2ZpbGV9J1wnJ2k7ZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRsZGlyPSRkZXN0ZGly L2BkaXJuYW1lIFwkZGxwYXRoYH4KKysgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAg XCRkbGRpcn4KKysgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5h bWV+CisrICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZScKKysgICAgcG9zdHVuaW5zdGFs bF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUn XCcnYH4KKysgICAgICBkbHBhdGg9JGRpci9cJGRsZGxsfgorKyAgICAgICAkcm0gXCRkbHBhdGgn CisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysKKysgICAgY2FzZSAkaG9z dF9vcyBpbgorKyAgICBjeWd3aW4qKQorKyAgICAgICMgQ3lnd2luIERMTHMgdXNlICdjeWcnIHBy ZWZpeCByYXRoZXIgdGhhbiAnbGliJworKyAgICAgIHNvbmFtZV9zcGVjPSdgZWNobyAke2xpYm5h bWV9IHwgc2VkIC1lICdzL15saWIvY3lnLydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3Mv Wy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9Ii91c3IvbGliIC9saWIvdzMyYXBpIC9saWIgL3Vzci9sb2NhbC9saWIiCisr ICAgICAgOzsKKysgICAgbWluZ3cqKQorKyAgICAgICMgTWluR1cgRExMcyB1c2UgdHJhZGl0aW9u YWwgJ2xpYicgcHJlZml4CisrICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3Jl bGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9Jwor KyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8 IGdyZXAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8s LyxnImAKKysgICAgICBpZiBlY2hvICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IGdyZXAg JztbYy16Qy1aXTovJyA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgICAjIEl0IGlzIG1vc3QgcHJv YmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRIIHByaW50ZWQgYnkKKysgICAgICAgICMgbWluZ3cg Z2NjLCBidXQgd2UgYXJlIHJ1bm5pbmcgb24gQ3lnd2luLiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gK KysgICAgICAgICMgcGF0aCB3aXRoIDsgc2VwYXJhdG9ycywgYW5kIHdpdGggZHJpdmUgbGV0dGVy cy4gV2UgY2FuIGhhbmRsZSB0aGUKKysgICAgICAgICMgZHJpdmUgbGV0dGVycyAoY3lnd2luIGZp bGV1dGlscyB1bmRlcnN0YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhlbSwKKysgICAgICAgICMgZXNw ZWNpYWxseSBhcyB3ZSBtaWdodCBwYXNzIGZpbGVzIGZvdW5kIHRoZXJlIHRvIGEgbWluZ3cgb2Jq ZHVtcCwKKysgICAgICAgICMgd2hpY2ggd291bGRuJ3QgdW5kZXJzdGFuZCBhIGN5Z3dpbmlmaWVk IHBhdGguIEFoaC4KKysgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKysgICAgICBlbHNl CisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGVjaG8gIiRzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCisrICAgICAg ZmkKKysgICAgICA7OworKyAgICBwdzMyKikKKysgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBw cmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hv ICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VE IC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgOzsKKysg ICAgZXNhYworKyAgICA7OworKworKyAgKikKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9 JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCisrICAgIDs7CisrICBlc2FjCisrICBkeW5hbWlj X2xpbmtlcj0nV2luMzIgbGQuZXhlJworKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJj aCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCisrICBzaGxpYnBhdGhf dmFyPVBBVEgKKysgIDs7CisrCisrZGFyd2luKiB8IHJoYXBzb2R5KikKKysgIGR5bmFtaWNfbGlu a2VyPSIkaG9zdF9vcyBkeWxkIgorKyAgdmVyc2lvbl90eXBlPWRhcndpbgorKyAgbmVlZF9saWJf cHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3ZlcnN1ZmZpeH0kc2hhcmVkX2V4dCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JworKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKKysgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZ X1BBVEgKKysgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28g fHwgZWNobyAuZHlsaWJgJworKworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjIC91c3IvbG9jYWwvbGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCisrICA7OworKworK2RndXgq KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRf dmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICA7OworKworK2ZyZWVic2QxKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7Owor KworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUg YW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKysgICMgdmVyc2lvbmluZyBtZWNo YW5pc20sIGFkanVzdCB0aGlzLgorKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRo ZW4KKysgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisrICBlbHNlCisrICAgIGNh c2UgJGhvc3Rfb3MgaW4KKysgICAgZnJlZWJzZFsxMjNdKikgb2JqZm9ybWF0PWFvdXQgOzsKKysg ICAgKikgb2JqZm9ybWF0PWVsZiA7OworKyAgICBlc2FjCisrICBmaQorKyAgdmVyc2lvbl90eXBl PWZyZWVic2QtJG9iamZvcm1hdAorKyAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisrICAgIGZyZWVi c2QtZWxmKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysgICAgICBu ZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBmcmVlYnNkLSopCisrICAgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgICAgbmVlZF92ZXJzaW9u PXllcworKyAgICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgZnJlZWJzZDIqKQorKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIDs7CisrICBmcmVlYnNkMy5bMDFdKiB8IGZyZWVic2Rl bGYzLlswMV0qKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLlsyLTldKiB8IGZyZWVi c2RlbGYzLlsyLTldKiB8IFwKKysgIGZyZWVic2Q0LlswLTVdIHwgZnJlZWJzZGVsZjQuWzAtNV0g fCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCisrICAgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD1ubworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICAq KSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5CisrICAgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7OworKyAgZXNh YworKyAgOzsKKysKKytnbnUqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9w cmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisr ICA7OworKworK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKyAgIyBHaXZlIGEgc29uYW1l IGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNl cyB0bworKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIgdmVyc2lvbnMuCisrICB2ZXJzaW9uX3R5cGU9 c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBjYXNl ICRob3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAgIHNocmV4dF9jbWRzPScuc28nCisrICAgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5z byIKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgorKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKKysgICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7 IHRoZW4KKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXgzMiAv dXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIiCisrICAgIGVsc2UKKysgICAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9o cHV4NjQiCisrICAgIGZpCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMKKysgICAgOzsKKysgICBocHBhKjY0KikKKysgICAgIHNocmV4dF9j bWRzPScuc2wnCisrICAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgICBkeW5hbWljX2xp bmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgorKyAgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRICisrICAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKKysgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCisrICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Iv bGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBfNjQiCisrICAgICBzeXNfbGliX2Rsc2VhcmNo X3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCisrICAgICA7OworKyAgICopCisr ICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQu c2wiCisrICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0byBlbmFibGUgU0hMSUJfUEFUSAorKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKKysgICAgOzsKKysgIGVzYWMKKysgICMgSFAtVVggcnVucyAqcmVh bGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1LgorKyAgcG9z dGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWInCisrICA7OworKworK2ludGVyaXhbMy05XSop CisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92 ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4 IDMueCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50 b19saWJzPXllcworKyAgOzsKKysKKytpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKyAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4 IDs7CisrICAgICopCisrCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4K KysJCXZlcnNpb25fdHlwZT1saW51eAorKwllbHNlCisrCQl2ZXJzaW9uX3R5cGU9aXJpeAorKwlm aSA7OworKyAgZXNhYworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8K KysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBj YXNlICRob3N0X29zIGluCisrICBpcml4NSogfCBub25zdG9wdXgqKQorKyAgICBsaWJzdWZmPSBz aGxpYnN1ZmY9CisrICAgIDs7CisrICAqKQorKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQg d2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECisrICAgICotMzJ8KiItMzIgInwq LW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCisrICAgICAgbGlic3VmZj0gc2hsaWJzdWZm PSBsaWJtYWdpYz0zMi1iaXQ7OworKyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8 KiItbWVsZjMyYm1pcG4zMiAiKQorKyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJt YWdpYz1OMzI7OworKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAg IikKKysgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OworKyAg ICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKysgICAgZXNh YworKyAgICA7OworKyAgZXNhYworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1 ZmZ9X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9s b2NhbC9saWIke2xpYnN1ZmZ9IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3Iv bGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK KysgIDs7CisrCisrIyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0 LCBvciBjb2ZmLgorK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCisr ICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYu CisrbGludXgqIHwgaypic2QqLWdudSkKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9s aWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGZp bmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCisrICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCisrICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNj ZXB0YWJsZS4KKysgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZh c3RfaW5zdGFsbAorKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KKysgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xp YnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKKysgIHN5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0i CisrCisrICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAor KyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KKysgICAgbHRfbGRfZXh0cmE9YGF3 ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9u dWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAgPSAw OyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bIAldKmh3Y2FwWyAJ XS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRyICdc bicgJyAnYAorKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKKysgIGZpCisrCisrICAjIFdlIHVzZWQgdG8gdGVz dCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMgb24KKysgICMg cG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMg d2l0aCB0aGUKKysgICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3YXMgYnJva2Vu IHdpdGggY3Jvc3MgY29tcGlsZXJzLAorKyAgIyBtb3N0IHBvd2VycGMtbGludXggYm94ZXMgc3Vw cG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQKKysgICMgcGVvcGxlIGNhbiBhbHdh eXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFuZCB3ZQorKyAgIyBh c3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2UuCisrICBkeW5hbWlj X2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJworKyAgOzsKKysKKytuZXRic2QqKQorKyAgdmVyc2lv bl90eXBlPXN1bm9zCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubwor KyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsg dGhlbgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAg ICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwor KyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQuc28nCisrICBlbHNlCisrICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3Nv JworKyAgZmkKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7Owor KworK25ld3NvczYpCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMKKysgIDs7CisrCisrbnRvLXFueCopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysg IG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK KysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In CisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcworKyAgOzsKKysKKytvcGVuYnNkKikKKysgIHZlcnNpb25fdHlwZT1zdW5v cworKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgorKyAgbmVlZF9saWJf cHJlZml4PW5vCisrICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkJTRCAoMy4zIGF0IGxl YXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMuCisrICBjYXNlICRob3N0X29zIGluCisrICAg IG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopIG5lZWRfdmVyc2lvbj15ZXMgOzsKKysgICAgKikg ICAgICAgICAgICAgICAgICAgICAgICAgbmVlZF92ZXJzaW9uPW5vICA7OworKyAgZXNhYworKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgIGZpbmlzaF9jbWRz PSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCisrICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAorKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAt RSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVu YnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBvcGVu YnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQorKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KKysJOzsKKysgICAgICAqKQorKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz CisrCTs7CisrICAgICAgZXNhYworKyAgZWxzZQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCisrICBmaQorKyAgOzsKKysKKytvczIqKQorKyAgbGlibmFtZV9zcGVjPSckbmFt ZScKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAkbGlibmFtZS5hJworKyAgZHlu YW1pY19saW5rZXI9J09TLzIgbGQuZXhlJworKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrICA7 OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgIHZlcnNpb25fdHlwZT1vc2YKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBscnMvY2MgL3Vzci9saWIg L3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorKyAgOzsKKysKKytyZG9zKikKKysgIGR5bmFt aWNfbGlua2VyPW5vCisrICA7OworKworK3NvbGFyaXMqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4 CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICMgbGRkIGNv bXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCisrICBwb3N0aW5zdGFsbF9j bWRzPSdjaG1vZCAreCAkbGliJworKyAgOzsKKysKKytzdW5vczQqKQorKyAgdmVyc2lvbl90eXBl PXN1bm9zCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAg ZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRjb25maWcgJGxpYmRpcicKKysg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgZmkKKysgIG5lZWRfdmVyc2lvbj15ZXMKKysgIDs7CisrCisr c3lzdjQgfCBzeXN2NC4zKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n CisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGNhc2UgJGhvc3RfdmVuZG9y IGluCisrICAgIHNuaSkKKysgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysg ICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9 JyR7d2x9LUJsYXJnZWR5bnN5bScKKysgICAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKyAg ICAgIDs7CisrICAgIHNpZW1lbnMpCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAgICAg OzsKKysgICAgbW90b3JvbGEpCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAgICAgbmVl ZF92ZXJzaW9uPW5vCisrICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3IvbGliIC91c3IvY2NzL2xpYicK KysgICAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzeXN2NCpNUCopCisrICBpZiB0ZXN0IC1k IC91c3IvbmVjIDt0aGVuCisrICAgIHZlcnNpb25fdHlwZT1saW51eAorKyAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFy ZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0n JGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKKysgIGZpCisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2Niog fCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgdmVyc2lvbl90eXBlPWZy ZWVic2QtZWxmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNyL2dudS9saWIgL3Vz ci9jY3MvbGliIC91c3IvbGliIC9saWInCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD1ubworKyAgZWxzZQorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xp YiAvdXNyL2xpYicKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBj YXNlICRob3N0X29zIGluCisrICAgICAgc2NvMy4ydjUqKQorKyAgICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9saWIiCisrCTs7CisrICAg IGVzYWMKKysgIGZpCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9saWInCisr ICA7OworKworK3V0czQqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK KysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In CisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgOzsKKysKKysqKQorKyAgZHlu YW1pY19saW5rZXI9bm8KKysgIDs7CisrZXNhYworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1CisrJGFzX2VjaG8gIiRkeW5hbWljX2xpbmtl ciIgPiY2OyB9CisrdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFy ZWQ9bm8KKysKKytpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBs dF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMi CisrZmkKKysKKytzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX3NlYXJj aF9wYXRoX3NwZWMiCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl YytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjIgorK2ZpCisrCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9z eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKKysKKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGlu az0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCisraWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KKysgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVk X2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgor K2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBoYXJk Y29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4gIiA+JjY7 IH0KKytoYXJkY29kZV9hY3Rpb249CisraWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMiIHx8IFwKKysgICB0ZXN0IC1uICIkcnVucGF0aF92YXIiIHx8IFwKKysgICB0ZXN0ICJY JGhhcmRjb2RlX2F1dG9tYXRpYyIgPSAiWHllcyIgOyB0aGVuCisrCisrICAjIFdlIGNhbiBoYXJk Y29kZSBub24tZXhpc3RhbnQgZGlyZWN0b3JpZXMuCisrICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGly ZWN0IiAhPSBubyAmJgorKyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFy ZGNvZGluZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQorKyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3Ro ZXJ3aXNlIHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFyeQorKyAgICAgIyB3 aGVuIHdlIHNob3VsZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9uZQor KyAgICAgIyMgdGVzdCAiJF9MVF9BQ19UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgKSIg IT0gbm8gJiYKKysgICAgIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSBubzsgdGhlbgorKyAg ICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0 b3J5LgorKyAgICBoYXJkY29kZV9hY3Rpb249cmVsaW5rCisrICBlbHNlCisrICAgICMgV2UgY2Fu IGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5n IGRpcnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbj1pbW1lZGlhdGUKKysgIGZpCisrZWxzZQorKyAg IyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9ubHkgaGFyZGNv ZGUgZXhpc3RpbmcKKysgICMgZGlyZWN0b3JpZXMuCisrICBoYXJkY29kZV9hY3Rpb249dW5zdXBw b3J0ZWQKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJkY29k ZV9hY3Rpb24iID4mNQorKyRhc19lY2hvICIkaGFyZGNvZGVfYWN0aW9uIiA+JjY7IH0KKysKKytp ZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uIiA9IHJlbGluazsgdGhlbgorKyAgIyBGYXN0IGluc3Rh bGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCisrICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCisrZWxp ZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyB8fAorKyAgICAgdGVz dCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KKysgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMg bm90IG5lY2Vzc2FyeQorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1uZWVkbGVzcworK2ZpCisrCisr c3RyaXBsaWI9Cisrb2xkX3N0cmlwbGliPQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGUiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJs ZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgLW4gIiRTVFJJUCIgJiYgJFNUUklQIC1WIDI+JjEgfCBn cmVwICJHTlUgc3RyaXAiID4vZGV2L251bGw7IHRoZW4KKysgIHRlc3QgLXogIiRvbGRfc3RyaXBs aWIiICYmIG9sZF9zdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtZGVidWciCisrICB0ZXN0IC16ICIk c3RyaXBsaWIiICYmIHN0cmlwbGliPSIkU1RSSVAgLS1zdHJpcC11bm5lZWRlZCIKKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIg PiY2OyB9CisrZWxzZQorKyMgRklYTUUgLSBpbnNlcnQgc29tZSByZWFsIHRlc3RzLCBob3N0X29z IGlzbid0IHJlYWxseSBnb29kIGVub3VnaAorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgIGRhcndp biopCisrICAgICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCisrICAgICAgICAgc3RyaXBs aWI9IiRTVFJJUCAteCIKKysgICAgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtUyIKKysgICAg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19l Y2hvICJ5ZXMiID4mNjsgfQorKyAgICAgICBlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKyAgICAg ICA7OworKyAgICopCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgOzsKKysgIGVzYWMKKytmaQorKworK2lm IHRlc3QgIngkZW5hYmxlX2Rsb3BlbiIgIT0geHllczsgdGhlbgorKyAgZW5hYmxlX2Rsb3Blbj11 bmtub3duCisrICBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93bgorKyAgZW5hYmxlX2Rsb3Blbl9z ZWxmX3N0YXRpYz11bmtub3duCisrZWxzZQorKyAgbHRfY3ZfZGxvcGVuPW5vCisrICBsdF9jdl9k bG9wZW5fbGlicz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGJlb3MqKQorKyAgICBsdF9j dl9kbG9wZW49ImxvYWRfYWRkX29uIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRf Y3ZfZGxvcGVuX3NlbGY9eWVzCisrICAgIDs7CisrCisrICBtaW5ndyogfCBwdzMyKikKKysgICAg bHRfY3ZfZGxvcGVuPSJMb2FkTGlicmFyeSIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAg OzsKKysKKysgIGN5Z3dpbiopCisrICAgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgorKyAgICBsdF9j dl9kbG9wZW5fbGlicz0KKysgICA7OworKworKyAgZGFyd2luKikKKysgICMgaWYgbGliZGwgaXMg aW5zdGFsbGVkIHdlIG5lZWQgdG8gbGluayBhZ2FpbnN0IGl0CisrICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YWNfY3ZfbGliX2RsX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElC Uz0iLWxkbCAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29u ZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJu IHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5 cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAi QyIKKysjZW5kaWYKKytjaGFyIGRsb3BlbiAoKTsKKytpbnQKKyttYWluICgpCisreworK3JldHVy biBkbG9wZW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19s aW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0 LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4m NQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysg IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFn IiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8 CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBh Y19jdl9saWJfZGxfZGxvcGVuPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK KysKKysJYWNfY3ZfbGliX2RsX2Rsb3Blbj1ubworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRT WU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNQorKyRhc19l Y2hvICIkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY2OyB9CisraWYgdGVzdCAieCRhY19jdl9saWJf ZGxfZGxvcGVuIiA9IHgiInllczsgdGhlbgorKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2 X2Rsb3Blbl9saWJzPSItbGRsIgorK2Vsc2UKKysKKysgICAgbHRfY3ZfZGxvcGVuPSJkeWxkIgor KyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisrCisr ZmkKKysKKysgICA7OworKworKyAgKikKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciBzaGxfbG9hZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHNo bF9sb2FkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9mdW5jX3NobF9sb2FkK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VP RgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrLyogRGVmaW5lIHNobF9s b2FkIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMg c2hsX2xvYWQuCisrICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVz IGdldHRpbWVvZmRheS4gICovCisrI2RlZmluZSBzaGxfbG9hZCBpbm5vY3VvdXNfc2hsX2xvYWQK KysKKysvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVs bHkgZmV3IHByb3RvdHlwZXMsCisrICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgc2hs X2xvYWQgKCk7IGJlbG93LgorKyAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlm IF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4g b24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCisrCisrI2lmZGVmIF9fU1REQ19fCisrIyBp bmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlm CisrCisrI3VuZGVmIHNobF9sb2FkCisrCisrLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBw cm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWln aHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRpbiBhbmQgdGhlbiBp dHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KKysjaWZkZWYgX19j cGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBzaGxfbG9hZCAoKTsKKysvKiBU aGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBs ZW1lbnRzCisrICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMg YXJlIGFjdHVhbGx5IG5hbWVkCisrICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0 aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworKyNpZiBkZWZpbmVkIF9fc3R1Yl9zaGxf bG9hZCB8fCBkZWZpbmVkIF9fc3R1Yl9fX3NobF9sb2FkCisrY2hva2UgbWUKKysjZW5kaWYKKysK KytpbnQKKyttYWluICgpCisreworK3JldHVybiBzaGxfbG9hZCAoKTsKKysgIDsKKysgIHJldHVy biAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFj X2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgor KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysg IChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVz dC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewor KwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVz dCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNf ZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFjX2N2X2Z1bmNfc2hsX2xvYWQ9eWVzCisrZWxz ZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9mdW5jX3NobF9sb2FkPW5v CisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAg Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX3NobF9sb2FkIiA+JjUKKyskYXNfZWNo byAiJGFjX2N2X2Z1bmNfc2hsX2xvYWQiID4mNjsgfQorK2lmIHRlc3QgIngkYWNfY3ZfZnVuY19z aGxfbG9hZCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGx0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiCisrZWxz ZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzaGxfbG9hZCBp biAtbGRsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHNobF9sb2FkIGluIC1sZGxk Li4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9saWJfZGxkX3NobF9sb2FkK3NldH0iID0g c2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2No ZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbGRsZCAgJExJQlMiCisrY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysvKiBPdmVycmlkZSBhbnkgR0ND IGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KKysgICBVc2UgY2hhciBiZWNh dXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGlu IGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwor KyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIKKysjZW5kaWYKKytjaGFyIHNobF9sb2Fk ICgpOworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIHNobF9sb2FkICgpOworKyAgOworKyAg cmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnki IGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Cisr CSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVz dCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgYWNfY3ZfbGliX2RsZF9zaGxfbG9hZD15 ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N2X2xpYl9kbGRf c2hsX2xvYWQ9bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9v IFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFj X2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2xp Yl9kbGRfc2hsX2xvYWQiID4mNjsgfQorK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsZF9zaGxfbG9h ZCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGx0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiIGx0X2N2X2Rsb3Bl bl9saWJzPSItbGRsZCIKKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIGRsb3BlbiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3Blbi4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfZnVuY19kbG9wZW4rc2V0fSIgPSBzZXQ7IHRo ZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysvKiBEZWZpbmUgZGxvcGVuIHRvIGFuIGlu bm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZGxvcGVuLgorKyAg IEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXku ICAqLworKyNkZWZpbmUgZGxvcGVuIGlubm9jdW91c19kbG9wZW4KKysKKysvKiBTeXN0ZW0gaGVh ZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMs CisrICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZGxvcGVuICgpOyBiZWxvdy4KKysg ICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVk LCBzaW5jZQorKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21w aWxlcnMuICAqLworKworKyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+Cisr I2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKworKyN1bmRlZiBkbG9wZW4K KysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBl cnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5 cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUg d291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIK KysjZW5kaWYKKytjaGFyIGRsb3BlbiAoKTsKKysvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVz IHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCisrICAgIHRvIGFsd2F5cyBm YWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCisrICAg IHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxp YXMuICAqLworKyNpZiBkZWZpbmVkIF9fc3R1Yl9kbG9wZW4gfHwgZGVmaW5lZCBfX3N0dWJfX19k bG9wZW4KKytjaG9rZSBtZQorKyNlbmRpZgorKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJu IGRsb3BlbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xp bmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3Qu ZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1 CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWci IHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwK KysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFj X2N2X2Z1bmNfZGxvcGVuPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysK KysJYWNfY3ZfZnVuY19kbG9wZW49bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisr cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4 X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4 dAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2Z1bmNf ZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2Z1bmNfZGxvcGVuIiA+JjY7IH0KKytpZiB0 ZXN0ICJ4JGFjX2N2X2Z1bmNfZGxvcGVuIiA9IHgiInllczsgdGhlbgorKyAgbHRfY3ZfZGxvcGVu PSJkbG9wZW4iCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBkbG9wZW4gaW4gLWxkbCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3Bl biBpbiAtbGRsLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9saWJfZGxfZGxvcGVuK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbGRsICAkTElCUyIKKytjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YK KytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKy8qIE92ZXJyaWRlIGFu eSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgorKyAgIFVzZSBjaGFy IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQworKyAgIGJ1 aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4g ICovCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIgorKyNlbmRpZgorK2NoYXIgZGxv cGVuICgpOworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIGRsb3BlbiAoKTsKKysgIDsKKysg IHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5 IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8K KysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBj b25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g JiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewor KwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRl c3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFjX2N2X2xpYl9kbF9kbG9wZW49eWVz CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisr c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9saWJfZGxfZGxv cGVuPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisr ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVj a19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9saWJfZGxfZGxv cGVuIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbF9kbG9wZW4iID0geCIieWVzOyB0 aGVuCisrICBsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiCisr ZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkbG9wZW4g aW4gLWxzdmxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sc3Zs ZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfbGliX3N2bGRfZGxvcGVuK3NldH0iID0g c2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2No ZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbHN2bGQgICRMSUJTIgorK2NhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K KysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBkbG9wZW4g KCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gZGxvcGVuICgpOworKyAgOworKyAgcmV0 dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qk YWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0 ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7 CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0 ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRh Y19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgYWNfY3ZfbGliX3N2bGRfZGxvcGVuPXllcwor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3ZfbGliX3N2bGRfZGxv cGVuPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisr ICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVj a19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYWNfY3ZfbGliX3N2bGRfZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2xpYl9zdmxk X2Rsb3BlbiIgPiY2OyB9CisraWYgdGVzdCAieCRhY19jdl9saWJfc3ZsZF9kbG9wZW4iID0geCIi eWVzOyB0aGVuCisrICBsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1s c3ZsZCIKKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y IGRsZF9saW5rIGluIC1sZGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxkX2xp bmsgaW4gLWxkbGQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2xpYl9kbGRfZGxkX2xp bmsrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sZGxkICAkTElCUyIK KytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKy8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgorKyAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwor KyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIgorKyNlbmRpZgorK2No YXIgZGxkX2xpbmsgKCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gZGxkX2xpbmsgKCk7 CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2Ug IigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNf c3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgor KyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhl ZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVz dF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBhY19jdl9saWJfZGxk X2RsZF9saW5rPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNf Y3ZfbGliX2RsZF9kbGRfbGluaz1ubworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThf Y29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0 CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9kbGRfZGxkX2xpbmsiID4mNQorKyRhc19lY2hv ICIkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPiY2OyB9CisraWYgdGVzdCAieCRhY19jdl9saWJf ZGxkX2RsZF9saW5rIiA9IHgiInllczsgdGhlbgorKyAgbHRfY3ZfZGxvcGVuPSJkbGRfbGluayIg bHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIgorK2ZpCisrCisrCisrZmkKKysKKysKKytmaQorKwor KworK2ZpCisrCisrCisrZmkKKysKKysKKytmaQorKworKyAgICA7OworKyAgZXNhYworKworKyAg aWYgdGVzdCAieCRsdF9jdl9kbG9wZW4iICE9IHhubzsgdGhlbgorKyAgICBlbmFibGVfZGxvcGVu PXllcworKyAgZWxzZQorKyAgICBlbmFibGVfZGxvcGVuPW5vCisrICBmaQorKworKyAgY2FzZSAk bHRfY3ZfZGxvcGVuIGluCisrICBkbG9wZW4pCisrICAgIHNhdmVfQ1BQRkxBR1M9IiRDUFBGTEFH UyIKKysgICAgdGVzdCAieCRhY19jdl9oZWFkZXJfZGxmY25faCIgPSB4eWVzICYmIENQUEZMQUdT PSIkQ1BQRkxBR1MgLURIQVZFX0RMRkNOX0giCisrCisrICAgIHNhdmVfTERGTEFHUz0iJExERkxB R1MiCisrICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFH UyAkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXCIKKysKKysgICAgc2F2ZV9MSUJTPSIkTElCUyIK KysgICAgTElCUz0iJGx0X2N2X2Rsb3Blbl9saWJzICRMSUJTIgorKworKyAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBhIHByb2dyYW0gY2FuIGRsb3BlbiBp dHNlbGYiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgYSBwcm9ncmFtIGNhbiBk bG9wZW4gaXRzZWxmLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9kbG9wZW5fc2VsZitz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICAJICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisrICBsdF9jdl9k bG9wZW5fc2VsZj1jcm9zcworK2Vsc2UKKysgIGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29y ZT0xOyBsdF9kbG5lZWRfdXNjb3JlPTIKKysgIGx0X3N0YXR1cz0kbHRfZGx1bmtub3duCisrICBj YXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCisrI2xpbmUgMTA5NzEgImNvbmZpZ3VyZSIKKysj aW5jbHVkZSAiY29uZmRlZnMuaCIKKysKKysjaWYgSEFWRV9ETEZDTl9ICisrI2luY2x1ZGUgPGRs ZmNuLmg+CisrI2VuZGlmCisrCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrCisrI2lmZGVmIFJUTERf R0xPQkFMCisrIyAgZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAorKyNlbHNlCisrIyAg aWZkZWYgRExfR0xPQkFMCisrIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAorKyMg IGVsc2UKKysjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJMAorKyMgIGVuZGlmCisrI2VuZGlmCisr CisrLyogV2UgbWF5IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1h bmQgbGluZSBpZiB3ZQorKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0 Zm9ybS4gKi8KKysjaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKKysjICBpZmRlZiBSVExEX0xBWlkK KysjICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKKysjICBlbHNlCisrIyAg ICBpZmRlZiBETF9MQVpZCisrIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZ CisrIyAgICBlbHNlCisrIyAgICAgIGlmZGVmIFJUTERfTk9XCisrIyAgICAgICAgZGVmaW5lIExU X0RMTEFaWV9PUl9OT1cJUlRMRF9OT1cKKysjICAgICAgZWxzZQorKyMgICAgICAgIGlmZGVmIERM X05PVworKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCisrIyAgICAg ICAgZWxzZQorKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAorKyMgICAgICAg IGVuZGlmCisrIyAgICAgIGVuZGlmCisrIyAgICBlbmRpZgorKyMgIGVuZGlmCisrI2VuZGlmCisr CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB2b2lkIGV4aXQgKGludCk7CisrI2Vu ZGlmCisrCisrdm9pZCBmbm9yZCgpIHsgaW50IGk9NDI7fQorK2ludCBtYWluICgpCisreworKyAg dm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7Cisr ICBpbnQgc3RhdHVzID0gJGx0X2RsdW5rbm93bjsKKysKKysgIGlmIChzZWxmKQorKyAgICB7Cisr ICAgICAgaWYgKGRsc3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191 c2NvcmU7CisrICAgICAgZWxzZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMgPSAk bHRfZGxuZWVkX3VzY29yZTsKKysgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KKysgICAgfQor KyAgZWxzZQorKyAgICBwdXRzIChkbGVycm9yICgpKTsKKysKKysgICAgZXhpdCAoc3RhdHVzKTsK Kyt9CisrRU9GCisrICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5r XCIiKSA+JjUKKysgIChldmFsICRhY19saW5rKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9IDI+L2Rldi9udWxs OyB0aGVuCisrICAgICguL2NvbmZ0ZXN0OyBleGl0OyApID4mNSAyPi9kZXYvbnVsbAorKyAgICBs dF9zdGF0dXM9JD8KKysgICAgY2FzZSB4JGx0X3N0YXR1cyBpbgorKyAgICAgIHgkbHRfZGxub191 c2NvcmUpIGx0X2N2X2Rsb3Blbl9zZWxmPXllcyA7OworKyAgICAgIHgkbHRfZGxuZWVkX3VzY29y ZSkgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzIDs7CisrICAgICAgeCRsdF9kbHVua25vd258eCopIGx0 X2N2X2Rsb3Blbl9zZWxmPW5vIDs7CisrICAgIGVzYWMKKysgIGVsc2UgOgorKyAgICAjIGNvbXBp bGF0aW9uIGZhaWxlZAorKyAgICBsdF9jdl9kbG9wZW5fc2VsZj1ubworKyAgZmkKKytmaQorK3Jt IC1mciBjb25mdGVzdCoKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRsdF9jdl9kbG9wZW5fc2VsZiIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9kbG9wZW5f c2VsZiIgPiY2OyB9CisrCisrICAgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuX3NlbGYiID0geHll czsgdGhlbgorKyAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFHUz1cIlwk TERGTEFHUyAkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNcIgorKyAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGEgc3RhdGljYWxseSBsaW5rZWQgcHJvZ3Jh bSBjYW4gZGxvcGVuIGl0c2VsZiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBh IHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2x0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYytzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAJICBpZiB0ZXN0ICIkY3Jv c3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisrICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9 Y3Jvc3MKKytlbHNlCisrICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxu ZWVkX3VzY29yZT0yCisrICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgorKyAgY2F0ID4gY29uZnRl c3QuJGFjX2V4dCA8PEVPRgorKyNsaW5lIDExMDcxICJjb25maWd1cmUiCisrI2luY2x1ZGUgImNv bmZkZWZzLmgiCisrCisrI2lmIEhBVkVfRExGQ05fSAorKyNpbmNsdWRlIDxkbGZjbi5oPgorKyNl bmRpZgorKworKyNpbmNsdWRlIDxzdGRpby5oPgorKworKyNpZmRlZiBSVExEX0dMT0JBTAorKyMg IGRlZmluZSBMVF9ETEdMT0JBTAkJUlRMRF9HTE9CQUwKKysjZWxzZQorKyMgIGlmZGVmIERMX0dM T0JBTAorKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQlETF9HTE9CQUwKKysjICBlbHNlCisrIyAg ICBkZWZpbmUgTFRfRExHTE9CQUwJCTAKKysjICBlbmRpZgorKyNlbmRpZgorKworKy8qIFdlIG1h eSBoYXZlIHRvIGRlZmluZSBMVF9ETExBWllfT1JfTk9XIGluIHRoZSBjb21tYW5kIGxpbmUgaWYg d2UKKysgICBmaW5kIG91dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNvbWUgcGxhdGZvcm0uICovCisr I2lmbmRlZiBMVF9ETExBWllfT1JfTk9XCisrIyAgaWZkZWYgUlRMRF9MQVpZCisrIyAgICBkZWZp bmUgTFRfRExMQVpZX09SX05PVwkJUlRMRF9MQVpZCisrIyAgZWxzZQorKyMgICAgaWZkZWYgRExf TEFaWQorKyMgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJRExfTEFaWQorKyMgICAgZWxz ZQorKyMgICAgICBpZmRlZiBSVExEX05PVworKyMgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1Jf Tk9XCVJUTERfTk9XCisrIyAgICAgIGVsc2UKKysjICAgICAgICBpZmRlZiBETF9OT1cKKysjICAg ICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCURMX05PVworKyMgICAgICAgIGVsc2UKKysj ICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCTAKKysjICAgICAgICBlbmRpZgorKyMg ICAgICBlbmRpZgorKyMgICAgZW5kaWYKKysjICBlbmRpZgorKyNlbmRpZgorKworKyNpZmRlZiBf X2NwbHVzcGx1cworK2V4dGVybiAiQyIgdm9pZCBleGl0IChpbnQpOworKyNlbmRpZgorKworK3Zv aWQgZm5vcmQoKSB7IGludCBpPTQyO30KKytpbnQgbWFpbiAoKQorK3sKKysgIHZvaWQgKnNlbGYg PSBkbG9wZW4gKDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1cpOworKyAgaW50IHN0YXR1 cyA9ICRsdF9kbHVua25vd247CisrCisrICBpZiAoc2VsZikKKysgICAgeworKyAgICAgIGlmIChk bHN5bSAoc2VsZiwiZm5vcmQiKSkgICAgICAgc3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOworKyAg ICAgIGVsc2UgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgc3RhdHVzID0gJGx0X2RsbmVlZF91 c2NvcmU7CisrICAgICAgLyogZGxjbG9zZSAoc2VsZik7ICovCisrICAgIH0KKysgIGVsc2UKKysg ICAgcHV0cyAoZGxlcnJvciAoKSk7CisrCisrICAgIGV4aXQgKHN0YXR1cyk7CisrfQorK0VPRgor KyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1Cisr ICAoZXZhbCAkYWNfbGluaykgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVsbDsgdGhlbgorKyAg ICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JjUgMj4vZGV2L251bGwKKysgICAgbHRfc3RhdHVzPSQ/ CisrICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4KKysgICAgICB4JGx0X2Rsbm9fdXNjb3JlKSBsdF9j dl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzIDs7CisrICAgICAgeCRsdF9kbG5lZWRfdXNjb3JlKSBs dF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzIDs7CisrICAgICAgeCRsdF9kbHVua25vd258eCop IGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubyA7OworKyAgICBlc2FjCisrICBlbHNlIDoKKysg ICAgIyBjb21waWxhdGlvbiBmYWlsZWQKKysgICAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPW5v CisrICBmaQorK2ZpCisrcm0gLWZyIGNvbmZ0ZXN0KgorKworKworK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyIgPiY1Cisr JGFzX2VjaG8gIiRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMiID4mNjsgfQorKyAgICBmaQorKwor KyAgICBDUFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1MiCisrICAgIExERkxBR1M9IiRzYXZlX0xERkxB R1MiCisrICAgIExJQlM9IiRzYXZlX0xJQlMiCisrICAgIDs7CisrICBlc2FjCisrCisrICBjYXNl ICRsdF9jdl9kbG9wZW5fc2VsZiBpbgorKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVuX3NlbGY9JGx0 X2N2X2Rsb3Blbl9zZWxmIDs7CisrICAqKSBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93biA7Owor KyAgZXNhYworKworKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIGluCisrICB5ZXN8 bm8pIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9JGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyA7 OworKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duIDs7CisrICBlc2FjCisr ZmkKKysKKysKKysjIFJlcG9ydCB3aGljaCBsaWJyYXJ5IHR5cGVzIHdpbGwgYWN0dWFsbHkgYmUg YnVpbHQKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgbGlidG9vbCBz dXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiBs aWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkY2FuX2J1aWxkX3NoYXJlZCIgPiY1CisrJGFzX2Vj aG8gIiRjYW5fYnVpbGRfc2hhcmVkIiA+JjY7IH0KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuLi4g IiA+JjY7IH0KKyt0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFy ZWQ9bm8KKysKKysjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmll cyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKysjIGFyZSBhbGwgYnVpbHQgZnJvbSBQSUMu CisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0g eWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKysgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisr ICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIKKysgICAgcG9z dGluc3RhbGxfY21kcz0nJFJBTkxJQiAkbGliJworKyAgZmkKKysgIDs7CisrCisrYWl4WzQtOV0q KQorKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRp bWVsaW5raW5nIiA9IG5vIDsgdGhlbgorKyAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMg JiYgZW5hYmxlX3N0YXRpYz1ubworKyAgZmkKKysgICAgOzsKKytlc2FjCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGVuYWJsZV9zaGFyZWQiID4mNQorKyRhc19lY2hvICIk ZW5hYmxlX3NoYXJlZCIgPiY2OyB9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLi4uICIgPiY2OyB9 CisrIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5 ZXMuCisrdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGVuYWJsZV9zdGF0aWMiID4mNQor KyRhc19lY2hvICIkZW5hYmxlX3N0YXRpYyIgPiY2OyB9CisrCisrIyBUaGUgZWxzZSBjbGF1c2Ug c2hvdWxkIG9ubHkgZmlyZSB3aGVuIGJvb3RzdHJhcHBpbmcgdGhlCisrIyBsaWJ0b29sIGRpc3Ry aWJ1dGlvbiwgb3RoZXJ3aXNlIHlvdSBmb3Jnb3QgdG8gc2hpcCBsdG1haW4uc2gKKysjIHdpdGgg eW91ciBwYWNrYWdlLCBhbmQgeW91IHdpbGwgZ2V0IGNvbXBsYWludHMgdGhhdCB0aGVyZSBhcmUK KysjIG5vIHJ1bGVzIHRvIGdlbmVyYXRlIGx0bWFpbi5zaC4KKytpZiB0ZXN0IC1mICIkbHRtYWlu IjsgdGhlbgorKyAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBv cHRpb25zIHdoaWNoIGFsbG93IG91ciBjb21tYW5kcyB0aHJvdWdoCisrICAjIHdpdGhvdXQgcmVt b3ZhbCBvZiBcIGVzY2FwZXMuCisrICBpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsg dGhlbgorKyAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorKyAgZmkKKysgICMgTm93IHF1b3RlIGFs bCB0aGUgdGhpbmdzIHRoYXQgbWF5IGNvbnRhaW4gbWV0YWNoYXJhY3RlcnMgd2hpbGUgYmVpbmcK KysgICMgY2FyZWZ1bCBub3QgdG8gb3ZlcnF1b3RlIHRoZSBBQ19TVUJTVGVkIHZhbHVlcy4gIFdl IHRha2UgY29waWVzIG9mIHRoZQorKyAgIyB2YXJpYWJsZXMgYW5kIHF1b3RlIHRoZSBjb3BpZXMg Zm9yIGdlbmVyYXRpb24gb2YgdGhlIGxpYnRvb2wgc2NyaXB0LgorKyAgZm9yIHZhciBpbiBlY2hv IG9sZF9DQyBvbGRfQ0ZMQUdTIEFSIEFSX0ZMQUdTIEVHUkVQIFJBTkxJQiBMTl9TIExUQ0MgTFRD RkxBR1MgTk0gXAorKyAgICBTRUQgU0hFTEwgU1RSSVAgXAorKyAgICBsaWJuYW1lX3NwZWMgbGli cmFyeV9uYW1lc19zcGVjIHNvbmFtZV9zcGVjIGV4dHJhY3RfZXhwc3ltc19jbWRzIFwKKysgICAg b2xkX3N0cmlwbGliIHN0cmlwbGliIGZpbGVfbWFnaWNfY21kIGZpbmlzaF9jbWRzIGZpbmlzaF9l dmFsIFwKKysgICAgZGVwbGlic19jaGVja19tZXRob2QgcmVsb2FkX2ZsYWcgcmVsb2FkX2NtZHMg bmVlZF9sb2NrcyBcCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wgXAorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90 b19jX25hbWVfYWRkcmVzcyBcCisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYyBcCisrICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzIG9sZF9wb3N0 dW5pbnN0YWxsX2NtZHMgXAorKyAgICBjb21waWxlciBcCisrICAgIENDIFwKKysgICAgTEQgXAor KyAgICBsdF9wcm9nX2NvbXBpbGVyX3dsIFwKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWMgXAor KyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyBcCisrICAgIGx0X3Byb2dfY29tcGlsZXJfbm9f YnVpbHRpbl9mbGFnIFwKKysgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjIFwKKysgICAgdGhy ZWFkX3NhZmVfZmxhZ19zcGVjIFwKKysgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgXAorKyAg ICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzIFwKKysgICAgb2xkX2FyY2hpdmVf Y21kcyBcCisrICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMgXAorKyAgICBwcmVkZXBfb2Jq ZWN0cyBcCisrICAgIHBvc3RkZXBfb2JqZWN0cyBcCisrICAgIHByZWRlcHMgXAorKyAgICBwb3N0 ZGVwcyBcCisrICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCBcCisrICAgIGNvbXBpbGVyX2xp Yl9zZWFyY2hfZGlycyBcCisrICAgIGFyY2hpdmVfY21kcyBcCisrICAgIGFyY2hpdmVfZXhwc3lt X2NtZHMgXAorKyAgICBwb3N0aW5zdGFsbF9jbWRzIFwKKysgICAgcG9zdHVuaW5zdGFsbF9jbWRz IFwKKysgICAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMgXAorKyAgICBhbGxvd191bmRl ZmluZWRfZmxhZyBcCisrICAgIG5vX3VuZGVmaW5lZF9mbGFnIFwKKysgICAgZXhwb3J0X3N5bWJv bHNfY21kcyBcCisrICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgXAorKyAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX2xkIFwKKysgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBc CisrICAgIGhhcmRjb2RlX2F1dG9tYXRpYyBcCisrICAgIG1vZHVsZV9jbWRzIFwKKysgICAgbW9k dWxlX2V4cHN5bV9jbWRzIFwKKysgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX28gXAorKyAgICBm aXhfc3JjZmlsZV9wYXRoIFwKKysgICAgZXhjbHVkZV9leHBzeW1zIFwKKysgICAgaW5jbHVkZV9l eHBzeW1zOyBkbworKworKyAgICBjYXNlICR2YXIgaW4KKysgICAgb2xkX2FyY2hpdmVfY21kcyB8 IFwKKysgICAgb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyB8IFwKKysgICAgYXJjaGl2ZV9jbWRz IHwgXAorKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzIHwgXAorKyAgICBtb2R1bGVfY21kcyB8IFwK KysgICAgbW9kdWxlX2V4cHN5bV9jbWRzIHwgXAorKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5 bXNfY21kcyB8IFwKKysgICAgZXhwb3J0X3N5bWJvbHNfY21kcyB8IFwKKysgICAgZXh0cmFjdF9l eHBzeW1zX2NtZHMgfCByZWxvYWRfY21kcyB8IGZpbmlzaF9jbWRzIHwgXAorKyAgICBwb3N0aW5z dGFsbF9jbWRzIHwgcG9zdHVuaW5zdGFsbF9jbWRzIHwgXAorKyAgICBvbGRfcG9zdGluc3RhbGxf Y21kcyB8IG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgfCBcCisrICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYyB8IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjKQorKyAgICAgICMgRG91YmxlLXF1 b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KKysgICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwk ZWNobyBcIlhcJCR2YXJcIiB8IFwkWHNlZCAtZSBcIlwkZG91YmxlX3F1b3RlX3N1YnN0XCIgLWUg XCJcJHNlZF9xdW90ZV9zdWJzdFwiIC1lIFwiXCRkZWxheV92YXJpYWJsZV9zdWJzdFwiXGBcXFwi IgorKyAgICAgIDs7CisrICAgICopCisrICAgICAgZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8g XCJYXCQkdmFyXCIgfCBcJFhzZWQgLWUgXCJcJHNlZF9xdW90ZV9zdWJzdFwiXGBcXFwiIgorKyAg ICAgIDs7CisrICAgIGVzYWMKKysgIGRvbmUKKysKKysgIGNhc2UgJGx0X2VjaG8gaW4KKysgICon XCQwIC0tZmFsbGJhY2stZWNobyInKQorKyAgICBsdF9lY2hvPWAkZWNobyAiWCRsdF9lY2hvIiB8 ICRYc2VkIC1lICdzL1xcXFxcXFwkMCAtLWZhbGxiYWNrLWVjaG8iJC8kMCAtLWZhbGxiYWNrLWVj aG8iLydgCisrICAgIDs7CisrICBlc2FjCisrCisrY2ZnZmlsZT0iJHtvZmlsZX1UIgorKyAgdHJh cCAiJHJtIFwiJGNmZ2ZpbGVcIjsgZXhpdCAxIiAxIDIgMTUKKysgICRybSAtZiAiJGNmZ2ZpbGUi CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgJG9maWxlIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyAkb2ZpbGUiID4mNjt9CisrCisrICBjYXQgPDxfX0VP Rl9fID4+ICIkY2ZnZmlsZSIKKysjISAkU0hFTEwKKysKKysjIGAkZWNobyAiJGNmZ2ZpbGUiIHwg c2VkICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1 cHBvcnQgc2VydmljZXMuCisrIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSAkUFJPR1JBTSAo R05VICRQQUNLQUdFICRWRVJTSU9OJFRJTUVTVEFNUCkKKysjIE5PVEU6IENoYW5nZXMgbWFkZSB0 byB0aGlzIGZpbGUgd2lsbCBiZSBsb3N0OiBsb29rIGF0IGx0bWFpbi5zaC4KKysjCisrIyBDb3B5 cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMs IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0b29sOgorKyMgT3Jp Z2luYWxseSBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYK KysjCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKysjIFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VCisrIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKysjCisr IyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0 aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRv Y29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2FtZSBkaXN0cmlidXRpb24g dGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisrCisrIyBB IHNlZCBwcm9ncmFtIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0LgorK1NFRD0kbHRfU0VE CisrCisrIyBTZWQgdGhhdCBoZWxwcyB1cyBhdm9pZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyBl Y2hvKDEpIG9wdGlvbnMgbGlrZSAtbi4KKytYc2VkPSIkU0VEIC1lIDFzL15YLy8iCisrCisrIyBU aGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0 byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVs bCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworKyMgVGhlIG5hbWVzIG9mIHRoZSB0YWdnZWQgY29u ZmlndXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgorK2F2YWlsYWJsZV90YWdzPQor KworKyMgIyMjIEJFR0lOIExJQlRPT0wgQ09ORklHCisrCisrIyBMaWJ0b29sIHdhcyBjb25maWd1 cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFg OgorKworKyMgU2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4KKytTSEVM TD0kbHRfU0hFTEwKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJp ZXMuCisrYnVpbGRfbGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVkCisrCisrIyBXaGV0aGVyIG9y IG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLgorK2J1aWxkX29sZF9saWJzPSRlbmFibGVf c3RhdGljCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFy ZWQgbGlicmFyaWVzLgorK2J1aWxkX2xpYnRvb2xfbmVlZF9sYz0kYXJjaGl2ZV9jbWRzX25lZWRf bGMKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4gcnVu dGltZSBsaWJzIGFyZSBzdGF0aWMKKythbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVu dGltZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMKKysKKysjIFdoZXRoZXIg b3Igbm90IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbi4KKytmYXN0X2luc3RhbGw9 JGVuYWJsZV9mYXN0X2luc3RhbGwKKysKKysjIFRoZSBob3N0IHN5c3RlbS4KKytob3N0X2FsaWFz PSRob3N0X2FsaWFzCisraG9zdD0kaG9zdAorK2hvc3Rfb3M9JGhvc3Rfb3MKKysKKysjIFRoZSBi dWlsZCBzeXN0ZW0uCisrYnVpbGRfYWxpYXM9JGJ1aWxkX2FsaWFzCisrYnVpbGQ9JGJ1aWxkCisr YnVpbGRfb3M9JGJ1aWxkX29zCisrCisrIyBBbiBlY2hvIHByb2dyYW0gdGhhdCBkb2VzIG5vdCBp bnRlcnByZXQgYmFja3NsYXNoZXMuCisrZWNobz0kbHRfZWNobworKworKyMgVGhlIGFyY2hpdmVy LgorK0FSPSRsdF9BUgorK0FSX0ZMQUdTPSRsdF9BUl9GTEFHUworKworKyMgQSBDIGNvbXBpbGVy LgorK0xUQ0M9JGx0X0xUQ0MKKysKKysjIExUQ0MgY29tcGlsZXIgZmxhZ3MuCisrTFRDRkxBR1M9 JGx0X0xUQ0ZMQUdTCisrCisrIyBBIGxhbmd1YWdlLXNwZWNpZmljIGNvbXBpbGVyLgorK0NDPSRs dF9jb21waWxlcgorKworKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgQyBjb21waWxlcj8KKyt3 aXRoX2djYz0kR0NDCisrCisrIyBBbiBFUkUgbWF0Y2hlci4KKytFR1JFUD0kbHRfRUdSRVAKKysK KysjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJpZXMuCisrTEQ9JGx0X0xECisrCisr IyBXaGV0aGVyIHdlIG5lZWQgaGFyZCBvciBzb2Z0IGxpbmtzLgorK0xOX1M9JGx0X0xOX1MKKysK KysjIEEgQlNELWNvbXBhdGlibGUgbm0gcHJvZ3JhbS4KKytOTT0kbHRfTk0KKysKKysjIEEgc3lt Ym9sIHN0cmlwcGluZyBwcm9ncmFtCisrU1RSSVA9JGx0X1NUUklQCisrCisrIyBVc2VkIHRvIGV4 YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zICJmaWxlIgorK01BR0lD X0NNRD0kTUFHSUNfQ01ECisrCisrIyBVc2VkIG9uIGN5Z3dpbjogRExMIGNyZWF0aW9uIHByb2dy YW0uCisrRExMVE9PTD0iJERMTFRPT0wiCisrCisrIyBVc2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1 bXBlci4KKytPQkpEVU1QPSIkT0JKRFVNUCIKKysKKysjIFVzZWQgb24gY3lnd2luOiBhc3NlbWJs ZXIuCisrQVM9IiRBUyIKKysKKysjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250 YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KKytvYmpkaXI9JG9iamRpcgorKworKyMgSG93 IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KKytyZWxvYWRfZmxhZz0kbHRfcmVs b2FkX2ZsYWcKKytyZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKKysKKysjIEhvdyB0byBwYXNz IGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCisrd2w9JGx0X2x0X3Byb2dfY29t cGlsZXJfd2wKKysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8iKS4KKytvYmpl eHQ9IiRhY19vYmpleHQiCisrCisrIyBPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIiku CisrbGliZXh0PSIkbGliZXh0IgorKworKyMgU2hhcmVkIGxpYnJhcnkgc3VmZml4IChub3JtYWxs eSAiLnNvIikuCisrc2hyZXh0X2NtZHM9JyRzaHJleHRfY21kcycKKysKKysjIEV4ZWN1dGFibGUg ZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KKytleGVleHQ9IiRleGVleHQiCisrCisrIyBBZGRp dGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCisrcGlj X2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljCisrcGljX21vZGU9JHBpY19tb2RlCisrCisr IyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNvbW1hbmQ/CisrbWF4X2NtZF9sZW49 JGx0X2N2X3N5c19tYXhfY21kX2xlbgorKworKyMgRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNs eSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPworK2NvbXBpbGVyX2Nfbz0kbHRfbHRfY3ZfcHJv Z19jb21waWxlcl9jX28KKysKKysjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBp bGF0aW9uPworK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKKysKKysjIERvIHdlIG5lZWQgdGhl IGxpYiBwcmVmaXggZm9yIG1vZHVsZXM/CisrbmVlZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVm aXgKKysKKysjIERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/CisrbmVlZF92ZXJz aW9uPSRuZWVkX3ZlcnNpb24KKysKKysjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRlZC4KKytk bG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgorKworKyMgV2hldGhlciBkbG9wZW4gb2YgcHJv Z3JhbXMgaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKKysK KysjIFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBv cnRlZC4KKytkbG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMKKysK KysjIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCisrbGlua19zdGF0 aWNfZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9zdGF0aWMKKysKKysjIENvbXBpbGVyIGZsYWcg dG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCisrbm9fYnVpbHRpbl9mbGFnPSRsdF9sdF9w cm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZworKworKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxv dyByZWZsZXhpdmUgZGxvcGVucy4KKytleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9y dF9keW5hbWljX2ZsYWdfc3BlYworKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFy ZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgorK3dob2xlX2FyY2hpdmVfZmxhZ19z cGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYworKworKyMgQ29tcGlsZXIgZmxhZyB0byBn ZW5lcmF0ZSB0aHJlYWQtc2FmZSBvYmplY3RzLgorK3RocmVhZF9zYWZlX2ZsYWdfc3BlYz0kbHRf dGhyZWFkX3NhZmVfZmxhZ19zcGVjCisrCisrIyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4KKyt2 ZXJzaW9uX3R5cGU9JHZlcnNpb25fdHlwZQorKworKyMgRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBw cmVmaXguCisrbGlibmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKKysKKysjIExpc3Qgb2YgYXJj aGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlu a3MuCisrIyBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdp dGggLWxOQU1FLgorK2xpYnJhcnlfbmFtZXNfc3BlYz0kbHRfbGlicmFyeV9uYW1lc19zcGVjCisr CisrIyBUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhl IHJlYWwgbmFtZS4KKytzb25hbWVfc3BlYz0kbHRfc29uYW1lX3NwZWMKKysKKysjIENvbW1hbmRz IHVzZWQgdG8gYnVpbGQgYW5kIGluc3RhbGwgYW4gb2xkLXN0eWxlIGFyY2hpdmUuCisrUkFOTElC PSRsdF9SQU5MSUIKKytvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzCisrb2xk X3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRzCisrb2xkX3Bvc3R1bmlu c3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcworKworKyMgQ3JlYXRlIGFuIG9s ZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9t X25ld19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzCisrCisrIyBDcmVhdGUgYSB0 ZW1wb3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFy Y2hpdmUuCisrb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zy b21fZXhwc3ltc19jbWRzCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxs IGEgc2hhcmVkIGFyY2hpdmUuCisrYXJjaGl2ZV9jbWRzPSRsdF9hcmNoaXZlX2NtZHMKKythcmNo aXZlX2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRzCisrcG9zdGluc3RhbGxfY21k cz0kbHRfcG9zdGluc3RhbGxfY21kcworK3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfcG9zdHVuaW5z dGFsbF9jbWRzCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxl IChhc3N1bWVkIHNhbWUgYXMgYWJvdmUgaWYgZW1wdHkpCisrbW9kdWxlX2NtZHM9JGx0X21vZHVs ZV9jbWRzCisrbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHMKKysKKysj IENvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllcy4KKytvbGRfc3RyaXBsaWI9JGx0X29sZF9zdHJp cGxpYgorK3N0cmlwbGliPSRsdF9zdHJpcGxpYgorKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNl IGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKKysjIHNoYXJlZCBs aWJyYXJ5LgorK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0cworKworKyMgRGVwZW5k ZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUg YQorKyMgc2hhcmVkIGxpYnJhcnkuCisrcG9zdGRlcF9vYmplY3RzPSRsdF9wb3N0ZGVwX29iamVj dHMKKysKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgdGhlIG9iamVjdHMgYmVpbmcg bGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGlicmFyeS4KKytwcmVkZXBzPSRsdF9wcmVk ZXBzCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcg bGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGlicmFyeS4KKytwb3N0ZGVwcz0kbHRfcG9z dGRlcHMKKysKKysjIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdo ZW4gY3JlYXRpbmcgYSBzaGFyZWQKKysjIGxpYnJhcnkKKytjb21waWxlcl9saWJfc2VhcmNoX2Rp cnM9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycworKworKyMgVGhlIGxpYnJhcnkgc2VhcmNo IHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKKysjIGEg c2hhcmVkIGxpYnJhcnkuCisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9jb21waWxlcl9s aWJfc2VhcmNoX3BhdGgKKysKKysjIE1ldGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBs aWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgorK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9k ZXBsaWJzX2NoZWNrX21ldGhvZAorKworKyMgQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2No ZWNrX21ldGhvZCA9PSBmaWxlX21hZ2ljLgorK2ZpbGVfbWFnaWNfY21kPSRsdF9maWxlX21hZ2lj X2NtZAorKworKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZp bmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93 X3VuZGVmaW5lZF9mbGFnCisrCisrIyBGbGFnIHRoYXQgZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1i b2xzLgorK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxhZworKworKyMgQ29t bWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEg ZGlyZWN0b3J5LgorK2ZpbmlzaF9jbWRzPSRsdF9maW5pc2hfY21kcworKworKyMgU2FtZSBhcyBh Ym92ZSwgYnV0IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBiZSBldmFsZWQgYnV0IG5vdCBz aG93bi4KKytmaW5pc2hfZXZhbD0kbHRfZmluaXNoX2V2YWwKKysKKysjIFRha2UgdGhlIG91dHB1 dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFtZXMu CisrZ2xvYmFsX3N5bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlCisr CisrIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xhcmF0aW9u CisrZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9f Y2RlY2wKKysKKysjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJl c3MgcGFpcgorK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9JGx0X2x0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCisrCisrIyBUaGlzIGlzIHRoZSBzaGFyZWQg bGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGUuCisrcnVucGF0aF92YXI9JHJ1bnBhdGhfdmFy CisrCisrIyBUaGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlLgorK3NobGli cGF0aF92YXI9JHNobGlicGF0aF92YXIKKysKKysjIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZv cmUgdGhlIGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8KKytzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aAorKworKyMgSG93IHRvIGhh cmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUuCisraGFyZGNv ZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb24KKysKKysjIFdoZXRoZXIgd2Ugc2hvdWxkIGhhcmRj b2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXMuCisraGFyZGNvZGVfaW50b19saWJzPSRo YXJkY29kZV9pbnRvX2xpYnMKKysKKysjIEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBh IGJpbmFyeSBkdXJpbmcgbGlua2luZy4KKysjIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJk aXIgZG9lcyBub3QgZXhpc3QuCisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYworKworKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZs YWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50bworKyMgYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcu IFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcworKyMgbm90IGV4aXN0LgorK2hh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf bGQKKysKKysjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAtcnBhdGggZmxhZyB3aXRoIGEgc2Vw YXJhdGVkIGFyZ3VtZW50LgorK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3IKKysKKysjIFNldCB0byB5ZXMgaWYgdXNpbmcgRElSL2xpYk5BTUUk e3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKKysjIHJl c3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVfZGlyZWN0PSRoYXJkY29kZV9kaXJlY3QKKysKKysj IFNldCB0byB5ZXMgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNv ZGVzIERJUiBpbnRvIHRoZQorKyMgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9taW51c19M PSRoYXJkY29kZV9taW51c19MCisrCisrIyBTZXQgdG8geWVzIGlmIHVzaW5nIFNITElCUEFUSF9W QVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50bworKyMgdGhlIHJlc3VsdGlu ZyBiaW5hcnkuCisraGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cgorKworKyMgU2V0IHRvIHllcyBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRp Y2FsbHkgaGFyZGNvZGVzIERJUiBpbnRvIHRoZSBsaWJyYXJ5CisrIyBhbmQgYWxsIHN1YnNlcXVl bnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQgYWdhaW5zdCBpdC4KKytoYXJkY29k ZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpYworKworKyMgVmFyaWFibGVzIHdob3NlIHZh bHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5kCisrIyBy ZXN0b3JlZCBhdCByZWxpbmsgdGltZS4KKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZh cmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIgorKworKyMgV2hldGhlciBsaWJ0b29sIG11c3QgbGlu ayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgorK2xpbmtf YWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnMKKysKKysjIENvbXBpbGUtdGltZSBzeXN0ZW0g c2VhcmNoIHBhdGggZm9yIGxpYnJhcmllcworK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0kbHRf c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCisrCisrIyBSdW4tdGltZSBzeXN0ZW0gc2VhcmNoIHBh dGggZm9yIGxpYnJhcmllcworK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYworKworKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2Zp bGUgZm9yIHRoZSBjb21waWxlci4KKytmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9w YXRoCisrCisrIyBTZXQgdG8geWVzIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkLgor K2Fsd2F5c19leHBvcnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9zeW1ib2xzCisrCisrIyBUaGUg Y29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgorK2V4cG9ydF9zeW1ib2xzX2NtZHM9 JGx0X2V4cG9ydF9zeW1ib2xzX2NtZHMKKysKKysjIFRoZSBjb21tYW5kcyB0byBleHRyYWN0IHRo ZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCisrZXh0cmFjdF9l eHBzeW1zX2NtZHM9JGx0X2V4dHJhY3RfZXhwc3ltc19jbWRzCisrCisrIyBTeW1ib2xzIHRoYXQg c2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgorK2V4Y2x1ZGVf ZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zCisrCisrIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdh eXMgYmUgZXhwb3J0ZWQuCisraW5jbHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5bXMKKysK KysjICMjIyBFTkQgTElCVE9PTCBDT05GSUcKKysKKytfX0VPRl9fCisrCisrCisrICBjYXNlICRo b3N0X29zIGluCisrICBhaXgzKikKKysgICAgY2F0IDw8XEVPRiA+PiAiJGNmZ2ZpbGUiCisrCisr IyBBSVggc29tZXRpbWVzIGhhcyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3Jh bS4gIEZvciBzb21lCisrIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZp cm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCisrIyB2YW5pc2ggaW4gYSBwdWZmIG9mIHNt b2tlLgorK2lmIHRlc3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgorKyAg Q09MTEVDVF9OQU1FUz0KKysgIGV4cG9ydCBDT0xMRUNUX05BTUVTCisrZmkKKytFT0YKKysgICAg OzsKKysgIGVzYWMKKysKKysgICMgV2UgdXNlIHNlZCBpbnN0ZWFkIG9mIGNhdCBiZWNhdXNlIGJh c2ggb24gREpHUFAgZ2V0cyBjb25mdXNlZCBpZgorKyAgIyBpZiBmaW5kcyBtaXhlZCBDUi9MRiBh bmQgTEYtb25seSBsaW5lcy4gIFNpbmNlIHNlZCBvcGVyYXRlcyBpbgorKyAgIyB0ZXh0IG1vZGUs IGl0IHByb3Blcmx5IGNvbnZlcnRzIGxpbmVzIHRvIENSL0xGLiAgVGhpcyBiYXNoIHByb2JsZW0K KysgICMgaXMgcmVwb3J0ZWRseSBmaXhlZCwgYnV0IHdoeSBub3QgcnVuIG9uIG9sZCB2ZXJzaW9u cyB0b28/CisrICBzZWQgJyRxJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiB8fCAocm0gLWYgIiRj ZmdmaWxlIjsgZXhpdCAxKQorKworKyAgbXYgLWYgIiRjZmdmaWxlIiAiJG9maWxlIiB8fCBcCisr ICAgIChybSAtZiAiJG9maWxlIiAmJiBjcCAiJGNmZ2ZpbGUiICIkb2ZpbGUiICYmIHJtIC1mICIk Y2ZnZmlsZSIpCisrICBjaG1vZCAreCAiJG9maWxlIgorKworK2Vsc2UKKysgICMgSWYgdGhlcmUg aXMgbm8gTWFrZWZpbGUgeWV0LCB3ZSByZWx5IG9uIGEgbWFrZSBydWxlIHRvIGV4ZWN1dGUKKysg ICMgYGNvbmZpZy5zdGF0dXMgLS1yZWNoZWNrJyB0byByZXJ1biB0aGVzZSB0ZXN0cyBhbmQgY3Jl YXRlIHRoZQorKyAgIyBsaWJ0b29sIHNjcmlwdCB0aGVuLgorKyAgbHRtYWluX2luPWBlY2hvICRs dG1haW4gfCBzZWQgLWUgJ3MvXC5zaCQvLmluLydgCisrICBpZiB0ZXN0IC1mICIkbHRtYWluX2lu IjsgdGhlbgorKyAgICB0ZXN0IC1mIE1ha2VmaWxlICYmIG1ha2UgIiRsdG1haW4iCisrICBmaQor K2ZpCisrCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBp bGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19s aW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19j b21waWxlcl9nbnUKKysKKytDQz0iJGx0X3NhdmVfQ0MiCisrCisrCisrIyBDaGVjayB3aGV0aGVy IC0td2l0aC10YWdzIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfdGFncytzZXR9IiA9IHNl dDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF90YWdzOyB0YWduYW1lcz0iJHdpdGh2YWwiCisrZmkK KysKKysKKytpZiB0ZXN0IC1mICIkbHRtYWluIiAmJiB0ZXN0IC1uICIkdGFnbmFtZXMiOyB0aGVu CisrICBpZiB0ZXN0ICEgLWYgIiR7b2ZpbGV9IjsgdGhlbgorKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogV0FSTklORzogb3V0cHV0IGZpbGUgXGAkb2ZpbGUnIGRvZXMgbm90IGV4aXN0 IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBvdXRwdXQgZmlsZSBcYCRvZmlsZScg ZG9lcyBub3QgZXhpc3QiID4mMjt9CisrICBmaQorKworKyAgaWYgdGVzdCAteiAiJExUQ0MiOyB0 aGVuCisrICAgIGV2YWwgImAkU0hFTEwgJHtvZmlsZX0gLS1jb25maWcgfCBncmVwICdeTFRDQz0n YCIKKysgICAgaWYgdGVzdCAteiAiJExUQ0MiOyB0aGVuCisrICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFdBUk5JTkc6IG91dHB1dCBmaWxlIFxgJG9maWxlJyBkb2VzIG5vdCBsb29r IGxpa2UgYSBsaWJ0b29sIHNjcmlwdCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog b3V0cHV0IGZpbGUgXGAkb2ZpbGUnIGRvZXMgbm90IGxvb2sgbGlrZSBhIGxpYnRvb2wgc2NyaXB0 IiA+JjI7fQorKyAgICBlbHNlCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdB Uk5JTkc6IHVzaW5nIFxgTFRDQz0kTFRDQycsIGV4dHJhY3RlZCBmcm9tIFxgJG9maWxlJyIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgXGBMVENDPSRMVENDJywgZXh0cmFj dGVkIGZyb20gXGAkb2ZpbGUnIiA+JjI7fQorKyAgICBmaQorKyAgZmkKKysgIGlmIHRlc3QgLXog IiRMVENGTEFHUyI7IHRoZW4KKysgICAgZXZhbCAiYCRTSEVMTCAke29maWxlfSAtLWNvbmZpZyB8 IGdyZXAgJ15MVENGTEFHUz0nYCIKKysgIGZpCisrCisrICAjIEV4dHJhY3QgbGlzdCBvZiBhdmFp bGFibGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIGluICRvZmlsZS4KKysgICMgTm90ZSB0aGF0IHRo aXMgYXNzdW1lcyB0aGUgZW50aXJlIGxpc3QgaXMgb24gb25lIGxpbmUuCisrICBhdmFpbGFibGVf dGFncz1gZ3JlcCAiXmF2YWlsYWJsZV90YWdzPSIgIiR7b2ZpbGV9IiB8ICRTRUQgLWUgJ3MvYXZh aWxhYmxlX3RhZ3M9XCguKiRcKS9cMS8nIC1lICdzL1wiLy9nJ2AKKysKKysgIGx0X3NhdmVfaWZz PSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgorKyAgZm9yIHRhZ25hbWUgaW4g JHRhZ25hbWVzOyBkbworKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgIyBDaGVjayB3aGV0 aGVyIHRhZ25hbWUgY29udGFpbnMgb25seSB2YWxpZCBjaGFyYWN0ZXJzCisrICAgIGNhc2UgYCRl Y2hvICJYJHRhZ25hbWUiIHwgJFhzZWQgLWUgJ3M6Wy1fQUJDREVGR0hJSktMTU5PUFFSU1RVVldY WVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejEyMzQ1Njc4OTAsL106OmcnYCBpbgorKyAgICAi IikgOzsKKysgICAgKikgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZh bGlkIHRhZyBuYW1lOiAkdGFnbmFtZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGlu dmFsaWQgdGFnIG5hbWU6ICR0YWduYW1lIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQorKwk7OworKyAgICBlc2FjCisrCisrICAgIGlmIGdyZXAgIl4jICMjIyBCRUdJTiBMSUJU T09MIFRBRyBDT05GSUc6ICR0YWduYW1lJCIgPCAiJHtvZmlsZX0iID4gL2Rldi9udWxsCisrICAg IHRoZW4KKysgICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogdGFnIG5h bWUgXCIkdGFnbmFtZVwiIGFscmVhZHkgZXhpc3RzIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogdGFnIG5hbWUgXCIkdGFnbmFtZVwiIGFscmVhZHkgZXhpc3RzIiA+JjI7fQorKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICBmaQorKworKyAgICAjIFVwZGF0ZSB0aGUgbGlz dCBvZiBhdmFpbGFibGUgdGFncy4KKysgICAgaWYgdGVzdCAtbiAiJHRhZ25hbWUiOyB0aGVuCisr ICAgICAgZWNobyBhcHBlbmRpbmcgY29uZmlndXJhdGlvbiB0YWcgXCIkdGFnbmFtZVwiIHRvICRv ZmlsZQorKworKyAgICAgIGNhc2UgJHRhZ25hbWUgaW4KKysgICAgICBDWFgpCisrCWlmIHRlc3Qg LW4gIiRDWFgiICYmICggdGVzdCAiWCRDWFgiICE9ICJYbm8iICYmCisrCSAgICAoICh0ZXN0ICJY JENYWCIgPSAiWGcrKyIgJiYgYGcrKyAtdiA+L2Rldi9udWxsIDI+JjFgICkgfHwKKysJICAgICh0 ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgorKwkgIGFjX2V4dD1jcHAKKythY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwor KworKworK2FyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubworK2FsbG93X3VuZGVmaW5lZF9mbGFn X0NYWD0KKythbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPW5vCisrYXJjaGl2ZV9leHBzeW1fY21k c19DWFg9CisrZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0KKytoYXJkY29kZV9kaXJlY3Rf Q1hYPW5vCisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9CisraGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19sZF9DWFg9CisraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9CisraGFy ZGNvZGVfbWludXNfTF9DWFg9bm8KKytoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD11bnN1cHBv cnRlZAorK2hhcmRjb2RlX2F1dG9tYXRpY19DWFg9bm8KKyttb2R1bGVfY21kc19DWFg9CisrbW9k dWxlX2V4cHN5bV9jbWRzX0NYWD0KKytsaW5rX2FsbF9kZXBsaWJzX0NYWD11bmtub3duCisrb2xk X2FyY2hpdmVfY21kc19DWFg9JG9sZF9hcmNoaXZlX2NtZHMKKytub191bmRlZmluZWRfZmxhZ19D WFg9Cisrd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQorK2VuYWJsZV9zaGFyZWRfd2l0aF9z dGF0aWNfcnVudGltZXNfQ1hYPW5vCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3Jl IGFuZCBhZnRlciB0aGUgb2JqZWN0IGJlaW5nIGxpbmtlZDoKKytwcmVkZXBfb2JqZWN0c19DWFg9 CisrcG9zdGRlcF9vYmplY3RzX0NYWD0KKytwcmVkZXBzX0NYWD0KKytwb3N0ZGVwc19DWFg9Cisr Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0KKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnNf Q1hYPQorKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDKysgdGVzdCBzb3VyY2VzLgor K2FjX2V4dD1jcHAKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQysr IHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK29iamV4dF9DWFg9JG9iamV4dAorKworKyMgQ29k ZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisrbHRfc2ltcGxlX2NvbXBpbGVf dGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgorKworKyMgQ29kZSB0byBiZSB1c2Vk IGluIHNpbXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFp bihpbnQsIGNoYXIgKltdKSB7IHJldHVybigwKTsgfScKKysKKysjIGx0bWFpbiBvbmx5IHVzZXMg JENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisr CisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KKytMVENDPSR7TFRD Qy0iJENDIn0KKysKKysjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVz ZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9CisrCisrIyBBbGxvdyBD QyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytjb21waWxlcj0kQ0MKKysK KysKKysjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorK2Fj X291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90 ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9k ZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2NvbXBp bGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRybSBjb25mdGVzdCoKKysKKyth Y19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVz dF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251 bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9saW5rZXJfYm9p bGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCisrJHJtIC1yIGNvbmZ0ZXN0KgorKworKworKyMg QWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisrbHRfc2F2ZV9D Qz0kQ0MKKytsdF9zYXZlX0xEPSRMRAorK2x0X3NhdmVfR0NDPSRHQ0MKKytHQ0M9JEdYWAorK2x0 X3NhdmVfd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCisrbHRfc2F2ZV9wYXRoX0xEPSRsdF9jdl9w YXRoX0xECisraWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4eCtzZXR9IjsgdGhlbgor KyAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkY3h4CisrZWxzZQorKyAgJGFz X3Vuc2V0IGx0X2N2X3Byb2dfZ251X2xkCisrZmkKKytpZiB0ZXN0IC1uICIke2x0X2N2X3BhdGhf TERDWFgrc2V0fSI7IHRoZW4KKysgIGx0X2N2X3BhdGhfTEQ9JGx0X2N2X3BhdGhfTERDWFgKKytl bHNlCisrICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9MRAorK2ZpCisrdGVzdCAteiAiJHtMRENYWCtz ZXR9IiB8fCBMRD0kTERDWFgKKytDQz0ke0NYWC0iYysrIn0KKytjb21waWxlcj0kQ0MKKytjb21w aWxlcl9DWFg9JENDCisrZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCisrICBjYXNlICRj Y190ZW1wIGluCisrICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwgKltcXC9d Y2NhY2hlICkgOzsKKysgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9d cHVyaWZ5ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAqKSBicmVhazs7CisrICBlc2FjCisrZG9u ZQorK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAt ZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorKworKworKyMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2Vw dGlvbiB3ZW4gY29tcGlsaW5nIEMrKyBjb2RlLCBzbyBzZXQgdGhlCisrIyBub19idWlsdGluX2Zs YWcgc2VwYXJhdGVseQorK2lmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICBsdF9wcm9nX2Nv bXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9JyAtZm5vLWJ1aWx0aW4nCisrZWxzZQorKyAgbHRf cHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYPQorK2ZpCisrCisraWYgdGVzdCAiJEdY WCIgPSB5ZXM7IHRoZW4KKysgICMgU2V0IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1cmF0aW9u CisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nbnUtbGQgd2FzIGdpdmVuLgorK2lmIHRl c3QgIiR7d2l0aF9nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhfZ251 X2xkOyB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXMKKytlbHNlCisrICB3 aXRoX2dudV9sZD1ubworK2ZpCisrCisrYWNfcHJvZz1sZAorK2lmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCisrICAjIENoZWNrIGlmIGdjYyAtcHJpbnQtcHJvZy1uYW1lPWxkIGdpdmVzIGEgcGF0 aC4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbGQgdXNlZCBi eSAkQ0MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQy4uLiAi ID4mNjsgfQorKyAgY2FzZSAkaG9zdCBpbgorKyAgKi0qLW1pbmd3KikKKysgICAgIyBnY2MgbGVh dmVzIGEgdHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJuIHdoaWNoIHVwc2V0cyBtaW5ndworKyAgICBh Y19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjUgfCB0ciAtZCAnXDAxNSdgIDs7 CisrICAqKQorKyAgICBhY19wcm9nPWAoJENDIC1wcmludC1wcm9nLW5hbWU9bGQpIDI+JjVgIDs7 CisrICBlc2FjCisrICBjYXNlICRhY19wcm9nIGluCisrICAgICMgQWNjZXB0IGFic29sdXRlIHBh dGhzLgorKyAgICBbXFwvXSogfCA/OltcXC9dKikKKysgICAgICByZV9kaXJlbHQ9Jy9bXi9dW14v XSovXC5cLi8nCisrICAgICAgIyBDYW5vbmljYWxpemUgdGhlIHBhdGhuYW1lIG9mIGxkCisrICAg ICAgYWNfcHJvZz1gZWNobyAkYWNfcHJvZ3wgJFNFRCAncyVcXFxcJS8lZydgCisrICAgICAgd2hp bGUgZWNobyAkYWNfcHJvZyB8IGdyZXAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+JjE7IGRv CisrCWFjX3Byb2c9YGVjaG8gJGFjX3Byb2d8ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJgCisrICAg ICAgZG9uZQorKyAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9nIgorKyAgICAgIDs7 CisrICAiIikKKysgICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2lu ZyBHQ0MuCisrICAgIGFjX3Byb2c9bGQKKysgICAgOzsKKysgICopCisrICAgICMgSWYgaXQgaXMg cmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQgaW4gUEFUSC4KKysgICAgd2l0 aF9nbnVfbGQ9dW5rbm93bgorKyAgICA7OworKyAgZXNhYworK2VsaWYgdGVzdCAiJHdpdGhfZ251 X2xkIiA9IHllczsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBHTlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBHTlUgbGQuLi4gIiA+ JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y IG5vbi1HTlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBub24tR05VIGxkLi4u ICIgPiY2OyB9CisrZmkKKytpZiB0ZXN0ICIke2x0X2N2X3BhdGhfTEQrc2V0fSIgPSBzZXQ7IHRo ZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAteiAi JExEIjsgdGhlbgorKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisr ICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbworKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAg dGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysgICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8k YWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0aGVuCisr ICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKKysgICAgICAjIENoZWNrIHRv IHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24s CisrICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZhcmlhbnRzIG9mIEdOVSBsZCBvbmx5IGFj Y2VwdCAtdi4KKysgICAgICAjIEJyZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBHTlUvbm9uLUdOVSBs ZCB0aGF0IHdlIHByZWZlci4KKysgICAgICBjYXNlIGAiJGx0X2N2X3BhdGhfTEQiIC12IDI+JjEg PC9kZXYvbnVsbGAgaW4KKysgICAgICAqR05VKiB8ICond2l0aCBCRkQnKikKKysJdGVzdCAiJHdp dGhfZ251X2xkIiAhPSBubyAmJiBicmVhaworKwk7OworKyAgICAgICopCisrCXRlc3QgIiR3aXRo X2dudV9sZCIgIT0geWVzICYmIGJyZWFrCisrCTs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAg ZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrZWxzZQorKyAgbHRfY3ZfcGF0aF9MRD0iJExE IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKytmaQorK2Zp CisrCisrTEQ9IiRsdF9jdl9wYXRoX0xEIgorK2lmIHRlc3QgLW4gIiRMRCI7IHRoZW4KKysgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRMRCIgPiY1CisrJGFzX2VjaG8gIiRM RCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog bm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKyt0ZXN0IC16ICIkTEQiICYmIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIGxkIGZvdW5k IGluIFwkUEFUSCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFibGUg bGQgZm91bmQgaW4gXCRQQVRIIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQp IGlzIEdOVSBsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExE KSBpcyBHTlUgbGQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfZ251X2xkK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg ICMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVudGx5IHNvbWUgR05V IGxkcyBvbmx5IGFjY2VwdCAtdi4KKytjYXNlIGAkTEQgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgor KypHTlUqIHwgKid3aXRoIEJGRCcqKQorKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9eWVzCisrICA7Owor KyopCisrICBsdF9jdl9wcm9nX2dudV9sZD1ubworKyAgOzsKKytlc2FjCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19nbnVfbGQiID4mNQorKyRh c19lY2hvICIkbHRfY3ZfcHJvZ19nbnVfbGQiID4mNjsgfQorK3dpdGhfZ251X2xkPSRsdF9jdl9w cm9nX2dudV9sZAorKworKworKworKyAgIyBDaGVjayBpZiBHTlUgQysrIHVzZXMgR05VIGxkIGFz IHRoZSB1bmRlcmx5aW5nIGxpbmtlciwgc2luY2UgdGhlCisrICAjIGFyY2hpdmluZyBjb21tYW5k cyBiZWxvdyBhc3N1bWUgdGhhdCBHTlUgbGQgaXMgYmVpbmcgdXNlZC4KKysgIGlmIHRlc3QgIiR3 aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFy ZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwor KyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3 bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKworKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0NYWD0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKworKyAgICAjIElmIGFyY2hp dmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQorKyAgICAjIFhY WCBJIHRoaW5rIHdsYXJjIGNhbiBiZSBlbGltaW5hdGVkIGluIGx0Y2YtY3h4LCBidXQgSSBuZWVk IHRvCisrICAgICMgICAgIGludmVzdGlnYXRlIGl0IGEgbGl0dGxlIGJpdCBtb3JlLiAoTU0pCisr ICAgIHdsYXJjPScke3dsfScKKysKKysgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9y dCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgorKyAgICBpZiBldmFsICJgJENDIC1wcmludC1wcm9n LW5hbWU9bGRgIC0taGVscCAyPiYxIiB8IFwKKysJZ3JlcCAnbm8td2hvbGUtYXJjaGl2ZScgPiAv ZGV2L251bGw7IHRoZW4KKysgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9IiR3bGFy YyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hp dmUnCisrICAgIGVsc2UKKysgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9CisrICAg IGZpCisrICBlbHNlCisrICAgIHdpdGhfZ251X2xkPW5vCisrICAgIHdsYXJjPQorKworKyAgICAj IEEgZ2VuZXJpYyBhbmQgdmVyeSBzaW1wbGUgZGVmYXVsdCBzaGFyZWQgbGlicmFyeSBjcmVhdGlv bgorKyAgICAjIGNvbW1hbmQgZm9yIEdOVSBDKysgZm9yIHRoZSBjYXNlIHdoZXJlIGl0IHVzZXMg dGhlIG5hdGl2ZQorKyAgICAjIGxpbmtlciwgaW5zdGVhZCBvZiBHTlUgbGQuICBJZiBwb3NzaWJs ZSwgdGhpcyBzZXR0aW5nIHNob3VsZAorKyAgICAjIG92ZXJyaWRkZW4gdG8gdGFrZSBhZHZhbnRh Z2Ugb2YgdGhlIG5hdGl2ZSBsaW5rZXIgZmVhdHVyZXMgb24KKysgICAgIyB0aGUgcGxhdGZvcm0g aXQgaXMgYmVpbmcgdXNlZCBvbi4KKysgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQg LW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJworKyAgZmkKKysKKysgICMgQ29tbWFuZHMgdG8g bWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysgICMgd2hh dCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hl bgorKyAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrICBvdXRwdXRfdmVyYm9zZV9saW5r X2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVw ICJcLUwiJworKworK2Vsc2UKKysgIEdYWD1ubworKyAgd2l0aF9nbnVfbGQ9bm8KKysgIHdsYXJj PQorK2ZpCisrCisrIyBQT1JUTUU6IGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3Rl bSdzIEMrKyBsaW5rIGNoYXJhY3RlcmlzdGljcworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNo YXJlZCBsaWJyYXJpZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRj b21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsg fQorK2xkX3NobGlic19DWFg9eWVzCisrY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4MyopCisrICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICBsZF9zaGxp YnNfQ1hYPW5vCisrICAgIDs7CisrICBhaXhbNC05XSopCisrICAgIGlmIHRlc3QgIiRob3N0X2Nw dSIgPSBpYTY0OyB0aGVuCisrICAgICAgIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRp bWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAorKyAgICAgICMgaGF2ZSB0byBkbyBh bnl0aGluZyBzcGVjaWFsLgorKyAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysgICAg ICBleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JworKyAgICAgIG5vX2VudHJ5X2ZsYWc9IiIKKysgICAg ZWxzZQorKyAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysKKysgICAgICAjIFRlc3Qg aWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3JtYWwKKysgICAg ICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywg d2UKKysgICAgICAjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgorKyAgICAgIGNhc2UgJGhv c3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQuWzIzXS4qfGFpeFs1LTldKikKKysJZm9yIGxkX2ZsYWcg aW4gJExERkxBR1M7IGRvCisrCSAgY2FzZSAkbGRfZmxhZyBpbgorKwkgICotYnJ0bCopCisrCSAg ICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcworKwkgICAgYnJlYWsKKysJICAgIDs7CisrCSAg ZXNhYworKwlkb25lCisrCTs7CisrICAgICAgZXNhYworKworKyAgICAgIGV4cF9zeW1fZmxhZz0n LWJleHBvcnQnCisrICAgICAgbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JworKyAgICBmaQorKwor KyAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0 LCBBSVggbGQgY2FuCisrICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2Yg Y29udGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQorKyAgICAjIG9yIHByb2dyYW0gcmVzdWx0 cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bworKyAgICAjIENY WEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5v dAorKyAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2MgdG8g TERGTEFHUy4KKysKKysgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJworKyAgICBoYXJkY29kZV9kaXJl Y3RfQ1hYPXllcworKyAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0nOicKKysgICAg bGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrCisrICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0 aGVuCisrICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAxMl0uKikKKysg ICAgICAjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUg Y2hlY2sKKysgICAgICAjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVu ZGVyIDQuMysKKysJY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3Qy YAorKwlpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJiBcCisrCSAgIHN0cmluZ3MgIiRjb2xs ZWN0Mm5hbWUiIHwgZ3JlcCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJdGhlbgorKwkg ICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgorKwkgIDoKKysJZWxzZQorKwkgICMgV2UgaGF2 ZSBvbGQgY29sbGVjdDIKKysJICBoYXJkY29kZV9kaXJlY3RfQ1hYPXVuc3VwcG9ydGVkCisrCSAg IyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3Rh bGxlZAorKwkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBo YXJkY29kZV9taW51c19MCisrCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCisr CSAgaGFyZGNvZGVfbWludXNfTF9DWFg9eWVzCisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19DWFg9Jy1MJGxpYmRpcicKKysJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0KKysJ ZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCisrICAg ICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCXNoYXJl ZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJworKyAgICAgIGZpCisrICAgIGVsc2UKKysg ICAgICAjIG5vdCB1c2luZyBnY2MKKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsg dGhlbgorKwkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0 LCBCZXRhIDMgUmVsZWFzZQorKwkjIGNob2tlcyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGlu ZSBpcyBjb3JyZWN0OgorKwlzaGFyZWRfZmxhZz0nLUcnCisrICAgICAgZWxzZQorKwlpZiB0ZXN0 ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysJICBzaGFyZWRfZmxhZz0n JHt3bH0tRycKKysJZWxzZQorKwkgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCisrCWZpCisr ICAgICAgZmkKKysgICAgZmkKKysKKysgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMg bm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICMgdW5kZXJzY29yZSAoXyks IHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQu CisrICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9eWVzCisrICAgIGlmIHRlc3QgIiRhaXhf dXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKyAgICAgICMgV2FybmluZyAtIHdpdGhv dXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAorKyAgICAg ICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9r ZW4gbGlicmFyeS4KKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Jy1iZXJvaycKKysg ICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29k ZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KKysgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICBy ZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewor KwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRl c3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysKKytsdF9haXhfbGlicGF0aF9zZWQ9Jwor KyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAgcy9eMCAg KlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAt SCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xp YnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZp bmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xp YnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAt biAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrZmkKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVz dC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0 ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsg ZmkKKysKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tYmxpYnBh dGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKKysKKysgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRz X0NYWD0iXCRDQyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMg JyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gZWNobyAiJHt3bH0ke2FsbG93X3VuZGVm aW5lZF9mbGFnfSI7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9z eW1ib2xzICRzaGFyZWRfZmxhZyIKKysgICAgIGVsc2UKKysgICAgICBpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgorKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0t UiAkbGliZGlyOi91c3IvbGliOi9saWInCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0iLXog bm9kZWZzIgorKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0iXCRDQyAkc2hhcmVkX2ZsYWciJyAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2Vu dHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAn Ilwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKKysgICAgICBlbHNlCisrCSMg RGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBh biBlbXB0eSBleGVjdXRhYmxlLgorKwljYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZz LmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9 CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQK KytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisr ICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3Qg LXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisr ICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNy b3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0 CisrICAgICAgIH07IHRoZW4KKysKKytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0 IEZpbGUgU3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEv CisrCSAgICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRh Y19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAK KysjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcu CisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAg LUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2Fp eF9saWJwYXRoX3NlZCJgCisrZmkKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cisr CisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAg ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4 X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysJaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4 X2xpYnBhdGgiCisrCSMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1l IGxvYWRpbmcgZmxhZ3MsCisrCSMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQg bWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScg JHt3bH0tYmVybm90b2snCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWJlcm9r JworKwkjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3Rz IGZyb20gYXJjaGl2ZXMKKysJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSckY29udmVuaWVu Y2UnCisrCWFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKKysJIyBUaGlzIGlzIHNpbWlsYXIg dG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkIGxpYnJhcmllcy4KKysJ YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFS ICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpk aXIvJHNvbmFtZScKKysgICAgICBmaQorKyAgICBmaQorKyAgICA7OworKworKyAgYmVvcyopCisr ICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxm JyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD11bnN1 cHBvcnRlZAorKyAgICAgICMgSm9zZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMg c29tZSByZWxlYXNlcyBvZiBnY2MKKysgICAgICAjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlz IGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCisrICAgICAgYXJjaGl2ZV9jbWRz X0NYWD0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAgICBlbHNlCisrICAgICAgbGRfc2hsaWJz X0NYWD1ubworKyAgICBmaQorKyAgICA7OworKworKyAgY2hvcnVzKikKKysgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysgICAgICAqKQorKwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKKysJbGRfc2hsaWJzX0NYWD1ubworKwk7OworKyAgICBlc2FjCisrICAgIDs7 CisrCisrICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisrICAgICMgX0xUX0FDX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCBDWFgpIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAor KyAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorKyAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLUwkbGliZGlyJworKyAgICBhbGxvd191bmRlZmluZWRf ZmxhZ19DWFg9dW5zdXBwb3J0ZWQKKysgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWD1ubwor KyAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWD15ZXMKKysKKysgICAg aWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVu CisrICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNl IC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKyAgICAgICMgSWYgdGhlIGV4 cG9ydC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUKKysgICAg ICAjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKyAg ICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9z eW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgorKwljcCAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9v YmpkaXIvJHNvbmFtZS5kZWY7CisrICAgICAgZWxzZQorKwllY2hvIEVYUE9SVFMgPiAkb3V0cHV0 X29iamRpci8kc29uYW1lLmRlZjsKKysJY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29i amRpci8kc29uYW1lLmRlZjsKKysgICAgICBmaX4KKysgICAgICAkQ0MgLXNoYXJlZCAtbm9zdGRs aWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1w bGliIC1YbGlua2VyICRsaWInCisrICAgIGVsc2UKKysgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisr ICAgIGZpCisrICA7OworKyAgICAgIGRhcndpbiogfCByaGFwc29keSopCisrICAgICAgYXJjaGl2 ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisrICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD1ubworKyAg ICAgIGhhcmRjb2RlX2F1dG9tYXRpY19DWFg9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcl9DWFg9dW5zdXBwb3J0ZWQKKysgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9 JycKKysgICAgICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMKKysgICAgICBhbGxvd191bmRlZmlu ZWRfZmxhZ19DWFg9IiRfbHRfZGFyX2FsbG93X3VuZGVmaW5lZCIKKysgICAgICBpZiB0ZXN0ICIk R1hYIiA9IHllcyA7IHRoZW4KKysgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycK KysgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSJcJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZp bmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1p bnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVf bW9kJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIG1vZHVsZV9jbWRzX0NYWD0iXCRDQyBcJGFsbG93 X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNv bXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNf Q1hYPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wk e2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmlu ZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWlu c3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVf bW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAgICAgbW9kdWxl X2V4cHN5bV9jbWRzX0NYWD0ic2VkIC1lICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwk b3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIFwkYWxsb3dfdW5k ZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGls ZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIGlm IHRlc3QgIiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiAhPSAieWVzIjsgdGhlbgorKyAgICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0iXCRDQyAtciAta2VlcF9wcml2YXRlX2V4dGVybnMgLW5vc3Rk bGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpzflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxv d191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9LW1hc3Rlci5vIFwkZGVwbGlicyBcJGNv bXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyR7 X2x0X2RzeW11dGlsfSIKKysgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJzZWQgJ3Ms XixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5 bWJvbHMuZXhwc3ltflwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBc JHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZp bmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9m bGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kYXJf ZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIGZpCisrICAgICAgZWxzZQorKyAg ICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICB4bGMqKQorKyAgICAgICAgIG91dHB1 dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworKyAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSck Q0MgLXFta3Nocm9iaiAke3dsfS1zaW5nbGVfbW9kdWxlICRhbGxvd191bmRlZmluZWRfZmxhZyAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1pbnN0YWxsX25h bWUgJHt3bH1gZWNobyAkcnBhdGgvJHNvbmFtZWAgJHhsY3ZlcnN0cmluZycKKysgICAgICAgICAg bW9kdWxlX2NtZHNfQ1hYPSckQ0MgJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgLWJ1bmRs ZSAkbGlib2JqcyAkZGVwbGlicyRjb21waWxlcl9mbGFncycKKysgICAgICAgICAgIyBEb24ndCBm aXggdGhpcyBieSB1c2luZyB0aGUgbGQgLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBmbGFnLCBpdCBk b2Vzbid0IGV4aXN0IGluIG9sZGVyIGRhcndpbiBsZHMKKysgICAgICAgICAgYXJjaGl2ZV9leHBz eW1fY21kc19DWFg9J3NlZCAtZSAicywjLiosLCIgLWUgInMsXlsgICAgXSosLCIgLWUgInMsXlwo Li4qXCksXyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0t c3ltYm9scy5leHBzeW1+JENDIC1xbWtzaHJvYmogJHt3bH0tc2luZ2xlX21vZHVsZSAkYWxsb3df dW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0taW5zdGFsbF9uYW1lICR7d2x9JHJwYXRoLyRzb25hbWUgJHhsY3ZlcnN0cmluZ35ubWVk aXQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCisr ICAgICAgICAgIG1vZHVsZV9leHBzeW1fY21kc19DWFg9J3NlZCAtZSAicywjLiosLCIgLWUgInMs XlsgICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRw dXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JENDICRhbGxvd191bmRlZmluZWRf ZmxhZyAgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBsaWJzJGNvbXBpbGVyX2ZsYWdzfm5t ZWRpdCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScK KysgICAgICAgICAgOzsKKysgICAgICAgKikKKysgICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisr ICAgICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIGZpCisrICAgICAgICA7OworKworKyAg ZGd1eCopCisrICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgZWMrKyopCisrCSMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlsZF9zaGxpYnNfQ1hYPW5v CisrCTs7CisrICAgICAgZ2hjeCopCisrCSMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSMg RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlsZF9zaGxpYnNfQ1hY PW5vCisrCTs7CisrICAgICAgKikKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFy eSBzdXBwb3J0CisrCWxkX3NobGlic19DWFg9bm8KKysJOzsKKysgICAgZXNhYworKyAgICA7Owor KyAgZnJlZWJzZFsxMl0qKQorKyAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIHJlcG9ydGVkIHRv IGJlIGZhaXJseSBicm9rZW4gYmVmb3JlIHN3aXRjaCB0byBFTEYKKysgICAgbGRfc2hsaWJzX0NY WD1ubworKyAgICA7OworKyAgZnJlZWJzZC1lbGYqKQorKyAgICBhcmNoaXZlX2NtZHNfbmVlZF9s Y19DWFg9bm8KKysgICAgOzsKKysgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICAgIyBGcmVl QlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUgQysrIGFuZCBHTlUgbGQgd2l0aCBzdGFuZGFyZCBFTEYK KysgICAgIyBjb252ZW50aW9ucworKyAgICBsZF9zaGxpYnNfQ1hYPXllcworKyAgICA7OworKyAg Z251KikKKysgICAgOzsKKysgIGhwdXg5KikKKysgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yX0NYWD06CisrICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCisr ICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCisrICAgIGhhcmRjb2RlX21pbnVzX0xfQ1hYPXll cyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCQkJCSMgYnV0IGFzIHRoZSBkZWZhdWx0Cisr CQkJCSMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrCisrICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCisrICAgIENDKikKKysgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5 IHN1cHBvcnQKKysgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgICAgOzsKKysgICAgYUNDKikK KysgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckcm0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0Mg LWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1l ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGls ZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrICAgICAgIyB3aGF0ICJoaWRk ZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrICAg ICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrICAgICAgIworKyAgICAgICMgVGhlcmUg ZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20K KysgICAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5l ZWQgdG8gc3RyaXAgdGhlbQorKyAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBk b24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysgICAgICAjIGRlcGVuZGVuY2llcy4K KysgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFH UyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgZ3JlcCAiWy1dTCJgOyBsaXN0PSIiOyBmb3Ig eiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxp c3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZWNo byAkbGlzdCcKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVz OyB0aGVuCisrICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckcm0gJG91dHB1dF9vYmpkaXIvJHNv bmFtZX4kQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysg ICAgICBlbHNlCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKKysgICAgICAgIGxkX3NobGlic19DWFg9bm8KKysgICAgICBmaQorKyAgICAgIDs7Cisr ICAgIGVzYWMKKysgICAgOzsKKysgIGhwdXgxMCp8aHB1eDExKikKKysgICAgaWYgdGVzdCAkd2l0 aF9nbnVfbGQgPSBubzsgdGhlbgorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hY PScke3dsfStiICR7d2x9JGxpYmRpcicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y X0NYWD06CisrCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0 KikgOzsKKysgICAgICAqKQorKwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1F JworKyAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgIGZpCisrICAgIGNhc2UgJGhvc3RfY3B1 IGluCisrICAgIGhwcGEqNjQqfGlhNjQqKQorKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9bm8K KysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubworKyAgICAgIDs7CisrICAgICop CisrICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKKysgICAgICBoYXJkY29kZV9taW51c19M X0NYWD15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAorKwkJCQkJICAgICAgIyBidXQgYXMg dGhlIGRlZmF1bHQKKysJCQkJCSAgICAgICMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrICAg ICAgOzsKKysgICAgZXNhYworKworKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIEND KikKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCWxkX3No bGlic19DWFg9bm8KKysJOzsKKysgICAgICBhQ0MqKQorKwljYXNlICRob3N0X2NwdSBpbgorKwlo cHBhKjY0KikKKysJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25h bWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJaWE2NCopCisrCSAgYXJjaGl2ZV9jbWRz X0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1v ICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8g JGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJZXNhYworKwkjIENvbW1hbmRzIHRvIG1ha2UgY29t cGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSMgd2hhdCAiaGlkZGVu IiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkjIGxp bmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJIworKwkjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRv IGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrCSMgZXhwbGljaXRseSBs aW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSMg ZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxp YnJhcnkKKysJIyBkZXBlbmRlbmNpZXMuCisrCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1w bGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCBncmVwICJc LUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0 LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAk eiI7O2VzYWM7IGRvbmU7IGVjaG8gJGxpc3QnCisrCTs7CisrICAgICAgKikKKysJaWYgdGVzdCAi JEdYWCIgPSB5ZXM7IHRoZW4KKysJICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCisr CSAgICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAgaHBwYSo2NCopCisrCSAgICAgIGFyY2hpdmVf Y21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFt ZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgOzsKKysJICAgIGlhNjQqKQorKwkgICAgICBh cmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3ds fSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAg IDs7CisrCSAgICAqKQorKwkgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9z dGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICBmaQor KwllbHNlCisrCSAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Cisr CSAgbGRfc2hsaWJzX0NYWD1ubworKwlmaQorKwk7OworKyAgICBlc2FjCisrICAgIDs7CisrICBp bnRlcml4WzMtOV0qKQorKyAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCisrICAgIGhhcmRjb2Rl X3NobGlicGF0aF92YXJfQ1hYPW5vCisrICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hY PScke3dsfS1ycGF0aCwkbGliZGlyJworKyAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hY PScke3dsfS1FJworKyAgICAjIEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGls ZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCisrICAgICMgSW5zdGVhZCwgc2hhcmVkIGxp YnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKKysgICAg IyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xv dyB2ZXJ5IG1lbW9yeQorKyAgICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4g IFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCisrICAgICMgMjU2IEtpQi1hbGlnbmVk IGltYWdlIGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxpbmsKKysg ICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNi cmsoMikgc3BhY2UuCisrICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxh ZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9 LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEz NDIxNzcyODBgIC1vICRsaWInCisrICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdzZWQgInMs XixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29u YW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8g MiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKyAgICA7OworKyAgaXJpeDUqIHwg aXJpeDYqKQorKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIENDKikKKysJIyBTR0kg QysrCisrCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1hbGwgLW11bHRpZ290ICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92 ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19s b2NhdGlvbnMgLW8gJGxpYicKKysKKysJIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3Qg ZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSMgIkNDIC1hciIsIHdoZXJlICJDQyIgaXMg dGhlIElSSVggQysrIGNvbXBpbGVyLiAgVGhpcyBpcworKwkjIG5lY2Vzc2FyeSB0byBtYWtlIHN1 cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJIyBpbiB0aGUgYXJjaGl2 ZS4KKysJb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAtYXIgLVdSLC11IC1vICRvbGRsaWIgJG9s ZG9ianMnCisrCTs7CisrICAgICAgKikKKysJaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysJ ICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJICAgIGFyY2hpdmVfY21kc19D WFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3ds fSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0v c29fbG9jYXRpb25zIC1vICRsaWInCisrCSAgZWxzZQorKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0n JENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1l IGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZl cnN0cmluZ2AgLW8gJGxpYicKKysJICBmaQorKwlmaQorKwlsaW5rX2FsbF9kZXBsaWJzX0NYWD15 ZXMKKysJOzsKKysgICAgZXNhYworKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y X0NYWD06CisrICAgIDs7CisrICBsaW51eCogfCBrKmJzZCotZ251KQorKyAgICBjYXNlICRjY19i YXNlbmFtZSBpbgorKyAgICAgIEtDQyopCisrCSMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAo S0FJKSBDKysgQ29tcGlsZXIKKysKKysJIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBs aWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQorKwkjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIg Zm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSMgdG8gaXRzIHByb3BlciBuYW1l ICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCisrCWFyY2hpdmVfY21kc19DWFg9J3RlbXBl eHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW14oKTAtOUEtWmEtent9XVwp L1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4 dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxp YjsgbXYgXCR0ZW1wbGliICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSd0ZW1wZXh0 PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9c XFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9 XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWIg JHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHM7IG12IFwkdGVtcGxpYiAk bGliJworKwkjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1 dCB0aGF0IGxpc3RzCisrCSMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBh bmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJ IworKwkjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBj b21waWxlciBmcm9tCisrCSMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMg c28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhl eSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJIyBkZXBlbmRlbmNpZXMuCisr CW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDICRDRkxBR1MgLXYgY29uZnRl c3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEgfCBncmVwICJsZCJgOyBy bSAtZiBsaWJjb25mdGVzdCRzaGFyZWRfZXh0OyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7 IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2Jq ZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZWNobyAkbGlzdCcKKysKKysJ aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1ycGF0aCwkbGliZGlyJworKwll eHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCisr CSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1 c2luZworKwkjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIgaXMgdGhlIEtBSSBDKysgY29tcGls ZXIuCisrCW9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xk b2JqcycKKysJOzsKKysgICAgICBpY3BjKikKKysJIyBJbnRlbCBDKysKKysJd2l0aF9nbnVfbGQ9 eWVzCisrCSMgdmVyc2lvbiA4LjAgYW5kIGFib3ZlIG9mIGljcGMgY2hva2Ugb24gbXVsdGlwbHkg ZGVmaW5lZCBzeW1ib2xzCisrCSMgaWYgd2UgYWRkICRwcmVkZXBfb2JqZWN0cyBhbmQgJHBvc3Rk ZXBfb2JqZWN0cywgaG93ZXZlciA3LjEgYW5kCisrCSMgZWFybGllciBkbyBub3QgYWRkIHRoZSBv YmplY3RzIHRoZW1zZWx2ZXMuCisrCWNhc2UgYCRDQyAtViAyPiYxYCBpbgorKwkqIlZlcnNpb24g Ny4iKikKKysgIAkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAgCSAgYXJjaGl2ZV9leHBzeW1fY21kc19D WFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1y ZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkgIDs7Cisr CSopICAjIFZlcnNpb24gOC4wIG9yIG5ld2VyCisrCSAgdG1wX2lkeW49CisrCSAgY2FzZSAkaG9z dF9jcHUgaW4KKysJICAgIGlhNjQqKSB0bXBfaWR5bj0nIC1pX2R5bmFtaWMnOzsKKysJICBlc2Fj CisrICAJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCciJHRtcF9pZHluIicgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRs aWInCisrCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4i JyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicK KysJICA7OworKwllc2FjCisrCWFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubworKwloYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKwl3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICR7d2x9 LS1uby13aG9sZS1hcmNoaXZlJworKwk7OworKyAgICAgIHBnQ0MqIHwgcGdjcHAqKQorKyAgICAg ICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKKysJYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1v ICRsaWInCisrICAJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxh ZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9s cy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCisrCWhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJworKwlleHBvcnRfZHlu YW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCXdob2xlX2FyY2hp dmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZl bmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRu ZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNlXCJg ICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKyAgICAgICAgOzsKKysgICAgICBjeHgqKQorKwkj IENvbXBhcSBDKysKKysJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hY PSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgIC1vICRsaWIg JHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMnCisrCisrCXJ1bnBh dGhfdmFyPUxEX1JVTl9QQVRICisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctcnBh dGggJGxpYmRpcicKKysJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKworKwkjIENv bW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3Rz CisrCSMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJl IHVzZWQgd2hlbgorKwkjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJIworKwkjIFRoZXJl IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9t CisrCSMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0 byBzdHJpcCB0aGVtCisrCSMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQg aW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJIyBkZXBlbmRlbmNpZXMuCisrCW91dHB1dF92ZXJi b3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4k b2JqZXh0IDI+JjEgfCBncmVwICJsZCJgOyB0ZW1wbGlzdD1gZWNobyAkdGVtcGxpc3QgfCAkU0VE ICJzL1woXi4qbGQuKlwpXCggLipsZCAuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRl bXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7 ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGVjaG8gJGxpc3Qn CisrCTs7CisrICAgICAgKikKKysJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSpT dW5cIEMqKQorKwkgICMgU3VuIEMrKyA1LjkKKysJICBub191bmRlZmluZWRfZmxhZ19DWFg9JyAt emRlZnMnCisrCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxh Z30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNf Q1hYPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scycKKysJ ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGliZGlyJworKwkgIHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNl PTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwg bmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBc IiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCisrCSAgIyBO b3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBvbgorKwkgICMgJENDICRDRkxBR1MgLXYg Y29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEKKysJICAjIHdv dWxkIGJlIGJldHRlci4KKysJICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysKKysJ ICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQg dXNpbmcKKysJICAjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBjb21waWxl ci4gIFRoaXMgaXMKKysJICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRl bXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAjIGluIHRoZSBhcmNoaXZlLgorKwkgIG9sZF9hcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLXhhciAtbyAkb2xkbGliICRvbGRvYmpzJworKwkgIDs7CisrCWVz YWMKKysJOzsKKysgICAgZXNhYworKyAgICA7OworKyAgbHlueG9zKikKKysgICAgIyBGSVhNRTog aW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrICAgIGxkX3NobGlic19DWFg9bm8K KysgICAgOzsKKysgIG04OGsqKQorKyAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKKysgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICA7OworKyAgbXZzKikKKysg ICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBjeHgqKQorKwkjIEZJWE1FOiBpbnNlcnQg cHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJbGRfc2hsaWJzX0NYWD1ubworKwk7OworKyAg ICAgICopCisrCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwls ZF9zaGxpYnNfQ1hYPW5vCisrCTs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIG5ldGJzZCopCisr ICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGw7 IHRoZW4KKysgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckTEQgLUJzaGFyZWFibGUgIC1vICRsaWIg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGxpbmtl cl9mbGFncycKKysgICAgICB3bGFyYz0KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCisrICAgICAg aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysgICAgZmkKKysgICAgIyBXb3JrYXJvdW5k IHNvbWUgYnJva2VuIHByZS0xLjUgdG9vbGNoYWlucworKyAgICBvdXRwdXRfdmVyYm9zZV9saW5r X2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVw IGNvbmZ0ZXN0LiRvYmpleHQgfCAkU0VEIC1lICJzOi1sZ2NjIC1sYyAtbGdjYzo6IicKKysgICAg OzsKKysgIG9wZW5ic2QyKikKKysgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyBhcmUgZmFpcmx5 IGJyb2tlbgorKyAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgIDs7CisrICBvcGVuYnNkKikKKysg ICAgaWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KKysgICAgICBoYXJkY29kZV9k aXJlY3RfQ1hYPXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCisrICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAk bGliJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwk bGliZGlyJworKyAgICAgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdy ZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1w b3dlcnBjIjsgdGhlbgorKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBp Y19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9s cyAtbyAkbGliJworKwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1FJworKwl3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZl bmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisrICAgICAgZmkKKysgICAgICBv dXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysgICAgZWxzZQorKyAgICAgIGxkX3NobGli c19DWFg9bm8KKysgICAgZmkKKysgICAgOzsKKysgIG9zZjMqKQorKyAgICBjYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgIEtDQyopCisrCSMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJ KSBDKysgQ29tcGlsZXIKKysKKysJIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJy YXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQorKwkjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9y IEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSMgdG8gaXRzIHByb3BlciBuYW1lICh3 aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCisrCWFyY2hpdmVfY21kc19DWFg9J3RlbXBleHQ9 YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW14oKTAtOUEtWmEtent9XVwpL1xc XFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1c Li4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsg bXYgXCR0ZW1wbGliICRsaWInCisrCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSck e3dsfS1ycGF0aCwkbGliZGlyJworKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Cisr CisrCSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRl ZCB1c2luZworKwkjICJDQyAtQnN0YXRpYyIsIHdoZXJlICJDQyIgaXMgdGhlIEtBSSBDKysgY29t cGlsZXIuCisrCW9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAk b2xkb2JqcycKKysKKysJOzsKKysgICAgICBSQ0MqKQorKwkjIFJhdGlvbmFsIEMrKyAyLjQuMQor KwkjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJbGRfc2hsaWJz X0NYWD1ubworKwk7OworKyAgICAgIGN4eCopCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0n ICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCWFyY2hpdmVfY21kc19DWFg9JyRD QyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92ZXJzaW9uICR2 ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYicKKysKKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRo ICR7d2x9JGxpYmRpcicKKysJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKworKwkj IENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxp c3RzCisrCSMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3Mg YXJlIHVzZWQgd2hlbgorKwkjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJIworKwkjIFRo ZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBm cm9tCisrCSMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVl ZCB0byBzdHJpcCB0aGVtCisrCSMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBn ZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJIyBkZXBlbmRlbmNpZXMuCisrCW91dHB1dF92 ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVz dC4kb2JqZXh0IDI+JjEgfCBncmVwICJsZCIgfCBncmVwIC12ICJsZDoiYDsgdGVtcGxpc3Q9YGVj aG8gJHRlbXBsaXN0IHwgJFNFRCAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlz dD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQp IGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7 IGRvbmU7IGVjaG8gJGxpc3QnCisrCTs7CisrICAgICAgKikKKysJaWYgdGVzdCAiJEdYWCIgPSB5 ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCSAgYWxsb3dfdW5kZWZpbmVk X2ZsYWdfQ1hYPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJICBhcmNoaXZl X2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30g JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVf cmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwor KwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJk aXInCisrCSAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKworKwkgICMgQ29tbWFu ZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJ ICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1 c2VkIHdoZW4KKysJICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICBvdXRwdXRfdmVy Ym9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+ JjEgfCBncmVwICJcLUwiJworKworKwllbHNlCisrCSAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0CisrCSAgbGRfc2hsaWJzX0NYWD1ubworKwlmaQorKwk7OworKyAg ICBlc2FjCisrICAgIDs7CisrICBvc2Y0KiB8IG9zZjUqKQorKyAgICBjYXNlICRjY19iYXNlbmFt ZSBpbgorKyAgICAgIEtDQyopCisrCSMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJKSBD KysgQ29tcGlsZXIKKysKKysJIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5 IGlmIHRoZSBvdXRwdXQgZmlsZQorKwkjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQ LVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5CisrCSMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRo IHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCisrCWFyY2hpdmVfY21kc19DWFg9J3RlbXBleHQ9YGVj aG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW14oKTAtOUEtWmEtent9XVwpL1xcXFxc MS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4q Ly5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYg XCR0ZW1wbGliICRsaWInCisrCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3ds fS1ycGF0aCwkbGliZGlyJworKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrCisr CSMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1 c2luZworKwkjIHRoZSBLQUkgQysrIGNvbXBpbGVyLgorKwlvbGRfYXJjaGl2ZV9jbWRzX0NYWD0n JENDIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCTs7CisrICAgICAgUkNDKikKKysJIyBSYXRpb25h bCBDKysgMi40LjEKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 CisrCWxkX3NobGlic19DWFg9bm8KKysJOzsKKysgICAgICBjeHgqKQorKwlhbGxvd191bmRlZmlu ZWRfZmxhZ19DWFg9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCWFyY2hpdmVfY21kc19DWFg9 JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25h bWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZl cnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0 X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ ICRsaWIuZXhwOyBkb25lfgorKwkgIGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSAgJEND IC1zaGFyZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNv bmFtZSAtV2wsLWlucHV0IC1XbCwkbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVj aG8gLXNldF92ZXJzaW9uCSR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KKysJICAkcm0gJGxpYi5leHAnCisrCisrCWhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctcnBhdGggJGxpYmRpcicKKysJaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcl9DWFg9OgorKworKwkjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJv ZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSMgd2hhdCAiaGlkZGVuIiBsaWJyYXJp ZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkjIGxpbmtpbmcgYSBz aGFyZWQgbGlicmFyeS4KKysJIworKwkjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5 IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrCSMgZXhwbGljaXRseSBsaW5raW5nIHN5 c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCisrCSMgZnJvbSB0aGUg b3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJ IyBkZXBlbmRlbmNpZXMuCisrCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJEND IC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVwICJsZCIgfCBn cmVwIC12ICJsZDoiYDsgdGVtcGxpc3Q9YGVjaG8gJHRlbXBsaXN0IHwgJFNFRCAicy9cKF4uKmxk LipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBj YXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7 OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGVjaG8gJGxpc3QnCisrCTs7CisrICAg ICAgKikKKysJaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5v OyB0aGVuCisrCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tZXhwZWN0X3VucmVz b2x2ZWQgJHt3bH1cKicKKysJIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxp YiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25h bWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92 ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysKKysJICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgIGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3JfQ1hYPToKKysKKysJICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIg cHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgIyB3aGF0ICJoaWRkZW4iIGxp YnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgIyBsaW5r aW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAt c2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgZ3JlcCAiXC1MIicKKysK KysJZWxzZQorKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAor KwkgIGxkX3NobGlic19DWFg9bm8KKysJZmkKKysJOzsKKysgICAgZXNhYworKyAgICA7OworKyAg cHNvcyopCisrICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAor KyAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgIDs7CisrICBzdW5vczQqKQorKyAgICBjYXNlICRj Y19iYXNlbmFtZSBpbgorKyAgICAgIENDKikKKysJIyBTdW4gQysrIDQueAorKwkjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJbGRfc2hsaWJzX0NYWD1ubworKwk7 OworKyAgICAgIGxjYyopCisrCSMgTHVjaWQKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrCWxkX3NobGlic19DWFg9bm8KKysJOzsKKysgICAgICAqKQorKwkj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJbGRfc2hsaWJzX0NY WD1ubworKwk7OworKyAgICBlc2FjCisrICAgIDs7CisrICBzb2xhcmlzKikKKysgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysgICAgICBDQyopCisrCSMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2Vu dGVybGluZSBDKysKKysgICAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKKysJbm9f dW5kZWZpbmVkX2ZsYWdfQ1hYPScgLXpkZWZzJworKwlhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUck e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAgLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwlh cmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQg JGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+JGVj aG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSRDQyAtRyR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICAke3dsfS1NICR7d2x9JGxpYi5leHAgLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz fiRybSAkbGliLmV4cCcKKysKKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1SJGxp YmRpcicKKysJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysJY2FzZSAkaG9zdF9vcyBp bgorKwkgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0uKikgOzsKKysJICAqKQorKwkg ICAgIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIg b3B0aW9ucywKKysJICAgICMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuCisrCSAg ICAjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQorKwkgICAgd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRl ZmF1bHRleHRyYWN0JworKwkgICAgOzsKKysJZXNhYworKwlsaW5rX2FsbF9kZXBsaWJzX0NYWD15 ZXMKKysKKysJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCisrCisrCSMgQXJjaGl2ZXMg Y29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkjICJD QyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBjb21waWxlci4gIFRoaXMgaXMKKysJ IyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1 ZGVkCisrCSMgaW4gdGhlIGFyY2hpdmUuCisrCW9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXhh ciAtbyAkb2xkbGliICRvbGRvYmpzJworKwk7OworKyAgICAgIGdjeCopCisrCSMgR3JlZW4gSGls bHMgQysrIENvbXBpbGVyCisrCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKKysKKysJIyBUaGUgQysrIGNvbXBpbGVyIG11 c3QgYmUgdXNlZCB0byBjcmVhdGUgdGhlIGFyY2hpdmUuCisrCW9sZF9hcmNoaXZlX2NtZHNfQ1hY PSckQ0MgJExERkxBR1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJOzsKKysgICAg ICAqKQorKwkjIEdOVSBDKysgY29tcGlsZXIgd2l0aCBTb2xhcmlzIGxpbmtlcgorKwlpZiB0ZXN0 ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJICBub191 bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS16ICR7d2x9ZGVmcycKKysJICBpZiAkQ0MgLS12ZXJz aW9uIHwgZ3JlcCAtdiAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgg JHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRlY2hv ICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMv XCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhw fgorKwkJJENDIC1zaGFyZWQgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3N+JHJtICRsaWIuZXhwJworKworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBp bGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRk ZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAg ICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtf Y21kPSIkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8IGdyZXAg XCJcLUxcIiIKKysJICBlbHNlCisrCSAgICAjIGcrKyAyLjcgYXBwZWFycyB0byByZXF1aXJlIGAt RycgTk9UIGAtc2hhcmVkJyBvbiB0aGlzCisrCSAgICAjIHBsYXRmb3JtLgorKwkgICAgYXJjaGl2 ZV9jbWRzX0NYWD0nJENDIC1HIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAk d2wkc29uYW1lIC1vICRsaWInCisrCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJGVjaG8g InsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9c KC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+JGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+ CisrCQkkQ0MgLUcgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3N+JHJtICRsaWIuZXhwJworKworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHBy b2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxp YnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAjIGxp bmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSIk Q0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCBncmVwIFwiXC1MXCIiCisr CSAgZmkKKysKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tUiAkd2wk bGliZGlyJworKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICBzb2xhcmlzMi5bMC01XSB8IHNvbGFy aXMyLlswLTVdLiopIDs7CisrCSAgKikKKysJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NY WD0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1 bHRleHRyYWN0JworKwkgICAgOzsKKysJICBlc2FjCisrCWZpCisrCTs7CisrICAgIGVzYWMKKysg ICAgOzsKKysgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3Llsw MV0uWzEwXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bMDI0XSopCisrICAgIG5vX3VuZGVm aW5lZF9mbGFnX0NYWD0nJHt3bH0teix0ZXh0JworKyAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19D WFg9bm8KKysgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysgICAgcnVucGF0aF92 YXI9J0xEX1JVTl9QQVRIJworKworKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIEND KikKKysJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kc19D WFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCTs7CisrICAgICAg KikKKysJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0t aCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwk7 OworKyAgICBlc2FjCisrICAgIDs7CisrICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQor KyAgICAjIE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRlZnMgYXMgd2UgbWlnaHQgZGVzaXJlLCBi ZWNhdXNlIHdlIGRvIG5vdAorKyAgICAjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNh dXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCisrICAgICMgYWx3YXlzIGJlIHVucmVz b2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAorKyAgICAjIGV2 ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBub3QgdXNpbmcgR05VIGxkIHdlIHVzZSAteiB0 ZXh0CisrICAgICMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0 IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorKyAgICAjIGFzIC16IGRlZnMuCisrICAgICMgRm9yIHNl Y3VyaXR5IHJlYXNvbnMsIGl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHlvdSBhbHdheXMK KysgICAgIyB1c2UgYWJzb2x1dGUgcGF0aHMgZm9yIG5hbWluZyBzaGFyZWQgbGlicmFyaWVzLCBh bmQgZXhjbHVkZSB0aGUKKysgICAgIyBEVF9SVU5QQVRIIHRhZyBmcm9tIGV4ZWN1dGFibGVzIGFu ZCBsaWJyYXJpZXMuICBCdXQgZG9pbmcgc28KKysgICAgIyByZXF1aXJlcyB0aGF0IHlvdSBjb21w aWxlIGV2ZXJ5dGhpbmcgdHdpY2UsIHdoaWNoIGlzIGEgcGFpbi4KKysgICAgIyBTbyB0aGF0IGJl aGF2aW91ciBpcyBvbmx5IGVuYWJsZWQgaWYgU0NPQUJTUEFUSCBpcyBzZXQgdG8gYQorKyAgICAj IG5vbi1lbXB0eSB2YWx1ZSBpbiB0aGUgZW52aXJvbm1lbnQuICBNb3N0IGxpa2VseSBvbmx5IHVz ZWZ1bCBmb3IKKysgICAgIyBjcmVhdGluZyBvZmZpY2lhbCBkaXN0cmlidXRpb25zIG9mIHBhY2th Z2VzLgorKyAgICAjIFRoaXMgaXMgYSBoYWNrIHVudGlsIGxpYnRvb2wgb2ZmaWNpYWxseSBzdXBw b3J0cyBhYnNvbHV0ZSBwYXRoCisrICAgICMgbmFtZXMgZm9yIHNoYXJlZCBsaWJyYXJpZXMuCisr ICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nJHt3bH0teix0ZXh0JworKyAgICBhbGxvd191bmRl ZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosbm9kZWZzJworKyAgICBhcmNoaXZlX2NtZHNfbmVlZF9s Y19DWFg9bm8KKysgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9J2B0ZXN0IC16ICIkU0NPQUJTUEFUSCIgJiYgZWNobyAk e3dsfS1SLCRsaWJkaXJgJworKyAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0nOicK KysgICAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCisrICAgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlY19DWFg9JyR7d2x9LUJleHBvcnQnCisrICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcK KysKKysgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBDQyopCisrCWFyY2hpdmVfY21k c19DWFg9JyRDQyAtRyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30k c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNo aXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xz ICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCTs7CisrICAgICAgKikKKysJ YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2lu c3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LUJl eHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xp YmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrCTs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIHRhbmRlbSopCisrICAgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCisrICAgICAgTkNDKikKKysJIyBOb25TdG9wLVVYIE5DQyAzLjIwCisrCSMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlsZF9zaGxpYnNfQ1hYPW5v CisrCTs7CisrICAgICAgKikKKysJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBz dXBwb3J0CisrCWxkX3NobGlic19DWFg9bm8KKysJOzsKKysgICAgZXNhYworKyAgICA7OworKyAg dnh3b3JrcyopCisrICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9y dAorKyAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgIDs7CisrICAqKQorKyAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgbGRfc2hsaWJzX0NYWD1ubwor KyAgICA7OworK2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRf c2hsaWJzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsZF9zaGxpYnNfQ1hYIiA+JjY7IH0KKyt0ZXN0 ICIkbGRfc2hsaWJzX0NYWCIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrR0NDX0NY WD0iJEdYWCIKKytMRF9DWFg9IiRMRCIKKysKKytjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9G CisrY2xhc3MgRm9vCisreworK3B1YmxpYzoKKysgIEZvbyAodm9pZCkgeyBhID0gMDsgfQorK3By aXZhdGU6CisrICBpbnQgYTsKKyt9OworK0VPRgorKworK2lmIHsgKGV2YWwgZWNobyAiJGFzX21l OiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+ JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisrICAjIFBhcnNl IHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQorKyAgIyBvYmpl Y3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCisrCisrICAjIFNlbnRpbmVsIHVzZWQg dG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB3ZSBhcmUgYmVmb3JlCisrICAjIHRoZSBj b25mdGVzdCBvYmplY3QgZmlsZS4KKysgIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KKysK KysgICMgVGhlIGAqJyBpbiB0aGUgY2FzZSBtYXRjaGVzIGZvciBhcmNoaXRlY3R1cmVzIHRoYXQg dXNlIGBjYXNlJyBpbgorKyAgIyAkb3V0cHV0X3ZlcmJvc2VfY21kIGNhbiB0cmlnZ2VyIGdsb2Ig ZXhwYW5zaW9uIGR1cmluZyB0aGUgbG9vcAorKyAgIyBldmFsIHdpdGhvdXQgdGhpcyBzdWJzdGl0 dXRpb24uCisrICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1gJGVjaG8gIlgkb3V0cHV0X3ZlcmJv c2VfbGlua19jbWQiIHwgJFhzZWQgLWUgIiRub19nbG9iX3N1YnN0ImAKKysKKysgIGZvciBwIGlu IGBldmFsICRvdXRwdXRfdmVyYm9zZV9saW5rX2NtZGA7IGRvCisrICAgIGNhc2UgJHAgaW4KKysK KysgICAgLUwqIHwgLVIqIHwgLWwqKQorKyAgICAgICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNw YWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRoLgorKyAgICAgICAjIFJlbW92ZSB0aGUg c3BhY2UuCisrICAgICAgIGlmIHRlc3QgJHAgPSAiLUwiIFwKKysJICB8fCB0ZXN0ICRwID0gIi1S IjsgdGhlbgorKwkgcHJldj0kcAorKwkgY29udGludWUKKysgICAgICAgZWxzZQorKwkgcHJldj0K KysgICAgICAgZmkKKysKKysgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2Rv bmUiID0gbm87IHRoZW4KKysJIGNhc2UgJHAgaW4KKysJIC1MKiB8IC1SKikKKysJICAgIyBJbnRl cm5hbCBjb21waWxlciBsaWJyYXJ5IHBhdGhzIHNob3VsZCBjb21lIGFmdGVyIHRob3NlCisrCSAg ICMgcHJvdmlkZWQgdGhlIHVzZXIuICBUaGUgcG9zdGRlcHMgYWxyZWFkeSBjb21lIGFmdGVyIHRo ZQorKwkgICAjIHVzZXIgc3VwcGxpZWQgbGlicyBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nl c3MgdGhlbS4KKysJICAgaWYgdGVzdCAteiAiJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFgi OyB0aGVuCisrCSAgICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0iJHtwcmV2fSR7cH0i CisrCSAgIGVsc2UKKysJICAgICBjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPSIke2NvbXBp bGVyX2xpYl9zZWFyY2hfcGF0aF9DWFh9ICR7cHJldn0ke3B9IgorKwkgICBmaQorKwkgICA7Owor KwkgIyBUaGUgIi1sIiBjYXNlIHdvdWxkIG5ldmVyIGNvbWUgYmVmb3JlIHRoZSBvYmplY3QgYmVp bmcKKysJICMgbGlua2VkLCBzbyBkb24ndCBib3RoZXIgaGFuZGxpbmcgdGhpcyBjYXNlLgorKwkg ZXNhYworKyAgICAgICBlbHNlCisrCSBpZiB0ZXN0IC16ICIkcG9zdGRlcHNfQ1hYIjsgdGhlbgor KwkgICBwb3N0ZGVwc19DWFg9IiR7cHJldn0ke3B9IgorKwkgZWxzZQorKwkgICBwb3N0ZGVwc19D WFg9IiR7cG9zdGRlcHNfQ1hYfSAke3ByZXZ9JHtwfSIKKysJIGZpCisrICAgICAgIGZpCisrICAg ICAgIDs7CisrCisrICAgICouJG9iamV4dCkKKysgICAgICAgIyBUaGlzIGFzc3VtZXMgdGhhdCB0 aGUgdGVzdCBvYmplY3QgZmlsZSBvbmx5IHNob3dzIHVwCisrICAgICAgICMgb25jZSBpbiB0aGUg Y29tcGlsZXIgb3V0cHV0LgorKyAgICAgICBpZiB0ZXN0ICIkcCIgPSAiY29uZnRlc3QuJG9iamV4 dCI7IHRoZW4KKysJIHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmU9eWVzCisrCSBjb250aW51ZQor KyAgICAgICBmaQorKworKyAgICAgICBpZiB0ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9u ZSIgPSBubzsgdGhlbgorKwkgaWYgdGVzdCAteiAiJHByZWRlcF9vYmplY3RzX0NYWCI7IHRoZW4K KysJICAgcHJlZGVwX29iamVjdHNfQ1hYPSIkcCIKKysJIGVsc2UKKysJICAgcHJlZGVwX29iamVj dHNfQ1hYPSIkcHJlZGVwX29iamVjdHNfQ1hYICRwIgorKwkgZmkKKysgICAgICAgZWxzZQorKwkg aWYgdGVzdCAteiAiJHBvc3RkZXBfb2JqZWN0c19DWFgiOyB0aGVuCisrCSAgIHBvc3RkZXBfb2Jq ZWN0c19DWFg9IiRwIgorKwkgZWxzZQorKwkgICBwb3N0ZGVwX29iamVjdHNfQ1hYPSIkcG9zdGRl cF9vYmplY3RzX0NYWCAkcCIKKysJIGZpCisrICAgICAgIGZpCisrICAgICAgIDs7CisrCisrICAg ICopIDs7ICMgSWdub3JlIHRoZSByZXN0LgorKworKyAgICBlc2FjCisrICBkb25lCisrCisrICAj IENsZWFuIHVwLgorKyAgcm0gLWYgYS5vdXQgYS5leGUKKytlbHNlCisrICBlY2hvICJsaWJ0b29s Lm00OiBlcnJvcjogcHJvYmxlbSBjb21waWxpbmcgQ1hYIHRlc3QgcHJvZ3JhbSIKKytmaQorKwor KyRybSAtZiBjb25mZXN0LiRvYmpleHQKKysKKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hY PQorK2lmIHRlc3QgLW4gIiRjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYIjsgdGhlbgorKyAg Y29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD1gZWNobyAiICR7Y29tcGlsZXJfbGliX3NlYXJj aF9wYXRoX0NYWH0iIHwgJHtTRUR9IC1lICdzISAtTCEgIWcnIC1lICdzIV4gISEnYAorK2ZpCisr CisrIyBQT1JUTUU6IG92ZXJyaWRlIGFib3ZlIHRlc3Qgb24gc3lzdGVtcyB3aGVyZSBpdCBpcyBi cm9rZW4KKytjYXNlICRob3N0X29zIGluCisraW50ZXJpeFszLTldKikKKysgICMgSW50ZXJpeCAz LjUgaW5zdGFsbHMgY29tcGxldGVseSBob3NlZCAubGEgZmlsZXMgZm9yIEMrKywgc28gcmF0aGVy IHRoYW4KKysgICMgaGFjayBhbGwgYXJvdW5kIGl0LCBsZXQncyBqdXN0IHRydXN0ICJnKysiIHRv IERUUlQuCisrICBwcmVkZXBfb2JqZWN0c19DWFg9CisrICBwb3N0ZGVwX29iamVjdHNfQ1hYPQor KyAgcG9zdGRlcHNfQ1hYPQorKyAgOzsKKysKKytsaW51eCopCisrICBjYXNlIGAkQ0MgLVYgMj4m MSB8IHNlZCA1cWAgaW4KKysgICpTdW5cIEMqKQorKyAgICAjIFN1biBDKysgNS45CisrICAgICMK KysgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlz CisrICAgICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lm eWluZworKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCisr ICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KKysgICAgY2FzZSAiICRDWFgg JENYWEZMQUdTICIgaW4KKysgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCisrICAgICAgc29s YXJpc191c2Vfc3RscG9ydDQ9eWVzCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICBpZiB0ZXN0 ICIkc29sYXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgorKyAgICAgIHBvc3RkZXBzX0NY WD0nLWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVuJworKyAgICBmaQorKyAgICA7OworKyAgZXNh YworKyAgOzsKKysKKytzb2xhcmlzKikKKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICBDQyop CisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQgbGlicmFyeSBp cworKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNp ZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcwor KyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisrICAgIGNhc2UgIiAkQ1hY ICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQorKyAgICAgIHNv bGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgIyBB ZGRpbmcgdGhpcyByZXF1aXJlcyBhIGtub3duLWdvb2Qgc2V0dXAgb2Ygc2hhcmVkIGxpYnJhcmll cyBmb3IKKysgICAgIyBTdW4gY29tcGlsZXIgdmVyc2lvbnMgYmVmb3JlIDUuNiwgZWxzZSBQSUMg b2JqZWN0cyBmcm9tIGFuIG9sZAorKyAgICAjIGFyY2hpdmUgd2lsbCBiZSBsaW5rZWQgaW50byB0 aGUgb3V0cHV0LCBsZWFkaW5nIHRvIHN1YnRsZSBidWdzLgorKyAgICBpZiB0ZXN0ICIkc29sYXJp c191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgorKyAgICAgIHBvc3RkZXBzX0NYWD0nLWxpYnJh cnk9Q3N0ZCAtbGlicmFyeT1DcnVuJworKyAgICBmaQorKyAgICA7OworKyAgZXNhYworKyAgOzsK Kytlc2FjCisrCisrY2FzZSAiICRwb3N0ZGVwc19DWFggIiBpbgorKyoiIC1sYyAiKikgYXJjaGl2 ZV9jbWRzX25lZWRfbGNfQ1hYPW5vIDs7CisrZXNhYworKworK2x0X3Byb2dfY29tcGlsZXJfd2xf Q1hYPQorK2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KKytsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19DWFg9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkY29t cGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAiID4mNjsgfQorKworKyAgIyBD Kysgc3BlY2lmaWMgY2FzZXMgZm9yIHBpYywgc3RhdGljLCB3bCwgZXRjLgorKyAgaWYgdGVzdCAi JEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisr ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycKKysKKysgICAgY2FzZSAk aG9zdF9vcyBpbgorKyAgICBhaXgqKQorKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KKysg ICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBw b3J0cyBJQTY0IHByb2Nlc3NvcgorKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3Rh dGljJworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgYW1pZ2FvcyopCisrICAgICAgIyBGSVhN RTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMs IGJ1dAorKyAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMg YnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorKyAgICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlz LXJlc3RvcmUtYTQnCisrICAgICAgOzsKKysgICAgYmVvcyogfCBpcml4NSogfCBpcml4NiogfCBu b25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgICMgUElDIGlzIHRoZSBk ZWZhdWx0IGZvciB0aGVzZSBPU2VzLgorKyAgICAgIDs7CisrICAgIG1pbmd3KiB8IGN5Z3dpbiog fCBvczIqIHwgcHczMiopCisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNl IGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQgZm9yIGlu Y2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSku CisrICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBu ZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQorKyAgICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkg bGlicmFyaWVzCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctRERMTF9FWFBPUlQn CisrICAgICAgOzsKKysgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKysgICAgICAjIFBJQyBpcyB0 aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCisrICAgICAgIyBDb21tb24gc3ltYm9scyBub3Qg YWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLWZuby1jb21tb24nCisrICAgICAgOzsKKysgICAgKmRqZ3BwKikKKysgICAgICAjIERKR1BQ IGRvZXMgbm90IHN1cHBvcnQgc2hhcmVkIGxpYnJhcmllcyBhdCBhbGwKKysgICAgICBsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFg9CisrICAgICAgOzsKKysgICAgaW50ZXJpeFszLTldKikKKysgICAg ICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBj b2RlLgorKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBy dW50aW1lLgorKyAgICAgIDs7CisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91 c3IvbmVjOyB0aGVuCisrCWx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0tS2NvbmZvcm1fcGljCisr ICAgICAgZmkKKysgICAgICA7OworKyAgICBocHV4KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVm YXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBm b3IgUEEgSFAtVVguCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0Knxp YTY0KikKKysJOzsKKysgICAgICAqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElD JworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKyAgICAqKQorKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQor KyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgYWl4WzQtOV0qKQorKwkjIEFsbCBBSVggY29k ZSBpcyBQSUMuCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBBSVgg NSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19DWFg9Jy1Cc3RhdGljJworKwllbHNlCisrCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hY PSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCisrCWZpCisrCTs7CisrICAgICAgY2hvcnVz KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJY3hjaDY4KikKKysJICAjIEdyZWVuIEhpbGxz IEMrKyBDb21waWxlcgorKwkgICMgX0xUX0FDX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgQ1hYKT0iLS1ub19hdXRvX2luc3RhbnRpYXRpb24gLXUgX19tYWluIC11IF9fcHJlbWFpbiAt dSBfYWJvcnQgLXIgJENPT0xfRElSL2xpYi9saWJPcmIuYSAkTVZNRV9ESVIvbGliL0NDL2xpYkMu YSAkTVZNRV9ESVIvbGliL2NsYXNzaXgvbGliY3gucy5hIgorKwkgIDs7CisrCWVzYWMKKysJOzsK KysgICAgICAgZGFyd2luKikKKysgICAgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlz IHBsYXRmb3JtCisrICAgICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9E WUxJQiBmaWxlcworKyAgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgICB4 bGMqKQorKyAgICAgICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcW5vY29tbW9uJwor KyAgICAgICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisrICAgICAgICAgICA7 OworKyAgICAgICAgIGVzYWMKKysgICAgICAgOzsKKysgICAgICBkZ3V4KikKKysJY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysJICBlYysrKikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0n LUtQSUMnCisrCSAgICA7OworKwkgIGdoY3gqKQorKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29t cGlsZXIKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKKysJICAgIDs7Cisr CSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBmcmVlYnNkKiB8IGRyYWdvbmZs eSopCisrCSMgRnJlZUJTRCB1c2VzIEdOVSBDKysKKysJOzsKKysgICAgICBocHV4OSogfCBocHV4 MTAqIHwgaHB1eDExKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAgICBs dF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljX0NYWD0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrCSAgICBpZiB0ZXN0ICIkaG9zdF9jcHUi ICE9IGlhNjQ7IHRoZW4KKysJICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPScrWicKKysJ ICAgIGZpCisrCSAgICA7OworKwkgIGFDQyopCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NY WD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nJHt3bH0tYSAke3ds fWFyY2hpdmUnCisrCSAgICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAgaHBwYSo2NCp8aWE2NCop CisrCSAgICAgICMgK1ogdGhlIGRlZmF1bHQKKysJICAgICAgOzsKKysJICAgICopCisrCSAgICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nK1onCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisr CSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgaW50ZXJpeCop CisrCSMgVGhpcyBpcyBjODksIHdoaWNoIGlzIE1TIFZpc3VhbCBDKysgKG5vIHNoYXJlZCBsaWJz KQorKwkjIEFueW9uZSB3YW50cyB0byBkbyBhIHBvcnQ/CisrCTs7CisrICAgICAgaXJpeDUqIHwg aXJpeDYqIHwgbm9uc3RvcHV4KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisr CSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGls ZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCisrCSAgICAjIENDIHBpYyBmbGFnIC1LUElDIGlz IHRoZSBkZWZhdWx0LgorKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7Owor KyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAg S0NDKikKKysJICAgICMgS0FJIEMrKyBDb21waWxlcgorKwkgICAgbHRfcHJvZ19jb21waWxlcl93 bF9DWFg9Jy0tYmFja2VuZCAtV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSct ZlBJQycKKysJICAgIDs7CisrCSAgaWNwYyogfCBlY3BjKikKKysJICAgICMgSW50ZWwgQysrCisr CSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0nLUtQSUMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1z dGF0aWMnCisrCSAgICA7OworKwkgIHBnQ0MqIHwgcGdjcHAqKQorKwkgICAgIyBQb3J0bGFuZCBH cm91cCBDKysgY29tcGlsZXIuCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcK KysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZwaWMnCisrCSAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwkgICAgOzsKKysJICBjeHgqKQorKwkgICAg IyBDb21wYXEgQysrCisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJ dCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQg VW5peCBvYmplY3RzIGFyZSBQSUMuCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Cisr CSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1ub25fc2hhcmVkJworKwkgICAgOzsK KysJICAqKQorKwkgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSAgICAqU3Vu XCBDKikKKysJICAgICAgIyBTdW4gQysrIDUuOQorKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFg9Jy1LUElDJworKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3Rh dGljJworKwkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVFvcHRpb24gbGQgJworKwkg ICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGx5bnhv cyopCisrCTs7CisrICAgICAgbTg4ayopCisrCTs7CisrICAgICAgbXZzKikKKysJY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysJICBjeHgqKQorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSct VyBjLGV4cG9ydGFsbCcKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsK KysgICAgICBuZXRic2QqKQorKwk7OworKyAgICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysJ Y2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBLQ0MqKQorKwkgICAgbHRfcHJvZ19jb21waWxlcl93 bF9DWFg9Jy0tYmFja2VuZCAtV2wsJworKwkgICAgOzsKKysJICBSQ0MqKQorKwkgICAgIyBSYXRp b25hbCBDKysgMi40LjEKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKKysJ ICAgIDs7CisrCSAgY3h4KikKKysJICAgICMgRGlnaXRhbC9Db21wYXEgQysrCisrCSAgICBsdF9w cm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxh ZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKKysJICAgICMgTGludXggYW5k IENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KKysJICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0KKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFy ZWQnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgcHNv cyopCisrCTs7CisrICAgICAgc29sYXJpcyopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAg Q0MqKQorKwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKworKwkgICAg bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJf c3RhdGljX0NYWD0nLUJzdGF0aWMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVFv cHRpb24gbGQgJworKwkgICAgOzsKKysJICBnY3gqKQorKwkgICAgIyBHcmVlbiBIaWxscyBDKysg Q29tcGlsZXIKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLVBJQycKKysJICAgIDs7 CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBzdW5vczQqKQorKwljYXNl ICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgICMgU3VuIEMrKyA0LngKKysJICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljX0NYWD0nLUJzdGF0aWMnCisrCSAgICA7OworKwkgIGxjYyopCisrCSAgICAjIEx1Y2lkCisr CSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCisrCSAgICA7OworKwkgICopCisr CSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgdGFuZGVtKikKKysJY2FzZSAkY2NfYmFzZW5h bWUgaW4KKysJICBOQ0MqKQorKwkgICAgIyBOb25TdG9wLVVYIE5DQyAzLjIwCisrCSAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsK KysJZXNhYworKwk7OworKyAgICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNj bzV2NiogfCBPcGVuVU5JWCopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkg ICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVy X3BpY19DWFg9Jy1LUElDJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0 YXRpYycKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICB2eHdvcmtzKikKKysJOzsKKysg ICAgICAqKQorKwlsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWRfQ1hYPW5vCisrCTs7 CisrICAgIGVzYWMKKysgIGZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFgiID4mNjsgfQorKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUg UElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lmIHRlc3QgLW4gIiRsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFgiOyB0aGVuCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIHdvcmtz IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3By b2dfY29tcGlsZXJfcGljX0NYWCB3b3Jrcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3Zf cHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dv cmtzX0NYWD1ubworKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrICAgZWNobyAi JGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrICAgbHRf Y29tcGlsZXJfZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCAtRFBJQyIKKysgICAjIElu c2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxl LCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3Ig KDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMg bm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBz aWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisr ICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29u ZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwK KysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisr ICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAg IC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21l OjEzNDgwOiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNv bmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgY29uZnRlc3QuZXJyID4mNQor KyAgIGVjaG8gIiRhc19tZToxMzQ4NDogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4 aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCisrICAgICAjIFRo ZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVj b2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRo YW4gdGhlIHVzdWFsIG91dHB1dC4KKysgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2lsZXJw bGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9k OyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVs bDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFg9eWVzCisr ICAgICBmaQorKyAgIGZpCisrICAgJHJtIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NY WCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgiID4m NjsgfQorKworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYIiA9 IHh5ZXM7IHRoZW4KKysgICAgY2FzZSAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIGluCisrICAg ICAiIiB8ICIgIiopIDs7CisrICAgICAqKSBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9IiAkbHRf cHJvZ19jb21waWxlcl9waWNfQ1hYIiA7OworKyAgICAgZXNhYworK2Vsc2UKKysgICAgbHRfcHJv Z19jb21waWxlcl9waWNfQ1hYPQorKyAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hh cmVkX0NYWD1ubworK2ZpCisrCisrZmkKKytjYXNlICRob3N0X29zIGluCisrICAjIEZvciBwbGF0 Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoKKysg ICpkamdwcCopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KKysgICAgOzsKKysgICop CisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WCAtRFBJQyIKKysgICAgOzsKKytlc2FjCisrCisrIworKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRo ZSBzdGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KKysjCisrd2w9JGx0X3Byb2dfY29tcGlsZXJf d2xfQ1hYIGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj X0NYWFwiCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxl ciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3 b3Jrcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNf d29ya3NfQ1hYK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD1ubworKyAg IHNhdmVfTERGTEFHUz0iJExERkxBR1MiCisrICAgTERGTEFHUz0iJExERkxBR1MgJGx0X3RtcF9z dGF0aWNfZmxhZyIKKysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0 ZXN0LiRhY19leHQKKysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVz dCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KKysgICAgICMgVGhlIGxpbmtlciBjYW4gb25s eSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBT byBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0 LmVycjsgdGhlbgorKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9n LgorKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKysgICAgICAgJGVjaG8gIlgkX2x0X2xp bmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3QuZXhwCisrICAg ICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAg ICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgor KyAgICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD15ZXMKKysgICAg ICAgZmkKKysgICAgIGVsc2UKKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29y a3NfQ1hYPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRybSAtciBjb25mdGVzdCoKKysgICBM REZMQUdTPSIkc2F2ZV9MREZMQUdTIgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCIgPiY1Cisr JGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgiID4mNjsgfQor KworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYIiA9IHh5 ZXM7IHRoZW4KKysgICAgOgorK2Vsc2UKKysgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hY PQorK2ZpCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRj b21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCtzZXR9IiA9 IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9j dl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9bm8KKysgICAkcm0gLXIgY29uZnRlc3QgMj4vZGV2L251 bGwKKysgICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0Cisr ICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0 CisrCisrICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0Igor KyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1Mg dmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVz dC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNl bGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEg ZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJl Y3RseS4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAt ZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUg J3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdz OiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjEzNTg0 OiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25m dGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1 CisrICAgZWNobyAiJGFzX21lOjEzNTg4OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgICBpZiAo ZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAorKyAg IHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUg b3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUg d2FybmluZ3MKKysgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNl ZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICor L2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKKysgICAgIGlmIHRlc3QgISAt cyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3Qu ZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hY PXllcworKyAgICAgZmkKKysgICBmaQorKyAgIGNobW9kIHUrdyAuIDI+JjUKKysgICAkcm0gY29u ZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQv aWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQg b3V0L2lpX2ZpbGVzICYmICRybSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMK KysgICAkcm0gb3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysgICBybWRpciBjb25mdGVz dAorKyAgICRybSBjb25mdGVzdCoKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID4mNQorKyRhc19lY2hvICIk bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjY7IH0KKysKKysKKytoYXJkX2xpbmtzPSJu b3R0ZXN0ZWQiCisraWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPSBubyAm JiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KKysgICMgZG8gbm90IG92ZXJ3cml0ZSB0 aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgorKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5r cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxp bmtzLi4uICIgPiY2OyB9CisrICBoYXJkX2xpbmtzPXllcworKyAgJHJtIGNvbmZ0ZXN0KgorKyAg bG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KKysg IHRvdWNoIGNvbmZ0ZXN0LmEKKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhh cmRfbGlua3M9bm8KKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBo YXJkX2xpbmtzPW5vCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFy ZF9saW5rcyIgPiY1CisrJGFzX2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7IH0KKysgIGlmIHRlc3Qg IiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVuCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1q JyBtYXkgYmUgdW5zYWZlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYCRDQycg ZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+ JjI7fQorKyAgICBuZWVkX2xvY2tzPXdhcm4KKysgIGZpCisrZWxzZQorKyAgbmVlZF9sb2Nrcz1u bworK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIg dGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExE KSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrCisrICBleHBvcnRfc3lt Ym9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9s X3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1i b2xzJworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4WzQtOV0qKQorKyAgICAjIElmIHdlJ3Jl IHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KKysgICAg IyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3 aXRoIEdOVSBubQorKyAgICBpZiAkTk0gLVYgMj4mMSB8IGdyZXAgJ0dOVScgPiAvZGV2L251bGw7 IHRoZW4KKysgICAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NIC1CcGcgJGxpYm9ianMg JGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkMiA9PSAiVCIpIHx8IChcJDIgPT0gIkQi KSB8fCAoXCQyID09ICJCIikpICYmIChzdWJzdHIoXCQzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBc JDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrICAgIGVsc2UKKysgICAg ICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5j ZSB8IGF3ayAnXCcneyBpZiAoKChcJDIgPT0gIlQiKSB8fCAoXCQyID09ICJEIikgfHwgKFwkMiA9 PSAiQiIpKSAmJiAoc3Vic3RyKFwkMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQzIH0gfSdcJycg fCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgICBmaQorKyAgICA7OworKyAgcHczMiop CisrICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSIkbHRkbGxfY21kcyIKKysgIDs7CisrICBj eWd3aW4qIHwgbWluZ3cqKQorKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRsaWJv YmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltC Q0RHUlNdWyBdL3MvLipbIF1cKFteIF0qXCkvXDEgREFUQS87L14uKlsgXV9fbm1fXy9zL14uKlsg XV9fbm1fX1woW14gXSpcKVsgXVteIF0qL1wxIERBVEEvOy9eSVsgXS9kOy9eW0FJVFddWyBdL3Mv LipbIF0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgIDs7CisrICAq KQorKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5j ZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1 bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgOzsKKysgIGVzYWMKKysgIGV4Y2x1ZGVfZXhwc3lt c19DWFg9J19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKicKKysKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1CisrJGFz X2VjaG8gIiRsZF9zaGxpYnNfQ1hYIiA+JjY7IH0KKyt0ZXN0ICIkbGRfc2hsaWJzX0NYWCIgPSBu byAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrIworKyMgRG8gd2UgbmVlZCB0byBleHBsaWNp dGx5IGxpbmsgbGliYz8KKysjCisrY2FzZSAieCRhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgiIGlu CisreHx4eWVzKQorKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBiZSBhZGRlZAorKyAgYXJjaGl2ZV9j bWRzX25lZWRfbGNfQ1hYPXllcworKworKyAgaWYgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVz ICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGNhc2UgJGFyY2hpdmVfY21kc19DWFgg aW4KKysgICAgKid+JyopCisrICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRo IG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgorKyAgICAgIDs7CisrICAgICckQ0MgJyopCisrICAg ICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMg c2luY2Ugb24gc29tZQorKyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUgYmVmb3Jl IC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYworKyAgICAgICMgdG8gbGQsIGRvbid0IGFk ZCAtbGMgYmVmb3JlIC1sZ2NjLgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4iID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxp bmtlZCBpbi4uLiAiID4mNjsgfQorKyAgICAgICRybSBjb25mdGVzdCoKKysgICAgICBlY2hvICIk bHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICAg ICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUK KysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAgc29uYW1lPWNvbmZ0ZXN0Cisr ICAgICAgICBsaWI9Y29uZnRlc3QKKysgICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4 dAorKyAgICAgICAgZGVwbGlicz0KKysgICAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsX0NY WAorKwlwaWNfZmxhZz0kbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYCisrICAgICAgICBjb21waWxl cl9mbGFncz0tdgorKyAgICAgICAgbGlua2VyX2ZsYWdzPS12CisrICAgICAgICB2ZXJzdHJpbmc9 CisrICAgICAgICBvdXRwdXRfb2JqZGlyPS4KKysgICAgICAgIGxpYm5hbWU9Y29uZnRlc3QKKysg ICAgICAgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGFsbG93X3VuZGVmaW5lZF9mbGFn X0NYWAorKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPQorKyAgICAgICAgaWYgeyAo ZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYXJjaGl2ZV9jbWRzX0NYWCAyXD5cJjEgXHwg Z3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxXCIiKSA+JjUKKysgIChldmFsICRhcmNo aXZlX2NtZHNfQ1hYIDJcPlwmMSBcfCBncmVwIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEp IDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9CisrICAgICAgICB0aGVu CisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisrICAgICAgICBlbHNlCisrCSAgYXJj aGl2ZV9jbWRzX25lZWRfbGNfQ1hYPXllcworKyAgICAgICAgZmkKKysgICAgICAgIGFsbG93X3Vu ZGVmaW5lZF9mbGFnX0NYWD0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZworKyAgICAgIGVs c2UKKysgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgIGZpCisrICAgICAgJHJt IGNvbmZ0ZXN0KgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh cmNoaXZlX2NtZHNfbmVlZF9sY19DWFgiID4mNQorKyRhc19lY2hvICIkYXJjaGl2ZV9jbWRzX25l ZWRfbGNfQ1hYIiA+JjY7IH0KKysgICAgICA7OworKyAgICBlc2FjCisrICBmaQorKyAgOzsKKytl c2FjCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGR5bmFtaWMgbGlu a2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZHluYW1pYyBs aW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIgPiY2OyB9CisrbGlicmFyeV9uYW1lc19zcGVjPQor K2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCisrc29uYW1lX3NwZWM9Cisrc2hyZXh0X2NtZHM9Ii5z byIKKytwb3N0aW5zdGFsbF9jbWRzPQorK3Bvc3R1bmluc3RhbGxfY21kcz0KKytmaW5pc2hfY21k cz0KKytmaW5pc2hfZXZhbD0KKytzaGxpYnBhdGhfdmFyPQorK3NobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD11bmtub3duCisrdmVyc2lvbl90eXBlPW5vbmUKKytkeW5hbWljX2xpbmtlcj0iJGhv c3Rfb3MgbGQuc28iCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIi CisrCisrbmVlZF9saWJfcHJlZml4PXVua25vd24KKytoYXJkY29kZV9pbnRvX2xpYnM9bm8KKysK KysjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBpdCBkb2VzIG5v dCBjYXVzZSAtc2V0X3ZlcnNpb24KKysjIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1bWVu dHMKKytuZWVkX3ZlcnNpb249dW5rbm93bgorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgzKikK KysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEnCisrICBzaGxpYnBh dGhfdmFyPUxJQlBBVEgKKysKKysgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwg c28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KKysgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICA7OworKworK2Fp eFs0LTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3Qg IiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2NAorKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGVs c2UKKysgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0ZSBh biBpbXBvcnQgZmlsZQorKyAgICAjIGZvciBkZXBlbmRlbmNlIGxpYnJhcmllcy4gIFRoZSBpbXBv cnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCisrICAgICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhpcyB3 b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KKysgICAgIyBkZXBlbmQgb24gYC4n LCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQgaW4KKysgICAgIyBk ZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMuMC4KKysgICAgY2FzZSAkaG9z dF9vcyBpbgorKyAgICAgIGFpeDQgfCBhaXg0LlswMV0gfCBhaXg0LlswMV0uKikKKysgICAgICBp ZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIgJiYgX19HTlVDX01J Tk9SX18gPj0gOTcpJworKwkgICBlY2hvICcgeWVzICcKKysJICAgZWNobyAnI2VuZGlmJzsgfSB8 ICR7Q0N9IC1FIC0gfCBncmVwIHllcyA+IC9kZXYvbnVsbDsgdGhlbgorKwk6CisrICAgICAgZWxz ZQorKwljYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBlc2Fj CisrICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIGN1 cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKKysgICAgIyBzb25hbWUgaW50byBl eGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcgc3VwcG9ydCB0bworKyAg ICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNhbiBiZSB1c2VmdWwgaW4gZnV0dXJl LgorKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysg ICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0LjIgb3IgbGF0ZXIpIHVz ZSBsaWI8bmFtZT4uc28KKysgICAgICAjIGluc3RlYWQgb2YgbGliPG5hbWU+LmEgdG8gbGV0IHBl b3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAorKyAgICAgICMgdHlwaWNhbCBBSVggc2hhcmVk IGxpYnJhcmllcy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgZWxzZQorKyAgICAgICMgV2Ug cHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFyaWVzIHRocm91Z2ggQUlY NC4yCisrICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRvaW5nIHJ1biB0aW1lIGxp bmtpbmcuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5h ICRsaWJuYW1lLmEnCisrICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKKysgICAgZmkKKysgICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisr ICBmaQorKyAgOzsKKysKKythbWlnYW9zKikKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5h bWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEnCisrICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFy eS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgorKyAgZmluaXNoX2V2YWw9J2ZvciBsaWIgaW4gYGxz ICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1lPWAkZWNobyAiWCRs aWIiIHwgJFhzZWQgLWUgJ1wnJ3MlXi4qL1woW14vXSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcnYDsg dGVzdCAkcm0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAvc3lz L2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9saWJz ICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7IGRvbmUnCisr ICA7OworKworK2Jlb3MqKQorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFy ZWRfZXh0fScKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKysgIHNobGlicGF0 aF92YXI9TElCUkFSWV9QQVRICisrICA7OworKworK2JzZGlbNDVdKikKKysgIHZlcnNpb25fdHlw ZT1saW51eAorKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBmaW5pc2hf Y21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGli IC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9s aWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3Iv bG9jYWwvbGliIgorKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vz ci9jb250cmliL2xpYiBhbmQKKysgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGlu ayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdworKyAgIyBsaWJ0b29sIHRvIGhhcmQt Y29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCisrICA7OworKworK2N5Z3dpbiogfCBtaW5ndyogfCBw dzMyKikKKysgIHZlcnNpb25fdHlwZT13aW5kb3dzCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysg IG5lZWRfdmVyc2lvbj1ubworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrCisrICBjYXNlICRHQ0Ms JGhvc3Rfb3MgaW4KKysgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKikKKysg ICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKKysgICAgIyBETEwgaXMgaW5z dGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcworKyAgICBwb3N0 aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KKysgICAgICBkbHBh dGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTtlY2hv IFwkZGxuYW1lJ1wnJ2B+CisrICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhg fgorKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgorKyAgICAgICRp bnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRsbmFtZX4KKysgICAgICBjaG1vZCBh K3ggXCRkbGRpci8kZGxuYW1lJworKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hF TEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRscGF0 aD0kZGlyL1wkZGxkbGx+CisrICAgICAgICRybSBcJGRscGF0aCcKKysgICAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcworKworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGN5Z3dp biopCisrICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFuICds aWInCisrICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxp Yi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZp eH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9s aWIgL2xpYi93MzJhcGkgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgICAgICA7OworKyAgICBtaW5n dyopCisrICAgICAgIyBNaW5HVyBETExzIHVzZSB0cmFkaXRpb25hbCAnbGliJyBwcmVmaXgKKysg ICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdz L1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgZ3JlcCAiXmxpYnJhcmllczoi IHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAorKyAgICAgIGlmIGVj aG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgZ3JlcCAnO1tjLXpDLVpdOi8nID4vZGV2 L251bGw7IHRoZW4KKysgICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9y bWF0IFBBVEggcHJpbnRlZCBieQorKyAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVu bmluZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJjaAorKyAgICAgICAgIyBwYXRoIHdp dGggOyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRo ZQorKyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRz IHRoZW0pLCBzbyBsZWF2ZSB0aGVtLAorKyAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0 IHBhc3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1wLAorKyAgICAgICAgIyB3 aGljaCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgorKyAgICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAorKyAgICAgIGVsc2UKKysgICAgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VE ICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKysgICAgICBmaQorKyAgICAgIDs7CisrICAg IHB3MzIqKQorKyAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIgdGhhbiAn bGliJworKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAt ZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2 ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAgICA7OworKyAgICBlc2FjCisrICAgIDs7Cisr CisrICAqKQorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVh c2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9ICRsaWJu YW1lLmxpYicKKysgICAgOzsKKysgIGVzYWMKKysgIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBsZC5l eGUnCisrICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJlY3Rv cnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KKysgIHNobGlicGF0aF92YXI9UEFUSAorKyAgOzsKKysK KytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGR5bGQi CisrICB2ZXJzaW9uX3R5cGU9ZGFyd2luCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRf dmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 dmVyc3VmZml4fSRzaGFyZWRfZXh0ICR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVk X2V4dCAke2xpYm5hbWV9JHNoYXJlZF9leHQnCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0JworKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcworKyAgc2hsaWJwYXRoX3Zhcj1EWUxEX0xJQlJBUllfUEFUSAorKyAgc2hyZXh0X2Nt ZHM9J2B0ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIC5zbyB8fCBlY2hvIC5keWxpYmAnCisr CisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL2xpYiAvdXNy L2xpYicKKysgIDs7CisrCisrZGd1eCopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRf bGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHNoYXJlZF9leHQnCisrICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrZnJlZWJzZDEqKQorKyAgZHlu YW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAgIyBE cmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9pZiB0aGV5IGltcGxlbWVudCBhIG5l dworKyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0IHRoaXMuCisrICBpZiB0ZXN0IC14 IC91c3IvYmluL29iamZvcm1hdDsgdGhlbgorKyAgICBvYmpmb3JtYXQ9YC91c3IvYmluL29iamZv cm1hdGAKKysgIGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBmcmVlYnNkWzEyM10q KSBvYmpmb3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7CisrICAgIGVzYWMK KysgIGZpCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0CisrICBjYXNlICR2ZXJz aW9uX3R5cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICAgIG5l ZWRfdmVyc2lvbj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAg IGZyZWVic2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCcKKysgICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAgOzsKKysgIGVzYWMKKysgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X29zIGluCisrICBmcmVlYnNk MiopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgOzsKKysgIGZy ZWVic2QzLlswMV0qIHwgZnJlZWJzZGVsZjMuWzAxXSopCisrICAgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7OworKyAg ZnJlZWJzZDMuWzItOV0qIHwgZnJlZWJzZGVsZjMuWzItOV0qIHwgXAorKyAgZnJlZWJzZDQuWzAt NV0gfCBmcmVlYnNkZWxmNC5bMC01XSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2RlbGY0LjEuMSkK KysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25GbHkKKysg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2dudSopCisrICB2ZXJzaW9uX3R5 cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgx MSopCisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVyc2lv biBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsgYWdhaW5zdCBvdGhlciB2ZXJz aW9ucy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBu ZWVkX3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBpYTY0KikKKysgICAgc2hy ZXh0X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICBkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2Vu dnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBpZiB0ZXN0ICJY JEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xp YiIKKysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIv aHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkKKysgICAgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7OworKyAgIGhw cGEqNjQqKQorKyAgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKKysgICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElCX1BB VEgKKysgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52 dmFyIGlzIHNwZWNpZmllZC4KKysgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIK KysgICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWMKKysgICAgIDs7CisrICAgKikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHluYW1p Y19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRI CisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRv IGVuYWJsZSBTSExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAgZXNh YworKyAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmll cyBhcmUgbW9kZSA1NTUuCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKKysg IDs7CisrCisraW50ZXJpeFszLTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9s aWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAg ZHluYW1pY19saW5rZXI9J0ludGVyaXggMy54IGxkLnNvLjEgKFBFLCBsaWtlIEVMRiknCisrICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2lyaXg1KiB8IGly aXg2KiB8IG5vbnN0b3B1eCopCisrICBjYXNlICRob3N0X29zIGluCisrICAgIG5vbnN0b3B1eCop IHZlcnNpb25fdHlwZT1ub25zdG9wdXggOzsKKysgICAgKikKKysJaWYgdGVzdCAiJGx0X2N2X3By b2dfZ251X2xkIiA9IHllczsgdGhlbgorKwkJdmVyc2lvbl90eXBlPWxpbnV4CisrCWVsc2UKKysJ CXZlcnNpb25fdHlwZT1pcml4CisrCWZpIDs7CisrICBlc2FjCisrICBuZWVkX2xpYl9wcmVmaXg9 bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGlyaXg1KiB8IG5vbnN0 b3B1eCopCisrICAgIGxpYnN1ZmY9IHNobGlic3VmZj0KKysgICAgOzsKKysgICopCisrICAgIGNh c2UgJExEIGluICMgbGlidG9vbC5tNCB3aWxsIGFkZCBvbmUgb2YgdGhlc2Ugc3dpdGNoZXMgdG8g TEQKKysgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8KiItbWVsZjMyYnNtaXAgIikKKysg ICAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPTMyLWJpdDs7CisrICAgICotbjMyfCoi LW4zMiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlwbjMyICIpCisrICAgICAgbGlic3Vm Zj0zMiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7CisrICAgICotNjR8KiItNjQgInwqLW1l bGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAiKQorKyAgICAgIGxpYnN1ZmY9NjQgc2hsaWJzdWZmPTY0 IGxpYm1hZ2ljPTY0LWJpdDs7CisrICAgICopIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9 bmV2ZXItbWF0Y2g7OworKyAgICBlc2FjCisrICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUlkke3NobGlic3VmZn1fUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZm fSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCisrICBzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IgorKyAg aGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKysjIE5vIHNoYXJlZCBsaWIgc3VwcG9y dCBmb3IgTGludXggb2xkbGQsIGFvdXQsIG9yIGNvZmYuCisrbGludXgqb2xkbGQqIHwgbGludXgq YW91dCogfCBsaW51eCpjb2ZmKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworKyMg VGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgdmVyc2lv bl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubwor KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRj b25maWcgLW4gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICMgVGhpcyBpbXBsaWVzIG5vIGZhc3Rf aW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgorKyAgIyBTb21lIHJld29yayB3aWxsIGJl IG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCisrICAjIGJlZm9yZSB0aGlzIGNhbiBi ZSBlbmFibGVkLgorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9s aWIke2xpYnN1ZmZ9IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHts aWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKKysKKysgICMgQXBwZW5kIGxkLnNvLmNvbmYgY29udGVu dHMgdG8gdGhlIHNlYXJjaCBwYXRoCisrICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhl bgorKyAgICBsdF9sZF9leHRyYT1gYXdrICcvXmluY2x1ZGUgLyB7IHN5c3RlbShzcHJpbnRmKCJj ZCAvZXRjOyBjYXQgJXMgMj4vZGV2L251bGwiLCBcJDIpKTsgc2tpcCA9IDE7IH0geyBpZiAoIXNr aXApIHByaW50IFwkMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwgJFNFRCAtZSAn cy8jLiovLzsvXlsgCV0qaHdjYXBbIAldL2Q7cy9bOiwJXS8gL2c7cy89W149XSokLy87cy89W149 IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJhIgorKyAgZmkK KysKKysgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2FibGUgc2hh cmVkIGxpYnJhcmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXggb25seSBzdXBw b3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAgIyBHTlUgZHluYW1pYyBsaW5rZXIu ICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCisrICAjIG1vc3Qg cG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0aGVzZSBkYXlzIGFu ZAorKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3YXMg cmVtb3ZlZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlua2Vy IGlzIGluIHVzZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28nCisrICA7Owor KworK25ldGJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1u bworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdy ZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4i IGxkY29uZmlnIC1tICRsaWJkaXInCisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0 KSBsZC5zbycKKysgIGVsc2UKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZHluYW1pY19s aW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCisrICBmaQorKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrbmV3c29zNikKKysgIHZlcnNpb25fdHlwZT1saW51 eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgOzsKKysKKytudG8tcW54KikKKysg IHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNp b249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICA7OworKworK29wZW5ic2Qq KQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0i L3Vzci9saWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICMgU29tZSBvbGRlciB2ZXJzaW9u cyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4KKysg IGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMuKikgbmVlZF92 ZXJzaW9uPXllcyA7OworKyAgICAqKSAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkX3ZlcnNp b249bm8gIDs7CisrICBlc2FjCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0g JGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBpZiB0ZXN0IC16 ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9z dF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgY2FzZSAk aG9zdF9vcyBpbgorKyAgICAgIG9wZW5ic2QyLls4OV0gfCBvcGVuYnNkMi5bODldLiopCisrCXNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKwk7OworKyAgICAgICopCisrCXNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysJOzsKKysgICAgICBlc2FjCisrICBlbHNlCisrICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGZpCisrICA7OworKworK29zMiop CisrICBsaWJuYW1lX3NwZWM9JyRuYW1lJworKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICBuZWVk X2xpYl9wcmVmaXg9bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9l eHR9ICRsaWJuYW1lLmEnCisrICBkeW5hbWljX2xpbmtlcj0nT1MvMiBsZC5leGUnCisrICBzaGxp YnBhdGhfdmFyPUxJQlBBVEgKKysgIDs7CisrCisrb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAg dmVyc2lvbl90eXBlPW9zZgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249 bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisr ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91c3Iv bGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAvdmFyL3NobGliIgorKyAgc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCisrICA7 OworKworK3Jkb3MqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrc29sYXJpcyop CisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92 ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaGFyZGNvZGVfaW50 b19saWJzPXllcworKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4ZWN1 dGFibGUKKysgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRsaWInCisrICA7OworKworK3N1 bm9zNCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi91c3IvZXRj IiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9s ZCIgPSB5ZXM7IHRoZW4KKysgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICBmaQorKyAgbmVlZF92 ZXJzaW9uPXllcworKyAgOzsKKysKKytzeXN2NCB8IHN5c3Y0LjMqKQorKyAgdmVyc2lvbl90eXBl PWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysgICAgc25pKQorKyAgICAgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmxhcmdlZHluc3ltJworKyAgICAgIHJ1bnBh dGhfdmFyPUxEX1JVTl9QQVRICisrICAgICAgOzsKKysgICAgc2llbWVucykKKysgICAgICBuZWVk X2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBtb3Rvcm9sYSkKKysgICAgICBuZWVkX2xp Yl9wcmVmaXg9bm8KKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysgICAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIg L3Vzci9saWIgL3Vzci9jY3MvbGliJworKyAgICAgIDs7CisrICBlc2FjCisrICA7OworKworK3N5 c3Y0Kk1QKikKKysgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KKysgICAgdmVyc2lvbl90eXBl PWxpbnV4CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2 ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCisrICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJworKyAg ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgZmkKKysgIDs7CisrCisrc3lzdjUq IHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3 MiopCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKKysgIG5lZWRfbGliX3ByZWZpeD1ubwor KyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251 X2xkIiA9IHllczsgdGhlbgorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9j YWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicKKysgICAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBlbHNlCisrICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYz0nL3Vzci9jY3MvbGliIC91c3IvbGliJworKyAgICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBzY28zLjJ2NSop CisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWMgL2xpYiIKKysJOzsKKysgICAgZXNhYworKyAgZmkKKysgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPScvdXNyL2xpYicKKysgIDs7CisrCisrdXRzNCopCisrICB2ZXJzaW9uX3R5cGU9 bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICA7OworKworKyopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKytlc2FjCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGR5bmFtaWNfbGlua2VyIiA+JjUKKysk YXNfZWNobyAiJGR5bmFtaWNfbGlua2VyIiA+JjY7IH0KKyt0ZXN0ICIkZHluYW1pY19saW5rZXIi ID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorKworK3N5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytpZiB0ZXN0ICIke2x0X2N2X3N5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCisrZmkKKysKKytzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIgorKworK3Zh cmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRzaGxpYnBhdGhfdmFyICRydW5wYXRoX3Zh ciIKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgdmFyaWFibGVzX3NhdmVkX2Zvcl9y ZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBHQ0NfRVhFQ19QUkVGSVggQ09NUElM RVJfUEFUSCBMSUJSQVJZX1BBVEgiCisrZmkKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcyIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMg aW50byBwcm9ncmFtcy4uLiAiID4mNjsgfQorK2hhcmRjb2RlX2FjdGlvbl9DWFg9CisraWYgdGVz dCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYIiB8fCBcCisrICAgdGVzdCAtbiAi JHJ1bnBhdGhfdmFyX0NYWCIgfHwgXAorKyAgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21hdGljX0NY WCIgPSAiWHllcyIgOyB0aGVuCisrCisrICAjIFdlIGNhbiBoYXJkY29kZSBub24tZXhpc3RhbnQg ZGlyZWN0b3JpZXMuCisrICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0X0NYWCIgIT0gbm8gJiYK KysgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMgc2hs aWJwYXRoX3Zhciwgd2UKKysgICAgICMgaGF2ZSB0byByZWxpbmssIG90aGVyd2lzZSB3ZSBtaWdo dCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKKysgICAgICMgd2hlbiB3ZSBzaG91bGQg YmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBvbmUKKysgICAgICMjIHRlc3Qg IiRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsIENYWCkiICE9IG5vICYmCisr ICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTF9DWFgiICE9IG5vOyB0aGVuCisrICAgICMgTGlu a2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGlicmFyeSBkaXJlY3RvcnkuCisr ICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9cmVsaW5rCisrICBlbHNlCisrICAgICMgV2UgY2FuIGxp bmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRp cnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9aW1tZWRpYXRlCisrICBmaQorK2Vsc2UKKysg ICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRj b2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9yaWVzLgorKyAgaGFyZGNvZGVfYWN0aW9uX0NYWD11 bnN1cHBvcnRlZAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGhh cmRjb2RlX2FjdGlvbl9DWFgiID4mNQorKyRhc19lY2hvICIkaGFyZGNvZGVfYWN0aW9uX0NYWCIg PiY2OyB9CisrCisraWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbl9DWFgiID0gcmVsaW5rOyB0aGVu CisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKysgIGVuYWJsZV9mYXN0 X2luc3RhbGw9bm8KKytlbGlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0g eWVzIHx8CisrICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSBubzsgdGhlbgorKyAgIyBGYXN0 IGluc3RhbGxhdGlvbiBpcyBub3QgbmVjZXNzYXJ5CisrICBlbmFibGVfZmFzdF9pbnN0YWxsPW5l ZWRsZXNzCisrZmkKKysKKysKKysjIFRoZSBlbHNlIGNsYXVzZSBzaG91bGQgb25seSBmaXJlIHdo ZW4gYm9vdHN0cmFwcGluZyB0aGUKKysjIGxpYnRvb2wgZGlzdHJpYnV0aW9uLCBvdGhlcndpc2Ug eW91IGZvcmdvdCB0byBzaGlwIGx0bWFpbi5zaAorKyMgd2l0aCB5b3VyIHBhY2thZ2UsIGFuZCB5 b3Ugd2lsbCBnZXQgY29tcGxhaW50cyB0aGF0IHRoZXJlIGFyZQorKyMgbm8gcnVsZXMgdG8gZ2Vu ZXJhdGUgbHRtYWluLnNoLgorK2lmIHRlc3QgLWYgIiRsdG1haW4iOyB0aGVuCisrICAjIFNlZSBp ZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxsb3cg b3VyIGNvbW1hbmRzIHRocm91Z2gKKysgICMgd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcy4K KysgIGlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisrICAgIHNldG9wdCBO T19HTE9CX1NVQlNUCisrICBmaQorKyAgIyBOb3cgcXVvdGUgYWxsIHRoZSB0aGluZ3MgdGhhdCBt YXkgY29udGFpbiBtZXRhY2hhcmFjdGVycyB3aGlsZSBiZWluZworKyAgIyBjYXJlZnVsIG5vdCB0 byBvdmVycXVvdGUgdGhlIEFDX1NVQlNUZWQgdmFsdWVzLiAgV2UgdGFrZSBjb3BpZXMgb2YgdGhl CisrICAjIHZhcmlhYmxlcyBhbmQgcXVvdGUgdGhlIGNvcGllcyBmb3IgZ2VuZXJhdGlvbiBvZiB0 aGUgbGlidG9vbCBzY3JpcHQuCisrICBmb3IgdmFyIGluIGVjaG8gb2xkX0NDIG9sZF9DRkxBR1Mg QVIgQVJfRkxBR1MgRUdSRVAgUkFOTElCIExOX1MgTFRDQyBMVENGTEFHUyBOTSBcCisrICAgIFNF RCBTSEVMTCBTVFJJUCBcCisrICAgIGxpYm5hbWVfc3BlYyBsaWJyYXJ5X25hbWVzX3NwZWMgc29u YW1lX3NwZWMgZXh0cmFjdF9leHBzeW1zX2NtZHMgXAorKyAgICBvbGRfc3RyaXBsaWIgc3RyaXBs aWIgZmlsZV9tYWdpY19jbWQgZmluaXNoX2NtZHMgZmluaXNoX2V2YWwgXAorKyAgICBkZXBsaWJz X2NoZWNrX21ldGhvZCByZWxvYWRfZmxhZyByZWxvYWRfY21kcyBuZWVkX2xvY2tzIFwKKysgICAg bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19j ZGVjbCBcCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIFwK KysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj IFwKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHMgb2xkX3Bvc3R1bmluc3RhbGxfY21kcyBcCisr ICAgIGNvbXBpbGVyX0NYWCBcCisrICAgIENDX0NYWCBcCisrICAgIExEX0NYWCBcCisrICAgIGx0 X3Byb2dfY29tcGlsZXJfd2xfQ1hYIFwKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIFwK KysgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYIFwKKysgICAgbHRfcHJvZ19jb21waWxl cl9ub19idWlsdGluX2ZsYWdfQ1hYIFwKKysgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NY WCBcCisrICAgIHRocmVhZF9zYWZlX2ZsYWdfc3BlY19DWFggXAorKyAgICB3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlY19DWFggXAorKyAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVz X0NYWCBcCisrICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYIFwKKysgICAgb2xkX2FyY2hpdmVfZnJv bV9uZXdfY21kc19DWFggXAorKyAgICBwcmVkZXBfb2JqZWN0c19DWFggXAorKyAgICBwb3N0ZGVw X29iamVjdHNfQ1hYIFwKKysgICAgcHJlZGVwc19DWFggXAorKyAgICBwb3N0ZGVwc19DWFggXAor KyAgICBjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYIFwKKysgICAgY29tcGlsZXJfbGliX3Nl YXJjaF9kaXJzX0NYWCBcCisrICAgIGFyY2hpdmVfY21kc19DWFggXAorKyAgICBhcmNoaXZlX2V4 cHN5bV9jbWRzX0NYWCBcCisrICAgIHBvc3RpbnN0YWxsX2NtZHNfQ1hYIFwKKysgICAgcG9zdHVu aW5zdGFsbF9jbWRzX0NYWCBcCisrICAgIG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NY WCBcCisrICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWCBcCisrICAgIG5vX3VuZGVmaW5lZF9m bGFnX0NYWCBcCisrICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYIFwKKysgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19DWFggXAorKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xk X0NYWCBcCisrICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYIFwKKysgICAgaGFyZGNv ZGVfYXV0b21hdGljX0NYWCBcCisrICAgIG1vZHVsZV9jbWRzX0NYWCBcCisrICAgIG1vZHVsZV9l eHBzeW1fY21kc19DWFggXAorKyAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFggXAorKyAg ICBmaXhfc3JjZmlsZV9wYXRoX0NYWCBcCisrICAgIGV4Y2x1ZGVfZXhwc3ltc19DWFggXAorKyAg ICBpbmNsdWRlX2V4cHN5bXNfQ1hYOyBkbworKworKyAgICBjYXNlICR2YXIgaW4KKysgICAgb2xk X2FyY2hpdmVfY21kc19DWFggfCBcCisrICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hY IHwgXAorKyAgICBhcmNoaXZlX2NtZHNfQ1hYIHwgXAorKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRz X0NYWCB8IFwKKysgICAgbW9kdWxlX2NtZHNfQ1hYIHwgXAorKyAgICBtb2R1bGVfZXhwc3ltX2Nt ZHNfQ1hYIHwgXAorKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFggfCBcCisr ICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYIHwgXAorKyAgICBleHRyYWN0X2V4cHN5bXNfY21k cyB8IHJlbG9hZF9jbWRzIHwgZmluaXNoX2NtZHMgfCBcCisrICAgIHBvc3RpbnN0YWxsX2NtZHMg fCBwb3N0dW5pbnN0YWxsX2NtZHMgfCBcCisrICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzIHwgb2xk X3Bvc3R1bmluc3RhbGxfY21kcyB8IFwKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIHwg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMpCisrICAgICAgIyBEb3VibGUtcXVvdGUgZG91Ymxl LWV2YWxlZCBzdHJpbmdzLgorKyAgICAgIGV2YWwgImx0XyR2YXI9XFxcIlxgXCRlY2hvIFwiWFwk JHZhclwiIHwgXCRYc2VkIC1lIFwiXCRkb3VibGVfcXVvdGVfc3Vic3RcIiAtZSBcIlwkc2VkX3F1 b3RlX3N1YnN0XCIgLWUgXCJcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XCJcYFxcXCIiCisrICAgICAg OzsKKysgICAgKikKKysgICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwkZWNobyBcIlhcJCR2YXJc IiB8IFwkWHNlZCAtZSBcIlwkc2VkX3F1b3RlX3N1YnN0XCJcYFxcXCIiCisrICAgICAgOzsKKysg ICAgZXNhYworKyAgZG9uZQorKworKyAgY2FzZSAkbHRfZWNobyBpbgorKyAgKidcJDAgLS1mYWxs YmFjay1lY2hvIicpCisrICAgIGx0X2VjaG89YCRlY2hvICJYJGx0X2VjaG8iIHwgJFhzZWQgLWUg J3MvXFxcXFxcXCQwIC0tZmFsbGJhY2stZWNobyIkLyQwIC0tZmFsbGJhY2stZWNobyIvJ2AKKysg ICAgOzsKKysgIGVzYWMKKysKKytjZmdmaWxlPSIkb2ZpbGUiCisrCisrICBjYXQgPDxfX0VPRl9f ID4+ICIkY2ZnZmlsZSIKKysjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1l CisrCisrIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFt ZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgorKworKyMgU2hlbGwgdG8gdXNlIHdoZW4gaW52 b2tpbmcgc2hlbGwgc2NyaXB0cy4KKytTSEVMTD0kbHRfU0hFTEwKKysKKysjIFdoZXRoZXIgb3Ig bm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCisrYnVpbGRfbGlidG9vbF9saWJzPSRlbmFi bGVfc2hhcmVkCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVz LgorK2J1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0 byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzLgorK2J1aWxkX2xpYnRvb2xf bmVlZF9sYz0kYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0 byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljCisrYWxs b3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRlbmFibGVfc2hhcmVkX3dpdGhf c3RhdGljX3J1bnRpbWVzX0NYWAorKworKyMgV2hldGhlciBvciBub3QgdG8gb3B0aW1pemUgZm9y IGZhc3QgaW5zdGFsbGF0aW9uLgorK2Zhc3RfaW5zdGFsbD0kZW5hYmxlX2Zhc3RfaW5zdGFsbAor KworKyMgVGhlIGhvc3Qgc3lzdGVtLgorK2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMKKytob3N0PSRo b3N0CisraG9zdF9vcz0kaG9zdF9vcworKworKyMgVGhlIGJ1aWxkIHN5c3RlbS4KKytidWlsZF9h bGlhcz0kYnVpbGRfYWxpYXMKKytidWlsZD0kYnVpbGQKKytidWlsZF9vcz0kYnVpbGRfb3MKKysK KysjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGludGVycHJldCBiYWNrc2xhc2hlcy4K KytlY2hvPSRsdF9lY2hvCisrCisrIyBUaGUgYXJjaGl2ZXIuCisrQVI9JGx0X0FSCisrQVJfRkxB R1M9JGx0X0FSX0ZMQUdTCisrCisrIyBBIEMgY29tcGlsZXIuCisrTFRDQz0kbHRfTFRDQworKwor KyMgTFRDQyBjb21waWxlciBmbGFncy4KKytMVENGTEFHUz0kbHRfTFRDRkxBR1MKKysKKysjIEEg bGFuZ3VhZ2Utc3BlY2lmaWMgY29tcGlsZXIuCisrQ0M9JGx0X2NvbXBpbGVyX0NYWAorKworKyMg SXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgQyBjb21waWxlcj8KKyt3aXRoX2djYz0kR0NDX0NYWAor KworKyMgQW4gRVJFIG1hdGNoZXIuCisrRUdSRVA9JGx0X0VHUkVQCisrCisrIyBUaGUgbGlua2Vy IHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgorK0xEPSRsdF9MRF9DWFgKKysKKysjIFdoZXRoZXIg d2UgbmVlZCBoYXJkIG9yIHNvZnQgbGlua3MuCisrTE5fUz0kbHRfTE5fUworKworKyMgQSBCU0Qt Y29tcGF0aWJsZSBubSBwcm9ncmFtLgorK05NPSRsdF9OTQorKworKyMgQSBzeW1ib2wgc3RyaXBw aW5nIHByb2dyYW0KKytTVFJJUD0kbHRfU1RSSVAKKysKKysjIFVzZWQgdG8gZXhhbWluZSBsaWJy YXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMgImZpbGUiCisrTUFHSUNfQ01EPSRNQUdJ Q19DTUQKKysKKysjIFVzZWQgb24gY3lnd2luOiBETEwgY3JlYXRpb24gcHJvZ3JhbS4KKytETExU T09MPSIkRExMVE9PTCIKKysKKysjIFVzZWQgb24gY3lnd2luOiBvYmplY3QgZHVtcGVyLgorK09C SkRVTVA9IiRPQkpEVU1QIgorKworKyMgVXNlZCBvbiBjeWd3aW46IGFzc2VtYmxlci4KKytBUz0i JEFTIgorKworKyMgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRlbXBv cmFyeSBsaWJ0b29sIGZpbGVzLgorK29iamRpcj0kb2JqZGlyCisrCisrIyBIb3cgdG8gY3JlYXRl IHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLgorK3JlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZwor K3JlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kcworKworKyMgSG93IHRvIHBhc3MgYSBsaW5rZXIg ZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlci4KKyt3bD0kbHRfbHRfcHJvZ19jb21waWxlcl93bF9D WFgKKysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8iKS4KKytvYmpleHQ9IiRh Y19vYmpleHQiCisrCisrIyBPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIikuCisrbGli ZXh0PSIkbGliZXh0IgorKworKyMgU2hhcmVkIGxpYnJhcnkgc3VmZml4IChub3JtYWxseSAiLnNv IikuCisrc2hyZXh0X2NtZHM9JyRzaHJleHRfY21kcycKKysKKysjIEV4ZWN1dGFibGUgZmlsZSBz dWZmaXggKG5vcm1hbGx5ICIiKS4KKytleGVleHQ9IiRleGVleHQiCisrCisrIyBBZGRpdGlvbmFs IGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCisrcGljX2ZsYWc9 JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWAorK3BpY19tb2RlPSRwaWNfbW9kZQorKworKyMg V2hhdCBpcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYSBjb21tYW5kPworK21heF9jbWRfbGVuPSRs dF9jdl9zeXNfbWF4X2NtZF9sZW4KKysKKysjIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkg c3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KKytjb21waWxlcl9jX289JGx0X2x0X2N2X3Byb2df Y29tcGlsZXJfY19vX0NYWAorKworKyMgTXVzdCB3ZSBsb2NrIGZpbGVzIHdoZW4gZG9pbmcgY29t cGlsYXRpb24/CisrbmVlZF9sb2Nrcz0kbHRfbmVlZF9sb2NrcworKworKyMgRG8gd2UgbmVlZCB0 aGUgbGliIHByZWZpeCBmb3IgbW9kdWxlcz8KKytuZWVkX2xpYl9wcmVmaXg9JG5lZWRfbGliX3By ZWZpeAorKworKyMgRG8gd2UgbmVlZCBhIHZlcnNpb24gZm9yIGxpYnJhcmllcz8KKytuZWVkX3Zl cnNpb249JG5lZWRfdmVyc2lvbgorKworKyMgV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkLgor K2Rsb3Blbl9zdXBwb3J0PSRlbmFibGVfZGxvcGVuCisrCisrIyBXaGV0aGVyIGRsb3BlbiBvZiBw cm9ncmFtcyBpcyBzdXBwb3J0ZWQuCisrZGxvcGVuX3NlbGY9JGVuYWJsZV9kbG9wZW5fc2VsZgor KworKyMgV2hldGhlciBkbG9wZW4gb2Ygc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3Vw cG9ydGVkLgorK2Rsb3Blbl9zZWxmX3N0YXRpYz0kZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYwor KworKyMgQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZy4KKytsaW5rX3N0 YXRpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFgKKysKKysjIENvbXBpbGVy IGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCisrbm9fYnVpbHRpbl9mbGFnPSRs dF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFgKKysKKysjIENvbXBpbGVyIGZs YWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCisrZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj PSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYCisrCisrIyBDb21waWxlciBmbGFnIHRv IGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZyb20gYXJjaGl2ZXMuCisrd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWM9JGx0X3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWAorKworKyMg Q29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQtc2FmZSBvYmplY3RzLgorK3RocmVhZF9z YWZlX2ZsYWdfc3BlYz0kbHRfdGhyZWFkX3NhZmVfZmxhZ19zcGVjX0NYWAorKworKyMgTGlicmFy eSB2ZXJzaW9uaW5nIHR5cGUuCisrdmVyc2lvbl90eXBlPSR2ZXJzaW9uX3R5cGUKKysKKysjIEZv cm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4LgorK2xpYm5hbWVfc3BlYz0kbHRfbGlibmFtZV9z cGVjCisrCisrIyBMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJzdCBuYW1lIGlzIHRoZSByZWFs IG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgorKyMgVGhlIGxhc3QgbmFtZSBpcyB0aGUgb25lIHRo YXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRS4KKytsaWJyYXJ5X25hbWVzX3NwZWM9JGx0 X2xpYnJhcnlfbmFtZXNfc3BlYworKworKyMgVGhlIGNvZGVkIG5hbWUgb2YgdGhlIGxpYnJhcnks IGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWUuCisrc29uYW1lX3NwZWM9JGx0X3NvbmFt ZV9zcGVjCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGFuIG9sZC1z dHlsZSBhcmNoaXZlLgorK1JBTkxJQj0kbHRfUkFOTElCCisrb2xkX2FyY2hpdmVfY21kcz0kbHRf b2xkX2FyY2hpdmVfY21kc19DWFgKKytvbGRfcG9zdGluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3Rp bnN0YWxsX2NtZHMKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPSRsdF9vbGRfcG9zdHVuaW5zdGFs bF9jbWRzCisrCisrIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJlZCBh cmNoaXZlLgorK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21f bmV3X2NtZHNfQ1hYCisrCisrIyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUg dG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUuCisrb2xkX2FyY2hpdmVfZnJvbV9l eHBzeW1zX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWAorKworKyMg Q29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBhIHNoYXJlZCBhcmNoaXZlLgorK2Fy Y2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzX0NYWAorK2FyY2hpdmVfZXhwc3ltX2NtZHM9JGx0 X2FyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYCisrcG9zdGluc3RhbGxfY21kcz0kbHRfcG9zdGluc3Rh bGxfY21kcworK3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfcG9zdHVuaW5zdGFsbF9jbWRzCisrCisr IyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIChhc3N1bWVkIHNhbWUg YXMgYWJvdmUgaWYgZW1wdHkpCisrbW9kdWxlX2NtZHM9JGx0X21vZHVsZV9jbWRzX0NYWAorK21v ZHVsZV9leHBzeW1fY21kcz0kbHRfbW9kdWxlX2V4cHN5bV9jbWRzX0NYWAorKworKyMgQ29tbWFu ZHMgdG8gc3RyaXAgbGlicmFyaWVzLgorK29sZF9zdHJpcGxpYj0kbHRfb2xkX3N0cmlwbGliCisr c3RyaXBsaWI9JGx0X3N0cmlwbGliCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3Jl IHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQorKyMgc2hhcmVkIGxpYnJhcnku CisrcHJlZGVwX29iamVjdHM9JGx0X3ByZWRlcF9vYmplY3RzX0NYWAorKworKyMgRGVwZW5kZW5j aWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQor KyMgc2hhcmVkIGxpYnJhcnkuCisrcG9zdGRlcF9vYmplY3RzPSRsdF9wb3N0ZGVwX29iamVjdHNf Q1hYCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIHRoZSBvYmplY3RzIGJlaW5n IGxpbmtlZCB0byBjcmVhdGUgYQorKyMgc2hhcmVkIGxpYnJhcnkuCisrcHJlZGVwcz0kbHRfcHJl ZGVwc19DWFgKKysKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBhZnRlciB0aGUgb2JqZWN0cyBi ZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKKysjIHNoYXJlZCBsaWJyYXJ5LgorK3Bvc3RkZXBzPSRs dF9wb3N0ZGVwc19DWFgKKysKKysjIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNv bXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQKKysjIGxpYnJhcnkKKytjb21waWxlcl9saWJf c2VhcmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFgKKysKKysjIFRoZSBs aWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBs aW5raW5nCisrIyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0k bHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWAorKworKyMgTWV0aG9kIHRvIGNoZWNrIHdo ZXRoZXIgZGVwZW5kZW50IGxpYnJhcmllcyBhcmUgc2hhcmVkIG9iamVjdHMuCisrZGVwbGlic19j aGVja19tZXRob2Q9JGx0X2RlcGxpYnNfY2hlY2tfbWV0aG9kCisrCisrIyBDb21tYW5kIHRvIHVz ZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID09IGZpbGVfbWFnaWMuCisrZmlsZV9tYWdpY19j bWQ9JGx0X2ZpbGVfbWFnaWNfY21kCisrCisrIyBGbGFnIHRoYXQgYWxsb3dzIHNoYXJlZCBsaWJy YXJpZXMgd2l0aCB1bmRlZmluZWQgc3ltYm9scyB0byBiZSBidWlsdC4KKythbGxvd191bmRlZmlu ZWRfZmxhZz0kbHRfYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYCisrCisrIyBGbGFnIHRoYXQgZm9y Y2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgorK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRl ZmluZWRfZmxhZ19DWFgKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9vbCBs aWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeS4KKytmaW5pc2hfY21kcz0kbHRfZmlu aXNoX2NtZHMKKysKKysjIFNhbWUgYXMgYWJvdmUsIGJ1dCBhIHNpbmdsZSBzY3JpcHQgZnJhZ21l bnQgdG8gYmUgZXZhbGVkIGJ1dCBub3Qgc2hvd24uCisrZmluaXNoX2V2YWw9JGx0X2ZpbmlzaF9l dmFsCisrCisrIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5nIG9m IHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzLgorK2dsb2JhbF9zeW1ib2xfcGlwZT0kbHRfbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfcGlwZQorKworKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0g aW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbgorK2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9JGx0X2x0 X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsCisrCisrIyBUcmFuc2Zvcm0gdGhlIG91dHB1 dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIKKytnbG9iYWxfc3ltYm9sX3RvX2NfbmFt ZV9hZGRyZXNzPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcwor KworKyMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkgcnVudGltZSBwYXRoIHZhcmlhYmxlLgor K3J1bnBhdGhfdmFyPSRydW5wYXRoX3ZhcgorKworKyMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJh cnkgcGF0aCB2YXJpYWJsZS4KKytzaGxpYnBhdGhfdmFyPSRzaGxpYnBhdGhfdmFyCisrCisrIyBJ cyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2VhcmNo IHBhdGg/Cisrc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGgKKysKKysjIEhvdyB0byBoYXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGggaW50 byBhbiBleGVjdXRhYmxlLgorK2hhcmRjb2RlX2FjdGlvbj0kaGFyZGNvZGVfYWN0aW9uX0NYWAor KworKyMgV2hldGhlciB3ZSBzaG91bGQgaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIGxpYnJh cmllcy4KKytoYXJkY29kZV9pbnRvX2xpYnM9JGhhcmRjb2RlX2ludG9fbGlicworKworKyMgRmxh ZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgorKyMg VGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdC4KKytoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWAorKwor KyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIg aW50bworKyMgYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYg XCRsaWJkaXIgZG9lcworKyMgbm90IGV4aXN0LgorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf bGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYCisrCisrIyBXaGV0aGVyIHdl IG5lZWQgYSBzaW5nbGUgLXJwYXRoIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4KKyto YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NY WAorKworKyMgU2V0IHRvIHllcyBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0gZHVy aW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvIHRoZQorKyMgcmVzdWx0aW5nIGJpbmFyeS4K KytoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVjdF9DWFgKKysKKysjIFNldCB0byB5ZXMg aWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRv IHRoZQorKyMgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9taW51c19MPSRoYXJkY29kZV9t aW51c19MX0NYWAorKworKyMgU2V0IHRvIHllcyBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBk dXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8KKysjIHRoZSByZXN1bHRpbmcgYmluYXJ5 LgorK2hhcmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYCisr CisrIyBTZXQgdG8geWVzIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxs eSBoYXJkY29kZXMgRElSIGludG8gdGhlIGxpYnJhcnkKKysjIGFuZCBhbGwgc3Vic2VxdWVudCBs aWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZCBhZ2FpbnN0IGl0LgorK2hhcmRjb2RlX2F1 dG9tYXRpYz0kaGFyZGNvZGVfYXV0b21hdGljX0NYWAorKworKyMgVmFyaWFibGVzIHdob3NlIHZh bHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5kCisrIyBy ZXN0b3JlZCBhdCByZWxpbmsgdGltZS4KKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZh cmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIgorKworKyMgV2hldGhlciBsaWJ0b29sIG11c3QgbGlu ayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgorK2xpbmtf YWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnNfQ1hYCisrCisrIyBDb21waWxlLXRpbWUgc3lz dGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKKytzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 JGx0X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKworKyMgUnVuLXRpbWUgc3lzdGVtIHNlYXJj aCBwYXRoIGZvciBsaWJyYXJpZXMKKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lz X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMKKysKKysjIEZpeCB0aGUgc2hlbGwgdmFyaWFibGUgXCRz cmNmaWxlIGZvciB0aGUgY29tcGlsZXIuCisrZml4X3NyY2ZpbGVfcGF0aD0kbHRfZml4X3NyY2Zp bGVfcGF0aAorKworKyMgU2V0IHRvIHllcyBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJl ZC4KKythbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFgKKysK KysjIFRoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHMuCisrZXhwb3J0X3N5bWJv bHNfY21kcz0kbHRfZXhwb3J0X3N5bWJvbHNfY21kc19DWFgKKysKKysjIFRoZSBjb21tYW5kcyB0 byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hpdmUu CisrZXh0cmFjdF9leHBzeW1zX2NtZHM9JGx0X2V4dHJhY3RfZXhwc3ltc19jbWRzCisrCisrIyBT eW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xz LgorK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zX0NYWAorKworKyMgU3ltYm9s cyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgorK2luY2x1ZGVfZXhwc3ltcz0kbHRfaW5j bHVkZV9leHBzeW1zX0NYWAorKworKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWdu YW1lCisrCisrX19FT0ZfXworKworKworK2Vsc2UKKysgICMgSWYgdGhlcmUgaXMgbm8gTWFrZWZp bGUgeWV0LCB3ZSByZWx5IG9uIGEgbWFrZSBydWxlIHRvIGV4ZWN1dGUKKysgICMgYGNvbmZpZy5z dGF0dXMgLS1yZWNoZWNrJyB0byByZXJ1biB0aGVzZSB0ZXN0cyBhbmQgY3JlYXRlIHRoZQorKyAg IyBsaWJ0b29sIHNjcmlwdCB0aGVuLgorKyAgbHRtYWluX2luPWBlY2hvICRsdG1haW4gfCBzZWQg LWUgJ3MvXC5zaCQvLmluLydgCisrICBpZiB0ZXN0IC1mICIkbHRtYWluX2luIjsgdGhlbgorKyAg ICB0ZXN0IC1mIE1ha2VmaWxlICYmIG1ha2UgIiRsdG1haW4iCisrICBmaQorK2ZpCisrCisrCisr YWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAk Q0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUK KysKKytDQz0kbHRfc2F2ZV9DQworK0xEQ1hYPSRMRAorK0xEPSRsdF9zYXZlX0xECisrR0NDPSRs dF9zYXZlX0dDQworK3dpdGhfZ251X2xkY3h4PSR3aXRoX2dudV9sZAorK3dpdGhfZ251X2xkPSRs dF9zYXZlX3dpdGhfZ251X2xkCisrbHRfY3ZfcGF0aF9MRENYWD0kbHRfY3ZfcGF0aF9MRAorK2x0 X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAorK2x0X2N2X3Byb2dfZ251X2xkY3h4PSRsdF9j dl9wcm9nX2dudV9sZAorK2x0X2N2X3Byb2dfZ251X2xkPSRsdF9zYXZlX3dpdGhfZ251X2xkCisr CisrCWVsc2UKKysJICB0YWduYW1lPSIiCisrCWZpCisrCTs7CisrCisrICAgICAgRjc3KQorKwlp ZiB0ZXN0IC1uICIkRjc3IiAmJiB0ZXN0ICJYJEY3NyIgIT0gIlhubyI7IHRoZW4KKysKKythY19l eHQ9ZgorK2FjX2NvbXBpbGU9JyRGNzcgLWMgJEZGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK KythY19saW5rPSckRjc3IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkRkZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfZjc3X2Nv bXBpbGVyX2dudQorKworKworK2FyY2hpdmVfY21kc19uZWVkX2xjX0Y3Nz1ubworK2FsbG93X3Vu ZGVmaW5lZF9mbGFnX0Y3Nz0KKythbHdheXNfZXhwb3J0X3N5bWJvbHNfRjc3PW5vCisrYXJjaGl2 ZV9leHBzeW1fY21kc19GNzc9CisrZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3Nz0KKytoYXJk Y29kZV9kaXJlY3RfRjc3PW5vCisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9CisraGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9GNzc9CisraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv cl9GNzc9CisraGFyZGNvZGVfbWludXNfTF9GNzc9bm8KKytoYXJkY29kZV9hdXRvbWF0aWNfRjc3 PW5vCisrbW9kdWxlX2NtZHNfRjc3PQorK21vZHVsZV9leHBzeW1fY21kc19GNzc9CisrbGlua19h bGxfZGVwbGlic19GNzc9dW5rbm93bgorK29sZF9hcmNoaXZlX2NtZHNfRjc3PSRvbGRfYXJjaGl2 ZV9jbWRzCisrbm9fdW5kZWZpbmVkX2ZsYWdfRjc3PQorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVj X0Y3Nz0KKytlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0Y3Nz1ubworKworKyMg U291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBmNzcgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1mCisr CisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIGY3NyB0ZXN0IHNvdXJjZXMu Cisrb2JqZXh0PW8KKytvYmpleHRfRjc3PSRvYmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBp biBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAor KyAgICAgIHN1YnJvdXRpbmUgdAorKyAgICAgIHJldHVybgorKyAgICAgIGVuZAorKyIKKysKKysj IENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rl c3RfY29kZT0iXAorKyAgICAgIHByb2dyYW0gdAorKyAgICAgIGVuZAorKyIKKysKKysjIGx0bWFp biBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRD QyBpcyBzZXQuCisrCisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4K KytMVENDPSR7TFRDQy0iJENDIn0KKysKKysjIElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBz cGVjaWZpZWQsIHVzZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9Cisr CisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytjb21w aWxlcj0kQ0MKKysKKysKKysjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRl c3QgY29kZQorK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorK2VjaG8gIiRsdF9zaW1w bGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0CisrZXZhbCAiJGFjX2NvbXBp bGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJy CisrX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRybSBjb25m dGVzdCoKKysKKythY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRfc2lt cGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19saW5rIiAy PiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19s dF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCisrJHJtIC1yIGNvbmZ0ZXN0 KgorKworKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMu CisrbHRfc2F2ZV9DQz0iJENDIgorK0NDPSR7Rjc3LSJmNzcifQorK2NvbXBpbGVyPSRDQworK2Nv bXBpbGVyX0Y3Nz0kQ0MKKytmb3IgY2NfdGVtcCBpbiAkY29tcGlsZXIiIjsgZG8KKysgIGNhc2Ug JGNjX3RlbXAgaW4KKysgICAgY29tcGlsZSB8ICpbXFwvXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xc L11jY2FjaGUgKSA7OworKyAgICBkaXN0Y2MgfCAqW1xcL11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xc L11wdXJpZnkgKSA7OworKyAgICBcLSopIDs7CisrICAgICopIGJyZWFrOzsKKysgIGVzYWMKKytk b25lCisrY2NfYmFzZW5hbWU9YCRlY2hvICJYJGNjX3RlbXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUn IC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCisrCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVz Li4uICIgPiY2OyB9CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNhbl9i dWlsZF9zaGFyZWQiID4mNQorKyRhc19lY2hvICIkY2FuX2J1aWxkX3NoYXJlZCIgPiY2OyB9Cisr CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQg c2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBi dWlsZCBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrdGVzdCAiJGNhbl9idWlsZF9zaGFy ZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCisrCisrIyBPbiBBSVgsIHNoYXJlZCBsaWJy YXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFjZSwgYW5kCisr IyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgzKikKKysg IHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisrICBpZiB0 ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZlX2NtZHN+ XCRSQU5MSUIgXCRsaWIiCisrICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKKysg IGZpCisrICA7OworK2FpeFs0LTldKikKKysgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NCAm JiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBubyA7IHRoZW4KKysgICAgdGVzdCAi JGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKysgIGZpCisrICA7Owor K2VzYWMKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZW5hYmxlX3NoYXJl ZCIgPiY1CisrJGFzX2VjaG8gIiRlbmFibGVfc2hhcmVkIiA+JjY7IH0KKysKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFy aWVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBs aWJyYXJpZXMuLi4gIiA+JjY7IH0KKysjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBv ciBlbmFibGVfc3RhdGljIGlzIHllcy4KKyt0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgfHwg ZW5hYmxlX3N0YXRpYz15ZXMKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk ZW5hYmxlX3N0YXRpYyIgPiY1CisrJGFzX2VjaG8gIiRlbmFibGVfc3RhdGljIiA+JjY7IH0KKysK KytHQ0NfRjc3PSIkRzc3IgorK0xEX0Y3Nz0iJExEIgorKworK2x0X3Byb2dfY29tcGlsZXJfd2xf Rjc3PQorK2x0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0KKytsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19GNzc9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkY29t cGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAiID4mNjsgfQorKworKyAgaWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1X bCwnCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0nLXN0YXRpYycKKysKKysgICAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUgaXMg UElDLgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUg bm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3 Nz0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysg ICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxlYXN0IDY4MDIwIGNvZGUgdG8gYnVpbGQgc2hhcmVk IGxpYnJhcmllcywgYnV0CisrICAgICAgIyBhZGRpbmcgdGhlIGAtbTY4MDIwJyBmbGFnIHRvIEdD QyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBiZXR0ZXIsCisrICAgICAgIyBsaWtlIGAtbTY4 MDQwJy4KKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1tNjgwMjAgLXJlc2lkZW50 MzIgLW1hbHdheXMtcmVzdG9yZS1hNCcKKysgICAgICA7OworKworKyAgICBiZW9zKiB8IGlyaXg1 KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAg IyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisrICAgICAgOzsKKysKKysgICAg bWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBz byB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAg ICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1i b2xzIGZvciBleGFtcGxlKS4KKysgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9y ZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxlCisrICAgICAgIyAoLS1kaXNh YmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19G Nzc9Jy1ERExMX0VYUE9SVCcKKysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkq KQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KKysgICAgICAj IENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCisrICAgICAgbHRf cHJvZ19jb21waWxlcl9waWNfRjc3PSctZm5vLWNvbW1vbicKKysgICAgICA7OworKworKyAgICBp bnRlcml4WzMtOV0qKQorKyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlv bnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCisrICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBz aGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCisrICAgICAgOzsKKysKKysgICAgbXNkb3Nkamdw cCopCisrICAgICAgIyBKdXN0IGJlY2F1c2Ugd2UgdXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ugc3Vk ZGVubHkgZ2V0IHNoYXJlZCBsaWJyYXJpZXMKKysgICAgICAjIG9uIHN5c3RlbXMgdGhhdCBkb24n dCBzdXBwb3J0IHRoZW0uCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVk X0Y3Nz1ubworKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKysgICAgICA7OworKworKyAgICBzeXN2 NCpNUCopCisrICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgorKwlsdF9wcm9nX2NvbXBp bGVyX3BpY19GNzc9LUtjb25mb3JtX3BpYworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAg aHB1eCopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0 LWJpdCBIUC1VWCwgYnV0CisrICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgorKyAgICAgIGNhc2Ug JGhvc3RfY3B1IGluCisrICAgICAgaHBwYSo2NCp8aWE2NCopCisrCSMgK1ogdGhlIGRlZmF1bHQK KysJOzsKKysgICAgICAqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1mUElDJworKwk7 OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0Y3Nz0nLWZQSUMnCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAg ICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0byBwYXNzIGxpbmtlciBmbGFncyB0aHJvdWdoIHRo ZSBzeXN0ZW0gY29tcGlsZXIuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgYWl4KikKKysg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcKKysgICAgICBpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3Nv cgorKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJworKyAgICAgIGVsc2UK KysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5l eHAnCisrICAgICAgZmkKKysgICAgICA7OworKyAgICAgIGRhcndpbiopCisrICAgICAgICAjIFBJ QyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCisrICAgICAgICAjIENvbW1vbiBzeW1i b2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCisrICAgICAgIGNhc2UgJGNjX2Jhc2Vu YW1lIGluCisrICAgICAgICAgeGxjKikKKysgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19G Nzc9Jy1xbm9jb21tb24nCisrICAgICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwn CisrICAgICAgICAgOzsKKysgICAgICAgZXNhYworKyAgICAgICA7OworKworKyAgICBtaW5ndyog fCBjeWd3aW4qIHwgcHczMiogfCBvczIqKQorKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQg dGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKKysgICAgICAjIGJ1 aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9y IGV4YW1wbGUpLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLURETExfRVhQT1JU JworKyAgICAgIDs7CisrCisrICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctV2wsJworKyAgICAgICMgUElDIGlzIHRoZSBkZWZh dWx0IGZvciBJQTY0IEhQLVVYIGFuZCA2NC1iaXQgSFAtVVgsIGJ1dAorKyAgICAgICMgbm90IGZv ciBQQSBIUC1VWC4KKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIGhwcGEqNjQqfGlh NjQqKQorKwkjICtaIHRoZSBkZWZhdWx0CisrCTs7CisrICAgICAgKikKKysJbHRfcHJvZ19jb21w aWxlcl9waWNfRjc3PScrWicKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgIyBJcyB0aGVyZSBh IGJldHRlciBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyB0aGF0IHdvcmtzIHdpdGggdGhlIGJ1bmRs ZWQgQ0M/CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PScke3dsfS1hICR7d2x9 YXJjaGl2ZScKKysgICAgICA7OworKworKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgq KQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctV2wsJworKyAgICAgICMgUElDICh3 aXRoIC1LUElDKSBpcyB0aGUgZGVmYXVsdC4KKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRp Y19GNzc9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIG5ld3NvczYpCisrICAgICAg bHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctS1BJQycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19GNzc9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIGxpbnV4KiB8IGsqYnNk Ki1nbnUpCisrICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICBpY2MqIHwgZWNjKikK KysJbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnCisrCWx0X3Byb2dfY29tcGlsZXJfcGlj X0Y3Nz0nLUtQSUMnCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0nLXN0YXRpYycKKysg ICAgICAgIDs7CisrICAgICAgcGdjYyogfCBwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCisrICAg ICAgICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBpbGVycyAoKm5vdCogdGhlIFBlbnRpdW0gZ2NjIGNv bXBpbGVyLAorKwkjIHdoaWNoIGxvb2tzIHRvIGJlIGEgZGVhZCBwcm9qZWN0KQorKwlsdF9wcm9n X2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcKKysJbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctZnBp YycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSctQnN0YXRpYycKKysgICAgICAgIDs7 CisrICAgICAgY2NjKikKKysgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctV2wsJwor KyAgICAgICAgIyBBbGwgQWxwaGEgY29kZSBpcyBQSUMuCisrICAgICAgICBsdF9wcm9nX2NvbXBp bGVyX3N0YXRpY19GNzc9Jy1ub25fc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICAqKQorKyAg ICAgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSpTdW5cIEMqKQorKwkgICMg U3VuIEMgNS45CisrCSAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctS1BJQycKKysJICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJworKwkgIGx0X3Byb2dfY29tcGlsZXJf d2xfRjc3PSctV2wsJworKwkgIDs7CisrCSpTdW5cIEYqKQorKwkgICMgU3VuIEZvcnRyYW4gOC4z IHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKKysJICBsdF9wcm9n X2NvbXBpbGVyX3BpY19GNzc9Jy1LUElDJworKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3 Nz0nLUJzdGF0aWMnCisrCSAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9JycKKysJICA7OworKwll c2FjCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIG9zZjMqIHwgb3NmNCog fCBvc2Y1KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcKKysgICAgICAj IEFsbCBPU0YvMSBjb2RlIGlzIFBJQy4KKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19G Nzc9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHJkb3MqKQorKyAgICAgIGx0X3By b2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0nLW5vbl9zaGFyZWQnCisrICAgICAgOzsKKysKKysgICAg c29sYXJpcyopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctS1BJQycKKysgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1Cc3RhdGljJworKyAgICAgIGNhc2UgJGNj X2Jhc2VuYW1lIGluCisrICAgICAgZjc3KiB8IGY5MCogfCBmOTUqKQorKwlsdF9wcm9nX2NvbXBp bGVyX3dsX0Y3Nz0nLVFvcHRpb24gbGQgJzs7CisrICAgICAgKikKKysJbHRfcHJvZ19jb21waWxl cl93bF9GNzc9Jy1XbCwnOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0 KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVFvcHRpb24gbGQgJworKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLVBJQycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19GNzc9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0IHwgc3lzdjQu MnV3MiogfCBzeXN2NC4zKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0nLVdsLCcK KysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1LUElDJworKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0Y3Nz0nLUJzdGF0aWMnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQq TVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KKysJbHRfcHJvZ19jb21waWxl cl9waWNfRjc3PSctS2NvbmZvcm1fcGljJworKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9 Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjUqIHwgdW5peHdh cmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKKysgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3dsX0Y3Nz0nLVdsLCcKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9Jy1L UElDJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0nLUJzdGF0aWMnCisrICAg ICAgOzsKKysKKysgICAgdW5pY29zKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3Nz0n LVdsLCcKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWRfRjc3PW5vCisr ICAgICAgOzsKKysKKysgICAgdXRzNCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3 PSctcGljJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0Y3Nz0nLUJzdGF0aWMnCisr ICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9z aGFyZWRfRjc3PW5vCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfcHJvZ19jb21waWxlcl9waWNfRjc3IiA+JjUK KyskYXNfZWNobyAiJGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NyIgPiY2OyB9CisrCisrIworKyMg Q2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KKysjCisraWYg dGVzdCAtbiAiJGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NyI7IHRoZW4KKysKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9n X2NvbXBpbGVyX3BpY19GNzcgd29ya3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRj b21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWNfRjc3IHdvcmtzLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19GNzcrc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRf Y3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfRjc3PW5vCisrICBhY19vdXRmaWxlPWNvbmZ0ZXN0 LiRhY19vYmpleHQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNv bmZ0ZXN0LiRhY19leHQKKysgICBsdF9jb21waWxlcl9mbGFnPSIkbHRfcHJvZ19jb21waWxlcl9w aWNfRjc3IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFz dCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5n ICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29t cGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAg IyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3 b3JrIGNvcnJlY3RseS4KKysgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJp YWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19j b21waWxlIiB8ICRTRUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxl cl9mbGFnIDo7IHQnIFwKKysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJf ZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZh bCBlY2hvICJcIlwkYXNfbWU6MTUxNjk6ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAi JGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPworKyAgIGNhdCBj b25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAiJGFzX21lOjE1MTczOiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7 IHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUg b3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUg d2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgorKyAgICAgJGVjaG8gIlgkX2x0 X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAor KyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisr ICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0 ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGlj X3dvcmtzX0Y3Nz15ZXMKKysgICAgIGZpCisrICAgZmkKKysgICAkcm0gY29uZnRlc3QqCisrCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21w aWxlcl9waWNfd29ya3NfRjc3IiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJf cGljX3dvcmtzX0Y3NyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVy X3BpY193b3Jrc19GNzciID0geHllczsgdGhlbgorKyAgICBjYXNlICRsdF9wcm9nX2NvbXBpbGVy X3BpY19GNzcgaW4KKysgICAgICIiIHwgIiAiKikgOzsKKysgICAgICopIGx0X3Byb2dfY29tcGls ZXJfcGljX0Y3Nz0iICRsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzciIDs7CisrICAgICBlc2FjCisr ZWxzZQorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19GNzc9CisrICAgICBsdF9wcm9nX2NvbXBp bGVyX2Nhbl9idWlsZF9zaGFyZWRfRjc3PW5vCisrZmkKKysKKytmaQorK2Nhc2UgJGhvc3Rfb3Mg aW4KKysgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qgc3VwcG9ydCBQSUMsIC1EUElDIGlz IG1lYW5pbmdsZXNzOgorKyAgKmRqZ3BwKikKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3 PQorKyAgICA7OworKyAgKikKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSIkbHRfcHJv Z19jb21waWxlcl9waWNfRjc3IgorKyAgICA7OworK2VzYWMKKysKKysjCisrIyBDaGVjayB0byBt YWtlIHN1cmUgdGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKyt3bD0kbHRfcHJv Z19jb21waWxlcl93bF9GNzcgZXZhbCBsdF90bXBfc3RhdGljX2ZsYWc9XCIkbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfRjc3XCIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg aWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0 YXRpY19mbGFnIHdvcmtzLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBp bGVyX3N0YXRpY193b3Jrc19GNzcrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Nf Rjc3PW5vCisrICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFH UyAkbHRfdG1wX3N0YXRpY19mbGFnIgorKyAgIGVjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2Nv ZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgIGlmIChldmFsICRhY19saW5rIDI+Y29uZnRlc3Qu ZXJyKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgorKyAgICAgIyBUaGUgbGlu a2VyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVk CisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgIGlmIHRlc3Qg LXMgY29uZnRlc3QuZXJyOyB0aGVuCisrICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhl IGNvbmZpZy5sb2cuCisrICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgICAkZWNo byAiWCRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBjb25mdGVz dC5leHAKKysgICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRl c3QuZXIyCisrICAgICAgIGlmIGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9u dWxsOyB0aGVuCisrICAgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfRjc3 PXllcworKyAgICAgICBmaQorKyAgICAgZWxzZQorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVy X3N0YXRpY193b3Jrc19GNzc9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJHJtIC1yIGNvbmZ0 ZXN0KgorKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Nf Rjc3IiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0Y3 NyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jr c19GNzciID0geHllczsgdGhlbgorKyAgICA6CisrZWxzZQorKyAgICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19GNzc9CisrZmkKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFj X29iamV4dC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX29f Rjc3K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0Y3Nz1ubworKyAgICRybSAtciBjb25mdGVz dCAyPi9kZXYvbnVsbAorKyAgIG1rZGlyIGNvbmZ0ZXN0CisrICAgY2QgY29uZnRlc3QKKysgICBt a2RpciBvdXQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0 ZXN0LiRhY19leHQKKysKKysgICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRh Y19vYmpleHQiCisrICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBs YXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKKysgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5p bmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgorKyAgICMgTm90ZSB0aGF0ICRhY19j b21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKKysg ICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxk IHdvcmsgY29ycmVjdGx5LgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRT RUQgXAorKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQn IFwKKysgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBc CisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwk YXNfbWU6MTUyNzM6ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUi IDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0 ZXN0LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6MTUyNzc6IFwkPyA9ICRhY19zdGF0dXMiID4m NQorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNf b2JqZXh0CisrICAgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQg aWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlm IHRoZXJlIGFyZSB3YXJuaW5ncworKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBs YXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcv XiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAg aWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91 dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBp bGVyX2Nfb19GNzc9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgY2htb2QgdSt3IC4gMj4mNQor KyAgICRybSBjb25mdGVzdCoKKysgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGly ZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCisrICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCisr ICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJHJtIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91 dC9paV9maWxlcworKyAgICRybSBvdXQvKiAmJiBybWRpciBvdXQKKysgICBjZCAuLgorKyAgIHJt ZGlyIGNvbmZ0ZXN0CisrICAgJHJtIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0Y3NyIgPiY1Cisr JGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19GNzciID4mNjsgfQorKworKworK2hh cmRfbGlua3M9Im5vdHRlc3RlZCIKKytpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29f Rjc3IiA9IG5vICYmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgorKyAgIyBkbyBub3Qg b3ZlcndyaXRlIHRoZSB2YWx1ZSBvZiBuZWVkX2xvY2tzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0 aCBoYXJkIGxpbmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3 aXRoIGhhcmQgbGlua3MuLi4gIiA+JjY7IH0KKysgIGhhcmRfbGlua3M9eWVzCisrICAkcm0gY29u ZnRlc3QqCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9s aW5rcz1ubworKyAgdG91Y2ggY29uZnRlc3QuYQorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5i IDI+JjUgfHwgaGFyZF9saW5rcz1ubworKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rl di9udWxsICYmIGhhcmRfbGlua3M9bm8KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRoYXJkX2xpbmtzIiA+JjUKKyskYXNfZWNobyAiJGhhcmRfbGlua3MiID4mNjsgfQor KyAgaWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBz byBcYG1ha2UgLWonIG1heSBiZSB1bnNhZmUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBi ZSB1bnNhZmUiID4mMjt9CisrICAgIG5lZWRfbG9ja3M9d2FybgorKyAgZmkKKytlbHNlCisrICBu ZWVkX2xvY2tzPW5vCisrZmkKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIg bGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KKysKKysg IHJ1bnBhdGhfdmFyPQorKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PQorKyAgZW5hYmxlX3No YXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19GNzc9bm8KKysgIGFyY2hpdmVfY21kc19GNzc9Cisr ICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0KKysgIG9sZF9hcmNoaXZlX0Zyb21fbmV3X2NtZHNf Rjc3PQorKyAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfRjc3PQorKyAgZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjX0Y3Nz0KKysgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0Y3Nz0KKysg IHRocmVhZF9zYWZlX2ZsYWdfc3BlY19GNzc9CisrICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0Y3Nz0KKysgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfRjc3PQorKyAgaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcl9GNzc9CisrICBoYXJkY29kZV9kaXJlY3RfRjc3PW5vCisrICBoYXJk Y29kZV9taW51c19MX0Y3Nz1ubworKyAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9dW5zdXBw b3J0ZWQKKysgIGxpbmtfYWxsX2RlcGxpYnNfRjc3PXVua25vd24KKysgIGhhcmRjb2RlX2F1dG9t YXRpY19GNzc9bm8KKysgIG1vZHVsZV9jbWRzX0Y3Nz0KKysgIG1vZHVsZV9leHBzeW1fY21kc19G Nzc9CisrICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfRjc3PW5vCisrICBleHBvcnRfc3ltYm9sc19j bWRzX0Y3Nz0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUg fCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwor KyAgIyBpbmNsdWRlX2V4cHN5bXMgc2hvdWxkIGJlIGEgbGlzdCBvZiBzcGFjZS1zZXBhcmF0ZWQg c3ltYm9scyB0byBiZSAqYWx3YXlzKgorKyAgIyBpbmNsdWRlZCBpbiB0aGUgc3ltYm9sIGxpc3QK KysgIGluY2x1ZGVfZXhwc3ltc19GNzc9CisrICAjIGV4Y2x1ZGVfZXhwc3ltcyBjYW4gYmUgYW4g ZXh0ZW5kZWQgcmVnZXhwIG9mIHN5bWJvbHMgdG8gZXhjbHVkZQorKyAgIyBpdCB3aWxsIGJlIHdy YXBwZWQgYnkgYCAoJyBhbmQgYCkkJywgc28gb25lIG11c3Qgbm90IG1hdGNoIGJlZ2lubmluZyBv cgorKyAgIyBlbmQgb2YgbGluZS4gIEV4YW1wbGU6IGBhfGJjfC4qZC4qJyB3aWxsIGV4Y2x1ZGUg dGhlIHN5bWJvbHMgYGEnIGFuZCBgYmMnLAorKyAgIyBhcyB3ZWxsIGFzIGFueSBzeW1ib2wgdGhh dCBjb250YWlucyBgZCcuCisrICBleGNsdWRlX2V4cHN5bXNfRjc3PSdfR0xPQkFMX09GRlNFVF9U QUJMRV98X0dMT0JBTF9fRltJRF1fLionCisrICAjIEFsdGhvdWdoIF9HTE9CQUxfT0ZGU0VUX1RB QkxFXyBpcyBhIHZhbGlkIHN5bWJvbCBDIG5hbWUsIG1vc3QgYS5vdXQKKysgICMgcGxhdGZvcm1z IChhYil1c2UgaXQgaW4gUElDIGNvZGUsIGJ1dCB0aGVpciBsaW5rZXJzIGdldCBjb25mdXNlZCBp ZgorKyAgIyB0aGUgc3ltYm9sIGlzIGV4cGxpY2l0bHkgcmVmZXJlbmNlZC4gIFNpbmNlIHBvcnRh YmxlIGNvZGUgY2Fubm90CisrICAjIHJlbHkgb24gdGhpcyBzeW1ib2wgbmFtZSwgaXQncyBwcm9i YWJseSBmaW5lIHRvIG5ldmVyIGluY2x1ZGUgaXQgaW4KKysgICMgcHJlbG9hZGVkIHN5bWJvbCB0 YWJsZXMuCisrICAjIEV4Y2x1ZGUgc2hhcmVkIGxpYnJhcnkgaW5pdGlhbGl6YXRpb24vZmluYWxp emF0aW9uIHN5bWJvbHMuCisrICBleHRyYWN0X2V4cHN5bXNfY21kcz0KKysgICMgSnVzdCBiZWlu ZyBwYXJhbm9pZCBhYm91dCBlbnN1cmluZyB0aGF0IGNjX2Jhc2VuYW1lIGlzIHNldC4KKysgIGZv ciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbworKyAgY2FzZSAkY2NfdGVtcCBpbgorKyAgICBj b21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7CisrICAg IGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7CisrICAg IFwtKikgOzsKKysgICAgKikgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytjY19iYXNlbmFtZT1g JGVjaG8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFz LSUlImAKKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMy KikKKysgICAgIyBGSVhNRTogdGhlIE1TVkMrKyBwb3J0IGhhc24ndCBiZWVuIHRlc3RlZCBpbiBh IGxvb29vbmcgdGltZQorKyAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFz c3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgorKyAg ICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KKysgICAgICB3aXRoX2dudV9sZD1ubworKyAg ICBmaQorKyAgICA7OworKyAgaW50ZXJpeCopCisrICAgICMgd2UganVzdCBob3BlL2Fzc3VtZSB0 aGlzIGlzIGdjYyBhbmQgbm90IGM4OSAoPSBNU1ZDKyspCisrICAgIHdpdGhfZ251X2xkPXllcwor KyAgICA7OworKyAgb3BlbmJzZCopCisrICAgIHdpdGhfZ251X2xkPW5vCisrICAgIDs7CisrICBl c2FjCisrCisrICBsZF9zaGxpYnNfRjc3PXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IHllczsgdGhlbgorKyAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJj IHNob3VsZCBiZSBlbXB0eQorKyAgICB3bGFyYz0nJHt3bH0nCisrCisrICAgICMgU2V0IHNvbWUg ZGVmYXVsdHMgZm9yIEdOVSBsZCB3aXRoIHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQuIFRoZXNlCisr ICAgICMgYXJlIHJlc2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0 ZWQuIFB1dHRpbmcgdGhlbQorKyAgICAjIGhlcmUgYWxsb3dzIHRoZW0gdG8gYmUgb3ZlcnJpZGRl biBpZiBuZWNlc3NhcnkuCisrICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJworKyAg ICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfRjc3PScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisr ICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBh bC4KKysgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnbm8td2hvbGUtYXJjaGl2ZScgPiAv ZGV2L251bGw7IHRoZW4KKysJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PSIkd2xhcmMiJy0t d2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwor KyAgICAgIGVsc2UKKysgIAl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9CisrICAgIGZpCisr ICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1ubworKyAgICBjYXNlIGAkTEQgLXYgMj4vZGV2 L251bGxgIGluCisrICAgICAgKlwgWzAxXS4qIHwgKlwgMi5bMC05XS4qIHwgKlwgMi4xMC4qKSA7 OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQorKyAgICAgICpcIDIuMTEuOTMuMC4yXCAqKSBzdXBw b3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3LjMgLi4uCisrICAgICAgKlwgMi4xMS45 Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4y IC4uLgorKyAgICAgICpcIDIuMTEuKikgOzsgIyBvdGhlciAyLjExIHZlcnNpb25zCisrICAgICAg Kikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OworKyAgICBlc2FjCisrCisrICAgICMg U2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLgorKyAgICBjYXNlICRob3N0 X29zIGluCisrICAgIGFpeFszLTldKikKKysgICAgICAjIE9uIEFJWC9QUEMsIHRoZSBHTlUgbGlu a2VyIGlzIHZlcnkgYnJva2VuCisrICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0 aGVuCisrCWxkX3NobGlic19GNzc9bm8KKysJY2F0IDw8RU9GIDE+JjIKKysKKysqKiogV2Fybmlu ZzogdGhlIEdOVSBsaW5rZXIsIGF0IGxlYXN0IHVwIHRvIHJlbGVhc2UgMi45LjEsIGlzIHJlcG9y dGVkCisrKioqIHRvIGJlIHVuYWJsZSB0byByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmll cyBvbiBBSVguCisrKioqIFRoZXJlZm9yZSwgbGlidG9vbCBpcyBkaXNhYmxpbmcgc2hhcmVkIGxp YnJhcmllcyBzdXBwb3J0LiAgSWYgeW91CisrKioqIHJlYWxseSBjYXJlIGZvciBzaGFyZWQgbGli cmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5IHlvdXIgUEFUSAorKyoqKiBzbyB0aGF0IGEg bm9uLUdOVSBsaW5rZXIgaXMgZm91bmQsIGFuZCB0aGVuIHJlc3RhcnQuCisrCisrRU9GCisrICAg ICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBhcmNoaXZlX2NtZHNf Rjc3PSckcm0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBO QU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNk ZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRl Y2hvICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFy eS5kYXRhfiRlY2hvICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpk aXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAk bGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PSctTCRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbWlu dXNfTF9GNzc9eWVzCisrCisrICAgICAgIyBTYW11ZWwgQS4gRmFsdm8gSUkgPGtjNXRqYUBkb2xw aGluLm9wZW5wcm9qZWN0cy5uZXQ+IHJlcG9ydHMKKysgICAgICAjIHRoYXQgdGhlIHNlbWFudGlj cyBvZiBkeW5hbWljIGxpYnJhcmllcyBvbiBBbWlnYU9TLCBhdCBsZWFzdCB1cAorKyAgICAgICMg dG8gdmVyc2lvbiA0LCBpcyB0byBzaGFyZSBkYXRhIGFtb25nIG11bHRpcGxlIHByb2dyYW1zIGxp bmtlZAorKyAgICAgICMgd2l0aCB0aGUgc2FtZSBkeW5hbWljIGxpYnJhcnkuICBTaW5jZSB0aGlz IGRvZXNuJ3QgbWF0Y2ggdGhlCisrICAgICAgIyBiZWhhdmlvciBvZiBzaGFyZWQgbGlicmFyaWVz IG9uIG90aGVyIHBsYXRmb3Jtcywgd2UgY2FuJ3QgdXNlCisrICAgICAgIyB0aGVtLgorKyAgICAg IGxkX3NobGlic19GNzc9bm8KKysgICAgICA7OworKworKyAgICBiZW9zKikKKysgICAgICBpZiAk TEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2 L251bGw7IHRoZW4KKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PXVuc3VwcG9ydGVkCisrCSMg Sm9zZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMgc29tZSByZWxlYXNlcyBvZiBn Y2MKKysJIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNlcnZlcyBzb21lIGludmVzdGln YXRpb24uICBGSVhNRQorKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLW5vc3RhcnQgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWIn CisrICAgICAgZWxzZQorKwlsZF9zaGxpYnNfRjc3PW5vCisrICAgICAgZmkKKysgICAgICA7Owor KworKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisrICAgICAgIyBfTFRfQUNfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsIEY3NykgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3Ms CisrICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLUwkbGliZGlyJworKyAgICAgIGFsbG93X3Vu ZGVmaW5lZF9mbGFnX0Y3Nz11bnN1cHBvcnRlZAorKyAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9s c19GNzc9bm8KKysgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0Y3Nz15 ZXMKKysgICAgICBleHBvcnRfc3ltYm9sc19jbWRzX0Y3Nz0nJE5NICRsaWJvYmpzICRjb252ZW5p ZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltCQ0RHUlNdWyBdL3Mv LipbIF1cKFteIF0qXCkvXDEgREFUQS8nXCcnIC1lICdcJycvXltBSVRXXVsgXS9zLy4qWyBdLy8n XCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisrCisrICAgICAgaWYgJExEIC0t aGVscCAyPiYxIHwgZ3JlcCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAg ICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1h Z2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKKysJIyBJZiB0aGUg ZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQorKwkj IGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKwlhcmNo aXZlX2V4cHN5bV9jbWRzX0Y3Nz0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2Ai ID0geEVYUE9SVFM7IHRoZW4KKysJICBjcCAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIv JHNvbmFtZS5kZWY7CisrCWVsc2UKKysJICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8k c29uYW1lLmRlZjsKKysJICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRz b25hbWUuZGVmOworKwlmaX4KKysJJENDIC1zaGFyZWQgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWYgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGli IC1YbGlua2VyICRsaWInCisrICAgICAgZWxzZQorKwlsZF9zaGxpYnNfRjc3PW5vCisrICAgICAg ZmkKKysgICAgICA7OworKworKyAgICBpbnRlcml4WzMtOV0qKQorKyAgICAgIGhhcmRjb2RlX2Rp cmVjdF9GNzc9bm8KKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubworKyAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PScke3dsfS1ycGF0aCwkbGliZGlyJworKyAg ICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9JyR7d2x9LUUnCisrICAgICAgIyBIYWNr OiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9r ZW4gZ2NjLgorKyAgICAgICMgSW5zdGVhZCwgc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0 IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKKysgICAgICAjIGRlZmF1bHQpIGFuZCByZWxv Y2F0ZWQgaWYgdGhleSBjb25mbGljdCwgd2hpY2ggaXMgYSBzbG93IHZlcnkgbWVtb3J5CisrICAg ICAgIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3 ZSBwaWNrIGEgcmFuZG9tLAorKyAgICAgICMgMjU2IEtpQi1hbGlnbmVkIGltYWdlIGJhc2UgYmV0 d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxpbmsKKysgICAgICAjIHRpbWUuICBN b3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxsb3dzIG1vcmUgc2JyaygyKSBzcGFjZS4K KysgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFz ZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAt byAkbGliJworKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSdzZWQgInMsXixfLCIgJGV4 cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4kQ0MgLXNoYXJlZCAk cGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWgsJHNvbmFt ZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5 bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8gMiBcKiAyNjIx NDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKyAgICAgIDs7CisrCisrICAgIGdudSogfCBsaW51 eCogfCBrKmJzZCotZ251KQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3Vw cG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwl0bXBfYWRkZmxhZz0K KysJY2FzZSAkY2NfYmFzZW5hbWUsJGhvc3RfY3B1IGluCisrCXBnY2MqKQkJCQkjIFBvcnRsYW5k IEdyb3VwIEMgY29tcGlsZXIKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9JyR7d2x9 LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1u IFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7 IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2 ZScKKysJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKKysJICA7OworKwlwZ2Y3NyogfCBwZ2Y5 MCogfCBwZ2Y5NSopCSMgUG9ydGxhbmQgR3JvdXAgZjc3IGFuZCBmOTAgY29tcGlsZXJzCisrCSAg d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29u diBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZl bmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29u dmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgdG1wX2FkZGZsYWc9JyAk cGljX2ZsYWcgLU1ub21haW4nIDs7CisrCWVjYyosaWE2NCogfCBpY2MqLGlhNjQqKQkJIyBJbnRl bCBDIGNvbXBpbGVyIG9uIGlhNjQKKysJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMnIDs7Cisr CWVmYyosaWE2NCogfCBpZm9ydCosaWE2NCopCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlciBvbiBp YTY0CisrCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljIC1ub2Zvcl9tYWluJyA7OworKwlpZmMq IHwgaWZvcnQqKQkJCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlcgorKwkgIHRtcF9hZGRmbGFnPScg LW5vZm9yX21haW4nIDs7CisrCWVzYWMKKysJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGlu CisrCSpTdW5cIEMqKQkJCSMgU3VuIEMgNS45CisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNf Rjc3PScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAk Y29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9 XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5j ZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7 CisrCSpTdW5cIEYqKQkJCSMgU3VuIEZvcnRyYW4gOC4zCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1H JyA7OworKwkqKQorKwkgIHRtcF9zaGFyZWRmbGFnPSctc2hhcmVkJyA7OworKwllc2FjCisrCWFy Y2hpdmVfY21kc19GNzc9JyRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCisrCisrCWlmIHRlc3QgJHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyA9IHllczsgdGhl bgorKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckZWNobyAieyBnbG9iYWw6IiA+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysgIGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUg InMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysgICRlY2hv ICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAkQ0Mg JyIkdG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAk e3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJworKwlmaQorKyAgICAgIGVs c2UKKysJbGRfc2hsaWJzX0Y3Nz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgbmV0 YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+ L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kc19GNzc9JyRMRCAtQnNoYXJlYWJsZSAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1vICRsaWInCisrCXdsYXJjPQorKyAgICAgIGVs c2UKKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWFyY2hpdmVf ZXhwc3ltX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAk d2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAg IHNvbGFyaXMqKQorKyAgICAgIGlmICRMRCAtdiAyPiYxIHwgZ3JlcCAnQkZEIDJcLjgnID4gL2Rl di9udWxsOyB0aGVuCisrCWxkX3NobGlic19GNzc9bm8KKysJY2F0IDw8RU9GIDE+JjIKKysKKysq KiogV2FybmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRoZSBHTlUgbGlua2VyIGNhbm5vdCBy ZWxpYWJseQorKyoqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTb2xhcmlzIHN5c3RlbXMu ICBUaGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMg c3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioqIGJpbnV0aWxzIHRvIHJl bGVhc2UgMi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKKysqKiog eW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxp bmtlciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK0VPRgorKyAgICAgIGVs aWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4g L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1z eW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZWxzZQorKwls ZF9zaGxpYnNfRjc3PW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzeXN2NSogfCBz Y28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQorKyAgICAgIGNhc2Ug YCRMRCAtdiAyPiYxYCBpbgorKyAgICAgICAgKlwgWzAxXS4qIHwgKlwgMi5bMC05XS4qIHwgKlwg Mi4xWzAtNV0uKikKKysJbGRfc2hsaWJzX0Y3Nz1ubworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysK KysqKiogV2FybmluZzogUmVsZWFzZXMgb2YgdGhlIEdOVSBsaW5rZXIgcHJpb3IgdG8gMi4xNi45 MS4wLjMgY2FuIG5vdAorKyoqKiByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBT Q08gc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAorKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVk IGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBncmFkZSBHTlUKKysqKiogYmlu dXRpbHMgdG8gcmVsZWFzZSAyLjE2LjkxLjAuMyBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlz IHRvIG1vZGlmeQorKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzbyB0 aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCisrKioqIHVzZWQsIGFuZCB0aGVuIHJlc3RhcnQuCisr CisrX0xUX0VPRgorKwk7OworKwkqKQorKwkgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzog c3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwkgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9J2B0ZXN0IC16ICIkU0NPQUJTUEFUSCIgJiYgZWNobyAk e3dsfS1ycGF0aCwkbGliZGlyYCcKKysJICAgIGFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVk ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUsXCR7U0NPQUJT UEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYicKKysJICAgIGFyY2hpdmVf ZXhwc3ltX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29u YW1lLC1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkgIGVs c2UKKysJICAgIGxkX3NobGlic19GNzc9bm8KKysJICBmaQorKwk7OworKyAgICAgIGVzYWMKKysg ICAgICA7OworKworKyAgICBzdW5vczQqKQorKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRMRCAt YXNzZXJ0IHB1cmUtdGV4dCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRs aW5rZXJfZmxhZ3MnCisrICAgICAgd2xhcmM9CisrICAgICAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz15 ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubworKyAgICAgIDs7CisrCisr ICAgICopCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFy Z2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kc19GNzc9JyRDQyAt c2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds JHNvbmFtZSAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1l ICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisr ICAgICAgZWxzZQorKwlsZF9zaGxpYnNfRjc3PW5vCisrICAgICAgZmkKKysgICAgICA7OworKyAg ICBlc2FjCisrCisrICAgIGlmIHRlc3QgIiRsZF9zaGxpYnNfRjc3IiA9IG5vOyB0aGVuCisrICAg ICAgcnVucGF0aF92YXI9CisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9Cisr ICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3Nz0KKysgICAgICB3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlY19GNzc9CisrICAgIGZpCisrICBlbHNlCisrICAgICMgUE9SVE1FIGZpbGwgaW4g YSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIGxpbmtlciAobm90IEdOVSBsZCkKKysgICAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXgzKikKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxh Z19GNzc9dW5zdXBwb3J0ZWQKKysgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfRjc3PXllcwor KyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckTEQgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1iRTokZXhwb3J0X3N5bWJvbHMg LVQ1MTIgLUg1MTIgLWJNOlNSRX4kQVIgJEFSX0ZMQUdTICRsaWIgJG91dHB1dF9vYmpkaXIvJHNv bmFtZScKKysgICAgICAjIE5vdGU6IHRoaXMgbGlua2VyIGhhcmRjb2RlcyB0aGUgZGlyZWN0b3Jp ZXMgaW4gTElCUEFUSCBpZiB0aGVyZQorKyAgICAgICMgYXJlIG5vIGRpcmVjdG9yaWVzIHNwZWNp ZmllZCBieSAtTC4KKysgICAgICBoYXJkY29kZV9taW51c19MX0Y3Nz15ZXMKKysgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0IC16ICIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWMiOyB0 aGVuCisrCSMgTmVpdGhlciBkaXJlY3QgaGFyZGNvZGluZyBub3Igc3RhdGljIGxpbmtpbmcgaXMg c3VwcG9ydGVkIHdpdGggYQorKwkjIGJyb2tlbiBjb2xsZWN0Mi4KKysJaGFyZGNvZGVfZGlyZWN0 X0Y3Nz11bnN1cHBvcnRlZAorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgYWl4WzQtOV0q KQorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgT24gSUE2NCwg dGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QK KysJIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisrCWFpeF91c2VfcnVudGltZWxpbmtp bmc9bm8KKysJZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKKysJbm9fZW50cnlfZmxhZz0iIgorKyAg ICAgIGVsc2UKKysJIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0 aGUgIi1DIiBvcHRpb24uCisrCSMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVh bnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKysJaWYgJE5NIC1WIDI+JjEgfCBncmVwICdH TlUnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgZXhwb3J0X3N5bWJvbHNfY21kc19GNzc9JyROTSAt QnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJDIgPT0gIlQiKSB8 fCAoXCQyID09ICJEIikgfHwgKFwkMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkMywxLDEpICE9ICIu IikpIHsgcHJpbnQgXCQzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKwll bHNlCisrCSAgZXhwb3J0X3N5bWJvbHNfY21kc19GNzc9JyROTSAtQkNwZyAkbGlib2JqcyAkY29u dmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQyID09ICJUIikgfHwgKFwkMiA9PSAiRCIpIHx8 IChcJDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkMyB9 IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysJZmkKKysJYWl4X3VzZV9ydW50 aW1lbGlua2luZz1ubworKworKwkjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRp bWUgbGlua2luZyBvciBub3JtYWwKKysJIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMg c29tZXdoZXJlIGluIExERkxBR1MsIHdlCisrCSMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcu CisrCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQuWzIzXS4qfGFpeFs1LTldKikKKysJ ICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KKysgIAkgIGlmICh0ZXN0ICRsZF9mbGFnID0g Ii1icnRsIiB8fCB0ZXN0ICRsZF9mbGFnID0gIi1XbCwtYnJ0bCIpOyB0aGVuCisrICAJICAgIGFp eF91c2VfcnVudGltZWxpbmtpbmc9eWVzCisrICAJICAgIGJyZWFrCisrICAJICBmaQorKwkgIGRv bmUKKysJICA7OworKwllc2FjCisrCisrCWV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCisrCW5vX2Vu dHJ5X2ZsYWc9Jy1ibm9lbnRyeScKKysgICAgICBmaQorKworKyAgICAgICMgV2hlbiBsYXJnZSBl eGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQsIEFJWCBsZCBjYW4KKysgICAg ICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlu a2luZyBhIGxpYnJhcnkKKysgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9D IG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bworKyAgICAgICMgQ1hYRkxBR1MvQ0ZMQUdT IGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRoYXQgaXMgbm90CisrICAgICAgIyBl bm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCisr CisrICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9GNzc9 eWVzCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9GNzc9JzonCisrICAgICAgbGlu a19hbGxfZGVwbGlic19GNzc9eWVzCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KKysJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAxMl0uKikKKysJIyBXZSBv bmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCisrCSMg YmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKworKwkgIGNv bGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAKKysJICBpZiB0ZXN0 IC1mICIkY29sbGVjdDJuYW1lIiAmJiBcCisrICAJICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIg fCBncmVwIHJlc29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAorKwkgIHRoZW4KKysgIAkgICMgV2Ug aGF2ZSByZXdvcmtlZCBjb2xsZWN0MgorKyAgCSAgOgorKwkgIGVsc2UKKysgIAkgICMgV2UgaGF2 ZSBvbGQgY29sbGVjdDIKKysgIAkgIGhhcmRjb2RlX2RpcmVjdF9GNzc9dW5zdXBwb3J0ZWQKKysg IAkgICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5p bnN0YWxsZWQKKysgIAkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0 dGluZyBoYXJkY29kZV9taW51c19MCisrICAJICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxp bmtpbmcKKysgIAkgIGhhcmRjb2RlX21pbnVzX0xfRjc3PXllcworKyAgCSAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19GNzc9Jy1MJGxpYmRpcicKKysgIAkgIGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3JfRjc3PQorKwkgIGZpCisrCSAgOzsKKysJZXNhYworKwlzaGFyZWRfZmxhZz0nLXNoYXJl ZCcKKysJaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAg c2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCisrCWZpCisrICAgICAgZWxzZQor KwkjIG5vdCB1c2luZyBnY2MKKysJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysg IAkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRh IDMgUmVsZWFzZQorKyAgCSMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlz IGNvcnJlY3Q6CisrCSAgc2hhcmVkX2ZsYWc9Jy1HJworKwllbHNlCisrCSAgaWYgdGVzdCAiJGFp eF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSAgICBzaGFyZWRfZmxhZz0nJHt3 bH0tRycKKysJICBlbHNlCisrCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJworKwkgIGZp CisrCWZpCisrICAgICAgZmkKKysKKysgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9l cyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKKysgICAgICAjIHVuZGVyc2NvcmUg KF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8gZXhw b3J0LgorKyAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19GNzc9eWVzCisrICAgICAgaWYgdGVz dCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSMgV2FybmluZyAtIHdp dGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAorKwkj IC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2Vu IGxpYnJhcnkuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz0nLWJlcm9rJworKyAgICAgICAj IERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4g YW4gZW1wdHkgZXhlY3V0YWJsZS4KKysgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrICAgICAgcHJvZ3JhbSBtYWluCisrCisrICAgICAgZW5kCisrX0FDRU9GCisrcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRh Y19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYwor K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKysk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0 ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19mNzdfd2Vycm9y X2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5 ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4K KysKKytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14k LyB7CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysg ICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251 bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0 LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFp eF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNf ZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisr ZmkKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAt cmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhl ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFp eF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysgICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19GNzc9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisr CWFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSJcJENDIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2Zs YWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBlY2hv ICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhw X3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAgICAgICBlbHNlCisr CWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19GNzc9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworKwkgIGFsbG93X3Vu ZGVmaW5lZF9mbGFnX0Y3Nz0iLXogbm9kZWZzIgorKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3 PSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMg JGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1i b2xzIgorKwllbHNlCisrCSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhl IHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KKysJIGNhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKyAgICAgIHByb2dyYW0gbWFpbgorKworKyAgICAgIGVuZAorK19B Q0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYg eyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19s aW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIk YWNfZjc3X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19j b21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAg ICAgICB9OyB0aGVuCisrCisrbHRfYWl4X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBGaWxl IFN0cmluZ3MvLC9eJC8geworKwkvXjAvIHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLworKwkg ICAgcAorKwl9CisrICAgIH0nCisrYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhl ZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrIyBD aGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorK2lm IHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0 IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGli cGF0aF9zZWQiYAorK2ZpCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwor K2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNv bmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisraWYgdGVzdCAteiAiJGFpeF9saWJw YXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCisrCisrCSBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGli cGF0aCIKKysJICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4gdGltZSBs b2FkaW5nIGZsYWdzLAorKwkgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQg bWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KKysJICBub191bmRlZmluZWRfZmxhZ19GNzc9 JyAke3dsfS1iZXJub3RvaycKKysJICBhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9JyAke3dsfS1i ZXJvaycKKysJICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBv YmplY3RzIGZyb20gYXJjaGl2ZXMKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9JyRj b252ZW5pZW5jZScKKysJICBhcmNoaXZlX2NtZHNfbmVlZF9sY19GNzc9eWVzCisrCSAgIyBUaGlz IGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkIGxp YnJhcmllcy4KKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0iXCRDQyAkc2hhcmVkX2ZsYWci JyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2Vu dHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVm aW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2Uu YSAkb3V0cHV0X29iamRpci8kc29uYW1lJworKwlmaQorKyAgICAgIGZpCisrICAgICAgOzsKKysK KysgICAgYW1pZ2FvcyopCisrICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJHJtICRvdXRwdXRfb2Jq ZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0 cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIExJQlJBUllfSUQgMSIg Pj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBWRVJTSU9O ICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmlu ZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+ JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpk aXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0Y3Nz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX21pbnVzX0xfRjc3PXllcworKyAgICAg ICMgc2VlIGNvbW1lbnQgYWJvdXQgZGlmZmVyZW50IHNlbWFudGljcyBvbiB0aGUgR05VIGxkIHNl Y3Rpb24KKysgICAgICBsZF9zaGxpYnNfRjc3PW5vCisrICAgICAgOzsKKysKKysgICAgYnNkaVs0 NV0qKQorKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9LXJkeW5hbWljCisrICAg ICAgOzsKKysKKysgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQorKyAgICAgICMgV2hlbiBu b3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCisrICAg ICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKysgICAgICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCisrICAgICAgIyBubyBz ZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3 Nz0nICcKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9dW5zdXBwb3J0ZWQKKysgICAg ICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgorKyAgICAg IGxpYmV4dD1saWIKKysgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90 IC5zbyBmaWxlcy4KKysgICAgICBzaHJleHRfY21kcz0iLmRsbCIKKysgICAgICAjIEZJWE1FOiBT ZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCisrICAgICAgYXJjaGl2ZV9jbWRz X0Y3Nz0nJENDIC1vICRsaWIgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzIGBlY2hvICIkZGVwbGli cyIgfCAkU0VEIC1lICdcJydzLyAtbGMkLy8nXCcnYCAtbGluayAtZGxsfmxpbmtuYW1lcz0nCisr ICAgICAgIyBUaGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWlsZCBhIC5saWIgZmlsZSBp ZiB3ZSBidWlsZCBhIERMTC4KKysgICAgICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzX0Y3Nz0n dHJ1ZScKKysgICAgICAjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1c2VyIHNwZWNpZnkgdGhlIGxp YiBwcm9ncmFtLgorKyAgICAgIG9sZF9hcmNoaXZlX2NtZHNfRjc3PSdsaWIgLU9VVDokb2xkbGli JG9sZG9ianMkb2xkX2RlcGxpYnMnCisrICAgICAgZml4X3NyY2ZpbGVfcGF0aF9GNzc9J2BjeWdw YXRoIC13ICIkc3JjZmlsZSJgJworKyAgICAgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVu dGltZXNfRjc3PXllcworKyAgICAgIDs7CisrCisrICAgIGRhcndpbiogfCByaGFwc29keSopCisr ICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bMDEy XSkKKysgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9JyR7d2x9LXVuZGVmaW5lZCAk e3dsfXN1cHByZXNzJworKyAgICAgICAgIDs7CisrICAgICAgICopICMgRGFyd2luIDEuMyBvbgor KyAgICAgICAgIGlmIHRlc3QgLXogJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVR9IDsgdGhlbgor KyAgICAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScke3dsfS1mbGF0X25hbWVzcGFj ZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycKKysgICAgICAgICBlbHNlCisrICAgICAg ICAgICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUfSBpbgorKyAgICAgICAgICAgICAx MC5bMDEyXSkKKysgICAgICAgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9JyR7d2x9 LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJworKyAgICAgICAg ICAgICAgIDs7CisrICAgICAgICAgICAgIDEwLiopCisrICAgICAgICAgICAgICAgYWxsb3dfdW5k ZWZpbmVkX2ZsYWdfRjc3PScke3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcKKysg ICAgICAgICAgICAgICA7OworKyAgICAgICAgICAgZXNhYworKyAgICAgICAgIGZpCisrICAgICAg ICAgOzsKKysgICAgICBlc2FjCisrICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfRjc3PW5vCisr ICAgICAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz1ubworKyAgICAgIGhhcmRjb2RlX2F1dG9tYXRpY19G Nzc9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9dW5zdXBwb3J0ZWQKKysg ICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9JycKKysgICAgICBsaW5rX2FsbF9kZXBs aWJzX0Y3Nz15ZXMKKysgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgOyB0aGVuCisrICAgIAlvdXRw dXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKysgICAgICAgIGFyY2hpdmVfY21kc19GNzc9Ilwk Q0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMg XCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1l IFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCisrICAgICAg ICBtb2R1bGVfY21kc19GNzc9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAt YnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGls fSIKKysgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSJzZWQgJ3MsXixfLCcgPCBcJGV4 cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3lt flwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9i anMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29u YW1lIFwkdmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3lt c30ke19sdF9kc3ltdXRpbH0iCisrICAgICAgICBtb2R1bGVfZXhwc3ltX2NtZHNfRjc3PSJzZWQg LWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5h bWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAt YnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBv cnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAgIGVsc2UKKysgICAgICBjYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgICAgeGxjKikKKysgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2Nt ZD0nZWNobycKKysgICAgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXFta3Nocm9iaiAkYWxs b3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9YGVjaG8gJHJwYXRoLyRzb25hbWVgICR4bGN2ZXJz dHJpbmcnCisrICAgICAgICAgbW9kdWxlX2NtZHNfRjc3PSckQ0MgJGFsbG93X3VuZGVmaW5lZF9m bGFnIC1vICRsaWIgLWJ1bmRsZSAkbGlib2JqcyAkZGVwbGlicyRjb21waWxlcl9mbGFncycKKysg ICAgICAgICAgIyBEb24ndCBmaXggdGhpcyBieSB1c2luZyB0aGUgbGQgLWV4cG9ydGVkX3N5bWJv bHNfbGlzdCBmbGFnLCBpdCBkb2Vzbid0IGV4aXN0IGluIG9sZGVyIGRhcndpbiBsZHMKKysgICAg ICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nc2VkIC1lICJzLCMuKiwsIiAtZSAicyxeWyAg ICBdKiwsIiAtZSAicyxeXCguLipcKSxfJiwiIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9v YmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX4kQ0MgLXFta3Nocm9iaiAkYWxsb3dfdW5k ZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0taW5zdGFsbF9uYW1lICR7d2x9JHJwYXRoLyRzb25hbWUgJHhsY3ZlcnN0cmluZ35ubWVkaXQg LXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCisrICAg ICAgICAgIG1vZHVsZV9leHBzeW1fY21kc19GNzc9J3NlZCAtZSAicywjLiosLCIgLWUgInMsXlsg ICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRf b2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JENDICRhbGxvd191bmRlZmluZWRfZmxh ZyAgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBsaWJzJGNvbXBpbGVyX2ZsYWdzfm5tZWRp dCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKKysg ICAgICAgICAgOzsKKysgICAgICAgKikKKysgICAgICAgICBsZF9zaGxpYnNfRjc3PW5vCisrICAg ICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGRndXgq KQorKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0Y3Nz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3 PW5vCisrICAgICAgOzsKKysKKysgICAgZnJlZWJzZDEqKQorKyAgICAgIGxkX3NobGlic19GNzc9 bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMi4yLlswMTJdIGFsbG93cyB1cyB0byBp bmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3RydWN0b3IKKysgICAgIyBzdXBwb3J0LiAg RnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4cGxpY2l0IGMr K3J0MC5vCisrICAgICMgZG9lcyBub3QgYnJlYWsgYW55dGhpbmcsIGFuZCBoZWxwcyBzaWduaWZp Y2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQorKyAgICAjIGV4dHJhIHNwYWNlKS4KKysg ICAgZnJlZWJzZDIuMiopCisrICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1Cc2hhcmVhYmxl IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAvdXNyL2xpYi9jKytydDAu bycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLVIkbGliZGlyJworKyAg ICAgIGhhcmRjb2RlX2RpcmVjdF9GNzc9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cl9GNzc9bm8KKysgICAgICA7OworKworKyAgICAjIFVuZm9ydHVuYXRlbHksIG9sZGVyIHZlcnNp b25zIG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1cmUuCisrICAgIGZyZWVic2Qy KikKKysgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9GNzc9 eWVzCisrICAgICAgaGFyZGNvZGVfbWludXNfTF9GNzc9eWVzCisrICAgICAgaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9GNzc9bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMyBhbmQgZ3Jl YXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNoYXJlZCBsaWJyYXJpZXMuCisrICAgIGZyZWVi c2QqIHwgZHJhZ29uZmx5KikKKysgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2RpcmVj dF9GNzc9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KKysgICAgICA7 OworKworKyAgICBocHV4OSopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJ YXJjaGl2ZV9jbWRzX0Y3Nz0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQg LWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29u YW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGly LyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAg ICBlbHNlCisrCWFyY2hpdmVfY21kc19GNzc9JyRybSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRM RCAtYiArYiAkaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRs aWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgIGZpCisrICAgICAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3PToKKysgICAgICBoYXJkY29kZV9kaXJl Y3RfRjc3PXllcworKworKyAgICAgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0 aGUgc2VhcmNoIFBBVEgsCisrICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2Yg dGhlIGxpYnJhcnkuCisrICAgICAgaGFyZGNvZGVfbWludXNfTF9GNzc9eWVzCisrICAgICAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tRScKKysgICAgICA7OworKworKyAgICBo cHV4MTAqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9nbnVfbGQiID0g bm87IHRoZW4KKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAk e3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kc19G Nzc9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0 aF9nbnVfbGQiID0gbm87IHRoZW4KKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7 d2x9K2IgJHt3bH0kbGliZGlyJworKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0Y3Nz06Cisr CisrCWhhcmRjb2RlX2RpcmVjdF9GNzc9eWVzCisrCWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19G Nzc9JyR7d2x9LUUnCisrCisrCSMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUg c2VhcmNoIFBBVEgsCisrCSMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJy YXJ5LgorKwloYXJkY29kZV9taW51c19MX0Y3Nz15ZXMKKysgICAgICBmaQorKyAgICAgIDs7Cisr CisrICAgIGhwdXgxMSopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2du dV9sZCIgPSBubzsgdGhlbgorKwljYXNlICRob3N0X2NwdSBpbgorKwlocHBhKjY0KikKKysJICBh cmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwlpYTY0KikKKysJ ICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNvbmFtZSAke3ds fStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysJICA7OworKwkqKQorKwkgIGFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkIC1mUElD ICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJZXNhYworKyAg ICAgIGVsc2UKKysJY2FzZSAkaG9zdF9jcHUgaW4KKysJaHBwYSo2NCopCisrCSAgYXJjaGl2ZV9j bWRzX0Y3Nz0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCWlhNjQqKQorKwkgIGFyY2hpdmVfY21k c19GNzc9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwkqKQor KwkgIGFyY2hpdmVfY21kc19GNzc9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfSti ICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSBubzsgdGhlbgorKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nJHt3 bH0rYiAke3dsfSRsaWJkaXInCisrCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3PToKKysK KysJY2FzZSAkaG9zdF9jcHUgaW4KKysJaHBwYSo2NCp8aWE2NCopCisrCSAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19sZF9GNzc9JytiICRsaWJkaXInCisrCSAgaGFyZGNvZGVfZGlyZWN0X0Y3 Nz1ubworKwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5vCisrCSAgOzsKKysJKikKKysJ ICBoYXJkY29kZV9kaXJlY3RfRjc3PXllcworKwkgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19G Nzc9JyR7d2x9LUUnCisrCisrCSAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRo ZSBzZWFyY2ggUEFUSCwKKysJICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUg bGlicmFyeS4KKysJICBoYXJkY29kZV9taW51c19MX0Y3Nz15ZXMKKysJICA7OworKwllc2FjCisr ICAgICAgZmkKKysgICAgICA7OworKworKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgq KQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFyY2hpdmVfY21kc19GNzc9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvICR7d2x9LXNldF92 ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAgICBlbHNlCisrCWFyY2hpdmVf Y21kc19GNzc9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLXNv bmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAk dmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWInCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfRjc3PSctcnBhdGggJGxp YmRpcicKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PSck e3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv cl9GNzc9OgorKyAgICAgIGxpbmtfYWxsX2RlcGxpYnNfRjc3PXllcworKyAgICAgIDs7CisrCisr ICAgIG5ldGJzZCopCisrICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9f RUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKwlhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUJzaGFyZWFi bGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgIyBhLm91dAorKyAg ICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1zaGFyZWQgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMgRUxGCisrICAgICAgZmkKKysgICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2Rl X2RpcmVjdF9GNzc9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9GNzc9bm8KKysg ICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRMRCAt RyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysg ICAgICBoYXJkY29kZV9kaXJlY3RfRjc3PXllcworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfRjc3PScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcl9GNzc9OgorKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5v CisrICAgICAgOzsKKysKKysgICAgb3BlbmJzZCopCisrICAgICAgaWYgdGVzdCAtZiAvdXNyL2xp YmV4ZWMvbGQuc287IHRoZW4KKysJaGFyZGNvZGVfZGlyZWN0X0Y3Nz15ZXMKKysJaGFyZGNvZGVf c2hsaWJwYXRoX3Zhcl9GNzc9bm8KKysJaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAt RSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVu YnNkMi44LXBvd2VycGMiOyB0aGVuCisrCSAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQg JHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkg IGFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmls ZSwkZXhwb3J0X3N5bWJvbHMnCisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7 d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0Y3Nz0nJHt3 bH0tRScKKysJZWxzZQorKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICAgb3BlbmJzZFswMV0uKiB8 IG9wZW5ic2QyLlswLTddIHwgb3BlbmJzZDIuWzAtN10uKikKKysJICAgICBhcmNoaXZlX2NtZHNf Rjc3PSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJworKwkgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PSctUiRsaWJkaXInCisr CSAgICAgOzsKKysJICAgKikKKysJICAgICBhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAk cGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzc9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisr CSAgICAgOzsKKysJICBlc2FjCisrICAgICAgICBmaQorKyAgICAgIGVsc2UKKysJbGRfc2hsaWJz X0Y3Nz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgb3MyKikKKysgICAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX21p bnVzX0xfRjc3PXllcworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0Y3Nz11bnN1cHBvcnRl ZAorKyAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRlY2hvICJMSUJSQVJZICRsaWJuYW1lIElOSVRJ TlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVjaG8gIkRFU0NSSVBUSU9O IFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRlY2hvIERBVEEg Pj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRlY2hvICIgU0lOR0xFIE5PTlNIQVJFRCIg Pj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRlY2hvIEVYUE9SVFMgPj4gJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0cHV0X29iamRpci8kbGli bmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKKysgICAgICBvbGRfYXJj aGl2ZV9Gcm9tX25ld19jbWRzX0Y3Nz0nZW14aW1wIC1vICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmEgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAgIDs7CisrCisrICAgIG9zZjMq KQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFsbG93X3VuZGVmaW5lZF9m bGFnX0Y3Nz0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCWFyY2hpdmVfY21k c19GNzc9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2 ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3ds fS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAk bGliJworKyAgICAgIGVsc2UKKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScgLWV4cGVjdF91 bnJlc29sdmVkIFwqJworKwlhcmNoaXZlX2NtZHNfRjc3PSckTEQgLXNoYXJlZCR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLXNvbmFtZSAkc29u YW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5n YCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWIn CisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nJHt3bH0t cnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfRjc3 PToKKysgICAgICA7OworKworKyAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhl IGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhl bgorKwlhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAk e3dsfVwqJworKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9 LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0t c2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0k e291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwloYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0Y3Nz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGVsc2UKKysJ YWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworKwlhcmNo aXZlX2NtZHNfRjc3PSckTEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIk dmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lz dHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCWFyY2hpdmVfZXhw c3ltX2NtZHNfRjc3PSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAi JXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmU7IGVjaG8g Ii1oaWRkZW4iPj4gJGxpYi5leHB+CisrCSRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxh Z30gLWlucHV0ICRsaWIuZXhwICRsaW5rZXJfZmxhZ3MgJGxpYm9ianMgJGRlcGxpYnMgLXNvbmFt ZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVy c3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1v ICRsaWJ+JHJtICRsaWIuZXhwJworKworKwkjIEJvdGggYyBhbmQgY3h4IGNvbXBpbGVyIHN1cHBv cnQgLXJwYXRoIGRpcmVjdGx5CisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PSctcnBh dGggJGxpYmRpcicKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Jf Rjc3PToKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikKKysgICAgICBub191bmRlZmluZWRf ZmxhZ19GNzc9JyAteiB0ZXh0JworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisr CXdsYXJjPScke3dsfScKKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHt3bH0taCAk e3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisr CWFyY2hpdmVfZXhwc3ltX2NtZHNfRjc3PSckZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNh dCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH4k ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAkQ0MgLXNoYXJlZCAke3dsfS1N ICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJworKyAgICAgIGVsc2UKKysJd2xhcmM9 JycKKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgg JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCWFyY2hp dmVfZXhwc3ltX2NtZHNfRjc3PSckZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhw b3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH4kZWNobyAi bG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysgIAkkTEQgLUcke2FsbG93X3VuZGVmaW5lZF9m bGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFnc34kcm0gJGxpYi5leHAnCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0Y3Nz0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92 YXJfRjc3PW5vCisrICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIHNvbGFyaXMyLlswLTVd IHwgc29sYXJpczIuWzAtNV0uKikgOzsKKysgICAgICAqKQorKwkjIFRoZSBjb21waWxlciBkcml2 ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAorKwkjIGJ1dCB1bmRl cnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcs CisrCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0byByZW9yZGVyLgorKyAJIyBTdXBwb3J0 ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKKysJaWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9JyR7d2x9LXogJHt3bH1h bGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKKysJZWxz ZQorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0Y3Nz0nLXogYWxsZXh0cmFjdCRjb252ZW5p ZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKKysJZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAg bGlua19hbGxfZGVwbGlic19GNzc9eWVzCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0KikKKysg ICAgICBpZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVuCisrCSMgVXNlICRD QyB0byBsaW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEg Lm8KKysJIyBmaWxlcyB0aGF0IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rpb25zIHdvcmsuCisr CWFyY2hpdmVfY21kc19GNzc9JyRDQyAtRyAke3dsfS1oICRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHNf Rjc3PSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19GNzc9Jy1MJGxpYmRpcicKKysgICAgICBoYXJkY29kZV9kaXJlY3RfRjc3PXllcwor KyAgICAgIGhhcmRjb2RlX21pbnVzX0xfRjc3PXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXJfRjc3PW5vCisrICAgICAgOzsKKysKKysgICAgc3lzdjQpCisrICAgICAgY2FzZSAkaG9z dF92ZW5kb3IgaW4KKysJc25pKQorKwkgIGFyY2hpdmVfY21kc19GNzc9JyRMRCAtRyAtaCAkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBoYXJkY29k ZV9kaXJlY3RfRjc3PXllcyAjIGlzIHRoaXMgcmVhbGx5IHRydWU/Pz8KKysJOzsKKysJc2llbWVu cykKKysJICAjIyBMRCBpcyBsZCBpdCBtYWtlcyBhIFBMQU1MSUIKKysJICAjIyBDQyBqdXN0IG1h a2VzIGEgR3Jvc3NNb2R1bGUuCisrCSAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1HIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICByZWxvYWRfY21kc19GNzc9JyRD QyAtciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJworKwkgIGhhcmRjb2RlX2RpcmVjdF9GNzc9bm8K KysgICAgICAgIDs7CisrCW1vdG9yb2xhKQorKwkgIGFyY2hpdmVfY21kc19GNzc9JyRMRCAtRyAt aCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysJICBo YXJkY29kZV9kaXJlY3RfRjc3PW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0 ZXN0cyBzYXkgdGhleSBsaWUKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgcnVucGF0aF92YXI9 J0xEX1JVTl9QQVRIJworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5vCisrICAg ICAgOzsKKysKKysgICAgc3lzdjQuMyopCisrICAgICAgYXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1H IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAg ICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfRjc3PW5vCisrICAgICAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0Y3Nz0nLUJleHBvcnQnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAqKQor KyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJExE IC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwor KwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3Nz1ubworKwlydW5wYXRoX3Zhcj1MRF9SVU5fUEFU SAorKwloYXJkY29kZV9ydW5wYXRoX3Zhcj15ZXMKKysJbGRfc2hsaWJzX0Y3Nz15ZXMKKysgICAg ICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5 c3Y1VW5peFdhcmU3LlswMV0uWzEwXSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bMDI0XSop CisrICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdfRjc3PScke3dsfS16LHRleHQnCisrICAgICAgYXJj aGl2ZV9jbWRzX25lZWRfbGNfRjc3PW5vCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9G Nzc9bm8KKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHt3 bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwor KwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhw b3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzX0Y3Nz0nJENDIC1HICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK KysJYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRf c3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzeXN2NSogfCBzY28zLjJ2 NSogfCBzY281djYqKQorKyAgICAgICMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3 ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90CisrICAgICAgIyBsaW5rIHdpdGggLWxj LCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bworKyAg ICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGli cmFyeSB3b3VsZAorKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1 c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKKysgICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBj YXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKKysgICAgICAj IGFzIC16IGRlZnMuCisrICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdfRjc3PScke3dsfS16LHRleHQn CisrICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3PScke3dsfS16LG5vZGVmcycKKysgICAg ICBhcmNoaXZlX2NtZHNfbmVlZF9sY19GNzc9bm8KKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhf dmFyX0Y3Nz1ubworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3PSdgdGVzdCAt eiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tUiwkbGliZGlyYCcKKysgICAgICBoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yX0Y3Nz0nOicKKysgICAgICBsaW5rX2FsbF9kZXBsaWJzX0Y3Nz15 ZXMKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfRjc3PScke3dsfS1CZXhwb3J0Jwor KyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAke3dsfS1oLFwk e1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJEND IC1zaGFyZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCxcJHtTQ09BQlNQ QVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kc19GNzc9JyRDQyAt RyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9j bWRzX0Y3Nz0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsXCR7 U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICB1 dHM0KikKKysgICAgICBhcmNoaXZlX2NtZHNfRjc3PSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19GNzc9Jy1MJGxpYmRpcicKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFy X0Y3Nz1ubworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgbGRfc2hsaWJzX0Y3Nz1ubwor KyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGxkX3NobGlic19GNzciID4mNQorKyRhc19lY2hvICIkbGRfc2hsaWJzX0Y3 NyIgPiY2OyB9CisrdGVzdCAiJGxkX3NobGlic19GNzciID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJl ZD1ubworKworKyMKKysjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/CisrIwor K2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGNfRjc3IiBpbgorK3h8eHllcykKKysgICMgQXNz dW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKKysgIGFyY2hpdmVfY21kc19uZWVkX2xjX0Y3Nz15ZXMK KysKKysgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHll czsgdGhlbgorKyAgICBjYXNlICRhcmNoaXZlX2NtZHNfRjc3IGluCisrICAgIConficqKQorKyAg ICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVl bmNlcy4KKysgICAgICA7OworKyAgICAnJENDICcqKQorKyAgICAgICMgVGVzdCB3aGV0aGVyIHRo ZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKKysgICAg ICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5 IHBhc3NlcyAtbGMKKysgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4K KysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAtbGMg c2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4uLi4gIiA+JjY7IH0K KysgICAgICAkcm0gY29uZnRlc3QqCisrICAgICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgICAgaWYgeyAoZXZhbCBlY2hvICIk YXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGls ZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gMj5jb25mdGVzdC5l cnI7IHRoZW4KKysgICAgICAgIHNvbmFtZT1jb25mdGVzdAorKyAgICAgICAgbGliPWNvbmZ0ZXN0 CisrICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICAgICAgIGRlcGxpYnM9 CisrICAgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bF9GNzcKKysJcGljX2ZsYWc9JGx0X3By b2dfY29tcGlsZXJfcGljX0Y3NworKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9LXYKKysgICAgICAg IGxpbmtlcl9mbGFncz0tdgorKyAgICAgICAgdmVyc3RyaW5nPQorKyAgICAgICAgb3V0cHV0X29i amRpcj0uCisrICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0CisrICAgICAgICBsdF9zYXZlX2FsbG93 X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZ19GNzcKKysgICAgICAgIGFsbG93 X3VuZGVmaW5lZF9mbGFnX0Y3Nz0KKysgICAgICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRM SU5FTk86IFwiJGFyY2hpdmVfY21kc19GNzcgMlw+XCYxIFx8IGdyZXAgXCIgLWxjIFwiIFw+L2Rl di9udWxsIDJcPlwmMVwiIikgPiY1CisrICAoZXZhbCAkYXJjaGl2ZV9jbWRzX0Y3NyAyXD5cJjEg XHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKSAyPiY1CisrICBhY19zdGF0dXM9 JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorKyAgICAgICAgdGhlbgorKwkgIGFyY2hpdmVfY21kc19u ZWVkX2xjX0Y3Nz1ubworKyAgICAgICAgZWxzZQorKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjX0Y3 Nz15ZXMKKysgICAgICAgIGZpCisrICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9JGx0 X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKKysgICAgICBlbHNlCisrICAgICAgICBjYXQgY29u ZnRlc3QuZXJyIDE+JjUKKysgICAgICBmaQorKyAgICAgICRybSBjb25mdGVzdCoKKysgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXJjaGl2ZV9jbWRzX25lZWRfbGNf Rjc3IiA+JjUKKyskYXNfZWNobyAiJGFyY2hpdmVfY21kc19uZWVkX2xjX0Y3NyIgPiY2OyB9Cisr ICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIDs7CisrZXNhYworKworK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3Mi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGlj cy4uLiAiID4mNjsgfQorK2xpYnJhcnlfbmFtZXNfc3BlYz0KKytsaWJuYW1lX3NwZWM9J2xpYiRu YW1lJworK3NvbmFtZV9zcGVjPQorK3NocmV4dF9jbWRzPSIuc28iCisrcG9zdGluc3RhbGxfY21k cz0KKytwb3N0dW5pbnN0YWxsX2NtZHM9CisrZmluaXNoX2NtZHM9CisrZmluaXNoX2V2YWw9Cisr c2hsaWJwYXRoX3Zhcj0KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93bgorK3Zl cnNpb25fdHlwZT1ub25lCisrZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgorK3N5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgorKworK25lZWRfbGliX3ByZWZp eD11bmtub3duCisraGFyZGNvZGVfaW50b19saWJzPW5vCisrCisrIyB3aGVuIHlvdSBzZXQgbmVl ZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNldF92ZXJzaW9u CisrIyBmbGFncyB0byBiZSBsZWZ0IHdpdGhvdXQgYXJndW1lbnRzCisrbmVlZF92ZXJzaW9uPXVu a25vd24KKysKKytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisrICB2ZXJzaW9uX3R5cGU9bGlu dXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5hJworKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrCisr ICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIHdlIGFwcGVuZCBhIG1ham9y IHZlcnNpb24gdG8gdGhlIG5hbWUuCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgOzsKKysKKythaXhbNC05XSopCisrICB2ZXJzaW9u X3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsg dGhlbgorKyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKKysgICAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBlbHNlCisrICAgICMgV2l0aCBHQ0Mg dXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKKysgICAg IyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQg d2l0aAorKyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVy YXRlZCBsaWJyYXJ5IHRvCisrICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQg bGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCisrICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3Rz IG9mIEdDQyBwcmlvciB0byAzLjAuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXg0 IHwgYWl4NC5bMDFdIHwgYWl4NC5bMDFdLiopCisrICAgICAgaWYgeyBlY2hvICcjaWYgX19HTlVD X18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49IDk3KScKKysJICAg ZWNobyAnIHllcyAnCisrCSAgIGVjaG8gJyNlbmRpZic7IH0gfCAke0NDfSAtRSAtIHwgZ3JlcCB5 ZXMgPiAvZGV2L251bGw7IHRoZW4KKysJOgorKyAgICAgIGVsc2UKKysJY2FuX2J1aWxkX3NoYXJl ZD1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICAjIEFJWCAob24gUG93 ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBo YXJkY29kZSBjb3JyZWN0CisrICAgICMgc29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkg d2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KKysgICAgIyBjb2xsZWN0Miwgc28gYWRk aXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4KKysgICAgaWYgdGVzdCAiJGFp eF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisrICAgICAgIyBJZiB1c2luZyBydW4g dGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCisrICAg ICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNl IGFyZSBub3QKKysgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCisrICAgICAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCisrICAgIGVsc2UKKysgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVu c2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQuMgorKyAgICAgICMgYW5kIGxh dGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBsaW5raW5nLgorKyAgICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJworKyAgICAg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisr ICAgIGZpCisrICAgIHNobGlicGF0aF92YXI9TElCUEFUSAorKyAgZmkKKysgIDs7CisrCisrYW1p Z2FvcyopCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFt ZS5hJworKyAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMv bGlicy4KKysgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5 IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJGVjaG8gIlgkbGliIiB8ICRYc2VkIC1lICdcJydz JV4uKi9cKFteL10qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJHJtIC9zeXMvbGlicy8k e2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIg JHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGli bmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJworKyAgOzsKKysKKytiZW9zKikKKysg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAor KyAgOzsKKysKKytic2RpWzQ1XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfdmVy c2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDov c2JpbiIgbGRjb25maWcgJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL1gxMS9s aWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3IvbG9jYWwvbGliIgorKyAgc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgICMgdGhl IGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3IvY29udHJpYi9saWIgYW5kCisr ICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBpcyBhIGxpbmsgdG8gL3Vzci9YMTFSNiksIGJ1 dCBsZXQgdXMgYWxsb3cKKysgICMgbGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2UgaW50byBwcm9n cmFtcworKyAgOzsKKysKKytjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisrICB2ZXJzaW9uX3R5 cGU9d2luZG93cworKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICBuZWVkX3ZlcnNpb249bm8KKysg IG5lZWRfbGliX3ByZWZpeD1ubworKworKyAgY2FzZSAkR0NDLCRob3N0X29zIGluCisrICB5ZXMs Y3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHczMiopCisrICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJGxpYm5hbWUuZGxsLmEnCisrICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikv Li4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKKysgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9m aWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CisrICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAn XCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7ZWNobyBcJGRsbmFtZSdcJydgfgorKyAg ICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KKysgICAgICB0ZXN0IC1kIFwk ZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KKysgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRs bmFtZSBcJGRsZGlyLyRkbG5hbWV+CisrICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZScK KysgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZp bGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBkbHBhdGg9JGRpci9cJGRsZGxsfgorKyAg ICAgICAkcm0gXCRkbHBhdGgnCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMK KysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBjeWd3aW4qKQorKyAgICAgICMgQ3lnd2lu IERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJworKyAgICAgIHNvbmFtZV9z cGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvY3lnLydgYGVjaG8gJHtyZWxl YXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysg ICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIC9saWIvdzMyYXBpIC9saWIg L3Vzci9sb2NhbC9saWIiCisrICAgICAgOzsKKysgICAgbWluZ3cqKQorKyAgICAgICMgTWluR1cg RExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJlZml4CisrICAgICAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZp eH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1w cmludC1zZWFyY2gtZGlycyB8IGdyZXAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJh cmllczovLyIgLWUgInMsPS8sLyxnImAKKysgICAgICBpZiBlY2hvICIkc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjIiB8IGdyZXAgJztbYy16Qy1aXTovJyA+L2Rldi9udWxsOyB0aGVuCisrICAgICAg ICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRIIHByaW50ZWQgYnkK KysgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2UgYXJlIHJ1bm5pbmcgb24gQ3lnd2luLiBHY2Mg cHJpbnRzIGl0cyBzZWFyY2gKKysgICAgICAgICMgcGF0aCB3aXRoIDsgc2VwYXJhdG9ycywgYW5k IHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhhbmRsZSB0aGUKKysgICAgICAgICMgZHJpdmUg bGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRlcnN0YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhl bSwKKysgICAgICAgICMgZXNwZWNpYWxseSBhcyB3ZSBtaWdodCBwYXNzIGZpbGVzIGZvdW5kIHRo ZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKKysgICAgICAgICMgd2hpY2ggd291bGRuJ3QgdW5kZXJz dGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4KKysgICAgICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsv IC9nJ2AKKysgICAgICBlbHNlCisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGVj aG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJB VE9SLyAvZyJgCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBwdzMyKikKKysgICAgICAjIHB3 MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKKysgICAgICBsaWJyYXJ5 X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hv ICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4 dH0nCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICA7OworKworKyAgKikKKysgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5d Ly0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCisrICAgIDs7Cisr ICBlc2FjCisrICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJworKyAgIyBGSVhNRTogZmly c3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlz IGluCisrICBzaGxpYnBhdGhfdmFyPVBBVEgKKysgIDs7CisrCisrZGFyd2luKiB8IHJoYXBzb2R5 KikKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgorKyAgdmVyc2lvbl90eXBlPWRh cndpbgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3ZlcnN1ZmZpeH0kc2hhcmVkX2V4 dCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFy ZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hh cmVkX2V4dCcKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIHNobGlicGF0 aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKKysgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9 IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJworKworKyAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCisrICA7OworKworK2Rn dXgqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5l ZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICA7OworKworK2ZyZWVic2QxKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7 OworKworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhh dmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKysgICMgdmVyc2lvbmluZyBt ZWNoYW5pc20sIGFkanVzdCB0aGlzLgorKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7 IHRoZW4KKysgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisrICBlbHNlCisrICAg IGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgZnJlZWJzZFsxMjNdKikgb2JqZm9ybWF0PWFvdXQgOzsK KysgICAgKikgb2JqZm9ybWF0PWVsZiA7OworKyAgICBlc2FjCisrICBmaQorKyAgdmVyc2lvbl90 eXBlPWZyZWVic2QtJG9iamZvcm1hdAorKyAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisrICAgIGZy ZWVic2QtZWxmKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysgICAg ICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBmcmVlYnNkLSopCisrICAgICAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgICAgbmVlZF92ZXJz aW9uPXllcworKyAgICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgZnJlZWJzZDIqKQorKyAgICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIDs7CisrICBmcmVlYnNkMy5bMDFdKiB8IGZyZWVi c2RlbGYzLlswMV0qKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLlsyLTldKiB8IGZy ZWVic2RlbGYzLlsyLTldKiB8IFwKKysgIGZyZWVic2Q0LlswLTVdIHwgZnJlZWJzZGVsZjQuWzAt NV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCisrICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7Cisr ICAqKSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5CisrICAgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7OworKyAg ZXNhYworKyAgOzsKKysKKytnbnUqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xp Yl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz CisrICA7OworKworK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKyAgIyBHaXZlIGEgc29u YW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVm dXNlcyB0bworKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIgdmVyc2lvbnMuCisrICB2ZXJzaW9uX3R5 cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBj YXNlICRob3N0X2NwdSBpbgorKyAgaWE2NCopCisrICAgIHNocmV4dF9jbWRzPScuc28nCisrICAg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRs ZC5zbyIKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgor KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBY MzI7IHRoZW4KKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXgz MiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIiCisrICAgIGVsc2UKKysgICAg ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xvY2FsL2xp Yi9ocHV4NjQiCisrICAgIGZpCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWMKKysgICAgOzsKKysgICBocHBhKjY0KikKKysgICAgIHNocmV4 dF9jbWRzPScuc2wnCisrICAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgICBkeW5hbWlj X2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgorKyAgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRICisrICAgICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisr ICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKKysgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91 c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBfNjQiCisrICAgICBzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCisrICAgICA7OworKyAgICop CisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBk bGQuc2wiCisrICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFUSAorKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0byBlbmFibGUgU0hMSUJfUEFUSAor KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgOzsKKysgIGVzYWMKKysgICMgSFAtVVggcnVucyAq cmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1LgorKyAg cG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWInCisrICA7OworKworK2ludGVyaXhbMy05 XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVl ZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGR5bmFtaWNfbGlua2VyPSdJbnRl cml4IDMueCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVf aW50b19saWJzPXllcworKyAgOzsKKysKKytpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQor KyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3Rv cHV4IDs7CisrICAgICopCisrCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRo ZW4KKysJCXZlcnNpb25fdHlwZT1saW51eAorKwllbHNlCisrCQl2ZXJzaW9uX3R5cGU9aXJpeAor KwlmaSA7OworKyAgZXNhYworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249 bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisr ICBjYXNlICRob3N0X29zIGluCisrICBpcml4NSogfCBub25zdG9wdXgqKQorKyAgICBsaWJzdWZm PSBzaGxpYnN1ZmY9CisrICAgIDs7CisrICAqKQorKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wu bTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECisrICAgICotMzJ8KiItMzIg InwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCisrICAgICAgbGlic3VmZj0gc2hsaWJz dWZmPSBsaWJtYWdpYz0zMi1iaXQ7OworKyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBu MzJ8KiItbWVsZjMyYm1pcG4zMiAiKQorKyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBs aWJtYWdpYz1OMzI7OworKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJt aXAgIikKKysgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7Owor KyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKysgICAg ZXNhYworKyAgICA7OworKyAgZXNhYworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxp YnN1ZmZ9X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vz ci9sb2NhbC9saWIke2xpYnN1ZmZ9IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91 c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKKysgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKKysgIDs7CisrCisrIyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBh b3V0LCBvciBjb2ZmLgorK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiop CisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBF TEYuCisrbGludXgqIHwgaypic2QqLWdudSkKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysg IGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCisrICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVu YWNjZXB0YWJsZS4KKysgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9y IGZhc3RfaW5zdGFsbAorKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KKysgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIk e2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKKysgIHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3Vm Zn0iCisrCisrICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0 aAorKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KKysgICAgbHRfbGRfZXh0cmE9 YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rl di9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAg PSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bIAldKmh3Y2Fw WyAJXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRy ICdcbicgJyAnYAorKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKKysgIGZpCisrCisrICAjIFdlIHVzZWQgdG8g dGVzdCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMgb24KKysg ICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJp ZXMgd2l0aCB0aGUKKysgICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3YXMgYnJv a2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLAorKyAgIyBtb3N0IHBvd2VycGMtbGludXggYm94ZXMg c3VwcG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQKKysgICMgcGVvcGxlIGNhbiBh bHdheXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFuZCB3ZQorKyAg IyBhc3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2UuCisrICBkeW5h bWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJworKyAgOzsKKysKKytuZXRic2QqKQorKyAgdmVy c2lvbl90eXBlPXN1bm9zCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1u bworKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVs bDsgdGhlbgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4Jwor KyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGly JworKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQuc28nCisrICBlbHNlCisr ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJu YW1lfSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxm X3NvJworKyAgZmkKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7 OworKworK25ld3NvczYpCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwor KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD15ZXMKKysgIDs7CisrCisrbnRvLXFueCopCisrICB2ZXJzaW9uX3R5cGU9bGludXgK KysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPXllcworKyAgOzsKKysKKytvcGVuYnNkKikKKysgIHZlcnNpb25fdHlwZT1z dW5vcworKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgorKyAgbmVlZF9s aWJfcHJlZml4PW5vCisrICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkJTRCAoMy4zIGF0 IGxlYXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMuCisrICBjYXNlICRob3N0X29zIGluCisr ICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopIG5lZWRfdmVyc2lvbj15ZXMgOzsKKysgICAg KikgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZF92ZXJzaW9uPW5vICA7OworKyAgZXNhYwor KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgIGZpbmlzaF9j bWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCisrICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRD QyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJv cGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBv cGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQorKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KKysJOzsKKysgICAgICAqKQorKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCisrCTs7CisrICAgICAgZXNhYworKyAgZWxzZQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCisrICBmaQorKyAgOzsKKysKKytvczIqKQorKyAgbGlibmFtZV9zcGVjPSck bmFtZScKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBs aWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAkbGlibmFtZS5hJworKyAg ZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJworKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisr ICA7OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgIHZlcnNpb25fdHlwZT1vc2YKKysg IG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n CisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBscnMvY2MgL3Vzci9s aWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorKyAgOzsKKysKKytyZG9zKikKKysgIGR5 bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK3NvbGFyaXMqKQorKyAgdmVyc2lvbl90eXBlPWxp bnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICMgbGRk IGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCisrICBwb3N0aW5zdGFs bF9jbWRzPSdjaG1vZCAreCAkbGliJworKyAgOzsKKysKKytzdW5vczQqKQorKyAgdmVyc2lvbl90 eXBlPXN1bm9zCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4Jwor KyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRjb25maWcgJGxpYmRpcicK KysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAg IG5lZWRfbGliX3ByZWZpeD1ubworKyAgZmkKKysgIG5lZWRfdmVyc2lvbj15ZXMKKysgIDs7Cisr Cisrc3lzdjQgfCBzeXN2NC4zKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGNhc2UgJGhvc3RfdmVu ZG9yIGluCisrICAgIHNuaSkKKysgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8K KysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWM9JyR7d2x9LUJsYXJnZWR5bnN5bScKKysgICAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAor KyAgICAgIDs7CisrICAgIHNpZW1lbnMpCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAg ICAgOzsKKysgICAgbW90b3JvbGEpCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAgICAg bmVlZF92ZXJzaW9uPW5vCisrICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisr ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3IvbGliIC91c3IvY2NzL2xp YicKKysgICAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzeXN2NCpNUCopCisrICBpZiB0ZXN0 IC1kIC91c3IvbmVjIDt0aGVuCisrICAgIHZlcnNpb25fdHlwZT1saW51eAorKyAgICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtz aGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3Bl Yz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIGZpCisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2 NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgdmVyc2lvbl90eXBl PWZyZWVic2QtZWxmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubwor KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNyL2dudS9saWIg L3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD1ubworKyAgZWxzZQorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2Nz L2xpYiAvdXNyL2xpYicKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAg ICBjYXNlICRob3N0X29zIGluCisrICAgICAgc2NvMy4ydjUqKQorKyAgICAgICAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9saWIiCisrCTs7Cisr ICAgIGVzYWMKKysgIGZpCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9saWIn CisrICA7OworKworK3V0czQqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgOzsKKysKKysqKQorKyAg ZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrZXNhYworK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1CisrJGFzX2VjaG8gIiRkeW5hbWljX2xp bmtlciIgPiY2OyB9CisrdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9z aGFyZWQ9bm8KKysKKytpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYytz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWMiCisrZmkKKysKKytzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMiCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytl bHNlCisrICBsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjIgorK2ZpCisrCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9j dl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKKysKKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3Jl bGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCisraWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KKysgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3Nh dmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRI IgorK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBo YXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4gIiA+ JjY7IH0KKytoYXJkY29kZV9hY3Rpb25fRjc3PQorK2lmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0Y3NyIgfHwgXAorKyAgIHRlc3QgLW4gIiRydW5wYXRoX3Zhcl9GNzciIHx8 IFwKKysgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9tYXRpY19GNzciID0gIlh5ZXMiIDsgdGhlbgor KworKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0YW50IGRpcmVjdG9yaWVzLgorKyAgaWYg dGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9GNzciICE9IG5vICYmCisrICAgICAjIElmIHRoZSBvbmx5 IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5nIGlzIHNobGlicGF0aF92YXIsIHdlCisrICAg ICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQgbGluayB3aXRoIGFuIGluc3Rh bGxlZCBsaWJyYXJ5CisrICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBhIHll dC10by1iZS1pbnN0YWxsZWQgb25lCisrICAgICAjIyB0ZXN0ICIkX0xUX0FDX1RBR1ZBUihoYXJk Y29kZV9zaGxpYnBhdGhfdmFyLCBGNzcpIiAhPSBubyAmJgorKyAgICAgdGVzdCAiJGhhcmRjb2Rl X21pbnVzX0xfRjc3IiAhPSBubzsgdGhlbgorKyAgICAjIExpbmtpbmcgYWx3YXlzIGhhcmRjb2Rl cyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgorKyAgICBoYXJkY29kZV9hY3Rpb25f Rjc3PXJlbGluaworKyAgZWxzZQorKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQgaGFyZGNvZGlu ZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgorKyAgICBoYXJkY29kZV9h Y3Rpb25fRjc3PWltbWVkaWF0ZQorKyAgZmkKKytlbHNlCisrICAjIFdlIGNhbm5vdCBoYXJkY29k ZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29kZSBleGlzdGluZworKyAgIyBk aXJlY3Rvcmllcy4KKysgIGhhcmRjb2RlX2FjdGlvbl9GNzc9dW5zdXBwb3J0ZWQKKytmaQorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rpb25fRjc3IiA+ JjUKKyskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbl9GNzciID4mNjsgfQorKworK2lmIHRlc3Qg IiRoYXJkY29kZV9hY3Rpb25fRjc3IiA9IHJlbGluazsgdGhlbgorKyAgIyBGYXN0IGluc3RhbGxh dGlvbiBpcyBub3Qgc3VwcG9ydGVkCisrICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCisrZWxpZiB0 ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyB8fAorKyAgICAgdGVzdCAi JGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KKysgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90 IG5lY2Vzc2FyeQorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1uZWVkbGVzcworK2ZpCisrCisrCisr IyBUaGUgZWxzZSBjbGF1c2Ugc2hvdWxkIG9ubHkgZmlyZSB3aGVuIGJvb3RzdHJhcHBpbmcgdGhl CisrIyBsaWJ0b29sIGRpc3RyaWJ1dGlvbiwgb3RoZXJ3aXNlIHlvdSBmb3Jnb3QgdG8gc2hpcCBs dG1haW4uc2gKKysjIHdpdGggeW91ciBwYWNrYWdlLCBhbmQgeW91IHdpbGwgZ2V0IGNvbXBsYWlu dHMgdGhhdCB0aGVyZSBhcmUKKysjIG5vIHJ1bGVzIHRvIGdlbmVyYXRlIGx0bWFpbi5zaC4KKytp ZiB0ZXN0IC1mICIkbHRtYWluIjsgdGhlbgorKyAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcgb24g enNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91ciBjb21tYW5kcyB0aHJvdWdo CisrICAjIHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCisrICBpZiB0ZXN0IC1uICIke1pT SF9WRVJTSU9OK3NldH0iIDsgdGhlbgorKyAgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorKyAgZmkK KysgICMgTm93IHF1b3RlIGFsbCB0aGUgdGhpbmdzIHRoYXQgbWF5IGNvbnRhaW4gbWV0YWNoYXJh Y3RlcnMgd2hpbGUgYmVpbmcKKysgICMgY2FyZWZ1bCBub3QgdG8gb3ZlcnF1b3RlIHRoZSBBQ19T VUJTVGVkIHZhbHVlcy4gIFdlIHRha2UgY29waWVzIG9mIHRoZQorKyAgIyB2YXJpYWJsZXMgYW5k IHF1b3RlIHRoZSBjb3BpZXMgZm9yIGdlbmVyYXRpb24gb2YgdGhlIGxpYnRvb2wgc2NyaXB0Lgor KyAgZm9yIHZhciBpbiBlY2hvIG9sZF9DQyBvbGRfQ0ZMQUdTIEFSIEFSX0ZMQUdTIEVHUkVQIFJB TkxJQiBMTl9TIExUQ0MgTFRDRkxBR1MgTk0gXAorKyAgICBTRUQgU0hFTEwgU1RSSVAgXAorKyAg ICBsaWJuYW1lX3NwZWMgbGlicmFyeV9uYW1lc19zcGVjIHNvbmFtZV9zcGVjIGV4dHJhY3RfZXhw c3ltc19jbWRzIFwKKysgICAgb2xkX3N0cmlwbGliIHN0cmlwbGliIGZpbGVfbWFnaWNfY21kIGZp bmlzaF9jbWRzIGZpbmlzaF9ldmFsIFwKKysgICAgZGVwbGlic19jaGVja19tZXRob2QgcmVsb2Fk X2ZsYWcgcmVsb2FkX2NtZHMgbmVlZF9sb2NrcyBcCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3BpcGUgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wgXAorKyAgICBsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCisrICAgIHN5c19saWJfc2VhcmNo X3BhdGhfc3BlYyBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBcCisrICAgIG9sZF9wb3N0aW5z dGFsbF9jbWRzIG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMgXAorKyAgICBjb21waWxlcl9GNzcgXAor KyAgICBDQ19GNzcgXAorKyAgICBMRF9GNzcgXAorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3 NyBcCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0Y3NyBcCisrICAgIGx0X3Byb2dfY29tcGls ZXJfc3RhdGljX0Y3NyBcCisrICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0Y3 NyBcCisrICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzcgXAorKyAgICB0aHJlYWRfc2Fm ZV9mbGFnX3NwZWNfRjc3IFwKKysgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3IFwKKysg ICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19GNzcgXAorKyAgICBvbGRfYXJj aGl2ZV9jbWRzX0Y3NyBcCisrICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfRjc3IFwKKysg ICAgcHJlZGVwX29iamVjdHNfRjc3IFwKKysgICAgcG9zdGRlcF9vYmplY3RzX0Y3NyBcCisrICAg IHByZWRlcHNfRjc3IFwKKysgICAgcG9zdGRlcHNfRjc3IFwKKysgICAgY29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoX0Y3NyBcCisrICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19GNzcgXAorKyAg ICBhcmNoaXZlX2NtZHNfRjc3IFwKKysgICAgYXJjaGl2ZV9leHBzeW1fY21kc19GNzcgXAorKyAg ICBwb3N0aW5zdGFsbF9jbWRzX0Y3NyBcCisrICAgIHBvc3R1bmluc3RhbGxfY21kc19GNzcgXAor KyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19GNzcgXAorKyAgICBhbGxvd191bmRl ZmluZWRfZmxhZ19GNzcgXAorKyAgICBub191bmRlZmluZWRfZmxhZ19GNzcgXAorKyAgICBleHBv cnRfc3ltYm9sc19jbWRzX0Y3NyBcCisrICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfRjc3 IFwKKysgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9GNzcgXAorKyAgICBoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yX0Y3NyBcCisrICAgIGhhcmRjb2RlX2F1dG9tYXRpY19GNzcgXAor KyAgICBtb2R1bGVfY21kc19GNzcgXAorKyAgICBtb2R1bGVfZXhwc3ltX2NtZHNfRjc3IFwKKysg ICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fRjc3IFwKKysgICAgZml4X3NyY2ZpbGVfcGF0aF9G NzcgXAorKyAgICBleGNsdWRlX2V4cHN5bXNfRjc3IFwKKysgICAgaW5jbHVkZV9leHBzeW1zX0Y3 NzsgZG8KKysKKysgICAgY2FzZSAkdmFyIGluCisrICAgIG9sZF9hcmNoaXZlX2NtZHNfRjc3IHwg XAorKyAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0Y3NyB8IFwKKysgICAgYXJjaGl2ZV9j bWRzX0Y3NyB8IFwKKysgICAgYXJjaGl2ZV9leHBzeW1fY21kc19GNzcgfCBcCisrICAgIG1vZHVs ZV9jbWRzX0Y3NyB8IFwKKysgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0Y3NyB8IFwKKysgICAgb2xk X2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfRjc3IHwgXAorKyAgICBleHBvcnRfc3ltYm9sc19j bWRzX0Y3NyB8IFwKKysgICAgZXh0cmFjdF9leHBzeW1zX2NtZHMgfCByZWxvYWRfY21kcyB8IGZp bmlzaF9jbWRzIHwgXAorKyAgICBwb3N0aW5zdGFsbF9jbWRzIHwgcG9zdHVuaW5zdGFsbF9jbWRz IHwgXAorKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcyB8IG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMg fCBcCisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyB8IHN5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjKQorKyAgICAgICMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KKysg ICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwkZWNobyBcIlhcJCR2YXJcIiB8IFwkWHNlZCAtZSBc IlwkZG91YmxlX3F1b3RlX3N1YnN0XCIgLWUgXCJcJHNlZF9xdW90ZV9zdWJzdFwiIC1lIFwiXCRk ZWxheV92YXJpYWJsZV9zdWJzdFwiXGBcXFwiIgorKyAgICAgIDs7CisrICAgICopCisrICAgICAg ZXZhbCAibHRfJHZhcj1cXFwiXGBcJGVjaG8gXCJYXCQkdmFyXCIgfCBcJFhzZWQgLWUgXCJcJHNl ZF9xdW90ZV9zdWJzdFwiXGBcXFwiIgorKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGRvbmUKKysK KysgIGNhc2UgJGx0X2VjaG8gaW4KKysgIConXCQwIC0tZmFsbGJhY2stZWNobyInKQorKyAgICBs dF9lY2hvPWAkZWNobyAiWCRsdF9lY2hvIiB8ICRYc2VkIC1lICdzL1xcXFxcXFwkMCAtLWZhbGxi YWNrLWVjaG8iJC8kMCAtLWZhbGxiYWNrLWVjaG8iLydgCisrICAgIDs7CisrICBlc2FjCisrCisr Y2ZnZmlsZT0iJG9maWxlIgorKworKyAgY2F0IDw8X19FT0ZfXyA+PiAiJGNmZ2ZpbGUiCisrIyAj IyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZQorKworKyMgTGlidG9vbCB3YXMg Y29uZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwg c2VkIDFxYDoKKysKKysjIFNoZWxsIHRvIHVzZSB3aGVuIGludm9raW5nIHNoZWxsIHNjcmlwdHMu CisrU0hFTEw9JGx0X1NIRUxMCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQg bGlicmFyaWVzLgorK2J1aWxkX2xpYnRvb2xfbGlicz0kZW5hYmxlX3NoYXJlZAorKworKyMgV2hl dGhlciBvciBub3QgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4KKytidWlsZF9vbGRfbGlicz0k ZW5hYmxlX3N0YXRpYworKworKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRp bmcgc2hhcmVkIGxpYnJhcmllcy4KKytidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21k c19uZWVkX2xjX0Y3NworKworKyMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxp YnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpYworK2FsbG93X2xpYnRvb2xfbGlic193aXRo X3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19GNzcK KysKKysjIFdoZXRoZXIgb3Igbm90IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbi4K KytmYXN0X2luc3RhbGw9JGVuYWJsZV9mYXN0X2luc3RhbGwKKysKKysjIFRoZSBob3N0IHN5c3Rl bS4KKytob3N0X2FsaWFzPSRob3N0X2FsaWFzCisraG9zdD0kaG9zdAorK2hvc3Rfb3M9JGhvc3Rf b3MKKysKKysjIFRoZSBidWlsZCBzeXN0ZW0uCisrYnVpbGRfYWxpYXM9JGJ1aWxkX2FsaWFzCisr YnVpbGQ9JGJ1aWxkCisrYnVpbGRfb3M9JGJ1aWxkX29zCisrCisrIyBBbiBlY2hvIHByb2dyYW0g dGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCisrZWNobz0kbHRfZWNobworKwor KyMgVGhlIGFyY2hpdmVyLgorK0FSPSRsdF9BUgorK0FSX0ZMQUdTPSRsdF9BUl9GTEFHUworKwor KyMgQSBDIGNvbXBpbGVyLgorK0xUQ0M9JGx0X0xUQ0MKKysKKysjIExUQ0MgY29tcGlsZXIgZmxh Z3MuCisrTFRDRkxBR1M9JGx0X0xUQ0ZMQUdTCisrCisrIyBBIGxhbmd1YWdlLXNwZWNpZmljIGNv bXBpbGVyLgorK0NDPSRsdF9jb21waWxlcl9GNzcKKysKKysjIElzIHRoZSBjb21waWxlciB0aGUg R05VIEMgY29tcGlsZXI/Cisrd2l0aF9nY2M9JEdDQ19GNzcKKysKKysjIEFuIEVSRSBtYXRjaGVy LgorK0VHUkVQPSRsdF9FR1JFUAorKworKyMgVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJh cmllcy4KKytMRD0kbHRfTERfRjc3CisrCisrIyBXaGV0aGVyIHdlIG5lZWQgaGFyZCBvciBzb2Z0 IGxpbmtzLgorK0xOX1M9JGx0X0xOX1MKKysKKysjIEEgQlNELWNvbXBhdGlibGUgbm0gcHJvZ3Jh bS4KKytOTT0kbHRfTk0KKysKKysjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtCisrU1RSSVA9 JGx0X1NUUklQCisrCisrIyBVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdp Y19jbWQgYmVnaW5zICJmaWxlIgorK01BR0lDX0NNRD0kTUFHSUNfQ01ECisrCisrIyBVc2VkIG9u IGN5Z3dpbjogRExMIGNyZWF0aW9uIHByb2dyYW0uCisrRExMVE9PTD0iJERMTFRPT0wiCisrCisr IyBVc2VkIG9uIGN5Z3dpbjogb2JqZWN0IGR1bXBlci4KKytPQkpEVU1QPSIkT0JKRFVNUCIKKysK KysjIFVzZWQgb24gY3lnd2luOiBhc3NlbWJsZXIuCisrQVM9IiRBUyIKKysKKysjIFRoZSBuYW1l IG9mIHRoZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4K KytvYmpkaXI9JG9iamRpcgorKworKyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBm aWxlcy4KKytyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcKKytyZWxvYWRfY21kcz0kbHRfcmVs b2FkX2NtZHMKKysKKysjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29t cGlsZXIuCisrd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2xfRjc3CisrCisrIyBPYmplY3QgZmls ZSBzdWZmaXggKG5vcm1hbGx5ICJvIikuCisrb2JqZXh0PSIkYWNfb2JqZXh0IgorKworKyMgT2xk IGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpLgorK2xpYmV4dD0iJGxpYmV4dCIKKysKKysj IFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIpLgorK3NocmV4dF9jbWRzPSck c2hyZXh0X2NtZHMnCisrCisrIyBFeGVjdXRhYmxlIGZpbGUgc3VmZml4IChub3JtYWxseSAiIiku CisrZXhlZXh0PSIkZXhlZXh0IgorKworKyMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3Ig YnVpbGRpbmcgbGlicmFyeSBvYmplY3RzLgorK3BpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVy X3BpY19GNzcKKytwaWNfbW9kZT0kcGljX21vZGUKKysKKysjIFdoYXQgaXMgdGhlIG1heGltdW0g bGVuZ3RoIG9mIGEgY29tbWFuZD8KKyttYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVu CisrCisrIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9w dGlvbnM/CisrY29tcGlsZXJfY19vPSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19GNzcKKysK KysjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uPworK25lZWRfbG9j a3M9JGx0X25lZWRfbG9ja3MKKysKKysjIERvIHdlIG5lZWQgdGhlIGxpYiBwcmVmaXggZm9yIG1v ZHVsZXM/CisrbmVlZF9saWJfcHJlZml4PSRuZWVkX2xpYl9wcmVmaXgKKysKKysjIERvIHdlIG5l ZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/CisrbmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24K KysKKysjIFdoZXRoZXIgZGxvcGVuIGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc3VwcG9ydD0kZW5h YmxlX2Rsb3BlbgorKworKyMgV2hldGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVk LgorK2Rsb3Blbl9zZWxmPSRlbmFibGVfZGxvcGVuX3NlbGYKKysKKysjIFdoZXRoZXIgZGxvcGVu IG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc2Vs Zl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMKKysKKysjIENvbXBpbGVyIGZsYWcg dG8gcHJldmVudCBkeW5hbWljIGxpbmtpbmcuCisrbGlua19zdGF0aWNfZmxhZz0kbHRfbHRfcHJv Z19jb21waWxlcl9zdGF0aWNfRjc3CisrCisrIyBDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1 aWx0aW4gZnVuY3Rpb25zLgorK25vX2J1aWx0aW5fZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9u b19idWlsdGluX2ZsYWdfRjc3CisrCisrIyBDb21waWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2 ZSBkbG9wZW5zLgorK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0kbHRfZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0Y3NworKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2Jq ZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRs dF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzcKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gZ2Vu ZXJhdGUgdGhyZWFkLXNhZmUgb2JqZWN0cy4KKyt0aHJlYWRfc2FmZV9mbGFnX3NwZWM9JGx0X3Ro cmVhZF9zYWZlX2ZsYWdfc3BlY19GNzcKKysKKysjIExpYnJhcnkgdmVyc2lvbmluZyB0eXBlLgor K3ZlcnNpb25fdHlwZT0kdmVyc2lvbl90eXBlCisrCisrIyBGb3JtYXQgb2YgbGlicmFyeSBuYW1l IHByZWZpeC4KKytsaWJuYW1lX3NwZWM9JGx0X2xpYm5hbWVfc3BlYworKworKyMgTGlzdCBvZiBh cmNoaXZlIG5hbWVzLiAgRmlyc3QgbmFtZSBpcyB0aGUgcmVhbCBvbmUsIHRoZSByZXN0IGFyZSBs aW5rcy4KKysjIFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMg d2l0aCAtbE5BTUUuCisrbGlicmFyeV9uYW1lc19zcGVjPSRsdF9saWJyYXJ5X25hbWVzX3NwZWMK KysKKysjIFRoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0 aGUgcmVhbCBuYW1lLgorK3NvbmFtZV9zcGVjPSRsdF9zb25hbWVfc3BlYworKworKyMgQ29tbWFu ZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBhbiBvbGQtc3R5bGUgYXJjaGl2ZS4KKytSQU5M SUI9JGx0X1JBTkxJQgorK29sZF9hcmNoaXZlX2NtZHM9JGx0X29sZF9hcmNoaXZlX2NtZHNfRjc3 Cisrb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRzCisrb2xkX3Bv c3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcworKworKyMgQ3JlYXRl IGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2 ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX0Y3NworKworKyMg Q3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBh IHNoYXJlZCBhcmNoaXZlLgorK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSRsdF9vbGRf YXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19GNzcKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVp bGQgYW5kIGluc3RhbGwgYSBzaGFyZWQgYXJjaGl2ZS4KKythcmNoaXZlX2NtZHM9JGx0X2FyY2hp dmVfY21kc19GNzcKKythcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRz X0Y3NworK3Bvc3RpbnN0YWxsX2NtZHM9JGx0X3Bvc3RpbnN0YWxsX2NtZHMKKytwb3N0dW5pbnN0 YWxsX2NtZHM9JGx0X3Bvc3R1bmluc3RhbGxfY21kcworKworKyMgQ29tbWFuZHMgdXNlZCB0byBi dWlsZCBhIGxvYWRhYmxlIG1vZHVsZSAoYXNzdW1lZCBzYW1lIGFzIGFib3ZlIGlmIGVtcHR5KQor K21vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21kc19GNzcKKyttb2R1bGVfZXhwc3ltX2NtZHM9JGx0 X21vZHVsZV9leHBzeW1fY21kc19GNzcKKysKKysjIENvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmll cy4KKytvbGRfc3RyaXBsaWI9JGx0X29sZF9zdHJpcGxpYgorK3N0cmlwbGliPSRsdF9zdHJpcGxp YgorKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBs aW5rZWQgdG8gY3JlYXRlIGEKKysjIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcF9vYmplY3RzPSRs dF9wcmVkZXBfb2JqZWN0c19GNzcKKysKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBhZnRlciB0 aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKKysjIHNoYXJlZCBsaWJyYXJ5Lgor K3Bvc3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzX0Y3NworKworKyMgRGVwZW5kZW5j aWVzIHRvIHBsYWNlIGJlZm9yZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEK KysjIHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcHM9JGx0X3ByZWRlcHNfRjc3CisrCisrIyBEZXBl bmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvIGNyZWF0 ZSBhCisrIyBzaGFyZWQgbGlicmFyeS4KKytwb3N0ZGVwcz0kbHRfcG9zdGRlcHNfRjc3CisrCisr IyBUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNyZWF0aW5n IGEgc2hhcmVkCisrIyBsaWJyYXJ5CisrY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSRsdF9jb21w aWxlcl9saWJfc2VhcmNoX2RpcnNfRjc3CisrCisrIyBUaGUgbGlicmFyeSBzZWFyY2ggcGF0aCB1 c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZworKyMgYSBzaGFyZWQg bGlicmFyeS4KKytjb21waWxlcl9saWJfc2VhcmNoX3BhdGg9JGx0X2NvbXBpbGVyX2xpYl9zZWFy Y2hfcGF0aF9GNzcKKysKKysjIE1ldGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJy YXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgorK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9kZXBs aWJzX2NoZWNrX21ldGhvZAorKworKyMgQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNr X21ldGhvZCA9PSBmaWxlX21hZ2ljLgorK2ZpbGVfbWFnaWNfY21kPSRsdF9maWxlX21hZ2ljX2Nt ZAorKworKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVk IHN5bWJvbHMgdG8gYmUgYnVpbHQuCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3Vu ZGVmaW5lZF9mbGFnX0Y3NworKworKyMgRmxhZyB0aGF0IGZvcmNlcyBubyB1bmRlZmluZWQgc3lt Ym9scy4KKytub191bmRlZmluZWRfZmxhZz0kbHRfbm9fdW5kZWZpbmVkX2ZsYWdfRjc3CisrCisr IyBDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxpYnRvb2wgbGlicmFyeSBpbnN0YWxsYXRpb24g aW4gYSBkaXJlY3RvcnkuCisrZmluaXNoX2NtZHM9JGx0X2ZpbmlzaF9jbWRzCisrCisrIyBTYW1l IGFzIGFib3ZlLCBidXQgYSBzaW5nbGUgc2NyaXB0IGZyYWdtZW50IHRvIGJlIGV2YWxlZCBidXQg bm90IHNob3duLgorK2ZpbmlzaF9ldmFsPSRsdF9maW5pc2hfZXZhbAorKworKyMgVGFrZSB0aGUg b3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGluZyBvZiByYXcgc3ltYm9scyBhbmQgQyBu YW1lcy4KKytnbG9iYWxfc3ltYm9sX3BpcGU9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Bp cGUKKysKKysjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgcHJvcGVyIEMgZGVjbGFy YXRpb24KKytnbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jZGVjbAorKworKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUg YWRkcmVzcyBwYWlyCisrZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0kbHRfbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MKKysKKysjIFRoaXMgaXMgdGhlIHNo YXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZS4KKytydW5wYXRoX3Zhcj0kcnVucGF0 aF92YXIKKysKKysjIFRoaXMgaXMgdGhlIHNoYXJlZCBsaWJyYXJ5IHBhdGggdmFyaWFibGUuCisr c2hsaWJwYXRoX3Zhcj0kc2hsaWJwYXRoX3ZhcgorKworKyMgSXMgc2hsaWJwYXRoIHNlYXJjaGVk IGJlZm9yZSB0aGUgaGFyZC1jb2RlZCBsaWJyYXJ5IHNlYXJjaCBwYXRoPworK3NobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD0kc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoCisrCisrIyBIb3cg dG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZS4KKyto YXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbl9GNzcKKysKKysjIFdoZXRoZXIgd2Ugc2hv dWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXMuCisraGFyZGNvZGVfaW50 b19saWJzPSRoYXJkY29kZV9pbnRvX2xpYnMKKysKKysjIEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJk aXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KKysjIFRoaXMgbXVzdCB3b3JrIGV2ZW4g aWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0k bHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19GNzcKKysKKysjIElmIGxkIGlzIHVzZWQgd2hl biBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8KKysjIGEgYmluYXJ5IGR1 cmluZyBsaW5raW5nLiBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMKKysjIG5v dCBleGlzdC4KKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSRsdF9oYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX2xkX0Y3NworKworKyMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlIC1ycGF0 aCBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCisraGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9GNzcKKysKKysjIFNldCB0byB5ZXMg aWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5nIGhhcmRjb2Rl cyBESVIgaW50byB0aGUKKysjIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVfZGlyZWN0PSRo YXJkY29kZV9kaXJlY3RfRjc3CisrCisrIyBTZXQgdG8geWVzIGlmIHVzaW5nIHRoZSAtTERJUiBm bGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKKysjIHJlc3VsdGluZyBi aW5hcnkuCisraGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTF9GNzcKKysKKysjIFNl dCB0byB5ZXMgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcgaGFyZGNv ZGVzIERJUiBpbnRvCisrIyB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9zaGxpYnBh dGhfdmFyPSRoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0Y3NworKworKyMgU2V0IHRvIHllcyBpZiBi dWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJUiBpbnRv IHRoZSBsaWJyYXJ5CisrIyBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRh YmxlcyBsaW5rZWQgYWdhaW5zdCBpdC4KKytoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1 dG9tYXRpY19GNzcKKysKKysjIFZhcmlhYmxlcyB3aG9zZSB2YWx1ZXMgc2hvdWxkIGJlIHNhdmVk IGluIGxpYnRvb2wgd3JhcHBlciBzY3JpcHRzIGFuZAorKyMgcmVzdG9yZWQgYXQgcmVsaW5rIHRp bWUuCisrdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3Jl bGluayIKKysKKysjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3Qg YWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KKytsaW5rX2FsbF9kZXBsaWJzPSRsaW5rX2Fs bF9kZXBsaWJzX0Y3NworKworKyMgQ29tcGlsZS10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3Ig bGlicmFyaWVzCisrc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMKKysKKysjIFJ1bi10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVz Cisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjCisrCisrIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxlIFwkc3JjZmlsZSBmb3IgdGhlIGNvbXBp bGVyLgorK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9zcmNmaWxlX3BhdGgKKysKKysjIFNldCB0 byB5ZXMgaWYgZXhwb3J0ZWQgc3ltYm9scyBhcmUgcmVxdWlyZWQuCisrYWx3YXlzX2V4cG9ydF9z eW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHNfRjc3CisrCisrIyBUaGUgY29tbWFuZHMgdG8g bGlzdCBleHBvcnRlZCBzeW1ib2xzLgorK2V4cG9ydF9zeW1ib2xzX2NtZHM9JGx0X2V4cG9ydF9z eW1ib2xzX2NtZHNfRjc3CisrCisrIyBUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0 ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlLgorK2V4dHJhY3RfZXhwc3ltc19j bWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcworKworKyMgU3ltYm9scyB0aGF0IHNob3VsZCBu b3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KKytleGNsdWRlX2V4cHN5bXM9 JGx0X2V4Y2x1ZGVfZXhwc3ltc19GNzcKKysKKysjIFN5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBi ZSBleHBvcnRlZC4KKytpbmNsdWRlX2V4cHN5bXM9JGx0X2luY2x1ZGVfZXhwc3ltc19GNzcKKysK KysjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZQorKworK19fRU9GX18KKysK KysKKytlbHNlCisrICAjIElmIHRoZXJlIGlzIG5vIE1ha2VmaWxlIHlldCwgd2UgcmVseSBvbiBh IG1ha2UgcnVsZSB0byBleGVjdXRlCisrICAjIGBjb25maWcuc3RhdHVzIC0tcmVjaGVjaycgdG8g cmVydW4gdGhlc2UgdGVzdHMgYW5kIGNyZWF0ZSB0aGUKKysgICMgbGlidG9vbCBzY3JpcHQgdGhl bi4KKysgIGx0bWFpbl9pbj1gZWNobyAkbHRtYWluIHwgc2VkIC1lICdzL1wuc2gkLy5pbi8nYAor KyAgaWYgdGVzdCAtZiAiJGx0bWFpbl9pbiI7IHRoZW4KKysgICAgdGVzdCAtZiBNYWtlZmlsZSAm JiBtYWtlICIkbHRtYWluIgorKyAgZmkKKytmaQorKworKworK2FjX2V4dD1jCisrYWNfY3BwPSck Q1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKyth Y19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrQ0M9IiRsdF9zYXZlX0ND IgorKworKwllbHNlCisrCSAgdGFnbmFtZT0iIgorKwlmaQorKwk7OworKworKyAgICAgIEdDSikK KysJaWYgdGVzdCAtbiAiJEdDSiIgJiYgdGVzdCAiWCRHQ0oiICE9ICJYbm8iOyB0aGVuCisrCisr CisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEphdmEgdGVzdCBzb3VyY2VzLgorK2FjX2V4 dD1qYXZhCisrCisrIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEphdmEgdGVz dCBzb3VyY2VzLgorK29iamV4dD1vCisrb2JqZXh0X0dDSj0kb2JqZXh0CisrCisrIyBDb2RlIHRv IGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKytsdF9zaW1wbGVfY29tcGlsZV90ZXN0 X2NvZGU9ImNsYXNzIGZvbyB7fSIKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGlu ayB0ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0ncHVibGljIGNsYXNzIGNvbmZ0ZXN0 IHsgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJndikge307IH0nCisrCisrIyBs dG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3Vy ZSAkQ0MgaXMgc2V0LgorKworKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2Ug Q0MuCisrTFRDQz0ke0xUQ0MtIiRDQyJ9CisrCisrIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdl cmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgorK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1Mi fQorKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisr Y29tcGlsZXI9JENDCisrCisrCisrIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBs ZSB0ZXN0IGNvZGUKKythY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKytlY2hvICIkbHRf c2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorK2V2YWwgIiRhY19j b21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0ZXN0 LmVycgorK19sdF9jb21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyskcm0g Y29uZnRlc3QqCisrCisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0 X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFsICIkYWNfbGlu ayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIK KytfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRybSAtciBjb25m dGVzdCoKKysKKysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1l bnRzLgorK2x0X3NhdmVfQ0M9IiRDQyIKKytDQz0ke0dDSi0iZ2NqIn0KKytjb21waWxlcj0kQ0MK Kytjb21waWxlcl9HQ0o9JENDCisrZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCisrICBj YXNlICRjY190ZW1wIGluCisrICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwg KltcXC9dY2NhY2hlICkgOzsKKysgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwg KltcXC9dcHVyaWZ5ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAqKSBicmVhazs7CisrICBlc2Fj CisrZG9uZQorK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4q LyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorKworKworKyMgR0NKIGRpZCBub3QgZXhpc3Qg YXQgdGhlIHRpbWUgR0NDIGRpZG4ndCBpbXBsaWNpdGx5IGxpbmsgbGliYyBpbi4KKythcmNoaXZl X2NtZHNfbmVlZF9sY19HQ0o9bm8KKysKKytvbGRfYXJjaGl2ZV9jbWRzX0dDSj0kb2xkX2FyY2hp dmVfY21kcworKworKworK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0dDSj0KKysK KytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgbHRfcHJvZ19jb21waWxlcl9ub19idWls dGluX2ZsYWdfR0NKPScgLWZuby1idWlsdGluJworKworKworK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRpIC1mbm8tZXhj ZXB0aW9ucyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRz IC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2 X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0 aV9leGNlcHRpb25zPW5vCisrICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICBl Y2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysg ICBsdF9jb21waWxlcl9mbGFnPSItZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIgorKyAgICMgSW5z ZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUs IG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAo MykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBu b3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNp Z24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysg ICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25m dXNpbmcgc2VkLgorKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAor KyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKKysg ICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAg LWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKKysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6 MTc0OTA6ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29u ZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPworKyAgIGNhdCBjb25mdGVzdC5lcnIgPiY1Cisr ICAgZWNobyAiJGFzX21lOjE3NDk0OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgICBpZiAoZXhp dCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KKysgICAgICMgVGhl IGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNv Z25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhh biB0aGUgdXN1YWwgb3V0cHV0LgorKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBs YXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7 IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMg Y29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxs OyB0aGVuCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zPXllcwor KyAgICAgZmkKKysgICBmaQorKyAgICRybSBjb25mdGVzdCoKKysKKytmaQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0 aW9ucyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9u cyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0 aW9ucyIgPSB4eWVzOyB0aGVuCisrICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFn X0dDSj0iJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0dDSiAtZm5vLXJ0dGkgLWZu by1leGNlcHRpb25zIgorK2Vsc2UKKysgICAgOgorK2ZpCisrCisrZmkKKysKKytsdF9wcm9nX2Nv bXBpbGVyX3dsX0dDSj0KKytsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9CisrbHRfcHJvZ19jb21w aWxlcl9zdGF0aWNfR0NKPQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gIiA+JjY7IH0K KysKKysgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGx0X3Byb2dfY29tcGlsZXJf d2xfR0NKPSctV2wsJworKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1zdGF0aWMn CisrCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgqKQorKyAgICAgICMgQWxsIEFJ WCBjb2RlIGlzIFBJQy4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgor KwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwlsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19HQ0o9Jy1Cc3RhdGljJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgYW1p Z2FvcyopCisrICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1 aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcg ZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorKyAgICAgICMg bGlrZSBgLW02ODA0MCcuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctbTY4MDIw IC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAgOzsKKysKKysgICAgYmVv cyogfCBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUq KQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgorKyAgICAgIDs7 CisrCisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiopCisrICAgICAgIyBUaGlz IGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBi ZWluZworKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBl eHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisrICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2lu IGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQorKyAgICAg ICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCisrCisrICAgICAgOzsKKysKKysg ICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0 aGlzIHBsYXRmb3JtCisrICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9E WUxJQiBmaWxlcworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLWZuby1jb21tb24n CisrICAgICAgOzsKKysKKysgICAgaW50ZXJpeFszLTldKikKKysgICAgICAjIEludGVyaXggMy54 IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgorKyAgICAgICMg SW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgorKyAgICAg IDs7CisrCisrICAgIG1zZG9zZGpncHAqKQorKyAgICAgICMgSnVzdCBiZWNhdXNlIHdlIHVzZSBH Q0MgZG9lc24ndCBtZWFuIHdlIHN1ZGRlbmx5IGdldCBzaGFyZWQgbGlicmFyaWVzCisrICAgICAg IyBvbiBzeXN0ZW1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtLgorKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9HQ0o9bm8KKysgICAgICBlbmFibGVfc2hhcmVkPW5vCisr ICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7 IHRoZW4KKysJbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPS1LY29uZm9ybV9waWMKKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIGhwdXgqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0 IGZvciBJQTY0IEhQLVVYIGFuZCA2NC1iaXQgSFAtVVgsIGJ1dAorKyAgICAgICMgbm90IGZvciBQ QSBIUC1VWC4KKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIGhwcGEqNjQqfGlhNjQq KQorKwkjICtaIHRoZSBkZWZhdWx0CisrCTs7CisrICAgICAgKikKKysJbHRfcHJvZ19jb21waWxl cl9waWNfR0NKPSctZlBJQycKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAg KikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1mUElDJworKyAgICAgIDs7Cisr ICAgIGVzYWMKKysgIGVsc2UKKysgICAgIyBQT1JUTUUgQ2hlY2sgZm9yIGZsYWcgdG8gcGFzcyBs aW5rZXIgZmxhZ3MgdGhyb3VnaCB0aGUgc3lzdGVtIGNvbXBpbGVyLgorKyAgICBjYXNlICRob3N0 X29zIGluCisrICAgIGFpeCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwn CisrICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysJIyBBSVggNSBub3cg c3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSct QnN0YXRpYycKKysgICAgICBlbHNlCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLWJu c28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgICBk YXJ3aW4qKQorKyAgICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQor KyAgICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwor KyAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgIHhsYyopCisrICAgICAgICAg bHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctcW5vY29tbW9uJworKyAgICAgICAgIGx0X3Byb2df Y29tcGlsZXJfd2xfR0NKPSctV2wsJworKyAgICAgICAgIDs7CisrICAgICAgIGVzYWMKKysgICAg ICAgOzsKKysKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKikKKysgICAgICAj IFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0 IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hv dWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysKKysgICAgICA7OworKworKyAgICBo cHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0dD Sj0nLVdsLCcKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBIUC1VWCBhbmQg NjQtYml0IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCisrICAgICAgY2Fz ZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJIyArWiB0aGUgZGVmYXVs dAorKwk7OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nK1onCisrCTs7 CisrICAgICAgZXNhYworKyAgICAgICMgSXMgdGhlcmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21waWxl cl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBidW5kbGVkIENDPworKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0dDSj0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrICAgICAgOzsKKysK KysgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysgICAgICBsdF9wcm9nX2NvbXBp bGVyX3dsX0dDSj0nLVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1 bHQuCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctbm9uX3NoYXJlZCcKKysg ICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dD Sj0nLUtQSUMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycK KysgICAgICA7OworKworKyAgICBsaW51eCogfCBrKmJzZCotZ251KQorKyAgICAgIGNhc2UgJGNj X2Jhc2VuYW1lIGluCisrICAgICAgaWNjKiB8IGVjYyopCisrCWx0X3Byb2dfY29tcGlsZXJfd2xf R0NKPSctV2wsJworKwlsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1LUElDJworKwlsdF9wcm9n X2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1zdGF0aWMnCisrICAgICAgICA7OworKyAgICAgIHBnY2Mq IHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQorKyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBj b21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdjYyBjb21waWxlciwKKysJIyB3aGljaCBsb29r cyB0byBiZSBhIGRlYWQgcHJvamVjdCkKKysJbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwn CisrCWx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLWZwaWMnCisrCWx0X3Byb2dfY29tcGlsZXJf c3RhdGljX0dDSj0nLUJzdGF0aWMnCisrICAgICAgICA7OworKyAgICAgIGNjYyopCisrICAgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSj0nLVdsLCcKKysgICAgICAgICMgQWxsIEFscGhhIGNv ZGUgaXMgUElDLgorKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctbm9uX3No YXJlZCcKKysgICAgICAgIDs7CisrICAgICAgKikKKysgICAgICAgIGNhc2UgYCRDQyAtViAyPiYx IHwgc2VkIDVxYCBpbgorKwkqU3VuXCBDKikKKysJICAjIFN1biBDIDUuOQorKwkgIGx0X3Byb2df Y29tcGlsZXJfcGljX0dDSj0nLUtQSUMnCisrCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NK PSctQnN0YXRpYycKKysJICBsdF9wcm9nX2NvbXBpbGVyX3dsX0dDSj0nLVdsLCcKKysJICA7Owor KwkqU3VuXCBGKikKKysJICAjIFN1biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXpl ZCBmbGFncyB0byB0aGUgbGlua2VyCisrCSAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctS1BJ QycKKysJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1Cc3RhdGljJworKwkgIGx0X3By b2dfY29tcGlsZXJfd2xfR0NKPScnCisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGVzYWMK KysgICAgICA7OworKworKyAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgbHRfcHJv Z19jb21waWxlcl93bF9HQ0o9Jy1XbCwnCisrICAgICAgIyBBbGwgT1NGLzEgY29kZSBpcyBQSUMu CisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctbm9uX3NoYXJlZCcKKysgICAg ICA7OworKworKyAgICByZG9zKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9 Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMqKQorKyAgICAgIGx0X3By b2dfY29tcGlsZXJfcGljX0dDSj0nLUtQSUMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNfR0NKPSctQnN0YXRpYycKKysgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIGY3 NyogfCBmOTAqIHwgZjk1KikKKysJbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1Rb3B0aW9uIGxk ICc7OworKyAgICAgICopCisrCWx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJzs7CisrICAg ICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisrICAgICAgbHRfcHJvZ19jb21w aWxlcl93bF9HQ0o9Jy1Rb3B0aW9uIGxkICcKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19H Q0o9Jy1QSUMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycK KysgICAgICA7OworKworKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyopCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwnCisrICAgICAgbHRfcHJvZ19jb21waWxl cl9waWNfR0NKPSctS1BJQycKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1C c3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1k IC91c3IvbmVjIDt0aGVuCisrCWx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLUtjb25mb3JtX3Bp YycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycKKysgICAgICBmaQor KyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2 NiogfCBPcGVuVU5JWCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwnCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctS1BJQycKKysgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpY19HQ0o9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHVuaWNvcyop CisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9HQ0o9Jy1XbCwnCisrICAgICAgbHRfcHJvZ19j b21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0dDSj1ubworKyAgICAgIDs7CisrCisrICAgIHV0czQq KQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0nLXBpYycKKysgICAgICBsdF9wcm9n X2NvbXBpbGVyX3N0YXRpY19HQ0o9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgICopCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0dDSj1ubworKyAgICAgIDs7 CisrICAgIGVzYWMKKysgIGZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSiIgPiY1CisrJGFzX2VjaG8gIiRsdF9wcm9nX2Nv bXBpbGVyX3BpY19HQ0oiID4mNjsgfQorKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUg UElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lmIHRlc3QgLW4gIiRsdF9wcm9nX2NvbXBp bGVyX3BpY19HQ0oiOyB0aGVuCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWNfR0NKIHdvcmtz IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3By b2dfY29tcGlsZXJfcGljX0dDSiB3b3Jrcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3Zf cHJvZ19jb21waWxlcl9waWNfd29ya3NfR0NKK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dv cmtzX0dDSj1ubworKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrICAgZWNobyAi JGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrICAgbHRf Y29tcGlsZXJfZmxhZz0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSiIKKysgICAjIEluc2VydCB0 aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgor KyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0 IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNv bnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChu b3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgIyBU aGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5n IHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAt ZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUg J3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdz OiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjE3Nzgw OiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0 LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgIGVj aG8gIiRhc19tZToxNzc4NDogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFj X3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCisrICAgICAjIFRoZSBjb21w aWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXpl ZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhl IHVzdWFsIG91dHB1dC4KKysgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIg fCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAq Ky9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhl bgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19HQ0o9eWVzCisrICAgICBm aQorKyAgIGZpCisrICAgJHJtIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0dDSiIgPiY1 CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19HQ0oiID4mNjsgfQor KworK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfR0NKIiA9IHh5ZXM7 IHRoZW4KKysgICAgY2FzZSAkbHRfcHJvZ19jb21waWxlcl9waWNfR0NKIGluCisrICAgICAiIiB8 ICIgIiopIDs7CisrICAgICAqKSBsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9IiAkbHRfcHJvZ19j b21waWxlcl9waWNfR0NKIiA7OworKyAgICAgZXNhYworK2Vsc2UKKysgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfR0NKPQorKyAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0dD Sj1ubworK2ZpCisrCisrZmkKKytjYXNlICRob3N0X29zIGluCisrICAjIEZvciBwbGF0Zm9ybXMg d2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoKKysgICpkamdw cCopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0KKysgICAgOzsKKysgICopCisrICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSj0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0dDSiIKKysg ICAgOzsKKytlc2FjCisrCisrIworKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxh ZyBhY3R1YWxseSB3b3Jrcy4KKysjCisrd2w9JGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKIGV2YWwg bHRfdG1wX3N0YXRpY19mbGFnPVwiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSlwiCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxh ZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBp ZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jrcy4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfR0NKK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0dDSj1ubworKyAgIHNhdmVfTERGTEFH Uz0iJExERkxBR1MiCisrICAgTERGTEFHUz0iJExERkxBR1MgJGx0X3RtcF9zdGF0aWNfZmxhZyIK KysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQK KysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVz dCRhY19leGVleHQ7IHRoZW4KKysgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBp Z25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYg dGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgor KyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgorKyAgICAgICBj YXQgY29uZnRlc3QuZXJyIDE+JjUKKysgICAgICAgJGVjaG8gIlgkX2x0X2xpbmtlcl9ib2lsZXJw bGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3QuZXhwCisrICAgICAgICRTRUQgJy9e JC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgICBpZiBkaWZm IGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgIGx0 X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0dDSj15ZXMKKysgICAgICAgZmkKKysgICAg IGVsc2UKKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfR0NKPXllcwor KyAgICAgZmkKKysgICBmaQorKyAgICRybSAtciBjb25mdGVzdCoKKysgICBMREZMQUdTPSIkc2F2 ZV9MREZMQUdTIgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0dDSiIgPiY1CisrJGFzX2VjaG8gIiRs dF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19HQ0oiID4mNjsgfQorKworK2lmIHRlc3Qg eCIkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfR0NKIiA9IHh5ZXM7IHRoZW4KKysg ICAgOgorK2Vsc2UKKysgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPQorK2ZpCisrCisr CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBw b3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGlm ICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dDSitzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBp bGVyX2Nfb19HQ0o9bm8KKysgICAkcm0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKKysgICBta2Rp ciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0CisrICAgZWNobyAiJGx0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgbHRf Y29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgorKyAgICMgSW5zZXJ0 IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9y CisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykg YXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3Qg Y29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24g KG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICBs dF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdT fVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29u ZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21w aWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjE3ODg0OiAkbHRfY29tcGls ZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCisr ICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1CisrICAgZWNobyAi JGFzX21lOjE3ODg4OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3Rh dHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAorKyAgIHRoZW4KKysgICAg ICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5v dCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysg ICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2Qn ID4gb3V0L2NvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25m dGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKKysgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRl c3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251 bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fR0NKPXllcworKyAgICAg ZmkKKysgICBmaQorKyAgIGNobW9kIHUrdyAuIDI+JjUKKysgICAkcm0gY29uZnRlc3QqCisrICAg IyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZv cgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVz ICYmICRybSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKKysgICAkcm0gb3V0 LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysgICBybWRpciBjb25mdGVzdAorKyAgICRybSBj b25mdGVzdCoKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs dF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19HQ0oiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19j b21waWxlcl9jX29fR0NKIiA+JjY7IH0KKysKKysKKytoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCisr aWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dDSiIgPSBubyAmJiB0ZXN0ICIkbmVl ZF9sb2NrcyIgIT0gbm87IHRoZW4KKysgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2Yg bmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcyIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzLi4uICIgPiY2 OyB9CisrICBoYXJkX2xpbmtzPXllcworKyAgJHJtIGNvbmZ0ZXN0KgorKyAgbG4gY29uZnRlc3Qu YSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KKysgIHRvdWNoIGNvbmZ0 ZXN0LmEKKysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8K KysgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5v CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZF9saW5rcyIgPiY1 CisrJGFzX2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7IH0KKysgIGlmIHRlc3QgIiRoYXJkX2xpbmtz IiA9IG5vOyB0aGVuCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBc YCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5z YWZlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3Vw cG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjI7fQorKyAgICBu ZWVkX2xvY2tzPXdhcm4KKysgIGZpCisrZWxzZQorKyAgbmVlZF9sb2Nrcz1ubworK2ZpCisrCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxl ciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBz aGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrCisrICBydW5wYXRoX3Zhcj0KKysgIGFsbG93 X3VuZGVmaW5lZF9mbGFnX0dDSj0KKysgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGlt ZXNfR0NKPW5vCisrICBhcmNoaXZlX2NtZHNfR0NKPQorKyAgYXJjaGl2ZV9leHBzeW1fY21kc19H Q0o9CisrICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzX0dDSj0KKysgIG9sZF9hcmNoaXZlX2Zy b21fZXhwc3ltc19jbWRzX0dDSj0KKysgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19HQ0o9Cisr ICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9CisrICB0aHJlYWRfc2FmZV9mbGFnX3NwZWNf R0NKPQorKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9CisrICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX2xkX0dDSj0KKysgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfR0NKPQor KyAgaGFyZGNvZGVfZGlyZWN0X0dDSj1ubworKyAgaGFyZGNvZGVfbWludXNfTF9HQ0o9bm8KKysg IGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPXVuc3VwcG9ydGVkCisrICBsaW5rX2FsbF9kZXBs aWJzX0dDSj11bmtub3duCisrICBoYXJkY29kZV9hdXRvbWF0aWNfR0NKPW5vCisrICBtb2R1bGVf Y21kc19HQ0o9CisrICBtb2R1bGVfZXhwc3ltX2NtZHNfR0NKPQorKyAgYWx3YXlzX2V4cG9ydF9z eW1ib2xzX0dDSj1ubworKyAgZXhwb3J0X3N5bWJvbHNfY21kc19HQ0o9JyROTSAkbGlib2JqcyAk Y29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycg fCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgICMgaW5jbHVkZV9leHBzeW1zIHNo b3VsZCBiZSBhIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIHN5bWJvbHMgdG8gYmUgKmFsd2F5cyoK KysgICMgaW5jbHVkZWQgaW4gdGhlIHN5bWJvbCBsaXN0CisrICBpbmNsdWRlX2V4cHN5bXNfR0NK PQorKyAgIyBleGNsdWRlX2V4cHN5bXMgY2FuIGJlIGFuIGV4dGVuZGVkIHJlZ2V4cCBvZiBzeW1i b2xzIHRvIGV4Y2x1ZGUKKysgICMgaXQgd2lsbCBiZSB3cmFwcGVkIGJ5IGAgKCcgYW5kIGApJCcs IHNvIG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdpbm5pbmcgb3IKKysgICMgZW5kIG9mIGxpbmUuICBF eGFtcGxlOiBgYXxiY3wuKmQuKicgd2lsbCBleGNsdWRlIHRoZSBzeW1ib2xzIGBhJyBhbmQgYGJj JywKKysgICMgYXMgd2VsbCBhcyBhbnkgc3ltYm9sIHRoYXQgY29udGFpbnMgYGQnLgorKyAgZXhj bHVkZV9leHBzeW1zX0dDSj0nX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxfX0ZbSURdXy4q JworKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNFVF9UQUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wg QyBuYW1lLCBtb3N0IGEub3V0CisrICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGluIFBJQyBjb2Rl LCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKKysgICMgdGhlIHN5bWJvbCBpcyBl eHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNhbm5vdAorKyAgIyBy ZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJvYmFibHkgZmluZSB0byBuZXZlciBpbmNs dWRlIGl0IGluCisrICAjIHByZWxvYWRlZCBzeW1ib2wgdGFibGVzLgorKyAgIyBFeGNsdWRlIHNo YXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFsaXphdGlvbiBzeW1ib2xzLgorKyAgZXh0 cmFjdF9leHBzeW1zX2NtZHM9CisrICAjIEp1c3QgYmVpbmcgcGFyYW5vaWQgYWJvdXQgZW5zdXJp bmcgdGhhdCBjY19iYXNlbmFtZSBpcyBzZXQuCisrICBmb3IgY2NfdGVtcCBpbiAkY29tcGlsZXIi IjsgZG8KKysgIGNhc2UgJGNjX3RlbXAgaW4KKysgICAgY29tcGlsZSB8ICpbXFwvXWNvbXBpbGUg fCBjY2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7OworKyAgICBkaXN0Y2MgfCAqW1xcL11kaXN0Y2Mg fCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7OworKyAgICBcLSopIDs7CisrICAgICopIGJyZWFr OzsKKysgIGVzYWMKKytkb25lCisrY2NfYmFzZW5hbWU9YCRlY2hvICJYJGNjX3RlbXAiIHwgJFhz ZWQgLWUgJ3MlLiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCisrCisrICBjYXNlICRob3N0 X29zIGluCisrICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisrICAgICMgRklYTUU6IHRoZSBN U1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKKysgICAgIyBX aGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcK KysgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKysgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVz OyB0aGVuCisrICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgZmkKKysgICAgOzsKKysgIGludGVy aXgqKQorKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkg KD0gTVNWQysrKQorKyAgICB3aXRoX2dudV9sZD15ZXMKKysgICAgOzsKKysgIG9wZW5ic2QqKQor KyAgICB3aXRoX2dudV9sZD1ubworKyAgICA7OworKyAgZXNhYworKworKyAgbGRfc2hsaWJzX0dD Sj15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgIyBJZiBh cmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKKysgICAg d2xhcmM9JyR7d2x9JworKworKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0 aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQorKyAgICAjIGFyZSByZXNldCBsYXRlciBp ZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0KKysgICAg IyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgorKyAgICBy dW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dD Sj0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjX0dDSj0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKyAgICAjIGFuY2llbnQgR05VIGxkIGRp ZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCisrICAgIGlmICRMRCAtLWhlbHAg Mj4mMSB8IGdyZXAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCisrCXdob2xl X2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVu Y2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgICBlbHNlCisrICAJd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWNfR0NKPQorKyAgICBmaQorKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNp b25pbmc9bm8KKysgICAgY2FzZSBgJExEIC12IDI+L2Rldi9udWxsYCBpbgorKyAgICAgICpcIFsw MV0uKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMTAuKikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8IDIu MTEKKysgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXll cyA7OyAjIFJINy4zIC4uLgorKyAgICAgICpcIDIuMTEuOTIuMC4xMlwgKikgc3VwcG9ydHNfYW5v bl92ZXJzaW9uaW5nPXllcyA7OyAjIE1hbmRyYWtlIDguMiAuLi4KKysgICAgICAqXCAyLjExLiop IDs7ICMgb3RoZXIgMi4xMSB2ZXJzaW9ucworKyAgICAgICopIHN1cHBvcnRzX2Fub25fdmVyc2lv bmluZz15ZXMgOzsKKysgICAgZXNhYworKworKyAgICAjIFNlZSBpZiBHTlUgbGQgc3VwcG9ydHMg c2hhcmVkIGxpYnJhcmllcy4KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXhbMy05XSop CisrICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJyb2tlbgorKyAg ICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorKwlsZF9zaGxpYnNfR0NKPW5v CisrCWNhdCA8PEVPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBs ZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRlZAorKyoqKiB0byBiZSB1bmFibGUg dG8gcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gQUlYLgorKyoqKiBUaGVyZWZv cmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIElmIHlv dQorKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmllcywgeW91IG1heSB3YW50IHRv IG1vZGlmeSB5b3VyIFBBVEgKKysqKiogc28gdGhhdCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5k LCBhbmQgdGhlbiByZXN0YXJ0LgorKworK0VPRgorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysg ICAgYW1pZ2FvcyopCisrICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0nJHJtICRvdXRwdXRfb2JqZGly L2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0 X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4g JG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBWRVJTSU9OICRt YWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmluZSBS RVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFS ICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIg JiYgYTJpeGxpYnJhcnkgLTMyKScKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dD Sj0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX21pbnVzX0xfR0NKPXllcworKworKyAgICAg ICMgU2FtdWVsIEEuIEZhbHZvIElJIDxrYzV0amFAZG9scGhpbi5vcGVucHJvamVjdHMubmV0PiBy ZXBvcnRzCisrICAgICAgIyB0aGF0IHRoZSBzZW1hbnRpY3Mgb2YgZHluYW1pYyBsaWJyYXJpZXMg b24gQW1pZ2FPUywgYXQgbGVhc3QgdXAKKysgICAgICAjIHRvIHZlcnNpb24gNCwgaXMgdG8gc2hh cmUgZGF0YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFtcyBsaW5rZWQKKysgICAgICAjIHdpdGggdGhl IHNhbWUgZHluYW1pYyBsaWJyYXJ5LiAgU2luY2UgdGhpcyBkb2Vzbid0IG1hdGNoIHRoZQorKyAg ICAgICMgYmVoYXZpb3Igb2Ygc2hhcmVkIGxpYnJhcmllcyBvbiBvdGhlciBwbGF0Zm9ybXMsIHdl IGNhbid0IHVzZQorKyAgICAgICMgdGhlbS4KKysgICAgICBsZF9zaGxpYnNfR0NKPW5vCisrICAg ICAgOzsKKysKKysgICAgYmVvcyopCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAn OiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCWFsbG93X3Vu ZGVmaW5lZF9mbGFnX0dDSj11bnN1cHBvcnRlZAorKwkjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIz QGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCisrCSMgc3VwcG9ydCAtLXVuZGVm aW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJYXJjaGl2 ZV9jbWRzX0dDSj0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKyAgICAgIGVsc2UKKysJbGRfc2hs aWJzX0dDSj1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgY3lnd2luKiB8IG1pbmd3 KiB8IHB3MzIqKQorKyAgICAgICMgX0xUX0FDX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCBHQ0opIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAorKyAgICAgICMgYXMgdGhlcmUgaXMg bm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19HQ0o9Jy1MJGxpYmRpcicKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9dW5zdXBw b3J0ZWQKKysgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfR0NKPW5vCisrICAgICAgZW5hYmxl X3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19HQ0o9eWVzCisrICAgICAgZXhwb3J0X3N5bWJv bHNfY21kc19HQ0o9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9w aXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEv J1wnJyAtZSAnXCcnL15bQUlUV11bIF0vcy8uKlsgXS8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4 cG9ydF9zeW1ib2xzJworKworKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ2F1dG8t aW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0nJEND IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQt aW1wbGliIC1YbGlua2VyICRsaWInCisrCSMgSWYgdGhlIGV4cG9ydC1zeW1ib2xzIGZpbGUgYWxy ZWFkeSBpcyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUKKysJIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFz IGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KKysJYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9J2lm IHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCisrCSAg Y3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKwllbHNlCisr CSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCSAgY2F0ICRl eHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJZml+CisrCSRD QyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0 by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKyAgICAg IGVsc2UKKysJbGRfc2hsaWJzX0dDSj1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAg aW50ZXJpeFszLTldKikKKysgICAgICBoYXJkY29kZV9kaXJlY3RfR0NKPW5vCisrICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0dDSj0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFn X3NwZWNfR0NKPScke3dsfS1FJworKyAgICAgICMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNh bm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KKysgICAgICAjIEluc3Rl YWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAw MDAwIGJ5CisrICAgICAgIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3Qs IHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQorKyAgICAgICMgY29uc3VtaW5nIGFuZCBmcmFn bWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKKysgICAg ICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2 RkZDMDAwMCBhdCBsaW5rCisrICAgICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAw MCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCisrICAgICAgYXJjaGl2ZV9jbWRzX0dD Sj0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUg NDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysgICAgICBhcmNoaXZl X2V4cHN5bV9jbWRzX0dDSj0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9v YmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xz LWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4 cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxp YicKKysgICAgICA7OworKworKyAgICBnbnUqIHwgbGludXgqIHwgaypic2QqLWdudSkKKysgICAg ICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicg PiAvZGV2L251bGw7IHRoZW4KKysJdG1wX2FkZGZsYWc9CisrCWNhc2UgJGNjX2Jhc2VuYW1lLCRo b3N0X2NwdSBpbgorKwlwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBpbGVyCisrCSAg d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfR0NKPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29u diBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZl bmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29u dmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgdG1wX2FkZGZsYWc9JyAk cGljX2ZsYWcnCisrCSAgOzsKKysJcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQkjIFBvcnRsYW5k IEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycworKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj X0dDSj0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsg ZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVu Y2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13 aG9sZS1hcmNoaXZlJworKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWluJyA7Owor KwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJCSMgSW50ZWwgQyBjb21waWxlciBvbiBpYTY0Cisr CSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OworKwllZmMqLGlhNjQqIHwgaWZvcnQqLGlh NjQqKQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRmbGFnPScg LWlfZHluYW1pYyAtbm9mb3JfbWFpbicgOzsKKysJaWZjKiB8IGlmb3J0KikJCQkjIEludGVsIEZv cnRyYW4gY29tcGlsZXIKKysJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7OworKwllc2Fj CisrCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkqU3VuXCBDKikJCQkjIFN1biBD IDUuOQorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0nJHt3bH0tLXdob2xlLWFyY2hp dmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVz dCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29u dlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFy Y2hpdmUnCisrCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OworKwkqU3VuXCBGKikJCQkjIFN1biBG b3J0cmFuIDguMworKwkgIHRtcF9zaGFyZWRmbGFnPSctRycgOzsKKysJKikKKysJICB0bXBfc2hh cmVkZmxhZz0nLXNoYXJlZCcgOzsKKysJZXNhYworKwlhcmNoaXZlX2NtZHNfR0NKPSckQ0MgJyIk dG1wX3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKworKwlpZiB0ZXN0ICRz dXBwb3J0c19hbm9uX3ZlcnNpb25pbmcgPSB5ZXM7IHRoZW4KKysJICBhcmNoaXZlX2V4cHN5bV9j bWRzX0dDSj0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+ CisrICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0 cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrICAkZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0 cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1w X2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGli bmFtZS52ZXIgLW8gJGxpYicKKysJZmkKKysgICAgICBlbHNlCisrCWxkX3NobGlic19HQ0o9bm8K KysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIG5ldGJzZCopCisrICAgICAgaWYgZWNobyBf X0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKwlhcmNo aXZlX2NtZHNfR0NKPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncyAtbyAkbGliJworKwl3bGFyYz0KKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kc19HQ0o9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nJENDIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRs aWInCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikKKysgICAgICBpZiAk TEQgLXYgMj4mMSB8IGdyZXAgJ0JGRCAyXC44JyA+IC9kZXYvbnVsbDsgdGhlbgorKwlsZF9zaGxp YnNfR0NKPW5vCisrCWNhdCA8PEVPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IFRoZSByZWxlYXNl cyAyLjguKiBvZiB0aGUgR05VIGxpbmtlciBjYW5ub3QgcmVsaWFibHkKKysqKiogY3JlYXRlIHNo YXJlZCBsaWJyYXJpZXMgb24gU29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisr KioqIGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0 byB1cGdyYWRlIEdOVQorKyoqKiBiaW51dGlscyB0byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAg QW5vdGhlciBvcHRpb24gaXMgdG8gbW9kaWZ5CisrKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBj b25maWd1cmF0aW9uIHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKKysqKiogdXNlZCwgYW5k IHRoZW4gcmVzdGFydC4KKysKKytFT0YKKysgICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8IGdy ZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwlhcmNo aXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJYXJjaGl2ZV9leHBzeW1fY21k c19HQ0o9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRf c3ltYm9scyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJbGRfc2hsaWJzX0dDSj1ubworKyAgICAg IGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVu aXh3YXJlKiB8IE9wZW5VTklYKikKKysgICAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KKysgICAg ICAgICpcIFswMV0uKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMVswLTVdLiopCisrCWxkX3NobGli c19HQ0o9bm8KKysJY2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdhcm5pbmc6IFJlbGVhc2Vz IG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QKKysqKiogcmVs aWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBUaGVyZWZvcmUs IGxpYnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdl IHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45 MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKKysqKiogeW91ciBQ QVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBp cworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK19MVF9FT0YKKysJOzsKKysJKikK KysJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVs ZicgPiAvZGV2L251bGw7IHRoZW4KKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NK PSdgdGVzdCAteiAiJFNDT0FCU1BBVEgiICYmIGVjaG8gJHt3bH0tcnBhdGgsJGxpYmRpcmAnCisr CSAgICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9 L30kc29uYW1lIC1vICRsaWInCisrCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nJENDIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSxcJHtT Q09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNvbmFtZSwtcmV0YWluLXN5bWJvbHMtZmls ZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJICBlbHNlCisrCSAgICBsZF9zaGxpYnNfR0NK PW5vCisrCSAgZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0 KikKKysgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFy ZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIHds YXJjPQorKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCisrICAgICAgaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGlmICRMRCAt LWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVs bDsgdGhlbgorKwlhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJYXJj aGl2ZV9leHBzeW1fY21kc19HQ0o9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1m aWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAgIGVsc2UKKysJbGRfc2hsaWJz X0dDSj1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBpZiB0ZXN0 ICIkbGRfc2hsaWJzX0dDSiIgPSBubzsgdGhlbgorKyAgICAgIHJ1bnBhdGhfdmFyPQorKyAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPQorKyAgICAgIGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlY19HQ0o9CisrICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfR0NKPQorKyAgICBm aQorKyAgZWxzZQorKyAgICAjIFBPUlRNRSBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBz eXN0ZW0ncyBsaW5rZXIgKG5vdCBHTlUgbGQpCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAg YWl4MyopCisrICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPXVuc3VwcG9ydGVkCisrICAg ICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0dDSj15ZXMKKysgICAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0dDSj0nJExEIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1ib2xzIC1UNTEyIC1INTEyIC1iTTpTUkV+JEFS ICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisrICAgICAgIyBOb3RlOiB0 aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVjdG9yaWVzIGluIExJQlBBVEggaWYgdGhlcmUK KysgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkgLUwuCisrICAgICAgaGFy ZGNvZGVfbWludXNfTF9HQ0o9eWVzCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVz dCAteiAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIjsgdGhlbgorKwkjIE5laXRoZXIgZGlyZWN0 IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKKysJIyBi cm9rZW4gY29sbGVjdDIuCisrCWhhcmRjb2RlX2RpcmVjdF9HQ0o9dW5zdXBwb3J0ZWQKKysgICAg ICBmaQorKyAgICAgIDs7CisrCisrICAgIGFpeFs0LTldKikKKysgICAgICBpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGlt ZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0CisrCSMgaGF2ZSB0byBkbyBhbnl0aGlu ZyBzcGVjaWFsLgorKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrCWV4cF9zeW1fZmxhZz0n LUJleHBvcnQnCisrCW5vX2VudHJ5X2ZsYWc9IiIKKysgICAgICBlbHNlCisrCSMgSWYgd2UncmUg dXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgorKwkjIC1D IG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGgg R05VIG5tCisrCWlmICROTSAtViAyPiYxIHwgZ3JlcCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgor KwkgIGV4cG9ydF9zeW1ib2xzX2NtZHNfR0NKPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVu Y2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQyID09ICJUIikgfHwgKFwkMiA9PSAiRCIpIHx8IChcJDIg PT0gIkIiKSkgJiYgKHN1YnN0cihcJDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkMyB9IH0nXCcn IHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysJZWxzZQorKwkgIGV4cG9ydF9zeW1ib2xz X2NtZHNfR0NKPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlm ICgoKFwkMiA9PSAiVCIpIHx8IChcJDIgPT0gIkQiKSB8fCAoXCQyID09ICJCIikpICYmIChzdWJz dHIoXCQzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhw b3J0X3N5bWJvbHMnCisrCWZpCisrCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysKKysJIyBU ZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisr CSMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3 ZQorKwkjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgorKwljYXNlICRob3N0X29zIGluIGFp eDQuWzIzXXxhaXg0LlsyM10uKnxhaXhbNS05XSopCisrCSAgZm9yIGxkX2ZsYWcgaW4gJExERkxB R1M7IGRvCisrICAJICBpZiAodGVzdCAkbGRfZmxhZyA9ICItYnJ0bCIgfHwgdGVzdCAkbGRfZmxh ZyA9ICItV2wsLWJydGwiKTsgdGhlbgorKyAgCSAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXll cworKyAgCSAgICBicmVhaworKyAgCSAgZmkKKysJICBkb25lCisrCSAgOzsKKysJZXNhYworKwor KwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JworKwlub19lbnRyeV9mbGFnPSctYm5vZW50cnknCisr ICAgICAgZmkKKysKKysgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9i amVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCisrICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0 aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5CisrICAgICAg IyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1h bC10b2MgdG8KKysgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBj YXNlcyB3aGVyZSB0aGF0IGlzIG5vdAorKyAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxl bSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgorKworKyAgICAgIGFyY2hpdmVfY21kc19H Q0o9JycKKysgICAgICBoYXJkY29kZV9kaXJlY3RfR0NKPXllcworKyAgICAgIGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3JfR0NKPSc6JworKyAgICAgIGxpbmtfYWxsX2RlcGxpYnNfR0NKPXllcwor KworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWNhc2UgJGhvc3Rfb3MgaW4g YWl4NC5bMDEyXXxhaXg0LlswMTJdLiopCisrCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24g QUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjaworKwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVj dDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKKysJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmlu dC1wcm9nLW5hbWU9Y29sbGVjdDJgCisrCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYg XAorKyAgCSAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgZ3JlcCByZXNvbHZlX2xpYl9uYW1l ID4vZGV2L251bGwKKysJICB0aGVuCisrICAJICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIK KysgIAkgIDoKKysJICBlbHNlCisrICAJICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrICAJICBo YXJkY29kZV9kaXJlY3RfR0NKPXVuc3VwcG9ydGVkCisrICAJICAjIEl0IGZhaWxzIHRvIGZpbmQg dW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFsbGVkCisrICAJICAjIHBhdGgg aXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAor KyAgCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCisrICAJICBoYXJkY29kZV9t aW51c19MX0dDSj15ZXMKKysgIAkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctTCRs aWJkaXInCisrICAJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dDSj0KKysJICBmaQorKwkg IDs7CisrCWVzYWMKKysJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCisrCWlmIHRlc3QgIiRhaXhfdXNl X3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2Zs YWcgIicke3dsfS1HJworKwlmaQorKyAgICAgIGVsc2UKKysJIyBub3QgdXNpbmcgZ2NjCisrCWlm IHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAJIyBWaXN1YWxBZ2UgQysrLCBWZXJz aW9uIDUuNSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKKysgIAkjIGNob2tl cyBvbiAtV2wsLUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJlZF9m bGFnPSctRycKKysJZWxzZQorKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9 IHllczsgdGhlbgorKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCisrCSAgZWxzZQorKwkgICAg c2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKKysJICBmaQorKwlmaQorKyAgICAgIGZpCisrCisr ICAgICAgIyBJdCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJl Z2lubmluZyB3aXRoCisrICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRv IGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvIGV4cG9ydC4KKysgICAgICBhbHdheXNfZXhw b3J0X3N5bWJvbHNfR0NKPXllcworKyAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5r aW5nIiA9IHllczsgdGhlbgorKwkjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBy dW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKKysJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhv dXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwlhbGxvd191bmRl ZmluZWRfZmxhZ19HQ0o9Jy1iZXJvaycKKysgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQg bGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5IGV4ZWN1dGFibGUuCisr ICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50 CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0i JGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2Fj CisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgor KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29u ZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy MSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5l cnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9y X2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5 ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4K KysKKytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14k LyB7CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysg ICAgfScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251 bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0 LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFp eF9saWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNf ZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisr ZmkKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAt cmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhl ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFp eF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysgICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19HQ0o9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisr CWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSJcJENDIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2Zs YWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBlY2hv ICIke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhw X3N5bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAgICAgICBlbHNlCisr CWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19HQ0o9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJworKwkgIGFsbG93X3Vu ZGVmaW5lZF9mbGFnX0dDSj0iLXogbm9kZWZzIgorKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfR0NK PSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMg JGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7 YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1i b2xzIgorKwllbHNlCisrCSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhl IHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkgZXhlY3V0YWJsZS4KKysJIGNhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysg IDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgk YWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0 dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBy bSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQg JiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3gg Y29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysKKytsdF9haXhfbGlicGF0aF9z ZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAg cy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1g ZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRf YWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlk bid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAg YWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwg JFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrZmkKKytlbHNlCisrICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9j b25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQK KytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjov bGliIjsgZmkKKysKKysJIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPScke3dsfS1ibGli cGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgorKwkgICMgV2FybmluZyAtIHdpdGhvdXQgdXNp bmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCisrCSAgIyAtYmVyb2sgd2lsbCBs aW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwkg IG5vX3VuZGVmaW5lZF9mbGFnX0dDSj0nICR7d2x9LWJlcm5vdG9rJworKwkgIGFsbG93X3VuZGVm aW5lZF9mbGFnX0dDSj0nICR7d2x9LWJlcm9rJworKwkgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4g YmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworKwkgIHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjX0dDSj0nJGNvbnZlbmllbmNlJworKwkgIGFyY2hpdmVfY21kc19uZWVk X2xjX0dDSj15ZXMKKysJICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFs bHkgYnVpbGRzIGl0cyBzaGFyZWQgbGlicmFyaWVzLgorKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHNf R0NKPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9i anMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBv cnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9v YmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisrCWZpCisr ICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBhcmNoaXZlX2Nt ZHNfR0NKPSckcm0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kZWNobyAiI2RlZmlu ZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JGVjaG8g IiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRh fiRlY2hvICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGli cmFyeS5kYXRhfiRlY2hvICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9v YmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJ QiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctTCRsaWJkaXInCisrICAgICAgaGFyZGNvZGVf bWludXNfTF9HQ0o9eWVzCisrICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBkaWZmZXJlbnQgc2Vt YW50aWNzIG9uIHRoZSBHTlUgbGQgc2VjdGlvbgorKyAgICAgIGxkX3NobGlic19HQ0o9bm8KKysg ICAgICA7OworKworKyAgICBic2RpWzQ1XSopCisrICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjX0dDSj0tcmR5bmFtaWMKKysgICAgICA7OworKworKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwg cHczMiopCisrICAgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUg dGhhdCB3ZSBhcmUgdXNpbmcKKysgICAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgorKyAgICAg ICMgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywgYXMg dGhlcmUgaXMKKysgICAgICAjIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorKyAgICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPScgJworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFn X0dDSj11bnN1cHBvcnRlZAorKyAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAubGliIGZpbGVz LCBub3QgLmEgZmlsZXMuCisrICAgICAgbGliZXh0PWxpYgorKyAgICAgICMgVGVsbCBsdG1haW4g dG8gbWFrZSAuZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVzLgorKyAgICAgIHNocmV4dF9jbWRzPSIu ZGxsIgorKyAgICAgICMgRklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFj ay4KKysgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLW8gJGxpYiAkbGlib2JqcyAkY29tcGls ZXJfZmxhZ3MgYGVjaG8gIiRkZXBsaWJzIiB8ICRTRUQgLWUgJ1wnJ3MvIC1sYyQvLydcJydgIC1s aW5rIC1kbGx+bGlua25hbWVzPScKKysgICAgICAjIFRoZSBsaW5rZXIgd2lsbCBhdXRvbWF0aWNh bGx5IGJ1aWxkIGEgLmxpYiBmaWxlIGlmIHdlIGJ1aWxkIGEgRExMLgorKyAgICAgIG9sZF9hcmNo aXZlX0Zyb21fbmV3X2NtZHNfR0NKPSd0cnVlJworKyAgICAgICMgRklYTUU6IFNob3VsZCBsZXQg dGhlIHVzZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCisrICAgICAgb2xkX2FyY2hpdmVfY21k c19HQ0o9J2xpYiAtT1VUOiRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicycKKysgICAgICBmaXhf c3JjZmlsZV9wYXRoX0dDSj0nYGN5Z3BhdGggLXcgIiRzcmNmaWxlImAnCisrICAgICAgZW5hYmxl X3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19HQ0o9eWVzCisrICAgICAgOzsKKysKKysgICAg ZGFyd2luKiB8IHJoYXBzb2R5KikKKysgICAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgICBy aGFwc29keSogfCBkYXJ3aW4xLlswMTJdKQorKyAgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFn X0dDSj0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnCisrICAgICAgICAgOzsKKysgICAg ICAgKikgIyBEYXJ3aW4gMS4zIG9uCisrICAgICAgICAgaWYgdGVzdCAteiAke01BQ09TWF9ERVBM T1lNRU5UX1RBUkdFVH0gOyB0aGVuCisrICAgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19H Q0o9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJwor KyAgICAgICAgIGVsc2UKKysgICAgICAgICAgIGNhc2UgJHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJH RVR9IGluCisrICAgICAgICAgICAgIDEwLlswMTJdKQorKyAgICAgICAgICAgICAgIGFsbG93X3Vu ZGVmaW5lZF9mbGFnX0dDSj0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7 d2x9c3VwcHJlc3MnCisrICAgICAgICAgICAgICAgOzsKKysgICAgICAgICAgICAgMTAuKikKKysg ICAgICAgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9JyR7d2x9LXVuZGVmaW5lZCAk e3dsfWR5bmFtaWNfbG9va3VwJworKyAgICAgICAgICAgICAgIDs7CisrICAgICAgICAgICBlc2Fj CisrICAgICAgICAgZmkKKysgICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICBhcmNoaXZl X2NtZHNfbmVlZF9sY19HQ0o9bm8KKysgICAgICBoYXJkY29kZV9kaXJlY3RfR0NKPW5vCisrICAg ICAgaGFyZGNvZGVfYXV0b21hdGljX0dDSj15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhf dmFyX0dDSj11bnN1cHBvcnRlZAorKyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0n JworKyAgICAgIGxpbmtfYWxsX2RlcGxpYnNfR0NKPXllcworKyAgICBpZiB0ZXN0ICIkR0NDIiA9 IHllcyA7IHRoZW4KKysgICAgCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworKyAgICAg ICAgYXJjaGl2ZV9jbWRzX0dDSj0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9m bGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFs bF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7 X2x0X2RzeW11dGlsfSIKKysgICAgICAgIG1vZHVsZV9jbWRzX0dDSj0iXCRDQyBcJGFsbG93X3Vu ZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBp bGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19H Q0o9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7 bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5l ZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5z dGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJHtfbHRfZGFyX3NpbmdsZV9t b2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAgICAgIG1vZHVs ZV9leHBzeW1fY21kc19HQ0o9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBc JG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93X3Vu ZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBp bGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKKysgICAgZWxz ZQorKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICB4bGMqKQorKyAgICAgICAg IG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworKyAgICAgICAgIGFyY2hpdmVfY21kc19H Q0o9JyRDQyAtcW1rc2hyb2JqICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1pbnN0YWxsX25hbWUgJHt3bH1gZWNobyAk cnBhdGgvJHNvbmFtZWAgJHhsY3ZlcnN0cmluZycKKysgICAgICAgICBtb2R1bGVfY21kc19HQ0o9 JyRDQyAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBs aWJzJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgICAgICAjIERvbid0IGZpeCB0aGlzIGJ5IHVzaW5n IHRoZSBsZCAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGZsYWcsIGl0IGRvZXNuJ3QgZXhpc3QgaW4g b2xkZXIgZGFyd2luIGxkcworKyAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSdzZWQg LWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhw b3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRD QyAtcW1rc2hyb2JqICRhbGxvd191bmRlZmluZWRfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1pbnN0YWxsX25hbWUgJHt3bH0kcnBhdGgvJHNvbmFt ZSAkeGxjdmVyc3RyaW5nfm5tZWRpdCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJv bHMuZXhwc3ltICR7bGlifScKKysgICAgICAgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0dDSj0nc2Vk IC1lICJzLCMuKiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCguLipcKSxfJiwiIDwgJGV4 cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX4k Q0MgJGFsbG93X3VuZGVmaW5lZF9mbGFnICAtbyAkbGliIC1idW5kbGUgJGxpYm9ianMgJGRlcGxp YnMkY29tcGlsZXJfZmxhZ3N+bm1lZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3lt Ym9scy5leHBzeW0gJHtsaWJ9JworKyAgICAgICAgICA7OworKyAgICAgICAqKQorKyAgICAgICAg IGxkX3NobGlic19HQ0o9bm8KKysgICAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgIGZpCisr ICAgICAgOzsKKysKKysgICAgZGd1eCopCisrICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1H IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctTCRsaWJkaXInCisrICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICA7OworKworKyAgICBmcmVlYnNkMSop CisrICAgICAgbGRfc2hsaWJzX0dDSj1ubworKyAgICAgIDs7CisrCisrICAgICMgRnJlZUJTRCAy LjIuWzAxMl0gYWxsb3dzIHVzIHRvIGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1 Y3RvcgorKyAgICAjIHN1cHBvcnQuICBGdXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNh bGx5LCBidXQgYW4gZXhwbGljaXQgYysrcnQwLm8KKysgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0 aGluZywgYW5kIGhlbHBzIHNpZ25pZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCisr ICAgICMgZXh0cmEgc3BhY2UpLgorKyAgICBmcmVlYnNkMi4yKikKKysgICAgICBhcmNoaXZlX2Nt ZHNfR0NKPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzIC91c3IvbGliL2MrK3J0MC5vJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfR0NKPSctUiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMKKysgICAg ICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1ubworKyAgICAgIDs7CisrCisrICAgICMgVW5m b3J0dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMg ZmVhdHVyZS4KKysgICAgZnJlZWJzZDIqKQorKyAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRMRCAt QnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAg ICAgaGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMKKysgICAgICBoYXJkY29kZV9taW51c19MX0dDSj15 ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1ubworKyAgICAgIDs7CisrCisr ICAgICMgRnJlZUJTRCAzIGFuZCBncmVhdGVyIHVzZXMgZ2NjIC1zaGFyZWQgdG8gZG8gc2hhcmVk IGxpYnJhcmllcy4KKysgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAgICAgIGFyY2hpdmVf Y21kc19HQ0o9JyRDQyAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctUiRsaWJkaXIn CisrICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBh dGhfdmFyX0dDSj1ubworKyAgICAgIDs7CisrCisrICAgIGhwdXg5KikKKysgICAgICBpZiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2NtZHNfR0NKPSckcm0gJG91dHB1dF9vYmpk aXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGly IC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAkbGliJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzX0dDSj0nJHJtICRv dXRwdXRfb2JqZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0 cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWInCisrICAgICAgZmkKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3 bH0rYiAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9 OgorKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCisrCisrICAgICAgIyBoYXJkY29kZV9t aW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysgICAgICAjIGJ1dCBhcyB0 aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysgICAgICBoYXJkY29kZV9taW51 c19MX0dDSj15ZXMKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NKPScke3dsfS1F JworKyAgICAgIDs7CisrCisrICAgIGhwdXgxMCopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5 ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwlhcmNoaXZlX2NtZHNfR0NKPSckQ0Mg LXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxf bGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAg IGVsc2UKKysJYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1iICtoICRzb25hbWUgK2IgJGluc3RhbGxf bGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBm aQorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwloYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrCWhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3JfR0NKPToKKysKKysJaGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMKKysJZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nJHt3bH0tRScKKysKKysJIyBoYXJkY29kZV9taW51 c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJIyBidXQgYXMgdGhlIGRlZmF1 bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrCWhhcmRjb2RlX21pbnVzX0xfR0NKPXllcwor KyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgaHB1eDExKikKKysgICAgICBpZiB0ZXN0ICIk R0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCWNhc2UgJGhvc3RfY3B1 IGluCisrCWhwcGEqNjQqKQorKwkgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkICR7d2x9 K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz JworKwkgIDs7CisrCWlhNjQqKQorKwkgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkICR7 d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgYXJjaGl2ZV9jbWRz X0dDSj0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3ds fSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysJICA7OworKwllc2FjCisrICAgICAgZWxzZQorKwljYXNlICRob3N0X2NwdSBpbgorKwlo cHBhKjY0KikKKysJICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJ aWE2NCopCisrCSAgYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1l ICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1iICR7d2x9 K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZp CisrICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCWhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfR0NKPScke3dsfStiICR7d2x9JGxpYmRpcicKKysJaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcl9HQ0o9OgorKworKwljYXNlICRob3N0X2NwdSBpbgorKwlocHBhKjY0Knxp YTY0KikKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0dDSj0nK2IgJGxpYmRpcicK KysJICBoYXJkY29kZV9kaXJlY3RfR0NKPW5vCisrCSAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9H Q0o9bm8KKysJICA7OworKwkqKQorKwkgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCisrCSAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nJHt3bH0tRScKKysKKysJICAjIGhhcmRjb2RlX21p bnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAorKwkgICMgYnV0IGFzIHRoZSBk ZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorKwkgIGhhcmRjb2RlX21pbnVzX0xfR0NK PXllcworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGlyaXg1 KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KKysJYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRh dGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwor KyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19sZF9HQ0o9Jy1ycGF0aCAkbGliZGlyJworKyAgICAgIGZpCisrICAgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgICBo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dDSj06CisrICAgICAgbGlua19hbGxfZGVwbGlic19H Q0o9eWVzCisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxG X18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVf Y21kc19HQ0o9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnICAjIGEub3V0CisrICAgICAgZWxzZQorKwlhcmNoaXZlX2NtZHNfR0NKPSckTEQg LXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAgICAgIyBF TEYKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctUiRs aWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMKKysgICAgICBoYXJkY29kZV9z aGxpYnBhdGhfdmFyX0dDSj1ubworKyAgICAgIDs7CisrCisrICAgIG5ld3NvczYpCisrICAgICAg YXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzCisrICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRp cicKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0dDSj06CisrICAgICAgaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICA7OworKworKyAgICBvcGVuYnNkKikKKysg ICAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKwloYXJkY29kZV9kaXJl Y3RfR0NKPXllcworKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1ubworKwlpZiB0ZXN0IC16 ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9z dF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysJICBhcmNoaXZl X2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRDQyAtc2hh cmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9scycKKysJICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0dDSj0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICBleHBvcnRfZHlu YW1pY19mbGFnX3NwZWNfR0NKPScke3dsfS1FJworKwllbHNlCisrCSAgY2FzZSAkaG9zdF9vcyBp bgorKwkgICBvcGVuYnNkWzAxXS4qIHwgb3BlbmJzZDIuWzAtN10gfCBvcGVuYnNkMi5bMC03XS4q KQorKwkgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19HQ0o9Jy1SJGxpYmRpcicKKysJICAgICA7OworKwkgICAqKQorKwkgICAgIGFyY2hpdmVf Y21kc19HQ0o9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKKysJICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0n JHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAgICA7OworKwkgIGVzYWMKKysgICAgICAgIGZpCisr ICAgICAgZWxzZQorKwlsZF9zaGxpYnNfR0NKPW5vCisrICAgICAgZmkKKysgICAgICA7OworKwor KyAgICBvczIqKQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctTCRsaWJk aXInCisrICAgICAgaGFyZGNvZGVfbWludXNfTF9HQ0o9eWVzCisrICAgICAgYWxsb3dfdW5kZWZp bmVkX2ZsYWdfR0NKPXVuc3VwcG9ydGVkCisrICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0nJGVjaG8g IkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmRlZn4kZWNobyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8k bGlibmFtZS5kZWZ+JGVjaG8gREFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVj aG8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JGVj aG8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpz ID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZGVmJworKyAgICAgIG9sZF9hcmNoaXZlX0Zyb21fbmV3X2NtZHNfR0NKPSdlbXhpbXAgLW8g JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCisr ICAgICAgOzsKKysKKysgICAgb3NmMyopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQg JHt3bH1cKicKKysJYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7 d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lv biAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrICAgICAgZWxzZQorKwlhbGxvd191bmRlZmlu ZWRfZmxhZ19HQ0o9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCWFyY2hpdmVfY21kc19HQ0o9 JyRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8g LXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGly fS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfR0NKPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9OgorKyAgICAgIDs7CisrCisrICAgIG9zZjQqIHwgb3Nm NSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxhZworKyAgICAgIGlm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSj0nICR7 d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCWFyY2hpdmVfY21kc19HQ0o9JyRDQyAt c2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZl cnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9 LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRs aWInCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPScke3dsfS1ycGF0aCAke3dsfSRs aWJkaXInCisrICAgICAgZWxzZQorKwlhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9JyAtZXhwZWN0 X3VucmVzb2x2ZWQgXConCisrCWFyY2hpdmVfY21kc19HQ0o9JyRMRCAtc2hhcmVkJHthbGxvd191 bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbXN5bSAtc29u YW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2 ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYicKKysJYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9J2ZvciBpIGluIGBjYXQgJGV4cG9y dF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+ PiAkbGliLmV4cDsgZG9uZTsgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KKysJJExEIC1zaGFy ZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaW5wdXQgJGxpYi5leHAgJGxpbmtlcl9mbGFncyAk bGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYm IGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRf b2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kcm0gJGxpYi5leHAnCisrCisrCSMgQm90aCBj IGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKKysJaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19HQ0o9Jy1ycGF0aCAkbGliZGlyJworKyAgICAgIGZpCisrICAgICAgaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9HQ0o9OgorKyAgICAgIDs7CisrCisrICAgIHNvbGFyaXMq KQorKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0dDSj0nIC16IHRleHQnCisrICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJd2xhcmM9JyR7d2x9JworKwlhcmNoaXZlX2NtZHNfR0NK PSckQ0MgLXNoYXJlZCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRlY2hvICJ7 IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCgu KlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgor KwkgICRDQyAtc2hhcmVkICR7d2x9LU0gJHt3bH0kbGliLmV4cCAke3dsfS1oICR7d2x9JHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kcm0gJGxpYi5leHAn CisrICAgICAgZWxzZQorKwl3bGFyYz0nJworKwlhcmNoaXZlX2NtZHNfR0NKPSckTEQgLUcke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRlY2hvICJ7IGdsb2Jh bDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wx Oy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorKyAgCSRM RCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRybSAkbGliLmV4cCcKKysgICAgICBm aQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPSctUiRsaWJkaXInCisrICAg ICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICBjYXNlICRob3N0X29zIGlu CisrICAgICAgc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7OworKyAgICAgICop CisrCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2Vy IG9wdGlvbnMsCisrCSMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5rZXJfZmxhZycuICBHQ0MgZGlz Y2FyZHMgaXQgd2l0aG91dCBgJHdsJywKKysJIyBidXQgaXMgY2FyZWZ1bCBlbm91Z2ggbm90IHRv IHJlb3JkZXIuCisrIAkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/ KQorKwlpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjX0dDSj0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3ds fWRlZmF1bHRleHRyYWN0JworKwllbHNlCisrCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfR0NK PScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0JworKwlmaQorKwk7 OworKyAgICAgIGVzYWMKKysgICAgICBsaW5rX2FsbF9kZXBsaWJzX0dDSj15ZXMKKysgICAgICA7 OworKworKyAgICBzdW5vczQqKQorKyAgICAgIGlmIHRlc3QgIngkaG9zdF92ZW5kb3IiID0geHNl cXVlbnQ7IHRoZW4KKysJIyBVc2UgJENDIHRvIGxpbmsgdW5kZXIgc2VxdWVudCwgYmVjYXVzZSBp dCB0aHJvd3MgaW4gc29tZSBleHRyYSAubworKwkjIGZpbGVzIHRoYXQgbWFrZSAuaW5pdCBhbmQg LmZpbmkgc2VjdGlvbnMgd29yay4KKysJYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1HICR7d2x9LWgg JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAg ICBlbHNlCisrCWFyY2hpdmVfY21kc19HQ0o9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnN0YXRp YyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysg ICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLUwkbGliZGlyJworKyAgICAgIGhh cmRjb2RlX2RpcmVjdF9HQ0o9eWVzCisrICAgICAgaGFyZGNvZGVfbWludXNfTF9HQ0o9eWVzCisr ICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICA7OworKworKyAgICBz eXN2NCkKKysgICAgICBjYXNlICRob3N0X3ZlbmRvciBpbgorKwlzbmkpCisrCSAgYXJjaGl2ZV9j bWRzX0dDSj0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJworKwkgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9eWVzICMgaXMgdGhpcyByZWFsbHkg dHJ1ZT8/PworKwk7OworKwlzaWVtZW5zKQorKwkgICMjIExEIGlzIGxkIGl0IG1ha2VzIGEgUExB TUxJQgorKwkgICMjIENDIGp1c3QgbWFrZXMgYSBHcm9zc01vZHVsZS4KKysJICBhcmNoaXZlX2Nt ZHNfR0NKPSckTEQgLUcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwor KwkgIHJlbG9hZF9jbWRzX0dDSj0nJENDIC1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisrCSAg aGFyZGNvZGVfZGlyZWN0X0dDSj1ubworKyAgICAgICAgOzsKKysJbW90b3JvbGEpCisrCSAgYXJj aGl2ZV9jbWRzX0dDSj0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJworKwkgIGhhcmRjb2RlX2RpcmVjdF9HQ0o9bm8gI01vdG9yb2xhIG1h bnVhbCBzYXlzIHllcywgYnV0IG15IHRlc3RzIHNheSB0aGV5IGxpZQorKwk7OworKyAgICAgIGVz YWMKKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrICAgICAgaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9HQ0o9bm8KKysgICAgICA7OworKworKyAgICBzeXN2NC4zKikKKysgICAgICBh cmNoaXZlX2NtZHNfR0NKPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9HQ0o9bm8K KysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NKPSctQmV4cG9ydCcKKysgICAgICA7 OworKworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgor KwlhcmNoaXZlX2NtZHNfR0NKPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCWhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCisr CXJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrCWhhcmRjb2RlX3J1bnBhdGhfdmFyPXllcworKwls ZF9zaGxpYnNfR0NKPXllcworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqdXcy KiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IHVuaXh3YXJl NyogfCBzY28zLjJ2NS4wLlswMjRdKikKKysgICAgICBub191bmRlZmluZWRfZmxhZ19HQ0o9JyR7 d2x9LXosdGV4dCcKKysgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19HQ0o9bm8KKysgICAgICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyX0dDSj1ubworKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5f UEFUSCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlhcmNoaXZlX2Nt ZHNfR0NKPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckQ0MgLXNo YXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlhcmNo aXZlX2NtZHNfR0NKPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nJENDIC1H ICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBmaQorKyAgICAgIDs7Cisr CisrICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCisrICAgICAgIyBOb3RlOiBXZSBj YW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QK KysgICAgICAjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xz IHVzZWQgZnJvbSBsaWJjIHRvCisrICAgICAgIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2gg bWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCisrICAgICAgIyBldmVyIGxpbmsgY29y cmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorKyAgICAg ICMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFz IGhlYXZ5LWhhbmRlZAorKyAgICAgICMgYXMgLXogZGVmcy4KKysgICAgICBub191bmRlZmluZWRf ZmxhZ19HQ0o9JyR7d2x9LXosdGV4dCcKKysgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9 JyR7d2x9LXosbm9kZWZzJworKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0dDSj1ubworKyAg ICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCisrICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19HQ0o9J2B0ZXN0IC16ICIkU0NPQUJTUEFUSCIgJiYgZWNobyAke3dsfS1SLCRs aWJkaXJgJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfR0NKPSc6JworKyAgICAg IGxpbmtfYWxsX2RlcGxpYnNfR0NKPXllcworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Y19HQ0o9JyR7d2x9LUJleHBvcnQnCisrICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwor KworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWFyY2hpdmVfY21kc19HQ0o9 JyRDQyAtc2hhcmVkICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxsX2xpYmRpcn0vfSRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCWFyY2hp dmVfZXhwc3ltX2NtZHNfR0NKPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3lt Ym9scyAke3dsfS1oLFwke1NDT0FCU1BBVEg6KyR7aW5zdGFsbF9saWJkaXJ9L30kc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJ YXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1HICR7d2x9LWgsXCR7U0NPQUJTUEFUSDorJHtpbnN0YWxs X2xpYmRpcn0vfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhw b3J0X3N5bWJvbHMgJHt3bH0taCxcJHtTQ09BQlNQQVRIOiske2luc3RhbGxfbGliZGlyfS99JHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRM RCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycK KysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0nLUwkbGliZGlyJworKyAgICAg IGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCisrICAgICAgOzsKKysKKysgICAgKikKKysg ICAgICBsZF9zaGxpYnNfR0NKPW5vCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRfc2hsaWJzX0dDSiIgPiY1Cisr JGFzX2VjaG8gIiRsZF9zaGxpYnNfR0NKIiA+JjY7IH0KKyt0ZXN0ICIkbGRfc2hsaWJzX0dDSiIg PSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrIworKyMgRG8gd2UgbmVlZCB0byBleHBs aWNpdGx5IGxpbmsgbGliYz8KKysjCisrY2FzZSAieCRhcmNoaXZlX2NtZHNfbmVlZF9sY19HQ0oi IGluCisreHx4eWVzKQorKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBiZSBhZGRlZAorKyAgYXJjaGl2 ZV9jbWRzX25lZWRfbGNfR0NKPXllcworKworKyAgaWYgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0g eWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGNhc2UgJGFyY2hpdmVfY21kc19H Q0ogaW4KKysgICAgKid+JyopCisrICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3 aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgorKyAgICAgIDs7CisrICAgICckQ0MgJyopCisr ICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0aCAt bGMgc2luY2Ugb24gc29tZQorKyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUgYmVm b3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYworKyAgICAgICMgdG8gbGQsIGRvbid0 IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4iID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5 IGxpbmtlZCBpbi4uLiAiID4mNjsgfQorKyAgICAgICRybSBjb25mdGVzdCoKKysgICAgICBlY2hv ICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysg ICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+ JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAgc29uYW1lPWNvbmZ0ZXN0 CisrICAgICAgICBsaWI9Y29uZnRlc3QKKysgICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29i amV4dAorKyAgICAgICAgZGVwbGlicz0KKysgICAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3ds X0dDSgorKwlwaWNfZmxhZz0kbHRfcHJvZ19jb21waWxlcl9waWNfR0NKCisrICAgICAgICBjb21w aWxlcl9mbGFncz0tdgorKyAgICAgICAgbGlua2VyX2ZsYWdzPS12CisrICAgICAgICB2ZXJzdHJp bmc9CisrICAgICAgICBvdXRwdXRfb2JqZGlyPS4KKysgICAgICAgIGxpYm5hbWU9Y29uZnRlc3QK KysgICAgICAgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGFsbG93X3VuZGVmaW5lZF9m bGFnX0dDSgorKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKPQorKyAgICAgICAgaWYg eyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYXJjaGl2ZV9jbWRzX0dDSiAyXD5cJjEg XHwgZ3JlcCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxXCIiKSA+JjUKKysgIChldmFsICRh cmNoaXZlX2NtZHNfR0NKIDJcPlwmMSBcfCBncmVwIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5c JjEpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9CisrICAgICAgICB0 aGVuCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKPW5vCisrICAgICAgICBlbHNlCisrCSAg YXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKPXllcworKyAgICAgICAgZmkKKysgICAgICAgIGFsbG93 X3VuZGVmaW5lZF9mbGFnX0dDSj0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZworKyAgICAg IGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgIGZpCisrICAgICAg JHJtIGNvbmZ0ZXN0KgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhcmNoaXZlX2NtZHNfbmVlZF9sY19HQ0oiID4mNQorKyRhc19lY2hvICIkYXJjaGl2ZV9jbWRz X25lZWRfbGNfR0NKIiA+JjY7IH0KKysgICAgICA7OworKyAgICBlc2FjCisrICBmaQorKyAgOzsK Kytlc2FjCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGR5bmFtaWMg bGlua2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZHluYW1p YyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIgPiY2OyB9CisrbGlicmFyeV9uYW1lc19zcGVj PQorK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCisrc29uYW1lX3NwZWM9Cisrc2hyZXh0X2NtZHM9 Ii5zbyIKKytwb3N0aW5zdGFsbF9jbWRzPQorK3Bvc3R1bmluc3RhbGxfY21kcz0KKytmaW5pc2hf Y21kcz0KKytmaW5pc2hfZXZhbD0KKytzaGxpYnBhdGhfdmFyPQorK3NobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD11bmtub3duCisrdmVyc2lvbl90eXBlPW5vbmUKKytkeW5hbWljX2xpbmtlcj0i JGhvc3Rfb3MgbGQuc28iCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9s aWIiCisrCisrbmVlZF9saWJfcHJlZml4PXVua25vd24KKytoYXJkY29kZV9pbnRvX2xpYnM9bm8K KysKKysjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBpdCBkb2Vz IG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KKysjIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1 bWVudHMKKytuZWVkX3ZlcnNpb249dW5rbm93bgorKworK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgz KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEnCisrICBzaGxp YnBhdGhfdmFyPUxJQlBBVEgKKysKKysgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9y dCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KKysgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICA7OworKwor K2FpeFs0LTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5v CisrICBuZWVkX3ZlcnNpb249bm8KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIGlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2NAor KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysg IGVsc2UKKysgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0 ZSBhbiBpbXBvcnQgZmlsZQorKyAgICAjIGZvciBkZXBlbmRlbmNlIGxpYnJhcmllcy4gIFRoZSBp bXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCisrICAgICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhp cyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KKysgICAgIyBkZXBlbmQgb24g YC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQgaW4KKysgICAg IyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMuMC4KKysgICAgY2FzZSAk aG9zdF9vcyBpbgorKyAgICAgIGFpeDQgfCBhaXg0LlswMV0gfCBhaXg0LlswMV0uKikKKysgICAg ICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIgJiYgX19HTlVD X01JTk9SX18gPj0gOTcpJworKwkgICBlY2hvICcgeWVzICcKKysJICAgZWNobyAnI2VuZGlmJzsg fSB8ICR7Q0N9IC1FIC0gfCBncmVwIHllcyA+IC9kZXYvbnVsbDsgdGhlbgorKwk6CisrICAgICAg ZWxzZQorKwljYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBl c2FjCisrICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNv IGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKKysgICAgIyBzb25hbWUgaW50 byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcgc3VwcG9ydCB0bwor KyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNhbiBiZSB1c2VmdWwgaW4gZnV0 dXJlLgorKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4K KysgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0LjIgb3IgbGF0ZXIp IHVzZSBsaWI8bmFtZT4uc28KKysgICAgICAjIGluc3RlYWQgb2YgbGliPG5hbWU+LmEgdG8gbGV0 IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAorKyAgICAgICMgdHlwaWNhbCBBSVggc2hh cmVkIGxpYnJhcmllcy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgZWxzZQorKyAgICAgICMg V2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFyaWVzIHRocm91Z2gg QUlYNC4yCisrICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRvaW5nIHJ1biB0aW1l IGxpbmtpbmcuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fS5hICRsaWJuYW1lLmEnCisrICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZmkKKysgICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRI CisrICBmaQorKyAgOzsKKysKKythbWlnYW9zKikKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxp Ym5hbWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEnCisrICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4bGli cmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgorKyAgZmluaXNoX2V2YWw9J2ZvciBsaWIgaW4g YGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1lPWAkZWNobyAi WCRsaWIiIHwgJFhzZWQgLWUgJ1wnJ3MlXi4qL1woW14vXSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcn YDsgdGVzdCAkcm0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAv c3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9s aWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7IGRvbmUn CisrICA7OworKworK2Jlb3MqKQorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtz aGFyZWRfZXh0fScKKysgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKKysgIHNobGli cGF0aF92YXI9TElCUkFSWV9QQVRICisrICA7OworKworK2JzZGlbNDVdKikKKysgIHZlcnNpb25f dHlwZT1saW51eAorKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBmaW5p c2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3No bGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2Nh bC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91 c3IvbG9jYWwvbGliIgorKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMg L3Vzci9jb250cmliL2xpYiBhbmQKKysgICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEg bGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdworKyAgIyBsaWJ0b29sIHRvIGhh cmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCisrICA7OworKworK2N5Z3dpbiogfCBtaW5ndyog fCBwdzMyKikKKysgIHZlcnNpb25fdHlwZT13aW5kb3dzCisrICBzaHJleHRfY21kcz0iLmRsbCIK KysgIG5lZWRfdmVyc2lvbj1ubworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrCisrICBjYXNlICRH Q0MsJGhvc3Rfb3MgaW4KKysgIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKikK KysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKKysgICAgIyBETEwgaXMg aW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcworKyAgICBw b3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KKysgICAgICBk bHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTtl Y2hvIFwkZGxuYW1lJ1wnJ2B+CisrICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBh dGhgfgorKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgorKyAgICAg ICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRsbmFtZX4KKysgICAgICBjaG1v ZCBhK3ggXCRkbGRpci8kZGxuYW1lJworKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAk U0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgorKyAgICAgIGRs cGF0aD0kZGlyL1wkZGxkbGx+CisrICAgICAgICRybSBcJGRscGF0aCcKKysgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcworKworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGN5 Z3dpbiopCisrICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFu ICdsaWInCisrICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3Mv XmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1 ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vz ci9saWIgL2xpYi93MzJhcGkgL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgICAgICA7OworKyAgICBt aW5ndyopCisrICAgICAgIyBNaW5HVyBETExzIHVzZSB0cmFkaXRpb25hbCAnbGliJyBwcmVmaXgK KysgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1l ICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgZ3JlcCAiXmxpYnJhcmll czoiIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAorKyAgICAgIGlm IGVjaG8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgZ3JlcCAnO1tjLXpDLVpdOi8nID4v ZGV2L251bGw7IHRoZW4KKysgICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3Mg Zm9ybWF0IFBBVEggcHJpbnRlZCBieQorKyAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUg cnVubmluZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJjaAorKyAgICAgICAgIyBwYXRo IHdpdGggOyBzZXBhcmF0b3JzLCBhbmQgd2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxl IHRoZQorKyAgICAgICAgIyBkcml2ZSBsZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3Rh bmRzIHRoZW0pLCBzbyBsZWF2ZSB0aGVtLAorKyAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1p Z2h0IHBhc3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1wLAorKyAgICAgICAg IyB3aGljaCB3b3VsZG4ndCB1bmRlcnN0YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgorKyAg ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBlY2hvICIkc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAorKyAgICAgIGVsc2UKKysgICAgICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz1gZWNobyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAk U0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKysgICAgICBmaQorKyAgICAgIDs7Cisr ICAgIHB3MzIqKQorKyAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIgdGhh biAnbGliJworKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNl ZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydg JHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAgICA7OworKyAgICBlc2FjCisrICAgIDs7 CisrCisrICAqKQorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3Jl bGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9ICRs aWJuYW1lLmxpYicKKysgICAgOzsKKysgIGVzYWMKKysgIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBs ZC5leGUnCisrICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJl Y3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KKysgIHNobGlicGF0aF92YXI9UEFUSAorKyAgOzsK KysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGR5 bGQiCisrICB2ZXJzaW9uX3R5cGU9ZGFyd2luCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5l ZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7dmVyc3VmZml4fSRzaGFyZWRfZXh0ICR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hh cmVkX2V4dCAke2xpYm5hbWV9JHNoYXJlZF9leHQnCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0JworKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcworKyAgc2hsaWJwYXRoX3Zhcj1EWUxEX0xJQlJBUllfUEFUSAorKyAgc2hyZXh0 X2NtZHM9J2B0ZXN0IC4kbW9kdWxlID0gLnllcyAmJiBlY2hvIC5zbyB8fCBlY2hvIC5keWxpYmAn CisrCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL2xpYiAv dXNyL2xpYicKKysgIDs7CisrCisrZGd1eCopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHNoYXJlZF9leHQnCisrICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIDs7CisrCisrZnJlZWJzZDEqKQorKyAg ZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrZnJlZWJzZCogfCBkcmFnb25mbHkqKQorKyAg IyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9pZiB0aGV5IGltcGxlbWVudCBh IG5ldworKyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0IHRoaXMuCisrICBpZiB0ZXN0 IC14IC91c3IvYmluL29iamZvcm1hdDsgdGhlbgorKyAgICBvYmpmb3JtYXQ9YC91c3IvYmluL29i amZvcm1hdGAKKysgIGVsc2UKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBmcmVlYnNkWzEy M10qKSBvYmpmb3JtYXQ9YW91dCA7OworKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7CisrICAgIGVz YWMKKysgIGZpCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0CisrICBjYXNlICR2 ZXJzaW9uX3R5cGUgaW4KKysgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICAg IG5lZWRfdmVyc2lvbj1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIDs7Cisr ICAgIGZyZWVic2QtKikKKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCcKKysgICAgICBuZWVkX3ZlcnNpb249eWVzCisrICAgICAgOzsKKysgIGVzYWMKKysgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X29zIGluCisrICBmcmVl YnNkMiopCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAgOzsKKysg IGZyZWVic2QzLlswMV0qIHwgZnJlZWJzZGVsZjMuWzAxXSopCisrICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7Owor KyAgZnJlZWJzZDMuWzItOV0qIHwgZnJlZWJzZGVsZjMuWzItOV0qIHwgXAorKyAgZnJlZWJzZDQu WzAtNV0gfCBmcmVlYnNkZWxmNC5bMC01XSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2RlbGY0LjEu MSkKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysgICAgOzsKKysgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25GbHkK KysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCisrICAgIDs7CisrICBlc2FjCisrICA7OworKworK2dudSopCisrICB2ZXJzaW9u X3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisr ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJu YW1lfSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisraHB1eDkqIHwgaHB1eDEwKiB8IGhw dXgxMSopCisrICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVy c2lvbiBzbyB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsgYWdhaW5zdCBvdGhlciB2 ZXJzaW9ucy4KKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICBuZWVkX3ZlcnNpb249bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBpYTY0KikKKysgICAg c2hyZXh0X2NtZHM9Jy5zbycKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICBkeW5h bWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtu b2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBpZiB0ZXN0 ICJYJEhQVVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xvY2Fs L2xpYiIKKysgICAgZWxzZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9s aWIvaHB1eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkKKysgICAgc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7OworKyAg IGhwcGEqNjQqKQorKyAgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKKysgICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElC X1BBVEgKKysgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25v ZW52dmFyIGlzIHNwZWNpZmllZC4KKysgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82 NCIKKysgICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWMKKysgICAgIDs7CisrICAgKikKKysgICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9Q QVRICisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVk IHRvIGVuYWJsZSBTSExJQl9QQVRICisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAg ZXNhYworKyAgIyBIUC1VWCBydW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJh cmllcyBhcmUgbW9kZSA1NTUuCisrICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicK KysgIDs7CisrCisraW50ZXJpeFszLTldKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVl ZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisr ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwor KyAgZHluYW1pY19saW5rZXI9J0ludGVyaXggMy54IGxkLnNvLjEgKFBFLCBsaWtlIEVMRiknCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2lyaXg1KiB8 IGlyaXg2KiB8IG5vbnN0b3B1eCopCisrICBjYXNlICRob3N0X29zIGluCisrICAgIG5vbnN0b3B1 eCopIHZlcnNpb25fdHlwZT1ub25zdG9wdXggOzsKKysgICAgKikKKysJaWYgdGVzdCAiJGx0X2N2 X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgorKwkJdmVyc2lvbl90eXBlPWxpbnV4CisrCWVsc2UK KysJCXZlcnNpb25fdHlwZT1pcml4CisrCWZpIDs7CisrICBlc2FjCisrICBuZWVkX2xpYl9wcmVm aXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGlyaXg1KiB8IG5v bnN0b3B1eCopCisrICAgIGxpYnN1ZmY9IHNobGlic3VmZj0KKysgICAgOzsKKysgICopCisrICAg IGNhc2UgJExEIGluICMgbGlidG9vbC5tNCB3aWxsIGFkZCBvbmUgb2YgdGhlc2Ugc3dpdGNoZXMg dG8gTEQKKysgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8KiItbWVsZjMyYnNtaXAgIikK KysgICAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPTMyLWJpdDs7CisrICAgICotbjMy fCoiLW4zMiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlwbjMyICIpCisrICAgICAgbGli c3VmZj0zMiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7CisrICAgICotNjR8KiItNjQgInwq LW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAiKQorKyAgICAgIGxpYnN1ZmY9NjQgc2hsaWJzdWZm PTY0IGxpYm1hZ2ljPTY0LWJpdDs7CisrICAgICopIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFn aWM9bmV2ZXItbWF0Y2g7OworKyAgICBlc2FjCisrICAgIDs7CisrICBlc2FjCisrICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUlkke3NobGlic3VmZn1fUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPW5vCisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJz dWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCisrICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9Igor KyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKysjIE5vIHNoYXJlZCBsaWIgc3Vw cG9ydCBmb3IgTGludXggb2xkbGQsIGFvdXQsIG9yIGNvZmYuCisrbGludXgqb2xkbGQqIHwgbGlu dXgqYW91dCogfCBsaW51eCpjb2ZmKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKwor KyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgdmVy c2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1u bworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIg bGRjb25maWcgLW4gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisr ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICMgVGhpcyBpbXBsaWVzIG5vIGZh c3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgorKyAgIyBTb21lIHJld29yayB3aWxs IGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCisrICAjIGJlZm9yZSB0aGlzIGNh biBiZSBlbmFibGVkLgorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2Nh bC9saWIke2xpYnN1ZmZ9IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli JHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKKysKKysgICMgQXBwZW5kIGxkLnNvLmNvbmYgY29u dGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCisrICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsg dGhlbgorKyAgICBsdF9sZF9leHRyYT1gYXdrICcvXmluY2x1ZGUgLyB7IHN5c3RlbShzcHJpbnRm KCJjZCAvZXRjOyBjYXQgJXMgMj4vZGV2L251bGwiLCBcJDIpKTsgc2tpcCA9IDE7IH0geyBpZiAo IXNraXApIHByaW50IFwkMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwgJFNFRCAt ZSAncy8jLiovLzsvXlsgCV0qaHdjYXBbIAldL2Q7cy9bOiwJXS8gL2c7cy89W149XSokLy87cy89 W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJhIgorKyAg ZmkKKysKKysgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2FibGUg c2hhcmVkIGxpYnJhcmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXggb25seSBz dXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAgIyBHTlUgZHluYW1pYyBsaW5r ZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCisrICAjIG1v c3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0aGVzZSBkYXlz IGFuZAorKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3 YXMgcmVtb3ZlZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlu a2VyIGlzIGluIHVzZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28nCisrICA7 OworKworK25ldGJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZp eD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8 IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Ni aW4iIGxkY29uZmlnIC1tICRsaWJkaXInCisrICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEu b3V0KSBsZC5zbycKKysgIGVsc2UKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgZHluYW1p Y19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCisrICBmaQorKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrbmV3c29zNikKKysgIHZlcnNpb25fdHlwZT1s aW51eAorKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAor KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgOzsKKysKKytudG8tcW54KikK KysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3Zl cnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICA7OworKworK29wZW5i c2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iL3Vzci9saWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICMgU29tZSBvbGRlciB2ZXJz aW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4K KysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMuKikgbmVl ZF92ZXJzaW9uPXllcyA7OworKyAgICAqKSAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkX3Zl cnNpb249bm8gIDs7CisrICBlc2FjCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcg LW0gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBpZiB0ZXN0 IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIk aG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgY2Fz ZSAkaG9zdF9vcyBpbgorKyAgICAgIG9wZW5ic2QyLls4OV0gfCBvcGVuYnNkMi5bODldLiopCisr CXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKwk7OworKyAgICAgICopCisrCXNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysJOzsKKysgICAgICBlc2FjCisrICBlbHNlCisr ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGZpCisrICA7OworKworK29z MiopCisrICBsaWJuYW1lX3NwZWM9JyRuYW1lJworKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICBu ZWVkX2xpYl9wcmVmaXg9bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJl ZF9leHR9ICRsaWJuYW1lLmEnCisrICBkeW5hbWljX2xpbmtlcj0nT1MvMiBsZC5leGUnCisrICBz aGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIDs7CisrCisrb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQor KyAgdmVyc2lvbl90eXBlPW9zZgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNp b249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91 c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAvdmFyL3NobGliIgorKyAg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCisr ICA7OworKworK3Jkb3MqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrc29sYXJp cyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVl ZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaGFyZGNvZGVf aW50b19saWJzPXllcworKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4 ZWN1dGFibGUKKysgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRsaWInCisrICA7OworKwor K3N1bm9zNCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi91c3Iv ZXRjIiBsZGNvbmZpZyAkbGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2du dV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICBmaQorKyAgbmVl ZF92ZXJzaW9uPXllcworKyAgOzsKKysKKytzeXN2NCB8IHN5c3Y0LjMqKQorKyAgdmVyc2lvbl90 eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAorKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KKysgICAgc25pKQorKyAgICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAg IGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmxhcmdlZHluc3ltJworKyAgICAgIHJ1 bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrICAgICAgOzsKKysgICAgc2llbWVucykKKysgICAgICBu ZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICA7OworKyAgICBtb3Rvcm9sYSkKKysgICAgICBuZWVk X2xpYl9wcmVmaXg9bm8KKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysgICAgICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9s aWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJworKyAgICAgIDs7CisrICBlc2FjCisrICA7OworKwor K3N5c3Y0Kk1QKikKKysgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KKysgICAgdmVyc2lvbl90 eXBlPWxpbnV4CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9 LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJwor KyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgZmkKKysgIDs7CisrCisrc3lz djUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0 KnV3MiopCisrICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKKysgIG5lZWRfbGliX3ByZWZpeD1u bworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAorKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgaWYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IHllczsgdGhlbgorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3Iv bG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xpYicKKysgICAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBlbHNlCisrICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0nL3Vzci9jY3MvbGliIC91c3IvbGliJworKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBzY28zLjJ2 NSopCisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMgL2xpYiIKKysJOzsKKysgICAgZXNhYworKyAgZmkKKysgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPScvdXNyL2xpYicKKysgIDs7CisrCisrdXRzNCopCisrICB2ZXJzaW9uX3R5 cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICA7OworKworKyopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKytlc2FjCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGR5bmFtaWNfbGlua2VyIiA+JjUK KyskYXNfZWNobyAiJGR5bmFtaWNfbGlua2VyIiA+JjY7IH0KKyt0ZXN0ICIkZHluYW1pY19saW5r ZXIiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubworKworK2lmIHRlc3QgIiR7bHRfY3Zfc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0i JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorKworK3N5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytpZiB0ZXN0ICIke2x0X2N2 X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCisrZmkKKysKKytzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIgorKwor K3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRzaGxpYnBhdGhfdmFyICRydW5wYXRo X3ZhciIKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgdmFyaWFibGVzX3NhdmVkX2Zv cl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBHQ0NfRVhFQ19QUkVGSVggQ09N UElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCisrZmkKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFt cyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0 aHMgaW50byBwcm9ncmFtcy4uLiAiID4mNjsgfQorK2hhcmRjb2RlX2FjdGlvbl9HQ0o9CisraWYg dGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKIiB8fCBcCisrICAgdGVzdCAt biAiJHJ1bnBhdGhfdmFyX0dDSiIgfHwgXAorKyAgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21hdGlj X0dDSiIgPSAiWHllcyIgOyB0aGVuCisrCisrICAjIFdlIGNhbiBoYXJkY29kZSBub24tZXhpc3Rh bnQgZGlyZWN0b3JpZXMuCisrICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0X0dDSiIgIT0gbm8g JiYKKysgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMg c2hsaWJwYXRoX3Zhciwgd2UKKysgICAgICMgaGF2ZSB0byByZWxpbmssIG90aGVyd2lzZSB3ZSBt aWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKKysgICAgICMgd2hlbiB3ZSBzaG91 bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBvbmUKKysgICAgICMjIHRl c3QgIiRfTFRfQUNfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsIEdDSikiICE9IG5vICYm CisrICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTF9HQ0oiICE9IG5vOyB0aGVuCisrICAgICMg TGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGlicmFyeSBkaXJlY3Rvcnku CisrICAgIGhhcmRjb2RlX2FjdGlvbl9HQ0o9cmVsaW5rCisrICBlbHNlCisrICAgICMgV2UgY2Fu IGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5n IGRpcnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9HQ0o9aW1tZWRpYXRlCisrICBmaQorK2Vsc2UK KysgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhh cmRjb2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9yaWVzLgorKyAgaGFyZGNvZGVfYWN0aW9uX0dD Sj11bnN1cHBvcnRlZAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGhhcmRjb2RlX2FjdGlvbl9HQ0oiID4mNQorKyRhc19lY2hvICIkaGFyZGNvZGVfYWN0aW9uX0dD SiIgPiY2OyB9CisrCisraWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbl9HQ0oiID0gcmVsaW5rOyB0 aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKysgIGVuYWJsZV9m YXN0X2luc3RhbGw9bm8KKytlbGlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgi ID0geWVzIHx8CisrICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSBubzsgdGhlbgorKyAgIyBG YXN0IGluc3RhbGxhdGlvbiBpcyBub3QgbmVjZXNzYXJ5CisrICBlbmFibGVfZmFzdF9pbnN0YWxs PW5lZWRsZXNzCisrZmkKKysKKysKKysjIFRoZSBlbHNlIGNsYXVzZSBzaG91bGQgb25seSBmaXJl IHdoZW4gYm9vdHN0cmFwcGluZyB0aGUKKysjIGxpYnRvb2wgZGlzdHJpYnV0aW9uLCBvdGhlcndp c2UgeW91IGZvcmdvdCB0byBzaGlwIGx0bWFpbi5zaAorKyMgd2l0aCB5b3VyIHBhY2thZ2UsIGFu ZCB5b3Ugd2lsbCBnZXQgY29tcGxhaW50cyB0aGF0IHRoZXJlIGFyZQorKyMgbm8gcnVsZXMgdG8g Z2VuZXJhdGUgbHRtYWluLnNoLgorK2lmIHRlc3QgLWYgIiRsdG1haW4iOyB0aGVuCisrICAjIFNl ZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxs b3cgb3VyIGNvbW1hbmRzIHRocm91Z2gKKysgICMgd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBl cy4KKysgIGlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisrICAgIHNldG9w dCBOT19HTE9CX1NVQlNUCisrICBmaQorKyAgIyBOb3cgcXVvdGUgYWxsIHRoZSB0aGluZ3MgdGhh dCBtYXkgY29udGFpbiBtZXRhY2hhcmFjdGVycyB3aGlsZSBiZWluZworKyAgIyBjYXJlZnVsIG5v dCB0byBvdmVycXVvdGUgdGhlIEFDX1NVQlNUZWQgdmFsdWVzLiAgV2UgdGFrZSBjb3BpZXMgb2Yg dGhlCisrICAjIHZhcmlhYmxlcyBhbmQgcXVvdGUgdGhlIGNvcGllcyBmb3IgZ2VuZXJhdGlvbiBv ZiB0aGUgbGlidG9vbCBzY3JpcHQuCisrICBmb3IgdmFyIGluIGVjaG8gb2xkX0NDIG9sZF9DRkxB R1MgQVIgQVJfRkxBR1MgRUdSRVAgUkFOTElCIExOX1MgTFRDQyBMVENGTEFHUyBOTSBcCisrICAg IFNFRCBTSEVMTCBTVFJJUCBcCisrICAgIGxpYm5hbWVfc3BlYyBsaWJyYXJ5X25hbWVzX3NwZWMg c29uYW1lX3NwZWMgZXh0cmFjdF9leHBzeW1zX2NtZHMgXAorKyAgICBvbGRfc3RyaXBsaWIgc3Ry aXBsaWIgZmlsZV9tYWdpY19jbWQgZmluaXNoX2NtZHMgZmluaXNoX2V2YWwgXAorKyAgICBkZXBs aWJzX2NoZWNrX21ldGhvZCByZWxvYWRfZmxhZyByZWxvYWRfY21kcyBuZWVkX2xvY2tzIFwKKysg ICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90 b19jZGVjbCBcCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNz IFwKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIHN5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjIFwKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHMgb2xkX3Bvc3R1bmluc3RhbGxfY21kcyBc CisrICAgIGNvbXBpbGVyX0dDSiBcCisrICAgIENDX0dDSiBcCisrICAgIExEX0dDSiBcCisrICAg IGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKIFwKKysgICAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NK IFwKKysgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKIFwKKysgICAgbHRfcHJvZ19jb21w aWxlcl9ub19idWlsdGluX2ZsYWdfR0NKIFwKKysgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj X0dDSiBcCisrICAgIHRocmVhZF9zYWZlX2ZsYWdfc3BlY19HQ0ogXAorKyAgICB3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlY19HQ0ogXAorKyAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRp bWVzX0dDSiBcCisrICAgIG9sZF9hcmNoaXZlX2NtZHNfR0NKIFwKKysgICAgb2xkX2FyY2hpdmVf ZnJvbV9uZXdfY21kc19HQ0ogXAorKyAgICBwcmVkZXBfb2JqZWN0c19HQ0ogXAorKyAgICBwb3N0 ZGVwX29iamVjdHNfR0NKIFwKKysgICAgcHJlZGVwc19HQ0ogXAorKyAgICBwb3N0ZGVwc19HQ0og XAorKyAgICBjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfR0NKIFwKKysgICAgY29tcGlsZXJfbGli X3NlYXJjaF9kaXJzX0dDSiBcCisrICAgIGFyY2hpdmVfY21kc19HQ0ogXAorKyAgICBhcmNoaXZl X2V4cHN5bV9jbWRzX0dDSiBcCisrICAgIHBvc3RpbnN0YWxsX2NtZHNfR0NKIFwKKysgICAgcG9z dHVuaW5zdGFsbF9jbWRzX0dDSiBcCisrICAgIG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRz X0dDSiBcCisrICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0dDSiBcCisrICAgIG5vX3VuZGVmaW5l ZF9mbGFnX0dDSiBcCisrICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfR0NKIFwKKysgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19HQ0ogXAorKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X2xkX0dDSiBcCisrICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfR0NKIFwKKysgICAgaGFy ZGNvZGVfYXV0b21hdGljX0dDSiBcCisrICAgIG1vZHVsZV9jbWRzX0dDSiBcCisrICAgIG1vZHVs ZV9leHBzeW1fY21kc19HQ0ogXAorKyAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19HQ0ogXAor KyAgICBmaXhfc3JjZmlsZV9wYXRoX0dDSiBcCisrICAgIGV4Y2x1ZGVfZXhwc3ltc19HQ0ogXAor KyAgICBpbmNsdWRlX2V4cHN5bXNfR0NKOyBkbworKworKyAgICBjYXNlICR2YXIgaW4KKysgICAg b2xkX2FyY2hpdmVfY21kc19HQ0ogfCBcCisrICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNf R0NKIHwgXAorKyAgICBhcmNoaXZlX2NtZHNfR0NKIHwgXAorKyAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0dDSiB8IFwKKysgICAgbW9kdWxlX2NtZHNfR0NKIHwgXAorKyAgICBtb2R1bGVfZXhwc3lt X2NtZHNfR0NKIHwgXAorKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19HQ0ogfCBc CisrICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfR0NKIHwgXAorKyAgICBleHRyYWN0X2V4cHN5bXNf Y21kcyB8IHJlbG9hZF9jbWRzIHwgZmluaXNoX2NtZHMgfCBcCisrICAgIHBvc3RpbnN0YWxsX2Nt ZHMgfCBwb3N0dW5pbnN0YWxsX2NtZHMgfCBcCisrICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzIHwg b2xkX3Bvc3R1bmluc3RhbGxfY21kcyB8IFwKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IHwgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMpCisrICAgICAgIyBEb3VibGUtcXVvdGUgZG91 YmxlLWV2YWxlZCBzdHJpbmdzLgorKyAgICAgIGV2YWwgImx0XyR2YXI9XFxcIlxgXCRlY2hvIFwi WFwkJHZhclwiIHwgXCRYc2VkIC1lIFwiXCRkb3VibGVfcXVvdGVfc3Vic3RcIiAtZSBcIlwkc2Vk X3F1b3RlX3N1YnN0XCIgLWUgXCJcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XCJcYFxcXCIiCisrICAg ICAgOzsKKysgICAgKikKKysgICAgICBldmFsICJsdF8kdmFyPVxcXCJcYFwkZWNobyBcIlhcJCR2 YXJcIiB8IFwkWHNlZCAtZSBcIlwkc2VkX3F1b3RlX3N1YnN0XCJcYFxcXCIiCisrICAgICAgOzsK KysgICAgZXNhYworKyAgZG9uZQorKworKyAgY2FzZSAkbHRfZWNobyBpbgorKyAgKidcJDAgLS1m YWxsYmFjay1lY2hvIicpCisrICAgIGx0X2VjaG89YCRlY2hvICJYJGx0X2VjaG8iIHwgJFhzZWQg LWUgJ3MvXFxcXFxcXCQwIC0tZmFsbGJhY2stZWNobyIkLyQwIC0tZmFsbGJhY2stZWNobyIvJ2AK KysgICAgOzsKKysgIGVzYWMKKysKKytjZmdmaWxlPSIkb2ZpbGUiCisrCisrICBjYXQgPDxfX0VP Rl9fID4+ICIkY2ZnZmlsZSIKKysjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWdu YW1lCisrCisrIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1 bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgorKworKyMgU2hlbGwgdG8gdXNlIHdoZW4g aW52b2tpbmcgc2hlbGwgc2NyaXB0cy4KKytTSEVMTD0kbHRfU0hFTEwKKysKKysjIFdoZXRoZXIg b3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCisrYnVpbGRfbGlidG9vbF9saWJzPSRl bmFibGVfc2hhcmVkCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFy aWVzLgorK2J1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCisrCisrIyBXaGV0aGVyIG9yIG5v dCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzLgorK2J1aWxkX2xpYnRv b2xfbmVlZF9sYz0kYXJjaGl2ZV9jbWRzX25lZWRfbGNfR0NKCisrCisrIyBXaGV0aGVyIG9yIG5v dCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljCisr YWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzPSRlbmFibGVfc2hhcmVkX3dp dGhfc3RhdGljX3J1bnRpbWVzX0dDSgorKworKyMgV2hldGhlciBvciBub3QgdG8gb3B0aW1pemUg Zm9yIGZhc3QgaW5zdGFsbGF0aW9uLgorK2Zhc3RfaW5zdGFsbD0kZW5hYmxlX2Zhc3RfaW5zdGFs bAorKworKyMgVGhlIGhvc3Qgc3lzdGVtLgorK2hvc3RfYWxpYXM9JGhvc3RfYWxpYXMKKytob3N0 PSRob3N0CisraG9zdF9vcz0kaG9zdF9vcworKworKyMgVGhlIGJ1aWxkIHN5c3RlbS4KKytidWls ZF9hbGlhcz0kYnVpbGRfYWxpYXMKKytidWlsZD0kYnVpbGQKKytidWlsZF9vcz0kYnVpbGRfb3MK KysKKysjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGludGVycHJldCBiYWNrc2xhc2hl cy4KKytlY2hvPSRsdF9lY2hvCisrCisrIyBUaGUgYXJjaGl2ZXIuCisrQVI9JGx0X0FSCisrQVJf RkxBR1M9JGx0X0FSX0ZMQUdTCisrCisrIyBBIEMgY29tcGlsZXIuCisrTFRDQz0kbHRfTFRDQwor KworKyMgTFRDQyBjb21waWxlciBmbGFncy4KKytMVENGTEFHUz0kbHRfTFRDRkxBR1MKKysKKysj IEEgbGFuZ3VhZ2Utc3BlY2lmaWMgY29tcGlsZXIuCisrQ0M9JGx0X2NvbXBpbGVyX0dDSgorKwor KyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgQyBjb21waWxlcj8KKyt3aXRoX2djYz0kR0NDX0dD SgorKworKyMgQW4gRVJFIG1hdGNoZXIuCisrRUdSRVA9JGx0X0VHUkVQCisrCisrIyBUaGUgbGlu a2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgorK0xEPSRsdF9MRF9HQ0oKKysKKysjIFdoZXRo ZXIgd2UgbmVlZCBoYXJkIG9yIHNvZnQgbGlua3MuCisrTE5fUz0kbHRfTE5fUworKworKyMgQSBC U0QtY29tcGF0aWJsZSBubSBwcm9ncmFtLgorK05NPSRsdF9OTQorKworKyMgQSBzeW1ib2wgc3Ry aXBwaW5nIHByb2dyYW0KKytTVFJJUD0kbHRfU1RSSVAKKysKKysjIFVzZWQgdG8gZXhhbWluZSBs aWJyYXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMgImZpbGUiCisrTUFHSUNfQ01EPSRN QUdJQ19DTUQKKysKKysjIFVzZWQgb24gY3lnd2luOiBETEwgY3JlYXRpb24gcHJvZ3JhbS4KKytE TExUT09MPSIkRExMVE9PTCIKKysKKysjIFVzZWQgb24gY3lnd2luOiBvYmplY3QgZHVtcGVyLgor K09CSkRVTVA9IiRPQkpEVU1QIgorKworKyMgVXNlZCBvbiBjeWd3aW46IGFzc2VtYmxlci4KKytB Uz0iJEFTIgorKworKyMgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRl bXBvcmFyeSBsaWJ0b29sIGZpbGVzLgorK29iamRpcj0kb2JqZGlyCisrCisrIyBIb3cgdG8gY3Jl YXRlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLgorK3JlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxh ZworK3JlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kcworKworKyMgSG93IHRvIHBhc3MgYSBsaW5r ZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21waWxlci4KKyt3bD0kbHRfbHRfcHJvZ19jb21waWxlcl93 bF9HQ0oKKysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8iKS4KKytvYmpleHQ9 IiRhY19vYmpleHQiCisrCisrIyBPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1hbGx5ICJhIikuCisr bGliZXh0PSIkbGliZXh0IgorKworKyMgU2hhcmVkIGxpYnJhcnkgc3VmZml4IChub3JtYWxseSAi LnNvIikuCisrc2hyZXh0X2NtZHM9JyRzaHJleHRfY21kcycKKysKKysjIEV4ZWN1dGFibGUgZmls ZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KKytleGVleHQ9IiRleGVleHQiCisrCisrIyBBZGRpdGlv bmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCisrcGljX2Zs YWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljX0dDSgorK3BpY19tb2RlPSRwaWNfbW9kZQorKwor KyMgV2hhdCBpcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYSBjb21tYW5kPworK21heF9jbWRfbGVu PSRsdF9jdl9zeXNfbWF4X2NtZF9sZW4KKysKKysjIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3Vz bHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KKytjb21waWxlcl9jX289JGx0X2x0X2N2X3By b2dfY29tcGlsZXJfY19vX0dDSgorKworKyMgTXVzdCB3ZSBsb2NrIGZpbGVzIHdoZW4gZG9pbmcg Y29tcGlsYXRpb24/CisrbmVlZF9sb2Nrcz0kbHRfbmVlZF9sb2NrcworKworKyMgRG8gd2UgbmVl ZCB0aGUgbGliIHByZWZpeCBmb3IgbW9kdWxlcz8KKytuZWVkX2xpYl9wcmVmaXg9JG5lZWRfbGli X3ByZWZpeAorKworKyMgRG8gd2UgbmVlZCBhIHZlcnNpb24gZm9yIGxpYnJhcmllcz8KKytuZWVk X3ZlcnNpb249JG5lZWRfdmVyc2lvbgorKworKyMgV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVk LgorK2Rsb3Blbl9zdXBwb3J0PSRlbmFibGVfZGxvcGVuCisrCisrIyBXaGV0aGVyIGRsb3BlbiBv ZiBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCisrZGxvcGVuX3NlbGY9JGVuYWJsZV9kbG9wZW5fc2Vs ZgorKworKyMgV2hldGhlciBkbG9wZW4gb2Ygc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMg c3VwcG9ydGVkLgorK2Rsb3Blbl9zZWxmX3N0YXRpYz0kZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRp YworKworKyMgQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2luZy4KKytsaW5r X3N0YXRpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19HQ0oKKysKKysjIENvbXBp bGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCisrbm9fYnVpbHRpbl9mbGFn PSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19HQ0oKKysKKysjIENvbXBpbGVy IGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCisrZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWNfR0NKCisrCisrIyBDb21waWxlciBmbGFn IHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZyb20gYXJjaGl2ZXMuCisrd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWM9JGx0X3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSgorKwor KyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQtc2FmZSBvYmplY3RzLgorK3RocmVh ZF9zYWZlX2ZsYWdfc3BlYz0kbHRfdGhyZWFkX3NhZmVfZmxhZ19zcGVjX0dDSgorKworKyMgTGli cmFyeSB2ZXJzaW9uaW5nIHR5cGUuCisrdmVyc2lvbl90eXBlPSR2ZXJzaW9uX3R5cGUKKysKKysj IEZvcm1hdCBvZiBsaWJyYXJ5IG5hbWUgcHJlZml4LgorK2xpYm5hbWVfc3BlYz0kbHRfbGlibmFt ZV9zcGVjCisrCisrIyBMaXN0IG9mIGFyY2hpdmUgbmFtZXMuICBGaXJzdCBuYW1lIGlzIHRoZSBy ZWFsIG9uZSwgdGhlIHJlc3QgYXJlIGxpbmtzLgorKyMgVGhlIGxhc3QgbmFtZSBpcyB0aGUgb25l IHRoYXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFNRS4KKytsaWJyYXJ5X25hbWVzX3NwZWM9 JGx0X2xpYnJhcnlfbmFtZXNfc3BlYworKworKyMgVGhlIGNvZGVkIG5hbWUgb2YgdGhlIGxpYnJh cnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWUuCisrc29uYW1lX3NwZWM9JGx0X3Nv bmFtZV9zcGVjCisrCisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGFuIG9s ZC1zdHlsZSBhcmNoaXZlLgorK1JBTkxJQj0kbHRfUkFOTElCCisrb2xkX2FyY2hpdmVfY21kcz0k bHRfb2xkX2FyY2hpdmVfY21kc19HQ0oKKytvbGRfcG9zdGluc3RhbGxfY21kcz0kbHRfb2xkX3Bv c3RpbnN0YWxsX2NtZHMKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPSRsdF9vbGRfcG9zdHVuaW5z dGFsbF9jbWRzCisrCisrIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJl ZCBhcmNoaXZlLgorK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zy b21fbmV3X2NtZHNfR0NKCisrCisrIyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0eWxlIGFyY2hp dmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUuCisrb2xkX2FyY2hpdmVfZnJv bV9leHBzeW1zX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0dDSgorKwor KyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbmQgaW5zdGFsbCBhIHNoYXJlZCBhcmNoaXZlLgor K2FyY2hpdmVfY21kcz0kbHRfYXJjaGl2ZV9jbWRzX0dDSgorK2FyY2hpdmVfZXhwc3ltX2NtZHM9 JGx0X2FyY2hpdmVfZXhwc3ltX2NtZHNfR0NKCisrcG9zdGluc3RhbGxfY21kcz0kbHRfcG9zdGlu c3RhbGxfY21kcworK3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfcG9zdHVuaW5zdGFsbF9jbWRzCisr CisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIChhc3N1bWVkIHNh bWUgYXMgYWJvdmUgaWYgZW1wdHkpCisrbW9kdWxlX2NtZHM9JGx0X21vZHVsZV9jbWRzX0dDSgor K21vZHVsZV9leHBzeW1fY21kcz0kbHRfbW9kdWxlX2V4cHN5bV9jbWRzX0dDSgorKworKyMgQ29t bWFuZHMgdG8gc3RyaXAgbGlicmFyaWVzLgorK29sZF9zdHJpcGxpYj0kbHRfb2xkX3N0cmlwbGli Cisrc3RyaXBsaWI9JGx0X3N0cmlwbGliCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVm b3JlIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQorKyMgc2hhcmVkIGxpYnJh cnkuCisrcHJlZGVwX29iamVjdHM9JGx0X3ByZWRlcF9vYmplY3RzX0dDSgorKworKyMgRGVwZW5k ZW5jaWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUg YQorKyMgc2hhcmVkIGxpYnJhcnkuCisrcG9zdGRlcF9vYmplY3RzPSRsdF9wb3N0ZGVwX29iamVj dHNfR0NKCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIHRoZSBvYmplY3RzIGJl aW5nIGxpbmtlZCB0byBjcmVhdGUgYQorKyMgc2hhcmVkIGxpYnJhcnkuCisrcHJlZGVwcz0kbHRf cHJlZGVwc19HQ0oKKysKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBhZnRlciB0aGUgb2JqZWN0 cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKKysjIHNoYXJlZCBsaWJyYXJ5LgorK3Bvc3RkZXBz PSRsdF9wb3N0ZGVwc19HQ0oKKysKKysjIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlz IGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQKKysjIGxpYnJhcnkKKytjb21waWxlcl9s aWJfc2VhcmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19HQ0oKKysKKysjIFRo ZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hl biBsaW5raW5nCisrIyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0dDSgorKworKyMgTWV0aG9kIHRvIGNoZWNr IHdoZXRoZXIgZGVwZW5kZW50IGxpYnJhcmllcyBhcmUgc2hhcmVkIG9iamVjdHMuCisrZGVwbGli c19jaGVja19tZXRob2Q9JGx0X2RlcGxpYnNfY2hlY2tfbWV0aG9kCisrCisrIyBDb21tYW5kIHRv IHVzZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID09IGZpbGVfbWFnaWMuCisrZmlsZV9tYWdp Y19jbWQ9JGx0X2ZpbGVfbWFnaWNfY21kCisrCisrIyBGbGFnIHRoYXQgYWxsb3dzIHNoYXJlZCBs aWJyYXJpZXMgd2l0aCB1bmRlZmluZWQgc3ltYm9scyB0byBiZSBidWlsdC4KKythbGxvd191bmRl ZmluZWRfZmxhZz0kbHRfYWxsb3dfdW5kZWZpbmVkX2ZsYWdfR0NKCisrCisrIyBGbGFnIHRoYXQg Zm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgorK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191 bmRlZmluZWRfZmxhZ19HQ0oKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gZmluaXNoIGEgbGlidG9v bCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9yeS4KKytmaW5pc2hfY21kcz0kbHRf ZmluaXNoX2NtZHMKKysKKysjIFNhbWUgYXMgYWJvdmUsIGJ1dCBhIHNpbmdsZSBzY3JpcHQgZnJh Z21lbnQgdG8gYmUgZXZhbGVkIGJ1dCBub3Qgc2hvd24uCisrZmluaXNoX2V2YWw9JGx0X2Zpbmlz aF9ldmFsCisrCisrIyBUYWtlIHRoZSBvdXRwdXQgb2Ygbm0gYW5kIHByb2R1Y2UgYSBsaXN0aW5n IG9mIHJhdyBzeW1ib2xzIGFuZCBDIG5hbWVzLgorK2dsb2JhbF9zeW1ib2xfcGlwZT0kbHRfbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZQorKworKyMgVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Yg bm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbgorK2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9JGx0 X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsCisrCisrIyBUcmFuc2Zvcm0gdGhlIG91 dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIKKytnbG9iYWxfc3ltYm9sX3RvX2Nf bmFtZV9hZGRyZXNzPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVz cworKworKyMgVGhpcyBpcyB0aGUgc2hhcmVkIGxpYnJhcnkgcnVudGltZSBwYXRoIHZhcmlhYmxl LgorK3J1bnBhdGhfdmFyPSRydW5wYXRoX3ZhcgorKworKyMgVGhpcyBpcyB0aGUgc2hhcmVkIGxp YnJhcnkgcGF0aCB2YXJpYWJsZS4KKytzaGxpYnBhdGhfdmFyPSRzaGxpYnBhdGhfdmFyCisrCisr IyBJcyBzaGxpYnBhdGggc2VhcmNoZWQgYmVmb3JlIHRoZSBoYXJkLWNvZGVkIGxpYnJhcnkgc2Vh cmNoIHBhdGg/Cisrc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGgKKysKKysjIEhvdyB0byBoYXJkY29kZSBhIHNoYXJlZCBsaWJyYXJ5IHBhdGgg aW50byBhbiBleGVjdXRhYmxlLgorK2hhcmRjb2RlX2FjdGlvbj0kaGFyZGNvZGVfYWN0aW9uX0dD SgorKworKyMgV2hldGhlciB3ZSBzaG91bGQgaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIGxp YnJhcmllcy4KKytoYXJkY29kZV9pbnRvX2xpYnM9JGhhcmRjb2RlX2ludG9fbGlicworKworKyMg RmxhZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgor KyMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdC4KKytoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSgor KworKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRsaWJk aXIgaW50bworKyMgYSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuIFRoaXMgbXVzdCB3b3JrIGV2ZW4g aWYgXCRsaWJkaXIgZG9lcworKyMgbm90IGV4aXN0LgorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfR0NKCisrCisrIyBXaGV0aGVy IHdlIG5lZWQgYSBzaW5nbGUgLXJwYXRoIGZsYWcgd2l0aCBhIHNlcGFyYXRlZCBhcmd1bWVudC4K KytoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y X0dDSgorKworKyMgU2V0IHRvIHllcyBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0g ZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvIHRoZQorKyMgcmVzdWx0aW5nIGJpbmFy eS4KKytoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVjdF9HQ0oKKysKKysjIFNldCB0byB5 ZXMgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBp bnRvIHRoZQorKyMgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9taW51c19MPSRoYXJkY29k ZV9taW51c19MX0dDSgorKworKyMgU2V0IHRvIHllcyBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJ UiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMgRElSIGludG8KKysjIHRoZSByZXN1bHRpbmcgYmlu YXJ5LgorK2hhcmRjb2RlX3NobGlicGF0aF92YXI9JGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NK CisrCisrIyBTZXQgdG8geWVzIGlmIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGlj YWxseSBoYXJkY29kZXMgRElSIGludG8gdGhlIGxpYnJhcnkKKysjIGFuZCBhbGwgc3Vic2VxdWVu dCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZCBhZ2FpbnN0IGl0LgorK2hhcmRjb2Rl X2F1dG9tYXRpYz0kaGFyZGNvZGVfYXV0b21hdGljX0dDSgorKworKyMgVmFyaWFibGVzIHdob3Nl IHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5kCisr IyByZXN0b3JlZCBhdCByZWxpbmsgdGltZS4KKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0i JHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIgorKworKyMgV2hldGhlciBsaWJ0b29sIG11c3Qg bGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgorK2xp bmtfYWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnNfR0NKCisrCisrIyBDb21waWxlLXRpbWUg c3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKKytzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9JGx0X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKworKyMgUnVuLXRpbWUgc3lzdGVtIHNl YXJjaCBwYXRoIGZvciBsaWJyYXJpZXMKKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kbHRf c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMKKysKKysjIEZpeCB0aGUgc2hlbGwgdmFyaWFibGUg XCRzcmNmaWxlIGZvciB0aGUgY29tcGlsZXIuCisrZml4X3NyY2ZpbGVfcGF0aD0kbHRfZml4X3Ny Y2ZpbGVfcGF0aAorKworKyMgU2V0IHRvIHllcyBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1 aXJlZC4KKythbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3ltYm9sc19HQ0oK KysKKysjIFRoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHMuCisrZXhwb3J0X3N5 bWJvbHNfY21kcz0kbHRfZXhwb3J0X3N5bWJvbHNfY21kc19HQ0oKKysKKysjIFRoZSBjb21tYW5k cyB0byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hp dmUuCisrZXh0cmFjdF9leHBzeW1zX2NtZHM9JGx0X2V4dHJhY3RfZXhwc3ltc19jbWRzCisrCisr IyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1i b2xzLgorK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zX0dDSgorKworKyMgU3lt Ym9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgorK2luY2x1ZGVfZXhwc3ltcz0kbHRf aW5jbHVkZV9leHBzeW1zX0dDSgorKworKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICR0 YWduYW1lCisrCisrX19FT0ZfXworKworKworK2Vsc2UKKysgICMgSWYgdGhlcmUgaXMgbm8gTWFr ZWZpbGUgeWV0LCB3ZSByZWx5IG9uIGEgbWFrZSBydWxlIHRvIGV4ZWN1dGUKKysgICMgYGNvbmZp Zy5zdGF0dXMgLS1yZWNoZWNrJyB0byByZXJ1biB0aGVzZSB0ZXN0cyBhbmQgY3JlYXRlIHRoZQor KyAgIyBsaWJ0b29sIHNjcmlwdCB0aGVuLgorKyAgbHRtYWluX2luPWBlY2hvICRsdG1haW4gfCBz ZWQgLWUgJ3MvXC5zaCQvLmluLydgCisrICBpZiB0ZXN0IC1mICIkbHRtYWluX2luIjsgdGhlbgor KyAgICB0ZXN0IC1mIE1ha2VmaWxlICYmIG1ha2UgIiRsdG1haW4iCisrICBmaQorK2ZpCisrCisr CisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAt YyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ0Mg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9n bnUKKysKKytDQz0iJGx0X3NhdmVfQ0MiCisrCisrCWVsc2UKKysJICB0YWduYW1lPSIiCisrCWZp CisrCTs7CisrCisrICAgICAgUkMpCisrCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9y IFJDIHRlc3Qgc291cmNlcy4KKythY19leHQ9cmMKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lv biBmb3IgY29tcGlsZWQgUkMgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisrb2JqZXh0X1JDPSRv YmpleHQKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0nc2FtcGxlIE1FTlUgeyBNRU5VSVRFTSAiJlNvdXAi LCAxMDAsIENIRUNLRUQgfScKKysKKysjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0 ZXN0cworK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iJGx0X3NpbXBsZV9jb21waWxlX3Rlc3Rf Y29kZSIKKysKKysjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlv bnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisrCisrIyBJZiBubyBDIGNvbXBpbGVyIHdhcyBz cGVjaWZpZWQsIHVzZSBDQy4KKytMVENDPSR7TFRDQy0iJENDIn0KKysKKysjIElmIG5vIEMgY29t cGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCisrTFRDRkxBR1M9JHtMVENG TEFHUy0iJENGTEFHUyJ9CisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3VtZW50cy4KKytjb21waWxlcj0kQ0MKKysKKysKKysjIHNhdmUgd2FybmluZ3MvYm9pbGVy cGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4 dAorK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0 CisrZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAq Ky9kJyA+Y29uZnRlc3QuZXJyCisrX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRl c3QuZXJyYAorKyRybSBjb25mdGVzdCoKKysKKythY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpl eHQKKytlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAor K2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcg PmNvbmZ0ZXN0LmVycgorK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJg CisrJHJtIC1yIGNvbmZ0ZXN0KgorKworKworKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmd1bWVudHMuCisrbHRfc2F2ZV9DQz0iJENDIgorK0NDPSR7UkMtIndpbmRyZXMi fQorK2NvbXBpbGVyPSRDQworK2NvbXBpbGVyX1JDPSRDQworK2ZvciBjY190ZW1wIGluICRjb21w aWxlciIiOyBkbworKyAgY2FzZSAkY2NfdGVtcCBpbgorKyAgICBjb21waWxlIHwgKltcXC9dY29t cGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7CisrICAgIGRpc3RjYyB8ICpbXFwvXWRp c3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7CisrICAgIFwtKikgOzsKKysgICAgKikg YnJlYWs7OworKyAgZXNhYworK2RvbmUKKytjY19iYXNlbmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIg fCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKKysKKytsdF9jdl9w cm9nX2NvbXBpbGVyX2Nfb19SQz15ZXMKKysKKysjIFRoZSBlbHNlIGNsYXVzZSBzaG91bGQgb25s eSBmaXJlIHdoZW4gYm9vdHN0cmFwcGluZyB0aGUKKysjIGxpYnRvb2wgZGlzdHJpYnV0aW9uLCBv dGhlcndpc2UgeW91IGZvcmdvdCB0byBzaGlwIGx0bWFpbi5zaAorKyMgd2l0aCB5b3VyIHBhY2th Z2UsIGFuZCB5b3Ugd2lsbCBnZXQgY29tcGxhaW50cyB0aGF0IHRoZXJlIGFyZQorKyMgbm8gcnVs ZXMgdG8gZ2VuZXJhdGUgbHRtYWluLnNoLgorK2lmIHRlc3QgLWYgIiRsdG1haW4iOyB0aGVuCisr ICAjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hp Y2ggYWxsb3cgb3VyIGNvbW1hbmRzIHRocm91Z2gKKysgICMgd2l0aG91dCByZW1vdmFsIG9mIFwg ZXNjYXBlcy4KKysgIGlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisrICAg IHNldG9wdCBOT19HTE9CX1NVQlNUCisrICBmaQorKyAgIyBOb3cgcXVvdGUgYWxsIHRoZSB0aGlu Z3MgdGhhdCBtYXkgY29udGFpbiBtZXRhY2hhcmFjdGVycyB3aGlsZSBiZWluZworKyAgIyBjYXJl ZnVsIG5vdCB0byBvdmVycXVvdGUgdGhlIEFDX1NVQlNUZWQgdmFsdWVzLiAgV2UgdGFrZSBjb3Bp ZXMgb2YgdGhlCisrICAjIHZhcmlhYmxlcyBhbmQgcXVvdGUgdGhlIGNvcGllcyBmb3IgZ2VuZXJh dGlvbiBvZiB0aGUgbGlidG9vbCBzY3JpcHQuCisrICBmb3IgdmFyIGluIGVjaG8gb2xkX0NDIG9s ZF9DRkxBR1MgQVIgQVJfRkxBR1MgRUdSRVAgUkFOTElCIExOX1MgTFRDQyBMVENGTEFHUyBOTSBc CisrICAgIFNFRCBTSEVMTCBTVFJJUCBcCisrICAgIGxpYm5hbWVfc3BlYyBsaWJyYXJ5X25hbWVz X3NwZWMgc29uYW1lX3NwZWMgZXh0cmFjdF9leHBzeW1zX2NtZHMgXAorKyAgICBvbGRfc3RyaXBs aWIgc3RyaXBsaWIgZmlsZV9tYWdpY19jbWQgZmluaXNoX2NtZHMgZmluaXNoX2V2YWwgXAorKyAg ICBkZXBsaWJzX2NoZWNrX21ldGhvZCByZWxvYWRfZmxhZyByZWxvYWRfY21kcyBuZWVkX2xvY2tz IFwKKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF90b19jZGVjbCBcCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9h ZGRyZXNzIFwKKysgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjIFwKKysgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHMgb2xkX3Bvc3R1bmluc3RhbGxf Y21kcyBcCisrICAgIGNvbXBpbGVyX1JDIFwKKysgICAgQ0NfUkMgXAorKyAgICBMRF9SQyBcCisr ICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfUkMgXAorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19S QyBcCisrICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX1JDIFwKKysgICAgbHRfcHJvZ19jb21w aWxlcl9ub19idWlsdGluX2ZsYWdfUkMgXAorKyAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNf UkMgXAorKyAgICB0aHJlYWRfc2FmZV9mbGFnX3NwZWNfUkMgXAorKyAgICB3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlY19SQyBcCisrICAgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNf UkMgXAorKyAgICBvbGRfYXJjaGl2ZV9jbWRzX1JDIFwKKysgICAgb2xkX2FyY2hpdmVfZnJvbV9u ZXdfY21kc19SQyBcCisrICAgIHByZWRlcF9vYmplY3RzX1JDIFwKKysgICAgcG9zdGRlcF9vYmpl Y3RzX1JDIFwKKysgICAgcHJlZGVwc19SQyBcCisrICAgIHBvc3RkZXBzX1JDIFwKKysgICAgY29t cGlsZXJfbGliX3NlYXJjaF9wYXRoX1JDIFwKKysgICAgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJz X1JDIFwKKysgICAgYXJjaGl2ZV9jbWRzX1JDIFwKKysgICAgYXJjaGl2ZV9leHBzeW1fY21kc19S QyBcCisrICAgIHBvc3RpbnN0YWxsX2NtZHNfUkMgXAorKyAgICBwb3N0dW5pbnN0YWxsX2NtZHNf UkMgXAorKyAgICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19SQyBcCisrICAgIGFsbG93 X3VuZGVmaW5lZF9mbGFnX1JDIFwKKysgICAgbm9fdW5kZWZpbmVkX2ZsYWdfUkMgXAorKyAgICBl eHBvcnRfc3ltYm9sc19jbWRzX1JDIFwKKysgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19S QyBcCisrICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfUkMgXAorKyAgICBoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yX1JDIFwKKysgICAgaGFyZGNvZGVfYXV0b21hdGljX1JDIFwKKysg ICAgbW9kdWxlX2NtZHNfUkMgXAorKyAgICBtb2R1bGVfZXhwc3ltX2NtZHNfUkMgXAorKyAgICBs dF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19SQyBcCisrICAgIGZpeF9zcmNmaWxlX3BhdGhfUkMgXAor KyAgICBleGNsdWRlX2V4cHN5bXNfUkMgXAorKyAgICBpbmNsdWRlX2V4cHN5bXNfUkM7IGRvCisr CisrICAgIGNhc2UgJHZhciBpbgorKyAgICBvbGRfYXJjaGl2ZV9jbWRzX1JDIHwgXAorKyAgICBv bGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzX1JDIHwgXAorKyAgICBhcmNoaXZlX2NtZHNfUkMgfCBc CisrICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfUkMgfCBcCisrICAgIG1vZHVsZV9jbWRzX1JDIHwg XAorKyAgICBtb2R1bGVfZXhwc3ltX2NtZHNfUkMgfCBcCisrICAgIG9sZF9hcmNoaXZlX2Zyb21f ZXhwc3ltc19jbWRzX1JDIHwgXAorKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX1JDIHwgXAorKyAg ICBleHRyYWN0X2V4cHN5bXNfY21kcyB8IHJlbG9hZF9jbWRzIHwgZmluaXNoX2NtZHMgfCBcCisr ICAgIHBvc3RpbnN0YWxsX2NtZHMgfCBwb3N0dW5pbnN0YWxsX2NtZHMgfCBcCisrICAgIG9sZF9w b3N0aW5zdGFsbF9jbWRzIHwgb2xkX3Bvc3R1bmluc3RhbGxfY21kcyB8IFwKKysgICAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjIHwgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMpCisrICAgICAg IyBEb3VibGUtcXVvdGUgZG91YmxlLWV2YWxlZCBzdHJpbmdzLgorKyAgICAgIGV2YWwgImx0XyR2 YXI9XFxcIlxgXCRlY2hvIFwiWFwkJHZhclwiIHwgXCRYc2VkIC1lIFwiXCRkb3VibGVfcXVvdGVf c3Vic3RcIiAtZSBcIlwkc2VkX3F1b3RlX3N1YnN0XCIgLWUgXCJcJGRlbGF5X3ZhcmlhYmxlX3N1 YnN0XCJcYFxcXCIiCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBldmFsICJsdF8kdmFyPVxc XCJcYFwkZWNobyBcIlhcJCR2YXJcIiB8IFwkWHNlZCAtZSBcIlwkc2VkX3F1b3RlX3N1YnN0XCJc YFxcXCIiCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZG9uZQorKworKyAgY2FzZSAkbHRfZWNo byBpbgorKyAgKidcJDAgLS1mYWxsYmFjay1lY2hvIicpCisrICAgIGx0X2VjaG89YCRlY2hvICJY JGx0X2VjaG8iIHwgJFhzZWQgLWUgJ3MvXFxcXFxcXCQwIC0tZmFsbGJhY2stZWNobyIkLyQwIC0t ZmFsbGJhY2stZWNobyIvJ2AKKysgICAgOzsKKysgIGVzYWMKKysKKytjZmdmaWxlPSIkb2ZpbGUi CisrCisrICBjYXQgPDxfX0VPRl9fID4+ICIkY2ZnZmlsZSIKKysjICMjIyBCRUdJTiBMSUJUT09M IFRBRyBDT05GSUc6ICR0YWduYW1lCisrCisrIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhv c3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgorKworKyMg U2hlbGwgdG8gdXNlIHdoZW4gaW52b2tpbmcgc2hlbGwgc2NyaXB0cy4KKytTSEVMTD0kbHRfU0hF TEwKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCisrYnVp bGRfbGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVkCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBi dWlsZCBzdGF0aWMgbGlicmFyaWVzLgorK2J1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCisr CisrIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFy aWVzLgorK2J1aWxkX2xpYnRvb2xfbmVlZF9sYz0kYXJjaGl2ZV9jbWRzX25lZWRfbGNfUkMKKysK KysjIFdoZXRoZXIgb3Igbm90IHRvIGRpc2FsbG93IHNoYXJlZCBsaWJzIHdoZW4gcnVudGltZSBs aWJzIGFyZSBzdGF0aWMKKythbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXM9 JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfUkMKKysKKysjIFdoZXRoZXIgb3Ig bm90IHRvIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbi4KKytmYXN0X2luc3RhbGw9JGVu YWJsZV9mYXN0X2luc3RhbGwKKysKKysjIFRoZSBob3N0IHN5c3RlbS4KKytob3N0X2FsaWFzPSRo b3N0X2FsaWFzCisraG9zdD0kaG9zdAorK2hvc3Rfb3M9JGhvc3Rfb3MKKysKKysjIFRoZSBidWls ZCBzeXN0ZW0uCisrYnVpbGRfYWxpYXM9JGJ1aWxkX2FsaWFzCisrYnVpbGQ9JGJ1aWxkCisrYnVp bGRfb3M9JGJ1aWxkX29zCisrCisrIyBBbiBlY2hvIHByb2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRl cnByZXQgYmFja3NsYXNoZXMuCisrZWNobz0kbHRfZWNobworKworKyMgVGhlIGFyY2hpdmVyLgor K0FSPSRsdF9BUgorK0FSX0ZMQUdTPSRsdF9BUl9GTEFHUworKworKyMgQSBDIGNvbXBpbGVyLgor K0xUQ0M9JGx0X0xUQ0MKKysKKysjIExUQ0MgY29tcGlsZXIgZmxhZ3MuCisrTFRDRkxBR1M9JGx0 X0xUQ0ZMQUdTCisrCisrIyBBIGxhbmd1YWdlLXNwZWNpZmljIGNvbXBpbGVyLgorK0NDPSRsdF9j b21waWxlcl9SQworKworKyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgQyBjb21waWxlcj8KKyt3 aXRoX2djYz0kR0NDX1JDCisrCisrIyBBbiBFUkUgbWF0Y2hlci4KKytFR1JFUD0kbHRfRUdSRVAK KysKKysjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJpZXMuCisrTEQ9JGx0X0xEX1JD CisrCisrIyBXaGV0aGVyIHdlIG5lZWQgaGFyZCBvciBzb2Z0IGxpbmtzLgorK0xOX1M9JGx0X0xO X1MKKysKKysjIEEgQlNELWNvbXBhdGlibGUgbm0gcHJvZ3JhbS4KKytOTT0kbHRfTk0KKysKKysj IEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtCisrU1RSSVA9JGx0X1NUUklQCisrCisrIyBVc2Vk IHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5zICJmaWxlIgor K01BR0lDX0NNRD0kTUFHSUNfQ01ECisrCisrIyBVc2VkIG9uIGN5Z3dpbjogRExMIGNyZWF0aW9u IHByb2dyYW0uCisrRExMVE9PTD0iJERMTFRPT0wiCisrCisrIyBVc2VkIG9uIGN5Z3dpbjogb2Jq ZWN0IGR1bXBlci4KKytPQkpEVU1QPSIkT0JKRFVNUCIKKysKKysjIFVzZWQgb24gY3lnd2luOiBh c3NlbWJsZXIuCisrQVM9IiRBUyIKKysKKysjIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgdGhh dCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlcy4KKytvYmpkaXI9JG9iamRpcgorKwor KyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4KKytyZWxvYWRfZmxhZz0k bHRfcmVsb2FkX2ZsYWcKKytyZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKKysKKysjIEhvdyB0 byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCisrd2w9JGx0X2x0X3By b2dfY29tcGlsZXJfd2xfUkMKKysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8i KS4KKytvYmpleHQ9IiRhY19vYmpleHQiCisrCisrIyBPbGQgYXJjaGl2ZSBzdWZmaXggKG5vcm1h bGx5ICJhIikuCisrbGliZXh0PSIkbGliZXh0IgorKworKyMgU2hhcmVkIGxpYnJhcnkgc3VmZml4 IChub3JtYWxseSAiLnNvIikuCisrc2hyZXh0X2NtZHM9JyRzaHJleHRfY21kcycKKysKKysjIEV4 ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KKytleGVleHQ9IiRleGVleHQiCisr CisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVj dHMuCisrcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljX1JDCisrcGljX21vZGU9JHBp Y19tb2RlCisrCisrIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNvbW1hbmQ/Cisr bWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhfY21kX2xlbgorKworKyMgRG9lcyBjb21waWxlciBz aW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPworK2NvbXBpbGVyX2Nfbz0k bHRfbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fUkMKKysKKysjIE11c3Qgd2UgbG9jayBmaWxlcyB3 aGVuIGRvaW5nIGNvbXBpbGF0aW9uPworK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKKysKKysj IERvIHdlIG5lZWQgdGhlIGxpYiBwcmVmaXggZm9yIG1vZHVsZXM/CisrbmVlZF9saWJfcHJlZml4 PSRuZWVkX2xpYl9wcmVmaXgKKysKKysjIERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJp ZXM/CisrbmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KKysKKysjIFdoZXRoZXIgZGxvcGVuIGlz IHN1cHBvcnRlZC4KKytkbG9wZW5fc3VwcG9ydD0kZW5hYmxlX2Rsb3BlbgorKworKyMgV2hldGhl ciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zZWxmPSRlbmFibGVf ZGxvcGVuX3NlbGYKKysKKysjIFdoZXRoZXIgZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHBy b2dyYW1zIGlzIHN1cHBvcnRlZC4KKytkbG9wZW5fc2VsZl9zdGF0aWM9JGVuYWJsZV9kbG9wZW5f c2VsZl9zdGF0aWMKKysKKysjIENvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtp bmcuCisrbGlua19zdGF0aWNfZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfUkMKKysK KysjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCisrbm9fYnVp bHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19SQworKworKyMg Q29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KKytleHBvcnRfZHluYW1p Y19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19SQworKworKyMgQ29tcGls ZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVz LgorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19S QworKworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSB0aHJlYWQtc2FmZSBvYmplY3RzLgor K3RocmVhZF9zYWZlX2ZsYWdfc3BlYz0kbHRfdGhyZWFkX3NhZmVfZmxhZ19zcGVjX1JDCisrCisr IyBMaWJyYXJ5IHZlcnNpb25pbmcgdHlwZS4KKyt2ZXJzaW9uX3R5cGU9JHZlcnNpb25fdHlwZQor KworKyMgRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXguCisrbGlibmFtZV9zcGVjPSRsdF9s aWJuYW1lX3NwZWMKKysKKysjIExpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMg dGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3MuCisrIyBUaGUgbGFzdCBuYW1lIGlzIHRo ZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1FLgorK2xpYnJhcnlfbmFtZXNf c3BlYz0kbHRfbGlicmFyeV9uYW1lc19zcGVjCisrCisrIyBUaGUgY29kZWQgbmFtZSBvZiB0aGUg bGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZS4KKytzb25hbWVfc3BlYz0k bHRfc29uYW1lX3NwZWMKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW5kIGluc3RhbGwg YW4gb2xkLXN0eWxlIGFyY2hpdmUuCisrUkFOTElCPSRsdF9SQU5MSUIKKytvbGRfYXJjaGl2ZV9j bWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzX1JDCisrb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29s ZF9wb3N0aW5zdGFsbF9jbWRzCisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1 bmluc3RhbGxfY21kcworKworKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBz aGFyZWQgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJjaGl2 ZV9mcm9tX25ld19jbWRzX1JDCisrCisrIyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0eWxlIGFy Y2hpdmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUuCisrb2xkX2FyY2hpdmVf ZnJvbV9leHBzeW1zX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX1JDCisr CisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuZCBpbnN0YWxsIGEgc2hhcmVkIGFyY2hpdmUu CisrYXJjaGl2ZV9jbWRzPSRsdF9hcmNoaXZlX2NtZHNfUkMKKythcmNoaXZlX2V4cHN5bV9jbWRz PSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRzX1JDCisrcG9zdGluc3RhbGxfY21kcz0kbHRfcG9zdGlu c3RhbGxfY21kcworK3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfcG9zdHVuaW5zdGFsbF9jbWRzCisr CisrIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIChhc3N1bWVkIHNh bWUgYXMgYWJvdmUgaWYgZW1wdHkpCisrbW9kdWxlX2NtZHM9JGx0X21vZHVsZV9jbWRzX1JDCisr bW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhwc3ltX2NtZHNfUkMKKysKKysjIENvbW1h bmRzIHRvIHN0cmlwIGxpYnJhcmllcy4KKytvbGRfc3RyaXBsaWI9JGx0X29sZF9zdHJpcGxpYgor K3N0cmlwbGliPSRsdF9zdHJpcGxpYgorKworKyMgRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJlZm9y ZSB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8gY3JlYXRlIGEKKysjIHNoYXJlZCBsaWJyYXJ5 LgorK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0c19SQworKworKyMgRGVwZW5kZW5j aWVzIHRvIHBsYWNlIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0byBjcmVhdGUgYQor KyMgc2hhcmVkIGxpYnJhcnkuCisrcG9zdGRlcF9vYmplY3RzPSRsdF9wb3N0ZGVwX29iamVjdHNf UkMKKysKKysjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgdGhlIG9iamVjdHMgYmVpbmcg bGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGlicmFyeS4KKytwcmVkZXBzPSRsdF9wcmVk ZXBzX1JDCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYWZ0ZXIgdGhlIG9iamVjdHMgYmVp bmcgbGlua2VkIHRvIGNyZWF0ZSBhCisrIyBzaGFyZWQgbGlicmFyeS4KKytwb3N0ZGVwcz0kbHRf cG9zdGRlcHNfUkMKKysKKysjIFRoZSBkaXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBp bGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQKKysjIGxpYnJhcnkKKytjb21waWxlcl9saWJfc2Vh cmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19SQworKworKyMgVGhlIGxpYnJh cnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtp bmcKKysjIGEgc2hhcmVkIGxpYnJhcnkuCisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9j b21waWxlcl9saWJfc2VhcmNoX3BhdGhfUkMKKysKKysjIE1ldGhvZCB0byBjaGVjayB3aGV0aGVy IGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgorK2RlcGxpYnNfY2hlY2tf bWV0aG9kPSRsdF9kZXBsaWJzX2NoZWNrX21ldGhvZAorKworKyMgQ29tbWFuZCB0byB1c2Ugd2hl biBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSBmaWxlX21hZ2ljLgorK2ZpbGVfbWFnaWNfY21kPSRs dF9maWxlX21hZ2ljX2NtZAorKworKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVz IHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisrYWxsb3dfdW5kZWZpbmVkX2Zs YWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnX1JDCisrCisrIyBGbGFnIHRoYXQgZm9yY2VzIG5v IHVuZGVmaW5lZCBzeW1ib2xzLgorK25vX3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRf ZmxhZ19SQworKworKyMgQ29tbWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkg aW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5LgorK2ZpbmlzaF9jbWRzPSRsdF9maW5pc2hfY21k cworKworKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGEgc2luZ2xlIHNjcmlwdCBmcmFnbWVudCB0byBi ZSBldmFsZWQgYnV0IG5vdCBzaG93bi4KKytmaW5pc2hfZXZhbD0kbHRfZmluaXNoX2V2YWwKKysK KysjIFRha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5 bWJvbHMgYW5kIEMgbmFtZXMuCisrZ2xvYmFsX3N5bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF9waXBlCisrCisrIyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHBy b3BlciBDIGRlY2xhcmF0aW9uCisrZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0kbHRfbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wKKysKKysjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5t IGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpcgorK2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJl c3M9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzCisrCisrIyBU aGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBydW50aW1lIHBhdGggdmFyaWFibGUuCisrcnVucGF0 aF92YXI9JHJ1bnBhdGhfdmFyCisrCisrIyBUaGlzIGlzIHRoZSBzaGFyZWQgbGlicmFyeSBwYXRo IHZhcmlhYmxlLgorK3NobGlicGF0aF92YXI9JHNobGlicGF0aF92YXIKKysKKysjIElzIHNobGli cGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD8K KytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9JHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aAorKworKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4 ZWN1dGFibGUuCisraGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb25fUkMKKysKKysjIFdo ZXRoZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXMuCisr aGFyZGNvZGVfaW50b19saWJzPSRoYXJkY29kZV9pbnRvX2xpYnMKKysKKysjIEZsYWcgdG8gaGFy ZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KKysjIFRoaXMgbXVz dCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCisraGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19SQworKworKyMgSWYgbGQg aXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50bworKyMg YSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIg ZG9lcworKyMgbm90IGV4aXN0LgorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfUkMKKysKKysjIFdoZXRoZXIgd2UgbmVlZCBhIHNp bmdsZSAtcnBhdGggZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgorK2hhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfUkMKKysKKysjIFNl dCB0byB5ZXMgaWYgdXNpbmcgRElSL2xpYk5BTUUke3NoYXJlZF9leHR9IGR1cmluZyBsaW5raW5n IGhhcmRjb2RlcyBESVIgaW50byB0aGUKKysjIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVf ZGlyZWN0PSRoYXJkY29kZV9kaXJlY3RfUkMKKysKKysjIFNldCB0byB5ZXMgaWYgdXNpbmcgdGhl IC1MRElSIGZsYWcgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUiBpbnRvIHRoZQorKyMgcmVz dWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9taW51c19MPSRoYXJkY29kZV9taW51c19MX1JDCisr CisrIyBTZXQgdG8geWVzIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5n IGhhcmRjb2RlcyBESVIgaW50bworKyMgdGhlIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVf c2hsaWJwYXRoX3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9SQworKworKyMgU2V0IHRvIHll cyBpZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJ UiBpbnRvIHRoZSBsaWJyYXJ5CisrIyBhbmQgYWxsIHN1YnNlcXVlbnQgbGlicmFyaWVzIGFuZCBl eGVjdXRhYmxlcyBsaW5rZWQgYWdhaW5zdCBpdC4KKytoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRj b2RlX2F1dG9tYXRpY19SQworKworKyMgVmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUg c2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5kCisrIyByZXN0b3JlZCBhdCByZWxp bmsgdGltZS4KKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9m b3JfcmVsaW5rIgorKworKyMgV2hldGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdh aW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgorK2xpbmtfYWxsX2RlcGxpYnM9JGxp bmtfYWxsX2RlcGxpYnNfUkMKKysKKysjIENvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGgg Zm9yIGxpYnJhcmllcworK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0kbHRfc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjCisrCisrIyBSdW4tdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJh cmllcworK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYworKworKyMgRml4IHRoZSBzaGVsbCB2YXJpYWJsZSBcJHNyY2ZpbGUgZm9yIHRoZSBj b21waWxlci4KKytmaXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoCisrCisrIyBT ZXQgdG8geWVzIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkLgorK2Fsd2F5c19leHBv cnRfc3ltYm9scz0kYWx3YXlzX2V4cG9ydF9zeW1ib2xzX1JDCisrCisrIyBUaGUgY29tbWFuZHMg dG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgorK2V4cG9ydF9zeW1ib2xzX2NtZHM9JGx0X2V4cG9y dF9zeW1ib2xzX2NtZHNfUkMKKysKKysjIFRoZSBjb21tYW5kcyB0byBleHRyYWN0IHRoZSBleHBv cnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hpdmUuCisrZXh0cmFjdF9leHBzeW1z X2NtZHM9JGx0X2V4dHJhY3RfZXhwc3ltc19jbWRzCisrCisrIyBTeW1ib2xzIHRoYXQgc2hvdWxk IG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgorK2V4Y2x1ZGVfZXhwc3lt cz0kbHRfZXhjbHVkZV9leHBzeW1zX1JDCisrCisrIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMg YmUgZXhwb3J0ZWQuCisraW5jbHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5bXNfUkMKKysK KysjICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklHOiAkdGFnbmFtZQorKworK19fRU9GX18KKysK KysKKytlbHNlCisrICAjIElmIHRoZXJlIGlzIG5vIE1ha2VmaWxlIHlldCwgd2UgcmVseSBvbiBh IG1ha2UgcnVsZSB0byBleGVjdXRlCisrICAjIGBjb25maWcuc3RhdHVzIC0tcmVjaGVjaycgdG8g cmVydW4gdGhlc2UgdGVzdHMgYW5kIGNyZWF0ZSB0aGUKKysgICMgbGlidG9vbCBzY3JpcHQgdGhl bi4KKysgIGx0bWFpbl9pbj1gZWNobyAkbHRtYWluIHwgc2VkIC1lICdzL1wuc2gkLy5pbi8nYAor KyAgaWYgdGVzdCAtZiAiJGx0bWFpbl9pbiI7IHRoZW4KKysgICAgdGVzdCAtZiBNYWtlZmlsZSAm JiBtYWtlICIkbHRtYWluIgorKyAgZmkKKytmaQorKworKworK2FjX2V4dD1jCisrYWNfY3BwPSck Q1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKyth Y19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrQ0M9IiRsdF9zYXZlX0ND IgorKworKwk7OworKworKyAgICAgICopCisrCXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBVbnN1cHBvcnRlZCB0YWcgbmFtZTogJHRhZ25hbWUiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBVbnN1cHBvcnRlZCB0YWcgbmFtZTogJHRhZ25hbWUiID4mMjt9CisrICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCTs7CisrICAgICAgZXNhYworKworKyAgICAgICMg QXBwZW5kIHRoZSBuZXcgdGFnIG5hbWUgdG8gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHRhZ3MuCisr ICAgICAgaWYgdGVzdCAtbiAiJHRhZ25hbWUiIDsgdGhlbgorKyAgICAgIGF2YWlsYWJsZV90YWdz PSIkYXZhaWxhYmxlX3RhZ3MgJHRhZ25hbWUiCisrICAgIGZpCisrICAgIGZpCisrICBkb25lCisr ICBJRlM9IiRsdF9zYXZlX2lmcyIKKysKKysgICMgTm93IHN1YnN0aXR1dGUgdGhlIHVwZGF0ZWQg bGlzdCBvZiBhdmFpbGFibGUgdGFncy4KKysgIGlmIGV2YWwgInNlZCAtZSAncy9eYXZhaWxhYmxl X3RhZ3M9LipcJC9hdmFpbGFibGVfdGFncz1cIiRhdmFpbGFibGVfdGFnc1wiLycgXCIkb2ZpbGVc IiA+IFwiJHtvZmlsZX1UXCIiOyB0aGVuCisrICAgIG12ICIke29maWxlfVQiICIkb2ZpbGUiCisr ICAgIGNobW9kICt4ICIkb2ZpbGUiCisrICBlbHNlCisrICAgIHJtIC1mICIke29maWxlfVQiCisr ICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB1bmFibGUgdG8gdXBkYXRl IGxpc3Qgb2YgYXZhaWxhYmxlIHRhZ2dlZCBjb25maWd1cmF0aW9ucy4iID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiB1bmFibGUgdG8gdXBkYXRlIGxpc3Qgb2YgYXZhaWxhYmxlIHRhZ2dl ZCBjb25maWd1cmF0aW9ucy4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Cisr ICBmaQorK2ZpCisrCisrCisrCisrIyBUaGlzIGNhbiBiZSB1c2VkIHRvIHJlYnVpbGQgbGlidG9v bCB3aGVuIG5lZWRlZAorK0xJQlRPT0xfREVQUz0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgorKwor KyMgQWx3YXlzIHVzZSBvdXIgb3duIGxpYnRvb2wuCisrTElCVE9PTD0nJChTSEVMTCkgJCh0b3Bf YnVpbGRkaXIpL2xpYnRvb2wnCisrCisrIyBQcmV2ZW50IG11bHRpcGxlIGV4cGFuc2lvbgorKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtz IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzLi4uICIgPiY2 OyB9CisrTE5fUz0kYXNfbG5fcworK2lmIHRlc3QgIiRMTl9TIiA9ICJsbiAtcyI7IHRoZW4KKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8g InllcyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogbm8sIHVzaW5nICRMTl9TIiA+JjUKKyskYXNfZWNobyAibm8sIHVzaW5nICRMTl9TIiA+JjY7 IH0KKytmaQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy ICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpLi4uICIgPiY2OyB9Cisrc2V0IHggJHtN QUtFLW1ha2V9CisrYWNfbWFrZT1gJGFzX2VjaG8gIiQyIiB8IHNlZCAncy8rL3AvZzsgcy9bXmEt ekEtWjAtOV9dL18vZydgCisraWYgeyBhc192YXI9YWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1f c2V0OyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QubWFrZSA8 PFxfQUNFT0YKKytTSEVMTCA9IC9iaW4vc2gKKythbGw6CisrCUBlY2hvICdAQEAlJSU9JChNQUtF KT1AQEAlJSUnCisrX0FDRU9GCisrIyBHTlUgbWFrZSBzb21ldGltZXMgcHJpbnRzICJtYWtlWzFd OiBFbnRlcmluZy4uLiIsIHdoaWNoIHdvdWxkIGNvbmZ1c2UgdXMuCisrY2FzZSBgJHtNQUtFLW1h a2V9IC1mIGNvbmZ0ZXN0Lm1ha2UgMj4vZGV2L251bGxgIGluCisrICAqQEBAJSUlPT8qPUBAQCUl JSopCisrICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PXllczs7CisrICAq KQorKyAgICBldmFsIGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD1ubzs7CisrZXNhYwor K3JtIC1mIGNvbmZ0ZXN0Lm1ha2UKKytmaQorK2lmIGV2YWwgdGVzdCBcJGFjX2N2X3Byb2dfbWFr ZV8ke2FjX21ha2V9X3NldCA9IHllczsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysgIFNFVF9NQUtF PQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK KyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgU0VUX01BS0U9Ik1BS0U9JHtNQUtFLW1ha2V9Igor K2ZpCisrCisrCisrIyBTZXQgZGVmYXVsdCBsYW5ndWFnZSB0byBDKysKKythY19leHQ9Y3BwCisr YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK KysKKysKKysjIENoZWNrIGZvciBleGNlcHRpb25zIHN3aXRjaAorKyMgQ2hlY2sgd2hldGhlciAt LWVuYWJsZS1leGNlcHRpb25zIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9leGNlcHRp b25zK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9leGNlcHRpb25zOwor K2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBTT0NJX0VYQ0VQVElPTlMgMQor K19BQ0VPRgorKworK2ZpCisrCisrdGVzdCAieCRlbmFibGVfZXhjZXB0aW9ucyIgIT0geG5vICYm IGVuYWJsZV9leGNlcHRpb25zPXllcworK3Rlc3QgIngkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiAh PSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCisrCisrIyBDaGVjayBmb3IgaW5mbyBwYWdl cworKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1pbmZvLWRvYyB3YXMgZ2l2ZW4uCisraWYgdGVz dCAiJHtlbmFibGVfaW5mb19kb2Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5h YmxlX2luZm9fZG9jOworK2ZpCisrCisrdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAm JiBlbmFibGVfaW5mb19kb2M9eWVzCisrCisrCisrIyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNo CisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWh0bWwtZG9jIHdhcyBnaXZlbi4KKytpZiB0ZXN0 ICIke2VuYWJsZV9odG1sX2RvYytzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFi bGVfaHRtbF9kb2M7CisrZmkKKysKKyt0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0geG5vICYm IGVuYWJsZV9odG1sX2RvYz15ZXMKKysKKysKKysjIFByb3ZpZGUgLS13aXRoLWRvY2RpcgorKwor KyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZG9jZGlyIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dp dGhfZG9jZGlyK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX2RvY2RpcjsgRE9D X0RJUj0iJHdpdGh2YWwiCisrZWxzZQorKyAgRE9DX0RJUj0iIgorK2ZpCisrCisraWYgdGVzdCAi eCRET0NfRElSIiAhPSB4OyB0aGVuCisrICBkb2NkaXI9IiRET0NfRElSIgorK2Vsc2UKKysgIGRv Y2Rpcj0iJHtkYXRhZGlyfS9kb2MvJFBBQ0tBR0UtJFZFUlNJT04iCisrZmkKKysKKysKKysKKysj IENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNPQ0kgaXRzZWxmKQorKyMgQ2hl Y2sgd2hldGhlciAtLWVuYWJsZS1idXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVuLgorK2lmIHRlc3Qg IiR7ZW5hYmxlX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFs PSRlbmFibGVfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhl bgorKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KKysgICBlbHNlCisrICAgICAgZW5h YmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgICBmaQorK2Vsc2UKKysgICBlbmFibGVfYnVycmll ZF9oZWFkZXJzPW5vCisrZmkKKysKKysjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMg Z2VuZXJhdGlvbgorK2VuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCisrIGlmIHRlc3QgIngkZW5h YmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICBTT0NJX0hFQURFUlNfQlVSSUVE X1RSVUU9CisrICBTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJworK2Vsc2UKKysgIFNPQ0lf SEVBREVSU19CVVJJRURfVFJVRT0nIycKKysgIFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0U9Cisr ZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhl bgorKyAgIENQUEZMQUdTPSItRFNPQ0lfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgorK2ZpCisr CisrIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBNeVNRTCBjbGllbnQpCisr IyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLW15c3FsLWJ1cnJpZWQtaGVhZGVycyB3YXMgZ2l2ZW4u CisraWYgdGVzdCAiJHtlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzK3NldH0iID0gc2V0OyB0 aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0 ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrCWVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9 bm8KKysgICBlbHNlCisrCWVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrICAgZmkK KytlbHNlCisrICAgZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz1ubworK2ZpCisrCisrIyBU ZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KKytlbmFibGVfbXlzcWxf YnVycmllZF9oZWFkZXJzPXllcworKyBpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hl YWRlcnMiID0geHllczsgdGhlbgorKyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPQor KyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycKKytlbHNlCisrICBTT0NJX01Z U1FMX0hFQURFUlNfQlVSSUVEX1RSVUU9JyMnCisrICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE X0ZBTFNFPQorK2ZpCisrCisrCisraWYgdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFk ZXJzIiA9IHh5ZXM7IHRoZW4KKysgICBDUFBGTEFHUz0iLURTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEICRDUFBGTEFHUyIKKytmaQorKworKyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVz IChmb3IgUG9zdEdyZVNRTCBjbGllbnQpCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXBvc3Rn cmVzcWwtYnVycmllZC1oZWFkZXJzIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9wb3N0 Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRl bmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9 IG5vOyB0aGVuCisrCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubworKyAgIGVs c2UKKysJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpCisrZWxz ZQorKyAgIGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubworK2ZpCisrCisrIyBU ZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KKytlbmFibGVfcG9zdGdy ZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrIGlmIHRlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxf YnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJT X0JVUklFRF9UUlVFPQorKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScj JworK2Vsc2UKKysgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPScjJworKyAg U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQorK2ZpCisrCisrCisraWYgdGVz dCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgorKyAg IENQUEZMQUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCisr ZmkKKysKKysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6Ly93d3cuYm9vc3Qu b3JnKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLWJvb3N0IHdhcyBnaXZlbi4K KytpZiB0ZXN0ICIke3dpdGhfYm9vc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdp dGhfYm9vc3Q7CisrICAgICAgICAgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJubyI7IHRo ZW4KKysJCSAgICAgICAgICAgIHdhbnRfYm9vc3Q9Im5vIgorKyAgICAgICAgICAgICAgICBlbGlm IHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICB3YW50 X2Jvb3N0PSJ5ZXMiCisrICAgICAgICAgICAgICAgICAgICBhY19ib29zdF9wYXRoPSIiCisrICAg ICAgICAgICAgICAgIGVsc2UKKysJCQkgICAgICAgIHdhbnRfYm9vc3Q9InllcyIKKysgICAgICAg ICAgICAJCWFjX2Jvb3N0X3BhdGg9IiR3aXRodmFsIgorKwkJICAgICAgICBmaQorKworK2Vsc2UK KysgIHdhbnRfYm9vc3Q9InllcyIKKytmaQorKworKworKyMgICAgQUNfQ0FOT05JQ0FMX0JVSUxE CisrQk9PU1RfTURXX1ZFUlNJT049IjEtMzMtMSIKKytCT09TVExJQl9NRFdfVkVSU0lPTj0iMV8z M18xIgorKworKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5ZXMiOyB0aGVuCisrCQlib29z dF9saWJfdmVyc2lvbl9yZXE9MS4zMworKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3Nob3J0ZW49 YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwuWzAtOV0qXCknYAorKwkJ Ym9vc3RfbGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEg OiAnXChbMC05XSpcKSdgCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJGJv b3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKwkJYm9vc3RfbGli X3ZlcnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1sw LTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKKysJCWlmIHRlc3QgIngkYm9vc3RfbGliX3ZlcnNp b25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCisrCQkJYm9vc3RfbGliX3ZlcnNpb25fcmVx X3N1Yl9taW5vcj0iMCIKKysgICAgCWZpCisrCQlXQU5UX0JPT1NUX1ZFUlNJT049YGV4cHIgJGJv b3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29zdF9saWJfdmVyc2lv bl9yZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yYAor KwkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBib29zdGxpYiA+PSAk Ym9vc3RfbGliX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgYm9v c3RsaWIgPj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQorKwkJc3VjY2VlZGVk PW5vCisrCisrCQkJCQkJCQkJCWlmIHRlc3QgLWQgL2xpYjY0OyB0aGVuCisrCQkJQk9PU1RfTElC RElSVFlQRT0ibGliNjQiCisrCQllbHNlCisrCQkJQk9PU1RfTElCRElSVFlQRT0ibGliIgorKwkJ ZmkKKysJCWlmIHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIjsgdGhlbgorKwkJCWlmIHRlc3Qg IiRCT09TVF9MSUJESVJUWVBFIiA9PSAibGliNjQiOyB0aGVuCisrCQkJCWlmIHRlc3QgLWQgIiRh Y19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0 aC8kQk9PU1RfTElCRElSVFlQRSI7IHRoZW4KKysJICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9 Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCWVsc2UKKysgICAgICAg ICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgorKwkJCQlmaQor KwkJCWVsc2UKKysJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC9saWIiCisrCQkJZmkK KysJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZSIKKysJCWVsc2UKKysJ CQlmb3IgYWNfYm9vc3RfcGF0aF90bXAgaW4gL3VzciAvdXNyL2xvY2FsIC9vcHQgL25hc3Rvb2xz L2Jvb3N0IDsgZG8KKysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUv Ym9vc3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IjsgdGhl bgorKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZ UEUiCisrCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUiCisr CQkJCQlicmVhazsKKysJCQkJZmkKKysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1w L2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IiAmJiB0ZXN0IC1yICIkYWNf Ym9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04vYm9vc3QiOyB0 aGVuCisrCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElCRElS VFlQRSIKKysJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9i b29zdC0kQk9PU1RfTURXX1ZFUlNJT04iCisrCisrCQkJCQkJCQkJCWlmIHRlc3QgLWQgIiRhY19i b29zdF9wYXRoX3RtcC9saWIiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiICYm IHRlc3QgISAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYjY0IjsgdGhlbgorKwkJCQkJCUJPT1NU X0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIKKysJCQkJCQllY2hvICJIYWNrOiAkQk9P U1RfTElCUyIKKysJCQkJCWZpCisrCQkJCQlicmVhazsKKysJCQkJZmkKKysJCQlkb25lCisrCQlm aQorKworKwkJQ1BQRkxBR1NfU0FWRUQ9IiRDUFBGTEFHUyIKKysJCUNQUEZMQUdTPSIkQ1BQRkxB R1MgJEJPT1NUX0NGTEFHUyIKKysJCWV4cG9ydCBDUFBGTEFHUworKworKwkJTERGTEFHU19TQVZF RD0iJExERkxBR1MiCisrCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKKysJCWV4cG9y dCBMREZMQUdTCisrCisrICAgICAJY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog Y29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysKKysjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+CisrCisraW50CisrbWFpbiAo KQorK3sKKysKKysjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCisrLy8g RXZlcnl0aGluZyBpcyBva2F5CisrI2Vsc2UKKysjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRv byBvbGQKKysjZW5kaWYKKysKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QuJGFjX29iamV4dDsgdGhlbgorKworKyAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCQkgc3VjY2Vl ZGVkPXllcworKwkJIGZvdW5kX3N5c3RlbT15ZXMKKysgICAgICAgICA6CisrCisrZWxzZQorKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworKworK2ZpCisrCisrcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCisrCQkJCQkJ aWYgdGVzdCAieCRzdWNjZWVkZWQiICE9ICJ4eWVzIjsgdGhlbgorKwkJCV92ZXJzaW9uPTAKKysJ CQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KKysgICAgICAgICAgICAgICAg Qk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJaWYg dGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoIjsgdGhl bgorKwkJCQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtKiAy Pi9kZXYvbnVsbGA7IGRvCisrCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJzIyRh Y19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdzL18v Li8nYAorKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25gCisr CQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgorKwkJCQkJCQlfdmVyc2lvbj0k X3ZlcnNpb25fdG1wCisrCQkJCQkJZmkKKysJCQkJCQlWRVJTSU9OX1VOREVSU0NPUkU9YGVjaG8g JF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKKysJCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jv b3N0X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgorKwkJCQkJZG9uZQor KwkJCQlmaQorKwkJCWVsc2UKKysJCQkJZm9yIGFjX2Jvb3N0X3BhdGggaW4gL3VzciAvdXNyL2xv Y2FsIC9vcHQgOyBkbworKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3Qg LXIgIiRhY19ib29zdF9wYXRoIjsgdGhlbgorKwkJCQkJCWZvciBpIGluIGBscyAtZCAkYWNfYm9v c3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbworKwkJCQkJCQlfdmVyc2lv bl90bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3MvXC9pbmNs dWRlXC9ib29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCisrCQkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92 ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25gCisrCQkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIx IiA7IHRoZW4KKysJCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKKysJCQkJCQkJCWJlc3Rf cGF0aD0kYWNfYm9vc3RfcGF0aAorKwkJCQkJCQlmaQorKwkJCQkJCWRvbmUKKysJCQkJCWZpCisr CQkJCWRvbmUKKysKKysJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8IHNl ZCAncy9cLi9fLydgCisrCQkJCUJPT1NUX0NGTEFHUz0iLUkkYmVzdF9wYXRoL2luY2x1ZGUvYm9v c3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKKysJCQkJQk9PU1RfTElCUz0iLUwkYmVzdF9wYXRoLyRC T09TVF9MSUJESVJUWVBFIgorKworKwkgICAgCQlpZiB0ZXN0ICJ4JEJPT1NUX1JPT1QiICE9ICJ4 IjsgdGhlbgorKwkJCQkJaWYgdGVzdCAtZCAiJEJPT1NUX1JPT1QiICYmIHRlc3QgLXIgIiRCT09T VF9ST09UIjsgdGhlbgorKwkJCQkJCXZlcnNpb25fZGlyPWBleHByIC8vJEJPT1NUX1JPT1QgOiAn LiovXCguKlwpJ2AKKysJCQkJCQlzdGFnZV92ZXJzaW9uPWBlY2hvICR2ZXJzaW9uX2RpciB8IHNl ZCAncy9ib29zdF8vLycgfCBzZWQgJ3MvXy8uL2cnYAorKwkJCQkJCXN0YWdlX3ZlcnNpb25fc2hv cnRlbj1gZXhwciAkc3RhZ2VfdmVyc2lvbiA6ICdcKFswLTldKlwuWzAtOV0qXCknYAorKwkJCQkJ CVZfQ0hFQ0s9YGV4cHIgJHN0YWdlX3ZlcnNpb25fc2hvcnRlbiBcPlw9ICRfdmVyc2lvbmAKKysJ CQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCisrCQkJCQkJCXsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBXZSB3aWxsIHVzZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IGZyb20g JEJPT1NUX1JPT1QiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdlIHdpbGwgdXNlIGEgc3RhZ2Vk IGJvb3N0IGxpYnJhcnkgZnJvbSAkQk9PU1RfUk9PVCIgPiY2O30KKysJCQkJCQkJQk9PU1RfQ0ZM QUdTPSItSSRCT09TVF9ST09UIgorKwkJCQkJCQlCT09TVF9MSUJTPSItTCRCT09TVF9ST09UL3N0 YWdlLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQkJCWZpCisrCQkJCQlmaQorKwkgICAgCQlmaQor KwkJCWZpCisrCisrCQkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgorKwkJCWV4 cG9ydCBDUFBGTEFHUworKwkJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9MSUJTIgorKwkJCWV4 cG9ydCBMREZMQUdTCisrCisrICAgICAJCWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrCisrI2luY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgorKworK2ludAorK21h aW4gKCkKKyt7CisrCisrI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgor Ky8vIEV2ZXJ5dGhpbmcgaXMgb2theQorKyNlbHNlCisrIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBp cyB0b28gb2xkCisrI2VuZGlmCisrCisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9G Cisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUi CisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3Qu ZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1 CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxh ZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysKKysgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiB5ZXMgKCRfdmVyc2lvbikiID4mNQorKyRhc19lY2hvICJ5ZXMgKCRf dmVyc2lvbikiID4mNjsgfQorKwkJIHN1Y2NlZWRlZD15ZXMKKysgICAgICAgICA6CisrCisrZWxz ZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworKyAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vICgkX3ZlcnNpb24pIiA+JjUKKyskYXNfZWNobyAi bm8gKCRfdmVyc2lvbikiID4mNjsgfQorKyAgICAgICAgIDoKKysKKytmaQorKworK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJ ZmkKKysKKysJCWlmIHRlc3QgIiRzdWNjZWVkZWQiICE9ICJ5ZXMiIDsgdGhlbgorKwkJCWlmIHRl c3QgIiRfdmVyc2lvbiIgPSAiMCIgOyB0aGVuCisrCQkJCXsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBXZSBjb3VsZCBub3QgZGV0ZWN0IHRoZSBib29zdCBsaWJyYXJpZXMgKHZl cnNpb24gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuIG9yIGhpZ2hlcikuIElmIHlvdSBo YXZlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgKHN0aWxsIG5vdCBpbnN0YWxsZWQpIHBsZWFzZSBz cGVjaWZ5IFwkQk9PU1RfUk9PVCBpbiB5b3VyIGVudmlyb25tZW50IGFuZCBkbyBub3QgZ2l2ZSBh IFBBVEggdG8gLS13aXRoLWJvb3N0IG9wdGlvbi4gIElmIHlvdSBhcmUgc3VyZSB5b3UgaGF2ZSBi b29zdCBpbnN0YWxsZWQsIHRoZW4gY2hlY2sgeW91ciB2ZXJzaW9uIG51bWJlciBsb29raW5nIGlu IDxib29zdC92ZXJzaW9uLmhwcD4uIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogV2Ug Y291bGQgbm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9saWJf dmVyc2lvbl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBib29z dCBsaWJyYXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NUX1JP T1QgaW4geW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0aC1i b29zdCBvcHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVkLCB0 aGVuIGNoZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lvbi5o cHA+LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysJCQllbHNlCisrCQkJ CXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAnWW91ciBib29zdCBsaWJyYXJp ZXMgc2VlbXMgdG8gb2xkICh2ZXJzaW9uICRfdmVyc2lvbikuICBXZSBuZWVkIGF0IGxlYXN0ICRi b29zdF9saWJfdmVyc2lvbl9zaG9ydGVuJyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 ICdZb3VyIGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBvbGQgKHZlcnNpb24gJF92ZXJzaW9uKS4g IFdlIG5lZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4nIiA+JjI7fQorKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKwkJCWZpCisrCQllbHNlCisrCisrCisrCisrY2F0 ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQk9PU1QgLyoqLworK19BQ0VP RgorKworKworKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy IHRoZSBCb29zdDo6RmlsZXN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2Vj aG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0gbGlicmFyeSBpcyBh dmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0r c2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvZmlsZXN5c3RlbS9wYXRoLmhwcD4KKytp bnQKKyttYWluICgpCisreworK3VzaW5nIG5hbWVzcGFjZSBib29zdDo6ZmlsZXN5c3RlbTsKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggbXlfcGF0aCggImZvby9iYXIv ZGF0YS50eHQiICk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g MDsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhl bgorKyAgYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbT15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09bm8KKytmaQorKworK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAor KwkJIAkJICAgICAgICAJCQlhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycK KythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxl cl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA+JjUKKyskYXNf ZWNobyAiJGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0iID4mNjsgfQorKwkJCWlmIHRlc3QgIiRheF9j dl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8 PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQk9PU1RfRklMRVNZU1RFTSAvKiovCisrX0FDRU9GCisr CisrCQkJCUJOPWJvb3N0X2ZpbGVzeXN0ZW0KKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRD QyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1t dC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1n dyAkQk4tbWd3LW10ICRCTi1tZ3ctbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJ ICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNf dHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGlu IC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhf bGliLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwk eyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwk YXhfbGliICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25m ZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK KytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICBy ZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewor KwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRl c3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xpYj1u byIKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAg ICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xp Yl9zYXZlX0xJQlMKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQor KwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Cisr YXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192 YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NUX0ZJ TEVTWVNURU1fTElCPSItbCRheF9saWIiICBsaW5rX2ZpbGVzeXN0ZW09InllcyIgYnJlYWsKKytl bHNlCisrICBsaW5rX2ZpbGVzeXN0ZW09Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlp ZiB0ZXN0ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2 O30KKysJCQkJZmkKKysJCQlmaQorKworKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZh aWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UHJv Z3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAi JHtheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9 JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19s aW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudQorKworKwkJCSAgICAgICAgICAgICAgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGJvb3N0L3Byb2dyYW1fb3B0aW9u cy5ocHA+CisraW50CisrbWFpbiAoKQorK3sKKytib29zdDo6cHJvZ3JhbV9vcHRpb25zOjpvcHRp b25zX2Rlc2NyaXB0aW9uIGdlbmVyaWMoIkdlbmVyaWMgb3B0aW9ucyIpOworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrICA7CisrICByZXR1cm4gMDsKKyt9 CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFj X2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2Fj CisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgor KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+ Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVz dC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93 ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jvb3N0X3Byb2dyYW1f b3B0aW9ucz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2 X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucz1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJICAgICAgICAgICAg ICAgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0n JENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xp bms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9j eHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zIiA+JjUKKyskYXNfZWNobyAiJGF4 X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPiY2OyB9CisrCQkJaWYgdGVzdCAiJGF4X2N2X2Jv b3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8 XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMgLyoqLworK19BQ0VP RgorKworKwkJCQlCTj1ib29zdF9wcm9ncmFtX29wdGlvbnMKKysJCQkJZm9yIGF4X2xpYiBpbiAk Qk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGli JEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJEND LXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk Qk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk Qk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTjsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1g JGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9 CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwi ID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIK KytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2ludAor K21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9Cisr X0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytp ZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3Nz X2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Cisr ICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorKworK3Jt IC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19l eGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytm aQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIk YXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFsICdh c192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0 ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NUX1BST0dSQU1fT1BUSU9OU19M SUI9Ii1sJGF4X2xpYiIgIGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJ5ZXMiIGJyZWFrCisrZWxzZQor KyAgbGlua19wcm9ncmFtX29wdGlvbnM9Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlp ZiB0ZXN0ICJ4JGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyIiID0gInhubyI7IHRoZW4KKysJCQkJ CXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9s aWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhf bGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5IGlzIGF2 YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlRo cmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3Zf Ym9vc3RfdGhyZWFkK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxB R1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFH UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29t cGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCQkJIENYWEZMQUdTX1NBVkU9 JENYWEZMQUdTCisrCisrCQkJIGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7IHRo ZW4KKysgIAkJCQkgQ1hYRkxBR1M9Ii1wdGhyZWFkcyAkQ1hYRkxBR1MiCisrCQkJIGVsaWYgdGVz dCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCisrCQkJCSBDWFhGTEFHUz0iLW10aHJl YWRzICRDWFhGTEFHUyIKKysJCQkgZWxzZQorKwkJCQlDWFhGTEFHUz0iLXB0aHJlYWQgJENYWEZM QUdTIgorKwkJCSBmaQorKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKyNpbmNsdWRlIDxib29zdC90aHJlYWQvdGhyZWFkLmhwcD4KKytpbnQKKyttYWluICgp CisreworK2Jvb3N0Ojp0aHJlYWRfZ3JvdXAgdGhyZHM7CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gMDsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YK KytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5l cjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFn IiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3RfdGhyZWFkPXllcworK2Vsc2UK KysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9vc3RfdGhyZWFkPW5vCisr ZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKKysJCQkgQ1hYRkxBR1M9JENYWEZMQUdTX1NBVkUKKysJCQkgYWNfZXh0PWNw cAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hY RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3Qu JGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJf Z251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhf Y3ZfYm9vc3RfdGhyZWFkIiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3RocmVhZCIgPiY2 OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5ZXMiOyB0aGVuCisr ICAgICAgICAgICAgICAgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgor KyAJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgorKwkJCSAgIGVs aWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCisrIAkJCQkgIEJPT1NUX0NG TEFHUz0iLW10aHJlYWRzICRCT09TVF9DRkxBR1MiCisrCQkJICAgZWxzZQorKwkJCQkgIEJPT1NU X0NGTEFHUz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIKKysJCQkgICBmaQorKworKworKworK2Nh dCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX1RIUkVBRCAvKiov CisrX0FDRU9GCisrCisrCQkJCUJOPWJvb3N0X3RocmVhZAorKwkJCQlmb3IgYXhfbGliIGluICRC TiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIk Qk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0Mt cyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRC Ti1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk Qk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9 YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsg fQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1c IiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMi CisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisr X0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQK KyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQor K19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Cisr aWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRh Y19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAq KycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16 ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9z c19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAor KyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKyty bSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisr ZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAi JGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAn YXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYg dGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9USFJFQURfTElCPSItbCRh eF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJu byIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAi eG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBs aW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3Qg bGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKwkJCXsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6SU9T dHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9pb3N0cmVhbXMrc2V0fSIgPSBzZXQ7IHRoZW4K KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3Bw CisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBj b25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9n bnUKKysKKysJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMu aC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysj aW5jbHVkZSA8Ym9vc3QvaW9zdHJlYW1zL2ZpbHRlcmluZ19zdHJlYW0uaHBwPgorKwkJCQkJCQkJ CQkJCSAjaW5jbHVkZSA8Ym9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgorKworK2ludAor K21haW4gKCkKKyt7Cisrc3RkOjpzdHJpbmcgIGlucHV0ID0gIkhlbGxvIFdvcmxkISI7CisrCQkJ CQkJCQkJIG5hbWVzcGFjZSBpbyA9IGJvb3N0Ojppb3N0cmVhbXM7CisrCQkJCQkJCQkJIGlvOjpm aWx0ZXJpbmdfaXN0cmVhbSAgaW4oYm9vc3Q6Om1ha2VfaXRlcmF0b3JfcmFuZ2UoaW5wdXQpKTsK KysJCQkJCQkJCQkgcmV0dXJuIDA7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9G Cisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUi CisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3Qu ZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29u ZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1 CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg KGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxh ZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jvb3N0X2lvc3RyZWFtcz15ZXMKKytl bHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X2lvc3RyZWFt cz1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQ UEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hY RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X2lvc3RyZWFtcyIgPiY1 CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9pb3N0cmVhbXMiID4mNjsgfQorKwkJCWlmIHRlc3Qg IngkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA9ICJ4eWVzIjsgdGhlbgorKworK2NhdCA+PmNvbmZk ZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX0lPU1RSRUFNUyAvKiovCisrX0FD RU9GCisrCisrCQkJCUJOPWJvb3N0X2lvc3RyZWFtcworKwkJCQlmb3IgYXhfbGliIGluICRCTiAk Qk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4t JENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAk Qk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1t Z3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4t JENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRh c19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQor K2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9 IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg YWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisr Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FD RU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKytt YWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYg eyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19s aW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIk YWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19j b21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAg ICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAt cmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhl ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkK KythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFz X3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNf dmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVz dCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9JT1NUUkVBTVNfTElCPSItbCRh eF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJu byIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAi eG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBs aW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3Qg bGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKwkJCXsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2Vy aWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24rc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJ CSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSck Q1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGlu az0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4 eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKysjaW5jbHVkZSA8ZnN0cmVhbT4KKysJCQkJCQkJCQkJCQkgI2luY2x1ZGUgPGJv b3N0L2FyY2hpdmUvdGV4dF9vYXJjaGl2ZS5ocHA+CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfaWFy Y2hpdmUuaHBwPgorKworK2ludAorK21haW4gKCkKKyt7Cisrc3RkOjpvZnN0cmVhbSBvZnMoImZp bGVuYW1lIik7CisrCQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2FyY2hpdmUgb2Eob2Zz KTsKKysJCQkJCQkJCQkgcmV0dXJuIDA7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBp bGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRl c3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIg PiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb249 eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29zdF9z ZXJpYWxpemF0aW9uPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3Rfc2Vy aWFsaXphdGlvbiIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uIiA+ JjY7IH0KKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID0gInh5ZXMi OyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQk9P U1RfU0VSSUFMSVpBVElPTiAvKiovCisrX0FDRU9GCisrCisrCQkJCUJOPWJvb3N0X3NlcmlhbGl6 YXRpb24KKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0Mt bXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBs aWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJ T04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWIn J19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig bWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBl dmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJ QlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFpbiAo KTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2Fz ZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBh Y19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy CisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFz X3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgZXZhbCAiJGFz X2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlldmFs ICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRl c3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElC Uz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsn JGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNf cmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAk YXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhl bgorKyAgQk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5 ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua190aHJlYWQ9Im5vIgorK2ZpCisrCisrICAJCQkJZG9u ZQorKwkJCQlCTj1ib29zdF93c2VyaWFsaXphdGlvbgorKwkJCQlmb3IgYXhfbGliIGluICRCTiAk Qk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4t JENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAk Qk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1t Z3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4t JENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRh c19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQor K2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9 IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg YWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisr Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FD RU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKytt YWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19B Q0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYg eyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19s aW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIk YWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19j b21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAg ICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAt cmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhl ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkK KythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFz X3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNf dmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVz dCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUI9 Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua190aHJl YWQ9Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFk IiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQg bm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxk IG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCisr CQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyB3aGV0aGVyIHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rfc2lnbmFscytzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAK KythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2du dQorKworKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5o LiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNp bmNsdWRlIDxib29zdC9zaWduYWwuaHBwPgorKworK2ludAorK21haW4gKCkKKyt7CisrYm9vc3Q6 OnNpZ25hbDx2b2lkICgpPiBzaWc7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAwOworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2Ug IigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAg YWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Cisr CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4k YWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9zaWduYWxzPXllcworK2Vsc2UKKysgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9vc3Rfc2lnbmFscz1ubworK2ZpCisr Cisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k YWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3NpZ25hbHMiID4mNQorKyRhc19lY2hvICIk YXhfY3ZfYm9vc3Rfc2lnbmFscyIgPiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9z aWduYWxzIiA9ICJ4eWVzIjsgdGhlbgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisr I2RlZmluZSBIQVZFX0JPT1NUX1NJR05BTFMgLyoqLworK19BQ0VPRgorKworKwkJCQlCTj1ib29z dF9zaWduYWxzCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4t JENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIk Qk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19W RVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhf bGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0xp YjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJT PSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1h aW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgor K2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQor KyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8 CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJ ICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGV2YWwg IiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJ ZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2Nv bmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAor K0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFs PSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAi JGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Cisr CQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7 IHRoZW4KKysgIEJPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVz IiBicmVhaworK2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUK KysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIg PiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxh YmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RGF0ZV9U aW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9i b29zdF9kYXRlX3RpbWUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvZGF0ZV90aW1l L2dyZWdvcmlhbi9ncmVnb3JpYW5fdHlwZXMuaHBwPgorKworK2ludAorK21haW4gKCkKKyt7Cisr dXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRhdGUgZCgyMDAyLEphbiwxMCk7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytp ZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIx CisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRl c3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9j dl9ib29zdF9kYXRlX3RpbWU9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKwlheF9jdl9ib29zdF9kYXRlX3RpbWU9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9 Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAt byBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxl cl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh eF9jdl9ib29zdF9kYXRlX3RpbWUiID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfZGF0ZV90 aW1lIiA+JjY7IH0KKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgPSAieHll cyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9C T09TVF9EQVRFX1RJTUUgLyoqLworK19BQ0VPRgorKworKwkJCQlCTj1ib29zdF9kYXRlX3RpbWUK KysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAk Qk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4t JENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBk bworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWlu IiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y IG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBp biAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0 ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytM SUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRl ZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysg IDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgk YWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0 dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBy bSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3Rf eCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgZXZhbCAiJGFzX2FjX0xp Yj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlldmFsICIkYXNf YWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28g XAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNf Y2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2Fj X0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+ JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNo byAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAg Qk9PU1RfREFURV9USU1FX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsK KytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlm IHRlc3QgIngkbGlua190aHJlYWQiPSJubyIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2 O30KKysJCQkJZmkKKysJCQlmaQorKworKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5 IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfcmVnZXgr c2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQor KworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvcmVnZXguaHBwPgorKworK2ludAorK21h aW4gKCkKKyt7CisrYm9vc3Q6OnJlZ2V4IHIoKTsgcmV0dXJuIDA7CisrICA7CisrICByZXR1cm4g MDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3Ry eT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK Kytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGls ZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNv bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBj b25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFj X2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jvb3N0X3Jl Z2V4PXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9v c3RfcmVnZXg9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hY Q1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVl eHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9yZWdleCIg PiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9yZWdleCIgPiY2OyB9CisrCQkJaWYgdGVzdCAi eCRheF9jdl9ib29zdF9yZWdleCIgPSAieHllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5o IDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9SRUdFWCAvKiovCisrX0FDRU9GCisrCisr CQkJCUJOPWJvb3N0X3JlZ2V4CisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRD Qy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1n dy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1t Z3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NU TElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2 X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9 JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhl bgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJf c2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2ludAorK21haW4gKCkKKyt7Cisr cmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRh Y19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYwor K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKysk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0 ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9y X2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAt cyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5 ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4K KysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKKysKKysJZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5k U1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2FjX3Jlcz1gZXZh bCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKysk YXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2Fj X0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIg PSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NUX1JFR0VYX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJl YWQ9InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJ CQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJ CXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9s aWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhf bGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxp YnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRo ZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBh Y19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hY IC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9j b21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog Y29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPgorK2ludAorK21haW4g KCkKKyt7CisrdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKKysJCQkJCSAgICAg ICAgICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVz dCBleGFtcGxlIDEiICk7IHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxl IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0 LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4m NQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysg IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2Zs YWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBj b25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3 b3JrPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9v c3RfdW5pdF90ZXN0X2ZyYW1ld29yaz1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIGFjX2V4dD1jcHAK KythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2du dQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2 X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNQorKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rf dW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF91 bml0X3Rlc3RfZnJhbWV3b3JrIiA9ICJ4eWVzIjsgdGhlbgorKworK2NhdCA+PmNvbmZkZWZzLmgg PDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUksgLyoqLwor K19BQ0VPRgorKworKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsKKysgICAgCQlzYXZl ZF9sZGZsYWdzPSIke0xERkxBR1N9IgorKwkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJO LSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQg JEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4t JENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrICAgICAgICAgICAgICAgIExERkxB R1M9IiR7TERGTEFHU30gLWwkYXhfbGliIgorKyAgICAJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBs aWJyYXJ5IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB0aGUgbmFtZSBvZiB0aGUgQm9vc3Q6 OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2 X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSck Q1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19l eGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT ID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysgICAg ICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5o LiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNp bmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+CisraW50CisrbWFpbiAoKQorK3sKKyt1 c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0ZXN0 IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9G Cisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChh Y190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsi KSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29u ZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19j eHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0g JiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBp bGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAg IH07IHRoZW4KKysgIGxpbmtfdGhyZWFkPSJ5ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19t ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf ZXh0ID4mNQorKworKwlsaW5rX3RocmVhZD0ibm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3Qu ZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0 LiRhY19leHQKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn CisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIg PiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA+JjY7IH0K KysgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtzYXZlZF9sZGZsYWdzfSIKKysJCQkgICAgaWYg dGVzdCAieCRsaW5rX3RocmVhZCIgPSAieHllcyI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAg IEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCPSItbCRheF9saWIiCisrCisrCQkJCQlicmVh aworKwkJCQlmaQorKyAgICAgICAgICAgICAgZG9uZQorKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtf dGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCSAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisrCQkJ ZmkKKysJCWZpCisrICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTX1NBVkVEIgorKyAgICAgICAg TERGTEFHUz0iJExERkxBR1NfU0FWRUQiCisrCWZpCisrCisrCisrCisrCisrCisrCisrCisrCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgTXlTUUwgYmFja2VuZCAoQyBjbGllbnQgQVBJ KTogaHR0cDovL3d3dy5teXNxbC5vcmcKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB3aGV0aGVy IC0tZW5hYmxlLWJhY2tlbmQtbXlzcWwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2Jh Y2tlbmRfbXlzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tl bmRfbXlzcWw7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgCSBlbmFi bGVfYmFja2VuZF9teXNxbD1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX215c3Fs PXllcworKyAgICAgIGZpCisrZWxzZQorKyAgIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vCisrCisr ZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9ICJ4eWVzIjsgdGhl bgorKyAgIE1ZU1FMX0RJUlM9Im15c3FsIgorKyAgIE1ZU1FMX1JFUV9WRVJTSU9OPSIzLjAuMCIK KysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLW15c3FsIHdhcyBnaXZlbi4KKytpZiB0ZXN0 ICIke3dpdGhfbXlzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhfbXlzcWw7 CisrCU1ZU1FMX2luY19jaGVjaz0iJHdpdGhfbXlzcWwvaW5jbHVkZSIKKysgICAgICAgIGlmIHRl c3QgIiR3aXRodmFsIiA9ICJubyI7IHRoZW4KKysgICAgICAgICAgICB3YW50X215c3FsPSJubyIK KysgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAgICAgICAg ICB3YW50X215c3FsPSJ5ZXMiCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgd2FudF9teXNx bD0ieWVzIgorKyAgICAgICAgICAgIE1ZU1FMX0NPTkZJRz0iJHdpdGh2YWwiCisrICAgICAgICBm aQorKworK2Vsc2UKKysgIHdhbnRfbXlzcWw9InllcyIKKysJTVlTUUxfaW5jX2NoZWNrPSIvdXNy L2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0IgorKworK2ZpCisrCisrCisrICAgIE1ZU1FMX0NGTEFH Uz0iIgorKyAgICBNWVNRTF9MREZMQUdTPSIiCisrICAgIE1ZU1FMX1ZFUlNJT049IiIKKysKKysK KysgICAgaWYgdGVzdCAiJHdhbnRfbXlzcWwiID0gInllcyI7IHRoZW4KKysKKysgICAgICAgIGlm IHRlc3QgLXogIiRNWVNRTF9DT05GSUciIC1vIHRlc3Q7IHRoZW4KKysgICAgICAgICAgICAjIEV4 dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm15c3FsX2NvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IG15c3FsX2NvbmZpZzsgYWNfd29yZD0k MgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7YWNfY3ZfcGF0aF9NWVNRTF9DT05GSUcrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2FzZSAkTVlTUUxfQ09ORklHIGluCisr ICBbXFwvXSogfCA/OltcXC9dKikKKysgIGFjX2N2X3BhdGhfTVlTUUxfQ09ORklHPSIkTVlTUUxf Q09ORklHIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKysg IDs7CisrICAqKQorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2Zv ciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAi JGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Ijsg fTsgdGhlbgorKyAgICBhY19jdl9wYXRoX01ZU1FMX0NPTkZJRz0iJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisr ZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIDs7CisrZXNhYworK2ZpCisrTVlTUUxfQ09O RklHPSRhY19jdl9wYXRoX01ZU1FMX0NPTkZJRworK2lmIHRlc3QgLW4gIiRNWVNRTF9DT05GSUci OyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTVlTUUxfQ09O RklHIiA+JjUKKyskYXNfZWNobyAiJE1ZU1FMX0NPTkZJRyIgPiY2OyB9CisrZWxzZQorKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIg PiY2OyB9CisrZmkKKysKKysKKysgICAgICAgIGZpCisrCisrICAgICAgICAgICAgICAgIGlmIHRl c3QgISAteCAiJE1ZU1FMX0NPTkZJRyI7IHRoZW4KKysgICAgICAgICAgICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogJE1ZU1FMX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBp dCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogJE1ZU1FMX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJs ZSBmaWxlIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICAgICAgICAg IE1ZU1FMX0NPTkZJRz0ibm8iCisrICAgICAgICAgICAgZm91bmRfbXlzcWw9Im5vIgorKyAgICAg ICAgZmkKKysKKysgICAgICAgIGlmIHRlc3QgIiRNWVNRTF9DT05GSUciICE9ICJubyI7IHRoZW4K KysgICAgICAgICAgICAjCisrICAgICAgICAgICAgIyBMb29rIGZvciBNeVNRTCBDIEFQSSBoZWFk ZXJzCisrICAgICAgICAgICAgIworKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeS4uLiAiID4mNjsgfQorKyAg ICAgICAgICAgIE1ZU1FMX2luY2Rpcj0KKysgICAgICAgICAgICBmb3IgbXlzcWxfaW5jX2RpciBp biAkTVlTUUxfaW5jX2NoZWNrCisrICAgICAgICAgICAgZG8KKysgICAgICAgICAgICAgICAgaWYg dGVzdCAtZCAiJG15c3FsX2luY19kaXIiIFwKKysgICAgICAgICAgICAgICAgJiYgdGVzdCAtZiAi JG15c3FsX2luY19kaXIvbXlzcWwvbXlzcWwuaCIKKysgICAgICAgICAgICAgICAgdGhlbgorKyAg ICAgICAgICAgICAgICAgICAgTVlTUUxfaW5jZGlyPSRteXNxbF9pbmNfZGlyCisrICAgICAgICAg ICAgICAgICAgICBicmVhaworKyAgICAgICAgICAgICAgICBmaQorKyAgICAgICAgICAgIGRvbmUK KysKKysgICAgICAgICAgICBpZiB0ZXN0IC16ICIkTVlTUUxfaW5jZGlyIgorKyAgICAgICAgICAg IHRoZW4KKysgICAgICAgICAgICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IERpZG4ndCBmaW5kIHRoZSBNeVNRTCBpbmNsdWRlIGRpciBpbiAnJE1ZU1FMX2luY19jaGVj ayciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBEaWRuJ3QgZmluZCB0aGUgTXlTUUwg aW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQorKyAgICAgICAgICAgIGZpCisrCisrICAgICAgICAgICAgY2FzZSAiJE1Z U1FMX2luY2RpciIgaW4KKysgICAgICAgICAgICAgICAgLyogKSA7OworKyAgICAgICAgICAgICAg ICAqICkgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBUaGUgTXlTUUwgaW5j bHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4i ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBUaGUgTXlTUUwgaW5jbHVkZSBkaXJlY3Rv cnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mMjt9CisrICAg eyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7CisrICAgICAgICAgICAgZXNhYworKworKyAgICAg ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRNWVNRTF9pbmNkaXIi ID4mNQorKyRhc19lY2hvICIkTVlTUUxfaW5jZGlyIiA+JjY7IH0KKysKKysgICAgICAgICAgICBp ZiB0ZXN0ICIkTVlTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCisrICAgICAgICAg ICAgICBNWVNRTF9DRkxBR1M9IiIKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICBN WVNRTF9DRkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgorKyAgICAgICAgICAgIGZpCisrCisrICAg ICAgICAgICAgTVlTUUxfTERGTEFHUz0iYCRNWVNRTF9DT05GSUcgLS1saWJzYCIKKysKKysgICAg ICAgICAgICBNWVNRTF9WRVJTSU9OPWAkTVlTUUxfQ09ORklHIC0tdmVyc2lvbmAKKysKKysKKytj YXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9NWVNRTCAxCisrX0FDRU9G CisrCisrCisrICAgICAgICAgICAgZm91bmRfbXlzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysg ICAgICAgICAgICBmb3VuZF9teXNxbD0ibm8iCisrICAgICAgICBmaQorKyAgICBmaQorKworKwor KworKyAgICBteXNxbF92ZXJzaW9uX3JlcT0kTVlTUUxfUkVRX1ZFUlNJT04KKysKKysgICAgaWYg dGVzdCAiJGZvdW5kX215c3FsIiA9ICJ5ZXMiIC1hIC1uICIkbXlzcWxfdmVyc2lvbl9yZXEiOyB0 aGVuCisrCisrICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYg TXlTUUwgdmVyc2lvbiBpcyA+PSAkbXlzcWxfdmVyc2lvbl9yZXEiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGlmIE15U1FMIHZlcnNpb24gaXMgPj0gJG15c3FsX3ZlcnNpb25fcmVxLi4uICIg PiY2OyB9CisrCisrICAgICAgICAgICAgICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWFq b3I9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAorKyAgICAgICAgbXlz cWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1swLTldKlwu XChbMC05XSpcKSdgCisrICAgICAgICBteXNxbF92ZXJzaW9uX3JlcV9taWNybz1gZXhwciAkbXlz cWxfdmVyc2lvbl9yZXEgOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAg aWYgdGVzdCAieCRteXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRoZW4KKysgICAgICAg ICAgICBteXNxbF92ZXJzaW9uX3JlcV9taWNybz0iMCIKKysgICAgICAgIGZpCisrCisrICAgICAg ICBteXNxbF92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxX21ham9y IFwqIDEwMDAwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG15 c3FsX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXCsgJG15c3FsX3ZlcnNpb25fcmVxX21pY3JvYAorKworKyAgICAgICAgICAg ICAgICAgICAgICAgIG15c3FsX3ZlcnNpb25fbWFqb3I9YGV4cHIgJE1ZU1FMX1ZFUlNJT04gOiAn XChbMC05XSpcKSdgCisrICAgICAgICBteXNxbF92ZXJzaW9uX21pbm9yPWBleHByICRNWVNRTF9W RVJTSU9OIDogJ1swLTldKlwuXChbMC05XSpcKSdgCisrICAgICAgICBteXNxbF92ZXJzaW9uX21p Y3JvPWBleHByICRNWVNRTF9WRVJTSU9OIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AK KysgICAgICAgIGlmIHRlc3QgIngkbXlzcWxfdmVyc2lvbl9taWNybyIgPSAieCI7IHRoZW4KKysg ICAgICAgICAgICBteXNxbF92ZXJzaW9uX21pY3JvPSIwIgorKyAgICAgICAgZmkKKysKKysgICAg ICAgIG15c3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRteXNxbF92ZXJzaW9uX21ham9yIFwqIDEw MDAwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG15c3FsX3Zl cnNpb25fbWlub3IgXCogMTAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcKyAkbXlzcWxfdmVyc2lvbl9taWNyb2AKKysKKysgICAgICAgIG15c3FsX3ZlcnNpb25fY2hl Y2s9YGV4cHIgJG15c3FsX3ZlcnNpb25fbnVtYmVyIFw+XD0gJG15c3FsX3ZlcnNpb25fcmVxX251 bWJlcmAKKysgICAgICAgIGlmIHRlc3QgIiRteXNxbF92ZXJzaW9uX2NoZWNrIiA9ICIxIjsgdGhl bgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIg PiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrICAgICAgICBlbHNlCisrICAgICAgICAgICAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJu byIgPiY2OyB9CisrICAgICAgICBmaQorKyAgICBmaQorKworKworKworKworKworK2ZpCisrIGlm IHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllczsgdGhlbgorKyAgSEFWRV9NWVNR TF9UUlVFPQorKyAgSEFWRV9NWVNRTF9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX01ZU1FMX1RS VUU9JyMnCisrICBIQVZFX01ZU1FMX0ZBTFNFPQorK2ZpCisrCisrI01ZU1FMX0RJUlM9Im15c3Fs IgorKworKworKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgT3JhY2xlIGJhY2tl bmQKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYmFja2VuZC1vcmFj bGUgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfb3JhY2xlK3NldH0iID0g c2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX29yYWNsZTsgIGlmIHRlc3Qg IiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysgICAgICAJIGVuYWJsZV9iYWNrZW5kX29yYWNsZT1u bworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX29yYWNsZT15ZXMKKysgICAgICBmaQor K2Vsc2UKKysgICBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KKysKKytmaQorKworKworK2lmIHRl c3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9ICJ4eWVzIjsgdGhlbgorKyAgIE9SQUNMRV9E SVJTPSJvcmFjbGUiCisrICAgT1JBQ0xFX09DSV9SRVFfVkVSU0lPTj0iOS4wIgorKworKworKwor KyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtb3JhY2xlIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dp dGhfb3JhY2xlK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX29yYWNsZTsKKysg ICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgaWYg dGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgorKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9t ZV9kaXI9IiRPUkFDTEVfSE9NRSIKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICAg IG9yYWNsZV9ob21lX2Rpcj0iIgorKyAgICAgICAgICAgIGZpCisrICAgICAgICBmaQorKworK2Vs c2UKKysKKysgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KKysgICAgICAg ICAgICBvcmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKKysgICAgICAgIGVsc2UKKysgICAg ICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKKysgICAgICAgIGZpCisrCisrCisrZmkKKysKKysK KysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLW9yYWNsZS1pbmNsdWRlIHdhcyBnaXZlbi4KKytp ZiB0ZXN0ICIke3dpdGhfb3JhY2xlX2luY2x1ZGUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2 YWw9JHdpdGhfb3JhY2xlX2luY2x1ZGU7IG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIkd2l0aHZh bCIKKytlbHNlCisrICBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iIgorKworK2ZpCisrCisrCisr IyBDaGVjayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtbGliIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIk e3dpdGhfb3JhY2xlX2xpYitzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9vcmFj bGVfbGliOyBvcmFjbGVfaG9tZV9saWJfZGlyPSIkd2l0aHZhbCIKKytlbHNlCisrICBvcmFjbGVf aG9tZV9saWJfZGlyPSIiCisrCisrZmkKKysKKysKKysgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiIK KysgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIiCisrICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iIgor KworKyAgICAgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ibm8iCisrCisrICAg IGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9kaXIiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0 ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAieWVz IjsgdGhlbgorKworKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0i JG9yYWNsZV9ob21lX2Rpci9yZGJtcy9wdWJsaWMiCisrCisrICAgICAgICAgICAgICAgICAgICAg ICAgb3JhY2xlX2luY2x1ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9kZW1vIgorKwor KyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVfZGly L2xpYiIKKysgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIgPSAieWVzIjsgdGhl bgorKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCisrICAgICAgICBm aQorKworKyAgICBlbGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgLW8gLW4g IiRvcmFjbGVfaG9tZV9saWJfZGlyIjsgdGhlbgorKworKyAgICAgICAgaWYgdGVzdCAiJG9yYWNs ZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIi ICE9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyPSIkb3JhY2xl X2hvbWVfaW5jbHVkZV9kaXIiCisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNs dWRlX2RpciIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19w YXRoPSJ5ZXMiCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21l X2xpYl9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAieWVzIjsgdGhl bgorKyAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVfbGliX2RpciIKKysg ICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIiID0gInllcyI7IHRoZW4KKysg ICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgorKyAgICAgICAgZmkKKysg ICAgZmkKKysKKysgICAgaWYgdGVzdCAiJHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoIiA9ICJ5ZXMi OyB0aGVuCisrICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogT3Jh Y2xlIHN1cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBPcmFjbGUgcGF0aHMgaGF2ZSBiZWVuIHBy b3ZpZGVkLiBcCisrUGxlYXNlLCBsb2NhdGUgT3JhY2xlIGRpcmVjdG9yaWVzIHVzaW5nIC0td2l0 aC1vcmFjbGUgb3IgXAorKy0td2l0aC1vcmFjbGUtaW5jbHVkZSBhbmQgLS13aXRoLW9yYWNsZS1s aWIgb3B0aW9ucy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IE9yYWNsZSBzdXBw b3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4g XAorK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xl IG9yIFwKKystLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlv bnMuIiA+JjI7fQorKyAgICBmaQorKworKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3Jh Y2xlX2luY2x1ZGVfZGlyIiAtYSAtbiAiJG9yYWNsZV9saWJfZGlyIjsgdGhlbgorKworKyAgICAg ICAgc2F2ZWRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKysgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxB R1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgorKworKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1u ICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KKysgICAgICAgICAgICBDUFBGTEFHUz0iJENQ UEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCisrICAgICAgICBmaQorKworKyAgICAgICAg IyBGaWd1cmUgb3V0IGlmIHdlIGFyZSBidWlsZGluZyBvbiB3aW4zMi4KKysgICAgICAgIGNhc2Ug JGhvc3Rfb3MgaW4KKysgICAgICAgICAgICAqbWluZ3czMiogKSBXSU4zMj15ZXMgOzsKKysgICAg ICAgICAgICAqY3lnd2luKiApICBXSU4zMj15ZXMgOzsKKysgICAgICAgICAgICAqKSBXSU4zMj1u byA7OworKyAgICAgICAgZXNhYworKworKyAgICAgICAgaWYgdGVzdCAiJFdJTjMyIiA9ICJubyIK KysgICAgICAgIHRoZW4KKysgICAgICAgICAgICBvY2lfbGlicz0iLWxjbG50c2ggLWxubnoxMSIK KysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBvY2lfbGlicz0iLWxvY2kiCisrICAgICAgICBm aQorKworKyAgICAgICAgc2F2ZWRfTERGTEFHUz0iJExERkxBR1MiCisrICAgICAgICBzYXZlZF9M SUJTPSIkTElCUyIKKysgICAgICAgIG9jaV9sZGZsYWdzPSItTCRvcmFjbGVfbGliX2RpciIKKysg ICAgICAgIExERkxBR1M9IiRMREZMQUdTICRvY2lfbGRmbGFncyIKKysgICAgICAgIExJQlM9IiRM SUJTICRvY2lfbGlicyIKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGlu ICRvcmFjbGVfaW5jbHVkZV9kaXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBPcmFj bGUgT0NJIGhlYWRlcnMgaW4gJG9yYWNsZV9pbmNsdWRlX2Rpci4uLiAiID4mNjsgfQorKworKyAg ICAgICAgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGls ZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2Fj X2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExE RkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19j dl9jeHhfY29tcGlsZXJfZ251CisrCisrICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysKKysgICAgICAgICAgICAvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxvY2kuaD4KKytpbnQK KyttYWluICgpCisreworKworKyNpZiBkZWZpbmVkKE9DSV9NQUpPUl9WRVJTSU9OKQorKyNpZiBP Q0lfTUFKT1JfVkVSU0lPTiA9PSAxMCAmJiBPQ0lfTUlOT1JfVkVSU0lPTiA9PSAyCisrLy8gT3Jh Y2xlIDEwLjIgZGV0ZWN0ZWQKKysjZW5kaWYKKysjZWxpZiBkZWZpbmVkKE9DSV9WN19TWU5UQVgp CisrLy8gT0ssIG9sZGVyIE9yYWNsZSBkZXRlY3RlZAorKy8vIFRPRE8gLSBtbG9za290OiBmaW5k IGJldHRlciBtYWNybyB0byBjaGVjayBmb3Igb2xkZXIgdmVyc2lvbnM7CisrI2Vsc2UKKysjICBl cnJvciBPcmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAorKyNlbmRpZgorKworKworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytp ZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIx CisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRl c3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJy CisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrCisrICAg ICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9Ii1JJG9yYWNsZV9pbmNsdWRlX2RpciIKKysKKysg ICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KKysgICAg ICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiRPUkFDTEVfT0NJX0NGTEFHUyAtSSRvcmFj bGVfaW5jbHVkZV9kaXIyIgorKyAgICAgICAgICAgIGZpCisrCisrICAgICAgICAgICAgb2NpX2hl YWRlcl9mb3VuZD0ieWVzIgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCisrZWxzZQorKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworKyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91 bmQ9Im5vIgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IG5vdCBmb3VuZCIgPiY1CisrJGFzX2VjaG8gIm5vdCBmb3VuZCIgPiY2OyB9CisrCisrCisrZmkK KysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKKysgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdT JworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyI7IHRoZW4K KysKKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y IE9yYWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2RpciIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2Rpci4u LiAiID4mNjsgfQorKworKyAgICAgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAg JENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwor K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKyAgICAgICAgICAg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKworKyAgICAgICAgICAgICAgICAvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKyNpbmNsdWRlIDxvY2kuaD4KKytpbnQKKyttYWluICgpCisreworKworK09DSUVudiog ZW52aCA9IDA7CisrT0NJRW52Q3JlYXRlKCZlbnZoLCBPQ0lfREVGQVVMVCwgMCwgMCwgMCwgMCwg MCwgMCk7CisraWYgKGVudmgpIE9DSUhhbmRsZUZyZWUoZW52aCwgT0NJX0hUWVBFX0VOVik7Cisr CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nh c2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAg YWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Cisr CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRh Y19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRh c190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysKKysgICAgICAg ICAgICAgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9jaV9saWJzIgorKyAg ICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMiCisrICAgICAgICAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIg PiY2OyB9CisrCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworKyAgICAg ICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJubyIKKysgICAgICAgICAgICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm90IGZvdW5kIiA+JjUKKyskYXNfZWNobyAibm90 IGZvdW5kIiA+JjY7IH0KKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2Nv bmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAor KyAgICAgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKyAgICAgICAgZmkKKysKKysgICAgICAgIENQ UEZMQUdTPSIkc2F2ZWRfQ1BQRkxBR1MiCisrICAgICAgICBMREZMQUdTPSIkc2F2ZWRfTERGTEFH UyIKKysgICAgICAgIExJQlM9IiRzYXZlZF9MSUJTIgorKyAgICBmaQorKworKyAgICAgICAgICAg ICAgICBvcmFjbGVfdmVyc2lvbl9yZXE9JE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT04KKysKKysgICAg aWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lfbGliX2ZvdW5kIiA9 ICJ5ZXMiIC1hIFwKKysgICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhlbgorKwor KyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29j aS5oIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJ X01BSk9SX1ZFUlNJT04uKicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQg LWUgJ3MvI2RlZmluZSBPQ0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAgICAg b3JhY2xlX3ZlcnNpb25fbWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01JTk9SX1ZF UlNJT04uKicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2Rl ZmluZSBPQ0lfTUlOT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIE9yYWNsZSBPQ0kgdmVyc2lvbiBpcyA+PSAk b3JhY2xlX3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiBPcmFjbGUg T0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQorKworKyAg ICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV92ZXJzaW9uX21ham9yIiAtYSAtbiAkIm9yYWNsZV92 ZXJzaW9uX21pbm9yIjsgdGhlbgorKworKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0i JG9yYWNsZV92ZXJzaW9uX21ham9yLiRvcmFjbGVfdmVyc2lvbl9taW5vciIKKysKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWFqb3I9YGV4 cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKKysgICAgICAgICAgICBvcmFj bGVfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdbMC05XSpc LlwoWzAtOV0qXCknYAorKworKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9udW1iZXI9 YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9y IFwqIDEwMDBgCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fbnVt YmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBg CisrCisrICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJz aW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAorKyAgICAgICAgICAg IGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNf ZWNobyAieWVzIiA+JjY7IH0KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZp bmUgSEFWRV9PUkFDTEUgMQorK19BQ0VPRgorKworKyAgICAgICAgICAgIGVsc2UKKysgICAgICAg ICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRh c19lY2hvICJubyIgPiY2OyB9CisrICAgICAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBPcmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJl cXVpcmVkIHZlcnNpb24gaXMgJG9yYWNsZV92ZXJzaW9uX3JlcSIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IE9yYWNsZSAkT1JBQ0xFX09DSV9WRVJTSU9OIGZvdW5kLCBidXQgcmVxdWly ZWQgdmVyc2lvbiBpcyAkb3JhY2xlX3ZlcnNpb25fcmVxIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQorKyAgICAgICAgICAgIGZpCisrICAgICAgICBlbHNlCisrICAgICAgICAg ICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQor KyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBPcmFjbGUg dmVyc2lvbiB1bmtub3duLCBwcm9iYWJseSBPQ0kgb2xkZXIgdGhhbiAxMC4yIGlzIGF2YWlsYWJs ZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogT3JhY2xlIHZlcnNpb24gdW5rbm93 biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGUiID4mMjt9CisrICAg ICAgICBmaQorKyAgICBmaQorKworKworKworKworKworK2ZpCisrIGlmIHRlc3QgIngkZW5hYmxl X2JhY2tlbmRfb3JhY2xlIiA9IHh5ZXM7IHRoZW4KKysgIEhBVkVfT1JBQ0xFX1RSVUU9CisrICBI QVZFX09SQUNMRV9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX09SQUNMRV9UUlVFPScjJworKyAg SEFWRV9PUkFDTEVfRkFMU0U9CisrZmkKKysKKysjT1JBQ0xFX0RJUlM9Im9yYWNsZSIKKysKKysK KysKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwgYmFja2VuZAorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWwg d2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCtzZXR9IiA9 IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsOyAgaWYg dGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfcG9z dGdyZXNxbD1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9eWVz CisrICAgICAgZmkKKytlbHNlCisrICAgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD1ubworKwor K2ZpCisrCisrCisraWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsIiA9ICJ4eWVz IjsgdGhlbgorKyAgIFBPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKKysgICBQT1NUR1JFU1FM X1JFUV9WRVJTSU9OPSI3LjEuNCIKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLXBvc3Rn cmVzcWwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9wb3N0Z3Jlc3FsK3NldH0iID0gc2V0 OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX3Bvc3RncmVzcWw7CisrCVBPU1RHUkVTUUxfaW5jX2No ZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCisrICAgICAgICBpZiB0ZXN0ICIkd2l0aHZh bCIgPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJubyIKKysgICAg ICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICB3YW50 X3Bvc3RncmVzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICB3YW50X3Bvc3Rn cmVzcWw9InllcyIKKysgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgorKyAgICAgICAg ZmkKKysKKytlbHNlCisrICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysJUE9TVEdSRVNRTF9pbmNf Y2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQiCisrCisrZmkKKysKKysKKysgICAg UE9TVEdSRVNRTF9DRkxBR1M9IiIKKysgICAgUE9TVEdSRVNRTF9MREZMQUdTPSIiCisrICAgIFBP U1RHUkVTUUxfUE9TVEdSRVNRTD0iIgorKworKworKyAgICBpZiB0ZXN0ICIkd2FudF9wb3N0Z3Jl c3FsIiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0IC16ICIkUEdfQ09ORklHIiAt byB0ZXN0OyB0aGVuCisrICAgICAgICAgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJw Z19jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBk dW1teSBwZ19jb25maWc7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFj X3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEdfQ09ORklHK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNh c2UgJFBHX0NPTkZJRyBpbgorKyAgW1xcL10qIHwgPzpbXFwvXSopCisrICBhY19jdl9wYXRoX1BH X0NPTkZJRz0iJFBHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0 aCBhIHBhdGguCisrICA7OworKyAgKikKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMK KysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcGF0aF9QR19DT05GSUc9IiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZp CisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICA7OworK2VzYWMKKytmaQor K1BHX0NPTkZJRz0kYWNfY3ZfcGF0aF9QR19DT05GSUcKKytpZiB0ZXN0IC1uICIkUEdfQ09ORklH IjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFBHX0NPTkZJ RyIgPiY1CisrJGFzX2VjaG8gIiRQR19DT05GSUciID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsg fQorK2ZpCisrCisrCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVzdCAhIC14ICIkUEdf Q09ORklHIjsgdGhlbgorKyAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiAkUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVh YmxlIGZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkUEdfQ09ORklHIGRvZXMg bm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGUiID4mMjt9CisrICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICAgICAgICAgICAgUEdfQ09ORklHPSJubyIKKysgICAg ICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKKysgICAgICAgIGZpCisrCisrICAgICAgICBp ZiB0ZXN0ICIkUEdfQ09ORklHIiAhPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgIworKyAgICAg ICAgICAgICMgTG9vayBmb3IgUG9zdGdyZXNxbCBDIEFQSSBoZWFkZXJzCisrICAgICAgICAgICAg IworKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig UG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KKysgICAgICAgICAg ICBQT1NUR1JFU1FMX2luY2Rpcj0KKysgICAgICAgICAgICBmb3IgcG9zdGdyZXNxbF9pbmNfZGly IGluICRQT1NUR1JFU1FMX2luY19jaGVjaworKyAgICAgICAgICAgIGRvCisrICAgICAgICAgICAg ICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKKysgICAgICAgICAgICAgICAg JiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQuaCIKKysgICAgICAg ICAgICAgICAgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9JHBv c3RncmVzcWxfaW5jX2RpcgorKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAg ICAgICAgZmkKKysgICAgICAgICAgICBkb25lCisrCisrICAgICAgICAgICAgaWYgdGVzdCAteiAi JFBPU1RHUkVTUUxfaW5jZGlyIgorKyAgICAgICAgICAgIHRoZW4KKysgICAgICAgICAgICAgICAg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IERpZG4ndCBmaW5kIHRoZSBQb3N0 Z3Jlc3FsIGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9pbmNfY2hlY2snIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIFBvc3RncmVzcWwgaW5jbHVkZSBk aXIgaW4gJyRQT1NUR1JFU1FMX2luY19jaGVjayciID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9CisrICAgICAgICAgICAgZmkKKysKKysgICAgICAgICAgICBjYXNlICIkUE9TVEdS RVNRTF9pbmNkaXIiIGluCisrICAgICAgICAgICAgICAgIC8qICkgOzsKKysgICAgICAgICAgICAg ICAgKiApICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogVGhlIFBvc3RncmVz cWwgaW5jbHVkZSBkaXJlY3RvcnkgKCRQT1NUR1JFU1FMX2luY2RpcikgbXVzdCBiZSBhbiBhYnNv bHV0ZSBwYXRoLiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFRoZSBQb3N0Z3Jlc3Fs IGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1 dGUgcGF0aC4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7CisrICAgICAg ICAgICAgZXNhYworKworKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRQT1NUR1JFU1FMX2luY2RpciIgPiY1CisrJGFzX2VjaG8gIiRQT1NUR1JFU1FMX2lu Y2RpciIgPiY2OyB9CisrCisrICAgICAgICAgICAgaWYgdGVzdCAiJFBPU1RHUkVTUUxfaW5jZGly IiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCisrICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFH Uz0iIgorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgIFBPU1RHUkVTUUxfQ0ZMQUdT PSItSSR7UE9TVEdSRVNRTF9pbmNkaXJ9IgorKyAgICAgICAgICAgIGZpCisrCisrICAgICAgICAg ICAgUE9TVEdSRVNRTF9MREZMQUdTPSItTGAkUEdfQ09ORklHIC0tbGliZGlyYCAtbHBxIgorKwor KyAgICAgICAgICAgIFBPU1RHUkVTUUxfVkVSU0lPTj1gJFBHX0NPTkZJRyAtLXZlcnNpb24gfCBz ZWQgLWUgJ3MjUG9zdGdyZVNRTCAjIydgCisrCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNF T0YKKysjZGVmaW5lIEhBVkVfUE9TVEdSRVNRTCAxCisrX0FDRU9GCisrCisrCisrICAgICAgICAg ICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIGZv dW5kX3Bvc3RncmVzcWw9Im5vIgorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysKKysKKysgICAg cG9zdGdyZXNxbF92ZXJzaW9uX3JlcT0kUE9TVEdSRVNRTF9SRVFfVkVSU0lPTgorKworKyAgICBp ZiB0ZXN0ICIkZm91bmRfcG9zdGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBvc3RncmVzcWxfdmVy c2lvbl9yZXEiOyB0aGVuCisrCisrICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jlc3FsX3ZlcnNpb25f cmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiBQb3N0Z3JlU1FMIHZlcnNpb24gaXMg Pj0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KKysKKysgICAgICAgICAgICAg ICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRwb3N0Z3Jlc3Fs X3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9u X3JlcV9taW5vcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAt OV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz1gZXhwciAkcG9z dGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCisrICAg ICAgICBpZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVu CisrICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz0iMCIKKysgICAgICAg IGZpCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkcG9z dGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEw MDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxf dmVyc2lvbl9yZXFfbWljcm9gCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgcG9zdGdyZXNx bF92ZXJzaW9uX21ham9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnXChbMC05XSpcKSdg CisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVS U0lPTiA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9u X21pY3JvPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAt OV0qXCknYAorKyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm8iID0g IngiOyB0aGVuCisrICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvPSIwIgorKyAg ICAgICAgZmkKKysKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9udW1iZXI9YGV4cHIgJHBv c3RncmVzcWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3IgXCogMTAwMCBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9u X21pY3JvYAorKworKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNrPWBleHByICRwb3N0 Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyIFw+XD0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVy YAorKyAgICAgICAgaWYgdGVzdCAiJHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRo ZW4KKysgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMi ID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAi bm8iID4mNjsgfQorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysKKysKKysKKysKKytmaQorKyBp ZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0geHllczsgdGhlbgorKyAgSEFW RV9QT1NUR1JFU1FMX1RSVUU9CisrICBIQVZFX1BPU1RHUkVTUUxfRkFMU0U9JyMnCisrZWxzZQor KyAgSEFWRV9QT1NUR1JFU1FMX1RSVUU9JyMnCisrICBIQVZFX1BPU1RHUkVTUUxfRkFMU0U9Cisr ZmkKKysKKysjUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgorKworKworKworKworKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgZG9jdW1lbnRhdGlvbgorKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg Q2hlY2tzIGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCisrI0FDX0NIRUNLX1BST0coW3Rl eGluZm9fb2tdLCBbdGV4aW5mb10sIFt5ZXNdLCBbbm9dKQorKyNpZiB0ZXN0ICJ4JGVuYWJsZV9p bmZvX2RvYyIgIT0geG5vOyB0aGVuCisrIyAgdGVzdCAieCR0ZXhpbmZvX29rIiAhPSB4eWVzICYm IGVuYWJsZV9pbmZvX2RvYz1ubworKyMgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10p CisrI2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2luZm9fZG9jIiA9IHh5ZXM7IHRoZW4KKysgIElO Rk9fRE9DX1RSVUU9CisrICBJTkZPX0RPQ19GQUxTRT0nIycKKytlbHNlCisrICBJTkZPX0RPQ19U UlVFPScjJworKyAgSU5GT19ET0NfRkFMU0U9CisrZmkKKysKKysKKysjIENoZWNrcyBmb3IgZG9j dW1lbnRhdGlvbiBidWlsZCB0b29scworKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZG94 eWdlbiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15 IGRveHlnZW47IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfZG94eWdlbl9vaytzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0 IC1uICIkZG94eWdlbl9vayI7IHRoZW4KKysgIGFjX2N2X3Byb2dfZG94eWdlbl9vaz0iJGRveHln ZW5fb2siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisr ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3By b2dfZG94eWdlbl9vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5k ICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQor K2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3By b2dfZG94eWdlbl9vayIgJiYgYWNfY3ZfcHJvZ19kb3h5Z2VuX29rPSJubyIKKytmaQorK2ZpCisr ZG94eWdlbl9vaz0kYWNfY3ZfcHJvZ19kb3h5Z2VuX29rCisraWYgdGVzdCAtbiAiJGRveHlnZW5f b2siOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZG94eWdl bl9vayIgPiY1CisrJGFzX2VjaG8gIiRkb3h5Z2VuX29rIiA+JjY7IH0KKytlbHNlCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKytmaQorKworKworKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAibGF0ZXgiLCBz byBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBsYXRleDsg YWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFj X3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsg fQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19sYXRleF9vaytzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkbGF0ZXhf b2siOyB0aGVuCisrICBhY19jdl9wcm9nX2xhdGV4X29rPSIkbGF0ZXhfb2siICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVf SUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfbGF0ZXhfb2s9InllcyIK KysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0k YXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2xhdGV4X29rIiAmJiBhY19j dl9wcm9nX2xhdGV4X29rPSJubyIKKytmaQorK2ZpCisrbGF0ZXhfb2s9JGFjX2N2X3Byb2dfbGF0 ZXhfb2sKKytpZiB0ZXN0IC1uICIkbGF0ZXhfb2siOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkbGF0ZXhfb2siID4mNQorKyRhc19lY2hvICIkbGF0ZXhfb2si ID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v IiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICJkdmlwcyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCisrc2V0IGR1bW15IGR2aXBzOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2R2aXBzX29r K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGlmIHRlc3QgLW4gIiRkdmlwc19vayI7IHRoZW4KKysgIGFjX2N2X3Byb2dfZHZpcHNfb2s9 IiRkdmlwc19vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2Fz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRI CisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFz X3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNf Y3ZfcHJvZ19kdmlwc19vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZv dW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBm aQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2 X3Byb2dfZHZpcHNfb2siICYmIGFjX2N2X3Byb2dfZHZpcHNfb2s9Im5vIgorK2ZpCisrZmkKKytk dmlwc19vaz0kYWNfY3ZfcHJvZ19kdmlwc19vaworK2lmIHRlc3QgLW4gIiRkdmlwc19vayI7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkdmlwc19vayIgPiY1 CisrJGFzX2VjaG8gIiRkdmlwc19vayIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkK KysKKysKKysjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdzIiwgc28gaXQgY2FuIGJlIGEg cHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgZ3M7IGFjX3dvcmQ9JDIKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfZ3Nfb2src2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGdzX29rIjsgdGhlbgorKyAgYWNfY3ZfcHJv Z19nc19vaz0iJGdzX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNl CisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4g JFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAg ICBhY19jdl9wcm9nX2dzX29rPSJ5ZXMiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Zm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysg IGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICB0ZXN0IC16ICIkYWNf Y3ZfcHJvZ19nc19vayIgJiYgYWNfY3ZfcHJvZ19nc19vaz0ibm8iCisrZmkKKytmaQorK2dzX29r PSRhY19jdl9wcm9nX2dzX29rCisraWYgdGVzdCAtbiAiJGdzX29rIjsgdGhlbgorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGdzX29rIiA+JjUKKyskYXNfZWNobyAiJGdz X29rIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2lmIHRlc3QgIngk ZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KKysgIHRlc3QgIngkZG94eWdlbl9vayIgIT0g eHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRlc3QgIngkbGF0ZXhfb2siICE9IHh5ZXMg JiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGR2aXBzX29rIiAhPSB4eWVzICYmIGVu YWJsZV9odG1sX2RvYz1ubworKyAgdGVzdCAieCRnc19vayIgIT0geHllcyAmJiBlbmFibGVfaHRt bF9kb2M9bm8KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGVybCIsIHNvIGl0IGNh biBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IHBlcmw7IGFjX3dvcmQ9 JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0 ZXN0ICIke2FjX2N2X3BhdGhfUEVSTCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRQRVJMIGluCisrICBbXFwvXSogfCA/Oltc XC9dKikKKysgIGFjX2N2X3BhdGhfUEVSTD0iJFBFUkwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysgICopCisrICBhc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9 JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRl c3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3BhdGhfUEVSTD0i JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsg MgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIDs7CisrZXNh YworK2ZpCisrUEVSTD0kYWNfY3ZfcGF0aF9QRVJMCisraWYgdGVzdCAtbiAiJFBFUkwiOyB0aGVu CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUEVSTCIgPiY1CisrJGFz X2VjaG8gIiRQRVJMIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2Zp CisrIGlmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiA9IHh5ZXM7IHRoZW4KKysgIEhUTUxfRE9D X1RSVUU9CisrICBIVE1MX0RPQ19GQUxTRT0nIycKKytlbHNlCisrICBIVE1MX0RPQ19UUlVFPScj JworKyAgSFRNTF9ET0NfRkFMU0U9CisrZmkKKysKKysKKysKKysjIENoZWNrIGZvciBkaWZmIHBy b2dyYW0gdXNlZCBmb3IgdGVzdHMKKysjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRpZmYi LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBkaWZm OyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2RpZmZfb2src2V0fSIgPSBzZXQ7IHRoZW4KKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGRpZmZf b2siOyB0aGVuCisrICBhY19jdl9wcm9nX2RpZmZfb2s9IiRkaWZmX29rIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRI X1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lG UworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBp biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2RpZmZfb2s9InllcyIKKysg ICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNf c2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2RpZmZfb2siICYmIGFjX2N2X3By b2dfZGlmZl9vaz0ibm8iCisrZmkKKytmaQorK2RpZmZfb2s9JGFjX2N2X3Byb2dfZGlmZl9vawor K2lmIHRlc3QgLW4gIiRkaWZmX29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGRpZmZfb2siID4mNQorKyRhc19lY2hvICIkZGlmZl9vayIgPiY2OyB9Cisr ZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRh c19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgInNlZCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1 bW15IHNlZDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19zZWRfb2src2V0fSIgPSBzZXQ7IHRo ZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAi JHNlZF9vayI7IHRoZW4KKysgIGFjX2N2X3Byb2dfc2VkX29rPSIkc2VkX29rIiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQ QVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZl X0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4 dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX3NlZF9vaz0ieWVzIgor KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRh c19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfc2VkX29rIiAmJiBhY19jdl9w cm9nX3NlZF9vaz0ibm8iCisrZmkKKytmaQorK3NlZF9vaz0kYWNfY3ZfcHJvZ19zZWRfb2sKKytp ZiB0ZXN0IC1uICIkc2VkX29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJHNlZF9vayIgPiY1CisrJGFzX2VjaG8gIiRzZWRfb2siID4mNjsgfQorK2Vsc2UK KysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNo byAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZW5hYmxlX3Rlc3RzPXllcworK3Rlc3QgIngkZGlm Zl9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KKyt0ZXN0ICJ4JHNlZF9vayIgIT0geHll cyAmJiBlbmFibGVfdGVzdHM9bm8KKysgaWYgdGVzdCAieCRlbmFibGVfdGVzdHMiID0geHllczsg dGhlbgorKyAgUlVOX1RFU1RTX1RSVUU9CisrICBSVU5fVEVTVFNfRkFMU0U9JyMnCisrZWxzZQor KyAgUlVOX1RFU1RTX1RSVUU9JyMnCisrICBSVU5fVEVTVFNfRkFMU0U9CisrZmkKKysKKysKKysK KysjIENoZWNrcyBmb3IgaGVhZGVyIGZpbGVzCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YWNfY3ZfaGVhZGVyX3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog Y29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPHN0ZGFyZy5oPgorKyNpbmNs dWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8ZmxvYXQuaD4KKysKKytpbnQKKyttYWluICgpCisr eworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/ CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYg Y29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0 aGVuCisrICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1CisrCisrCWFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysKKytpZiB0 ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorKyAgIyBTdW5PUyA0Lnggc3RyaW5n LmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgorKyAgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3RyaW5nLmg+Cisr CisrX0FDRU9GCisraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAor KyAgJEVHUkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgOgorK2Vsc2UKKysg IGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVzdCoKKysKKytmaQorKwor K2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIElTQyAyLjAuMiBz dGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCisrICBjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YK KytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxzdGRsaWIu aD4KKysKKytfQUNFT0YKKytpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4m NSB8CisrICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgOgorK2Vsc2UK KysgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVzdCoKKysKKytmaQor KworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIC9iaW4vY2Mg aW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxlc3MgdXNpbmcgLWFu c2kuCisrICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgorKyAgOgorK2Vs c2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1 ZGUgPGN0eXBlLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpZiAoKCcgJyAmIDB4MEZGKSA9 PSAweDAyMCkKKysjIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYmIChjKSA8PSAneicp CisrIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDog KGMpKQorKyNlbHNlCisrIyBkZWZpbmUgSVNMT1dFUihjKSBcCisrCQkgICAoKCdhJyA8PSAoYykg JiYgKGMpIDw9ICdpJykgXAorKwkJICAgICB8fCAoJ2onIDw9IChjKSAmJiAoYykgPD0gJ3InKSBc CisrCQkgICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicpKQorKyMgZGVmaW5lIFRPVVBQ RVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCisrI2VuZGlmCisrCisrI2Rl ZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYpKSkKKytpbnQKKytt YWluICgpCisreworKyAgaW50IGk7CisrICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCisrICAg IGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKKysJfHwgdG91cHBlciAoaSkgIT0g VE9VUFBFUiAoaSkpCisrICAgICAgcmV0dXJuIDI7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9G Cisrcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQorKyAgYWNfc3RhdHVz PSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0 JworKyAgeyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisr ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfdHJ5IikgMj4mNQorKyAg YWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0 dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKysgIDoKKytlbHNlCisr ICAkYXNfZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVz IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrKCBleGl0ICRhY19zdGF0dXMgKQor K2FjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1m IGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrCisr ZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFk ZXJfc3RkYyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfc3RkYyIgPiY2OyB9CisraWYg dGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5o IDw8XF9BQ0VPRgorKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKKytfQUNFT0YKKysKKytmaQorKwor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRpbWUuaCBhbmQg c3lzL3RpbWUuaCBtYXkgYm90aCBiZSBpbmNsdWRlZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUgaW5jbHVkZWQuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl90aW1lK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorKyNp bmNsdWRlIDxzeXMvdGltZS5oPgorKyNpbmNsdWRlIDx0aW1lLmg+CisrCisraW50CisrbWFpbiAo KQorK3sKKytpZiAoKHN0cnVjdCB0bSAqKSAwKQorK3JldHVybiAwOworKyAgOworKyAgcmV0dXJu IDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190 cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBp bGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQg Y29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRh Y19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19jdl9oZWFkZXJf dGltZT15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N2X2hl YWRlcl90aW1lPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfdGltZSIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9o ZWFkZXJfdGltZSIgPiY2OyB9CisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3RpbWUgPSB5ZXM7IHRo ZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgVElNRV9XSVRIX1NZ U19USU1FIDEKKytfQUNFT0YKKysKKytmaQorKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworK2ZvciBhY19oZWFkZXIgaW4gY21hdGggXAorKyAgZGVxdWUgXAorKyAg ZnN0cmVhbSBcCisrICBpb21hbmlwIFwKKysgIGlvc3RyZWFtIFwKKysgIHNzdHJlYW0gXAorKyAg bGltaXRzIFwKKysgIGxpc3QgXAorKyAgc2V0IFwKKysgIHZlY3RvciBcCisrICBtYXAgXAorKyAg cXVldWUgXAorKyAgc3RkZXhjZXB0IFwKKysgIHN0cmluZworK2RvCisrYXNfYWNfSGVhZGVyPWAk YXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAorK2lmIHsgYXNf dmFyPSRhc19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7 IH07IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFj X2hlYWRlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gIiA+ JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3Zh citzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9CisrCQkgJGFzX2Vj aG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKytlbHNlCisrICAj IElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n ICRhY19oZWFkZXIgdXNhYmlsaXR5Li4uICIgPiY2OyB9CisrY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KKyskYWNfaW5jbHVkZXNfZGVmYXVsdAorKyNpbmNsdWRlIDwk YWNfaGVhZGVyPgorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19oZWFkZXJf Y29tcGlsZXI9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19o ZWFkZXJfY29tcGlsZXI9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQorKyRhc19lY2hvICIkYWNfaGVh ZGVyX2NvbXBpbGVyIiA+JjY7IH0KKysKKysjIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZSIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4uLiAiID4mNjsgfQor K2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPCRh Y19oZWFkZXI+CisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19l eHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19l eHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQg Y29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkg dGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8 CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgIGFjX2hlYWRl cl9wcmVwcm9jPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysgIGFj X2hlYWRlcl9wcmVwcm9jPW5vCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX2V4dAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJf cHJlcHJvYyIgPiY1CisrJGFzX2VjaG8gIiRhY19oZWFkZXJfcHJlcHJvYyIgPiY2OyB9CisrCisr IyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CisrY2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVy OiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluCisrICB5ZXM6 bm86ICkKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFk ZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3Nv ciEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVk IGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9Cisr ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9j ZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVz dWx0IiA+JjI7fQorKyAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKKysgICAgOzsKKysgIG5vOnll czoqICkKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFk ZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+ JjI7fQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRl cjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5n IHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlv biIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBB dXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5u b3QgQmUgQ29tcGlsZWRcIiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hl YWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYy O30KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6 IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXBy b2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRh a2UgcHJlY2VkZW5jZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRl cjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7 fQorKyAgICAoIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBSZXBvcnQgdGhpcyB0byBtc29iY3pha0B1c2Vycy5z b3VyY2Vmb3JnZS5uZXQgIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMKKytfQVNCT1gKKysgICAgICkgfCBzZWQgInMvXi8kYXNfbWU6IFdBUk5J Tkc6ICAgICAvIiA+JjIKKysgICAgOzsKKytlc2FjCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGFjX2hlYWRlci4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19IZWFkZXI7IGV2 YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgZXZhbCAiJGFzX2FjX0hlYWRlcj1cJGFjX2hl YWRlcl9wcmVwcm9jIgorK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRl cid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7 IH0KKysKKytmaQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQorKwkJ ICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0 aGVuCisrICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBgJGFzX2VjaG8gIkhB VkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCisrX0FDRU9GCisrCisrZmkKKysKKytkb25l CisrCisrCisrCisrIyBEZWZpbmUgY29uZmlndXJlZCBmaWxlcworK2FjX2NvbmZpZ19maWxlcz0i JGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSBzb2NpLWNvbmZpZyBzb2NpLnBjIHNvY2kuc3BlYyBz b2NpL01ha2VmaWxlIHNvY2kvY29yZS9NYWtlZmlsZSBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSBz b2NpL2JhY2tlbmRzL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUgc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtl ZmlsZSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRz L29yYWNsZS9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlIG1hbi9N YWtlZmlsZSBkb2MvTWFrZWZpbGUgZG9jL2JhY2tlbmRzL01ha2VmaWxlIGJ1aWxkL01ha2VmaWxl IGJ1aWxkL3VuaXgvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL01ha2VmaWxlIGJ1aWxkL21zdmM4MC9k bGwvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIKKysKKysKKytjYXQgPmNvbmZj YWNoZSA8PFxfQUNFT0YKKysjIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hl cyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUKKysjIHRlc3RzIHJ1biBvbiB0aGlzIHN5c3RlbSBz byB0aGV5IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBjb25maWd1cmUKKysjIHNjcmlwdHMgYW5kIGNv bmZpZ3VyZSBydW5zLCBzZWUgY29uZmlndXJlJ3Mgb3B0aW9uIC0tY29uZmlnLWNhY2hlLgorKyMg SXQgaXMgbm90IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLiAgSWYgaXQgY29udGFpbnMgcmVzdWx0 cyB5b3UgZG9uJ3QKKysjIHdhbnQgdG8ga2VlcCwgeW91IG1heSByZW1vdmUgb3IgZWRpdCBpdC4K KysjCisrIyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRpb24gdG8gdGhlIGNhY2hlIGZp bGUgaWYgeW91IGdpdmUgaXQKKysjIHRoZSAtLXJlY2hlY2sgb3B0aW9uIHRvIHJlcnVuIGNvbmZp Z3VyZS4KKysjCisrIyBgYWNfY3ZfZW52X2ZvbycgdmFyaWFibGVzIChzZXQgb3IgdW5zZXQpIHdp bGwgYmUgb3ZlcnJpZGRlbiB3aGVuCisrIyBsb2FkaW5nIHRoaXMgZmlsZSwgb3RoZXIgKnVuc2V0 KiBgYWNfY3ZfZm9vJyB3aWxsIGJlIGFzc2lnbmVkIHRoZQorKyMgZm9sbG93aW5nIHZhbHVlcy4K KysKKytfQUNFT0YKKysKKysjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hl IG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAorKyMgYnV0IHdlIGtub3cgb2Ygbm8gd29y a2Fyb3VuZCB0aGF0IGlzIHNpbXBsZSwgcG9ydGFibGUsIGFuZCBlZmZpY2llbnQuCisrIyBTbywg d2Uga2lsbCB2YXJpYWJsZXMgY29udGFpbmluZyBuZXdsaW5lcy4KKysjIFVsdHJpeCBzaCBzZXQg d3JpdGVzIHRvIHN0ZGVyciBhbmQgY2FuJ3QgYmUgcmVkaXJlY3RlZCBkaXJlY3RseSwKKysjIGFu ZCBzZXRzIHRoZSBoaWdoIGJpdCBpbiB0aGUgY2FjaGUgZmlsZSB1bmxlc3Mgd2UgYXNzaWduIHRv IHRoZSB2YXJzLgorKygKKysgIGZvciBhY192YXIgaW4gYChzZXQpIDI+JjEgfCBzZWQgLW4gJ3Mv XlwoW2EtekEtWl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3AnYDsgZG8KKysgICAgZXZhbCBhY192 YWw9XCQkYWNfdmFyCisrICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAorKyAgICAqJHthc19ubH0qKQor KyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAorKyAgICAgICpfY3ZfKikgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIgY29udGFpbnMgYSBu ZXdsaW5lIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAk YWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiYyO30gOzsKKysgICAgICBlc2FjCisrICAgICAg Y2FzZSAkYWNfdmFyIGluICMoCisrICAgICAgXyB8IElGUyB8IGFzX25sKSA7OyAjKAorKyAgICAg IEJBU0hfQVJHViB8IEJBU0hfU09VUkNFKSBldmFsICRhY192YXI9IDs7ICMoCisrICAgICAgKikg JGFzX3Vuc2V0ICRhY192YXIgOzsKKysgICAgICBlc2FjIDs7CisrICAgIGVzYWMKKysgIGRvbmUK KysKKysgIChzZXQpIDI+JjEgfAorKyAgICBjYXNlICRhc19ubGAoYWNfc3BhY2U9JyAnOyBzZXQp IDI+JjFgIGluICMoCisrICAgICoke2FzX25sfWFjX3NwYWNlPVwgKikKKysgICAgICAjIGBzZXQn IGRvZXMgbm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3RlcyAoZG91YmxlLXF1b3RlCisr ICAgICAgIyBzdWJzdGl0dXRpb24gdHVybnMgXFxcXCBpbnRvIFxcLCBhbmQgc2VkIHR1cm5zIFxc IGludG8gXCkuCisrICAgICAgc2VkIC1uIFwKKysJInMvJy8nXFxcXCcnL2c7CisrCSAgcy9eXFwo W18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXFwy Jy9wIgorKyAgICAgIDs7ICMoCisrICAgICopCisrICAgICAgIyBgc2V0JyBxdW90ZXMgY29ycmVj dGx5IGFzIHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRkIHF1b3Rlcy4KKysgICAgICBz ZWQgLW4gIi9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qPS9wIgorKyAgICAg IDs7CisrICAgIGVzYWMgfAorKyAgICBzb3J0CisrKSB8CisrICBzZWQgJworKyAgICAgL15hY19j dl9lbnZfL2IgZW5kCisrICAgICB0IGNsZWFyCisrICAgICA6Y2xlYXIKKysgICAgIHMvXlwoW149 XSpcKT1cKC4qW3t9XS4qXCkkL3Rlc3QgIiR7XDErc2V0fSIgPSBzZXQgfHwgJi8KKysgICAgIHQg ZW5kCisrICAgICBzL15cKFtePV0qXCk9XCguKlwpJC9cMT0ke1wxPVwyfS8KKysgICAgIDplbmQn ID4+Y29uZmNhY2hlCisraWYgZGlmZiAiJGNhY2hlX2ZpbGUiIGNvbmZjYWNoZSA+L2Rldi9udWxs IDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgaWYgdGVzdCAtdyAiJGNhY2hlX2ZpbGUiOyB0aGVuCisr ICAgIHRlc3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251bGwiICYmCisrICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHVwZGF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgICAg Y2F0IGNvbmZjYWNoZSA+JGNhY2hlX2ZpbGUKKysgIGVsc2UKKysgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IG5vdCB1cGRhdGluZyB1bndyaXRhYmxlIGNhY2hlICRjYWNoZV9maWxlIiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2Fj aGVfZmlsZSIgPiY2O30KKysgIGZpCisrZmkKKytybSAtZiBjb25mY2FjaGUKKysKKyt0ZXN0ICJ4 JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9JGFjX2RlZmF1bHRfcHJlZml4CisrIyBMZXQgbWFr ZSBleHBhbmQgZXhlY19wcmVmaXguCisrdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBl eGVjX3ByZWZpeD0nJHtwcmVmaXh9JworKworK0RFRlM9LURIQVZFX0NPTkZJR19ICisrCisrYWNf bGlib2Jqcz0KKythY19sdGxpYm9ianM9CisrZm9yIGFjX2kgaW4gOiAkTElCT0JKUzsgZG8gdGVz dCAieCRhY19pIiA9IHg6ICYmIGNvbnRpbnVlCisrICAjIDEuIFJlbW92ZSB0aGUgZXh0ZW5zaW9u LCBhbmQgJFUgaWYgYWxyZWFkeSBpbnN0YWxsZWQuCisrICBhY19zY3JpcHQ9J3MvXCRVXC4vLi87 cy9cLm8kLy87cy9cLm9iaiQvLycKKysgIGFjX2k9YCRhc19lY2hvICIkYWNfaSIgfCBzZWQgIiRh Y19zY3JpcHQiYAorKyAgIyAyLiBQcmVwZW5kIExJQk9CSkRJUi4gIFdoZW4gdXNlZCB3aXRoIGF1 dG9tYWtlPj0xLjEwIExJQk9CSkRJUgorKyAgIyAgICB3aWxsIGJlIHNldCB0byB0aGUgZGlyZWN0 b3J5IHdoZXJlIExJQk9CSlMgb2JqZWN0cyBhcmUgYnVpbHQuCisrICBhY19saWJvYmpzPSIkYWNf bGlib2JqcyBcJHtMSUJPQkpESVJ9JGFjX2lcJFUuJGFjX29iamV4dCIKKysgIGFjX2x0bGlib2Jq cz0iJGFjX2x0bGlib2JqcyBcJHtMSUJPQkpESVJ9JGFjX2kiJyRVLmxvJworK2RvbmUKKytMSUJP QkpTPSRhY19saWJvYmpzCisrCisrTFRMSUJPQkpTPSRhY19sdGxpYm9ianMKKysKKysKKytpZiB0 ZXN0IC16ICIke0hBVkVfQ1BQVU5JVF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX0NQUFVOSVRf RkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNv bmRpdGlvbmFsIFwiSEFWRV9DUFBVTklUXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0 aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX0NQUFVOSVRcIiB3 YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5 IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke0FNREVQX1RSVUV9IiAmJiB0ZXN0IC16ICIke0FNREVQ X0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj b25kaXRpb25hbCBcIkFNREVQXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1l YW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBkZWZp bmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k aXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lm IHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfVFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3Rk ZXBDWFhfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytV c3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxs eS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0 ZGVwQ1hYXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNy byB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENDX1RSVUV9IiAm JiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDQ1wiIHdh cyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkg aW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNv bmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkg dGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYy O30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7U09D SV9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJX0hFQURFUlNfQlVSSUVE X0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj b25kaXRpb25hbCBcIlNPQ0lfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytV c3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxs eS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfSEVB REVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhl IG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke1NPQ0lfTVlTUUxfSEVBREVS U19CVVJJRURfVFJVRX0iICYmIHRlc3QgLXogIiR7U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9G QUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29u ZGl0aW9uYWwgXCJTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQu CisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlv bmFsbHkuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlz IG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHtTT0NJX1BP U1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJVRX0iICYmIHRlc3QgLXogIiR7U09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JV UklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8g d2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEXCIgd2Fz IG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBp bnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQorK2ZpCisraWYgdGVzdCAteiAiJHtIQVZFX01ZU1FMX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hB VkVfTVlTUUxfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9NWVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1Vz dWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5 LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9NWVNR TFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2Fz IG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7SEFWRV9PUkFDTEVfVFJVRX0iICYmIHRlc3Qg LXogIiR7SEFWRV9PUkFDTEVfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9PUkFDTEVcIiB3YXMgbmV2ZXIgZGVm aW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29u ZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBc IkhBVkVfT1JBQ0xFXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHtIQVZFX1BPU1RHUkVTUUxf VFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9QT1NUR1JFU1FMX0ZBTFNFfSI7IHRoZW4KKysgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfUE9T VEdSRVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFj cm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9QT1NUR1JFU1FMXCIgd2FzIG5ldmVyIGRlZmlu ZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp dGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYg dGVzdCAteiAiJHtJTkZPX0RPQ19UUlVFfSIgJiYgdGVzdCAteiAiJHtJTkZPX0RPQ19GQUxTRX0i OyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9u YWwgXCJJTkZPX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0 aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSU5GT19ET0NcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0 ZXN0IC16ICIke0hUTUxfRE9DX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hUTUxfRE9DX0ZBTFNFfSI7 IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25h bCBcIkhUTUxfRE9DXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIVE1MX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVk LgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRp b25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRl c3QgLXogIiR7UlVOX1RFU1RTX1RSVUV9IiAmJiB0ZXN0IC16ICIke1JVTl9URVNUU19GQUxTRX0i OyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9u YWwgXCJSVU5fVEVTVFNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMg dGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIlJVTl9URVNUU1wiIHdhcyBuZXZlciBkZWZp bmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k aXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorKwor KzogJHtDT05GSUdfU1RBVFVTPS4vY29uZmlnLnN0YXR1c30KKythY193cml0ZV9mYWlsPTAKKyth Y19jbGVhbl9maWxlc19zYXZlPSRhY19jbGVhbl9maWxlcworK2FjX2NsZWFuX2ZpbGVzPSIkYWNf Y2xlYW5fZmlsZXMgJENPTkZJR19TVEFUVVMiCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBjcmVhdGlu ZyAkQ09ORklHX1NUQVRVUyIgPiY2O30KKytjYXQgPiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8 IGFjX3dyaXRlX2ZhaWw9MQorKyMhICRTSEVMTAorKyMgR2VuZXJhdGVkIGJ5ICRhc19tZS4KKysj IFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KKysj IENvbXBpbGVyIG91dHB1dCBwcm9kdWNlZCBieSBjb25maWd1cmUsIHVzZWZ1bCBmb3IgZGVidWdn aW5nCisrIyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgorKworK2Rl YnVnPWZhbHNlCisrYWNfY3NfcmVjaGVjaz1mYWxzZQorK2FjX2NzX3NpbGVudD1mYWxzZQorK1NI RUxMPVwke0NPTkZJR19TSEVMTC0kU0hFTEx9CisrX0FDRU9GCisrCisrY2F0ID4+JENPTkZJR19T VEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLSAjIworKyMjIE00c2ggSW5pdGlhbGl6YXRpb24uICAjIworKyMjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLSAjIworKworKyMgQmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQorK0RVQUxDQVNFPTE7 IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKKytpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9O K3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGVtdWxhdGUg c2gKKysgIE5VTExDTUQ9OgorKyAgIyBQcmUtNC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3JkIHNw bGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCisrICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2Fn ZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorKyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCIn CisrICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2Vsc2UKKysgIGNhc2UgYChzZXQgLW8pIDI+L2Rl di9udWxsYCBpbgorKyAgKnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7CisrZXNhYworKworK2ZpCisr CisrCisrCisrCisrIyBQQVRIIG5lZWRzIENSCisrIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFy YWN0ZXIgUmFuZ2VzLgorK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6 JworK2FzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJworK2FzX2NyX0xl dHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUworK2FzX2NyX2RpZ2l0cz0nMDEyMzQ1 Njc4OScKKythc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKKysKKythc19u bD0nCisrJworK2V4cG9ydCBhc19ubAorKyMgUHJpbnRpbmcgYSBsb25nIHN0cmluZyBjcmFzaGVz IFNvbGFyaXMgNyAvdXNyL2Jpbi9wcmludGYuCisrYXNfZWNobz0nXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKKythc19lY2hvPSRhc19lY2hvJGFzX2VjaG8k YXNfZWNobyRhc19lY2hvJGFzX2VjaG8KKythc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNo byRhc19lY2hvJGFzX2VjaG8kYXNfZWNobworK2lmICh0ZXN0ICJYYHByaW50ZiAlcyAkYXNfZWNo b2AiID0gIlgkYXNfZWNobyIpIDI+L2Rldi9udWxsOyB0aGVuCisrICBhc19lY2hvPSdwcmludGYg JXNcbicKKysgIGFzX2VjaG9fbj0ncHJpbnRmICVzJworK2Vsc2UKKysgIGlmIHRlc3QgIlhgKC91 c3IvdWNiL2VjaG8gLW4gLW4gJGFzX2VjaG8pIDI+L2Rldi9udWxsYCIgPSAiWC1uICRhc19lY2hv IjsgdGhlbgorKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgL3Vzci91Y2IvZWNobyAtbiAiJDEkYXNf bmwiJworKyAgICBhc19lY2hvX249Jy91c3IvdWNiL2VjaG8gLW4nCisrICBlbHNlCisrICAgIGFz X2VjaG9fYm9keT0nZXZhbCBleHByICJYJDEiIDogIlhcXCguKlxcKSInCisrICAgIGFzX2VjaG9f bl9ib2R5PSdldmFsCisrICAgICAgYXJnPSQxOworKyAgICAgIGNhc2UgJGFyZyBpbgorKyAgICAg ICoiJGFzX25sIiopCisrCWV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkkYXNfbmwiOworKwlhcmc9 YGV4cHIgIlgkYXJnIiA6ICIuKiRhc19ubFxcKC4qXFwpImA7OworKyAgICAgIGVzYWM7CisrICAg ICAgZXhwciAiWCRhcmciIDogIlhcXCguKlxcKSIgfCB0ciAtZCAiJGFzX25sIgorKyAgICAnCisr ICAgIGV4cG9ydCBhc19lY2hvX25fYm9keQorKyAgICBhc19lY2hvX249J3NoIC1jICRhc19lY2hv X25fYm9keSBhc19lY2hvJworKyAgZmkKKysgIGV4cG9ydCBhc19lY2hvX2JvZHkKKysgIGFzX2Vj aG89J3NoIC1jICRhc19lY2hvX2JvZHkgYXNfZWNobycKKytmaQorKworKyMgVGhlIHVzZXIgaXMg YWx3YXlzIHJpZ2h0LgorK2lmIHRlc3QgIiR7UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0OyB0 aGVuCisrICBQQVRIX1NFUEFSQVRPUj06CisrICAoUEFUSD0nL2JpbjsvYmluJzsgRlBBVEg9JFBB VEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSAmJiB7CisrICAgIChQQVRIPScvYmluOi9iaW4n OyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxIHx8CisrICAgICAgUEFUSF9T RVBBUkFUT1I9JzsnCisrICB9CisrZmkKKysKKysjIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJs ZS4KKytpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KKysgIGFzX3Vuc2V0PXVuc2V0CisrZWxzZQorKyAgYXNfdW5zZXQ9ZmFsc2UKKytmaQor KworKworKyMgSUZTCisrIyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVj aXNlbHkgdGhhdCBvcmRlci4gIFF1b3RpbmcgaXMKKysjIHRoZXJlIHRvIHByZXZlbnQgZWRpdG9y cyBmcm9tIGNvbXBsYWluaW5nIGFib3V0IHNwYWNlLXRhYi4KKysjIChJZiBfQVNfUEFUSF9XQUxL IHdlcmUgY2FsbGVkIHdpdGggSUZTIHVuc2V0LCBpdCB3b3VsZCBkaXNhYmxlIHdvcmQKKysjIHNw bGl0dGluZyBieSBzZXR0aW5nIElGUyB0byBlbXB0eSB2YWx1ZS4pCisrSUZTPSIgIiIJJGFzX25s IgorKworKyMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWlu IG5vIGRpcmVjdG9yeSBzZXBhcmF0b3IuCisrY2FzZSAkMCBpbgorKyAgKltcXC9dKiApIGFzX215 c2VsZj0kMCA7OworKyAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgor K2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215 c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysg ICAgIDs7CisrZXNhYworKyMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJs eSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKKysjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5v dCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KKytpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0 aGVuCisrICBhc19teXNlbGY9JDAKKytmaQorK2lmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRo ZW4KKysgICRhc19lY2hvICIkYXNfbXlzZWxmOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyBy ZXJ1biB3aXRoIGFuIGFic29sdXRlIGZpbGUgbmFtZSIgPiYyCisrICB7IChleGl0IDEpOyBleGl0 IDE7IH0KKytmaQorKworKyMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgor K2ZvciBhc192YXIgaW4gRU5WIE1BSUwgTUFJTFBBVEgKKytkbyAoJGFzX3Vuc2V0ICRhc192YXIp ID4vZGV2L251bGwgMj4mMSAmJiAkYXNfdW5zZXQgJGFzX3ZhcgorK2RvbmUKKytQUzE9JyQgJwor K1BTMj0nPiAnCisrUFM0PScrICcKKysKKysjIE5MUyBudWlzYW5jZXMuCisrTENfQUxMPUMKKytl eHBvcnQgTENfQUxMCisrTEFOR1VBR0U9QworK2V4cG9ydCBMQU5HVUFHRQorKworKyMgUmVxdWly ZWQgdG8gdXNlIGJhc2VuYW1lLgorK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYx ICYmCisrICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4K KysgIGFzX2V4cHI9ZXhwcgorK2Vsc2UKKysgIGFzX2V4cHI9ZmFsc2UKKytmaQorKworK2lmIChi YXNlbmFtZSAtLSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAtLSAvIDI+ JjFgIiA9ICJYLyI7IHRoZW4KKysgIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCisrZWxzZQorKyAgYXNf YmFzZW5hbWU9ZmFsc2UKKytmaQorKworKworKyMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4KKyth c19tZT1gJGFzX2Jhc2VuYW1lIC0tICIkMCIgfHwKKyskYXNfZXhwciBYLyIkMCIgOiAnLiovXChb Xi9dW14vXSpcKS8qJCcgXHwgXAorKwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJDAi IDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgvIiQwIiB8CisrICAg IHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisr CSAgfQorKwkgIC9eWFwvXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0K KysJICAvXlhcL1woXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBz Ly4qLy4vOyBxJ2AKKysKKysjIENEUEFUSC4KKyskYXNfdW5zZXQgQ0RQQVRICisrCisrCisrCisr ICBhc19saW5lbm9fMT0kTElORU5PCisrICBhc19saW5lbm9fMj0kTElORU5PCisrICB0ZXN0ICJ4 JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKysgIHRlc3QgInhgZXhwciAkYXNf bGluZW5vXzEgKyAxYCIgPSAieCRhc19saW5lbm9fMiIgfHwgeworKworKyAgIyBDcmVhdGUgJGFz X21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0IHdpdGggJExJTkVOTworKyAg IyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQn IGluc2VydHMgYQorKyAgIyBsaW5lLW51bWJlciBsaW5lIGFmdGVyIGVhY2ggbGluZSB1c2luZyAk TElORU5POyB0aGUgc2Vjb25kICdzZWQnCisrICAjIGRvZXMgdGhlIHJlYWwgd29yay4gIFRoZSBz ZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaAorKyAgIyBsaW5lLW51bWJlciBsaW5l IHdpdGggdGhlIGxpbmUgY29udGFpbmluZyAkTElORU5PLCBhbmQgYXBwZW5kcworKyAgIyB0cmFp bGluZyAnLScgZHVyaW5nIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3Bl Y2lhbAorKyAgIyBjYXNlIGF0IGxpbmUgZW5kLgorKyAgIyAoUmFqYSBSIEhhcmluYXRoIHN1Z2dl c3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhlCisrICAjIHNjcmlwdHMgd2l0 aCBvcHRpbWl6YXRpb24gaGVscCBmcm9tIFBhb2xvIEJvbnppbmkuICBCbGFtZSBMZWUKKysgICMg RS4gTWNNYWhvbiAoMTkzMS0xOTg5KSBmb3Igc2VkJ3Mgc3ludGF4LiAgOi0pCisrICBzZWQgLW4g JworKyAgICBwCisrICAgIC9bJF1MSU5FTk8vPQorKyAgJyA8JGFzX215c2VsZiB8CisrICAgIHNl ZCAnCisrICAgICAgcy9bJF1MSU5FTk8uKi8mLS8KKysgICAgICB0IGxpbmVubworKyAgICAgIGIK KysgICAgICA6bGluZW5vCisrICAgICAgTgorKyAgICAgIDpsb29wCisrICAgICAgcy9bJF1MSU5F Tk9cKFteJyRhc19jcl9hbG51bSdfXS4qXG5cKVwoLipcKS9cMlwxXDIvCisrICAgICAgdCBsb29w CisrICAgICAgcy8tXG4uKi8vCisrICAgICcgPiRhc19tZS5saW5lbm8gJiYKKysgIGNobW9kICt4 ICIkYXNfbWUubGluZW5vIiB8fAorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5u b3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyCisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCisrICAjIERvbid0IHRyeSB0byBleGVjIGFz IGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBwcm9ibGVtcworKyAgIyAodGhl IGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhl CisrICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2l0 aXZlIHRvIHRoaXMpLgorKyAgLiAiLi8kYXNfbWUubGluZW5vIgorKyAgIyBFeGl0IHN0YXR1cyBp cyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCisrICBleGl0CisrfQorKworKworK2lmIChhc19k aXI9YGRpcm5hbWUgLS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0gWC8pID4vZGV2L251bGwgMj4m MTsgdGhlbgorKyAgYXNfZGlybmFtZT1kaXJuYW1lCisrZWxzZQorKyAgYXNfZGlybmFtZT1mYWxz ZQorK2ZpCisrCisrRUNIT19DPSBFQ0hPX049IEVDSE9fVD0KKytjYXNlIGBlY2hvIC1uIHhgIGlu CisrLW4qKQorKyAgY2FzZSBgZWNobyAneFxjJ2AgaW4KKysgICpjKikgRUNIT19UPScJJzs7CSMg RUNIT19UIGlzIHNpbmdsZSB0YWIgY2hhcmFjdGVyLgorKyAgKikgICBFQ0hPX0M9J1xjJzs7Cisr ICBlc2FjOzsKKysqKQorKyAgRUNIT19OPSctbic7OworK2VzYWMKKytpZiBleHByIGEgOiAnXChh XCknID4vZGV2L251bGwgMj4mMSAmJgorKyAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4u XCknYCIgPSBYMDAxOyB0aGVuCisrICBhc19leHByPWV4cHIKKytlbHNlCisrICBhc19leHByPWZh bHNlCisrZmkKKysKKytybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQorK2lmIHRl c3QgLWQgY29uZiQkLmRpcjsgdGhlbgorKyAgcm0gLWYgY29uZiQkLmRpci9jb25mJCQuZmlsZQor K2Vsc2UKKysgIHJtIC1mIGNvbmYkJC5kaXIKKysgIG1rZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251 bGwKKytmaQorK2lmIChlY2hvID5jb25mJCQuZmlsZSkgMj4vZGV2L251bGw7IHRoZW4KKysgIGlm IGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICBhc19sbl9z PSdsbiAtcycKKysgICAgIyAuLi4gYnV0IHRoZXJlIGFyZSB0d28gZ290Y2hhczoKKysgICAgIyAx KSBPbiBNU1lTLCBib3RoIGBsbiAtcyBmaWxlIGRpcicgYW5kIGBsbiBmaWxlIGRpcicgZmFpbC4K KysgICAgIyAyKSBESkdQUCA8IDIuMDQgaGFzIG5vIHN5bWxpbmtzOyBgbG4gLXMnIGNyZWF0ZXMg YSB3cmFwcGVyIGV4ZWN1dGFibGUuCisrICAgICMgSW4gYm90aCBjYXNlcywgd2UgaGF2ZSB0byBk ZWZhdWx0IHRvIGBjcCAtcCcuCisrICAgIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJC5kaXIgMj4v ZGV2L251bGwgJiYgdGVzdCAhIC1mIGNvbmYkJC5leGUgfHwKKysgICAgICBhc19sbl9zPSdjcCAt cCcKKysgIGVsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCisrICAg IGFzX2xuX3M9bG4KKysgIGVsc2UKKysgICAgYXNfbG5fcz0nY3AgLXAnCisrICBmaQorK2Vsc2UK KysgIGFzX2xuX3M9J2NwIC1wJworK2ZpCisrcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQk LmRpci9jb25mJCQuZmlsZSBjb25mJCQuZmlsZQorK3JtZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251 bGwKKysKKytpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCisrICBhc19ta2Rpcl9wPToK KytlbHNlCisrICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAorKyAgYXNfbWtkaXJfcD1mYWxz ZQorK2ZpCisrCisraWYgdGVzdCAteCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfdGVz dF94PSd0ZXN0IC14JworK2Vsc2UKKysgIGlmIGxzIC1kTCAvID4vZGV2L251bGwgMj4mMTsgdGhl bgorKyAgICBhc19sc19MX29wdGlvbj1MCisrICBlbHNlCisrICAgIGFzX2xzX0xfb3B0aW9uPQor KyAgZmkKKysgIGFzX3Rlc3RfeD0nCisrICAgIGV2YWwgc2ggLWMgJ1wnJworKyAgICAgIGlmIHRl c3QgLWQgIiQxIjsgdGhlbgorKwl0ZXN0IC1kICIkMS8uIjsKKysgICAgICBlbHNlCisrCWNhc2Ug JDEgaW4KKysJLSopc2V0ICIuLyQxIjs7CisrCWVzYWM7CisrCWNhc2UgYGxzIC1sZCckYXNfbHNf TF9vcHRpb24nICIkMSIgMj4vZGV2L251bGxgIGluCisrCT8/P1tzeF0qKTo7OyopZmFsc2U7O2Vz YWM7ZmkKKysgICAgJ1wnJyBzaAorKyAgJworK2ZpCisrYXNfZXhlY3V0YWJsZV9wPSRhc190ZXN0 X3gKKysKKysjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQ IG5hbWUuCisrYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9M RVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKKysKKysjIFNlZCBleHByZXNzaW9uIHRv IG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFtZS4KKythc190cl9zaD0iZXZh bCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgorKworKworK2V4ZWMgNj4m MQorKworKyMgU2F2ZSB0aGUgbG9nIG1lc3NhZ2UsIHRvIGtlZXAgJFswXSBhbmQgc28gb24gbWVh bmluZ2Z1bCwgYW5kIHRvCisrIyByZXBvcnQgYWN0dWFsIGlucHV0IHZhbHVlcyBvZiBDT05GSUdf RklMRVMgZXRjLiBpbnN0ZWFkIG9mIHRoZWlyCisrIyB2YWx1ZXMgYWZ0ZXIgb3B0aW9ucyBoYW5k bGluZy4KKythY19sb2c9IgorK1RoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgU09DSSAkYXNfbWUg My4wLjAsIHdoaWNoIHdhcworK2dlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42My4gIEludm9j YXRpb24gY29tbWFuZCBsaW5lIHdhcworKworKyAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19G SUxFUworKyAgQ09ORklHX0hFQURFUlMgID0gJENPTkZJR19IRUFERVJTCisrICBDT05GSUdfTElO S1MgICAgPSAkQ09ORklHX0xJTktTCisrICBDT05GSUdfQ09NTUFORFMgPSAkQ09ORklHX0NPTU1B TkRTCisrICAkICQwICRACisrCisrb24gYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251 bGwgfCBzZWQgMXFgCisrIgorKworK19BQ0VPRgorKworK2Nhc2UgJGFjX2NvbmZpZ19maWxlcyBp biAqIgorKyIqKSBzZXQgeCAkYWNfY29uZmlnX2ZpbGVzOyBzaGlmdDsgYWNfY29uZmlnX2ZpbGVz PSQqOzsKKytlc2FjCisrCisrY2FzZSAkYWNfY29uZmlnX2hlYWRlcnMgaW4gKiIKKysiKikgc2V0 IHggJGFjX2NvbmZpZ19oZWFkZXJzOyBzaGlmdDsgYWNfY29uZmlnX2hlYWRlcnM9JCo7OworK2Vz YWMKKysKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKKysjIEZpbGVzIHRoYXQgY29uZmlnLnN0YXR1cyB3YXMgbWFkZSBmb3IuCisrY29uZmlnX2Zp bGVzPSIkYWNfY29uZmlnX2ZpbGVzIgorK2NvbmZpZ19oZWFkZXJzPSIkYWNfY29uZmlnX2hlYWRl cnMiCisrY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIgorKworK19BQ0VPRgor KworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKyth Y19jc191c2FnZT0iXAorK1xgJGFzX21lJyBpbnN0YW50aWF0ZXMgZmlsZXMgZnJvbSB0ZW1wbGF0 ZXMgYWNjb3JkaW5nIHRvIHRoZQorK2N1cnJlbnQgY29uZmlndXJhdGlvbi4KKysKKytVc2FnZTog JDAgW09QVElPTl0uLi4gW0ZJTEVdLi4uCisrCisrICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRo aXMgaGVscCwgdGhlbiBleGl0CisrICAtViwgLS12ZXJzaW9uICAgIHByaW50IHZlcnNpb24gbnVt YmVyIGFuZCBjb25maWd1cmF0aW9uIHNldHRpbmdzLCB0aGVuIGV4aXQKKysgIC1xLCAtLXF1aWV0 LCAtLXNpbGVudAorKyAgICAgICAgICAgICAgICAgICBkbyBub3QgcHJpbnQgcHJvZ3Jlc3MgbWVz c2FnZXMKKysgIC1kLCAtLWRlYnVnICAgICAgZG9uJ3QgcmVtb3ZlIHRlbXBvcmFyeSBmaWxlcwor KyAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJlY29uZmlndXJpbmcgaW4gdGhl IHNhbWUgY29uZGl0aW9ucworKyAgICAgIC0tZmlsZT1GSUxFWzpURU1QTEFURV0KKysgICAgICAg ICAgICAgICAgICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBGSUxFCisrICAg ICAgLS1oZWFkZXI9RklMRVs6VEVNUExBVEVdCisrICAgICAgICAgICAgICAgICAgIGluc3RhbnRp YXRlIHRoZSBjb25maWd1cmF0aW9uIGhlYWRlciBGSUxFCisrCisrQ29uZmlndXJhdGlvbiBmaWxl czoKKyskY29uZmlnX2ZpbGVzCisrCisrQ29uZmlndXJhdGlvbiBoZWFkZXJzOgorKyRjb25maWdf aGVhZGVycworKworK0NvbmZpZ3VyYXRpb24gY29tbWFuZHM6CisrJGNvbmZpZ19jb21tYW5kcwor KworK1JlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9yZz4uIgorKworK19BQ0VPRgor K2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK2FjX2Nz X3ZlcnNpb249IlxcCisrU09DSSBjb25maWcuc3RhdHVzIDMuMC4wCisrY29uZmlndXJlZCBieSAk MCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjYzLAorKyAgd2l0aCBvcHRpb25zIFxcImAk YXNfZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9eIC8vOyBzL1tcXCIiXGBcJF0v XFxcXCYvZydgXFwiCisrCisrQ29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorK1RoaXMgY29uZmlnLnN0YXR1cyBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorK2dpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4iCisrCisrYWNfcHdkPSckYWNfcHdk JworK3NyY2Rpcj0nJHNyY2RpcicKKytJTlNUQUxMPSckSU5TVEFMTCcKKytNS0RJUl9QPSckTUtE SVJfUCcKKytBV0s9JyRBV0snCisrdGVzdCAtbiAiXCRBV0siIHx8IEFXSz1hd2sKKytfQUNFT0YK KysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisr IyBUaGUgZGVmYXVsdCBsaXN0cyBhcHBseSBpZiB0aGUgdXNlciBkb2VzIG5vdCBzcGVjaWZ5IGFu eSBmaWxlLgorK2FjX25lZWRfZGVmYXVsdHM9OgorK3doaWxlIHRlc3QgJCMgIT0gMAorK2RvCisr ICBjYXNlICQxIGluCisrICAtLSo9KikKKysgICAgYWNfb3B0aW9uPWBleHByICJYJDEiIDogJ1hc KFtePV0qXCk9J2AKKysgICAgYWNfb3B0YXJnPWBleHByICJYJDEiIDogJ1hbXj1dKj1cKC4qXCkn YAorKyAgICBhY19zaGlmdD06CisrICAgIDs7CisrICAqKQorKyAgICBhY19vcHRpb249JDEKKysg ICAgYWNfb3B0YXJnPSQyCisrICAgIGFjX3NoaWZ0PXNoaWZ0CisrICAgIDs7CisrICBlc2FjCisr CisrICBjYXNlICRhY19vcHRpb24gaW4KKysgICMgSGFuZGxpbmcgb2YgdGhlIG9wdGlvbnMuCisr ICAtcmVjaGVjayB8IC0tcmVjaGVjayB8IC0tcmVjaGVjIHwgLS1yZWNoZSB8IC0tcmVjaCB8IC0t cmVjIHwgLS1yZSB8IC0tcikKKysgICAgYWNfY3NfcmVjaGVjaz06IDs7CisrICAtLXZlcnNpb24g fCAtLXZlcnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMgfCAtLXZlciB8IC0tdmUgfCAtLXYgfCAtViAp CisrICAgICRhc19lY2hvICIkYWNfY3NfdmVyc2lvbiI7IGV4aXQgOzsKKysgIC0tZGVidWcgfCAt LWRlYnUgfCAtLWRlYiB8IC0tZGUgfCAtLWQgfCAtZCApCisrICAgIGRlYnVnPTogOzsKKysgIC0t ZmlsZSB8IC0tZmlsIHwgLS1maSB8IC0tZiApCisrICAgICRhY19zaGlmdAorKyAgICBjYXNlICRh Y19vcHRhcmcgaW4KKysgICAgKlwnKikgYWNfb3B0YXJnPWAkYXNfZWNobyAiJGFjX29wdGFyZyIg fCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysgICAgZXNhYworKyAgICBDT05GSUdfRklM RVM9IiRDT05GSUdfRklMRVMgJyRhY19vcHRhcmcnIgorKyAgICBhY19uZWVkX2RlZmF1bHRzPWZh bHNlOzsKKysgIC0taGVhZGVyIHwgLS1oZWFkZSB8IC0taGVhZCB8IC0taGVhICkKKysgICAgJGFj X3NoaWZ0CisrICAgIGNhc2UgJGFjX29wdGFyZyBpbgorKyAgICAqXCcqKSBhY19vcHRhcmc9YCRh c19lY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OworKyAgICBl c2FjCisrICAgIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgJyRhY19vcHRhcmcnIgor KyAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKKysgIC0taGUgfCAtLWgpCisrICAgICMgQ29u ZmxpY3QgYmV0d2VlbiAtLWhlbHAgYW5kIC0taGVhZGVyCisrICAgIHsgJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCisrVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9y ZSBpbmZvcm1hdGlvbi4iID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisrICAt LWhlbHAgfCAtLWhlbCB8IC1oICkKKysgICAgJGFzX2VjaG8gIiRhY19jc191c2FnZSI7IGV4aXQg OzsKKysgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0t cSBcCisrICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCB8 IC0tc2kgfCAtLXMpCisrICAgIGFjX2NzX3NpbGVudD06IDs7CisrCisrICAjIFRoaXMgaXMgYW4g ZXJyb3IuCisrICAtKikgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9w dGlvbjogJDEKKytUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7CisrCisrICAqKSBhY19jb25maWdfdGFyZ2V0 cz0iJGFjX2NvbmZpZ190YXJnZXRzICQxIgorKyAgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZSA7 OworKworKyAgZXNhYworKyAgc2hpZnQKKytkb25lCisrCisrYWNfY29uZmlndXJlX2V4dHJhX2Fy Z3M9CisrCisraWYgJGFjX2NzX3NpbGVudDsgdGhlbgorKyAgZXhlYyA2Pi9kZXYvbnVsbAorKyAg YWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLXNpbGVu dCIKKytmaQorKworK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFj X3dyaXRlX2ZhaWw9MQorK2lmIFwkYWNfY3NfcmVjaGVjazsgdGhlbgorKyAgc2V0IFggJyRTSEVM TCcgJyQwJyAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLW5v LWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgorKyAgc2hpZnQKKysgIFwkYXNfZWNobyAicnVubmluZyBD T05GSUdfU0hFTEw9JFNIRUxMIFwkKiIgPiY2CisrICBDT05GSUdfU0hFTEw9JyRTSEVMTCcKKysg IGV4cG9ydCBDT05GSUdfU0hFTEwKKysgIGV4ZWMgIlwkQCIKKytmaQorKworK19BQ0VPRgorK2Nh dCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKytleGVjIDU+ PmNvbmZpZy5sb2cKKyt7CisrICBlY2hvCisrICBzZWQgJ2g7cy8uLy0vZztzL14uLi4vIyMgLztz Ly4uLiQvICMjLztwO3g7cDt4JyA8PF9BU0JPWAorKyMjIFJ1bm5pbmcgJGFzX21lLiAjIworK19B U0JPWAorKyAgJGFzX2VjaG8gIiRhY19sb2ciCisrfSA+JjUKKysKKytfQUNFT0YKKytjYXQgPj4k Q09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKysjCisrIyBJTklULUNP TU1BTkRTCisrIworK0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBhY19hdXhfZGlyPSIkYWNfYXV4 X2RpciIKKysKKytfQUNFT0YKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwg YWNfd3JpdGVfZmFpbD0xCisrCisrIyBIYW5kbGluZyBvZiBhcmd1bWVudHMuCisrZm9yIGFjX2Nv bmZpZ190YXJnZXQgaW4gJGFjX2NvbmZpZ190YXJnZXRzCisrZG8KKysgIGNhc2UgJGFjX2NvbmZp Z190YXJnZXQgaW4KKysgICAgInNvY2kvY29uZmlnLmgiKSBDT05GSUdfSEVBREVSUz0iJENPTkZJ R19IRUFERVJTIHNvY2kvY29uZmlnLmgiIDs7CisrICAgICJkZXBmaWxlcyIpIENPTkZJR19DT01N QU5EUz0iJENPTkZJR19DT01NQU5EUyBkZXBmaWxlcyIgOzsKKysgICAgIk1ha2VmaWxlIikgQ09O RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIE1ha2VmaWxlIiA7OworKyAgICAic29jaS1jb25maWci KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS1jb25maWciIDs7CisrICAgICJzb2Np LnBjIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kucGMiIDs7CisrICAgICJzb2Np LnNwZWMiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS5zcGVjIiA7OworKyAgICAi c29jaS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL01ha2VmaWxl IiA7OworKyAgICAic29jaS9jb3JlL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIHNvY2kvY29yZS9NYWtlZmlsZSIgOzsKKysgICAgInNvY2kvY29yZS90ZXN0L01ha2VmaWxl IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvY29yZS90ZXN0L01ha2VmaWxlIiA7 OworKyAgICAic29jaS9iYWNrZW5kcy9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G SUxFUyBzb2NpL2JhY2tlbmRzL01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxl IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9N YWtlZmlsZSIgOzsKKysgICAgInNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSIpIENP TkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZp bGUiIDs7CisrICAgICJzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSIpIENP TkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9N YWtlZmlsZSIgOzsKKysgICAgInNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlIiA7Owor KyAgICAic29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0i JENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlIiA7OworKyAg ICAibWFuL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG1hbi9NYWtlZmls ZSIgOzsKKysgICAgImRvYy9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBk b2MvTWFrZWZpbGUiIDs7CisrICAgICJkb2MvYmFja2VuZHMvTWFrZWZpbGUiKSBDT05GSUdfRklM RVM9IiRDT05GSUdfRklMRVMgZG9jL2JhY2tlbmRzL01ha2VmaWxlIiA7OworKyAgICAiYnVpbGQv TWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvTWFrZWZpbGUiIDs7 CisrICAgICJidWlsZC91bml4L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT IGJ1aWxkL3VuaXgvTWFrZWZpbGUiIDs7CisrICAgICJidWlsZC9tc3ZjODAvTWFrZWZpbGUiKSBD T05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2YzgwL01ha2VmaWxlIiA7OworKyAg ICAiYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxF UyBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlIiA7OworKyAgICAiYnVpbGQvbXN2YzgwL2xpYi9N YWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9tc3ZjODAvbGliL01h a2VmaWxlIiA7OworKworKyAgKikgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6 IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mMjt9Cisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKKysgIGVzYWMKKytkb25lCisrCisrCisrIyBJ ZiB0aGUgdXNlciBkaWQgbm90IHVzZSB0aGUgYXJndW1lbnRzIHRvIHNwZWNpZnkgdGhlIGl0ZW1z IHRvIGluc3RhbnRpYXRlLAorKyMgdGhlbiB0aGUgZW52dmFyIGludGVyZmFjZSBpcyB1c2VkLiAg U2V0IG9ubHkgdGhvc2UgdGhhdCBhcmUgbm90LgorKyMgV2UgdXNlIHRoZSBsb25nIGZvcm0gZm9y IHRoZSBkZWZhdWx0IGFzc2lnbm1lbnQgYmVjYXVzZSBvZiBhbiBleHRyZW1lbHkKKysjIGJpemFy cmUgYnVnIG9uIFN1bk9TIDQuMS4zLgorK2lmICRhY19uZWVkX2RlZmF1bHRzOyB0aGVuCisrICB0 ZXN0ICIke0NPTkZJR19GSUxFUytzZXR9IiA9IHNldCB8fCBDT05GSUdfRklMRVM9JGNvbmZpZ19m aWxlcworKyAgdGVzdCAiJHtDT05GSUdfSEVBREVSUytzZXR9IiA9IHNldCB8fCBDT05GSUdfSEVB REVSUz0kY29uZmlnX2hlYWRlcnMKKysgIHRlc3QgIiR7Q09ORklHX0NPTU1BTkRTK3NldH0iID0g c2V0IHx8IENPTkZJR19DT01NQU5EUz0kY29uZmlnX2NvbW1hbmRzCisrZmkKKysKKysjIEhhdmUg YSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciBjb252ZW5pZW5jZS4gIE1ha2UgaXQgaW4gdGhlIGJ1 aWxkIHRyZWUKKysjIHNpbXBseSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlYXNvbiBhZ2FpbnN0IGhh dmluZyBpdCBoZXJlLCBhbmQgaW4gYWRkaXRpb24sCisrIyBjcmVhdGluZyBhbmQgbW92aW5nIGZp bGVzIGZyb20gL3RtcCBjYW4gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zLgorKyMgSG9vayBmb3Ig aXRzIHJlbW92YWwgdW5sZXNzIGRlYnVnZ2luZy4KKysjIE5vdGUgdGhhdCB0aGVyZSBpcyBhIHNt YWxsIHdpbmRvdyBpbiB3aGljaCB0aGUgZGlyZWN0b3J5IHdpbGwgbm90IGJlIGNsZWFuZWQ6Cisr IyBhZnRlciBpdHMgY3JlYXRpb24gYnV0IGJlZm9yZSBpdHMgbmFtZSBoYXMgYmVlbiBhc3NpZ25l ZCB0byBgJHRtcCcuCisrJGRlYnVnIHx8CisreworKyAgdG1wPQorKyAgdHJhcCAnZXhpdF9zdGF0 dXM9JD8KKysgIHsgdGVzdCAteiAiJHRtcCIgfHwgdGVzdCAhIC1kICIkdG1wIiB8fCBybSAtZnIg IiR0bXAiOyB9ICYmIGV4aXQgJGV4aXRfc3RhdHVzCisrJyAwCisrICB0cmFwICd7IChleGl0IDEp OyBleGl0IDE7IH0nIDEgMiAxMyAxNQorK30KKysjIENyZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJl Y3RvcnkgZm9yIHRtcCBmaWxlcy4KKysKKyt7CisrICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1w IC1kICIuL2NvbmZYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYKKysgIHRlc3QgLW4gIiR0bXAiICYm IHRlc3QgLWQgIiR0bXAiCisrfSAgfHwKKyt7CisrICB0bXA9Li9jb25mJCQtJFJBTkRPTQorKyAg KHVtYXNrIDA3NyAmJiBta2RpciAiJHRtcCIpCisrfSB8fAorK3sKKysgICAkYXNfZWNobyAiJGFz X21lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAuIiA+JjIKKysgICB7 IChleGl0IDEpOyBleGl0IDE7IH0KKyt9CisrCisrIyBTZXQgdXAgdGhlIHNjcmlwdHMgZm9yIENP TkZJR19GSUxFUyBzZWN0aW9uLgorKyMgTm8gbmVlZCB0byBnZW5lcmF0ZSB0aGVtIGlmIHRoZXJl IGFyZSBubyBDT05GSUdfRklMRVMuCisrIyBUaGlzIGhhcHBlbnMgZm9yIGluc3RhbmNlIHdpdGgg YC4vY29uZmlnLnN0YXR1cyBjb25maWcuaCcuCisraWYgdGVzdCAtbiAiJENPTkZJR19GSUxFUyI7 IHRoZW4KKysKKysKKythY19jcj0nDScKKythY19jc19hd2tfY3I9YCRBV0sgJ0JFR0lOIHsgcHJp bnQgImFccmIiIH0nIDwvZGV2L251bGwgMj4vZGV2L251bGxgCisraWYgdGVzdCAiJGFjX2NzX2F3 a19jciIgPSAiYSR7YWNfY3J9YiI7IHRoZW4KKysgIGFjX2NzX2F3a19jcj0nXFxyJworK2Vsc2UK KysgIGFjX2NzX2F3a19jcj0kYWNfY3IKKytmaQorKworK2VjaG8gJ0JFR0lOIHsnID4iJHRtcC9z dWJzMS5hd2siICYmCisrX0FDRU9GCisrCisrCisreworKyAgZWNobyAiY2F0ID5jb25mJCRzdWJz LmF3ayA8PF9BQ0VPRiIgJiYKKysgIGVjaG8gIiRhY19zdWJzdF92YXJzIiB8IHNlZCAncy8uKi8m ISQmJGFjX2RlbGltLycgJiYKKysgIGVjaG8gIl9BQ0VPRiIKKyt9ID5jb25mJCRzdWJzLnNoIHx8 CisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IG1ha2Ug JENPTkZJR19TVEFUVVMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3Qg bWFrZSAkQ09ORklHX1NUQVRVUyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K KythY19kZWxpbV9udW09YGVjaG8gIiRhY19zdWJzdF92YXJzIiB8IGdyZXAgLWMgJyQnYAorK2Fj X2RlbGltPSclIV8hIyAnCisrZm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZhbHNlIGZhbHNlIGZh bHNlIGZhbHNlIDo7IGRvCisrICAuIC4vY29uZiQkc3Vicy5zaCB8fAorKyAgICB7IHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NU QVRVUyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysKKysgIGFjX2RlbGlt X249YHNlZCAtbiAicy8uKiRhY19kZWxpbVwkL1gvcCIgY29uZiQkc3Vicy5hd2sgfCBncmVwIC1j IFhgCisrICBpZiB0ZXN0ICRhY19kZWxpbV9uID0gJGFjX2RlbGltX251bTsgdGhlbgorKyAgICBi cmVhaworKyAgZWxpZiAkYWNfbGFzdF90cnk7IHRoZW4KKysgICAgeyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4m Mjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICBlbHNlCisrICAgIGFjX2RlbGlt PSIkYWNfZGVsaW0hJGFjX2RlbGltIF8kYWNfZGVsaW0hISAiCisrICBmaQorK2RvbmUKKytybSAt ZiBjb25mJCRzdWJzLnNoCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNf d3JpdGVfZmFpbD0xCisrY2F0ID4+IlwkdG1wL3N1YnMxLmF3ayIgPDxcXF9BQ0FXSyAmJgorK19B Q0VPRgorK3NlZCAtbiAnCisraAorK3MvXi9TWyIvOyBzLyEuKi8iXT0vCisrcAorK2cKKytzL15b XiFdKiEvLworKzpyZXBsCisrdCByZXBsCisrcy8nIiRhY19kZWxpbSInJC8vCisrdCBkZWxpbQor KzpubAorK2gKKytzL1woLlx7MTQ4XH1cKS4qL1wxLworK3QgbW9yZTEKKytzL1siXFxdL1xcJi9n OyBzL14vIi87IHMvJC9cXG4iXFwvCisrcAorK24KKytiIHJlcGwKKys6bW9yZTEKKytzL1siXFxd L1xcJi9nOyBzL14vIi87IHMvJC8iXFwvCisrcAorK2cKKytzLy5cezE0OFx9Ly8KKyt0IG5sCisr OmRlbGltCisraAorK3MvXCguXHsxNDhcfVwpLiovXDEvCisrdCBtb3JlMgorK3MvWyJcXF0vXFwm L2c7IHMvXi8iLzsgcy8kLyIvCisrcAorK2IKKys6bW9yZTIKKytzL1siXFxdL1xcJi9nOyBzL14v Ii87IHMvJC8iXFwvCisrcAorK2cKKytzLy5cezE0OFx9Ly8KKyt0IGRlbGltCisrJyA8Y29uZiQk c3Vicy5hd2sgfCBzZWQgJworKy9eW14iIl0veworKyAgTgorKyAgcy9cbi8vCisrfQorKycgPj4k Q09ORklHX1NUQVRVUyB8fCBhY193cml0ZV9mYWlsPTEKKytybSAtZiBjb25mJCRzdWJzLmF3awor K2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK19BQ0FX SworK2NhdCA+PiJcJHRtcC9zdWJzMS5hd2siIDw8X0FDQVdLICYmCisrICBmb3IgKGtleSBpbiBT KSBTX2lzX3NldFtrZXldID0gMQorKyAgRlMgPSAiByIKKysKKyt9CisreworKyAgbGluZSA9ICQg MAorKyAgbmZpZWxkcyA9IHNwbGl0KGxpbmUsIGZpZWxkLCAiQCIpCisrICBzdWJzdGVkID0gMAor KyAgbGVuID0gbGVuZ3RoKGZpZWxkWzFdKQorKyAgZm9yIChpID0gMjsgaSA8IG5maWVsZHM7IGkr KykgeworKyAgICBrZXkgPSBmaWVsZFtpXQorKyAgICBrZXlsZW4gPSBsZW5ndGgoa2V5KQorKyAg ICBpZiAoU19pc19zZXRba2V5XSkgeworKyAgICAgIHZhbHVlID0gU1trZXldCisrICAgICAgbGlu ZSA9IHN1YnN0cihsaW5lLCAxLCBsZW4pICIiIHZhbHVlICIiIHN1YnN0cihsaW5lLCBsZW4gKyBr ZXlsZW4gKyAzKQorKyAgICAgIGxlbiArPSBsZW5ndGgodmFsdWUpICsgbGVuZ3RoKGZpZWxkWysr aV0pCisrICAgICAgc3Vic3RlZCA9IDEKKysgICAgfSBlbHNlCisrICAgICAgbGVuICs9IDEgKyBr ZXlsZW4KKysgIH0KKysKKysgIHByaW50IGxpbmUKKyt9CisrCisrX0FDQVdLCisrX0FDRU9GCisr Y2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK2lmIHNl ZCAicy8kYWNfY3IvLyIgPCAvZGV2L251bGwgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorKyAgc2Vk ICJzLyRhY19jclwkLy87IHMvJGFjX2NyLyRhY19jc19hd2tfY3IvZyIKKytlbHNlCisrICBjYXQK KytmaSA8ICIkdG1wL3N1YnMxLmF3ayIgPiAiJHRtcC9zdWJzLmF3ayIgXAorKyAgfHwgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBzZXR1cCBjb25maWcgZmls ZXMgbWFjaGluZXJ5IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IHNl dHVwIGNvbmZpZyBmaWxlcyBtYWNoaW5lcnkiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9CisrX0FDRU9GCisrCisrIyBWUEFUSCBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIHNvbWUg bWFrZXMsIHNvIHdlIHJlbW92ZSAkKHNyY2RpciksCisrIyAke3NyY2Rpcn0gYW5kIEBzcmNkaXJA IGZyb20gVlBBVEggaWYgc3JjZGlyIGlzICIuIiwgc3RyaXAgbGVhZGluZyBhbmQKKysjIHRyYWls aW5nIGNvbG9ucyBhbmQgdGhlbiByZW1vdmUgdGhlIHdob2xlIGxpbmUgaWYgVlBBVEggYmVjb21l cyBlbXB0eQorKyMgKGFjdHVhbGx5IHdlIGxlYXZlIGFuIGVtcHR5IGxpbmUgdG8gcHJlc2VydmUg bGluZSBudW1iZXJzKS4KKytpZiB0ZXN0ICJ4JHNyY2RpciIgPSB4LjsgdGhlbgorKyAgYWNfdnBz dWI9Jy9eWwkgXSpWUEFUSFsJIF0qPS97Cisrcy86KlwkKHNyY2Rpcik6Ki86LworK3MvOipcJHtz cmNkaXJ9OiovOi8KKytzLzoqQHNyY2RpckA6Ki86LworK3MvXlwoW149XSo9WwkgXSpcKToqL1wx LworK3MvOiokLy8KKytzL15bXj1dKj1bCSBdKiQvLworK30nCisrZmkKKysKKytjYXQgPj4kQ09O RklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrZmkgIyB0ZXN0IC1uICIk Q09ORklHX0ZJTEVTIgorKworKyMgU2V0IHVwIHRoZSBzY3JpcHRzIGZvciBDT05GSUdfSEVBREVS UyBzZWN0aW9uLgorKyMgTm8gbmVlZCB0byBnZW5lcmF0ZSB0aGVtIGlmIHRoZXJlIGFyZSBubyBD T05GSUdfSEVBREVSUy4KKysjIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugd2l0aCBgLi9jb25m aWcuc3RhdHVzIE1ha2VmaWxlJy4KKytpZiB0ZXN0IC1uICIkQ09ORklHX0hFQURFUlMiOyB0aGVu CisrY2F0ID4iJHRtcC9kZWZpbmVzLmF3ayIgPDxcX0FDQVdLIHx8CisrQkVHSU4geworK19BQ0VP RgorKworKyMgVHJhbnNmb3JtIGNvbmZkZWZzLmggaW50byBhbiBhd2sgc2NyaXB0IGBkZWZpbmVz LmF3aycsIGVtYmVkZGVkIGFzCisrIyBoZXJlLWRvY3VtZW50IGluIGNvbmZpZy5zdGF0dXMsIHRo YXQgc3Vic3RpdHV0ZXMgdGhlIHByb3BlciB2YWx1ZXMgaW50bworKyMgY29uZmlnLmguaW4gdG8g cHJvZHVjZSBjb25maWcuaC4KKysKKysjIENyZWF0ZSBhIGRlbGltaXRlciBzdHJpbmcgdGhhdCBk b2VzIG5vdCBleGlzdCBpbiBjb25mZGVmcy5oLCB0byBlYXNlCisrIyBoYW5kbGluZyBvZiBsb25n IGxpbmVzLgorK2FjX2RlbGltPSclIV8hIyAnCisrZm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZh bHNlIDo7IGRvCisrICBhY190PWBzZWQgLW4gIi8kYWNfZGVsaW0vcCIgY29uZmRlZnMuaGAKKysg IGlmIHRlc3QgLXogIiRhY190IjsgdGhlbgorKyAgICBicmVhaworKyAgZWxpZiAkYWNfbGFzdF90 cnk7IHRoZW4KKysgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxk IG5vdCBtYWtlICRDT05GSUdfSEVBREVSUyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfSEVBREVSUyIgPiYyO30KKysgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KKysgIGVsc2UKKysgICAgYWNfZGVsaW09IiRhY19kZWxpbSEkYWNfZGVsaW0g XyRhY19kZWxpbSEhICIKKysgIGZpCisrZG9uZQorKworKyMgRm9yIHRoZSBhd2sgc2NyaXB0LCBE IGlzIGFuIGFycmF5IG9mIG1hY3JvIHZhbHVlcyBrZXllZCBieSBuYW1lLAorKyMgbGlrZXdpc2Ug UCBjb250YWlucyBtYWNybyBwYXJhbWV0ZXJzIGlmIGFueS4gIFByZXNlcnZlIGJhY2tzbGFzaAor KyMgbmV3bGluZSBzZXF1ZW5jZXMuCisrCisrYWNfd29yZF9yZT1bXyRhc19jcl9MZXR0ZXJzXVtf JGFzX2NyX2FsbnVtXSoKKytzZWQgLW4gJworK3MvLlx7MTQ4XH0vJiciJGFjX2RlbGltIicvZwor K3QgcnNldAorKzpyc2V0Cisrcy9eWwkgXSojWwkgXSpkZWZpbmVbCSBdWwkgXSovIC8KKyt0IGRl ZgorK2QKKys6ZGVmCisrcy9cXCQvLworK3QgYnNubAorK3MvWyJcXF0vXFwmL2cKKytzL14gXCgn IiRhY193b3JkX3JlIidcKVwoKFteKCldKilcKVsJIF0qXCguKlwpL1BbIlwxIl09IlwyIlwKKytE WyJcMSJdPSIgXDMiL3AKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVsJIF0qXCguKlwpL0RbIlwx Il09IiBcMiIvcAorK2QKKys6YnNubAorK3MvWyJcXF0vXFwmL2cKKytzL14gXCgnIiRhY193b3Jk X3JlIidcKVwoKFteKCldKilcKVsJIF0qXCguKlwpL1BbIlwxIl09IlwyIlwKKytEWyJcMSJdPSIg XDNcXFxcXFxuIlxcL3AKKyt0IGNvbnQKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVsJIF0qXCgu KlwpL0RbIlwxIl09IiBcMlxcXFxcXG4iXFwvcAorK3QgY29udAorK2QKKys6Y29udAorK24KKytz Ly5cezE0OFx9LyYnIiRhY19kZWxpbSInL2cKKyt0IGNsZWFyCisrOmNsZWFyCisrcy9cXCQvLwor K3QgYnNubGMKKytzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8iL3AKKytkCisrOmJzbmxjCisr cy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvXFxcXFxcbiJcXC9wCisrYiBjb250CisrJyA8Y29u ZmRlZnMuaCB8IHNlZCAnCisrcy8nIiRhY19kZWxpbSInLyJcXFwKKysiL2cnID4+JENPTkZJR19T VEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0xCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNF T0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrICBmb3IgKGtleSBpbiBEKSBEX2lzX3NldFtrZXldID0g MQorKyAgRlMgPSAiByIKKyt9CisrL15bXHQgXSojW1x0IF0qKGRlZmluZXx1bmRlZilbXHQgXSsk YWNfd29yZF9yZShbXHQgKF18XCQpLyB7CisrICBsaW5lID0gXCQgMAorKyAgc3BsaXQobGluZSwg YXJnLCAiICIpCisrICBpZiAoYXJnWzFdID09ICIjIikgeworKyAgICBkZWZ1bmRlZiA9IGFyZ1sy XQorKyAgICBtYWMxID0gYXJnWzNdCisrICB9IGVsc2UgeworKyAgICBkZWZ1bmRlZiA9IHN1YnN0 cihhcmdbMV0sIDIpCisrICAgIG1hYzEgPSBhcmdbMl0KKysgIH0KKysgIHNwbGl0KG1hYzEsIG1h YzIsICIoIikgIykKKysgIG1hY3JvID0gbWFjMlsxXQorKyAgcHJlZml4ID0gc3Vic3RyKGxpbmUs IDEsIGluZGV4KGxpbmUsIGRlZnVuZGVmKSAtIDEpCisrICBpZiAoRF9pc19zZXRbbWFjcm9dKSB7 CisrICAgICMgUHJlc2VydmUgdGhlIHdoaXRlIHNwYWNlIHN1cnJvdW5kaW5nIHRoZSAiIyIuCisr ICAgIHByaW50IHByZWZpeCAiZGVmaW5lIiwgbWFjcm8gUFttYWNyb10gRFttYWNyb10KKysgICAg bmV4dAorKyAgfSBlbHNlIHsKKysgICAgIyBSZXBsYWNlICN1bmRlZiB3aXRoIGNvbW1lbnRzLiAg VGhpcyBpcyBuZWNlc3NhcnksIGZvciBleGFtcGxlLAorKyAgICAjIGluIHRoZSBjYXNlIG9mIF9Q T1NJWF9TT1VSQ0UsIHdoaWNoIGlzIHByZWRlZmluZWQgYW5kIHJlcXVpcmVkCisrICAgICMgb24g c29tZSBzeXN0ZW1zIHdoZXJlIGNvbmZpZ3VyZSB3aWxsIG5vdCBkZWNpZGUgdG8gZGVmaW5lIGl0 LgorKyAgICBpZiAoZGVmdW5kZWYgPT0gInVuZGVmIikgeworKyAgICAgIHByaW50ICIvKiIsIHBy ZWZpeCBkZWZ1bmRlZiwgbWFjcm8sICIqLyIKKysgICAgICBuZXh0CisrICAgIH0KKysgIH0KKyt9 CisreyBwcmludCB9CisrX0FDQVdLCisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxc X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGNvdWxkIG5vdCBzZXR1cCBjb25maWcgaGVhZGVycyBtYWNoaW5lcnkiID4mNQor KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGhlYWRlcnMg bWFjaGluZXJ5IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpICMgdGVz dCAtbiAiJENPTkZJR19IRUFERVJTIgorKworKworK2V2YWwgc2V0IFggIiAgOkYgJENPTkZJR19G SUxFUyAgOkggJENPTkZJR19IRUFERVJTICAgIDpDICRDT05GSUdfQ09NTUFORFMiCisrc2hpZnQK Kytmb3IgYWNfdGFnCisrZG8KKysgIGNhc2UgJGFjX3RhZyBpbgorKyAgOltGSExDXSkgYWNfbW9k ZT0kYWNfdGFnOyBjb250aW51ZTs7CisrICBlc2FjCisrICBjYXNlICRhY19tb2RlJGFjX3RhZyBp bgorKyAgOltGSExdKjoqKTs7CisrICA6TCogfCA6Qyo6KikgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGludmFsaWQgdGFnICRhY190YWciID4mNQorKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBpbnZhbGlkIHRhZyAkYWNfdGFnIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfTs7CisrICA6W0ZIXS0pIGFjX3RhZz0tOi07OworKyAgOltGSF0qKSBhY190YWc9 JGFjX3RhZzokYWNfdGFnLmluOzsKKysgIGVzYWMKKysgIGFjX3NhdmVfSUZTPSRJRlMKKysgIElG Uz06CisrICBzZXQgeCAkYWNfdGFnCisrICBJRlM9JGFjX3NhdmVfSUZTCisrICBzaGlmdAorKyAg YWNfZmlsZT0kMQorKyAgc2hpZnQKKysKKysgIGNhc2UgJGFjX21vZGUgaW4KKysgIDpMKSBhY19z b3VyY2U9JDE7OworKyAgOltGSF0pCisrICAgIGFjX2ZpbGVfaW5wdXRzPQorKyAgICBmb3IgYWNf ZgorKyAgICBkbworKyAgICAgIGNhc2UgJGFjX2YgaW4KKysgICAgICAtKSBhY19mPSIkdG1wL3N0 ZGluIjs7CisrICAgICAgKikgIyBMb29rIGZvciB0aGUgZmlsZSBmaXJzdCBpbiB0aGUgYnVpbGQg dHJlZSwgdGhlbiBpbiB0aGUgc291cmNlIHRyZWUKKysJICMgKGlmIHRoZSBwYXRoIGlzIG5vdCBh YnNvbHV0ZSkuICBUaGUgYWJzb2x1dGUgcGF0aCBjYW5ub3QgYmUgRE9TLXN0eWxlLAorKwkgIyBi ZWNhdXNlICRhY19mIGNhbm5vdCBjb250YWluIGA6Jy4KKysJIHRlc3QgLWYgIiRhY19mIiB8fAor KwkgICBjYXNlICRhY19mIGluCisrCSAgIFtcXC8kXSopIGZhbHNlOzsKKysJICAgKikgdGVzdCAt ZiAiJHNyY2Rpci8kYWNfZiIgJiYgYWNfZj0iJHNyY2Rpci8kYWNfZiI7OworKwkgICBlc2FjIHx8 CisrCSAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBp bnB1dCBmaWxlOiAkYWNfZiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBm aW5kIGlucHV0IGZpbGU6ICRhY19mIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fTs7CisrICAgICAgZXNhYworKyAgICAgIGNhc2UgJGFjX2YgaW4gKlwnKikgYWNfZj1gJGFzX2Vj aG8gIiRhY19mIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7IGVzYWMKKysgICAgICBhY19m aWxlX2lucHV0cz0iJGFjX2ZpbGVfaW5wdXRzICckYWNfZiciCisrICAgIGRvbmUKKysKKysgICAg IyBMZXQncyBzdGlsbCBwcmV0ZW5kIGl0IGlzIGBjb25maWd1cmUnIHdoaWNoIGluc3RhbnRpYXRl cyAoaS5lLiwgZG9uJ3QKKysgICAgIyB1c2UgJGFzX21lKSwgcGVvcGxlIHdvdWxkIGJlIHN1cnBy aXNlZCB0byByZWFkOgorKyAgICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZp Zy5zdGF0dXMuICAqLworKyAgICBjb25maWd1cmVfaW5wdXQ9J0dlbmVyYXRlZCBmcm9tICdgCisr CSAgJGFzX2VjaG8gIiQqIiB8IHNlZCAnc3xeW146XSovfHw7c3w6W146XSovfCwgfGcnCisrCWAn IGJ5IGNvbmZpZ3VyZS4nCisrICAgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KKysg ICAgICBjb25maWd1cmVfaW5wdXQ9IiRhY19maWxlLiAgJGNvbmZpZ3VyZV9pbnB1dCIKKysgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19maWxlIiA+JjY7fQorKyAgICBmaQorKyAgICAj IE5ldXRyYWxpemUgc3BlY2lhbCBjaGFyYWN0ZXJzIGludGVycHJldGVkIGJ5IHNlZCBpbiByZXBs YWNlbWVudCBzdHJpbmdzLgorKyAgICBjYXNlICRjb25maWd1cmVfaW5wdXQgaW4gIygKKysgICAg KlwmKiB8ICpcfCogfCAqXFwqICkKKysgICAgICAgYWNfc2VkX2NvbmZfaW5wdXQ9YCRhc19lY2hv ICIkY29uZmlndXJlX2lucHV0IiB8CisrICAgICAgIHNlZCAncy9bXFxcXCZ8XS9cXFxcJi9nJ2A7 OyAjKAorKyAgICAqKSBhY19zZWRfY29uZl9pbnB1dD0kY29uZmlndXJlX2lucHV0OzsKKysgICAg ZXNhYworKworKyAgICBjYXNlICRhY190YWcgaW4KKysgICAgKjotOiogfCAqOi0pIGNhdCA+IiR0 bXAvc3RkaW4iIFwKKysgICAgICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9IDs7CisrICAgIGVzYWMKKysgICAgOzsKKysgIGVzYWMKKysKKysgIGFjX2Rpcj1g JGFzX2Rpcm5hbWUgLS0gIiRhY19maWxlIiB8fAorKyRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hc KC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBYIiRhY19maWxlIiA6ICdYXCgvL1wp W14vXScgXHwgXAorKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJGFjX2Zp bGUiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJGFjX2ZpbGUi IHwKKysgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMv L1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9c MS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkg ICAgcQorKwkgIH0KKysJICAvXlhcKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJ ICB9CisrCSAgcy8uKi8uLzsgcSdgCisrICB7IGFzX2Rpcj0iJGFjX2RpciIKKysgIGNhc2UgJGFz X2RpciBpbiAjKAorKyAgLSopIGFzX2Rpcj0uLyRhc19kaXI7OworKyAgZXNhYworKyAgdGVzdCAt ZCAiJGFzX2RpciIgfHwgeyAkYXNfbWtkaXJfcCAmJiBta2RpciAtcCAiJGFzX2RpciI7IH0gfHwg eworKyAgICBhc19kaXJzPQorKyAgICB3aGlsZSA6OyBkbworKyAgICAgIGNhc2UgJGFzX2RpciBp biAjKAorKyAgICAgICpcJyopIGFzX3FkaXI9YCRhc19lY2hvICIkYXNfZGlyIiB8IHNlZCAicy8n LydcXFxcXFxcXCcnL2ciYDs7ICMnKAorKyAgICAgICopIGFzX3FkaXI9JGFzX2Rpcjs7CisrICAg ICAgZXNhYworKyAgICAgIGFzX2RpcnM9IickYXNfcWRpcicgJGFzX2RpcnMiCisrICAgICAgYXNf ZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFzX2RpciIgfHwKKyskYXNfZXhwciBYIiRhc19kaXIiIDog J1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBYIiRhc19kaXIiIDogJ1hcKC8v XClbXi9dJyBcfCBcCisrCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRhc19k aXIiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJGFzX2RpciIg fAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8v XDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wx LworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAg ICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkg IH0KKysJICBzLy4qLy4vOyBxJ2AKKysgICAgICB0ZXN0IC1kICIkYXNfZGlyIiAmJiBicmVhawor KyAgICBkb25lCisrICAgIHRlc3QgLXogIiRhc19kaXJzIiB8fCBldmFsICJta2RpciAkYXNfZGly cyIKKysgIH0gfHwgdGVzdCAtZCAiJGFzX2RpciIgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiID4mNQorKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjI7 fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorKyAgYWNfYnVpbGRkaXI9LgorKwor K2Nhc2UgIiRhY19kaXIiIGluCisrLikgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyX3N1 Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7CisrKikKKysgIGFjX2Rpcl9zdWZmaXg9L2AkYXNf ZWNobyAiJGFjX2RpciIgfCBzZWQgJ3N8XlwuW1xcL118fCdgCisrICAjIEEgIi4uIiBmb3IgZWFj aCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCisrICBhY190b3BfYnVpbGRkaXJfc3ViPWAk YXNfZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzfC9bXlxcL10qfC8uLnxnO3N8L3x8J2AK KysgIGNhc2UgJGFjX3RvcF9idWlsZGRpcl9zdWIgaW4KKysgICIiKSBhY190b3BfYnVpbGRkaXJf c3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKKysgICopICBhY190b3BfYnVpbGRfcHJlZml4 PSRhY190b3BfYnVpbGRkaXJfc3ViLyA7OworKyAgZXNhYyA7OworK2VzYWMKKythY19hYnNfdG9w X2J1aWxkZGlyPSRhY19wd2QKKythY19hYnNfYnVpbGRkaXI9JGFjX3B3ZCRhY19kaXJfc3VmZml4 CisrIyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eToKKythY190b3BfYnVpbGRkaXI9JGFjX3Rv cF9idWlsZF9wcmVmaXgKKysKKytjYXNlICRzcmNkaXIgaW4KKysgIC4pICAjIFdlIGFyZSBidWls ZGluZyBpbiBwbGFjZS4KKysgICAgYWNfc3JjZGlyPS4KKysgICAgYWNfdG9wX3NyY2Rpcj0kYWNf dG9wX2J1aWxkZGlyX3N1YgorKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkIDs7CisrICBb XFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIG5hbWUuCisrICAgIGFjX3NyY2Rpcj0kc3Jj ZGlyJGFjX2Rpcl9zdWZmaXg7CisrICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpcgorKyAgICBhY19h YnNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7CisrICAqKSAjIFJlbGF0aXZlIG5hbWUuCisrICAgIGFj X3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIkYWNfZGlyX3N1ZmZpeAorKyAgICBh Y190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpcgorKyAgICBhY19hYnNfdG9w X3NyY2Rpcj0kYWNfcHdkLyRzcmNkaXIgOzsKKytlc2FjCisrYWNfYWJzX3NyY2Rpcj0kYWNfYWJz X3RvcF9zcmNkaXIkYWNfZGlyX3N1ZmZpeAorKworKworKyAgY2FzZSAkYWNfbW9kZSBpbgorKyAg OkYpCisrICAjCisrICAjIENPTkZJR19GSUxFCisrICAjCisrCisrICBjYXNlICRJTlNUQUxMIGlu CisrICBbXFwvJF0qIHwgPzpbXFwvXSogKSBhY19JTlNUQUxMPSRJTlNUQUxMIDs7CisrICAqKSBh Y19JTlNUQUxMPSRhY190b3BfYnVpbGRfcHJlZml4JElOU1RBTEwgOzsKKysgIGVzYWMKKysgIGFj X01LRElSX1A9JE1LRElSX1AKKysgIGNhc2UgJE1LRElSX1AgaW4KKysgIFtcXC8kXSogfCA/Oltc XC9dKiApIDs7CisrICAqLyopIGFjX01LRElSX1A9JGFjX3RvcF9idWlsZF9wcmVmaXgkTUtESVJf UCA7OworKyAgZXNhYworK19BQ0VPRgorKworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VP RiB8fCBhY193cml0ZV9mYWlsPTEKKysjIElmIHRoZSB0ZW1wbGF0ZSBkb2VzIG5vdCBrbm93IGFi b3V0IGRhdGFyb290ZGlyLCBleHBhbmQgaXQuCisrIyBGSVhNRTogVGhpcyBoYWNrIHNob3VsZCBi ZSByZW1vdmVkIGEgZmV3IHllYXJzIGFmdGVyIDIuNjAuCisrYWNfZGF0YXJvb3RkaXJfaGFjaz07 IGFjX2RhdGFyb290ZGlyX3NlZW49CisrCisrYWNfc2VkX2RhdGFyb290PScKKysvZGF0YXJvb3Rk aXIvIHsKKysgIHAKKysgIHEKKyt9CisrL0BkYXRhZGlyQC9wCisrL0Bkb2NkaXJAL3AKKysvQGlu Zm9kaXJAL3AKKysvQGxvY2FsZWRpckAvcAorKy9AbWFuZGlyQC9wCisrJworK2Nhc2UgYGV2YWwg InNlZCAtbiBcIlwkYWNfc2VkX2RhdGFyb290XCIgJGFjX2ZpbGVfaW5wdXRzImAgaW4KKysqZGF0 YXJvb3RkaXIqKSBhY19kYXRhcm9vdGRpcl9zZWVuPXllczs7CisrKkBkYXRhZGlyQCp8KkBkb2Nk aXJAKnwqQGluZm9kaXJAKnwqQGxvY2FsZWRpckAqfCpAbWFuZGlyQCopCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2ZpbGVfaW5wdXRzIHNlZW1zIHRvIGlnbm9y ZSB0aGUgLS1kYXRhcm9vdGRpciBzZXR0aW5nIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiAkYWNfZmlsZV9pbnB1dHMgc2VlbXMgdG8gaWdub3JlIHRoZSAtLWRhdGFyb290ZGlyIHNl dHRpbmciID4mMjt9CisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwg YWNfd3JpdGVfZmFpbD0xCisrICBhY19kYXRhcm9vdGRpcl9oYWNrPScKKysgIHMmQGRhdGFkaXJA JiRkYXRhZGlyJmcKKysgIHMmQGRvY2RpckAmJGRvY2RpciZnCisrICBzJkBpbmZvZGlyQCYkaW5m b2RpciZnCisrICBzJkBsb2NhbGVkaXJAJiRsb2NhbGVkaXImZworKyAgcyZAbWFuZGlyQCYkbWFu ZGlyJmcKKysgICAgcyZcXFwke2RhdGFyb290ZGlyfSYkZGF0YXJvb3RkaXImZycgOzsKKytlc2Fj CisrX0FDRU9GCisrCisrIyBOZXV0cmFsaXplIFZQQVRIIHdoZW4gYCRzcmNkaXInID0gYC4nLgor KyMgU2hlbGwgY29kZSBpbiBjb25maWd1cmUuYWMgbWlnaHQgc2V0IGV4dHJhc3ViLgorKyMgRklY TUU6IGRvIHdlIHJlYWxseSB3YW50IHRvIG1haW50YWluIHRoaXMgZmVhdHVyZT8KKytjYXQgPj4k Q09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKythY19zZWRfZXh0cmE9 IiRhY192cHN1YgorKyRleHRyYXN1YgorK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8 XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKys6dAorKy9AW2EtekEtWl9dW2EtekEtWl8wLTld KkAvIWIKKytzfEBjb25maWd1cmVfaW5wdXRAfCRhY19zZWRfY29uZl9pbnB1dHw7dCB0CisrcyZA dG9wX2J1aWxkZGlyQCYkYWNfdG9wX2J1aWxkZGlyX3N1YiY7dCB0CisrcyZAdG9wX2J1aWxkX3By ZWZpeEAmJGFjX3RvcF9idWlsZF9wcmVmaXgmO3QgdAorK3MmQHNyY2RpckAmJGFjX3NyY2RpciY7 dCB0CisrcyZAYWJzX3NyY2RpckAmJGFjX2Fic19zcmNkaXImO3QgdAorK3MmQHRvcF9zcmNkaXJA JiRhY190b3Bfc3JjZGlyJjt0IHQKKytzJkBhYnNfdG9wX3NyY2RpckAmJGFjX2Fic190b3Bfc3Jj ZGlyJjt0IHQKKytzJkBidWlsZGRpckAmJGFjX2J1aWxkZGlyJjt0IHQKKytzJkBhYnNfYnVpbGRk aXJAJiRhY19hYnNfYnVpbGRkaXImO3QgdAorK3MmQGFic190b3BfYnVpbGRkaXJAJiRhY19hYnNf dG9wX2J1aWxkZGlyJjt0IHQKKytzJkBJTlNUQUxMQCYkYWNfSU5TVEFMTCY7dCB0CisrcyZATUtE SVJfUEAmJGFjX01LRElSX1AmO3QgdAorKyRhY19kYXRhcm9vdGRpcl9oYWNrCisrIgorK2V2YWwg c2VkIFwiXCRhY19zZWRfZXh0cmFcIiAiJGFjX2ZpbGVfaW5wdXRzIiB8ICRBV0sgLWYgIiR0bXAv c3Vicy5hd2siID4kdG1wL291dCBcCisrICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mMjt9CisrICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9CisrCisrdGVzdCAteiAiJGFjX2RhdGFyb290ZGlyX2hhY2skYWNfZGF0 YXJvb3RkaXJfc2VlbiIgJiYKKysgIHsgYWNfb3V0PWBzZWQgLW4gJy9cJHtkYXRhcm9vdGRpcn0v cCcgIiR0bXAvb3V0ImA7IHRlc3QgLW4gIiRhY19vdXQiOyB9ICYmCisrICB7IGFjX291dD1gc2Vk IC1uICcvXlsJIF0qZGF0YXJvb3RkaXJbCSBdKjoqPS9wJyAiJHRtcC9vdXQiYDsgdGVzdCAteiAi JGFjX291dCI7IH0gJiYKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAk YWNfZmlsZSBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFyaWFibGUgXGBkYXRhcm9vdGRp cicKKyt3aGljaCBzZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlz IGRlZmluZWQuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfZmlsZSBjb250 YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFyaWFibGUgXGBkYXRhcm9vdGRpcicKKyt3aGljaCBz ZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQuIiA+ JjI7fQorKworKyAgcm0gLWYgIiR0bXAvc3RkaW4iCisrICBjYXNlICRhY19maWxlIGluCisrICAt KSBjYXQgIiR0bXAvb3V0IiAmJiBybSAtZiAiJHRtcC9vdXQiOzsKKysgICopIHJtIC1mICIkYWNf ZmlsZSIgJiYgbXYgIiR0bXAvb3V0IiAiJGFjX2ZpbGUiOzsKKysgIGVzYWMgXAorKyAgfHwgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2Zp bGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19m aWxlIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyA7OworKyAgOkgpCisr ICAjCisrICAjIENPTkZJR19IRUFERVIKKysgICMKKysgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0g eC07IHRoZW4KKysgICAgeworKyAgICAgICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAq LyIgXAorKyAgICAgICYmIGV2YWwgJyRBV0sgLWYgIiR0bXAvZGVmaW5lcy5hd2siJyAiJGFjX2Zp bGVfaW5wdXRzIgorKyAgICB9ID4iJHRtcC9jb25maWcuaCIgXAorKyAgICAgIHx8IHsgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIg PiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgaWYgZGlmZiAiJGFjX2Zp bGUiICIkdG1wL2NvbmZpZy5oIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9CisrICAgIGVsc2UKKysgICAg ICBybSAtZiAiJGFjX2ZpbGUiCisrICAgICAgbXYgIiR0bXAvY29uZmlnLmgiICIkYWNfZmlsZSIg XAorKwl8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGNy ZWF0ZSAkYWNfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBj cmVhdGUgJGFjX2ZpbGUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICAg IGZpCisrICBlbHNlCisrICAgICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAqLyIgXAor KyAgICAgICYmIGV2YWwgJyRBV0sgLWYgIiR0bXAvZGVmaW5lcy5hd2siJyAiJGFjX2ZpbGVfaW5w dXRzIiBcCisrICAgICAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNv dWxkIG5vdCBjcmVhdGUgLSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5v dCBjcmVhdGUgLSIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGZpCisr IyBDb21wdXRlICIkYWNfZmlsZSIncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCisrX2FtX2Fy Zz0iJGFjX2ZpbGUiCisrX2FtX3N0YW1wX2NvdW50PTEKKytmb3IgX2FtX2hlYWRlciBpbiAkY29u ZmlnX2hlYWRlcnMgOjsgZG8KKysgIGNhc2UgJF9hbV9oZWFkZXIgaW4KKysgICAgJF9hbV9hcmcg fCAkX2FtX2FyZzoqICkKKysgICAgICBicmVhayA7OworKyAgICAqICkKKysgICAgICBfYW1fc3Rh bXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFgIDs7CisrICBlc2FjCisrZG9uZQor K2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gJGFzX2Rpcm5hbWUgLS0gIiRfYW1fYXJn IiB8fAorKyRhc19leHByIFgiJF9hbV9hcmciIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyok JyBcfCBcCisrCSBYIiRfYW1fYXJnIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIkX2FtX2Fy ZyIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJF9hbV9hcmciIDogJ1hcKC9cKScgXHwgLiAyPi9k ZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJF9hbV9hcmciIHwKKysgICAgc2VkICcvXlhcKC4qW14v XVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJ ICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAg L15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwv XCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgL3N0 YW1wLWgkX2FtX3N0YW1wX2NvdW50CisrIDs7CisrCisrICA6QykgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBleGVjdXRpbmcgJGFjX2ZpbGUgY29tbWFuZHMiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5kcyIgPiY2O30KKysgOzsKKysgIGVzYWMK KysKKysKKysgIGNhc2UgJGFjX2ZpbGUkYWNfbW9kZSBpbgorKyAgICAiZGVwZmlsZXMiOkMpIHRl c3QgeCIkQU1ERVBfVFJVRSIgIT0geCIiIHx8IGZvciBtZiBpbiAkQ09ORklHX0ZJTEVTOyBkbwor KyAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KKysg IG1mPWBlY2hvICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydgCisrICAjIENoZWNrIHdoZXRoZXIg dGhpcyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgb3Igbm90LgorKyAgIyBXZSB1 c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAorKyAg IyBzb21lIHBlb3BsZSByZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxl IGNvbnRlbnQuCisrICAjIEdyZXAnaW5nIHRoZSBmaXJzdCBsaW5lIGlzIG5vdCBlbm91Z2g6IHNv bWUgcGVvcGxlIHBvc3QtcHJvY2VzcworKyAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBu ZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KKysgICMgR3JlcCdpbmcgdGhl IHdob2xlIGZpbGUgaXMgbm90IGdvb2QgZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBsaW5lCisrICAj IGxpbWl0IG9mIDIwNDgsIGJ1dCBhbGwgc2VkJ3Mgd2Uga25vdyBoYXZlIHVuZGVyc3RhbmQgYXQg bGVhc3QgNDAwMC4KKysgIGlmIHNlZCAtbiAncyxeIy4qZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlLios WCxwJyAiJG1mIiB8IGdyZXAgWCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgZGlycGFydD1g JGFzX2Rpcm5hbWUgLS0gIiRtZiIgfHwKKyskYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9dXCkv LypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJG1mIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkg WCIkbWYiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRtZiIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rl di9udWxsIHx8CisrJGFzX2VjaG8gWCIkbWYiIHwKKysgICAgc2VkICcvXlhcKC4qW14vXVwpXC9c LypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhc KFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChc L1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXCkuKi97 CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrICBlbHNl CisrICAgIGNvbnRpbnVlCisrICBmaQorKyAgIyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIERF UERJUiwgYW1fX2luY2x1ZGUsIGFuZCBhbV9fcXVvdGUKKysgICMgZnJvbSB0aGUgTWFrZWZpbGUg d2l0aG91dCBydW5uaW5nIGBtYWtlJy4KKysgIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAv L3AnIDwgIiRtZiJgCisrICB0ZXN0IC16ICIkREVQRElSIiAmJiBjb250aW51ZQorKyAgYW1fX2lu Y2x1ZGU9YHNlZCAtbiAncy9eYW1fX2luY2x1ZGUgPSAvL3AnIDwgIiRtZiJgCisrICB0ZXN0IC16 ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKKysgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9f cXVvdGUgPSAvL3AnIDwgIiRtZiJgCisrICAjIFdoZW4gdXNpbmcgYW5zaTJrbnIsIFUgbWF5IGJl IGVtcHR5IG9yIGFuIHVuZGVyc2NvcmU7IGV4cGFuZCBpdAorKyAgVT1gc2VkIC1uICdzL15VID0g Ly9wJyA8ICIkbWYiYAorKyAgIyBGaW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywgdGhl eSBhcmUgaW5jbHVkZWQgZmlsZXMgd2l0aAorKyAgIyAkKERFUERJUikgaW4gdGhlaXIgbmFtZXMu ICBXZSBpbnZva2Ugc2VkIHR3aWNlIGJlY2F1c2UgaXQgaXMgdGhlCisrICAjIHNpbXBsZXN0IGFw cHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQor KyAgIyBleHBhbnNpb24uCisrICBmb3IgZmlsZSBpbiBgc2VkIC1uICIKKysgICAgcy9eJGFtX19p bmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRt ZiIgfCBcCisrICAgICAgIHNlZCAtZSAncy9cJChERVBESVIpLyciJERFUERJUiInL2cnIC1lICdz L1wkVS8nIiRVIicvZydgOyBkbworKyAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0 cy4KKysgICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCisrICAgIGZkaXI9 YCRhc19kaXJuYW1lIC0tICIkZmlsZSIgfHwKKyskYXNfZXhwciBYIiRmaWxlIiA6ICdYXCguKlte L11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorKwkgWCIkZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8 IFwKKysJIFgiJGZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRmaWxlIiA6ICdYXCgvXCkn IFx8IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRmaWxlIiB8CisrICAgIHNlZCAnL15Y XCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJ ICB9CisrCSAgL15YXChcL1wvXClbXi9dLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAg fQorKwkgIC9eWFwoXC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAg L15YXChcL1wpLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIHMvLiovLi87 IHEnYAorKyAgICB7IGFzX2Rpcj0kZGlycGFydC8kZmRpcgorKyAgY2FzZSAkYXNfZGlyIGluICMo CisrICAtKikgYXNfZGlyPS4vJGFzX2Rpcjs7CisrICBlc2FjCisrICB0ZXN0IC1kICIkYXNfZGly IiB8fCB7ICRhc19ta2Rpcl9wICYmIG1rZGlyIC1wICIkYXNfZGlyIjsgfSB8fCB7CisrICAgIGFz X2RpcnM9CisrICAgIHdoaWxlIDo7IGRvCisrICAgICAgY2FzZSAkYXNfZGlyIGluICMoCisrICAg ICAgKlwnKikgYXNfcWRpcj1gJGFzX2VjaG8gIiRhc19kaXIiIHwgc2VkICJzLycvJ1xcXFxcXFxc JycvZyJgOzsgIycoCisrICAgICAgKikgYXNfcWRpcj0kYXNfZGlyOzsKKysgICAgICBlc2FjCisr ICAgICAgYXNfZGlycz0iJyRhc19xZGlyJyAkYXNfZGlycyIKKysgICAgICBhc19kaXI9YCRhc19k aXJuYW1lIC0tICIkYXNfZGlyIiB8fAorKyRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9d XCkvLypbXi9dW14vXSovKiQnIFx8IFwKKysJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8 IFwKKysJIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJGFzX2RpciIgOiAnWFwo L1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2VjaG8gWCIkYXNfZGlyIiB8CisrICAgIHNl ZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97CisrCSAgICBzLy9cMS8KKysJICAg IHEKKysJICB9CisrCSAgL15YXChcL1wvXClbXi9dLioveworKwkgICAgcy8vXDEvCisrCSAgICBx CisrCSAgfQorKwkgIC9eWFwoXC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9 CisrCSAgL15YXChcL1wpLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIHMv LiovLi87IHEnYAorKyAgICAgIHRlc3QgLWQgIiRhc19kaXIiICYmIGJyZWFrCisrICAgIGRvbmUK KysgICAgdGVzdCAteiAiJGFzX2RpcnMiIHx8IGV2YWwgIm1rZGlyICRhc19kaXJzIgorKyAgfSB8 fCB0ZXN0IC1kICIkYXNfZGlyIiB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiY1CisrJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiID4mMjt9CisrICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQv JGZpbGUiCisrICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgorKyAgZG9uZQor K2RvbmUKKysgOzsKKysKKysgIGVzYWMKKytkb25lICMgZm9yIGFjX3RhZworKworKworK3sgKGV4 aXQgMCk7IGV4aXQgMDsgfQorK19BQ0VPRgorK2NobW9kICt4ICRDT05GSUdfU1RBVFVTCisrYWNf Y2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKKysKKyt0ZXN0ICRhY193cml0ZV9mYWls ID0gMCB8fAorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHdyaXRlIGZh aWx1cmUgY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiB3cml0ZSBmYWlsdXJlIGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjI7fQorKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworKworKyMgY29uZmlndXJlIGlzIHdyaXRpbmcgdG8g Y29uZmlnLmxvZywgYW5kIHRoZW4gY2FsbHMgY29uZmlnLnN0YXR1cy4KKysjIGNvbmZpZy5zdGF0 dXMgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLCBhcHBlbmRpbmcgdG8gY29uZmlnLmxvZy4KKysj IFVuZm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25maWcubG9nIGlzIHN0aWxs IGtlcHQgb3BlbgorKyMgYnkgY29uZmlndXJlLCBzbyBjb25maWcuc3RhdHVzIHdvbid0IGJlIGFi bGUgdG8gd3JpdGUgdG8gaXQ7IGl0cworKyMgb3V0cHV0IGlzIHNpbXBseSBkaXNjYXJkZWQuICBT byB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsCisrIyBlZmZlY3RpdmVseSBjbG9zaW5nIGNv bmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZAorKyMgYXBwZW5k ZWQgdG8gYnkgY29uZmlnLnN0YXR1cy4gIFdoZW4gY29taW5nIGJhY2sgdG8gY29uZmlndXJlLCB3 ZQorKyMgbmVlZCB0byBtYWtlIHRoZSBGRCBhdmFpbGFibGUgYWdhaW4uCisraWYgdGVzdCAiJG5v X2NyZWF0ZSIgIT0geWVzOyB0aGVuCisrICBhY19jc19zdWNjZXNzPToKKysgIGFjX2NvbmZpZ19z dGF0dXNfYXJncz0KKysgIHRlc3QgIiRzaWxlbnQiID0geWVzICYmCisrICAgIGFjX2NvbmZpZ19z dGF0dXNfYXJncz0iJGFjX2NvbmZpZ19zdGF0dXNfYXJncyAtLXF1aWV0IgorKyAgZXhlYyA1Pi9k ZXYvbnVsbAorKyAgJFNIRUxMICRDT05GSUdfU1RBVFVTICRhY19jb25maWdfc3RhdHVzX2FyZ3Mg fHwgYWNfY3Nfc3VjY2Vzcz1mYWxzZQorKyAgZXhlYyA1Pj5jb25maWcubG9nCisrICAjIFVzZSB8 fCwgbm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlmIHdpdGggJD8gPSAxLCB3aGlj aAorKyAgIyB3b3VsZCBtYWtlIGNvbmZpZ3VyZSBmYWlsIGlmIHRoaXMgaXMgdGhlIGxhc3QgaW5z dHJ1Y3Rpb24uCisrICAkYWNfY3Nfc3VjY2VzcyB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KKytm aQorK2lmIHRlc3QgLW4gIiRhY191bnJlY29nbml6ZWRfb3B0cyIgJiYgdGVzdCAiJGVuYWJsZV9v cHRpb25fY2hlY2tpbmciICE9IG5vOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRh Y191bnJlY29nbml6ZWRfb3B0cyIgPiYyO30KKytmaQorKworKworK2VjaG8gIgorKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkgY29uZmlndXJhdGlvbjoK KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytEaXJlY3RvcmllczoKKysgIC0gcHJlZml4IC4u Li4uLi4uLi4uLi4uLiA6ICR7cHJlZml4fQorKyAgLSBleGVjX3ByZWZpeCAuLi4uLi4uLi4uIDog JHtleGVjX3ByZWZpeH0KKysgIC0gaW5jbHVkZWRpciAuLi4uLi4uLi4uLiA6ICR7aW5jbHVkZWRp cn0KKysgIC0gbGliZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bGliZGlyfQorKyAgLSBkb2NkaXIg Li4uLi4uLi4uLi4uLi4uIDogJHtkb2NkaXJ9CisrICAtIG1hbmRpciAuLi4uLi4uLi4uLi4uLi4g OiAke21hbmRpcn0KKysgIC0gaW5mb2RpciAuLi4uLi4uLi4uLi4uLiA6ICR7aW5mb2Rpcn0KKysK KytTd2l0Y2hlczoKKysgIC0gZXhjZXB0aW9ucyAuLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2V4Y2Vw dGlvbnN9CisrICAtIGluZm8tZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9pbmZvX2RvY30K KysgIC0gaHRtbC1kb2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2h0bWxfZG9jfQorKyAgLSBz aGFyZWQgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc2hhcmVkfQorKyAgLSBzdGF0aWMgLi4u Li4uLi4uLi4uLi4uIDogJHtlbmFibGVfc3RhdGljfQorKworK0RvY3VtZW50YXRpb24gdG9vbHM6 CisrICAtIHRleGluZm8gLi4uLi4uLi4uLi4uLi4gOiAke3RleGluZm9fb2t9CisrICAtIGRveHln ZW4gLi4uLi4uLi4uLi4uLi4gOiAke2RveHlnZW5fb2t9CisrICAtIGxhdGV4IC4uLi4uLi4uLi4u Li4uLi4gOiAke2xhdGV4X29rfQorKyAgLSBkdmlwcyAuLi4uLi4uLi4uLi4uLi4uIDogJHtkdmlw c19va30KKysgIC0gZ2hvc3RzY3JpcHQgLi4uLi4uLi4uLiA6ICR7Z3Nfb2t9CisrCisrVGVzdGlu ZyB0b29sczoKKysgIC0gZGlmZiAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZGlmZl9va30KKysgIC0g c2VkIC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7c2VkX29rfQorKworK0NvbXBpbGVyL2xpbmtlciBm bGFncy9saWJzL2RlZnM6CisrICAtIENYWCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke0NYWH0KKysg IC0gQ1hYRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1hYRkxBR1N9CisrICAtIENQUEZMQUdTIC4u Li4uLi4uLi4uLi4gOiAke0NQUEZMQUdTfQorKyAgLSBMREZMQUdTIC4uLi4uLi4uLi4uLi4uIDog JHtMREZMQUdTfQorKyAgLSBMSUJTIC4uLi4uLi4uLi4uLi4uLi4uIDogJHtMSUJTfQorKworK0J1 cnJpZWQgaGVhZGVyIGZpbGVzOgorKyAgLSBTT0NJX0hFQURFUlNfQlVSSUVEIC4uLi4uLi4gOiAk e2VuYWJsZV9idXJyaWVkX2hlYWRlcnN9CisrICAtIE1ZU1FMX0hFQURFUlNfQlVSSUVEIC4uLi4u LiA6ICR7ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVyc30KKysgIC0gUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFRCAuIDogJHtlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnN9CisrCisr RXh0ZXJuYWwgbGlicmFyaWVzOgorKyAgLSBCb29zdCAuLi4uLi4uLi4uLi4uLi4uIDoKKysgICAg byBCT09TVF9WRVJTSU9OIC4uLi4uLiA6ICR7Qk9PU1RfVkVSU0lPTn0KKysgICAgbyBCT09TVF9D RkxBR1MgLi4uLi4uLiA6ICR7Qk9PU1RfQ0ZMQUdTfQorKyAgICBvIEJPT1NUX0xJQlMgLi4uLi4u Li4uIDogJHtCT09TVF9MSUJTfQorKyAgICBvIEJPT1NUX0RUX0xJQiAuLi4uLi4uIDogJHtCT09T VF9EQVRFX1RJTUVfTElCfQorKyAgICBvIEJPT1NUX1BPX0xJQiAuLi4uLi4uIDogJHtCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCfQorKworKyAgLSBNeVNRTCBzdXBwb3J0IC4uLi4uLi4uIDogJHtl bmFibGVfYmFja2VuZF9teXNxbH0KKysgICAgbyBNWVNRTF9WRVJTSU9OIC4uLi4uLiA6ICR7TVlT UUxfVkVSU0lPTn0KKysgICAgbyBNWVNRTF9DRkxBR1MgLi4uLi4uLiA6ICR7TVlTUUxfQ0ZMQUdT fQorKyAgICBvIE1ZU1FMX0xERkxBR1MgLi4uLi4uIDogJHtNWVNRTF9MREZMQUdTfQorKworKyAg LSBQb3N0R3JlU1FMIHN1cHBvcnQgLi4uIDogJHtlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsfQor KyAgICBvIFBPU1RHUkVTUUxfVkVSU0lPTiAuIDogJHtQT1NUR1JFU1FMX1ZFUlNJT059CisrICAg IG8gUE9TVEdSRVNRTF9DRkxBR1MgLi4gOiAke1BPU1RHUkVTUUxfQ0ZMQUdTfQorKyAgICBvIFBP U1RHUkVTUUxfTERGTEFHUyAuIDogJHtQT1NUR1JFU1FMX0xERkxBR1N9CisrCisrICAtIE9yYWNs ZSBzdXBwb3J0IC4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX29yYWNsZX0KKysgICAgbyBPUkFD TEVfVkVSU0lPTiAuLi4uLiA6ICR7T1JBQ0xFX09DSV9WRVJTSU9OfQorKyAgICBvIE9SQUNMRV9D RkxBR1MgLi4uLi4uIDogJHtPUkFDTEVfT0NJX0NGTEFHU30KKysgICAgbyBPUkFDTEVfTERGTEFH UyAuLi4uLiA6ICR7T1JBQ0xFX09DSV9MREZMQUdTfQorKworKyAgLSBDUFBVbml0IC4uLi4uLi4u Li4uLi4uIDoKKysgICAgbyBDUFBVTklUX1ZFUlNJT04gLi4uLiA6ICR7Q1BQVU5JVF9WRVJTSU9O fQorKyAgICBvIENQUFVOSVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBVTklUX0NGTEFHU30KKysgICAg byBDUFBVTklUX0xJQlMgLi4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJTfQorKworKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorK05vdyB0eXBlICdtYWtlICYmIG1ha2UgaW5zdGFsbCcgdG8gYnVpbGQgYW5k IGluc3RhbGwgJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeQorKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUuYWMgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZ3VyZS5hYworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZ3VyZS5h YwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9jb25maWd1cmUuYWMJMjAwOS0wNS0wMyAwMDowMTo0My4wMDAwMDAwMDAgKzAyMDAKK0BA IC0wLDAgKzEsNDAwIEBACisrIyBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIHBy b2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0CisrIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19QUkVSRVEoMi41OSkK KytBQ19DT1BZUklHSFQoW0NvcHlyaWdodCAoQykgMjAwNC0yMDA5IE1hY2llaiBTb2JjemFrIDxt c29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+XSkKKytBQ19JTklUKFtTT0NJXSxbMy4wLjBd LFttc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXRdLFtzb2NpXSkKKytBQ19DT05GSUdfSEVB REVSKFtzb2NpL2NvbmZpZy5oXSkKKytBQ19DT05GSUdfU1JDRElSKFtzb2NpL2NvcmUvZXJyb3Iu Y3BwXSkKKytBQ19DT05GSUdfQVVYX0RJUihbY29uZmlnXSkKKytBTV9JTklUX0FVVE9NQUtFCisr QU1fUEFUSF9DUFBVTklUKDEuMTApCisrQU1fQ09ORElUSU9OQUwoW0hBVkVfQ1BQVU5JVF0sIFt0 ZXN0ICJ4JENQUFVOSVRfTElCUyIgIT0geF0pCisrCisrIyBSUE0gcmVsZWFzZSBudW1iZXIKKytS UE1fUkVMRUFTRT0iNiIKKytBQ19TVUJTVChSUE1fUkVMRUFTRSkKKysKKysjIFNoYXJlZCBsaWJy YXJ5IHZlcnNpb25pbmcKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTj0iMzowOjAiCisrIyAgICAg ICAgICAgICAgICAgICAgICAgIHwgfCB8CisrIyAgICAgICAgICAgICAgICAgKy0tLS0tLSsgfCAr LS0tKworKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgIHwKKysjICAgICAgICAgICAg ICBjdXJyZW50OnJldmlzaW9uOmFnZQorKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAg IHwKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICArLSBpbmNyZW1lbnQgaWYgaW50 ZXJmYWNlcyBoYXZlIGJlZW4gYWRkZWQ7CisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAg ICAgICAgc2V0IHRvIHplcm8gaWYgaW50ZXJmYWNlcyBoYXZlIGJlZW4gCisrIyAgICAgICAgICAg ICAgICAgfCAgICAgICAgfCAgICAgICAgcmVtb3ZlZCBvciBjaGFuZ2VkCisrIyAgICAgICAgICAg ICAgICAgfCAgICAgICAgKy0gaW5jcmVtZW50IGlmIHNvdXJjZSBjb2RlIGhhcyBjaGFuZ2VkOwor KyMgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHNldCB0byB6ZXJvIGlmIGN1cnJlbnQgaXMg aW5jcmVtZW50ZWQKKysjICAgICAgICAgICAgICAgICArLSBpbmNyZW1lbnQgaWYgaW50ZXJmYWNl cyBoYXZlIGJlZW4gYWRkZWQsIHJlbW92ZWQKKysjICAgICAgICAgICAgICAgICAgICBvciBjaGFu Z2VkCisrQUNfU1VCU1QoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisrCisrIyBVcGxvYWQgY29t bWFuZCBmb3IgU291cmNlRm9yZ2UKKytVUExPQURfQ09NTUFORD0ibmNmdHBwdXQgLXYgdXBsb2Fk LnNvdXJjZWZvcmdlLm5ldCAvaW5jb21pbmciCisrQUNfU1VCU1QoVVBMT0FEX0NPTU1BTkQpCisr CisrIyBDaGVjayBmb3IgaG9zdCBhbmQgZGlzYWJsZSBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5 IGluIFdpbmRvd3MKKytBQ19DQU5PTklDQUxfSE9TVAorK2Nhc2UgJGhvc3QgaW4KKysgICotKi1t c2RvcyogfCAqLSotZ28zMiogfCAqLSotbWluZ3czMiogfCAqLSotY3lnd2luKiB8ICotKi13aW5k b3dzKikgCisrICAgIEFDX0RJU0FCTEVfU0hBUkVECisrICAgIEFDX0VOQUJMRV9TVEFUSUMKKysg ICAgOzsKKysgICopICAKKysgICAgQUNfRU5BQkxFX1NIQVJFRAorKyAgICBBQ19ESVNBQkxFX1NU QVRJQworKyAgICA7OworK2VzYWMKKysKKysjIENoZWNrcyBmb3IgcHJvZ3JhbXMKKytzYXZlX0NY WEZMQUdTPSIkQ1hYRkxBR1MiCisrQUNfUFJPR19DWFgKKytBQ19QUk9HX0NYWENQUAorK0NYWEZM QUdTPSIkc2F2ZV9DWFhGTEFHUyIKKytBQ19QUk9HX0lOU1RBTEwKKytBQ19QUk9HX0xJQlRPT0wK KytBQ19QUk9HX0xOX1MKKytBQ19QUk9HX01BS0VfU0VUCisrCisrIyBTZXQgZGVmYXVsdCBsYW5n dWFnZSB0byBDKysKKytBQ19MQU5HKFtDKytdKQorKworKyMgQ2hlY2sgZm9yIGV4Y2VwdGlvbnMg c3dpdGNoCisrQUNfQVJHX0VOQUJMRShleGNlcHRpb25zLAorKyAgICAgICAgICAgICAgW0FTX0hF TFBfU1RSSU5HKFstLWVuYWJsZS1leGNlcHRpb25zXSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbZW5hYmxlIGV4Y2VwdGlvbnMgaGFuZGxpbmcgbWVjaGFuaXNtXSldLAorKyAgICAg ICAgICAgICAgW0FDX0RFRklORShbU09DSV9FWENFUFRJT05TXSwgWzFdLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICBbRGVmaW5lIGlmIHlvdSB3YW50IGV4Y2VwdGlvbnMgaGFuZGxpbmddKV0p CisrdGVzdCAieCRlbmFibGVfZXhjZXB0aW9ucyIgIT0geG5vICYmIGVuYWJsZV9leGNlcHRpb25z PXllcworK3Rlc3QgIngkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiAhPSB4bm8gJiYgZW5hYmxlX2V4 Y2VwdGlvbnM9eWVzCisrCisrIyBDaGVjayBmb3IgaW5mbyBwYWdlcworK0FDX0FSR19FTkFCTEUo aW5mby1kb2MsIAorKyAgICAgICAgICAgICAgW0FTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtaW5m by1kb2NdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkbyBub3QgZ2VuZXJhdGUg SW5mbyBkb2N1bWVudGF0aW9uXSldKQorK3Rlc3QgIngkZW5hYmxlX2luZm9fZG9jIiAhPSB4bm8g JiYgZW5hYmxlX2luZm9fZG9jPXllcworKworKworKyMgQ2hlY2sgZm9yIGh0bWwtZG9jIHN3aXRj aAorK0FDX0FSR19FTkFCTEUoaHRtbC1kb2MsIAorKyAgICAgICAgICAgICAgW0FTX0hFTFBfU1RS SU5HKFstLWRpc2FibGUtaHRtbC1kb2NdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFtkbyBub3QgZ2VuZXJhdGUgSFRNTCBkb2N1bWVudGF0aW9uXSldKQorK3Rlc3QgIngkZW5hYmxl X2h0bWxfZG9jIiAhPSB4bm8gJiYgZW5hYmxlX2h0bWxfZG9jPXllcworKworKworKyMgUHJvdmlk ZSAtLXdpdGgtZG9jZGlyCisrQUNfQVJHX1dJVEgoZG9jZGlyLAorKyAgICAgICAgICAgIFtBU19I RUxQX1NUUklORyhbLS13aXRoLWRvY2Rpcj1ESVJdLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbc2V0IGRvY3VtZW50YXRpb24gZGlyZWN0b3J5IHRvIERJUl0pXSwKKysgICAgICAgICAg ICBbRE9DX0RJUj0iJHdpdGh2YWwiXSwKKysgICAgICAgICAgICBbRE9DX0RJUj0iIl0pCisraWYg dGVzdCAieCRET0NfRElSIiAhPSB4OyB0aGVuCisrICBkb2NkaXI9IiRET0NfRElSIgorK2Vsc2UK KysgIGRvY2Rpcj0iJHtkYXRhZGlyfS9kb2MvJFBBQ0tBR0UtJFZFUlNJT04iCisrZmkKKytBQ19T VUJTVChkb2NkaXIpCisrCisrCisrIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZv ciBTT0NJIGl0c2VsZikKKytBQ19BUkdfRU5BQkxFKGJ1cnJpZWQtaGVhZGVycywgCisrIEFTX0hF TFBfU1RSSU5HKFstLWVuYWJsZS1idXJyaWVkLWhlYWRlcnNdLAorKwkJW2luY2x1ZGUgaGVhZGVy IGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkgc3RydWN0dXJlXSksCisrIFsgaWYgdGVzdCAiJGVuYWJs ZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KKysgICBl bHNlCisrICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgICBmaSBdLAorKyBbIGVu YWJsZV9idXJyaWVkX2hlYWRlcnM9bm8gXSkKKysjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFj a2FnZXMgZ2VuZXJhdGlvbgorK2VuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCisrQU1fQ09ORElU SU9OQUwoW1NPQ0lfSEVBREVSU19CVVJJRURdLCBbdGVzdCAieCRlbmFibGVfYnVycmllZF9oZWFk ZXJzIiA9IHh5ZXNdKQorK0FDX1NVQlNUKFNPQ0lfSEVBREVSU19CVVJJRUQpCisraWYgdGVzdCAi eCRlbmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgICBDUFBGTEFHUz0iLURT T0NJX0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKKytmaQorKworKyMgQ2hlY2sgZm9yIGJ1cnJp ZWQgaGVhZGVyIGZpbGVzIChmb3IgTXlTUUwgY2xpZW50KQorK0FDX0FSR19FTkFCTEUobXlzcWwt YnVycmllZC1oZWFkZXJzLCAKKysgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLW15c3FsLWJ1cnJp ZWQtaGVhZGVyc10sCisrCQlbaW5jbHVkZSBNeVNRTCBoZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVj dG9yeSBzdHJ1Y3R1cmVdKSwKKysgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisr CWVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KKysgICBlbHNlCisrCWVuYWJsZV9teXNx bF9idXJyaWVkX2hlYWRlcnM9eWVzCisrICAgZmkgXSwKKysgWyBlbmFibGVfbXlzcWxfYnVycmll ZF9oZWFkZXJzPW5vIF0pCisrIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVy YXRpb24KKytlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPXllcworK0FNX0NPTkRJVElPTkFM KFtTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEXSwKKysgICAgICAgICAgICAgICBbdGVzdCAieCRl bmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXNdKQorK0FDX1NVQlNUKFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRUQpCisraWYgdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFk ZXJzIiA9IHh5ZXM7IHRoZW4KKysgICBDUFBGTEFHUz0iLURTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEICRDUFBGTEFHUyIKKytmaQorKworKyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVz IChmb3IgUG9zdEdyZVNRTCBjbGllbnQpCisrQUNfQVJHX0VOQUJMRShwb3N0Z3Jlc3FsLWJ1cnJp ZWQtaGVhZGVycywgCisrIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1wb3N0Z3Jlc3FsLWJ1cnJp ZWQtaGVhZGVyc10sCisrCQlbaW5jbHVkZSBQb3N0R3JlU1FMIGhlYWRlciBmaWxlcyBmcm9tIGEg ZGlyZWN0b3J5IHN0cnVjdHVyZV0pLAorKyBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRo ZW4KKysJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPW5vCisrICAgZWxzZQorKwll bmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrICAgZmkgXSwKKysgWyBlbmFi bGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8gXSkKKysjIFRlbXBvcmFyeSwgZm9yIHRo ZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgorK2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVh ZGVycz15ZXMKKytBTV9DT05ESVRJT05BTChbU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE XSwKKysgICAgICAgICAgICAgICBbdGVzdCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hl YWRlcnMiID0geHllc10pCisrQUNfU1VCU1QoU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE KQorK2lmIHRlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7 IHRoZW4KKysgICBDUFBGTEFHUz0iLURTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgJENQ UEZMQUdTIgorK2ZpCisrCisrCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQm9vc3QgKFNUTCBFeHRlbnNpb25zOiBodHRwOi8v d3d3LmJvb3N0Lm9yZykKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrQVhfQk9PU1QoWzEuMzNdKQorK0FDX1NVQlNUKEJPT1NUX1ZF UlNJT04pCisrQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKQorK0FDX1NVQlNUKEJPT1NUX0xJQlMpCisr QUNfU1VCU1QoQk9PU1RfREFURV9USU1FX0xJQikKKytBQ19TVUJTVChCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCKQorKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIE15U1FMIGJh Y2tlbmQgKEMgY2xpZW50IEFQSSk6IGh0dHA6Ly93d3cubXlzcWwub3JnCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtbXlzcWxdLAorKyAgICBBQ19IRUxQX1NUUklORyhb LS1lbmFibGUtYmFja2VuZC1teXNxbF0sCisrICAgICAgICBbYnVpbGQtaW4gTXlTUUwgYmFja2Vu ZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0KKysgICAgKSwKKysgICAgWyBpZiB0ZXN0ICIk ZW5hYmxldmFsIiA9IG5vOyB0aGVuCisrICAgICAgCSBlbmFibGVfYmFja2VuZF9teXNxbD1ubwor KyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX215c3FsPXllcworKyAgICAgIGZpIF0sCisr ICAgIFsgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8gXQorKykKKysKKytpZiB0ZXN0ICJ4JGVuYWJs ZV9iYWNrZW5kX215c3FsIiA9ICJ4eWVzIjsgdGhlbgorKyAgIE1ZU1FMX0RJUlM9Im15c3FsIgor KyAgIE1ZU1FMX1JFUV9WRVJTSU9OPSIzLjAuMCIKKysgICBBWF9MSUJfTVlTUUwoWyRNWVNRTF9S RVFfVkVSU0lPTl0pCisrZmkKKytBTV9DT05ESVRJT05BTChbSEFWRV9NWVNRTF0sIFt0ZXN0ICJ4 JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9IHh5ZXNdKQorKyNNWVNRTF9ESVJTPSJteXNxbCIKKysK KytBQ19TVUJTVChbTVlTUUxfRElSU10pCisrCisrCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTdXBwb3J0 IGZvciBPcmFjbGUgYmFja2VuZAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0FSR19FTkFCTEUoW2JhY2tl bmQtb3JhY2xlXSwKKysgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJhY2tlbmQtb3JhY2xl XSwKKysJCSAgIFtidWlsZC1pbiBPUkFDTEUgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5v QDo+QF0pLAorKyAgICBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysgICAgICAJ IGVuYWJsZV9iYWNrZW5kX29yYWNsZT1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5k X29yYWNsZT15ZXMKKysgICAgICBmaSBdLAorKyAgICBbIGVuYWJsZV9iYWNrZW5kX29yYWNsZT1u byBdCisrKQorKworK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9ICJ4eWVzIjsg dGhlbgorKyAgIE9SQUNMRV9ESVJTPSJvcmFjbGUiCisrICAgT1JBQ0xFX09DSV9SRVFfVkVSU0lP Tj0iOS4wIgorKyAgIEFYX0xJQl9PUkFDTEVfT0NJKCRPUkFDTEVfT0NJX1JFUV9WRVJTSU9OKQor K2ZpCisrQU1fQ09ORElUSU9OQUwoW0hBVkVfT1JBQ0xFXSwgW3Rlc3QgIngkZW5hYmxlX2JhY2tl bmRfb3JhY2xlIiA9IHh5ZXNdKQorKyNPUkFDTEVfRElSUz0ib3JhY2xlIgorKworK0FDX1NVQlNU KFtPUkFDTEVfRElSU10pCisrCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTdXBwb3J0IGZvciBQb3N0Z3Jl U1FMIGJhY2tlbmQKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19BUkdfRU5BQkxFKFtiYWNrZW5kLXBvc3Rn cmVzcWxdLAorKyAgICBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3Fs XSwKKysgICAgICAgIFtidWlsZC1pbiBQb3N0Z3JlU1FMIGJhY2tlbmQgc3VwcG9ydCBAPDpAZGVm YXVsdD1ub0A6PkBdCisrICAgICksCisrICAgIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsg dGhlbgorKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD1ubworKyAgICAgIGVsc2UK KysJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9eWVzCisrICAgICAgZmkgXSwKKysgICAgWyBl bmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPW5vIF0KKyspCisrCisraWYgdGVzdCAieCRlbmFibGVf YmFja2VuZF9wb3N0Z3Jlc3FsIiA9ICJ4eWVzIjsgdGhlbgorKyAgIFBPU1RHUkVTUUxfRElSUz0i cG9zdGdyZXNxbCIKKysgICBQT1NUR1JFU1FMX1JFUV9WRVJTSU9OPSI3LjEuNCIKKysgICBBWF9M SUJfUE9TVEdSRVNRTCgkUE9TVEdSRVNRTF9SRVFfVkVSU0lPTikKKytmaQorK0FNX0NPTkRJVElP TkFMKFtIQVZFX1BPU1RHUkVTUUxdLCBbdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3Fs IiA9IHh5ZXNdKQorKyNQT1NUR1JFU1FMX0RJUlM9InBvc3RncmVzcWwiCisrCisrQUNfU1VCU1Qo W1BPU1RHUkVTUUxfRElSU10pCisrCisrCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTdXBwb3J0IGZvciBk b2N1bWVudGF0aW9uCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVja3MgZm9yIGRvY3VtZW50YXRpb24g YnVpbGQgdG9vbHMKKysjQUNfQ0hFQ0tfUFJPRyhbdGV4aW5mb19va10sIFt0ZXhpbmZvXSwgW3ll c10sIFtub10pCisrI2lmIHRlc3QgIngkZW5hYmxlX2luZm9fZG9jIiAhPSB4bm87IHRoZW4KKysj ICB0ZXN0ICJ4JHRleGluZm9fb2siICE9IHh5ZXMgJiYgZW5hYmxlX2luZm9fZG9jPW5vCisrIyAg QUNfUEFUSF9QUk9HKFtQRVJMXSwgW3BlcmxdLCBbXSkKKysjZmkKKytBTV9DT05ESVRJT05BTChb SU5GT19ET0NdLCBbdGVzdCAieCRlbmFibGVfaW5mb19kb2MiID0geHllc10pCisrCisrIyBDaGVj a3MgZm9yIGRvY3VtZW50YXRpb24gYnVpbGQgdG9vbHMKKytBQ19DSEVDS19QUk9HKFtkb3h5Z2Vu X29rXSwgW2RveHlnZW5dLCBbeWVzXSwgW25vXSkKKytBQ19DSEVDS19QUk9HKFtsYXRleF9va10s IFtsYXRleF0sIFt5ZXNdLCBbbm9dKQorK0FDX0NIRUNLX1BST0coW2R2aXBzX29rXSwgW2R2aXBz XSwgW3llc10sIFtub10pCisrQUNfQ0hFQ0tfUFJPRyhbZ3Nfb2tdLCBbZ3NdLCBbeWVzXSwgW25v XSkKKytpZiB0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0geG5vOyB0aGVuCisrICB0ZXN0ICJ4 JGRveHlnZW5fb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGxh dGV4X29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubworKyAgdGVzdCAieCRkdmlwc19v ayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRlc3QgIngkZ3Nfb2siICE9IHh5 ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0s IFtdKQorK2ZpCisrQU1fQ09ORElUSU9OQUwoW0hUTUxfRE9DXSwgW3Rlc3QgIngkZW5hYmxlX2h0 bWxfZG9jIiA9IHh5ZXNdKQorKworKworKyMgQ2hlY2sgZm9yIGRpZmYgcHJvZ3JhbSB1c2VkIGZv ciB0ZXN0cworK0FDX0NIRUNLX1BST0coW2RpZmZfb2tdLCBbZGlmZl0sIFt5ZXNdLCBbbm9dKQor K0FDX0NIRUNLX1BST0coW3NlZF9va10sIFtzZWRdLCBbeWVzXSwgW25vXSkKKytlbmFibGVfdGVz dHM9eWVzCisrdGVzdCAieCRkaWZmX29rIiAhPSB4eWVzICYmIGVuYWJsZV90ZXN0cz1ubworK3Rl c3QgIngkc2VkX29rIiAhPSB4eWVzICYmIGVuYWJsZV90ZXN0cz1ubworK0FNX0NPTkRJVElPTkFM KFtSVU5fVEVTVFNdLCBbdGVzdCAieCRlbmFibGVfdGVzdHMiID0geHllc10pCisrCisrCisrIyBD aGVja3MgZm9yIGhlYWRlciBmaWxlcworK0FDX0hFQURFUl9TVERDCisrQUNfSEVBREVSX1RJTUUK KytBQ19DSEVDS19IRUFERVJTKFtjbWF0aCBcCisrICBkZXF1ZSBcCisrICBmc3RyZWFtIFwKKysg IGlvbWFuaXAgXAorKyAgaW9zdHJlYW0gXAorKyAgc3N0cmVhbSBcCisrICBsaW1pdHMgXAorKyAg bGlzdCBcCisrICBzZXQgXAorKyAgdmVjdG9yIFwKKysgIG1hcCBcCisrICBxdWV1ZSBcCisrICBz dGRleGNlcHQgXAorKyAgc3RyaW5nXSkKKysKKysKKysjIERlZmluZSBjb25maWd1cmVkIGZpbGVz CisrQUNfQ09ORklHX0ZJTEVTKAorKwlNYWtlZmlsZQorKwlzb2NpLWNvbmZpZworKwlzb2NpLnBj CisrCXNvY2kuc3BlYworKwlzb2NpL01ha2VmaWxlCisrCXNvY2kvY29yZS9NYWtlZmlsZQorKwlz b2NpL2NvcmUvdGVzdC9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRzL01ha2VmaWxlCisrCXNvY2kv YmFja2VuZHMvbXlzcWwvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2Vm aWxlCisrCXNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmls ZQorKwlzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlCisrCW1hbi9NYWtlZmlsZQor KyAgICAgICAgZG9jL01ha2VmaWxlCisrICAgICAgICBkb2MvYmFja2VuZHMvTWFrZWZpbGUKKysJ YnVpbGQvTWFrZWZpbGUKKysJYnVpbGQvdW5peC9NYWtlZmlsZQorKwlidWlsZC9tc3ZjODAvTWFr ZWZpbGUKKysJYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZQorKwlidWlsZC9tc3ZjODAvbGliL01h a2VmaWxlKQorKworK0FDX09VVFBVVAorKworK2VjaG8gIgorKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkgY29uZmlndXJhdGlvbjoKKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysKKytEaXJlY3RvcmllczoKKysgIC0gcHJlZml4IC4uLi4uLi4uLi4uLi4u LiA6ICR7cHJlZml4fQorKyAgLSBleGVjX3ByZWZpeCAuLi4uLi4uLi4uIDogJHtleGVjX3ByZWZp eH0KKysgIC0gaW5jbHVkZWRpciAuLi4uLi4uLi4uLiA6ICR7aW5jbHVkZWRpcn0KKysgIC0gbGli ZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bGliZGlyfQorKyAgLSBkb2NkaXIgLi4uLi4uLi4uLi4u Li4uIDogJHtkb2NkaXJ9CisrICAtIG1hbmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke21hbmRpcn0K KysgIC0gaW5mb2RpciAuLi4uLi4uLi4uLi4uLiA6ICR7aW5mb2Rpcn0KKysKKytTd2l0Y2hlczoK KysgIC0gZXhjZXB0aW9ucyAuLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2V4Y2VwdGlvbnN9CisrICAt IGluZm8tZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9pbmZvX2RvY30KKysgIC0gaHRtbC1k b2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2h0bWxfZG9jfQorKyAgLSBzaGFyZWQgLi4uLi4u Li4uLi4uLi4uIDogJHtlbmFibGVfc2hhcmVkfQorKyAgLSBzdGF0aWMgLi4uLi4uLi4uLi4uLi4u IDogJHtlbmFibGVfc3RhdGljfQorKworK0RvY3VtZW50YXRpb24gdG9vbHM6CisrICAtIHRleGlu Zm8gLi4uLi4uLi4uLi4uLi4gOiAke3RleGluZm9fb2t9CisrICAtIGRveHlnZW4gLi4uLi4uLi4u Li4uLi4gOiAke2RveHlnZW5fb2t9CisrICAtIGxhdGV4IC4uLi4uLi4uLi4uLi4uLi4gOiAke2xh dGV4X29rfQorKyAgLSBkdmlwcyAuLi4uLi4uLi4uLi4uLi4uIDogJHtkdmlwc19va30KKysgIC0g Z2hvc3RzY3JpcHQgLi4uLi4uLi4uLiA6ICR7Z3Nfb2t9CisrCisrVGVzdGluZyB0b29sczoKKysg IC0gZGlmZiAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZGlmZl9va30KKysgIC0gc2VkIC4uLi4uLi4u Li4uLi4uLi4uLiA6ICR7c2VkX29rfQorKworK0NvbXBpbGVyL2xpbmtlciBmbGFncy9saWJzL2Rl ZnM6CisrICAtIENYWCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke0NYWH0KKysgIC0gQ1hYRkxBR1Mg Li4uLi4uLi4uLi4uLiA6ICR7Q1hYRkxBR1N9CisrICAtIENQUEZMQUdTIC4uLi4uLi4uLi4uLi4g OiAke0NQUEZMQUdTfQorKyAgLSBMREZMQUdTIC4uLi4uLi4uLi4uLi4uIDogJHtMREZMQUdTfQor KyAgLSBMSUJTIC4uLi4uLi4uLi4uLi4uLi4uIDogJHtMSUJTfQorKworK0J1cnJpZWQgaGVhZGVy IGZpbGVzOgorKyAgLSBTT0NJX0hFQURFUlNfQlVSSUVEIC4uLi4uLi4gOiAke2VuYWJsZV9idXJy aWVkX2hlYWRlcnN9CisrICAtIE1ZU1FMX0hFQURFUlNfQlVSSUVEIC4uLi4uLiA6ICR7ZW5hYmxl X215c3FsX2J1cnJpZWRfaGVhZGVyc30KKysgIC0gUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAu IDogJHtlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnN9CisrCisrRXh0ZXJuYWwgbGli cmFyaWVzOgorKyAgLSBCb29zdCAuLi4uLi4uLi4uLi4uLi4uIDoKKysgICAgbyBCT09TVF9WRVJT SU9OIC4uLi4uLiA6ICR7Qk9PU1RfVkVSU0lPTn0KKysgICAgbyBCT09TVF9DRkxBR1MgLi4uLi4u LiA6ICR7Qk9PU1RfQ0ZMQUdTfQorKyAgICBvIEJPT1NUX0xJQlMgLi4uLi4uLi4uIDogJHtCT09T VF9MSUJTfQorKyAgICBvIEJPT1NUX0RUX0xJQiAuLi4uLi4uIDogJHtCT09TVF9EQVRFX1RJTUVf TElCfQorKyAgICBvIEJPT1NUX1BPX0xJQiAuLi4uLi4uIDogJHtCT09TVF9QUk9HUkFNX09QVElP TlNfTElCfQorKworKyAgLSBNeVNRTCBzdXBwb3J0IC4uLi4uLi4uIDogJHtlbmFibGVfYmFja2Vu ZF9teXNxbH0KKysgICAgbyBNWVNRTF9WRVJTSU9OIC4uLi4uLiA6ICR7TVlTUUxfVkVSU0lPTn0K KysgICAgbyBNWVNRTF9DRkxBR1MgLi4uLi4uLiA6ICR7TVlTUUxfQ0ZMQUdTfQorKyAgICBvIE1Z U1FMX0xERkxBR1MgLi4uLi4uIDogJHtNWVNRTF9MREZMQUdTfQorKworKyAgLSBQb3N0R3JlU1FM IHN1cHBvcnQgLi4uIDogJHtlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsfQorKyAgICBvIFBPU1RH UkVTUUxfVkVSU0lPTiAuIDogJHtQT1NUR1JFU1FMX1ZFUlNJT059CisrICAgIG8gUE9TVEdSRVNR TF9DRkxBR1MgLi4gOiAke1BPU1RHUkVTUUxfQ0ZMQUdTfQorKyAgICBvIFBPU1RHUkVTUUxfTERG TEFHUyAuIDogJHtQT1NUR1JFU1FMX0xERkxBR1N9IAorKworKyAgLSBPcmFjbGUgc3VwcG9ydCAu Li4uLi4uIDogJHtlbmFibGVfYmFja2VuZF9vcmFjbGV9CisrICAgIG8gT1JBQ0xFX1ZFUlNJT04g Li4uLi4gOiAke09SQUNMRV9PQ0lfVkVSU0lPTn0KKysgICAgbyBPUkFDTEVfQ0ZMQUdTIC4uLi4u LiA6ICR7T1JBQ0xFX09DSV9DRkxBR1N9CisrICAgIG8gT1JBQ0xFX0xERkxBR1MgLi4uLi4gOiAk e09SQUNMRV9PQ0lfTERGTEFHU30gCisrCisrICAtIENQUFVuaXQgLi4uLi4uLi4uLi4uLi4gOgor KyAgICBvIENQUFVOSVRfVkVSU0lPTiAuLi4uIDogJHtDUFBVTklUX1ZFUlNJT059CisrICAgIG8g Q1BQVU5JVF9DRkxBR1MgLi4uLi4gOiAke0NQUFVOSVRfQ0ZMQUdTfQorKyAgICBvIENQUFVOSVRf TElCUyAuLi4uLi4uIDogJHtDUFBVTklUX0xJQlN9CisrCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrTm93IHR5cGUgJ21ha2UgJiYgbWFrZSBpbnN0YWxsJyB0byBidWlsZCBhbmQgaW5zdGFsbCAk UEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIgorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL0NPUFlJTkcgc29jaS0zLjAuMF90cmVwMzAwL0NPUFlJ TkcKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9DT1BZSU5HCTIwMDktMDUtMDMgMDA6MjQ6MTMuMDAw MDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL0NPUFlJTkcJMjAwOS0wNC0xNiAx OTozNzoxMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMSwzICsyMSw0IEBACisgRk9SIEFOWSBEQU1B R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgVE9SVCBPUiBPVEhF UldJU0UsCisgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgor KworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5hbSBz b2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAu MF80LXBhY2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmls ZS5hbQkyMDA5LTA0LTE2IDE5OjUwOjM4LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNiBA QAorKyMjIGRvYy9iYWNrZW5kcyBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysKKysjIyBT b3VyY2UgZGlyZWN0b3J5CisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgor KworK1NVQkRJUlMgPQorKworK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQo aHRtbF9iY2tfc291cmNlcykKKysjZmlyZWJpcmQuaHRtbCBpbmRleC5odG1sIG15c3FsLmh0bWwg b2RiYy5odG1sIG9yYWNsZS5odG1sIHBvc3RncmVzcWwuaHRtbCBzcWxpdGUzLmh0bWwKKysKKytF WFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrCisrI3Br Z2RhdGFkaXIgPSAkKGh0bWxfYmNrX3NvdXJjZXMpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svZG9jL2JhY2tlbmRzL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2Vu ZHMvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZp bGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvZG9jL2JhY2tlbmRzL01ha2VmaWxlLmluCTIwMDktMDUtMDMgMDA6MjA6NDAuMDAw MDAwMDAwICswMjAwCitAQCAtMCwwICsxLDU0OCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVk IGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1 dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw MDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0 aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJl c2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRo ZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxB UiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRp ciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdF QAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENE UEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxs X3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9 ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMK KytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoK KytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxM ID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9z dF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0g JChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBkb2MvYmFja2VuZHMKKytBQ0xPQ0FMX000 ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9w X3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf bXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmln dXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lF UykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQK KytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdf Q0xFQU5fRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrUkVDVVJTSVZFX1RB UkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJ aHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisr CWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFs bC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYt cmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5z dGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBc CisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRpc3Rj bGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytFVEFHUyA9IGV0YWdz CisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMg PSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNU KQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytB VVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01B S0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZM QUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09T VF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVB TVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJT QAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJ QkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTEla QVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElC ID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFE X0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1Rf RlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1Rf V1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBD Q0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0g QENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklU X0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJ QlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05A CisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQ TU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAor K0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElM QAorK0VDSE8gPSBARUNIT0AKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05A CisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhU QAorK0Y3NyA9IEBGNzdACisrRkZMQUdTID0gQEZGTEFHU0AKKytHRU5FUklDX0xJQlJBUllfVkVS U0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFM TCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9Q Uk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1ND UklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAor K0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJT QAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExU TElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisr TVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09O RklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0gQE1ZU1FM X0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NRURJVCA9IEBO TUVESVRACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AK KytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xE RkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFD TEVfT0NJX1ZFUlNJT05ACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JU ID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisr UEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBB Q0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BB VEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05G SUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdT QAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZM QUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdS RVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JF TEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBT SEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09D SV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19C VVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1B TkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJA CisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3Rv cF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9D QyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0Y3NyA9IEBh Y19jdF9GNzdACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90 ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIg PSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJA CisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRf Y3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3Ig PSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0 YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tA CisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGly ID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVj X3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9 IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9v c0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisr aW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxs X3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxp YmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRp ckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRpckAK Kytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAor K3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9y bV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2Jp bmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBA c2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2Nv bmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4 ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0 b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGly KSAtSSQodG9wX3NyY2RpcikKKytodG1sX2Jja19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mv YmFja2VuZHMvaW5kZXguaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2ZpcmVi aXJkLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9teXNxbC5odG1sIFwKKysJ JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb2RiYy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9k b2MvYmFja2VuZHMvb3JhY2xlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9w b3N0Z3Jlc3FsLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9zcWxpdGUzLmh0 bWwKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IAor K0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQoaHRtbF9iY2tfc291cmNlcykK KysjZmlyZWJpcmQuaHRtbCBpbmRleC5odG1sIG15c3FsLmh0bWwgb2RiYy5odG1sIG9yYWNsZS5o dG1sIHBvc3RncmVzcWwuaHRtbCBzcWxpdGUzLmh0bWwKKytFWFRSQV9ESVNUID0gJChFWFRSQV9E SVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNV RkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19j b25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19j b25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKKysJCSYm IGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisr CWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBkb2MvYmFja2Vu ZHMvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0Up IC0tZ251ICBkb2MvYmFja2VuZHMvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFr ZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwK KysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRp cikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFU VVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1f X2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9k ZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2Ns ZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGlyZWN0b3J5 J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMg aW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2Vm aWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVh ZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGlu IGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2ls bCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFr ZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBt YWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsY29tPSdl eGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBp biBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15 ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJn ZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBp biAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkg ICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAor KwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAor KwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rhcmdl dCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVzdCAiJCRk b3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0 YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKworKyQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBp biB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1b IWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBc CisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBkaXN0 Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBc CisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBcCisr CWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8t cmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hvICJN YWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxz ZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisr CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFn cy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0 YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQo VEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9 IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKwor K1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVO REVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9 YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2 L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBc CisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1pbmNs dWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0 aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorKwkgICAg ICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwK KysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAor KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1Mp JCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8 fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1f RVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJ ZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChT T1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap CisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlx dWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChD VEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9 YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3Jj ZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xl YW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MK KysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1g ZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisr CWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxp c3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJp cC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRp cikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9Q KSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0 ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBc CisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxl IHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJ ICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxl IiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIp LyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIg JChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsg XAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAor KwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBj cCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAor KwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2Ug XAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJ Ul9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgICBk aXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICB0b3BfZGlzdGRp cj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIChjZCAkJHN1YmRp ciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3Bf ZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8k JHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3Ro X2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAxOyBcCisr CSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJz aXZlCisrYWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNp dmUKKytpbnN0YWxsZGlycy1hbToKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3Rh bGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1k YXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2 ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAg YHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5W PVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6Cisr CisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQo Q09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisr bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVu ZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRo YXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQo TUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQor K2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJz aXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFu LWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmkt YW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQor KworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0 YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1s OiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8t cmVjdXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRm LXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5z dGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVj dXJzaXZlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVh bi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xl YW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysK KytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5N QUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0 YWxsLWFtIFwKKysJaW5zdGFsbC1zdHJpcAorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFt IGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWN0 YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0 Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisr CWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAor KwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVj IFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFs bC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3Rh bGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5z dGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFt IG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1h bSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFsbC1h bQorKworK0BTRVRfTUFLRUAKKysKKysjcGtnZGF0YWRpciA9ICQoaHRtbF9iY2tfc291cmNlcykK KysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBh bGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBs ZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9kb2MvYmFja2VuZHMvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2Jh Y2tlbmRzL3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvc291 cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjQ3OjUzLjAw MDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw3IEBACisraHRtbF9iY2tfc291cmNlcyA9ICQodG9w X3NyY2RpcikvZG9jL2JhY2tlbmRzL2luZGV4Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9i YWNrZW5kcy9maXJlYmlyZC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvbXlz cWwuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29kYmMuaHRtbCBcCisrCSQo dG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29yYWNsZS5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9k b2MvYmFja2VuZHMvcG9zdGdyZXNxbC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2Vu ZHMvc3FsaXRlMy5odG1sCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL01ha2VmaWxl LmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9kb2MvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMjA6MTc6 MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDcgQEAKKytpbmNsdWRlICQodG9wX3NyY2Rp cikvZG9jL3NvdXJjZXMubWsKKysKKytTVUJESVJTID0gYmFja2VuZHMKKysKKytFWFRSQV9ESVNU X0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfbG9jYWxfc291cmNlcykKKysKKytFWFRS QV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svZG9jL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2Mv TWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuaW4JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9j L01ha2VmaWxlLmluCTIwMDktMDUtMDMgMDA6MjA6NDAuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDU0NyBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBm cm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAo QykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwK KysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0 byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh dGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5 IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRf TUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tB R0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAk KGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04r Ln0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxf c2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytp bnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQo SU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytO T1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6Cisr Tk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxM ID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisr RElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmlu IFwKKysJJCh0b3Bfc3JjZGlyKS9kb2Mvc291cmNlcy5taworK3N1YmRpciA9IGRvYworK0FDTE9D QUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0g JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19j b25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5E RU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3No KSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NP TkZJR19DTEVBTl9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJ VkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUg XAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZl IFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlp bnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxs LXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAor KwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJz aXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAg ZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0VUQUdTID0g ZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RG SUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJB X0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFS QAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytB VVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09T VF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAor K0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lP U1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NU X0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElP TlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFM U19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9U SFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytC T09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0ND ID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytD UFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQ UFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVO SVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVS U0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBD WFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRI X1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZ TVVUSUxACisrRUNITyA9IEBFQ0hPQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVD SE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBF WEVFWFRACisrRjc3ID0gQEY3N0AKKytGRkxBR1MgPSBARkZMQUdTQAorK0dFTkVSSUNfTElCUkFS WV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJ TlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNU QUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RB TExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dS QU1ACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0g QExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMg PSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJf UEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNR TF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBA TVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk1FRElU ID0gQE5NRURJVEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9E SVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9P Q0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0g QE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdS RVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFN RUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUg PSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05A CisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BH X0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9D RkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FM X0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQ T1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBS UE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxM ID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAK KytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURA CisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURf Q09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWls ZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBh YnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2Fj X2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRjc3 ID0gQGFjX2N0X0Y3N0AKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGlu Z19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1f X3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJp bmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKyti dWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3Zl bmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9 IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlm Zl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytk dmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0g QGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2Fs aWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBo b3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRp ckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2lu c3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIg PSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9j YWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFu ZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVk aXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJh bnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAK KytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRp ciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBA c3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9w cmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGly QAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytodG1sX2xvY2FsX3NvdXJjZXMgPSAkKHRv cF9zcmNkaXIpL2RvYy9iYWNrZW5kcy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFzaWNz Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iZXlvbmQuaHRtbCBcCisrCSQodG9wX3NyY2Rp cikvZG9jL2Jvb3N0Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9lcnJvcnMuaHRtbCBcCisr CSQodG9wX3NyY2RpcikvZG9jL2V4Y2hhbmdlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9p bmRleC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvaW50ZXJmYWNlcy5odG1sIFwKKysJJCh0 b3Bfc3JjZGlyKS9kb2MvbXVsdGl0aHJlYWRpbmcuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9j L3JhdGlvbmFsZS5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvcmVmZXJlbmNlLmh0bWwgXAor KwkkKHRvcF9zcmNkaXIpL2RvYy9zdGF0ZW1lbnRzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2Rv Yy9zdHJ1Y3R1cmUuaHRtbAorKworK1NVQkRJUlMgPSBiYWNrZW5kcworK0VYVFJBX0RJU1RfRk9S X1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQoaHRtbF9sb2NhbF9zb3VyY2VzKQorK0VYVFJBX0RJU1Qg PSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKythbGw6IGFsbC1yZWN1cnNp dmUKKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01h a2VmaWxlLmFtICQodG9wX3NyY2RpcikvZG9jL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2Rl cHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2Rl cHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBcCisrCQkmJiBleGl0IDA7IFwK KysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2Qg JCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgZG9jL01ha2VmaWxlJzsgXAorKwlj ZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgZG9jL01ha2VmaWxl CisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4g JCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNv bmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQo YW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNI RUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7 IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xP Q0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrbW9zdGx5Y2xlYW4tbGli dG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJz IF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkg aW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRo b3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVz IG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAo MSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZp Zy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSBy ZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3Mg dGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJT SVZFX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFL RUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBc CisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7 IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2 ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK KysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsg XAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7 IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZh aWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNh c2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29t PSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBc CisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSop IGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7 IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg aWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1 YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwK KysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGly IGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsg XAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJn ZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRv bmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAu IHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlk b25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhF QURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkg aW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBl bHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAn eyBmaWxlc1skJDBdID0gMTsgbm9uZW10cHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5v bmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJ RCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURF UlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykg JChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0 YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1 ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2Ug XAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJ Zmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAt ZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRp b249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisr CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK KysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNl IFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAg JChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAor KwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0 YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMp IFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwlsaXN0PSckKFNPVVJD RVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3Ig aSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7 IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0sp ICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAo bm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAt eiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFH U0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQkdGFncyAk JHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYm IHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RB R1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdU QUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisr CUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdz L1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAg ZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwK KysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0 b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2Zp bGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisr CQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJ CSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7 IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47 IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVu IFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBc CisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNk aXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQk ZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQo ZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgJChk aXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQk ZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCWxpc3Q9JyQo RElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikv JCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwK KysJICAgIHx8IGV4aXQgMTsgXAorKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikg JiYgcHdkYDsgXAorKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAm JiBwd2RgOyBcCisrCSAgICAoY2QgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKKysJ ICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKKysJCWFtX19yZW1vdmVfZGlz dGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKysJICAgICAgICBkaXN0ZGly KSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTog YWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0 YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisraW5zdGFs bDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNp dmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVu aW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxs Y2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFN KSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJ TlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkg ICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3Rh bGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNs ZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1m ICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJ QGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgor KwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMg dG8gcmVidWlsZC4iCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVh bi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRp c3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVh bi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLXJlY3Vy c2l2ZQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLXJlY3Vyc2l2ZQorKworK2luZm86IGlu Zm8tcmVjdXJzaXZlCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06CisrCisraW5z dGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZXhlYy1hbToKKysK KytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm86 IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBk ZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1 cnNpdmUKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRh aW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVh bi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNs ZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisr CisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3Rh bGwtYW06CisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZF X1RBUkdFVFMpIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiAkKFJF Q1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBc CisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1s aWJ0b29sIFwKKysJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2Vu ZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2 aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGlu c3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1h bSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwt aHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5z dGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5z dGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAorKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMg aW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2Vu ZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGli dG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAorKwl1bmluc3Rh bGwgdW5pbnN0YWxsLWFtCisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBt YWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBs aW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6Citk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVw MzAwL2RvYy9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL3NvdXJjZXMubWsJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvZG9jL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTo1NDowMC4wMDAwMDAwMDAgKzAyMDAKK0BA IC0wLDAgKzEsMTMgQEAKKytodG1sX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9i YWNrZW5kcy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFzaWNzLmh0bWwgXAorKwkkKHRv cF9zcmNkaXIpL2RvYy9iZXlvbmQuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Jvb3N0Lmh0 bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9lcnJvcnMuaHRtbCBcCisrCSQodG9wX3NyY2Rpcikv ZG9jL2V4Y2hhbmdlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9pbmRleC5odG1sIFwKKysJ JCh0b3Bfc3JjZGlyKS9kb2MvaW50ZXJmYWNlcy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2Mv bXVsdGl0aHJlYWRpbmcuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL3JhdGlvbmFsZS5odG1s IFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvcmVmZXJlbmNlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIp L2RvYy9zdGF0ZW1lbnRzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9zdHJ1Y3R1cmUuaHRt bAorTGVzIGZpY2hpZXJzIGJpbmFpcmVzIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9zdHJ1Y3R1cmUu cG5nIGV0IHNvY2ktMy4wLjBfdHJlcDMwMC9kb2Mvc3RydWN0dXJlLnBuZyBzb250IGRpZmbDqXJl bnRzLgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9zdHlsZS5jc3Mgc29jaS0zLjAu MF90cmVwMzAwL2RvYy9zdHlsZS5jc3MKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2Mvc3R5bGUu Y3NzCTIwMDktMDUtMDMgMDA6MjQ6MTUuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL2RvYy9zdHlsZS5jc3MJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK K0BAIC0xLDkwICswLDAgQEAKKy1ib2R5CisteworLSAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7 CistICBjb2xvcjogYmxhY2s7CistICBtYXJnaW4tbGVmdDogMTAwcHg7CistICBtYXJnaW4tcmln aHQ6IDEwMHB4OworLSAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmOworLSAgZm9udC1z aXplOiBzbWFsbDsKKy19CistCistcC5iYW5uZXIKKy17CistICBmb250LXNpemU6IHgtbGFyZ2U7 CistICBmb250LXdlaWdodDogYm9sZDsKKy0gIGZvbnQtc3RyZXRjaDogZXhwYW5kZWQ7CistICBi b3JkZXItYm90dG9tLWNvbG9yOiBibGFjazsKKy0gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlk OworLSAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OworLSAgcGFkZGluZy1ib3R0b206IDVweDsK Ky19CistCistZGl2Lm5hdmlnYXRpb24geyB9CistCistZGl2Lm5hdmlnYXRpb24taW5kZW50ZWQK Ky17CistICBtYXJnaW4tbGVmdDogNDBweDsKKy19CistCistZGl2LmRpYWdyYW0KKy17CistICB0 ZXh0LWFsaWduOiBjZW50ZXI7CistfQorLQorLWRpdi5ub3RlCisteworLSAgYm9yZGVyLWNvbG9y OiBibGFjazsKKy0gIGJvcmRlci1zdHlsZTogZG90dGVkOworLSAgYm9yZGVyLXdpZHRoOiAxcHg7 CistICBtYXJnaW4tdG9wOiAyMHB4OworLSAgcGFkZGluZy1sZWZ0OiAyMHB4OworLSAgcGFkZGlu Zy1yaWdodDogMjBweDsKKy19CistCistc3Bhbi5ub3RlCisteworLSAgZm9udC1zaXplOiBsYXJn ZTsKKy0gIGZvbnQtd2VpZ2h0OiBib2xkOworLX0KKy0KKy1jb2RlCisteworLS8qICAgZm9udC13 ZWlnaHQ6IGJvbGQ7ICovCistICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKKy0gIGNvbG9yOiAj OEIwMDAwOworLS8qICBmb250LXNpemU6IGxhcmdlOyAqLworLX0KKy0KKy1wcmUuZXhhbXBsZQor LXsKKy0gIGJhY2tncm91bmQtY29sb3I6ICNGMEYwRjA7CistICBjb2xvcjogYmxhY2s7CistICBi b3JkZXItd2lkdGg6IDFweDsKKy0gIGJvcmRlci1zdHlsZTogZGFzaGVkOworLSAgYm9yZGVyLWNv bG9yOiBibHVlOworLSAgcGFkZGluZzogMTBweCAxMHB4IDEwcHggMTBweDsKKy19CistCistdGFi bGUuZm9vdC1saW5rcworLXsKKy0gIHdpZHRoOiAxMDAlOworLSAgcGFkZGluZy10b3A6IDIwcHg7 CistfQorLQorLXRkLmZvb3QtbGluay1sZWZ0CisteworLSAgdGV4dC1hbGlnbjogbGVmdDsKKy19 CistCistdGQuZm9vdC1saW5rLXJpZ2h0CisteworLSAgdGV4dC1hbGlnbjogcmlnaHQ7CistfQor LQorLXAuY29weXJpZ2h0CisteworLSAgYm9yZGVyLXRvcC1jb2xvcjogYmxhY2s7CistICBib3Jk ZXItdG9wLXN0eWxlOiBzb2xpZDsKKy0gIGJvcmRlci10b3Atd2lkdGg6IDFweDsKKy0gIHBhZGRp bmctdG9wOiA1cHg7CistfQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL0lOU1RBTEwgc29j aS0zLjAuMF90cmVwMzAwL0lOU1RBTEwKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9JTlNUQUxMCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L0lOU1RBTEwJMjAwOS0wNS0wMyAwMDoyMDo0NC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEs MjM3IEBACisrSW5zdGFsbGF0aW9uIEluc3RydWN0aW9ucworKyoqKioqKioqKioqKioqKioqKioq KioqKioKKysKKytDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDIsIDIwMDQsIDIwMDUsCisrMjAwNiwgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKysKKytUaGlzIGZpbGUgaXMgZnJlZSBkb2N1bWVudGF0aW9uOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCisrdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwg ZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgorKworK0Jhc2ljIEluc3RhbGxhdGlvbgorKz09PT09 PT09PT09PT09PT09PQorKworK0JyaWVmbHksIHRoZSBzaGVsbCBjb21tYW5kcyBgLi9jb25maWd1 cmU7IG1ha2U7IG1ha2UgaW5zdGFsbCcgc2hvdWxkCisrY29uZmlndXJlLCBidWlsZCwgYW5kIGlu c3RhbGwgdGhpcyBwYWNrYWdlLiAgVGhlIGZvbGxvd2luZworK21vcmUtZGV0YWlsZWQgaW5zdHJ1 Y3Rpb25zIGFyZSBnZW5lcmljOyBzZWUgdGhlIGBSRUFETUUnIGZpbGUgZm9yCisraW5zdHJ1Y3Rp b25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZS4KKysKKysgICBUaGUgYGNvbmZpZ3VyZScgc2hl bGwgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGNvcnJlY3QgdmFsdWVzIGZvcgorK3ZhcmlvdXMg c3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgdXNlZCBkdXJpbmcgY29tcGlsYXRpb24uICBJdCB1 c2VzCisrdGhvc2UgdmFsdWVzIHRvIGNyZWF0ZSBhIGBNYWtlZmlsZScgaW4gZWFjaCBkaXJlY3Rv cnkgb2YgdGhlIHBhY2thZ2UuCisrSXQgbWF5IGFsc28gY3JlYXRlIG9uZSBvciBtb3JlIGAuaCcg ZmlsZXMgY29udGFpbmluZyBzeXN0ZW0tZGVwZW5kZW50CisrZGVmaW5pdGlvbnMuICBGaW5hbGx5 LCBpdCBjcmVhdGVzIGEgc2hlbGwgc2NyaXB0IGBjb25maWcuc3RhdHVzJyB0aGF0CisreW91IGNh biBydW4gaW4gdGhlIGZ1dHVyZSB0byByZWNyZWF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9u LCBhbmQgYQorK2ZpbGUgYGNvbmZpZy5sb2cnIGNvbnRhaW5pbmcgY29tcGlsZXIgb3V0cHV0ICh1 c2VmdWwgbWFpbmx5IGZvcgorK2RlYnVnZ2luZyBgY29uZmlndXJlJykuCisrCisrICAgSXQgY2Fu IGFsc28gdXNlIGFuIG9wdGlvbmFsIGZpbGUgKHR5cGljYWxseSBjYWxsZWQgYGNvbmZpZy5jYWNo ZScKKythbmQgZW5hYmxlZCB3aXRoIGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJyBvciBzaW1w bHkgYC1DJykgdGhhdCBzYXZlcworK3RoZSByZXN1bHRzIG9mIGl0cyB0ZXN0cyB0byBzcGVlZCB1 cCByZWNvbmZpZ3VyaW5nLiAgQ2FjaGluZyBpcworK2Rpc2FibGVkIGJ5IGRlZmF1bHQgdG8gcHJl dmVudCBwcm9ibGVtcyB3aXRoIGFjY2lkZW50YWwgdXNlIG9mIHN0YWxlCisrY2FjaGUgZmlsZXMu CisrCisrICAgSWYgeW91IG5lZWQgdG8gZG8gdW51c3VhbCB0aGluZ3MgdG8gY29tcGlsZSB0aGUg cGFja2FnZSwgcGxlYXNlIHRyeQorK3RvIGZpZ3VyZSBvdXQgaG93IGBjb25maWd1cmUnIGNvdWxk IGNoZWNrIHdoZXRoZXIgdG8gZG8gdGhlbSwgYW5kIG1haWwKKytkaWZmcyBvciBpbnN0cnVjdGlv bnMgdG8gdGhlIGFkZHJlc3MgZ2l2ZW4gaW4gdGhlIGBSRUFETUUnIHNvIHRoZXkgY2FuCisrYmUg Y29uc2lkZXJlZCBmb3IgdGhlIG5leHQgcmVsZWFzZS4gIElmIHlvdSBhcmUgdXNpbmcgdGhlIGNh Y2hlLCBhbmQgYXQKKytzb21lIHBvaW50IGBjb25maWcuY2FjaGUnIGNvbnRhaW5zIHJlc3VsdHMg eW91IGRvbid0IHdhbnQgdG8ga2VlcCwgeW91CisrbWF5IHJlbW92ZSBvciBlZGl0IGl0LgorKwor KyAgIFRoZSBmaWxlIGBjb25maWd1cmUuYWMnIChvciBgY29uZmlndXJlLmluJykgaXMgdXNlZCB0 byBjcmVhdGUKKytgY29uZmlndXJlJyBieSBhIHByb2dyYW0gY2FsbGVkIGBhdXRvY29uZicuICBZ b3UgbmVlZCBgY29uZmlndXJlLmFjJyBpZgorK3lvdSB3YW50IHRvIGNoYW5nZSBpdCBvciByZWdl bmVyYXRlIGBjb25maWd1cmUnIHVzaW5nIGEgbmV3ZXIgdmVyc2lvbgorK29mIGBhdXRvY29uZicu CisrCisrVGhlIHNpbXBsZXN0IHdheSB0byBjb21waWxlIHRoaXMgcGFja2FnZSBpczoKKysKKysg IDEuIGBjZCcgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBwYWNrYWdlJ3Mgc291cmNl IGNvZGUgYW5kIHR5cGUKKysgICAgIGAuL2NvbmZpZ3VyZScgdG8gY29uZmlndXJlIHRoZSBwYWNr YWdlIGZvciB5b3VyIHN5c3RlbS4KKysKKysgICAgIFJ1bm5pbmcgYGNvbmZpZ3VyZScgbWlnaHQg dGFrZSBhIHdoaWxlLiAgV2hpbGUgcnVubmluZywgaXQgcHJpbnRzCisrICAgICBzb21lIG1lc3Nh Z2VzIHRlbGxpbmcgd2hpY2ggZmVhdHVyZXMgaXQgaXMgY2hlY2tpbmcgZm9yLgorKworKyAgMi4g VHlwZSBgbWFrZScgdG8gY29tcGlsZSB0aGUgcGFja2FnZS4KKysKKysgIDMuIE9wdGlvbmFsbHks IHR5cGUgYG1ha2UgY2hlY2snIHRvIHJ1biBhbnkgc2VsZi10ZXN0cyB0aGF0IGNvbWUgd2l0aAor KyAgICAgdGhlIHBhY2thZ2UuCisrCisrICA0LiBUeXBlIGBtYWtlIGluc3RhbGwnIHRvIGluc3Rh bGwgdGhlIHByb2dyYW1zIGFuZCBhbnkgZGF0YSBmaWxlcyBhbmQKKysgICAgIGRvY3VtZW50YXRp b24uCisrCisrICA1LiBZb3UgY2FuIHJlbW92ZSB0aGUgcHJvZ3JhbSBiaW5hcmllcyBhbmQgb2Jq ZWN0IGZpbGVzIGZyb20gdGhlCisrICAgICBzb3VyY2UgY29kZSBkaXJlY3RvcnkgYnkgdHlwaW5n IGBtYWtlIGNsZWFuJy4gIFRvIGFsc28gcmVtb3ZlIHRoZQorKyAgICAgZmlsZXMgdGhhdCBgY29u ZmlndXJlJyBjcmVhdGVkIChzbyB5b3UgY2FuIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yCisrICAg ICBhIGRpZmZlcmVudCBraW5kIG9mIGNvbXB1dGVyKSwgdHlwZSBgbWFrZSBkaXN0Y2xlYW4nLiAg VGhlcmUgaXMKKysgICAgIGFsc28gYSBgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB0YXJnZXQsIGJ1 dCB0aGF0IGlzIGludGVuZGVkIG1haW5seQorKyAgICAgZm9yIHRoZSBwYWNrYWdlJ3MgZGV2ZWxv cGVycy4gIElmIHlvdSB1c2UgaXQsIHlvdSBtYXkgaGF2ZSB0byBnZXQKKysgICAgIGFsbCBzb3J0 cyBvZiBvdGhlciBwcm9ncmFtcyBpbiBvcmRlciB0byByZWdlbmVyYXRlIGZpbGVzIHRoYXQgY2Ft ZQorKyAgICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKworKyAgNi4gT2Z0ZW4sIHlvdSBjYW4g YWxzbyB0eXBlIGBtYWtlIHVuaW5zdGFsbCcgdG8gcmVtb3ZlIHRoZSBpbnN0YWxsZWQKKysgICAg IGZpbGVzIGFnYWluLgorKworK0NvbXBpbGVycyBhbmQgT3B0aW9ucworKz09PT09PT09PT09PT09 PT09PT09PQorKworK1NvbWUgc3lzdGVtcyByZXF1aXJlIHVudXN1YWwgb3B0aW9ucyBmb3IgY29t cGlsYXRpb24gb3IgbGlua2luZyB0aGF0IHRoZQorK2Bjb25maWd1cmUnIHNjcmlwdCBkb2VzIG5v dCBrbm93IGFib3V0LiAgUnVuIGAuL2NvbmZpZ3VyZSAtLWhlbHAnIGZvcgorK2RldGFpbHMgb24g c29tZSBvZiB0aGUgcGVydGluZW50IGVudmlyb25tZW50IHZhcmlhYmxlcy4KKysKKysgICBZb3Ug Y2FuIGdpdmUgYGNvbmZpZ3VyZScgaW5pdGlhbCB2YWx1ZXMgZm9yIGNvbmZpZ3VyYXRpb24gcGFy YW1ldGVycworK2J5IHNldHRpbmcgdmFyaWFibGVzIGluIHRoZSBjb21tYW5kIGxpbmUgb3IgaW4g dGhlIGVudmlyb25tZW50LiAgSGVyZQorK2lzIGFuIGV4YW1wbGU6CisrCisrICAgICAuL2NvbmZp Z3VyZSBDQz1jOTkgQ0ZMQUdTPS1nIExJQlM9LWxwb3NpeAorKworKyAgICpOb3RlIERlZmluaW5n IFZhcmlhYmxlczo6LCBmb3IgbW9yZSBkZXRhaWxzLgorKworK0NvbXBpbGluZyBGb3IgTXVsdGlw bGUgQXJjaGl0ZWN0dXJlcworKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor KworK1lvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IgbW9yZSB0aGFuIG9uZSBraW5kIG9m IGNvbXB1dGVyIGF0IHRoZQorK3NhbWUgdGltZSwgYnkgcGxhY2luZyB0aGUgb2JqZWN0IGZpbGVz IGZvciBlYWNoIGFyY2hpdGVjdHVyZSBpbiB0aGVpcgorK293biBkaXJlY3RvcnkuICBUbyBkbyB0 aGlzLCB5b3UgY2FuIHVzZSBHTlUgYG1ha2UnLiAgYGNkJyB0byB0aGUKKytkaXJlY3Rvcnkgd2hl cmUgeW91IHdhbnQgdGhlIG9iamVjdCBmaWxlcyBhbmQgZXhlY3V0YWJsZXMgdG8gZ28gYW5kIHJ1 bgorK3RoZSBgY29uZmlndXJlJyBzY3JpcHQuICBgY29uZmlndXJlJyBhdXRvbWF0aWNhbGx5IGNo ZWNrcyBmb3IgdGhlCisrc291cmNlIGNvZGUgaW4gdGhlIGRpcmVjdG9yeSB0aGF0IGBjb25maWd1 cmUnIGlzIGluIGFuZCBpbiBgLi4nLgorKworKyAgIFdpdGggYSBub24tR05VIGBtYWtlJywgaXQg aXMgc2FmZXIgdG8gY29tcGlsZSB0aGUgcGFja2FnZSBmb3Igb25lCisrYXJjaGl0ZWN0dXJlIGF0 IGEgdGltZSBpbiB0aGUgc291cmNlIGNvZGUgZGlyZWN0b3J5LiAgQWZ0ZXIgeW91IGhhdmUKKytp bnN0YWxsZWQgdGhlIHBhY2thZ2UgZm9yIG9uZSBhcmNoaXRlY3R1cmUsIHVzZSBgbWFrZSBkaXN0 Y2xlYW4nIGJlZm9yZQorK3JlY29uZmlndXJpbmcgZm9yIGFub3RoZXIgYXJjaGl0ZWN0dXJlLgor KworK0luc3RhbGxhdGlvbiBOYW1lcworKz09PT09PT09PT09PT09PT09PQorKworK0J5IGRlZmF1 bHQsIGBtYWtlIGluc3RhbGwnIGluc3RhbGxzIHRoZSBwYWNrYWdlJ3MgY29tbWFuZHMgdW5kZXIK KytgL3Vzci9sb2NhbC9iaW4nLCBpbmNsdWRlIGZpbGVzIHVuZGVyIGAvdXNyL2xvY2FsL2luY2x1 ZGUnLCBldGMuICBZb3UKKytjYW4gc3BlY2lmeSBhbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVy IHRoYW4gYC91c3IvbG9jYWwnIGJ5IGdpdmluZworK2Bjb25maWd1cmUnIHRoZSBvcHRpb24gYC0t cHJlZml4PVBSRUZJWCcuCisrCisrICAgWW91IGNhbiBzcGVjaWZ5IHNlcGFyYXRlIGluc3RhbGxh dGlvbiBwcmVmaXhlcyBmb3IKKythcmNoaXRlY3R1cmUtc3BlY2lmaWMgZmlsZXMgYW5kIGFyY2hp dGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcy4gIElmIHlvdQorK3Bhc3MgdGhlIG9wdGlvbiBgLS1l eGVjLXByZWZpeD1QUkVGSVgnIHRvIGBjb25maWd1cmUnLCB0aGUgcGFja2FnZSB1c2VzCisrUFJF RklYIGFzIHRoZSBwcmVmaXggZm9yIGluc3RhbGxpbmcgcHJvZ3JhbXMgYW5kIGxpYnJhcmllcy4K KytEb2N1bWVudGF0aW9uIGFuZCBvdGhlciBkYXRhIGZpbGVzIHN0aWxsIHVzZSB0aGUgcmVndWxh ciBwcmVmaXguCisrCisrICAgSW4gYWRkaXRpb24sIGlmIHlvdSB1c2UgYW4gdW51c3VhbCBkaXJl Y3RvcnkgbGF5b3V0IHlvdSBjYW4gZ2l2ZQorK29wdGlvbnMgbGlrZSBgLS1iaW5kaXI9RElSJyB0 byBzcGVjaWZ5IGRpZmZlcmVudCB2YWx1ZXMgZm9yIHBhcnRpY3VsYXIKKytraW5kcyBvZiBmaWxl cy4gIFJ1biBgY29uZmlndXJlIC0taGVscCcgZm9yIGEgbGlzdCBvZiB0aGUgZGlyZWN0b3JpZXMK Kyt5b3UgY2FuIHNldCBhbmQgd2hhdCBraW5kcyBvZiBmaWxlcyBnbyBpbiB0aGVtLgorKworKyAg IElmIHRoZSBwYWNrYWdlIHN1cHBvcnRzIGl0LCB5b3UgY2FuIGNhdXNlIHByb2dyYW1zIHRvIGJl IGluc3RhbGxlZAorK3dpdGggYW4gZXh0cmEgcHJlZml4IG9yIHN1ZmZpeCBvbiB0aGVpciBuYW1l cyBieSBnaXZpbmcgYGNvbmZpZ3VyZScgdGhlCisrb3B0aW9uIGAtLXByb2dyYW0tcHJlZml4PVBS RUZJWCcgb3IgYC0tcHJvZ3JhbS1zdWZmaXg9U1VGRklYJy4KKysKKytPcHRpb25hbCBGZWF0dXJl cworKz09PT09PT09PT09PT09PT09CisrCisrU29tZSBwYWNrYWdlcyBwYXkgYXR0ZW50aW9uIHRv IGAtLWVuYWJsZS1GRUFUVVJFJyBvcHRpb25zIHRvCisrYGNvbmZpZ3VyZScsIHdoZXJlIEZFQVRV UkUgaW5kaWNhdGVzIGFuIG9wdGlvbmFsIHBhcnQgb2YgdGhlIHBhY2thZ2UuCisrVGhleSBtYXkg YWxzbyBwYXkgYXR0ZW50aW9uIHRvIGAtLXdpdGgtUEFDS0FHRScgb3B0aW9ucywgd2hlcmUgUEFD S0FHRQorK2lzIHNvbWV0aGluZyBsaWtlIGBnbnUtYXMnIG9yIGB4JyAoZm9yIHRoZSBYIFdpbmRv dyBTeXN0ZW0pLiAgVGhlCisrYFJFQURNRScgc2hvdWxkIG1lbnRpb24gYW55IGAtLWVuYWJsZS0n IGFuZCBgLS13aXRoLScgb3B0aW9ucyB0aGF0IHRoZQorK3BhY2thZ2UgcmVjb2duaXplcy4KKysK KysgICBGb3IgcGFja2FnZXMgdGhhdCB1c2UgdGhlIFggV2luZG93IFN5c3RlbSwgYGNvbmZpZ3Vy ZScgY2FuIHVzdWFsbHkKKytmaW5kIHRoZSBYIGluY2x1ZGUgYW5kIGxpYnJhcnkgZmlsZXMgYXV0 b21hdGljYWxseSwgYnV0IGlmIGl0IGRvZXNuJ3QsCisreW91IGNhbiB1c2UgdGhlIGBjb25maWd1 cmUnIG9wdGlvbnMgYC0teC1pbmNsdWRlcz1ESVInIGFuZAorK2AtLXgtbGlicmFyaWVzPURJUicg dG8gc3BlY2lmeSB0aGVpciBsb2NhdGlvbnMuCisrCisrU3BlY2lmeWluZyB0aGUgU3lzdGVtIFR5 cGUKKys9PT09PT09PT09PT09PT09PT09PT09PT09PQorKworK1RoZXJlIG1heSBiZSBzb21lIGZl YXR1cmVzIGBjb25maWd1cmUnIGNhbm5vdCBmaWd1cmUgb3V0IGF1dG9tYXRpY2FsbHksCisrYnV0 IG5lZWRzIHRvIGRldGVybWluZSBieSB0aGUgdHlwZSBvZiBtYWNoaW5lIHRoZSBwYWNrYWdlIHdp bGwgcnVuIG9uLgorK1VzdWFsbHksIGFzc3VtaW5nIHRoZSBwYWNrYWdlIGlzIGJ1aWx0IHRvIGJl IHJ1biBvbiB0aGUgX3NhbWVfCisrYXJjaGl0ZWN0dXJlcywgYGNvbmZpZ3VyZScgY2FuIGZpZ3Vy ZSB0aGF0IG91dCwgYnV0IGlmIGl0IHByaW50cyBhCisrbWVzc2FnZSBzYXlpbmcgaXQgY2Fubm90 IGd1ZXNzIHRoZSBtYWNoaW5lIHR5cGUsIGdpdmUgaXQgdGhlCisrYC0tYnVpbGQ9VFlQRScgb3B0 aW9uLiAgVFlQRSBjYW4gZWl0aGVyIGJlIGEgc2hvcnQgbmFtZSBmb3IgdGhlIHN5c3RlbQorK3R5 cGUsIHN1Y2ggYXMgYHN1bjQnLCBvciBhIGNhbm9uaWNhbCBuYW1lIHdoaWNoIGhhcyB0aGUgZm9y bToKKysKKysgICAgIENQVS1DT01QQU5ZLVNZU1RFTQorKworK3doZXJlIFNZU1RFTSBjYW4gaGF2 ZSBvbmUgb2YgdGhlc2UgZm9ybXM6CisrCisrICAgICBPUyBLRVJORUwtT1MKKysKKysgICBTZWUg dGhlIGZpbGUgYGNvbmZpZy5zdWInIGZvciB0aGUgcG9zc2libGUgdmFsdWVzIG9mIGVhY2ggZmll bGQuICBJZgorK2Bjb25maWcuc3ViJyBpc24ndCBpbmNsdWRlZCBpbiB0aGlzIHBhY2thZ2UsIHRo ZW4gdGhpcyBwYWNrYWdlIGRvZXNuJ3QKKytuZWVkIHRvIGtub3cgdGhlIG1hY2hpbmUgdHlwZS4K KysKKysgICBJZiB5b3UgYXJlIF9idWlsZGluZ18gY29tcGlsZXIgdG9vbHMgZm9yIGNyb3NzLWNv bXBpbGluZywgeW91IHNob3VsZAorK3VzZSB0aGUgb3B0aW9uIGAtLXRhcmdldD1UWVBFJyB0byBz ZWxlY3QgdGhlIHR5cGUgb2Ygc3lzdGVtIHRoZXkgd2lsbAorK3Byb2R1Y2UgY29kZSBmb3IuCisr CisrICAgSWYgeW91IHdhbnQgdG8gX3VzZV8gYSBjcm9zcyBjb21waWxlciwgdGhhdCBnZW5lcmF0 ZXMgY29kZSBmb3IgYQorK3BsYXRmb3JtIGRpZmZlcmVudCBmcm9tIHRoZSBidWlsZCBwbGF0Zm9y bSwgeW91IHNob3VsZCBzcGVjaWZ5IHRoZQorKyJob3N0IiBwbGF0Zm9ybSAoaS5lLiwgdGhhdCBv biB3aGljaCB0aGUgZ2VuZXJhdGVkIHByb2dyYW1zIHdpbGwKKytldmVudHVhbGx5IGJlIHJ1bikg d2l0aCBgLS1ob3N0PVRZUEUnLgorKworK1NoYXJpbmcgRGVmYXVsdHMKKys9PT09PT09PT09PT09 PT09CisrCisrSWYgeW91IHdhbnQgdG8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciBgY29uZmlndXJl JyBzY3JpcHRzIHRvIHNoYXJlLCB5b3UKKytjYW4gY3JlYXRlIGEgc2l0ZSBzaGVsbCBzY3JpcHQg Y2FsbGVkIGBjb25maWcuc2l0ZScgdGhhdCBnaXZlcyBkZWZhdWx0CisrdmFsdWVzIGZvciB2YXJp YWJsZXMgbGlrZSBgQ0MnLCBgY2FjaGVfZmlsZScsIGFuZCBgcHJlZml4Jy4KKytgY29uZmlndXJl JyBsb29rcyBmb3IgYFBSRUZJWC9zaGFyZS9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLCB0aGVu CisrYFBSRUZJWC9ldGMvY29uZmlnLnNpdGUnIGlmIGl0IGV4aXN0cy4gIE9yLCB5b3UgY2FuIHNl dCB0aGUKKytgQ09ORklHX1NJVEUnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRoZSBsb2NhdGlv biBvZiB0aGUgc2l0ZSBzY3JpcHQuCisrQSB3YXJuaW5nOiBub3QgYWxsIGBjb25maWd1cmUnIHNj cmlwdHMgbG9vayBmb3IgYSBzaXRlIHNjcmlwdC4KKysKKytEZWZpbmluZyBWYXJpYWJsZXMKKys9 PT09PT09PT09PT09PT09PT0KKysKKytWYXJpYWJsZXMgbm90IGRlZmluZWQgaW4gYSBzaXRlIHNo ZWxsIHNjcmlwdCBjYW4gYmUgc2V0IGluIHRoZQorK2Vudmlyb25tZW50IHBhc3NlZCB0byBgY29u ZmlndXJlJy4gIEhvd2V2ZXIsIHNvbWUgcGFja2FnZXMgbWF5IHJ1bgorK2NvbmZpZ3VyZSBhZ2Fp biBkdXJpbmcgdGhlIGJ1aWxkLCBhbmQgdGhlIGN1c3RvbWl6ZWQgdmFsdWVzIG9mIHRoZXNlCisr dmFyaWFibGVzIG1heSBiZSBsb3N0LiAgSW4gb3JkZXIgdG8gYXZvaWQgdGhpcyBwcm9ibGVtLCB5 b3Ugc2hvdWxkIHNldAorK3RoZW0gaW4gdGhlIGBjb25maWd1cmUnIGNvbW1hbmQgbGluZSwgdXNp bmcgYFZBUj12YWx1ZScuICBGb3IgZXhhbXBsZToKKysKKysgICAgIC4vY29uZmlndXJlIENDPS91 c3IvbG9jYWwyL2Jpbi9nY2MKKysKKytjYXVzZXMgdGhlIHNwZWNpZmllZCBgZ2NjJyB0byBiZSB1 c2VkIGFzIHRoZSBDIGNvbXBpbGVyICh1bmxlc3MgaXQgaXMKKytvdmVycmlkZGVuIGluIHRoZSBz aXRlIHNoZWxsIHNjcmlwdCkuCisrCisrVW5mb3J0dW5hdGVseSwgdGhpcyB0ZWNobmlxdWUgZG9l cyBub3Qgd29yayBmb3IgYENPTkZJR19TSEVMTCcgZHVlIHRvCisrYW4gQXV0b2NvbmYgYnVnLiAg VW50aWwgdGhlIGJ1ZyBpcyBmaXhlZCB5b3UgY2FuIHVzZSB0aGlzIHdvcmthcm91bmQ6CisrCisr ICAgICBDT05GSUdfU0hFTEw9L2Jpbi9iYXNoIC9iaW4vYmFzaCAuL2NvbmZpZ3VyZSBDT05GSUdf U0hFTEw9L2Jpbi9iYXNoCisrCisrYGNvbmZpZ3VyZScgSW52b2NhdGlvbgorKz09PT09PT09PT09 PT09PT09PT09PT0KKysKKytgY29uZmlndXJlJyByZWNvZ25pemVzIHRoZSBmb2xsb3dpbmcgb3B0 aW9ucyB0byBjb250cm9sIGhvdyBpdCBvcGVyYXRlcy4KKysKKytgLS1oZWxwJworK2AtaCcKKysg ICAgIFByaW50IGEgc3VtbWFyeSBvZiB0aGUgb3B0aW9ucyB0byBgY29uZmlndXJlJywgYW5kIGV4 aXQuCisrCisrYC0tdmVyc2lvbicKKytgLVYnCisrICAgICBQcmludCB0aGUgdmVyc2lvbiBvZiBB dXRvY29uZiB1c2VkIHRvIGdlbmVyYXRlIHRoZSBgY29uZmlndXJlJworKyAgICAgc2NyaXB0LCBh bmQgZXhpdC4KKysKKytgLS1jYWNoZS1maWxlPUZJTEUnCisrICAgICBFbmFibGUgdGhlIGNhY2hl OiB1c2UgYW5kIHNhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3RzIGluIEZJTEUsCisrICAgICB0 cmFkaXRpb25hbGx5IGBjb25maWcuY2FjaGUnLiAgRklMRSBkZWZhdWx0cyB0byBgL2Rldi9udWxs JyB0bworKyAgICAgZGlzYWJsZSBjYWNoaW5nLgorKworK2AtLWNvbmZpZy1jYWNoZScKKytgLUMn CisrICAgICBBbGlhcyBmb3IgYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnLgorKworK2AtLXF1 aWV0JworK2AtLXNpbGVudCcKKytgLXEnCisrICAgICBEbyBub3QgcHJpbnQgbWVzc2FnZXMgc2F5 aW5nIHdoaWNoIGNoZWNrcyBhcmUgYmVpbmcgbWFkZS4gIFRvCisrICAgICBzdXBwcmVzcyBhbGwg bm9ybWFsIG91dHB1dCwgcmVkaXJlY3QgaXQgdG8gYC9kZXYvbnVsbCcgKGFueSBlcnJvcgorKyAg ICAgbWVzc2FnZXMgd2lsbCBzdGlsbCBiZSBzaG93bikuCisrCisrYC0tc3JjZGlyPURJUicKKysg ICAgIExvb2sgZm9yIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgaW4gZGlyZWN0b3J5IERJUi4g IFVzdWFsbHkKKysgICAgIGBjb25maWd1cmUnIGNhbiBkZXRlcm1pbmUgdGhhdCBkaXJlY3Rvcnkg YXV0b21hdGljYWxseS4KKysKKytgY29uZmlndXJlJyBhbHNvIGFjY2VwdHMgc29tZSBvdGhlciwg bm90IHdpZGVseSB1c2VmdWwsIG9wdGlvbnMuICBSdW4KKytgY29uZmlndXJlIC0taGVscCcgZm9y IG1vcmUgZGV0YWlscy4KKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZSBz b2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmls ZQkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9NYWtlZmlsZQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEs MjAgKzAsMCBAQAorLWJ1aWxkX2xpYnMgOgorLQljZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3Rj bGAgYnVpbGQudGNsIGNvcmUgY29yZS1zbyBteXNxbCBteXNxbC1zbyBwb3N0Z3Jlc3FsIHBvc3Rn cmVzcWwtc28gb3JhY2xlIG9yYWNsZS1zbworLQorLXRlc3RzIDoKKy0JY2QgYnVpbGQvdW5peDsg YGNhdCBsb2NhbC90Y2xgIGJ1aWxkLnRjbCBteXNxbC10ZXN0IG9yYWNsZS10ZXN0IHBvc3RncmVz cWwtdGVzdAorLQorLWluc3RhbGwgOgorLQljZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAg aW5zdGFsbC50Y2wKKy0KKy11bmluc3RhbGwgOgorLQljZCBidWlsZC91bml4L2xvY2FsOyAvYmlu L3NoIHVuaW5zdGFsbC5zaAorLQorLWNsZWFuIDoKKy0JZmluZCAuIC1uYW1lICcqLm8nIHwgeGFy Z3Mgcm0KKy0JZmluZCAuIC1uYW1lICcqLmEnIHwgeGFyZ3Mgcm0KKy0JZmluZCAuIC1uYW1lICcq LnNvJyB8IHhhcmdzIHJtCistCXJtIC1mIHNyYy9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlz cWwKKy0Jcm0gLWYgc3JjL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlCistCXJtIC1m IHNyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsCistCXJtIC1yZiBi dWlsZC91bml4L2luY2x1ZGUgYnVpbGQvdW5peC9saWIgYnVpbGQvdW5peC90ZXN0cworZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtl ZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmFt CTIwMDktMDUtMDMgMDA6MTk6NDIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDYyIEBACisr IyMgdG9wIGRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24K KysKKytBQ0xPQ0FMX0FNRkxBR1MgPSAtSSBjb25maWcKKysKKytBVVRPTUFLRV9PUFRJT05TID0g ZGlzdC1iemlwMgorKworK2lmIFJVTl9URVNUUworKyMgIFRFU1RfRElSID0gdGVzdAorK2VuZGlm CisrCisrTUFOX0RPQ19ESVIgPSBtYW4KKysKKysjIE1haW50YWluYW5jZSBmaWxlcworK01BSU5U QUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUgXAorKwkJ CWNvbmZpZy1oLmluIHNpYy9zdGFtcC1oLmluIGF1dG9nZW4uc2ggYm9vdHN0cmFwCisrCisrI0VY VFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fY29uZmlndXJlIC5fTWFrZWZpbGUg Y29udHJpYgorK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IGNvbnRyaWIKKysK KytFWFRSQV9ESVNUID0gTWFrZWZpbGUuY29tbW9uICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01Q QVRJQklMSVRZKSBAUEFDS0FHRUAubTQKKysKKysjIEJ1aWxkIGluIHRoZXNlIGRpcmVjdG9yaWVz OgorK1NVQkRJUlMgPSBidWlsZCBAUEFDS0FHRUAgJChNQU5fRE9DX0RJUikgZG9jICQoVEVTVF9E SVIpCisrCisrCisrIyBDb25maWd1cmF0aW9uIGhlbHBlcnMKKytiaW5fU0NSSVBUUyA9IEBQQUNL QUdFQC1jb25maWcKKysKKytwa2djb25maWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCisrcGtn Y29uZmlnX0RBVEEgPSBAUEFDS0FHRUAucGMKKysKKyttNGRhdGFkaXIgPSAkKGRhdGFkaXIpL2Fj bG9jYWwKKyttNGRhdGFfREFUQSA9IEBQQUNLQUdFQC5tNAorKworKyMgVGFyZ2V0cworK3VuaW5z dGFsbC1sb2NhbDoKKysJcm0gLXJmICQoREVTVERJUikkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAor KworK2Rpc3QtaHRtbDoKKysJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sCisrCisrCisrc25hcHNo b3Q6IHNuYXBzaG90LXNyYyBzbmFwc2hvdC1odG1sCisrCisrCisrc25hcHNob3Qtc3JjOgorKyAg ICAgICAgJChNQUtFKSBkaXN0IGRpc3RkaXI9QFBBQ0tBR0VfVEFSTkFNRUAtYGRhdGUgKyIlWSVt JWQiYAorKworK3NuYXBzaG90LWh0bWw6CisrCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbCBodG1s X3Rhcm5hbWU9QFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtYGRhdGUgKyIlWSVtJWQiYAorKwor K3VwbG9hZDogdXBsb2FkLXNyYyB1cGxvYWQtaHRtbAorKworK3VwbG9hZC1zcmM6IGRpc3QKKysJ QFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmd6IFwKKysJ QFBBQ0tBR0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5iejIKKysKKyt1cGxvYWQtaHRtbDogZGlz dC1odG1sCisrCUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZF UlNJT05ALnRhci5neiBcCisrCUBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50 YXIuYnoyCisrCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuY29tbW9uIHNv Y2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5jb21tb24KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9N YWtlZmlsZS5jb21tb24JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuY29tbW9uCTIwMDktMDQtMTggMTc6MjA6MzIuMDAw MDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytAU0VUX01BS0VACisrQU1fQ1BQRkxBR1Mg PSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuaW4KKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5pbgkyMDA5LTA1LTAzIDAw OjIwOjQ1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw3OTcgQEAKKysjIE1ha2VmaWxlLmlu IGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25m aWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcs IDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2 LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgTWFr ZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgor KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysj IFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrCisrVlBBVEggPSBAc3Jj ZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQo bGliZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FH RUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUiki ICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0 YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAk KGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFu c2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6Cisr UFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6 CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0 ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gUkVBRE1F ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAorKwkkKHNyY2Rp cikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvY2ktY29uZmlnLmluIFwKKysJJChzcmNkaXIpL3Nv Y2kucGMuaW4gJChzcmNkaXIpL3NvY2kuc3BlYy5pbiBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uICQodG9wX3NyY2RpcikvY29uZmlndXJlIEFVVEhPUlMgXAorKwlDT1BZSU5HIENo YW5nZUxvZyBJTlNUQUxMIE5FV1MgY29uZmlnL2NvbmZpZy5ndWVzcyBcCisrCWNvbmZpZy9jb25m aWcuc3ViIGNvbmZpZy9kZXBjb21wIGNvbmZpZy9pbnN0YWxsLXNoIFwKKysJY29uZmlnL2x0bWFp bi5zaCBjb25maWcvbWlzc2luZworK3N1YmRpciA9IC4KKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3Jj ZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29u ZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVu aXQubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAk KGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFD TE9DQUxfTTQpCisrYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMgPSBjb25maWcuc3RhdHVzIGNv bmZpZy5jYWNoZSBjb25maWcubG9nIFwKKysgY29uZmlndXJlLmxpbmVubyBjb25maWcuc3RhdHVz LmxpbmVubworK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURF UiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0g c29jaS1jb25maWcgc29jaS5wYyBzb2NpLnNwZWMKKythbV9faW5zdGFsbGRpcnMgPSAiJChERVNU RElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKG00ZGF0YWRpcikiIFwKKysJIiQoREVTVERJUikk KHBrZ2NvbmZpZ2RpcikiCisrYmluU0NSSVBUX0lOU1RBTEwgPSAkKElOU1RBTExfU0NSSVBUKQor K1NDUklQVFMgPSAkKGJpbl9TQ1JJUFRTKQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9Cisr UkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVj dXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJl Y3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZl IFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJ aW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJz aXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRm LXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrYW1fX3Zw YXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58 LnxnJ2A7CisrYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKysgICAgJChzcmNkaXIpLyop IGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKysgICAgKikg Zj0kJHA7OyBcCisrICBlc2FjOworK2FtX19zdHJpcF9kaXIgPSBgZWNobyAkJHAgfCBzZWQgLWUg J3N8Xi4qL3x8J2A7CisrbTRkYXRhREFUQV9JTlNUQUxMID0gJChJTlNUQUxMX0RBVEEpCisrcGtn Y29uZmlnREFUQV9JTlNUQUxMID0gJChJTlNUQUxMX0RBVEEpCisrREFUQSA9ICQobTRkYXRhX0RB VEEpICQocGtnY29uZmlnX0RBVEEpCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHlj bGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUg bWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFn cworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9O KSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2Rpc3RkaXIgPSAk KFBBQ0tBR0UpLSQoVkVSU0lPTikKKyt0b3BfZGlzdGRpciA9ICQoZGlzdGRpcikKKythbV9fcmVt b3ZlX2Rpc3RkaXIgPSBcCisrICB7IHRlc3QgISAtZCAkKGRpc3RkaXIpIFwKKysgICAgfHwgeyBm aW5kICQoZGlzdGRpcikgLXR5cGUgZCAhIC1wZXJtIC0yMDAgLWV4ZWMgY2htb2QgdSt3IHt9ICc7 JyBcCisrICAgICAgICAgJiYgcm0gLWZyICQoZGlzdGRpcik7IH07IH0KKytESVNUX0FSQ0hJVkVT ID0gJChkaXN0ZGlyKS50YXIuZ3ogJChkaXN0ZGlyKS50YXIuYnoyCisrR1pJUF9FTlYgPSAtLWJl c3QKKytkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50 CisrZGlzdGNsZWFuY2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50CisrQUNM T0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05G ID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBB VVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisr Qk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVT WVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIg PSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JP T1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9P U1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAor K0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFM SVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0ND REVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAor K0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdT QAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBD UFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFgg PSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAor K0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9 IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRUNI TyA9IEBFQ0hPQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hP X1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRjc3 ID0gQEY3N0AKKytGRkxBR1MgPSBARkZMQUdTQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0g QEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElO U1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0g PSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAor K0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTERGTEFH UyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElC VE9PTCA9IEBMSUJUT09MQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpT QAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9D RkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisr TVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFH U0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk1FRElUID0gQE5NRURJVEAK KytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNM RV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9 IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lf VkVSU0lPTkAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFD S0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdF X1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9U QVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBB UkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQ R19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9T VEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBA UE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZF UlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAK KytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAor K1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NU R1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAK KytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytW RVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNf c3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxk ZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFj X2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRjc3ID0gQGFjX2N0X0Y3 N0AKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1f X2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9f dGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWls ZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBA YnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWls ZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAor K2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2Nk aXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZp ZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4 QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3Rf YWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hv c3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRl ZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBA aW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAor K2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xv Y2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGly X3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGly ID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUg PSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0g QHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRz dGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAK Kyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9w X2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNk aXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0 b3Bfc3JjZGlyKQorK0FDTE9DQUxfQU1GTEFHUyA9IC1JIGNvbmZpZworK0FVVE9NQUtFX09QVElP TlMgPSBkaXN0LWJ6aXAyCisrCisrIyAgVEVTVF9ESVIgPSB0ZXN0CisrTUFOX0RPQ19ESVIgPSBt YW4KKysKKysjIE1haW50YWluYW5jZSBmaWxlcworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFr ZWZpbGUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUgXAorKwkJCWNvbmZpZy1oLmluIHNpYy9zdGFt cC1oLmluIGF1dG9nZW4uc2ggYm9vdHN0cmFwCisrCisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSA9IC5fY29uZmlndXJlIC5fTWFrZWZpbGUgY29udHJpYgorK0VYVFJBX0RJ U1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IGNvbnRyaWIKKytFWFRSQV9ESVNUID0gTWFrZWZp bGUuY29tbW9uICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKSBAUEFDS0FHRUAu bTQKKysKKysjIEJ1aWxkIGluIHRoZXNlIGRpcmVjdG9yaWVzOgorK1NVQkRJUlMgPSBidWlsZCBA UEFDS0FHRUAgJChNQU5fRE9DX0RJUikgZG9jICQoVEVTVF9ESVIpCisrCisrIyBDb25maWd1cmF0 aW9uIGhlbHBlcnMKKytiaW5fU0NSSVBUUyA9IEBQQUNLQUdFQC1jb25maWcKKytwa2djb25maWdk aXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCisrcGtnY29uZmlnX0RBVEEgPSBAUEFDS0FHRUAucGMK KyttNGRhdGFkaXIgPSAkKGRhdGFkaXIpL2FjbG9jYWwKKyttNGRhdGFfREFUQSA9IEBQQUNLQUdF QC5tNAorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKythbS0tcmVmcmVzaDoK KysJQDoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3Ig ZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisr CSAgICAqJCRkZXAqKSBcCisrCSAgICAgIGVjaG8gJyBjZCAkKHNyY2RpcikgJiYgJChBVVRPTUFL RSkgLS1nbnUgJzsgXAorKwkgICAgICBjZCAkKHNyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUg IFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlk b25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBN YWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1n bnUgIE1ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2Rpcikv TWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBp biBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBlY2hvICcgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzJzsgXAorKwkgICAgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzOzsgXAorKwkgICop IFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzICRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUp OzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwkkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6 ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJChzcmNkaXIpICYmICQoQVVUT0NPTkYpCisr JChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJChzcmNkaXIpICYm ICQoQUNMT0NBTCkgJChBQ0xPQ0FMX0FNRkxBR1MpCisrc29jaS1jb25maWc6ICQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9zb2NpLWNvbmZpZy5pbgorKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRACisrc29jaS5wYzogJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIpL3NvY2kucGMuaW4KKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQAorK3NvY2kuc3BlYzogJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIpL3NvY2kuc3BlYy5pbgorKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRACisraW5zdGFsbC1i aW5TQ1JJUFRTOiAkKGJpbl9TQ1JJUFRTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAt eiAiJChiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChiaW5kaXIpIgorKwlAbGlz dD0nJChiaW5fU0NSSVBUUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1m ICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGlmIHRlc3Qg LWYgJCRkJCRwOyB0aGVuIFwKKysJICAgIGY9YGVjaG8gIiQkcCIgfCBzZWQgJ3N8Xi4qL3x8OyQo dHJhbnNmb3JtKSdgOyBcCisrCSAgICBlY2hvICIgJChiaW5TQ1JJUFRfSU5TVEFMTCkgJyQkZCQk cCcgJyQoREVTVERJUikkKGJpbmRpcikvJCRmJyI7IFwKKysJICAgICQoYmluU0NSSVBUX0lOU1RB TEwpICIkJGQkJHAiICIkKERFU1RESVIpJChiaW5kaXIpLyQkZiI7IFwKKysJICBlbHNlIDo7IGZp OyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtYmluU0NSSVBUUzoKKysJQCQoTk9STUFMX1VOSU5T VEFMTCkKKysJQGxpc3Q9JyQoYmluX1NDUklQVFMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisr CSAgZj1gZWNobyAiJCRwIiB8IHNlZCAnc3xeLiovfHw7JCh0cmFuc2Zvcm0pJ2A7IFwKKysJICBl Y2hvICIgcm0gLWYgJyQoREVTVERJUikkKGJpbmRpcikvJCRmJyI7IFwKKysJICBybSAtZiAiJChE RVNURElSKSQoYmluZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKyttb3N0bHljbGVhbi1saWJ0b29s OgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xp YnMKKysKKytkaXN0Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mIGxpYnRvb2wKKytpbnN0YWxsLW00 ZGF0YURBVEE6ICQobTRkYXRhX0RBVEEpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16 ICIkKG00ZGF0YWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKG00ZGF0YWRpcikiCisr CUBsaXN0PSckKG00ZGF0YV9EQVRBKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRl c3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisrCSAgZj0k KGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hvICIgJChtNGRhdGFEQVRBX0lOU1RBTEwpICckJGQk JHAnICckKERFU1RESVIpJChtNGRhdGFkaXIpLyQkZiciOyBcCisrCSAgJChtNGRhdGFEQVRBX0lO U1RBTEwpICIkJGQkJHAiICIkKERFU1RESVIpJChtNGRhdGFkaXIpLyQkZiI7IFwKKysJZG9uZQor KworK3VuaW5zdGFsbC1tNGRhdGFEQVRBOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlz dD0nJChtNGRhdGFfREFUQSknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBmPSQoYW1fX3N0 cmlwX2RpcikgXAorKwkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQobTRkYXRhZGlyKS8kJGYn IjsgXAorKwkgIHJtIC1mICIkKERFU1RESVIpJChtNGRhdGFkaXIpLyQkZiI7IFwKKysJZG9uZQor K2luc3RhbGwtcGtnY29uZmlnREFUQTogJChwa2djb25maWdfREFUQSkKKysJQCQoTk9STUFMX0lO U1RBTEwpCisrCXRlc3QgLXogIiQocGtnY29uZmlnZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNU RElSKSQocGtnY29uZmlnZGlyKSIKKysJQGxpc3Q9JyQocGtnY29uZmlnX0RBVEEpJzsgZm9yIHAg aW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIk KHNyY2RpcikvIjsgZmk7IFwKKysJICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAk KHBrZ2NvbmZpZ0RBVEFfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2NvbmZpZ2Rp cikvJCRmJyI7IFwKKysJICAkKHBrZ2NvbmZpZ0RBVEFfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVT VERJUikkKHBrZ2NvbmZpZ2RpcikvJCRmIjsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLXBrZ2Nv bmZpZ0RBVEE6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKHBrZ2NvbmZpZ19E QVRBKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisr CSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwa2djb25maWdkaXIpLyQkZiciOyBcCisrCSAg cm0gLWYgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikvJCRmIjsgXAorKwlkb25lCisrCisrIyBU aGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlv dSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91 Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJp YWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlh YmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAg ICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVu IHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFs dWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgor KwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisr CSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZh aWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49 bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtp bmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBc CisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg JCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisr CWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFp bCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7 IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJ ICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBc CisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBp biBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9T VUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAor KwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwK KysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hv ICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBc CisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFt IjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBm aTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2Fs X3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVzdCAteiAi JCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVj dXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK KysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNF UykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc CisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW10cHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3Rh Z3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykg ICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdz PTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12 ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRh Z3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVf b3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0n JChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdT IHx8IFwKKysJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3Vi ZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJaWYgdGVzdCAteiAi JChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1u ICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgJChFVEFHUykgJChFVEFH U0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgJCR0YWdzICQk dW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAk KEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19G SUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykg ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdT KSQkdGFncyQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NU QUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQkdGFncyAkJHVuaXF1ZQorKworK0dU QUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYm IGNkICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJl CisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lN UyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCSQoYW1fX3JlbW92ZV9k aXN0ZGlyKQorKwl0ZXN0IC1kICQoZGlzdGRpcikgfHwgbWtkaXIgJChkaXN0ZGlyKQorKwlAc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3Rf ZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAg c2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3Jj ZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBp biBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAg IHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBz b3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBc CisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNl IGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisr CSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkg ICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsg dGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8 fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3Rk aXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRp cikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUg XAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlsaXN0PSckKERJU1Rf U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3Vi ZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAg ICB8fCBleGl0IDE7IFwKKysJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3 ZGA7IFwKKysJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdk YDsgXAorKwkgICAgKGNkICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCisrCSAgICAg ICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9 OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAor KwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCS1maW5kICQoZGlzdGRp cikgLXR5cGUgZCAhIC1wZXJtIC03NzcgLWV4ZWMgY2htb2QgYStyd3gge30gXDsgLW8gXAorKwkg ICEgLXR5cGUgZCAhIC1wZXJtIC00NDQgLWxpbmtzIDEgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1v IFwKKysJICAhIC10eXBlIGQgISAtcGVybSAtNDAwIC1leGVjIGNobW9kIGErciB7fSBcOyAtbyBc CisrCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtZXhlYyAkKGluc3RhbGxfc2gpIC1jIC1tIGEr ciB7fSB7fSBcOyBcCisrCXx8IGNobW9kIC1SIGErciAkKGRpc3RkaXIpCisrZGlzdC1nemlwOiBk aXN0ZGlyCisrCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9F TlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6CisrCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQor K2Rpc3QtYnppcDI6IGRpc3RkaXIKKysJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8 IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIpLnRhci5iejIKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIp CisrCisrZGlzdC1sem1hOiBkaXN0ZGlyCisrCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3Rh cikgfCBsem1hIC05IC1jID4kKGRpc3RkaXIpLnRhci5sem1hCisrCSQoYW1fX3JlbW92ZV9kaXN0 ZGlyKQorKworK2Rpc3QtdGFyWjogZGlzdGRpcgorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFt X190YXIpIHwgY29tcHJlc3MgLWMgPiQoZGlzdGRpcikudGFyLloKKysJJChhbV9fcmVtb3ZlX2Rp c3RkaXIpCisrCisrZGlzdC1zaGFyOiBkaXN0ZGlyCisrCXNoYXIgJChkaXN0ZGlyKSB8IEdaSVA9 JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS5zaGFyLmd6CisrCSQoYW1fX3JlbW92ZV9k aXN0ZGlyKQorKworK2Rpc3QtemlwOiBkaXN0ZGlyCisrCS1ybSAtZiAkKGRpc3RkaXIpLnppcAor Kwl6aXAgLXJxICQoZGlzdGRpcikuemlwICQoZGlzdGRpcikKKysJJChhbV9fcmVtb3ZlX2Rpc3Rk aXIpCisrCisrZGlzdCBkaXN0LWFsbDogZGlzdGRpcgorKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAk KGFtX190YXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnRhci5negor Kwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgYnppcDIgLTkgLWMgPiQoZGlzdGRp cikudGFyLmJ6MgorKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKysKKysjIFRoaXMgdGFyZ2V0IHVu dGFycyB0aGUgZGlzdCBmaWxlIGFuZCB0cmllcyBhIFZQQVRIIGNvbmZpZ3VyYXRpb24uICBUaGVu CisrIyBpdCBndWFyYW50ZWVzIHRoYXQgdGhlIGRpc3RyaWJ1dGlvbiBpcyBzZWxmLWNvbnRhaW5l ZCBieSBtYWtpbmcgYW5vdGhlcgorKyMgdGFyZmlsZS4KKytkaXN0Y2hlY2s6IGRpc3QKKysJY2Fz ZSAnJChESVNUX0FSQ0hJVkVTKScgaW4gXAorKwkqLnRhci5neiopIFwKKysJICBHWklQPSQoR1pJ UF9FTlYpIGd1bnppcCAtYyAkKGRpc3RkaXIpLnRhci5neiB8ICQoYW1fX3VudGFyKSA7O1wKKysJ Ki50YXIuYnoyKikgXAorKwkgIGJ1bnppcDIgLWMgJChkaXN0ZGlyKS50YXIuYnoyIHwgJChhbV9f dW50YXIpIDs7XAorKwkqLnRhci5sem1hKikgXAorKwkgIHVubHptYSAtYyAkKGRpc3RkaXIpLnRh ci5sem1hIHwgJChhbV9fdW50YXIpIDs7XAorKwkqLnRhci5aKikgXAorKwkgIHVuY29tcHJlc3Mg LWMgJChkaXN0ZGlyKS50YXIuWiB8ICQoYW1fX3VudGFyKSA7O1wKKysJKi5zaGFyLmd6KikgXAor KwkgIEdaSVA9JChHWklQX0VOVikgZ3VuemlwIC1jICQoZGlzdGRpcikuc2hhci5neiB8IHVuc2hh ciA7O1wKKysJKi56aXAqKSBcCisrCSAgdW56aXAgJChkaXN0ZGlyKS56aXAgOztcCisrCWVzYWMK KysJY2htb2QgLVIgYS13ICQoZGlzdGRpcik7IGNobW9kIGErdyAkKGRpc3RkaXIpCisrCW1rZGly ICQoZGlzdGRpcikvX2J1aWxkCisrCW1rZGlyICQoZGlzdGRpcikvX2luc3QKKysJY2htb2QgYS13 ICQoZGlzdGRpcikKKysJZGNfaW5zdGFsbF9iYXNlPWAkKGFtX19jZCkgJChkaXN0ZGlyKS9faW5z dCAmJiBwd2QgfCBzZWQgLWUgJ3MsXlteOlxcL106W1xcL10sLywnYCBcCisrCSAgJiYgZGNfZGVz dGRpcj0iJCR7VE1QRElSLS90bXB9L2FtLWRjLSQkJCQvIiBcCisrCSAgJiYgY2QgJChkaXN0ZGly KS9fYnVpbGQgXAorKwkgICYmIC4uL2NvbmZpZ3VyZSAtLXNyY2Rpcj0uLiAtLXByZWZpeD0iJCRk Y19pbnN0YWxsX2Jhc2UiIFwKKysJICAgICQoRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUykgXAor KwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBkdmkgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGNoZWNrIFwKKysJ ICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsIFwKKysJICAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBpbnN0YWxsY2hlY2sgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIHVuaW5zdGFsbCBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdHVuaW5z dGFsbGNoZWNrX2Rpcj0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKKysJICAgICAgICBkaXN0dW5pbnN0 YWxsY2hlY2sgXAorKwkgICYmIGNobW9kIC1SIGEtdyAiJCRkY19pbnN0YWxsX2Jhc2UiIFwKKysJ ICAmJiAoeyBcCisrCSAgICAgICAoY2QgLi4vLi4gJiYgdW1hc2sgMDc3ICYmIG1rZGlyICIkJGRj X2Rlc3RkaXIiKSBcCisrCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElS PSIkJGRjX2Rlc3RkaXIiIGluc3RhbGwgXAorKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiB1bmluc3RhbGwgXAorKwkgICAgICAgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiBcCisrCSAgICAgICAg ICAgIGRpc3R1bmluc3RhbGxjaGVja19kaXI9IiQkZGNfZGVzdGRpciIgZGlzdHVuaW5zdGFsbGNo ZWNrOyBcCisrCSAgICAgIH0gfHwgeyBybSAtcmYgIiQkZGNfZGVzdGRpciI7IGV4aXQgMTsgfSkg XAorKwkgICYmIHJtIC1yZiAiJCRkY19kZXN0ZGlyIiBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgZGlzdCBcCisrCSAgJiYgcm0gLXJmICQoRElTVF9BUkNISVZFUykgXAorKwkgICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3RjbGVhbmNoZWNrCisrCSQoYW1fX3JlbW92ZV9k aXN0ZGlyKQorKwlAKGVjaG8gIiQoZGlzdGRpcikgYXJjaGl2ZXMgcmVhZHkgZm9yIGRpc3RyaWJ1 dGlvbjogIjsgXAorKwkgIGxpc3Q9JyQoRElTVF9BUkNISVZFUyknOyBmb3IgaSBpbiAkJGxpc3Q7 IGRvIGVjaG8gJCRpOyBkb25lKSB8IFwKKysJICBzZWQgLWUgMWggLWUgMXMvLi89L2cgLWUgMXAg LWUgMXggLWUgJyQkcCcgLWUgJyQkeCcKKytkaXN0dW5pbnN0YWxsY2hlY2s6CisrCUBjZCAkKGRp c3R1bmluc3RhbGxjaGVja19kaXIpIFwKKysJJiYgdGVzdCBgJChkaXN0dW5pbnN0YWxsY2hlY2tf bGlzdGZpbGVzKSB8IHdjIC1sYCAtbGUgMSBcCisrCSAgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVz IGxlZnQgYWZ0ZXIgdW5pbnN0YWxsOiIgOyBcCisrCSAgICAgICAgaWYgdGVzdCAtbiAiJChERVNU RElSKSI7IHRoZW4gXAorKwkgICAgICAgICAgZWNobyAiICAoY2hlY2sgREVTVERJUiBzdXBwb3J0 KSI7IFwKKysJICAgICAgICBmaSA7IFwKKysJICAgICAgICAkKGRpc3R1bmluc3RhbGxjaGVja19s aXN0ZmlsZXMpIDsgXAorKwkgICAgICAgIGV4aXQgMTsgfSA+JjIKKytkaXN0Y2xlYW5jaGVjazog ZGlzdGNsZWFuCisrCUBpZiB0ZXN0ICckKHNyY2RpciknID0gLiA7IHRoZW4gXAorKwkgIGVjaG8g IkVSUk9SOiBkaXN0Y2xlYW5jaGVjayBjYW4gb25seSBydW4gZnJvbSBhIFZQQVRIIGJ1aWxkIiA7 IFwKKysJICBleGl0IDEgOyBcCisrCWZpCisrCUB0ZXN0IGAkKGRpc3RjbGVhbmNoZWNrX2xpc3Rm aWxlcykgfCB3YyAtbGAgLWVxIDAgXAorKwkgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQg aW4gYnVpbGQgZGlyZWN0b3J5IGFmdGVyIGRpc3RjbGVhbjoiIDsgXAorKwkgICAgICAgJChkaXN0 Y2xlYW5jaGVja19saXN0ZmlsZXMpIDsgXAorKwkgICAgICAgZXhpdCAxOyB9ID4mMgorK2NoZWNr LWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZSAk KFNDUklQVFMpICQoREFUQSkKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisr aW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERF U1RESVIpJChtNGRhdGFkaXIpIiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSI7IGRvIFwKKysJ ICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0 YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vy c2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDog dW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAk KEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3Rh bGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dS QU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSki IElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisr CSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5z dGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0 Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0g LWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgor KwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2Ui CisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29s cyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBy bSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysK KytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCisr CisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiAkKGFtX19DT05GSUdf RElTVENMRUFOX0ZJTEVTKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFu LWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRh Z3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1y ZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5z dGFsbC1kYXRhLWFtOiBpbnN0YWxsLW00ZGF0YURBVEEgaW5zdGFsbC1wa2djb25maWdEQVRBCisr CisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZXhlYy1h bTogaW5zdGFsbC1iaW5TQ1JJUFRTCisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVj dXJzaXZlCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisrCisraW5z dGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2lu c3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbGNoZWNrLWFtOgorKwor K21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtZiAk KGFtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTKQorKwktcm0gLXJmICQodG9wX3NyY2RpcikvYXV0 b200dGUuY2FjaGUKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlz dGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0 bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFt OgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVu aW5zdGFsbC1iaW5TQ1JJUFRTIHVuaW5zdGFsbC1sb2NhbCBcCisrCXVuaW5zdGFsbC1tNGRhdGFE QVRBIHVuaW5zdGFsbC1wa2djb25maWdEQVRBCisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLXN0 cmlwCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9U QVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gYW0tLXJlZnJlc2ggY2hlY2sgY2hl Y2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3Mt cmVjdXJzaXZlIGRpc3QgZGlzdC1hbGwgZGlzdC1iemlwMiBcCisrCWRpc3QtZ3ppcCBkaXN0LWx6 bWEgZGlzdC1zaGFyIGRpc3QtdGFyWiBkaXN0LXppcCBkaXN0Y2hlY2sgXAorKwlkaXN0Y2xlYW4g ZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgXAorKwlk aXN0Y2xlYW5jaGVjayBkaXN0ZGlyIGRpc3R1bmluc3RhbGxjaGVjayBkdmkgZHZpLWFtIGh0bWwg XAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1iaW5T Q1JJUFRTIFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0 YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1s IGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFs bC1tNGRhdGFEQVRBIGluc3RhbGwtbWFuIFwKKysJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0g aW5zdGFsbC1wa2djb25maWdEQVRBIGluc3RhbGwtcHMgXAorKwlpbnN0YWxsLXBzLWFtIGluc3Rh bGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBcCisrCWluc3RhbGxkaXJzIGlu c3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVy aWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRv b2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5pbnN0YWxs IHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtYmluU0NSSVBUUyB1bmluc3RhbGwtbG9jYWwgXAorKwl1 bmluc3RhbGwtbTRkYXRhREFUQSB1bmluc3RhbGwtcGtnY29uZmlnREFUQQorKworK0BTRVRfTUFL RUAKKysKKysjIFRhcmdldHMKKyt1bmluc3RhbGwtbG9jYWw6CisrCXJtIC1yZiAkKERFU1RESVIp JChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKysKKytkaXN0LWh0bWw6CisrCSQoTUFLRSkgLUMgZG9j IGRpc3QtaHRtbAorKworK3NuYXBzaG90OiBzbmFwc2hvdC1zcmMgc25hcHNob3QtaHRtbAorKwor K3NuYXBzaG90LXNyYzoKKysgICAgICAgICQoTUFLRSkgZGlzdCBkaXN0ZGlyPUBQQUNLQUdFX1RB Uk5BTUVALWBkYXRlICsiJVklbSVkImAKKysKKytzbmFwc2hvdC1odG1sOgorKwkkKE1BS0UpIC1D IGRvYyBkaXN0LWh0bWwgaHRtbF90YXJuYW1lPUBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLWBk YXRlICsiJVklbSVkImAKKysKKyt1cGxvYWQ6IHVwbG9hZC1zcmMgdXBsb2FkLWh0bWwKKysKKyt1 cGxvYWQtc3JjOiBkaXN0CisrCUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAtQFZF UlNJT05ALnRhci5neiBcCisrCUBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuYnoyCisr CisrdXBsb2FkLWh0bWw6IGRpc3QtaHRtbAorKwlAVVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdFX1RB Uk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuZ3ogXAorKwlAUEFDS0FHRV9UQVJOQU1FQC1o dG1sLWRvYy1AVkVSU0lPTkAudGFyLmJ6MgorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBv ZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBz eXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQ T1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5hbSBzb2NpLTMu MC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL01h a2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL21hbi9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA5LjAwMDAwMDAw MCArMDIwMAorQEAgLTAsMCArMSw0IEBACisrIyBNYW4gcGFnZXMKKyttYW5fTUFOUyA9IHNvY2kt Y29uZmlnLjEKKysKKytFWFRSQV9ESVNUID0gJChtYW5fTUFOUykKK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmls ZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZp bGUuaW4JMjAwOS0wNS0wMyAwMDoyMDo0MC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNDMw IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFr ZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAw MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkg YW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywg YXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3 aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAor K1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVk ZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9J TlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxf VU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6Cisr YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytzdWJkaXIg PSBtYW4KKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFr ZWZpbGUuaW4KKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2Fj bG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQo Q09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGly cyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3Nv Y2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09V UkNFUyA9CisrbWFuMWRpciA9ICQobWFuZGlyKS9tYW4xCisrYW1fX2luc3RhbGxkaXJzID0gIiQo REVTVERJUikkKG1hbjFkaXIpIgorK05ST0ZGID0gbnJvZmYKKytNQU5TID0gJChtYW5fTUFOUykK KytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykg JChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytB UiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFE RVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1Mg PSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1F X0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytC T09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9 IEBCT09TVF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JP T1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NU X1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBA Qk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJ T05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJ QkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxB R1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFH UyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AK KytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBV TklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1P REUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBA Q1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElM ID0gQERTWU1VVElMQAorK0VDSE8gPSBARUNIT0AKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9f TiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVF WFQgPSBARVhFRVhUQAorK0Y3NyA9IEBGNzdACisrRkZMQUdTID0gQEZGTEFHU0AKKytHRU5FUklD X0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdS RVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFA CisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9 IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJ UF9QUk9HUkFNQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisr TElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMTl9TID0gQExOX1NACisrTFRM SUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0g QE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcg PSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZM QUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAor K05NRURJVCA9IEBOTUVESVRACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBP UkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytP UkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVS U0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tB R0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNL QUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9U QVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9W RVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVS TEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RH UkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9T VEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJ T04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVB U0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAK KytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19C VVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNf QlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVT UUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBA VVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBh YnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRk aXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2Rp ckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2Fj X2N0X0Y3NyA9IEBhY19jdF9GNzdACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1f X2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3Rl QAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRp ciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxp YXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKyti dWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2Rh dGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29r ID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5f b2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3By ZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisr aG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rf b3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0g QGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2Rp ckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisr bGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGly ID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGly ID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRp bmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9n cmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBA cHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVk c3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25m ZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3Bf YnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9i dWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrCisrIyBNYW4gcGFnZXMKKytt YW5fTUFOUyA9IHNvY2ktY29uZmlnLjEKKytFWFRSQV9ESVNUID0gJChtYW5fTUFOUykKKythbGw6 IGFsbC1hbQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsg ZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVw KikgXAorKwkgICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2ggXAorKwkJJiYgZXhpdCAwOyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJ ICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRP TUFLRSkgLS1nbnUgIG1hbi9NYWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisr CSAgJChBVVRPTUFLRSkgLS1nbnUgIG1hbi9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUK KytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcu c3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAg Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo OzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVM TCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBc CisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQo c3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklH X1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAg JChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2Fs X200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisr CisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworK2luc3RhbGwtbWFuMTog JChtYW4xX01BTlMpICQobWFuX01BTlMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16 ICIkKG1hbjFkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChtYW4xZGlyKSIKKysJQGxp c3Q9JyQobWFuMV9NQU5TKSAkKGRpc3RfbWFuMV9NQU5TKSAkKG5vZGlzdF9tYW4xX01BTlMpJzsg XAorKwlsMj0nJChtYW5fTUFOUykgJChkaXN0X21hbl9NQU5TKSAkKG5vZGlzdF9tYW5fTUFOUykn OyBcCisrCWZvciBpIGluICQkbDI7IGRvIFwKKysJICBjYXNlICIkJGkiIGluIFwKKysJICAgICou MSopIGxpc3Q9IiQkbGlzdCAkJGkiIDs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZm9y IGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkKHNyY2RpcikvJCRpOyB0aGVuIGZp bGU9JChzcmNkaXIpLyQkaTsgXAorKwkgIGVsc2UgZmlsZT0kJGk7IGZpOyBcCisrCSAgZXh0PWBl Y2hvICQkaSB8IHNlZCAtZSAncy9eLipcXC4vLydgOyBcCisrCSAgY2FzZSAiJCRleHQiIGluIFwK KysJICAgIDEqKSA7OyBcCisrCSAgICAqKSBleHQ9JzEnIDs7IFwKKysJICBlc2FjOyBcCisrCSAg aW5zdD1gZWNobyAkJGkgfCBzZWQgLWUgJ3MvXFwuWzAtOWEtel0qJCQvLydgOyBcCisrCSAgaW5z dD1gZWNobyAkJGluc3QgfCBzZWQgLWUgJ3MvXi4qXC8vLydgOyBcCisrCSAgaW5zdD1gZWNobyAk JGluc3QgfCBzZWQgJyQodHJhbnNmb3JtKSdgLiQkZXh0OyBcCisrCSAgZWNobyAiICQoSU5TVEFM TF9EQVRBKSAnJCRmaWxlJyAnJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0JyI7IFwKKysJICAk KElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCI7IFwK KysJZG9uZQorK3VuaW5zdGFsbC1tYW4xOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlz dD0nJChtYW4xX01BTlMpICQoZGlzdF9tYW4xX01BTlMpICQobm9kaXN0X21hbjFfTUFOUyknOyBc CisrCWwyPSckKG1hbl9NQU5TKSAkKGRpc3RfbWFuX01BTlMpICQobm9kaXN0X21hbl9NQU5TKSc7 IFwKKysJZm9yIGkgaW4gJCRsMjsgZG8gXAorKwkgIGNhc2UgIiQkaSIgaW4gXAorKwkgICAgKi4x KikgbGlzdD0iJCRsaXN0ICQkaSIgOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlmb3Ig aSBpbiAkJGxpc3Q7IGRvIFwKKysJICBleHQ9YGVjaG8gJCRpIHwgc2VkIC1lICdzL14uKlxcLi8v J2A7IFwKKysJICBjYXNlICIkJGV4dCIgaW4gXAorKwkgICAgMSopIDs7IFwKKysJICAgICopIGV4 dD0nMScgOzsgXAorKwkgIGVzYWM7IFwKKysJICBpbnN0PWBlY2hvICQkaSB8IHNlZCAtZSAncy9c XC5bMC05YS16XSokJC8vJ2A7IFwKKysJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAtZSAncy9e LipcLy8vJ2A7IFwKKysJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAnJCh0cmFuc2Zvcm0pJ2Au JCRleHQ7IFwKKysJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCci OyBcCisrCSAgcm0gLWYgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCI7IFwKKysJZG9uZQor K3RhZ3M6IFRBR1MKKytUQUdTOgorKworK2N0YWdzOiBDVEFHUworK0NUQUdTOgorKworKworK2Rp c3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIk KHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0n JChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8g ZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3Qi IFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3Qi YDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hv ICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7 cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9y IGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVz dCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRl c3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2Vk IC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxl ICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2Rp cikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAg ICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxz ZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQk ZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7 IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06 IE1ha2VmaWxlICQoTUFOUykKKytpbnN0YWxsZGlyczoKKysJZm9yIGRpciBpbiAiJChERVNURElS KSQobWFuMWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQk ZGlyIjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5z dGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6 IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01B S0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVj azogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VG TEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBp bnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJ UF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklO U1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5 Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmlj OgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19D TEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlz IGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0 IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQu IgorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxp YnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0g LWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCisr CisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2luZm86 IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1tYW4K KysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4ZWMtYW06Cisr CisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWluZm86IGluc3Rh bGwtaW5mby1hbQorKworK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjEKKysKKytpbnN0YWxsLXBk ZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5z dGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0K KysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1h aW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQor KworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRv b2wKKysKKytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1h bToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1tYW4KKysKKyt1bmluc3RhbGwtbWFuOiB1 bmluc3RhbGwtbWFuMQorKworKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKysKKysu UEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0 b29sIGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5z dGFsbCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxs LWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8t YW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1tYW4xIFwKKysJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYt YW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hl Y2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKysJbWFpbnRhaW5lci1jbGVhbiBtYWlu dGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0bHljbGVhbi1nZW5lcmlj IG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCisrCXVuaW5zdGFsbCB1 bmluc3RhbGwtYW0gdW5pbnN0YWxsLW1hbiB1bmluc3RhbGwtbWFuMQorKworKyMgVGVsbCB2ZXJz aW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMu CisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUg ZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9z b2NpLWNvbmZpZy4xIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vc29jaS1jb25maWcuMQorLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL21hbi9zb2NpLWNvbmZpZy4xCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL21hbi9zb2NpLWNvbmZpZy4xCTIw MDktMDQtMTYgMTk6Mzc6MDkuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDM5IEBACisrLlRI IFNPQ0kgMSAiMjggTWFyY2ggMjAwOSIKKysuU0ggTkFNRQorK3NvY2ktY29uZmlnIC0gc2NyaXB0 IHRvIGdldCB2ZXJzaW9uIG51bWJlciBhbmQgY29tcGlsZXIgZmxhZ3Mgb2YgdGhlIGluc3RhbGxl ZCBTT0NJIGxpYnJhcnkKKysuU0ggU1lOT1BTSVMKKysuQiBzb2NpLWNvbmZpZworK1tcLVwtcHJl Zml4XSAgW1wtXC12ZXJzaW9uXSBbXC1cLWxpYnNdIFtcLVwtY2ZsYWdzXQorKy5TSCBERVNDUklQ VElPTgorKy5QUAorK1xmSXNvY2ktY29uZmlnXGZQIGlzIGEgdG9vbCB0aGF0IGlzIHVzZWQgdG8g Y29uZmlndXJlIHRvIGRldGVybWluZQorK3RoZSBjb21waWxlciBhbmQgbGlua2VyIGZsYWdzIHRo YXQgc2hvdWxkIGJlIHVzZWQgdG8gY29tcGlsZQorK2FuZCBsaW5rIHByb2dyYW1zIHRoYXQgdXNl IFxmSVNPQ0lcZlAuIEl0IGlzIGFsc28gdXNlZCBpbnRlcm5hbGx5CisrdG8gdGhlIC5tNCBtYWNy b3MgZm9yIEdOVSBhdXRvY29uZiB0aGF0IGFyZSBpbmNsdWRlZCB3aXRoIFxmSVNPQ0lcZlAuCisr LgorKy5TSCBPUFRJT05TCisrLmwKKytcZklzb2NpLWNvbmZpZ1xmUCBhY2NlcHRzIHRoZSBmb2xs b3dpbmcgb3B0aW9uczoKKysuVFAgOAorKy5CICBcLVwtdmVyc2lvbgorK1ByaW50IHRoZSBjdXJy ZW50bHkgaW5zdGFsbGVkIHZlcnNpb24gb2YgXGZJU09DSVxmUCBvbiB0aGUgc3RhbmRhcmQgb3V0 cHV0LgorKy5UUCA4CisrLkIgIFwtXC1saWJzCisrUHJpbnQgdGhlIGxpbmtlciBmbGFncyB0aGF0 IGFyZSBuZWNlc3NhcnkgdG8gbGluayBhIFxmSVNPQ0lcZlAgcHJvZ3JhbSwgd2l0aCBjYmxhcwor Ky5UUCA4CisrLkIgIFwtXC1jZmxhZ3MKKytQcmludCB0aGUgY29tcGlsZXIgZmxhZ3MgdGhhdCBh cmUgbmVjZXNzYXJ5IHRvIGNvbXBpbGUgYSBcZklTT0NJXGZQIHByb2dyYW0uCisrLlRQIDgKKysu QiAgXC1cLXByZWZpeAorK1Nob3cgdGhlIFNPQ0kgaW5zdGFsbGF0aW9uIHByZWZpeC4KKysuU0gg U0VFIEFMU08KKysuQlIgZ3RrLWNvbmZpZyAoMSksCisrLkJSIGdub21lLWNvbmZpZyAoMSkKKysu U0ggQ09QWVJJR0hUCisrQ29weXJpZ2h0IFwoY28gIDIwMDkgRGVuaXMgQXJuYXVkCisrCisrUGVy bWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2Fy ZSBhbmQgaXRzCisrZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVl IGlzIGhlcmVieSBncmFudGVkLAorK3Byb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQKKytib3RoIHRoYXQgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4KKytzdXBwb3J0aW5n IGRvY3VtZW50YXRpb24uCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svTkVXUyBzb2NpLTMu MC4wX3RyZXAzMDAvTkVXUworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL05FV1MJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTkVXUwkyMDA5 LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzIEBACisrCisrKiBX ZWQgTWFyIDI2IDIwMDkgUlBNIHJlbGVhc2UgZm9yIHZlcnNpb24gMy4wLjAKKysKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCTIw MDktMDQtMjggMjM6MTU6MTQuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDkgQEAKKytpbmNs dWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisrIyMgU291cmNlIGRpcmVjdG9y eQorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0g QE1ZU1FMX0RJUlNAIEBQT1NUR1JFU1FMX0RJUlNAIEBPUkFDTEVfRElSU0AKKysKKytFWFRSQV9E SVNUID0KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxl LmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L01ha2VmaWxlLmluCTIwMDktMDUtMDMgMDA6MjA6NDEuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDUzNiBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBm cm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAo QykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwK KysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0 byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh dGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5 IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRf TUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tB R0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAk KGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04r Ln0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxf c2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytp bnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQo SU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytO T1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6Cisr Tk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxM ID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisr RElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmlu IFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2NpL2JhY2tl bmRzCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2Fs X200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3Jh Y2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJl LmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJ R1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAk KGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2Nv bmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMg PQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZp LXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0 YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vy c2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBc CisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJl Y3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZl IHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK1JF Q1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vy c2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZl CisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJ UlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5G T1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJA CisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRP SEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZM QUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVf VElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJA CisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJ QlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAK KytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytC T09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9USFJFQURfTElC ID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBA Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9W RVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBA Q0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9D RkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05G SUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBA Q1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhE RVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9X ID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lN VVRJTCA9IEBEU1lNVVRJTEAKKytFQ0hPID0gQEVDSE9ACisrRUNIT19DID0gQEVDSE9fQ0AKKytF Q0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisr RVhFRVhUID0gQEVYRUVYVEAKKytGNzcgPSBARjc3QAorK0ZGTEFHUyA9IEBGRkxBR1NACisrR0VO RVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9 IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9E QVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJ UFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExf U1RSSVBfUFJPR1JBTUAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpT QAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTE5fUyA9IEBMTl9TQAor K0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJf UCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ09O RklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxf TERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lP TkAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMg PSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NA CisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJ X1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQ QUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBA UEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tB R0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tB R0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0g QFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQ T1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAor K1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9W RVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9S RUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01B S0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURF UlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NU R1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5E ID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIg PSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1 aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9z cmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAK KythY19jdF9GNzcgPSBAYWNfY3RfRjc3QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAor K2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19x dW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKyti aW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxk X2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NA CisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAK KytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlm Zl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5 Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhl Y19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0 QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKyto b3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRp ciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGlu Zm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29r QAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2Fs ZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21h bmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBA b2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisr cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGly ID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3No YXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lz Y29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisr dG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0 b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0g LUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrTUFJTlRBSU5FUkNMRUFORklMRVMg PSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSBATVlTUUxfRElSU0AgQFBPU1RHUkVTUUxfRElSU0Ag QE9SQUNMRV9ESVJTQAorK0VYVFJBX0RJU1QgPSAKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysu U1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFt ICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlA Zm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4g XAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAorKwkJJiYgZXhpdCAwOyBcCisrCSAgICAg IGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3Ny Y2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvTWFrZWZpbGUnOyBcCisr CWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tl bmRzL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2Rpcikv TWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBp biBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAg ZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChz dWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1 czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykK KysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykK KysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrbW9z dGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwkt cm0gLXJmIC5saWJzIF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVz IGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVu IGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5n ZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtl ZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycs IGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2Vm aWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhl cndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5l LgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3Ig ZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwg LS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2Fj OyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2Vk IHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisr CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsg XAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoY2QgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFs ICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsg dGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0 IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTKToKKysJQGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsg ZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAg KmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRv dF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFp bmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQo U1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkg ICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0i JCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAor Kwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGlu ICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAg ICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWls Y29tOyBcCisrCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIk JHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0 YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChj ZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQor KworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAor KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW10cHkgPSAxOyB9IFwKKysJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc CisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vy c2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQo VEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgk KEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4g XAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0u OyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5 X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJ ICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgdGFncz0iJCR0YWdzICQk aW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9u ZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVT KSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYg IiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkg IGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0g XAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBp OyB9OyB9J2A7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsg dGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlf Zml4OyBcCisrCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRB R1NfQVJHUykgXAorKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCisrCWZpCisrY3RhZ3M6IENUQUdT CisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19E RVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBc CisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCisrCSAgfHwgJChD VEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkg ICAgICQkdGFncyAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3Bf YnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0 YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAt ZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChE SVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxF UyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmls ZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAg ICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNh c2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9m aWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQk LCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAk JGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmls ZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQv JCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1te L10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAk JGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUg JChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1wUiAk JGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAg IHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAk KGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25l CisrCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQg IiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikv JCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgICAgZGlzdGRpcj1gJChhbV9fY2Qp ICQoZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRv cF9kaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICAoY2QgJCRzdWJkaXIgJiYgXAorKwkgICAgICAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rp c3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKKysJCWFt X19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKysJICAg ICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUK KytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFr ZWZpbGUKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMt YW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwt ZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1 bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJ QCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0K KysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlw OgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQ X1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQ KScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RS SVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6 CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxF UykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4t Z2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5l cnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNw ZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVj dXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHlj bGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFr ZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVh bi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0 bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKwor K2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZl CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJl Y3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2lu c3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytp bnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxjaGVjay1hbToKKysK KyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYg TWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKwor K21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wK KysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2 ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCisrCWluc3Rh bGwtc3RyaXAKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJT SVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBj bGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorKwljdGFncyBjdGFncy1yZWN1cnNp dmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlz dGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5m by1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFt IGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3Rh bGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisrCWlu c3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCisrCWlu c3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFu IFwKKysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdl bmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0 YWdzLXJlY3Vyc2l2ZSBcCisrCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VA CisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQg YWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQg bGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0wMyAwMDoyNDoxMy4wMDAwMDAw MDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9jb21t b24uY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtNiw3ICs2LDEz IEBACisgLy8KKyAKKyAjaW5jbHVkZSAiY29tbW9uLmgiCistI2luY2x1ZGUgInNvY2ktYmFja2Vu ZC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGlu Y2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29j aS1iYWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVk ZSA8Y3N0ZGxpYj4KKyAjaW5jbHVkZSA8Y3RpbWU+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmls ZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyNiBA QAorKyMjIGJhY2tlbmRzL215c3FsIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5taworKworK01B SU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0gLiB0ZXN0Cisr CisraWYgSEFWRV9NWVNRTAorK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9teXNxbC5sYQorKwor K2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFUz0gJChiY2tfbXlzcWxfaF9zb3VyY2VzKSAkKGJja19t eXNxbF9jY19zb3VyY2VzKSAKKytsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTID0gJChNWVNRTF9D RkxBR1MpCisrbGlic29jaV9teXNxbF9sYV9MSUJBREQgPQorK2xpYnNvY2lfbXlzcWxfbGFfTERG TEFHUyA9IFwKKysJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQikgXAorKwktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT04pCisrCisrcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAorK2VuZGlmCisraWYgU09DSV9IRUFERVJTX0JVUklF RAorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwK KytlbHNlCisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytlbmRpZgorK3BrZ2lu Y2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYworLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0wMyAwMDoyNDoxMy4w MDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAg LTEsOTcgKzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIHNwZWNpZmljIHRv IHRoaXMgYmFja2VuZCBhbmQgdGhlaXIgY29ycmVjdAorLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBv biB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KKy0K Ky1NWVNRTExJQkRJUiA9IC1ML3Vzci9saWIvbXlzcWwKKy1NWVNRTExJQlMgPSAtbG15c3FsY2xp ZW50IC1segorLU1ZU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlL215c3FsCistCistIyBU aGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIHRhcmdldCBlbnZp cm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGlj IC1Xbm8tbG9uZy1sb25nCistQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCistSU5DTFVE RURJUlMgPSAtSS4uLy4uL2NvcmUgJHtNWVNRTElOQ0xVREVESVJ9CistCistCistT0JKRUNUUyA9 IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlwZS5v IFwKKy0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBlLm8g dmVjdG9yLXVzZS10eXBlLm8gXAorLQljb21tb24ubworLQorLQorLU9CSkVDVFNTTyA9IGJsb2It cy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAorLQlzdGFuZGFyZC1pbnRv LXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKKy0JdmVjdG9y LWludG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBjb21tb24tcy5vCistCistCistbGli c29jaV9teXNxbC5hIDogJHtPQkpFQ1RTfQorLQlhciBydiAkQCAkPworLQlybSAqLm8KKy0KKy0K Ky1ibG9iLm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQorLQorLWNvbW1vbi5vIDogY29tbW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLWZhY3RvcnkubyA6IGZhY3RvcnkuY3Bw CistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistcm93 LWlkLm8gOiByb3ctaWQuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9CistCistc2Vzc2lvbi5vIDogc2Vzc2lvbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC1pbnRvLXR5cGUubyA6 IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC11c2UtdHlwZS5vIDogc3RhbmRhcmQtdXNlLXR5 cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Cist Cistc3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLWludG8tdHlwZS5vIDogdmVjdG9yLWlu dG8tdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KKy0KKy12ZWN0b3ItdXNlLXR5cGUubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKKy0JJHtDT01Q SUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zaGFyZWQgOiAke09C SkVDVFNTT30KKy0JJHtDT01QSUxFUn0gLXNoYXJlZCAtbyBsaWJzb2NpX215c3FsLnNvICR7T0JK RUNUU1NPfQorLQlybSAqLm8KKy0KKy1ibG9iLXMubyA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9 IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1jb21tb24tcy5v IDogY29tbW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7 SU5DTFVERURJUlN9CistCistZmFjdG9yeS1zLm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVS fSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistcm93LWlkLXMu byA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAk e0lOQ0xVREVESVJTfQorLQorLXNlc3Npb24tcy5vIDogc2Vzc2lvbi5jcHAKKy0JJHtDT01QSUxF Un0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJk LWludG8tdHlwZS1zLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1j IC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC11c2Ut dHlwZS1zLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAg JD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC1zLm8gOiBzdGF0 ZW1lbnQuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNM VURFRElSU30KKy0KKy12ZWN0b3ItaW50by10eXBlLXMubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3Bw CistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30K Ky0KKy12ZWN0b3ItdXNlLXR5cGUtcy5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistCistY2xl YW4gOgorLQlybSAtZiBsaWJzb2NpX215c3FsLmEgbGlic29jaV9teXNxbC5zbworZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4gc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvbXlzcWwvTWFrZWZpbGUuaW4JMjAwOS0wNS0wMyAwMDoyMDo0MS4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsNzk2IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2Ug MS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29w eXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisr IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJt aXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisr CisrQFNFVF9NQUtFQAorKworKworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChk YXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrYW1f X2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAor K2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9Q Uk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxs X3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0g JChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNU QUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9V TklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWls ZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoYW1fX3BrZ2luY2x1 ZGVfSEVBREVSU19ESVNUKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAorKwkkKHNyY2RpcikvTWFr ZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbgorK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvbXlzcWwKKytBQ0xPQ0FMX000ID0gJCh0 b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rp cikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2Rl cHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAor KwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05G SUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5f RklMRVMgPQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNk aXIpIiB8IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisr ICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8 ImA7OyBcCisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gYGVj aG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RE SVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrbGliTFRMSUJSQVJJ RVNfSU5TVEFMTCA9ICQoSU5TVEFMTCkKKytMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVT KQorK2xpYnNvY2lfbXlzcWxfbGFfREVQRU5ERU5DSUVTID0KKythbV9fbGlic29jaV9teXNxbF9s YV9TT1VSQ0VTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv Y29tbW9uLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNx bC5oIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwIFwKKysJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAgXAorKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAgXAorKwkkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKythbV9fb2JqZWN0c18xID0KKyth bV9fb2JqZWN0c18yID0gbGlic29jaV9teXNxbF9sYS1ibG9iLmxvIGxpYnNvY2lfbXlzcWxfbGEt Y29tbW9uLmxvIFwKKysJbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvIGxpYnNvY2lfbXlzcWxf bGEtcm93LWlkLmxvIFwKKysJbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIFwKKysJbGlic29j aV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gXAorKwlsaWJzb2NpX215c3FsX2xhLXN0 YW5kYXJkLXVzZS10eXBlLmxvIFwKKysJbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gXAor KwlsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gXAorKwlsaWJzb2NpX215c3Fs X2xhLXZlY3Rvci11c2UtdHlwZS5sbworK0BIQVZFX01ZU1FMX1RSVUVAYW1fbGlic29jaV9teXNx bF9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKSBcCisrQEhBVkVfTVlTUUxfVFJVRUAJJChh bV9fb2JqZWN0c18yKQorK2xpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9t eXNxbF9sYV9PQkpFQ1RTKQorK2xpYnNvY2lfbXlzcWxfbGFfTElOSyA9ICQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGlu ayAkKENYWExEKSBcCisrCSQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg XAorKwkkKGxpYnNvY2lfbXlzcWxfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0BIQVZF X01ZU1FMX1RSVUVAYW1fbGlic29jaV9teXNxbF9sYV9ycGF0aCA9IC1ycGF0aCAkKGxpYmRpcikK KytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2Np CisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9f ZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytMVENYWENPTVBJTEUgPSAkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxB R1MpCisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQp ICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1Mp IC1vICRACisrQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisrCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENG TEFHUykKKytMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrQ0NMRCA9ICQoQ0MpCisrTElOSyA9ICQoTElCVE9P TCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9k ZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJ JChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKGxpYnNvY2lfbXlzcWxfbGFfU09VUkNFUykK KytESVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2NpX215c3FsX2xhX1NPVVJDRVNfRElTVCkKKytS RUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1 cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVj dXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUg XAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlp bnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNp dmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYt cmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKythbV9fcGtn aW5jbHVkZV9IRUFERVJTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvc29jaS1teXNxbC5oCisrcGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCA9ICQoSU5TVEFM TF9IRUFERVIpCisrSEVBREVSUyA9ICQocGtnaW5jbHVkZV9IRUFERVJTKQorK1JFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisr ICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrRVRBR1Mg PSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElT VEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhU UkFfRElTVCkKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorK0FDTE9DQUwg PSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBB VVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01B S0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NU X0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVN X0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJP T1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9S RUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJ R05BTFNfTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09T VF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJ T05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1P REUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBG TEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytD UFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5J VF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENY WEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhG TEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVG U0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0VDSE8gPSBA RUNIT0AKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0g QEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0Y3NyA9IEBG NzdACisrRkZMQUdTID0gQEZGTEFHU0AKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5F UklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxM QAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElO U1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNU QUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xERkxBR1MgPSBA TERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wg PSBATElCVE9PTEAKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytN QUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdT ID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FM X0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisr TVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NRURJVCA9IEBOTUVESVRACisrT0JK RVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJ X0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JB Q0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJ T05ACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0Vf QlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJ TkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFN RUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9S ID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09O RklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVT UUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RH UkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9O QAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VE ID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJ X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RS SVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lP TiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2Rp ciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAK KythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9D Q0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACisr YW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFk aW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAK KythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBA YnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxk X2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVu ZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRh cm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0g QGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAK Kytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytn c19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFz QAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3Zl bmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9 IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3Rh bGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJl eGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0 YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0g QG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBw ZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHBy b2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmlu ZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVk aXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFy Z2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWls ZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0g QHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3Ny Y2RpcikKKytiY2tfbXlzcWxfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKKysKKytiY2tfbXlzcWxfY2Nfc291cmNlcyA9 IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrCisrTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSAuIHRlc3QKKytASEFWRV9N WVNRTF9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfbXlzcWwubGEKKytASEFWRV9NWVNR TF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfU09VUkNFUyA9ICQoYmNrX215c3FsX2hfc291cmNlcykg JChiY2tfbXlzcWxfY2Nfc291cmNlcykgCisrQEhBVkVfTVlTUUxfVFJVRUBsaWJzb2NpX215c3Fs X2xhX0NYWEZMQUdTID0gJChNWVNRTF9DRkxBR1MpCisrQEhBVkVfTVlTUUxfVFJVRUBsaWJzb2Np X215c3FsX2xhX0xJQkFERCA9IAorK0BIQVZFX01ZU1FMX1RSVUVAbGlic29jaV9teXNxbF9sYV9M REZMQUdTID0gXAorK0BIQVZFX01ZU1FMX1RSVUVACSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRF X1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKytASEFWRV9NWVNRTF9U UlVFQAktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisrCisrQEhBVkVf TVlTUUxfVFJVRUBwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc29jaS1teXNxbC5oCisrQFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29jaV9p bmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytAU09DSV9IRUFERVJTX0JVUklFRF9UUlVFQHNv Y2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwKKythbGw6 IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAu b2JqCisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9w X3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZp Z3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZp Z3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggXAorKwkJJiYgZXhp dCAwOyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNo byAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMv bXlzcWwvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01B S0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtl ZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisr CSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJl KSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKysk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChD T05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoCisraW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJS QVJJRVMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQo TUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklF UyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBcCisr CSAgICBmPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgICAgZWNobyAiICQoTElCVE9PTCkgJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxpYkxUTElCUkFS SUVTX0lOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAnJCRwJyAnJChERVNURElSKSQobGli ZGlyKS8kJGYnIjsgXAorKwkgICAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJTlNU QUxMX1NUUklQX0ZMQUcpICIkJHAiICIkKERFU1RESVIpJChsaWJkaXIpLyQkZiI7IFwKKysJICBl bHNlIDo7IGZpOyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtbGliTFRMSUJSQVJJRVM6CisrCUAk KE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBp biAkJGxpc3Q7IGRvIFwKKysJICBwPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAkKExJ QlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFs bCBybSAtZiAnJChERVNURElSKSQobGliZGlyKS8kJHAnIjsgXAorKwkgICQoTElCVE9PTCkgJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICIk KERFU1RESVIpJChsaWJkaXIpLyQkcCI7IFwKKysJZG9uZQorKworK2NsZWFuLWxpYkxUTElCUkFS SUVTOgorKwktdGVzdCAteiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKGxpYl9MVExJ QlJBUklFUykKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsg ZG8gXAorKwkgIGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9dKiQkfHwnYCI7IFwKKysJ ICB0ZXN0ICIkJGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKKysJICBlY2hvICJybSAtZiBcIiQk e2Rpcn0vc29fbG9jYXRpb25zXCIiOyBcCisrCSAgcm0gLWYgIiQke2Rpcn0vc29fbG9jYXRpb25z IjsgXAorKwlkb25lCisrbGlic29jaV9teXNxbC5sYTogJChsaWJzb2NpX215c3FsX2xhX09CSkVD VFMpICQobGlic29jaV9teXNxbF9sYV9ERVBFTkRFTkNJRVMpIAorKwkkKGxpYnNvY2lfbXlzcWxf bGFfTElOSykgJChhbV9saWJzb2NpX215c3FsX2xhX3JwYXRoKSAkKGxpYnNvY2lfbXlzcWxfbGFf T0JKRUNUUykgJChsaWJzb2NpX215c3FsX2xhX0xJQkFERCkgJChMSUJTKQorKworK21vc3RseWNs ZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxl OgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKKytA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1jb21tb24uUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlBsb0BhbV9f cXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lv bi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG9AYW1fX3F1 b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxf bGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5Q bG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAor KworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAg LU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9v bD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Cisr CisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRA IC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwn YAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElS KS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcg b2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJ TEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElS KS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBE SVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKytsaWJzb2NpX215c3Fs X2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9s YS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJsb2IuVHBv IC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5UcG8gJChERVBESVIpL2xp YnNvY2lfbXlzcWxfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwJyBv YmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1ibG9iLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9i LmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1jb21tb24ubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWNv bW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1v bi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9jb21tb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9s aWJzb2NpX215c3FsX2xhLWNvbW1vbi5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtY29t bW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCcgb2JqZWN0PSdsaWJzb2Np X215c3FsX2xhLWNvbW1vbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1jb21tb24ubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAor KworK2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gLU1EIC1NUCAtTUYgJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1mYWN0 b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9y eS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv bGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1m YWN0b3J5LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGli c29jaV9teXNxbF9sYS1mYWN0b3J5LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3Rv cnkuY3BwCisrCisrbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG86ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEt cm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93 LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Jvdy1pZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1y b3ctaWQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwJyBvYmplY3Q9J2xpYnNv Y2lfbXlzcWxfbGEtcm93LWlkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3Bw CisrCisrbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXNl c3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNz aW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xh LXNlc3Npb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcgb2JqZWN0PSds aWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vz c2lvbi5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEt c3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3Fs X2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFy ZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1p bnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlw ZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVj dD0nbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAK KysKKytsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVz ZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJk LXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNl LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xh LXN0YW5kYXJkLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBl LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQt dXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrCisrbGlic29jaV9teXNxbF9sYS1z dGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQu Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215 c3FsX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9s YS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRl bWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1l bnQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNv Y2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z dGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEt dmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9s YS12ZWN0b3ItaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRv LXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0 b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBv ICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3Fs X2xhLXZlY3Rvci1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlw ZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1p bnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLXZl Y3Rvci11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rv ci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1U IGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9teXNx bF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3It dXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5Q bG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGli c29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlz cWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9y LXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv dmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKysKKyttb3N0bHljbGVhbi1s aWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxp YnMgX2xpYnMKKytpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVS UykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8 ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorKwlAbGlzdD0nJChwa2dp bmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAi JCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBmPSQoYW1fX3N0 cmlwX2RpcikgXAorKwkgIGVjaG8gIiAkKHBrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICckJGQk JHAnICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkgICQocGtnaW5jbHVk ZUhFQURFUlNfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQk ZiI7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKKysJQCQoTk9S TUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IGZvciBwIGlu ICQkbGlzdDsgZG8gXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiIHJtIC1m ICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkgIHJtIC1mICIkKERFU1RE SVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKysjIFRoaXMgZGlyZWN0b3J5 J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMg aW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2Vm aWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVh ZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGlu IGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2ls bCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFr ZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBt YWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsY29tPSdl eGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBp biBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15 ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJn ZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBp biAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkg ICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAor KwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAor KwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rhcmdl dCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVzdCAiJCRk b3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0 YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKworKyQoUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBp biB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1b IWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBc CisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBkaXN0 Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBc CisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBcCisr CWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8t cmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hvICJN YWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxz ZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisr CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFn cy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0 YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQo VEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9 IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKwor K1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVO REVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9 YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2 L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBc CisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1pbmNs dWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0 aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorKwkgICAg ICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwK KysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAor KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1Mp JCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8 fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1f RVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJ ZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChT T1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1Ap CisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlx dWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChD VEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9 YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3Jj ZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xl YW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MK KysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1g ZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisr CWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxp c3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJp cC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRp cikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9Q KSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0 ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBc CisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxl IHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJ ICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxl IiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIp LyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIg JChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsg XAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAor KwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBj cCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAor KwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2Ug XAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJ Ul9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgICBk aXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICB0b3BfZGlzdGRp cj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIChjZCAkJHN1YmRp ciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3Bf ZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8k JHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3Ro X2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAxOyBcCisr CSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJz aXZlCisrYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCisraW5zdGFs bGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJzLWFtOgorKwlmb3IgZGly IGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiOyBk byBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorKwlkb25l CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhl Yy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmlu c3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysK KytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgor KwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJ UF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BS T0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScg fHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVAp JyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6Cisr CisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUyki IHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2Vu ZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMg dG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNp YWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVT KSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJz aXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xl YW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4t cmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlz dGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBc CisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgor KworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytp bmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwor KworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWV4ZWMt YW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRt bC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysK KytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisr CisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxsY2hlY2stYW06 CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJt IC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFt OiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46 IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1j b21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisr cGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysK Kytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmlu c3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFS R0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCisrCWluc3RhbGwtc3RyaXAK KysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdF VFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVh bi1nZW5lcmljIFwKKysJY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBjdGFncyBj dGFncy1yZWN1cnNpdmUgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFu LWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2 aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1h bSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1k dmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0 YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbGli TFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBp bnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcHMgXAorKwlpbnN0YWxsLXBzLWFtIGlu c3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBcCisrCWluc3RhbGxkaXJz IGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdl bmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisrCW1vc3RseWNsZWFuLWdl bmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0 YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwKKysJdW5pbnN0YWxsLWxpYkxU TElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworK0BTRVRfTUFLRUAKKysj IFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwg dmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFz dCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaCBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAw MDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Nv Y2ktbXlzcWwuaAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTIzLDEy ICsyMywyMyBAQAorICNpZm5kZWYgU09DSV9NWVNRTF9ERUNMCisgIyBkZWZpbmUgU09DSV9NWVNR TF9ERUNMCisgI2VuZGlmCistCistI2luY2x1ZGUgInNvY2ktYmFja2VuZC5oIgorKy8vCisrI2lm IGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29y ZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Cisr I2VuZGlmCisrLy8KKyAjaWZkZWYgX1dJTjMyCisgI2luY2x1ZGUgPHdpbnNvY2suaD4gLy8gU09D S0VUCisgI2VuZGlmIC8vIF9XSU4zMgorLSNpbmNsdWRlIDxteXNxbC5oPiAvLyBNeVNRTCBDbGll bnQKKysvLworKy8vIE15U1FMIENsaWVudAorKyNpZiBkZWZpbmVkKFNPQ0lfTVlTUUxfSEVBREVS U19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxteXNxbC9teXNxbC5oPgorKyNlbHNlCisrIwlp bmNsdWRlIDxteXNxbC5oPgorKyNlbmRpZgorICNpbmNsdWRlIDx2ZWN0b3I+CisgCisgCitkaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1rIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsKKy0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9teXNxbC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDE0IEBACisrYmNrX215c3FsX2hfc291cmNlcyA9IFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCisrYmNrX215c3FsX2Nj X3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv YmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Nv bW1vbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Zh Y3RvcnkuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9y b3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z ZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQt aW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9t eXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMDMgMDA6MjQ6MTUuMDAwMDAwMDAw ICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAg LTgsOCArOCwxNCBAQAorIAorICNkZWZpbmUgU09DSV9NWVNRTF9TT1VSQ0UKKyAjaW5jbHVkZSAi c29jaS1teXNxbC5oIgorLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisgI2luY2x1ZGUgImNv bW1vbi5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAg IGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUg PHNvY2ktcGxhdGZvcm0uaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjaXNvNjQ2PgorICNp bmNsdWRlIDxjYXNzZXJ0PgorICNpbmNsdWRlIDxjdGltZT4KK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBl LmNwcAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA0 LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTksNyArOSwxMyBAQAorICNkZWZpbmUg U09DSV9NWVNRTF9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1teXNxbC5oIgorICNpbmNsdWRlICJj b21tb24uaCIKKy0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKy8vCisrI2lmIGRlZmluZWQo U09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLXBs YXRmb3JtLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysjZW5kaWYK KysvLworICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxsaW1pdHM+CisgI2luY2x1ZGUg PGNzdHJpbmc+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNx bC90ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L3Rlc3QvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxl LmFtCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE4IEBA CisrIyMgYmFja2VuZC9teXNxbC90ZXN0IHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5taworKwor K01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytpZiBSVU5fVEVTVFMKKysg IG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfbXlzcWwKKytlbmRpZgorKworK3Rlc3RfbXlzcWxfU09V UkNFUyA9ICQobXlzcWxfdGVzdF9jY19zb3VyY2VzKQorK3Rlc3RfbXlzcWxfQ1hYRkxBR1MgPSAk KEJPT1NUX0NGTEFHUykKKyt0ZXN0X215c3FsX0xEQUREID0KKyt0ZXN0X215c3FsX0xERkxBR1Mg PSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKKysJCSQo dG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2xpYnNvY2lfbXlzcWwubGEgXAorKwkJ JChNWVNRTF9MREZMQUdTKQorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChteXNx bF90ZXN0X2hfc291cmNlcykKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYwkyMDA5LTA1LTAzIDAwOjI0OjEz LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKK0BAIC0xLDIyICswLDAgQEAKKy0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFyZSBzcGVj aWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIHRoZWlyIGNvcnJlY3QKKy0jIHZhbHVlcyBtaWdodCBk ZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5n bHkuCistCistTVlTUUxMSUJESVIgPSAtTC91c3IvbGliL215c3FsCistTVlTUUxMSUJTID0gLWxt eXNxbGNsaWVudCAtbHoKKy1NWVNRTElOQ0xVREVESVIgPSAtSS91c3IvaW5jbHVkZS9teXNxbAor LQorLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW5kZW50IG9mIHRoZSB0YXJn ZXQgZW52aXJvbm1lbnQuCistCistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxsIC1w ZWRhbnRpYyAtV25vLWxvbmctbG9uZworLUlOQ0xVREVESVJTID0gLUkuLiAtSS4uLy4uLy4uL2Nv cmUgJHtNWVNRTElOQ0xVREVESVJ9CistTElCRElSUyA9IC1MLi4gLUwuLi8uLi8uLi9jb3JlICR7 TVlTUUxMSUJESVJ9CistTElCUyA9IC1sc29jaV9jb3JlIC1sc29jaV9teXNxbCAtbGRsICR7TVlT UUxMSUJTfQorLQorLQorLXRlc3QtbXlzcWwgOiB0ZXN0LW15c3FsLmNwcAorLQkke0NPTVBJTEVS fSAtbyAkQCAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfSAke0xJQkRJUlN9ICR7TElCU30K Ky0KKy0KKy1jbGVhbiA6CistCXJtIC1mIHRlc3QtbXlzcWwKK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4JMjAwOS0wNS0wMyAwMDoyMDo0MS4wMDAwMDAw MDAgKzAyMDAKK0BAIC0wLDAgKzEsNTEzIEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkg YXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAor KworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAy MDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZy ZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGlt aXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9y IHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2 ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4 dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBV UlBPU0UuCisrCisrQFNFVF9NQUtFQAorKworK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGly ID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VA CisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQ QVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxf c2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0g JChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwor K0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFt X3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgor K1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwg PSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0 X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgorK0BSVU5fVEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSB0 ZXN0X215c3FsJChFWEVFWFQpCisrc3ViZGlyID0gc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0Cisr QUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2Rl cHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29j aS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisr YW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9E RVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3Rh bGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5o CisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytQUk9HUkFNUyA9ICQobm9pbnN0X1BST0dSQU1TKQor K2FtX19vYmplY3RzXzEgPSB0ZXN0X215c3FsLXRlc3QtbXlzcWwuJChPQkpFWFQpCisrYW1fdGVz dF9teXNxbF9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQorK3Rlc3RfbXlzcWxfT0JKRUNUUyA9 ICQoYW1fdGVzdF9teXNxbF9PQkpFQ1RTKQorK3Rlc3RfbXlzcWxfREVQRU5ERU5DSUVTID0KKyt0 ZXN0X215c3FsX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg XAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgJCh0ZXN0X215c3FsX0NY WEZMQUdTKSBcCisrCSQoQ1hYRkxBR1MpICQodGVzdF9teXNxbF9MREZMQUdTKSAkKExERkxBR1Mp IC1vICRACisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRp cikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21w CisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKKytDWFhDT01QSUxFID0gJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhDT01QSUxFID0g JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBc CisrCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAk KENYWEZMQUdTKQorK0NYWExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAk KENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChM REZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKHRlc3RfbXlzcWxfU09VUkNFUykKKytESVNUX1NP VVJDRVMgPSAkKHRlc3RfbXlzcWxfU09VUkNFUykKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBj dGFncworK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElO Rk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFS QAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVU T0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NG TEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRF X1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElC QAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9M SUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJA CisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisr Qk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJ QiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0g QEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1Rf VkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJ T05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0g QENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRf Q0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09O RklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0g QENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hY REVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhf VyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZ TVVUSUwgPSBARFNZTVVUSUxACisrRUNITyA9IEBFQ0hPQAorK0VDSE9fQyA9IEBFQ0hPX0NACisr RUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAor K0VYRUVYVCA9IEBFWEVFWFRACisrRjc3ID0gQEY3N0AKKytGRkxBR1MgPSBARkZMQUdTQAorK0dF TkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAg PSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExf REFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NS SVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxM X1NUUklQX1BST0dSQU1ACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JK U0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xOX1MgPSBATE5fU0AK KytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElS X1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NP TkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FM X0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJ T05ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJT ID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdT QAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09D SV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisr UEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0g QFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNL QUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNL QUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9 IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBA UE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AK KytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxf VkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1f UkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9N QUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFE RVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVB REVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFO RCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGly ID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9i dWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bf c3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhA CisrYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAK KythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9f cXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisr YmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWls ZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29z QAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJA CisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2Rp ZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94 eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4 ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9z dEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisr aG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxk aXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBp bmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9v a0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2Nh bGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytt YW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0g QG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAor K3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2Rp ciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytz aGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5 c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAor K3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBA dG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9 IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK215c3FsX3Rlc3RfaF9zb3VyY2Vz ID0gCisrbXlzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2Vm aWxlLmluCisrdGVzdF9teXNxbF9TT1VSQ0VTID0gJChteXNxbF90ZXN0X2NjX3NvdXJjZXMpCisr dGVzdF9teXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKQorK3Rlc3RfbXlzcWxfTERBREQg PSAKKyt0ZXN0X215c3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNv Y2lfY29yZS5sYSAtbGRsIFwKKysJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L2xpYnNvY2lfbXlzcWwubGEgXAorKwkJJChNWVNRTF9MREZMQUdTKQorKworK2FsbDogYWxsLWFt CisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGly KS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJ QGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGlu IFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAg ICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9z cmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFr ZWZpbGUnOyBcCisrCWNkICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251 ICBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxl CisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsg XAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJ R19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTog ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2Nh bF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKysKKytjbGVhbi1ub2luc3RQUk9HUkFNUzoKKysJQGxpc3Q9JyQobm9p bnN0X1BST0dSQU1TKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9YGVjaG8gJCRwfHNl ZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKysJICBlY2hvICIgcm0gLWYgJCRwICQkZiI7IFwKKysJ ICBybSAtZiAkJHAgJCRmIDsgXAorKwlkb25lCisrdGVzdF9teXNxbCQoRVhFRVhUKTogJCh0ZXN0 X215c3FsX09CSkVDVFMpICQodGVzdF9teXNxbF9ERVBFTkRFTkNJRVMpIAorKwlAcm0gLWYgdGVz dF9teXNxbCQoRVhFRVhUKQorKwkkKHRlc3RfbXlzcWxfTElOSykgJCh0ZXN0X215c3FsX09CSkVD VFMpICQodGVzdF9teXNxbF9MREFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6 CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYg Ki50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG9AYW1fX3F1b3RlQAorKworKy5jcHAubzoKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChE RVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAk KERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6Cisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQo REVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGli dG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAk KENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8g JEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERF UERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExU Q1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKyt0ZXN0X215c3FsLXRlc3QtbXlzcWwubzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyAtTUQgLU1QIC1NRiAkKERF UERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlz cWwubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVz dC1teXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvICQoREVQRElSKS90ZXN0X215 c3FsLXRlc3QtbXlzcWwuUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5j cHAnIG9iamVjdD0ndGVzdF9teXNxbC10ZXN0LW15c3FsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFD S1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1t eXNxbC5jcHAKKysKKyt0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3Rf bXlzcWwtdGVzdC1teXNxbC5UcG8gLWMgLW8gdGVzdF9teXNxbC10ZXN0LW15c3FsLm9iaiBgaWYg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNx bC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgZmlg CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS90ZXN0X215c3FsLXRlc3Qt bXlzcWwuVHBvICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIG9iamVjdD0ndGVzdF9teXNxbC10ZXN0LW15 c3FsLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9teXNxbC10 ZXN0LW15c3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFU SF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rl c3QtbXlzcWwuY3BwJzsgZmlgCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICou bG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrSUQ6ICQo SEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3Ig aSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7 IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0sp ICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAo bm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAt ZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNF UykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0 YWdzPTsgXAorKwloZXJlPWBwd2RgOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FS R1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVl IiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQo QU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwK KysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChU QUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBc CisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9u ZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisr CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8 fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBc CisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAk KHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAg JiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJ LXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGly OiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdz L1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bf c3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElT VEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8g JCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisr CSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwK KysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRk aXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1te L10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxl IGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQg JCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1k ICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAn cywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0 ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQk ZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3Ag LXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAor KwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRm aWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisr CWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtl ZmlsZSAkKFBST0dSQU1TKQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytp bnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRh LWFtCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJ QCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0K KysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BS T0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBc CisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAg aW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytk aXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwg cm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj OgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1 c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0 b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8 fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2Ns ZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMg XAorKwltb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAt cmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1h bSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdz CisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2lu Zm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0 YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFs bC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1h bQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorKwor K2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFp bnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIp CisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0K KysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5l cmljIFwKKysJbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFt OgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFL RTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwg YWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJ0 b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisrCWRpc3RjbGVhbi1j b21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFu LXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorKwlp bnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2 aSBcCisrCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFs bC1odG1sIFwKKysJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0g aW5zdGFsbC1tYW4gXAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGlu c3RhbGwtcHMtYW0gXAorKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2st YW0gaW5zdGFsbGRpcnMgXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2Vu ZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2Vu ZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwKKysJcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVu aW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrCisrI25vZGlzdF9wa2dpbmNs dWRlX0hFQURFUlMgPSAkKG15c3FsX3Rlc3RfaF9zb3VyY2VzKQorKyMgVGVsbCB2ZXJzaW9ucyBb My41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBP dGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVk ZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L215c3FsL3Rlc3Qvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3Vy Y2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIg QEAKKytteXNxbF90ZXN0X2hfc291cmNlcyA9CisrbXlzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNx bC5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15 c3FsLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90 ZXN0LW15c3FsLmNwcAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAJ MjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC02LDkgKzYsMTcgQEAKKyAv LyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgLy8KKyAKKy0jaW5jbHVk ZSAic29jaS5oIgorLSNpbmNsdWRlICJzb2NpLW15c3FsLmgiCistI2luY2x1ZGUgInRlc3QvY29t bW9uLXRlc3RzLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMg ICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kv YmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3Jl L3Rlc3QvY29tbW9uLXRlc3RzLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2kuaD4KKysjCWlu Y2x1ZGUgPHNvY2ktbXlzcWwuaD4KKysjICAgICAgIGluY2x1ZGUgPHRlc3QvY29tbW9uLXRlc3Rz Lmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8aW9zdHJlYW0+CisgI2luY2x1ZGUgPHNzdHJl YW0+CisgI2luY2x1ZGUgPHN0cmluZz4KK0BAIC0xOCw4ICsyNiwxNCBAQAorICNpbmNsdWRlIDxj dGltZT4KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKy0jaW5jbHVk ZSA8bXlzcWxkX2Vycm9yLmg+CistI2luY2x1ZGUgPGVycm1zZy5oPgorKy8vIE15U1FMIENsaWVu dAorKyNpZiBkZWZpbmVkKFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNs dWRlIDxteXNxbC9teXNxbGRfZXJyb3IuaD4KKysjICAgICAgIGluY2x1ZGUgPG15c3FsL2Vycm1z Zy5oPgorKyNlbHNlCisrIyAgICAgICBpbmNsdWRlIDxteXNxbGRfZXJyb3IuaD4KKysjICAgICAg IGluY2x1ZGUgPGVycm1zZy5oPgorKyNlbmRpZgorIAorIHVzaW5nIG5hbWVzcGFjZSBzb2NpOwor IHVzaW5nIG5hbWVzcGFjZSBzb2NpOjp0ZXN0czsKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAkyMDA5 LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6 MDYuMDAwMDAwMDAwICswMjAwCitAQCAtOSw3ICs5LDEzIEBACisgI2RlZmluZSBTT0NJX01ZU1FM X1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2luY2x1ZGUgImNvbW1vbi5oIgor LSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURF UlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4K KysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKyNlbmRpZgorKy8vCisgI2lu Y2x1ZGUgPGNpc282NDY+CisgCisgI2lmZGVmIF9NU0NfVkVSCitkaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJ MjAwOS0wNS0wMyAwMDoyNDoxNS4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6 Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtOSw3ICs5LDEzIEBACisgI2RlZmluZSBTT0NJX01Z U1FMX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCisgI2luY2x1ZGUgImNvbW1vbi5o IgorLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hF QURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0u aD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgorKyNlbmRpZgorKy8vCisg I2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGxpbWl0cz4KKyAjaW5jbHVkZSA8Y3N0cmlu Zz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9i LmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAkyMDA5LTA1 LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCAr MDIwMAorQEAgLTcsNyArNywxMyBAQAorIAorICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgorICNp bmNsdWRlICJlcnJvci5oIgorLSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKKysvLworKyNpZiBkZWZp bmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3Rh dGVtZW50Lmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHN0YXRlbWVudC5oPgorKyNlbmRpZgorKy8v CisgI2luY2x1ZGUgPGNzdHJpbmc+CisgI2luY2x1ZGUgPHNzdHJlYW0+CisgI2luY2x1ZGUgPGNz dGRpbz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9N YWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZp bGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmls ZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3 OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyNyBAQAorKyMjIGJhY2tlbmRzL29yYWNs ZSBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgor K2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9 IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IC4gdGVzdAorKworK2lmIEhBVkVfT1JBQ0xFCisr bGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX29yYWNsZS5sYQorKworK2xpYnNvY2lfb3JhY2xlX2xh X1NPVVJDRVM9ICQoYmNrX29yYWNsZV9oX3NvdXJjZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2Vz KSAKKytsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JBQ0xFX09DSV9DRkxBR1MpCisr bGlic29jaV9vcmFjbGVfbGFfTElCQUREID0KKytsaWJzb2NpX29yYWNsZV9sYV9MREZMQUdTID0g XAorKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFN X09QVElPTlNfTElCKSBcCisrCSQoT1JBQ0xFX09DSV9MREZMQUdTKSBcCisrCS12ZXJzaW9uLWlu Zm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKysKKytub2Jhc2VfcGtnaW5jbHVkZV9IRUFE RVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCisr ZW5kaWYKKytpZiBTT0NJX0hFQURFUlNfQlVSSUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5j bHVkZWRpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUKKytlbHNlCisrc29jaV9pbmNsdWRlX2RpciA9 ICQoaW5jbHVkZWRpcikKKytlbmRpZgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9k aXIpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFr ZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2Vm aWxlLmJhc2ljCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFr ZWZpbGUuYmFzaWMJMjAwOS0wNS0wMyAwMDoyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDk1ICswLDAgQEAKKy0jIFRoZSBm b2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29y cmVjdAorLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBm cmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KKy0KKy1PUkFDTEVJTkNMVURFRElSID0gLUkvdXNy L2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIvcmRibXMvcHVi bGljCistCistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhl IHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdh bGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1m UElDCistSU5DTFVERURJUlMgPSAtSS4uLy4uL2NvcmUgJHtPUkFDTEVJTkNMVURFRElSfQorLQor LU9CSkVDVFMgPSBibG9iLm8gZmFjdG9yeS5vIHJvdy1pZC5vIHNlc3Npb24ubyBzdGFuZGFyZC1p bnRvLXR5cGUubyBcCistCXN0YW5kYXJkLXVzZS10eXBlLm8gc3RhdGVtZW50Lm8gdmVjdG9yLWlu dG8tdHlwZS5vIHZlY3Rvci11c2UtdHlwZS5vIFwKKy0JZXJyb3IubworLQorLU9CSkVDVFNTTyA9 IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJvdy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAorLQlzdGFuZGFy ZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJkLXVzZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKKy0J dmVjdG9yLWludG8tdHlwZS1zLm8gdmVjdG9yLXVzZS10eXBlLXMubyBlcnJvci1zLm8KKy0KKy1s aWJzb2NpX29yYWNsZS5hIDogJHtPQkpFQ1RTfQorLQlhciBydiAkQCAkPworLQlybSAqLm8KKy0K Ky1zb2NpLW9yYWNsZS5vIDogc29jaS1vcmFjbGUuY3BwIAorLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQkKKy1ibG9iLm8gOiBibG9iLmNwcAorLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLWVycm9yLm8gOiBl cnJvci5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K Ky0KKy1mYWN0b3J5Lm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC5vIDogcm93LWlkLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXNlc3Npb24ubyA6IHNl c3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 CistCistc3RhbmRhcmQtaW50by10eXBlLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQt dXNlLXR5cGUubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNw cAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZl Y3Rvci1pbnRvLXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLm8gOiB2 ZWN0b3ItdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9CistCistCistc2hhcmVkIDogJHtPQkpFQ1RTU099CistCSR7Q09NUElMRVJ9IC1z aGFyZWQgLW8gbGlic29jaV9vcmFjbGUuc28gJHtPQkpFQ1RTU099CistCXJtICoubworLQorLWJs b2Itcy5vIDogYmxvYi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NP fSAke0lOQ0xVREVESVJTfQorLQorLWVycm9yLXMubyA6IGVycm9yLmNwcAorLQkke0NPTVBJTEVS fSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistZmFjdG9yeS1z Lm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099 ICR7SU5DTFVERURJUlN9CistCistcm93LWlkLXMubyA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxF Un0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXNlc3Npb24t cy5vIDogc2Vzc2lvbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NP fSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLWludG8tdHlwZS1zLm8gOiBzdGFuZGFyZC1p bnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJ TkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC11c2UtdHlwZS1zLm8gOiBzdGFuZGFyZC11c2UtdHlw ZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVE SVJTfQorLQorLXN0YXRlbWVudC1zLm8gOiBzdGF0ZW1lbnQuY3BwCistCSR7Q09NUElMRVJ9IC1j IC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItaW50by10 eXBlLXMubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItdXNlLXR5cGUtcy5vIDog dmVjdG9yLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdT U099ICR7SU5DTFVERURJUlN9CistCistCistY2xlYW4gOgorLQlybSAtZiAqLm8gbGlic29jaV9v cmFjbGUuYSBsaWJzb2NpX29yYWNsZS5zbworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvb3JhY2xlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxl LmluCTIwMDktMDUtMDMgMDA6MjA6NDEuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDgwMCBA QAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2Vm aWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwg MTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMs IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0 aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysK KysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VA CisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7 WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEg PSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFs bF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxM X0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lO U1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BP U1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0 ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKGFtX19ub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJT X0RJU1QpIFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBc CisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisr c3ViZGlyID0gc29jaS9iYWNrZW5kcy9vcmFjbGUKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGly KS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmln L2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQu bTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFt X19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9D QUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVS ID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQor K2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNl ZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQoc3Jj ZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisr ICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gYGVjaG8gJCRwIHwg c2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJk aXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrbGliTFRMSUJSQVJJRVNfSU5TVEFM TCA9ICQoSU5TVEFMTCkKKytMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQorK2xpYnNv Y2lfb3JhY2xlX2xhX0RFUEVOREVOQ0lFUyA9CisrYW1fX2xpYnNvY2lfb3JhY2xlX2xhX1NPVVJD RVNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3Iu aCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCBc CisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAorKwkkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCBcCisrCSQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCisrYW1fX29iamVjdHNfMSA9 CisrYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8gbGlic29jaV9vcmFj bGVfbGEtZXJyb3IubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGxpYnNvY2lf b3JhY2xlX2xhLXJvdy1pZC5sbyBcCisrCWxpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gXAor KwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gXAorKwlsaWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBcCisrCWxpYnNvY2lfb3JhY2xlX2xhLXN0YXRl bWVudC5sbyBcCisrCWxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gXAorKwls aWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8KKytASEFWRV9PUkFDTEVfVFJVRUBh bV9saWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKSBcCisrQEhBVkVf T1JBQ0xFX1RSVUVACSQoYW1fX29iamVjdHNfMikKKytsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RT ID0gJChhbV9saWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKQorK2xpYnNvY2lfb3JhY2xlX2xhX0xJ TksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAorKwkkKExJQlRP T0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAorKwkkKGxpYnNvY2lfb3JhY2xlX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSBcCisrCSQobGlic29jaV9vcmFjbGVfbGFfTERGTEFHUykgJChM REZMQUdTKSAtbyAkQAorK0BIQVZFX09SQUNMRV9UUlVFQGFtX2xpYnNvY2lfb3JhY2xlX2xhX3Jw YXRoID0gLXJwYXRoICQobGliZGlyKQorK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNA IC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGly KS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCisrQ1hYQ09N UElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAor KwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQor K0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9ICQoQ1hYKQorK0NYWExJTksgPSAk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwK KysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9M REZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytDT01QSUxFID0gJChDQykgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKysJJChDUFBG TEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10 YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1jb21w aWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytDQ0xEID0g JChDQykKKytMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxB R1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrU09VUkNFUyA9ICQobGli c29jaV9vcmFjbGVfbGFfU09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKGFtX19saWJzb2NpX29y YWNsZV9sYV9TT1VSQ0VTX0RJU1QpCisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZl IGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1y ZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2 ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0 YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMt cmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBp bnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmlu c3RhbGwtcmVjdXJzaXZlCisrYW1fX25vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlNfRElTVCA9ICBc CisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorK25v YmFzZV9wa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChpbnN0YWxsX3NoX0RBVEEpCisrSEVB REVSUyA9ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKKytSRUNVUlNJVkVfQ0xFQU5fVEFS R0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNs ZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0VUQUdTID0gZXRhZ3MK KytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9 ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1Qp CisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKKytBQ0xPQ0FMID0gQEFDTE9D QUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZA CisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FX SyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJ TUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBA Qk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NU UkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhfTElC ID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9T RVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJ QkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9U RVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9P U1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9 IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQEND REVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBA Q1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9D T05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AK KytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hY Q1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBA Q1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQ RElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytFQ0hPID0gQEVDSE9ACisr RUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RA CisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGNzcgPSBARjc3QAorK0ZG TEFHUyA9IEBGRkxBR1NACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJS QVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNU QUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BS T0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJ UF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMREZMQUdTID0gQExERkxBR1NA CisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRP T0xACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8g PSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNR TF9DRkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9ESVJTID0g QE1ZU1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01ZU1FMX1ZF UlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkVYVCA9IEBP QkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1Mg PSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lf TERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK1BB Q0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9S VEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBB Q0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFD S0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRI X1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQ T1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMg PSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xE RkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5M SUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURA CisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJT X0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNU UklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVS U0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJz X3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3Rv cF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNf Y3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9GNzcgPSBAYWNfY3RfRjc3QAorK2FtX19pbmNs dWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RA CisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3Vu dGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAor K2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisr YnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKyti dWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIg PSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJA CisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNf b2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBA Z3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0 X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBA aG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVk ZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAor K2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9 IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9 IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9w QAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAor K3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytz ZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3Ny Y2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlh cyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4 QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3Jj ZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisr YmNrX29yYWNsZV9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL2Vycm9yLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCisrCisrYmNrX29yYWNsZV9jY19zb3VyY2VzID0gXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQt aW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKKysKKytN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IC4gdGVzdAorK0BI QVZFX09SQUNMRV9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfb3JhY2xlLmxhCisrQEhB VkVfT1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfU09VUkNFUyA9ICQoYmNrX29yYWNsZV9o X3NvdXJjZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2VzKSAKKytASEFWRV9PUkFDTEVfVFJVRUBs aWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JBQ0xFX09DSV9DRkxBR1MpCisrQEhBVkVf T1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTElCQUREID0gCisrQEhBVkVfT1JBQ0xFX1RS VUVAbGlic29jaV9vcmFjbGVfbGFfTERGTEFHUyA9IFwKKytASEFWRV9PUkFDTEVfVFJVRUAJJChC T09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQikgXAorK0BIQVZFX09SQUNMRV9UUlVFQAkkKE9SQUNMRV9PQ0lfTERGTEFHUykgXAorK0BI QVZFX09SQUNMRV9UUlVFQAktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04p CisrCisrQEhBVkVfT1JBQ0xFX1RSVUVAbm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorK0BTT0NJX0hFQURF UlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lf SEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZQorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKysu U1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNy Y2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIp L3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBc CisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBc CisrCSAgICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaCBcCisrCQkmJiBleGl0IDA7IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVz YWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtF KSAtLWdudSAgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUnOyBcCisrCWNkICQodG9wX3Ny Y2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL29yYWNsZS9N YWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2Vm aWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAor KwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8g JyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19t YXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQo dG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorK2luc3RhbGwtbGli TFRMSUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJ dGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgor KwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAg aWYgdGVzdCAtZiAkJHA7IHRoZW4gXAorKwkgICAgZj0kKGFtX19zdHJpcF9kaXIpIFwKKysJICAg IGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxB RykgJyQkcCcgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKKysJICAgICQoTElCVE9PTCkg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxpYkxU TElCUkFSSUVTX0lOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAiJCRwIiAiJChERVNURElS KSQobGliZGlyKS8kJGYiOyBcCisrCSAgZWxzZSA6OyBmaTsgXAorKwlkb25lCisrCisrdW5pbnN0 YWxsLWxpYkxUTElCUkFSSUVTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChs aWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgcD0kKGFtX19zdHJp cF9kaXIpIFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRw JyI7IFwKKysJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJHAiOyBcCisrCWRv bmUKKysKKytjbGVhbi1saWJMVExJQlJBUklFUzoKKysJLXRlc3QgLXogIiQobGliX0xUTElCUkFS SUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCisrCUBsaXN0PSckKGxpYl9MVExJQlJB UklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAt ZSAnc3wvW14vXSokJHx8J2AiOyBcCisrCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0u OyBcCisrCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAorKwkgIHJt IC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKysJZG9uZQorK2xpYnNvY2lfb3JhY2xlLmxh OiAkKGxpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpICQobGlic29jaV9vcmFjbGVfbGFfREVQRU5E RU5DSUVTKSAKKysJJChsaWJzb2NpX29yYWNsZV9sYV9MSU5LKSAkKGFtX2xpYnNvY2lfb3JhY2xl X2xhX3JwYXRoKSAkKGxpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpICQobGlic29jaV9vcmFjbGVf bGFfTElCQUREKSAkKExJQlMpCisrCisrbW9zdGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICou JChPQkpFWFQpCisrCisrZGlzdGNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisr QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf b3JhY2xlX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuUGxvQGFtX19x dW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ct aWQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5QbG9AYW1fX3F1b3RlQAorK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3Rh bmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlBsb0Bh bV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9v cmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERF UERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tT TEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKysuY3BwLm9iajoKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChE RVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0 b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQo Q1lHUEFUSF9XKSAnJDwnYAorKworKy5jcHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAk QCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQ RElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRD WFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG86ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9iLlRwbyAtYyAtbyBsaWJz b2NpX29yYWNsZV9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1m ICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9iLlRwbyAkKERFUERJUikvbGlic29jaV9v cmFjbGVfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9i LmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEt ZXJyb3IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJy b3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtZXJyb3IuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1l cnJvci5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAnIG9iamVjdD0nbGlic29j aV9vcmFjbGVfbGEtZXJyb3IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuY3Bw CisrCisrbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xl X2xhLWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYg JChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2Np X29yYWNsZV9sYS1mYWN0b3J5LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9s YS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9v cmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1yb3ct aWQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5UcG8g LWMgLW8gbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlRwbyAk KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlBsbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xh LXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc2Vzc2lvbi5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29y YWNsZV9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9s YS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24u Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNs ZV9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNs ZV9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNw cAorKworK2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf b3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc3Rh bmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9s YS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJk LWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJk LWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8t dHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyBv YmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8t dHlwZS5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9s YS1zdGFuZGFyZC11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFj bGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5k YXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJk LXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5 cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBA QU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisr QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFj bGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNw cAorKworK2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNv Y2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5UcG8g JChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVu dC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAKKysK KytsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8t dHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWlu dG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10 eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAt ZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvCisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEt dmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWlu dG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS12 ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVj dG9yLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2Np X29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9s YS12ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3It dXNlLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcg b2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK KytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29y YWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCisr CisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29s OgorKwktcm0gLXJmIC5saWJzIF9saWJzCisraW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURF UlM6ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisr CXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpIgorKwlAJChhbV9fdnBhdGhfYWRqX3NldHVwKSBcCisrCWxpc3Q9JyQobm9i YXNlX3BrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0 ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgICQo YW1fX3ZwYXRoX2FkaikgXAorKwkgIGVjaG8gIiAkKG5vYmFzZV9wa2dpbmNsdWRlSEVBREVSU19J TlNUQUxMKSAnJCRkJCRwJyAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmJyI7IFwKKysJ ICAkKG5vYmFzZV9wa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElS KSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLW5vYmFzZV9w a2dpbmNsdWRlSEVBREVSUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQCQoYW1fX3ZwYXRo X2Fkal9zZXR1cCkgXAorKwlsaXN0PSckKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9y IHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgJChhbV9fdnBhdGhfYWRqKSBcCisrCSAgZWNobyAiIHJt IC1mICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkgIHJtIC1mICIkKERF U1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKysjIFRoaXMgZGlyZWN0 b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAor KyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1h a2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5z dGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0 IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2gg d2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBg bWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhl IGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsY29t PSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQk ZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFp bD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0 YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdl dCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAor KwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsg XAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsg XAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rh cmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVzdCAi JCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAi JCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKworKyQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3Ig ZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwg LS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2Fj OyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBk aXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7 OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7 IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBc CisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQg cy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hv ICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAg ZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAg KGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBc CisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisr dGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6Cisr CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3Qg IiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1Ap ICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRw eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUwor KworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RF UEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWhl cmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4v ZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRl OyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1p bmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAu OyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorKwkg ICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7 IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FS R1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVl IiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQo QU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwK KysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykg JChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJ U1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1 bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykg JChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhl cmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bf c3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0 Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRh Z3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNy Y2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJp cD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBc CisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAk JGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJz dHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWls ZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJ Ul9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChk aXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2Fj OyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRm aWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwK KysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRm aWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNk aXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAt cFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBm aTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsg XAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8 fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsg XAorKwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVs c2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChN S0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAg ICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICB0b3BfZGlz dGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIChjZCAkJHN1 YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0 b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRp ci8kJHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3NraXBfbGVu Z3RoX2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAxOyBc CisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVj dXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCisraW5z dGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJzLWFtOgorKwlmb3Ig ZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpciki OyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorKwlk b25lCisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwt ZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1 bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJ QCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0K KysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlw OgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQ X1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQ KScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RS SVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6 CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxF UykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4t Z2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5l cnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNw ZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVj dXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMg Y2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xl YW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisr ZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJp YyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFt OgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysK KytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVk ZUhFQURFUlMKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5z dGFsbC1leGVjLWFtOiBpbnN0YWxsLWxpYkxUTElCUkFSSUVTCisrCisraW5zdGFsbC1odG1sOiBp bnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVj dXJzaXZlCisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJl Y3Vyc2l2ZQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFs bGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJz aXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5l ci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21v c3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9z dGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGli dG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVj dXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbGliTFRMSUJS QVJJRVMgXAorKwl1bmluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFERVJTCisrCisrLk1BS0U6 ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwt YW0gXAorKwlpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hl Y2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYkxUTElCUkFSSUVT IGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKKysJZGlzdGNsZWFuIGRpc3Rj bGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlz dGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5m by1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFt IGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3Rh bGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIFwKKysJaW5zdGFs bC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAor KwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAor KwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1j bGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVh bi1jb21waWxlIFwKKysJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBk ZiBwZGYtYW0gcHMgcHMtYW0gXAorKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmlu c3RhbGwtYW0gXAorKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLW5vYmFzZV9w a2dpbmNsdWRlSEVBREVSUworKworK0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTks My42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3 aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgor Ky5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29y YWNsZS9zb2NpLW9yYWNsZS5oIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zb2NpLW9yYWNsZS5oCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFj bGUvc29jaS1vcmFjbGUuaAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAorKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCTIw MDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMjIsOSArMjIsMTQgQEAKKyAj aWZuZGVmIFNPQ0lfT1JBQ0xFX0RFQ0wKKyAjIGRlZmluZSBTT0NJX09SQUNMRV9ERUNMCisgI2Vu ZGlmCistCistI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorLSNpbmNsdWRlIDxvY2kuaD4gLy8g T0NJCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5j bHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2Np LWJhY2tlbmQuaD4KKysjZW5kaWYKKysvLworKyNpbmNsdWRlIDxvY2kuaD4gLy8gT0NJIChPcmFj bGUgY2xpZW50KQorICNpbmNsdWRlIDx2ZWN0b3I+CisgCisgI2lmZGVmIF9NU0NfVkVSCitkaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tayBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5taworLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvdXJjZXMubWsJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9vcmFjbGUvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCAr MDIwMAorQEAgLTAsMCArMSwxNCBAQAorK2Jja19vcmFjbGVfaF9zb3VyY2VzID0gXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorK2Jja19v cmFjbGVfY2Nfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9lcnJvci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9mYWN0b3J5LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlw ZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0 b3ItdXNlLXR5cGUuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNS0w MyAwMDoyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2 LjAwMDAwMDAwMCArMDIwMAorQEAgLTcsMTAgKzcsMTggQEAKKyAKKyAjZGVmaW5lIFNPQ0lfT1JB Q0xFX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgorLSNpbmNsdWRlICJibG9iLmgi CisgI2luY2x1ZGUgImVycm9yLmgiCistI2luY2x1ZGUgInJvd2lkLmgiCistI2luY2x1ZGUgInN0 YXRlbWVudC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAg ICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2Nv cmUvcm93aWQuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KKysj ZWxzZQorKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8cm93aWQu aD4KKysjICAgICAgIGluY2x1ZGUgPHN0YXRlbWVudC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1 ZGUgPGNjdHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRlIDxjc3RyaW5nPgorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVz ZS10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRh cmQtdXNlLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFj bGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMDMgMDA6MjQ6MTMuMDAwMDAwMDAwICsw MjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJk LXVzZS10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTcs MTAgKzcsMTggQEAKKyAKKyAjZGVmaW5lIHNvY2lfT1JBQ0xFX1NPVVJDRQorICNpbmNsdWRlICJz b2NpLW9yYWNsZS5oIgorLSNpbmNsdWRlICJibG9iLmgiCisgI2luY2x1ZGUgImVycm9yLmgiCist I2luY2x1ZGUgInJvd2lkLmgiCistI2luY2x1ZGUgInN0YXRlbWVudC5oIgorKy8vCisrI2lmIGRl ZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9i bG9iLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KKysjICAgICAgIGlu Y2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KKysjZWxzZQorKyMgICAgICAgaW5jbHVkZSA8 YmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KKysjICAgICAgIGluY2x1ZGUgPHN0 YXRlbWVudC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNjdHlwZT4KKyAjaW5jbHVkZSA8 Y3N0ZGlvPgorICNpbmNsdWRlIDxjc3RyaW5nPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCTIwMDktMDUtMDMgMDA6MjQ6MTMuMDAw MDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xl L3N0YXRlbWVudC5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC05 LDcgKzksMTMgQEAKKyAKKyAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKKyAjaW5jbHVkZSAiZXJy b3IuaCIKKy0jaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrLy8KKysjaWYgZGVmaW5lZChTT0NJ X0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2Vu ZC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKysjZW5kaWYKKysvLwor ICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmlu Zz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFt CTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIyIEBACisr IyMgY29yZSBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCisrCisraWYgSEFWRV9PUkFDTEUKKysgIFRFU1RfT1JBQ0xFID0g dGVzdF9vcmFjbGUKKysKKytpZiBSVU5fVEVTVFMKKysgIG5vaW5zdF9QUk9HUkFNUyA9ICQoVEVT VF9PUkFDTEUpCisrZW5kaWYKKysKKyt0ZXN0X29yYWNsZV9TT1VSQ0VTID0gJChvcmFjbGVfdGVz dF9jY19zb3VyY2VzKQorK3Rlc3Rfb3JhY2xlX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpICQo T1JBQ0xFX09DSV9DRkxBR1MpCisrdGVzdF9vcmFjbGVfTERBREQgPQorK3Rlc3Rfb3JhY2xlX0xE RkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwK KysJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9saWJzb2NpX29yYWNsZS5s YSBcCisrCQkkKE9SQUNMRV9PQ0lfTERGTEFHUykKKytlbmRpZgorKworKyNub2Rpc3RfcGtnaW5j bHVkZV9IRUFERVJTID0gJChvcmFjbGVfdGVzdF9oX3NvdXJjZXMpCitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYwor LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUu YmFzaWMJMjAwOS0wNS0wMyAwMDoyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEsMjMgKzAsMCBAQAorLSMgVGhlIGZv bGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3Jy ZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZy ZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLU9SQUNMRUlOQ0xVREVESVIgPSAtSS91c3Iv bGliL29yYWNsZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4wL3NlcnZlci9yZGJtcy9wdWJs aWMgCistT1JBQ0xFTElCRElSID0gLUwvdXNyL2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9wcm9k dWN0LzEwLjIuMC9zZXJ2ZXIvbGliIAorLU9SQUNMRUxJQlMgPSAtbGNsbnRzaCAtbG5uejEwCist CistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdl dCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBl ZGFudGljIC1Xbm8tbG9uZy1sb25nCistSU5DTFVERURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29y ZSAtSS4uLy4uLy4uL2NvcmUvdGVzdCAke09SQUNMRUlOQ0xVREVESVJ9CistTElCRElSUyA9IC1M Li4gLUwuLi8uLi8uLi9jb3JlICR7T1JBQ0xFTElCRElSfQorLUxJQlMgPSAtbHNvY2lfY29yZSAt bHNvY2lfb3JhY2xlIC1sZGwgLWxib29zdF9kYXRlX3RpbWUgJHtPUkFDTEVMSUJTfQorLQorLQor LXRlc3Qtb3JhY2xlIDogdGVzdC1vcmFjbGUuY3BwIAorLSMuLi8uLi8uLi9jb3JlL3Rlc3QvY29t bW9uLXRlc3RzLmgKKy0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30gJHtMSUJESVJTfSAke0xJQlN9CistCistCistY2xlYW4gOgorLQlybSAtZiAqLm8gdGVz dC1vcmFjbGUKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2Vm aWxlLmluCTIwMDktMDUtMDMgMDA6MjA6NDEuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDUx NyBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1h a2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5 NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIw MDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsg d2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAK KysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VA CisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGlu Y2x1ZGVkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0k KFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gp IC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0 YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5T VEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JN QUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9S TUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0g OgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElT VF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwK KysJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytA SEFWRV9PUkFDTEVfVFJVRUBAUlVOX1RFU1RTX1RSVUVAbm9pbnN0X1BST0dSQU1TID0gJChhbV9f RVhFRVhUXzEpCisrc3ViZGlyID0gc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdAorK0FDTE9DQUxf TTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvY3BwdW5pdC5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25m aWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5D SUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAt ZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJ R19DTEVBTl9GSUxFUyA9CisrQEhBVkVfT1JBQ0xFX1RSVUVAYW1fX0VYRUVYVF8xID0gdGVzdF9v cmFjbGUkKEVYRUVYVCkKKytQUk9HUkFNUyA9ICQobm9pbnN0X1BST0dSQU1TKQorK2FtX190ZXN0 X29yYWNsZV9TT1VSQ0VTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCisrYW1fX29iamVjdHNfMSA9IHRlc3Rfb3JhY2xl LXRlc3Qtb3JhY2xlLiQoT0JKRVhUKQorK0BIQVZFX09SQUNMRV9UUlVFQGFtX3Rlc3Rfb3JhY2xl X09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCisrdGVzdF9vcmFjbGVfT0JKRUNUUyA9ICQoYW1f dGVzdF9vcmFjbGVfT0JKRUNUUykKKyt0ZXN0X29yYWNsZV9ERVBFTkRFTkNJRVMgPQorK3Rlc3Rf b3JhY2xlX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAor KwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgJCh0ZXN0X29yYWNsZV9DWFhG TEFHUykgXAorKwkkKENYWEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0xERkxBR1MpICQoTERGTEFHUykg LW8gJEAKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGly KS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAK KythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK0NYWENPTVBJTEUgPSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytMVENYWENPTVBJTEUgPSAk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwK KysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQo Q1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQo Q1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExE RkxBR1MpIC1vICRACisrU09VUkNFUyA9ICQodGVzdF9vcmFjbGVfU09VUkNFUykKKytESVNUX1NP VVJDRVMgPSAkKGFtX190ZXN0X29yYWNsZV9TT1VSQ0VTX0RJU1QpCisrRVRBR1MgPSBldGFncwor K0NUQUdTID0gY3RhZ3MKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNF UykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRB UiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVB REVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AK KytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBA Qk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxF U1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJA CisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIg PSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1Rf UkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJ T05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NU X1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9O ID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAor K0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AK KytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBD UFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRf VkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hY Q1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AK KytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQ RElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0VDSE8gPSBARUNIT0AKKytFQ0hPX0MgPSBA RUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9 IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0Y3NyA9IEBGNzdACisrRkZMQUdTID0gQEZG TEFHU0AKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lP TkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9 IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJ TlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0g PSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpT ID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMTl9T ID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5G T0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AK KytNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElS U0AKKytNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACisrTVlTUUxfVkVSU0lPTiA9IEBN WVNRTF9WRVJTSU9OQAorK05NRURJVCA9IEBOTUVESVRACisrT0JKRVhUID0gQE9CSkVYVEAKKytP UkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVf T0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAor K09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrUEFDS0FHRSA9IEBQ QUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5M SUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFL RSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAor K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBA YWNfY3RfQ1hYQAorK2FjX2N0X0Y3NyA9IEBhY19jdF9GNzdACisrYW1fX2luY2x1ZGUgPSBAYW1f X2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVv dGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1f X3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxp YXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9 IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0g QGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9v dGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2Vu X29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlw c19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKyto b3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhv c3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRv ckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2lu Zm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sg PSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNk aXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3Rh dGVkaXJACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5j bHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0g QHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25h bWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBz ZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNy Y2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdl dF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1 aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1f Q1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytvcmFjbGVfdGVz dF9oX3NvdXJjZXMgPSAKKytvcmFjbGVfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAorK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4KKytASEFWRV9PUkFDTEVfVFJVRUBURVNUX09SQUNMRSA9IHRl c3Rfb3JhY2xlCisrQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfU09VUkNFUyA9ICQob3Jh Y2xlX3Rlc3RfY2Nfc291cmNlcykKKytASEFWRV9PUkFDTEVfVFJVRUB0ZXN0X29yYWNsZV9DWFhG TEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQorK0BIQVZFX09SQUNM RV9UUlVFQHRlc3Rfb3JhY2xlX0xEQUREID0gCisrQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFj bGVfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1s ZGwgXAorK0BIQVZFX09SQUNMRV9UUlVFQAkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2xpYnNvY2lfb3JhY2xlLmxhIFwKKytASEFWRV9PUkFDTEVfVFJVRUAJCSQoT1JBQ0xF X09DSV9MREZMQUdTKQorKworK2FsbDogYWxsLWFtCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhF UzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9N YWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNl cy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBj YXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAg ICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoIFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAor Kwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251 ICBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNk aXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVz dC9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01h a2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4g XAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVj aG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3Vi ZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6 ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisr CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisr CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworK2NsZWFu LW5vaW5zdFBST0dSQU1TOgorKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgZm9yIHAgaW4g JCRsaXN0OyBkbyBcCisrCSAgZj1gZWNobyAkJHB8c2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAor KwkgIGVjaG8gIiBybSAtZiAkJHAgJCRmIjsgXAorKwkgIHJtIC1mICQkcCAkJGYgOyBcCisrCWRv bmUKKyt0ZXN0X29yYWNsZSQoRVhFRVhUKTogJCh0ZXN0X29yYWNsZV9PQkpFQ1RTKSAkKHRlc3Rf b3JhY2xlX0RFUEVOREVOQ0lFUykgCisrCUBybSAtZiB0ZXN0X29yYWNsZSQoRVhFRVhUKQorKwkk KHRlc3Rfb3JhY2xlX0xJTkspICQodGVzdF9vcmFjbGVfT0JKRUNUUykgJCh0ZXN0X29yYWNsZV9M REFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JK RVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURF UF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X29yYWNsZS10 ZXN0LW9yYWNsZS5Qb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1j IC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8g JChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo Q1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKysuY3BwLm9iajoKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAt YyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1m ICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJB Q0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwn YAorKworKy5jcHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAt TVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAn IGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAt byAkQCAkPAorKworK3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm86ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVz dF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9y YWNsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYg LWYgJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlRwbyAkKERFUERJUikvdGVzdF9v cmFjbGUtdGVzdC1vcmFjbGUuUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3Jh Y2xlLmNwcCcgb2JqZWN0PSd0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vJyBsaWJ0b29sPW5vIEBB TURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhG TEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAorKworK3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iajog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9vcmFjbGVfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vYmogLU1EIC1N UCAtTUYgJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlRwbyAtYyAtbyB0ZXN0X29y YWNsZS10ZXN0LW9yYWNsZS5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IGVs c2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IGZpYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvICQoREVQRElSKS90ZXN0 X29yYWNsZS10ZXN0LW9yYWNsZS5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1v cmFjbGUuY3BwJyBvYmplY3Q9J3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaicgbGlidG9vbD1u byBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9vcmFjbGVf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiBg aWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qt b3JhY2xlLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3Jj ZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUu Y3BwJzsgZmlgCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytj bGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrSUQ6ICQoSEVBREVSUykg JChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxp c3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNo byAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVz WyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkp IHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5p cXVlCisrdGFnczogVEFHUworKworK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFH U19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAor KwloZXJlPWBwd2RgOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdz JCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlx dWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NG TEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkKKytj dGFnczogQ1RBR1MKKytDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVO REVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9 JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAor Kwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdT KSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAg JCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWls ZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3Mg LWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRB R1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RG SUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIg fCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7 IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBk b25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1l ICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAk JGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVz IiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcg fCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlz dF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0 aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZp bGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSok JCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAh PSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRp c3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8k JGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVz dCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlz dGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytj aGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKFBS T0dSQU1TKQorK2luc3RhbGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4 ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5p bnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0 YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBc CisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RB TExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBl Y2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAor K21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4t Z2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNo byAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBl Y2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byBy ZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAk KE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBj bGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAorKwltb3N0 bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAtcmYgLi8kKERF UERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xl YW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZp OiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2luZm86IGluZm8t YW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTog aW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBp bnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKworK2lu c3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorKworK2luc3RhbGwt cHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1j bGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAt ZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVy LWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKysKKyttb3N0 bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJ bW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKworK3Bz OiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogaW5zdGFs bC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNo ZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJ0b29sIGNsZWFu LW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisrCWRpc3RjbGVhbi1jb21waWxlIGRp c3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRhZ3MgZGlz dGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorKwlpbnN0YWxsIGlu c3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisrCWlu c3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwK KysJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1t YW4gXAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMt YW0gXAorKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFs bGRpcnMgXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbi1saWJ0b29sIFwKKysJcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCB1 bmluc3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrCisrI25vZGlzdF9wa2dpbmNsdWRlX0hFQURF UlMgPSAkKG9yYWNsZV90ZXN0X2hfc291cmNlcykKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42 Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNl IGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5O T0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Rlc3Qvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3Qvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3NvdXJjZXMu bWsJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMiBAQAor K29yYWNsZV90ZXN0X2hfc291cmNlcyA9Cisrb3JhY2xlX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3Jh Y2xlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0 LW9yYWNsZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90 ZXN0L3Rlc3Qtb3JhY2xlLmNwcAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3Jh Y2xlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTUsOSArNSwx NyBAQAorIC8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyAvLworIAor LSNpbmNsdWRlICJzb2NpLmgiCistI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCistI2luY2x1ZGUg ImNvbW1vbi10ZXN0cy5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkK KysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+CisrIyAgICAgICBpbmNsdWRlIDxz b2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oPgorKyMgICAgICAgaW5jbHVkZSA8c29j aS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2kuaD4K KysjCWluY2x1ZGUgPHNvY2ktb3JhY2xlLmg+CisrIyAgICAgICBpbmNsdWRlIDx0ZXN0L2NvbW1v bi10ZXN0cy5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGlvc3RyZWFtPgorICNpbmNsdWRl IDxzdHJpbmc+CisgI2luY2x1ZGUgPGNhc3NlcnQ+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAJ MjAwOS0wNS0wMyAwMDoyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAJMjAwOS0wNC0xNiAx OTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC03LDggKzcsMTQgQEAKKyAKKyAjZGVmaW5lIHNv Y2lfT1JBQ0xFX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgorLSNpbmNsdWRlICJz dGF0ZW1lbnQuaCIKKyAjaW5jbHVkZSAiZXJyb3IuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lf SEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+ CisrI2Vsc2UKKysjCWluY2x1ZGUgPHN0YXRlbWVudC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1 ZGUgPGNjdHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRlIDxjc3RyaW5nPgorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24u Y3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNw cAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24u Y3BwCTIwMDktMDUtMDMgMDA6MjQ6MTMuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCTIwMDktMDQtMTYgMTk6 Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAtNiw3ICs2LDEzIEBACisgLy8KKyAKKyAjaW5jbHVk ZSAiY29tbW9uLmgiCistI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKy8vCisrI2lmIGRlZmlu ZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2Np LWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CisrI2VuZGlm CisrLy8KKyAjaW5jbHVkZSA8Y3N0ZGxpYj4KKyAjaW5jbHVkZSA8Y3RpbWU+CisgCitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFt IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0K Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUu YW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6 Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDMwIEBACisrIyMgYmFja2VuZHMvcG9z dGdyZXNxbCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IC4gdGVzdAorKworKyNFWFRSQV9ESVNU X0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCisrCisrRVhUUkFfRElTVCA9ICQo RVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorKworK2lmIEhBVkVfUE9TVEdSRVNR TAorK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9wb3N0Z3Jlc3FsLmxhCisrCisrbGlic29jaV9w b3N0Z3Jlc3FsX2xhX1NPVVJDRVM9ICQoYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzKSAkKGJja19w b3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAorK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUyA9 ICQoUE9TVEdSRVNRTF9DRkxBR1MpCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCA9Cisr bGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xERkxBR1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChCT09T VF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKysJLXZlcnNp b24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK3BrZ2luY2x1ZGVfSEVBREVS UyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNx bC5oCisrZW5kaWYKKytpZiBTT0NJX0hFQURFUlNfQlVSSUVECisrc29jaV9pbmNsdWRlX2RpciA9 ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCisrZWxzZQorK3NvY2lfaW5j bHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrZW5kaWYKKytwa2dpbmNsdWRlZGlyID0gJChzb2Np X2luY2x1ZGVfZGlyKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCTIwMDktMDUtMDMgMDA6MjQ6MTMuMDAw MDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor QEAgLTEsOTUgKzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0 byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9u IHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQor LVBHU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlCistCistIyBUaGUgcmVzdCBvZiB0aGUg TWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1D T01QSUxFUiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25n CistQ1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCistSU5DTFVERURJUlMgPSAtSS4uLy4u L2NvcmUgJHtQR1NRTElOQ0xVREVESVJ9CistCistCistT0JKRUNUUyA9IGJsb2IubyBmYWN0b3J5 Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlwZS5vIFwKKy0Jc3RhbmRhcmQt dXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBlLm8gdmVjdG9yLXVzZS10eXBl Lm8gXAorLQljb21tb24ubworLQorLU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJv dy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAorLQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJk LXVzZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKKy0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVj dG9yLXVzZS10eXBlLXMubyBjb21tb24tcy5vCistCistCistbGlic29jaV9wb3N0Z3Jlc3FsLmEg OiAke09CSkVDVFN9CistCWFyIHJ2ICRAICQ/CistCXJtICoubworLQorLQorLWJsb2IubyA6IGJs b2IuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Cist CistY29tbW9uLm8gOiBjb21tb24uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9CistCistZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1yb3ctaWQubyA6IHJvdy1p ZC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0K Ky1zZXNzaW9uLm8gOiBzZXNzaW9uLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50 by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQorLQorLXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKKy0JJHtD T01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQu byA6IHN0YXRlbWVudC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KKy0KKy12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAor LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rv ci11c2UtdHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLQorLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQor LQkke0NPTVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfcG9zdGdyZXNxbC5zbyAke09CSkVDVFNT T30KKy0Jcm0gKi5vCistCistYmxvYi1zLm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAt byAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistY29tbW9uLXMubyA6IGNv bW1vbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xV REVESVJTfQorLQorLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMg LW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC1zLm8gOiBy b3ctaWQuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNM VURFRElSU30KKy0KKy1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1j IC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC1pbnRv LXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAk QCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUt cy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50 LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJ UlN9CistCistdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCist dmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0g LWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLQorLWNsZWFuIDoK Ky0Jcm0gLWYgbGlic29jaV9wb3N0Z3Jlc3FsLmEgbGlic29jaV9wb3N0Z3Jlc3FsLnNvCitkaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxl LmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUu aW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZp bGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluCTIwMDktMDUtMDMg MDA6MjA6NDIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDgwMiBAQAorKyMgTWFrZWZpbGUu aW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNv bmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5 NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIw MDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgVGhpcyBN YWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u CisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRl IGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBu b3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQor KyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKysKKytWUEFUSCA9IEBz cmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0g JChsaWJkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0k KFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gp IC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0 YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5T VEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JN QUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9S TUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0g OgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElT VF9DT01NT04gPSAkKGFtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCkgJChzcmNkaXIpL01ha2Vm aWxlLmFtIFwKKysJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb3VyY2VzLm1rIFwK KysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1f X2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNx bC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMp ICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxs ZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIp L3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK2FtX192cGF0aF9hZGpfc2V0 dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworK2Ft X192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIk JHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisrICAgICopIGY9JCRwOzsgXAor KyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gYGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdg OworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQo cGtnaW5jbHVkZWRpcikiCisrbGliTFRMSUJSQVJJRVNfSU5TVEFMTCA9ICQoSU5TVEFMTCkKKytM VExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQorK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9E RVBFTkRFTkNJRVMgPQorK2FtX19saWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFU19ESVNUID0g IFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAor KwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwu aCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwIFwK KysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBcCisr CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwIFwKKysJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCBcCisrCSQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKKysJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNw cCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVz ZS10eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YXRlbWVudC5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92 ZWN0b3ItaW50by10eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKythbV9fb2JqZWN0c18xID0KKythbV9fb2JqZWN0 c18yID0gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVz cWxfbGEtY29tbW9uLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8gXAor KwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLXNlc3Npb24ubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10 eXBlLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIFwK KysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5sbyBcCisrCWxpYnNvY2lfcG9zdGdy ZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZl Y3Rvci11c2UtdHlwZS5sbworK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBhbV9saWJzb2NpX3Bvc3Rn cmVzcWxfbGFfT0JKRUNUUyA9ICBcCisrQEhBVkVfUE9TVEdSRVNRTF9UUlVFQAkkKGFtX19vYmpl Y3RzXzEpICQoYW1fX29iamVjdHNfMikKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUyA9 ICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpCisrbGlic29jaV9wb3N0Z3Jlc3Fs X2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAorKwkk KExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAorKwkkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAorKwkkKGxpYnNvY2lfcG9zdGdyZXNxbF9s YV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACisrQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGFtX2xp YnNvY2lfcG9zdGdyZXNxbF9sYV9ycGF0aCA9IC1ycGF0aCBcCisrQEhBVkVfUE9TVEdSRVNRTF9U UlVFQAkkKGxpYmRpcikKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9w X2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmln L2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK0NYWENPTVBJTEUgPSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytMVENYWENP TVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hY RkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9k ZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykg XAorKwkkKExERkxBR1MpIC1vICRACisrQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisrCSQoQ1BQRkxBR1MpICQo QU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKEND KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrQ0NMRCA9ICQoQ0MpCisr TElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFN X0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKGxpYnNvY2lfcG9z dGdyZXNxbF9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNvY2lfcG9zdGdy ZXNxbF9sYV9TT1VSQ0VTX0RJU1QpCisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZl IGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNpdmUgaW5mby1y ZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZpLXJlY3Vyc2l2 ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0 YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMt cmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBp bnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vyc2l2ZSB1bmlu c3RhbGwtcmVjdXJzaXZlCisrYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUID0gIFwKKysJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKKytw a2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJTlNUQUxMX0hFQURFUikKKytIRUFERVJTID0g JChwa2dpbmNsdWRlX0hFQURFUlMpCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHlj bGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUg bWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFn cworK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9O KSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK3BrZ2luY2x1ZGVk aXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0g QEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIg PSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBC T09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdF WF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9M SUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhS RUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktf TElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBA Qk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklB TElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZM QUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQ UFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVO SVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJT SU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBA CisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZ R1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJA CisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRUNITyA9IEBFQ0hPQAorK0VDSE9fQyA9IEBFQ0hP X0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVH UkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRjc3ID0gQEY3N0AKKytGRkxBR1MgPSBARkZMQUdT QAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAor K0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElO U1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RB TExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJ TlNUQUxMX1NUUklQX1BST0dSQU1ACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBA TElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xOX1MgPSBA TE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAor K01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01Z U1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAor K01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FM X1ZFUlNJT05ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNM RV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lf Q0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JB Q0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytQQUNLQUdFID0gQFBBQ0tB R0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK KytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9 IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisr UEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxB R1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxf RElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RH UkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAK KytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0g QFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19j dF9DWFhACisrYWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKKythbV9faW5jbHVkZSA9IEBhbV9faW5j bHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9 IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50 YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9 IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1 aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVp bGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGly QAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sg PSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29r QAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3Qg PSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9j cHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAor K2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2Rp ciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBs YXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAK Kytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRp ckAKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRl ZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJl Zml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAK Kytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9v a0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGly QAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2Fs aWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRk aXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBG TEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK2Jja19wb3N0Z3Jlc3Fs X2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2NvbW1vbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCisrCisrYmNrX3Bvc3RncmVzcWxfY2Nfc291cmNl cyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Js b2IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L2NvbW1vbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvZmFjdG9yeS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvcm93LWlkLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBl LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z dGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKysKKytNQUlOVEFJTkVS Q0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IC4gdGVzdAorKworKyNFWFRSQV9E SVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbW1vbi5oCisrRVhUUkFfRElTVCA9ICQo RVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorK0BIQVZFX1BPU1RHUkVTUUxfVFJV RUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX3Bvc3RncmVzcWwubGEKKytASEFWRV9QT1NUR1JF U1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVMgPSAkKGJja19wb3N0Z3Jlc3Fs X2hfc291cmNlcykgJChiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzKSAKKytASEFWRV9QT1NUR1JF U1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTID0gJChQT1NUR1JFU1FMX0NG TEFHUykKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFE RCA9IAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTERGTEFH UyA9IFwKKytASEFWRV9QT1NUR1JFU1FMX1RSVUVACSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRF X1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKytASEFWRV9QT1NUR1JF U1FMX1RSVUVACS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKysKKytA SEFWRV9QT1NUR1JFU1FMX1RSVUVAcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKKytAU09DSV9IRUFERVJT X0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK0BTT0NJX0hF QURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgor Ky5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rp cikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRv IFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCop IFwKKysJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoIFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAg ZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01B S0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUnOyBcCisrCWNkICQo dG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAn JD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisr CSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1 cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9f ZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcu c3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5D SUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9k ZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKytp bnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKKysJQCQoTk9STUFMX0lO U1RBTEwpCisrCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQo bGliZGlyKSIKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsg ZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKKysJICAgIGY9JChhbV9fc3RyaXBfZGly KSBcCisrCSAgICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJTlNUQUxM X1NUUklQX0ZMQUcpICckJHAnICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCisrCSAgICAk KExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3Rh bGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgIiQkcCIg IiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZQor KworK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJ QGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIHA9 JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIpJChs aWJkaXIpLyQkcCciOyBcCisrCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRw IjsgXAorKwlkb25lCisrCisrY2xlYW4tbGliTFRMSUJSQVJJRVM6CisrCS10ZXN0IC16ICIkKGxp Yl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChs aWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAk JHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRw IiB8fCBkaXI9LjsgXAorKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7 IFwKKysJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2Np X3Bvc3RncmVzcWwubGE6ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpICQobGlic29j aV9wb3N0Z3Jlc3FsX2xhX0RFUEVOREVOQ0lFUykgCisrCSQobGlic29jaV9wb3N0Z3Jlc3FsX2xh X0xJTkspICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX3JwYXRoKSAkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MSUJBREQpICQoTElCUykK KysKKyttb3N0bHljbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi4kKE9CSkVYVCkKKysKKytkaXN0 Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICoudGFiLmMKKysKKytAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2Iu UGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5QbG9AYW1fX3F1b3RlQAorK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5j bHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlk LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4v JChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVACisr QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf cG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1z dGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUu UGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG9AYW1fX3F1 b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAt TVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcg bGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRA ICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkg LU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9X KSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQo REVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENY WENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQo REVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYg JChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKKysKKytsaWJzb2Np X3Bvc3RncmVzcWxfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxf bGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5UcG8gJChERVBESVIpL2xpYnNvY2lf cG9zdGdyZXNxbF9sYS1ibG9iLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNw cCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLWNvbW1vbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29t bW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEt Y29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9jb21tb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1m ICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAkKERFUERJUikvbGli c29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv Y29tbW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1v IGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAKKysKKyts aWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8gLU1EIC1N UCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBs aWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEt ZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlBsbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bv c3RncmVzcWxfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9y eS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFj dG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1p ZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9yb3ctaWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXJvdy1pZC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNw cCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvJyBsaWJ0b29sPXllcyBA QU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisr QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf cG9zdGdyZXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAKKysKKytsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bv c3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5U cG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlBsbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxf bGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Nlc3Npb24uY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8t dHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQt aW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRw byAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRv LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10 eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlw ZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcg b2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1v IGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEt c3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUu bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11 c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBl LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJk LXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVz ZS10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5j cHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEt c3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0 ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1U IGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdy ZXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1l bnQuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlBsbworK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9z dGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRl bWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9s YS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRv LXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3It aW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10 eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUu UGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVj dG9yLWludG8tdHlwZS5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10 eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNl LXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1U IGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxp YnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Zl Y3Rvci11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJz b2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9s YS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11 c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorKworK21vc3Rs eWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJt IC1yZiAubGlicyBfbGlicworK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVk ZV9IRUFERVJTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChwa2dpbmNsdWRl ZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrCUBsaXN0 PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0 ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGY9 JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNobyAiICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFM TCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCisrCSAgJChw a2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikvJCRmIjsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgor KwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsg Zm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hv ICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCisrCSAgcm0gLWYg IiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKKysJZG9uZQorKworKyMgVGhpcyBk aXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2Fu IGNkCisrIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRo aXMgTWFrZWZpbGUuCisrIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVz OiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBp cyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3 aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3Ug cnVuIGBtYWtlJyk7CisrIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBv biB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZh aWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNh c2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29t PSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBc CisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQk dGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhl biBcCisrCSAgICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQt YW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkg IGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9j YWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0 ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisr CisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisr CWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAq PSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkg IGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAor KwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElS UyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2 PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAg Zmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8 IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkg IGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwK KysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwK KysJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJn ZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFp bCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2 ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg dGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQo TElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQ KSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkg ICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8k JGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5v bmVtdHB5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4g ZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBU QUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwK KysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lv bikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWlu Y2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlv bj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBc CisrCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9U QUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQoRVRB R1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1 bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NGTEFH UykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVuaXF1 ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFE RVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMp ICQoTElTUCkKKysJdGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJ U1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisr CSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIp LyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsg bm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBp biBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRh Z3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZM QUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoK KysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAk KHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKwor K2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BB VEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2Rp cnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxl IGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNy Y2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9w X2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAk KE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8 XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisr CWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAt ZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBm aTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8g Ii8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAk KHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAg IGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJ ICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhp dCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJ ICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhp dCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4g OjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8 fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBleGl0IDE7IFwK KysJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIHRv cF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAorKwkgICAgKGNk ICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAg ICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAgZGlzdGRpcj0iJCRk aXN0ZGlyLyQkc3ViZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tp cF9sZW5ndGhfY2hlY2s9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0 IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVj ay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykK KytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06Cisr CWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRl ZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBc CisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5z dGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2 ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1h bQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0 YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwt c3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExf U1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQo U1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0n JChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2Vu ZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFO X0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCisrbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWlu dGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVp cmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNM RUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVh bi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJB UklFUyBjbGVhbi1saWJ0b29sIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRp c3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZp bGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1n ZW5lcmljIFwKKysJZGlzdGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytk dmktYW06CisrCisraHRtbDogaHRtbC1yZWN1cnNpdmUKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2 ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVI RUFERVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5z dGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1 cnNpdmUKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxj aGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2 ZQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXIt Y2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0 bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRv b2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vy c2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxUTElCUkFS SUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworKy5NQUtFOiAkKFJFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKKysJaW5zdGFs bC1zdHJpcAorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJ VkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNs ZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29s IGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBk aXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRp c3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBp bnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBp bnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1o dG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5z dGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwt cGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCisrCWluc3RhbGwt cHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKKysJaW5z dGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKysJbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAor Kwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorKwl1bmluc3Rh bGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisrQFNFVF9N QUtFQAorKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhw b3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNW IGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNx bC5oCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2kt cG9zdGdyZXNxbC5oCTIwMDktMDUtMDMgMDA6MjQ6MTMuMDAwMDAwMDAwICswMjAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwu aAkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAorQEAgLTIyLDkgKzIyLDE0IEBA CisgI2lmbmRlZiBTT0NJX1BPU1RHUkVTUUxfREVDTAorICMgZGVmaW5lIFNPQ0lfUE9TVEdSRVNR TF9ERUNMCisgI2VuZGlmCistCistI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorLSNpbmNsdWRl IDxsaWJwcS1mZS5oPgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KKysjZWxzZQorKyMJaW5j bHVkZSA8c29jaS1iYWNrZW5kLmg+CisrI2VuZGlmCisrLy8KKysjaW5jbHVkZSA8bGlicHEtZmUu aD4gLy8gUG9zdEdyZVNRTCBjbGllbnQKKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorICNpZmRlZiBf TVNDX1ZFUgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCTIw MDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE0IEBACisrYmNr X3Bvc3RncmVzcWxfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKKytiY2tfcG9zdGdyZXNxbF9j Y19zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQt dXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c3RhbmRhcmQtaW50by10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMDMgMDA6MjQ6MTMu MDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAw MDAwICswMjAwCitAQCAtOCw5ICs4LDE2IEBACisgI2RlZmluZSBTT0NJX1BPU1RHUkVTUUxfU09V UkNFCisgI2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgorICNpbmNsdWRlICJjb21tb24uaCIK Ky0jaW5jbHVkZSAicm93aWQuaCIKKy0jaW5jbHVkZSAiYmxvYi5oIgorLSNpbmNsdWRlIDxsaWJw cS9saWJwcS1mcy5oPiAvLyBsaWJwcQorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JV UklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+CisrIyAgICAgICBpbmNs dWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KKysjZWxzZQorKyMgICAgICAgaW5jbHVkZSA8YmxvYi5o PgorKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KKysjZW5kaWYKKysvLworKyNpbmNsdWRlIDxs aWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcSAoUG9zdEdyZVNRTCBjbGllbnQpCisgI2luY2x1ZGUg PGNjdHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRlIDxjc3RyaW5nPgorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11 c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMDMgMDA6MjQ6MTMuMDAw MDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAg KzAyMDAKK0BAIC03LDggKzcsMTQgQEAKKyAKKyAjZGVmaW5lIFNPQ0lfUE9TVEdSRVNRTF9TT1VS Q0UKKyAjaW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgiCistI2luY2x1ZGUgInJvd2lkLmgiCist I2luY2x1ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxCisrLy8KKysjaWYgZGVmaW5lZChT T0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+ CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+CisrI2VuZGlmCisrLy8KKysjaW5j bHVkZSA8bGlicHEvbGlicHEtZnMuaD4gLy8gbGlicHEgKFBvc3RHcmVTUUwgY2xpZW50KQorICNp bmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4K K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAs MCArMSwxOCBAQAorKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGly KS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJ TlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK2lmIFJVTl9URVNUUworKyAgbm9p bnN0X1BST0dSQU1TID0gdGVzdF9wb3N0Z3Jlc3FsCisrZW5kaWYKKysKKyt0ZXN0X3Bvc3RncmVz cWxfU09VUkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMpCisrdGVzdF9wb3N0Z3Jl c3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCisrdGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0K Kyt0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGli c29jaV9jb3JlLmxhIC1sZGwgXAorKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9saWJzb2NpX3Bvc3RncmVzcWwubGEgXAorKwkJJChQT1NUR1JFU1FMX0xERkxBR1Mp CisrCisrI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHBvc3RncmVzcWxfdGVzdF9oX3Nv dXJjZXMpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCistLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0wMyAwMDoy NDoxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKK0BAIC0xLDIyICswLDAgQEAKKy0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUg aXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVjdAorLSMgdmFsdWVzIG1p Z2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2Nv cmRpbmdseS4KKy0KKy1QR1NRTElOQ0xVREVESVIgPSAtSS91c3IvaW5jbHVkZQorLVBHU1FMTElC RElSID0gLUwvdXNyL2xpYgorLVBHU1FMTElCUyA9IC1scHEKKy0KKy0jIFRoZSByZXN0IG9mIHRo ZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgorLQor LUNPTVBJTEVSID0gZysrCistQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxv bmcKKy1JTkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8uLi9jb3JlL3Rlc3QgLUkuLi8uLi8uLi9j b3JlICR7UEdTUUxJTkNMVURFRElSfQorLUxJQkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4vY29yZSAk e1BHU1FMTElCRElSfQorLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfcG9zdGdyZXNxbCAtbGRs ICR7UEdTUUxMSUJTfQorLQorLQorLXRlc3QtcG9zdGdyZXNxbCA6IHRlc3QtcG9zdGdyZXNxbC5j cHAKKy0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtM SUJESVJTfSAke0xJQlN9CistCistCistY2xlYW4gOgorLQlybSAtZiB0ZXN0LXBvc3RncmVzcWwK K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC9NYWtlZmlsZS5pbgkyMDA5LTA1LTAzIDAwOjIwOjQyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAs MCArMSw1MTQgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEg ZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQg KEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIs CisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24g dG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj YXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBi eSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VU X01BS0VACisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQ QUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGly ID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJT SU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0 YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1j CisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIg PSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUp CisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0g OgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5T VEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0 QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmls ZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uCisrQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfcG9zdGdyZXNxbCQo RVhFRVhUKQorK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0CisrQUNMT0NB TF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2Nv bmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRF TkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gp IC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09O RklHX0NMRUFOX0ZJTEVTID0KKytQUk9HUkFNUyA9ICQobm9pbnN0X1BST0dSQU1TKQorK2FtX19v YmplY3RzXzEgPSB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLiQoT0JKRVhUKQorK2Ft X3Rlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQorK3Rlc3RfcG9zdGdy ZXNxbF9PQkpFQ1RTID0gJChhbV90ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykKKyt0ZXN0X3Bvc3Rn cmVzcWxfREVQRU5ERU5DSUVTID0KKyt0ZXN0X3Bvc3RncmVzcWxfTElOSyA9ICQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 bGluayAkKENYWExEKSBcCisrCSQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdT KSBcCisrCSQodGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytERUZB VUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVw Y29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmls ZXNfbWF5YmUgPSBkZXBmaWxlcworK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisr CSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisr Q1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1f Q1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRA CisrU09VUkNFUyA9ICQodGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMpCisrRElTVF9TT1VSQ0VTID0g JCh0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUykKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFn cworK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9T KSAkKEVYVFJBX0RJU1QpCisrQUNMT0NBTCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAor K0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hF QURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFH UyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJ TUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAor K0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJT ID0gQEJPT1NUX0xJQlNACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9H UkFNX09QVElPTlNfTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisr Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9P U1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfVEhSRUFEX0xJQiA9 IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVS U0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05f TElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisrQ0ZMQUdTID0gQENG TEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZM QUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklH QAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9WRVJTSU9OID0gQENQ UFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhDUFBACisrQ1hYREVQ TU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAorK0NZR1BBVEhfVyA9 IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBESVJACisrRFNZTVVU SUwgPSBARFNZTVVUSUxACisrRUNITyA9IEBFQ0hPQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNI T19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VY RUVYVCA9IEBFWEVFWFRACisrRjc3ID0gQEY3N0AKKytGRkxBR1MgPSBARkZMQUdTQAorK0dFTkVS SUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBA R1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFU QUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBU ID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NU UklQX1BST0dSQU1ACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AK KytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xOX1MgPSBATE5fU0AKKytM VExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1Ag PSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NPTkZJ RyA9IEBNWVNRTF9DT05GSUdACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xE RkxBR1MgPSBATVlTUUxfTERGTEFHU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05A CisrTk1FRElUID0gQE5NRURJVEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0g QE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAor K09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9W RVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFD S0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBB Q0tBR0VfTkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdF X1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdF X1ZFUlNJT05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQ RVJMQAorK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9T VEdSRVNRTF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQ T1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVS U0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVM RUFTRSA9IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtF QAorK1NIRUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJT X0JVUklFREAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVS U19CVVJJRURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9 IEBVUExPQURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0g QGFic19idWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWls ZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3Jj ZGlyQAorK2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisr YWNfY3RfRjc3ID0gQGFjX2N0X0Y3N0AKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKyth bV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVv dGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmlu ZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9h bGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAor K2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisr ZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZf b2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdl bl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNf cHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAK Kytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9z dF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIg PSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZv ZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AK KytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVk aXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyttYW5k aXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNsdWRlZGlyID0gQG9s ZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBAcHJlZml4QAorK3By b2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9 IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNlZF9va0AKKytzaGFy ZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3JjZGlyQAorK3N5c2Nv bmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorK3Rv cF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9w X2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9DUFBGTEFHUyA9IC1J JCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK3Bvc3RncmVzcWxfdGVzdF9oX3NvdXJj ZXMgPSAKKytwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK01BSU5UQUlORVJD TEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKyt0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQocG9z dGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMpCisrdGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChC T09TVF9DRkxBR1MpCisrdGVzdF9wb3N0Z3Jlc3FsX0xEQUREID0gCisrdGVzdF9wb3N0Z3Jlc3Fs X0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRs IFwKKysJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvbGlic29jaV9w b3N0Z3Jlc3FsLmxhIFwKKysJCSQoUE9TVEdSRVNRTF9MREZMQUdTKQorKworK2FsbDogYWxsLWFt CisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGly KS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJ QGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGlu IFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoIFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAg ICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9z cmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC9NYWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkg LS1nbnUgIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlCisrLlBSRUNJT1VT OiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMq KSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVz X21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZp Zy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsK KysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9j b25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQo YW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrY2xlYW4tbm9pbnN0UFJPR1JBTVM6CisrCUBs aXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBmPWBl Y2hvICQkcHxzZWQgJ3MvJChFWEVFWFQpJCQvLydgOyBcCisrCSAgZWNobyAiIHJtIC1mICQkcCAk JGYiOyBcCisrCSAgcm0gLWYgJCRwICQkZiA7IFwKKysJZG9uZQorK3Rlc3RfcG9zdGdyZXNxbCQo RVhFRVhUKTogJCh0ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykgJCh0ZXN0X3Bvc3RncmVzcWxfREVQ RU5ERU5DSUVTKSAKKysJQHJtIC1mIHRlc3RfcG9zdGdyZXNxbCQoRVhFRVhUKQorKwkkKHRlc3Rf cG9zdGdyZXNxbF9MSU5LKSAkKHRlc3RfcG9zdGdyZXNxbF9PQkpFQ1RTKSAkKHRlc3RfcG9zdGdy ZXNxbF9MREFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAq LiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKwor K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X3Bv c3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvQGFtX19xdW90ZUAKKysKKysuY3BwLm86CisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQ RElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChE RVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworKy5jcHAub2JqOgorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERF UERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRv b2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChD WUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM VENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRA ICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBE SVIpLyQqLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck PCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQo ZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENY WENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNx bC5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9z dGdyZXNxbC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRl c3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfcG9zdGdyZXNxbC10 ZXN0LXBvc3RncmVzcWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRl c3QtcG9zdGdyZXNxbC5UcG8gLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5v IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rl c3QtcG9zdGdyZXNxbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdy ZXNxbC5UcG8gJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuUG8KKytA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyBvYmplY3Q9 J3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubycgbGlidG9vbD1ubyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1w b3N0Z3Jlc3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCisrCisrdGVzdF9wb3N0 Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmo6ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmogLU1EIC1NUCAtTUYgJChE RVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvIC1jIC1vIHRlc3RfcG9z dGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyB0aGVuICQo Q1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90 ZXN0LXBvc3RncmVzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAn OyBmaWAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL3Rlc3RfcG9zdGdy ZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1w b3N0Z3Jlc3FsLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jl c3FsLmNwcCcgb2JqZWN0PSd0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm9iaicgbGli dG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9w b3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVz dC1wb3N0Z3Jlc3FsLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jl c3FsLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZmlgCisrCisr bW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgor Kwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJ U1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkg JChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAg IGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRp OyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25l bXRweSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZp bGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFH UworKworK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMp IFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwl0YWdzPTsgXAorKwloZXJlPWBwd2RgOyBc CisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9u ZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisr CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVu IDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7 IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19B UkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytD VEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJ JChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENU QUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1Mp ICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVl CisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBc CisrCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdT KSAkJGhlcmUKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JU QUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2Rp cnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsg XAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14k JFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2Zp bGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNl ZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2Rp cnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4g XAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBz ZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29y dCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAor KwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBk PSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkg ICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAg IGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRo ZW4gXAorKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwg ZXhpdCAxOyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGly KSQkZGlyIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIp LyQkZmlsZSBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwK KysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFt CisrY2hlY2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQorK2luc3Rh bGxkaXJzOgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhl Yy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3Rh bGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3Rh bGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElO U1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9z aF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0t cyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BS T0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdl bmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRl c3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklM RVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5k IGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVz IGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRl c3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVB TkZJTEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNs ZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAorKwltb3N0bHljbGVhbi1hbQorKwor K2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1m IE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0 Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktYW0KKysKKytk dmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFt OgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0K KysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0K KysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtbWFuOgorKwor K2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMt YW0KKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5l ci1jbGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK21h aW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMK KysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKysKKyttb3N0bHljbGVhbi1hbTogbW9z dGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5Y2xlYW4tbGli dG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3Bz LWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0 cmlwCisrCisrLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNs ZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1T IGN0YWdzIGRpc3RjbGVhbiBcCisrCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmlj IGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFt IGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFs bC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisrCWluc3RhbGwtZHZpLWFtIGlu c3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKKysJaW5zdGFsbC1odG1s LWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAorKwlpbnN0YWxs LXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorKwlpbnN0YWxs LXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAorKwltYWlu dGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1v c3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29s IFwKKysJcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysK KytAU0VUX01BS0VACisrCisrI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHBvc3RncmVz cWxfdGVzdF9oX3NvdXJjZXMpCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBt YWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBs aW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6Citk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv c291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3Qvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC90ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291 cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwy IEBACisrcG9zdGdyZXNxbF90ZXN0X2hfc291cmNlcyA9CisrcG9zdGdyZXNxbF90ZXN0X2NjX3Nv dXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3Qt cG9zdGdyZXNxbC5jcHAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCistLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jl c3FsLmNwcAkyMDA5LTA1LTAzIDAwOjI0OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwu Y3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAtNSw5ICs1LDE3IEBA CisgLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIC8vCisgCistI2lu Y2x1ZGUgInNvY2kuaCIKKy0jaW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgiCistI2luY2x1ZGUg ImNvbW1vbi10ZXN0cy5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkK KysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+CisrIyAgICAgICBpbmNsdWRlIDxz b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmg+CisrIyAgICAgICBpbmNs dWRlIDxzb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8 c29jaS5oPgorKyMJaW5jbHVkZSA8c29jaS1wb3N0Z3Jlc3FsLmg+CisrIyAgICAgICBpbmNsdWRl IDx0ZXN0L2NvbW1vbi10ZXN0cy5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGlvc3RyZWFt PgorICNpbmNsdWRlIDxzc3RyZWFtPgorICNpbmNsdWRlIDxzdHJpbmc+CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9jb25maWcuaC5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9j b25maWcuaC5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29uZmlnLmguaW4JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9jb25maWcuaC5pbgkyMDA5LTA1LTAzIDAwOjIwOjM4LjAwMDAwMDAwMCArMDIwMAorQEAgLTAs MCArMSwxNDIgQEAKKysvKiBzb2NpL2NvbmZpZy5oLmluLiAgR2VuZXJhdGVkIGZyb20gY29uZmln dXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAqLworKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3QgbGli cmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVAorKworKy8qIGRlZmluZSBp ZiB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBI QVZFX0JPT1NUX0RBVEVfVElNRQorKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OkZJTEVTWVNU RU0gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9GSUxFU1lTVEVN CisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxh YmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfSU9TVFJFQU1TCisrCisrLyogZGVmaW5lIGlmIHRo ZSBCb29zdDo6UFJPR1JBTV9PUFRJT05TIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVm IEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6 UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9SRUdFWAor KworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFp bGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9TRVJJQUxJWkFUSU9OCisrCisrLyogZGVmaW5l IGlmIHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBI QVZFX0JPT1NUX1NJR05BTFMKKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpUSFJFQUQgbGli cmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9USFJFQUQKKysKKysvKiBk ZWZpbmUgaWYgdGhlIEJvb3N0OjpVbml0X3Rlc3RfZnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxh YmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SSworKworKy8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Y21hdGg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRl ZiBIQVZFX0NNQVRICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkZXF1ZT4g aGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfREVRVUUKKysKKysvKiBEZWZpbmUgdG8gMSBp ZiB5b3UgaGF2ZSB0aGUgPGRsZmNuLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX0RM RkNOX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZzdHJlYW0+IGhlYWRl ciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX0ZTVFJFQU0KKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5 b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX0lO VFRZUEVTX0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvbWFuaXA+IGhl YWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX0lPTUFOSVAKKysKKysvKiBEZWZpbmUgdG8gMSBp ZiB5b3UgaGF2ZSB0aGUgPGlvc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9J T1NUUkVBTQorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGltaXRzPiBoZWFk ZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9MSU1JVFMKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5 b3UgaGF2ZSB0aGUgPGxpc3Q+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX0xJU1QKKysK KysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hcD4gaGVhZGVyIGZpbGUuICovCisr I3VuZGVmIEhBVkVfTUFQCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtZW1v cnkuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfTUVNT1JZX0gKKysKKysvKiBEZWZp bmUgdG8gMSBpZiBNeVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZF X01ZU1FMCisrCisrLyogRGVmaW5lIHRvIDEgaWYgdGhlIE9yYWNsZSBPQ0kgbGlicmFyeSBpcyBh dmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9PUkFDTEUKKysKKysvKiBEZWZpbmUgdG8gMSBpZiBQ b3N0Z3JlU1FMIGxpYnJhcmllcyBhcmUgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfUE9TVEdS RVNRTAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cXVldWU+IGhlYWRlciBm aWxlLiAqLworKyN1bmRlZiBIQVZFX1FVRVVFCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxzZXQ+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NFVAorKworKy8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3N0cmVhbT4gaGVhZGVyIGZpbGUuICovCisrI3Vu ZGVmIEhBVkVfU1NUUkVBTQorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3Rk ZXhjZXB0PiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVERFWENFUFQKKysKKysvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIgZmlsZS4gKi8KKysj dW5kZWYgSEFWRV9TVERJTlRfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NURExJQl9ICisrCisrLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmc+IGhlYWRlciBmaWxlLiAqLworKyN1 bmRlZiBIQVZFX1NUUklORworKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3Ry aW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVFJJTkdTX0gKKysKKysvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KKysj dW5kZWYgSEFWRV9TVFJJTkdfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 c3lzL3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfU1lTX1NUQVRfSAorKwor Ky8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxl LiAqLworKyN1bmRlZiBIQVZFX1NZU19UWVBFU19ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfVU5JU1RE X0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZlY3Rvcj4gaGVhZGVyIGZp bGUuICovCisrI3VuZGVmIEhBVkVfVkVDVE9SCisrCisrLyogTmFtZSBvZiBwYWNrYWdlICovCisr I3VuZGVmIFBBQ0tBR0UKKysKKysvKiBEZWZpbmUgdG8gdGhlIGFkZHJlc3Mgd2hlcmUgYnVnIHJl cG9ydHMgZm9yIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgc2VudC4gKi8KKysjdW5kZWYgUEFDS0FH RV9CVUdSRVBPUlQKKysKKysvKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2th Z2UuICovCisrI3VuZGVmIFBBQ0tBR0VfTkFNRQorKworKy8qIERlZmluZSB0byB0aGUgZnVsbCBu YW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KKysjdW5kZWYgUEFDS0FHRV9TVFJJ TkcKKysKKysvKiBEZWZpbmUgdG8gdGhlIG9uZSBzeW1ib2wgc2hvcnQgbmFtZSBvZiB0aGlzIHBh Y2thZ2UuICovCisrI3VuZGVmIFBBQ0tBR0VfVEFSTkFNRQorKworKy8qIERlZmluZSB0byB0aGUg dmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCisrI3VuZGVmIFBBQ0tBR0VfVkVSU0lPTgorKwor Ky8qIERlZmluZSBpZiB5b3Ugd2FudCBleGNlcHRpb25zIGhhbmRsaW5nICovCisrI3VuZGVmIFNP Q0lfRVhDRVBUSU9OUworKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMg aGVhZGVyIGZpbGVzLiAqLworKyN1bmRlZiBTVERDX0hFQURFUlMKKysKKysvKiBEZWZpbmUgdG8g MSBpZiB5b3UgY2FuIHNhZmVseSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5o Pi4gKi8KKysjdW5kZWYgVElNRV9XSVRIX1NZU19USU1FCisrCisrLyogVmVyc2lvbiBudW1iZXIg b2YgcGFja2FnZSAqLworKyN1bmRlZiBWRVJTSU9OCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb3JlL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFr ZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYW0JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9jb3JlL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDI4IEBACisrIyMgY29yZSBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsK KysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IC4g dGVzdAorKworKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX3Jvdy5jcHAg Ll9zb2NpLXNpbXBsZS5jcHAgLl9zb2NpLXNpbXBsZS5oIC5fdmFsdWVzLWV4Y2hhbmdlLmgKKysK KytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrCisr bGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX2NvcmUubGEKKysKKytsaWJzb2NpX2NvcmVfbGFfU09V UkNFUz0gJChjb3JlX2hfc291cmNlcykgJChjb3JlX2NjX3NvdXJjZXMpIAorK2xpYnNvY2lfY29y ZV9sYV9DWFhGTEFHUyA9CisrbGlic29jaV9jb3JlX2xhX0xJQkFERCA9CisrbGlic29jaV9jb3Jl X2xhX0xERkxBR1MgPSBcCisrCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAk KEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKKysJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OKQorKworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJj ZXMpCisraWYgU09DSV9IRUFERVJTX0JVUklFRAorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1 ZGVkaXIpL3NvY2kvY29yZQorK2Vsc2UKKytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGly KQorK2VuZGlmCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvY29yZS9NYWtlZmlsZS5iYXNpYwkyMDA5LTA1LTAzIDAwOjI0OjE0LjAwMDAwMDAwMCArMDIw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDc2ICswLDAgQEAKKy1DT01QSUxF UiA9IGcrKworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistSU5D TFVERURJUlMgPSAKKy1PQkpTID0gIHNlc3Npb24ubyBzdGF0ZW1lbnQubyByb3cubyB2YWx1ZXMu byBcCistCWludG8tdHlwZS5vIHVzZS10eXBlLm8gXAorLQlibG9iLm8gcm93aWQubyBwcm9jZWR1 cmUubyByZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubyByZWYtY291bnRlZC1zdGF0ZW1lbnQubyBc CistCW9uY2UtdGVtcC10eXBlLm8gcHJlcGFyZS10ZW1wLXR5cGUubyBlcnJvci5vIHRyYW5zYWN0 aW9uLm8gYmFja2VuZC1sb2FkZXIubyBcCistCWNvbm5lY3Rpb24tcG9vbC5vIHNvY2ktc2ltcGxl Lm8KKy0KKy0KKy1saWJzb2NpX2NvcmUuYSA6ICR7T0JKU30gCistCWFyIHJ2ICRAICQ/CistCXJt ICoubworLQorLXNoYXJlZCA6ICR7T0JKU30gCistCSR7Q09NUElMRVJ9IC1mUElDIC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29j aV9jb3JlLnNvICR7T0JKU30gCistCXJtICoubworLQorLXNlc3Npb24ubyA6IHNlc3Npb24uY3Bw CistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3Rh dGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9CistCistcm93Lm8gOiByb3cuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmFsdWVzLm8gOiB2YWx1ZXMuY3BwCist CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistaW50by10 eXBlLm8gOiBpbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7 SU5DTFVERURJUlN9CistCistdXNlLXR5cGUubyA6IHVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQkKKy1ibG9iLm8gOiBibG9iLmNw cAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLWVy cm9yLm8gOiBlcnJvci5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KKy0KKy1yb3dpZC5vIDogcm93aWQuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistcHJvY2VkdXJlLm8gOiBwcm9jZWR1cmUuY3Bw CistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistcmVm LWNvdW50ZWQtcHJlcGFyZS1pbmZvLm8gOiByZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCist CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistcmVmLWNv dW50ZWQtc3RhdGVtZW50Lm8gOiByZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCistCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistb25jZS10ZW1wLXR5cGUu byA6IG9uY2UtdGVtcC10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAk e0lOQ0xVREVESVJTfQorLQorLXByZXBhcmUtdGVtcC10eXBlLm8gOiBwcmVwYXJlLXRlbXAtdHlw ZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0K Ky10cmFuc2FjdGlvbi5vIDogdHJhbnNhY3Rpb24uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistYmFja2VuZC1sb2FkZXIubyA6IGJhY2tlbmQt bG9hZGVyLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fQorLQorLWNvbm5lY3Rpb24tcG9vbC5vIDogY29ubmVjdGlvbi1wb29sLmNwcAorLQkke0NPTVBJ TEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXNvY2ktc2ltcGxlLm8g OiBzb2NpLXNpbXBsZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KKy0KKy0KKy1jbGVhbiA6CistCXJtIC1mIGxpYnNvY2lfY29yZS5hIGxpYnNvY2lf Y29yZS5zbworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5p biBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAu MF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5pbgky MDA5LTA1LTAzIDAwOjIwOjQ0LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw4OTQgQEAKKysj IE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjEgZnJvbSBNYWtlZmlsZS5h bS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUs IDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3Ig ZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25n IGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQK KysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrCisr VlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3Br Z2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9W RVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChp bnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gp IC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFE RVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25h bWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxM ID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VO SU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBo b3N0QAorK0RJU1RfQ09NTU9OID0gJChwa2dpbmNsdWRlX0hFQURFUlMpICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSBcCisrCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBc CisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gc29jaS9jb3JlCisr QUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2Rl cHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29j aS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisr YW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9E RVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3Rh bGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5o CisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3Ry aXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhfYWRqID0g Y2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xe JCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7CisrYW1f X3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKKythbV9faW5zdGFs bGRpcnMgPSAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIp IgorK2xpYkxUTElCUkFSSUVTX0lOU1RBTEwgPSAkKElOU1RBTEwpCisrTFRMSUJSQVJJRVMgPSAk KGxpYl9MVExJQlJBUklFUykKKytsaWJzb2NpX2NvcmVfbGFfREVQRU5ERU5DSUVTID0KKythbV9f b2JqZWN0c18xID0KKythbV9fb2JqZWN0c18yID0gbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9h ZGVyLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLWJsb2IubG8gbGlic29jaV9jb3JlX2xhLWNvbm5l Y3Rpb24tcG9vbC5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBsaWJzb2NpX2NvcmVf bGEtaW50by10eXBlLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvIFwK KysJbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIFwKKysJbGlic29jaV9jb3Jl X2xhLXByb2NlZHVyZS5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJl LWluZm8ubG8gXAorKwlsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIFwK KysJbGlic29jaV9jb3JlX2xhLXJvdy5sbyBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gXAorKwls aWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyBsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8g XAorKwlsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIGxpYnNvY2lfY29yZV9sYS10cmFuc2Fj dGlvbi5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyBsaWJzb2NpX2NvcmVfbGEt dmFsdWVzLmxvCisrYW1fbGlic29jaV9jb3JlX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEp ICQoYW1fX29iamVjdHNfMikKKytsaWJzb2NpX2NvcmVfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29j aV9jb3JlX2xhX09CSkVDVFMpCisrbGlic29jaV9jb3JlX2xhX0xJTksgPSAkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxp bmsgJChDWFhMRCkgXAorKwkkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg XAorKwkkKGxpYnNvY2lfY29yZV9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACisrREVGQVVM VF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQorK2RlcGNv bXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCisrYW1fX2RlcGZpbGVz X21heWJlID0gZGVwZmlsZXMKKytDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo QU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0NY WExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAor K0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgXAorKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisr TFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9D RkxBR1MpICQoQ0ZMQUdTKQorK0NDTEQgPSAkKENDKQorK0xJTksgPSAkKExJQlRPT0wpIC0tdGFn PUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAk KENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFH UykgLW8gJEAKKytTT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfbGFfU09VUkNFUykKKytESVNUX1NP VVJDRVMgPSAkKGxpYnNvY2lfY29yZV9sYV9TT1VSQ0VTKQorK1JFQ1VSU0lWRV9UQVJHRVRTID0g YWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVj dXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxs LWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1y ZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2 ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVj ay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1y ZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK3BrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwg PSAkKElOU1RBTExfSEVBREVSKQorK0hFQURFUlMgPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykKKytS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1 cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2 ZQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJE SVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElO Rk9TKSAkKEVYVFJBX0RJU1QpCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikK KytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVU T0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtF ID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFH U0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1Rf RklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1T X0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AK KytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJA CisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFU SU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9 IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9M SUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NA CisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBD UFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9D RkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJT ID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAor K0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1P REVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytE RUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAK KytFQ0hPID0gQEVDSE9ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAor K0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAK KytGNzcgPSBARjc3QAorK0ZGTEFHUyA9IEBGRkxBR1NACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwg PSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJP R1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJ UFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytM REZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AK KytMSUJUT09MID0gQExJQlRPT0xACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJ Qk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01Z U1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJ R0AKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9M REZMQUdTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTUVESVQgPSBATk1F RElUQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisr T1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZM QUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xF X09DSV9WRVJTSU9OQAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9 IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BB Q0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNL QUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRI X1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklH ID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AK KytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFH UyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVT UUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxF QVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hF TExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lf TVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5E QAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAor K2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3Bf YnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0Mg PSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9GNzcgPSBAYWNf Y3RfRjc3QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9 IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0g QGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAor K2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2Nw dSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0g QGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFk aXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAor K2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9 IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19w cmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBA aG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NA CisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2lu Y2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9z aCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJk aXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJA CisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisr bWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytw ZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5k aXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNo YXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25m ZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9 IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9w X3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikg LUkkKHRvcF9zcmNkaXIpCisrY29yZV9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Jsb2IuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9i LWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZ3Jl Z29yaWFuLWRhdGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1m dXNpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1vcHRpb25h bC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LXR1cGxlLmggXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuaCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9pbnRvLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv aW50by10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1w LXR5cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAt dHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5oIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5m by5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRl bWVudC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNoYW5nZS5oIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yb3dzZXQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9u LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1iYWNrZW5kLmggXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1jb25maWcuaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9zb2NpLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv c3RhdGVtZW50LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rp b24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNpb24u aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNpb24tdHJh aXRzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1ob2xkZXIuaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLXB0ci5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3VzZS10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dmFsdWVzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLWV4Y2hh bmdlLmgKKysKKytjb3JlX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVj dGlvbi1wb29sLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAgXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAgXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAgXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3NvY2ktc2ltcGxlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9z dGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0 aW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorKworK01BSU5U QUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytTVUJESVJTID0gLiB0ZXN0CisrCisrI0VY VFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fcm93LmNwcCAuX3NvY2ktc2ltcGxl LmNwcCAuX3NvY2ktc2ltcGxlLmggLl92YWx1ZXMtZXhjaGFuZ2UuaAorK0VYVFJBX0RJU1QgPSAk KEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKytsaWJfTFRMSUJSQVJJRVMgPSBs aWJzb2NpX2NvcmUubGEKKytsaWJzb2NpX2NvcmVfbGFfU09VUkNFUyA9ICQoY29yZV9oX3NvdXJj ZXMpICQoY29yZV9jY19zb3VyY2VzKSAKKytsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MgPSAKKyts aWJzb2NpX2NvcmVfbGFfTElCQUREID0gCisrbGlic29jaV9jb3JlX2xhX0xERkxBR1MgPSBcCisr CSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BU SU9OU19MSUIpIFwKKysJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQor KworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJjZXMpCisrQFNPQ0lfSEVBREVS U19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytAU09DSV9I RUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kv Y29yZQorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKysuU1VGRklYRVM6IC5j cHAgLmxvIC5vIC5vYmoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZp bGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsg JChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAn JChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCBc CisrCQkmJiBleGl0IDA7IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9u ZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29j aS9jb3JlL01ha2VmaWxlJzsgXAorKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9N QUtFKSAtLWdudSAgc29jaS9jb3JlL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01h a2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBc CisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJ ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJk aXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RB VFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFt X19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRf ZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCisraW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCisr CUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkg IiQoREVTVERJUikkKGxpYmRpcikiCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3Ig cCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkcDsgdGhlbiBcCisrCSAgICBmPSQo YW1fX3N0cmlwX2RpcikgXAorKwkgICAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RB TEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAnJCRwJyAnJChERVNURElSKSQobGliZGlyKS8kJGYn IjsgXAorKwkgICAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQ X0ZMQUcpICIkJHAiICIkKERFU1RESVIpJChsaWJkaXIpLyQkZiI7IFwKKysJICBlbHNlIDo7IGZp OyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtbGliTFRMSUJSQVJJRVM6CisrCUAkKE5PUk1BTF9V TklOU1RBTEwpCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7 IGRvIFwKKysJICBwPSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAkKExJQlRPT0wpICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAn JChERVNURElSKSQobGliZGlyKS8kJHAnIjsgXAorKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICIkKERFU1RESVIp JChsaWJkaXIpLyQkcCI7IFwKKysJZG9uZQorKworK2NsZWFuLWxpYkxUTElCUkFSSUVTOgorKwkt dGVzdCAteiAiJChsaWJfTFRMSUJSQVJJRVMpIiB8fCBybSAtZiAkKGxpYl9MVExJQlJBUklFUykK KysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkg IGRpcj0iYGVjaG8gJCRwIHwgc2VkIC1lICdzfC9bXi9dKiQkfHwnYCI7IFwKKysJICB0ZXN0ICIk JGRpciIgIT0gIiQkcCIgfHwgZGlyPS47IFwKKysJICBlY2hvICJybSAtZiBcIiQke2Rpcn0vc29f bG9jYXRpb25zXCIiOyBcCisrCSAgcm0gLWYgIiQke2Rpcn0vc29fbG9jYXRpb25zIjsgXAorKwlk b25lCisrbGlic29jaV9jb3JlLmxhOiAkKGxpYnNvY2lfY29yZV9sYV9PQkpFQ1RTKSAkKGxpYnNv Y2lfY29yZV9sYV9ERVBFTkRFTkNJRVMpIAorKwkkKGxpYnNvY2lfY29yZV9sYV9MSU5LKSAtcnBh dGggJChsaWJkaXIpICQobGlic29jaV9jb3JlX2xhX09CSkVDVFMpICQobGlic29jaV9jb3JlX2xh X0xJQkFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQo T0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BB TURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtYmFja2VuZC1sb2FkZXIuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJsb2IuUGxvQGFt X19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5QbG9AYW1fX3F1b3RlQAorK0BBTURF UF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtZXJyb3IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5QbG9AYW1fX3F1b3Rl QAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByZXBh cmUtdGVtcC10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuUGxvQGFtX19x dW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikv bGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5QbG9AYW1fX3F1b3RlQAor K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1y b3cuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlBsb0BhbV9fcXVvdGVACisrQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5QbG9AYW1fX3F1 b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2Fj dGlvbi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKytA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9j b3JlX2xhLXZhbHVlcy5QbG9AYW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRw byAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCou VHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5U cG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1E RVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykg JyQ8J2AKKysKKysuY3BwLmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElM RSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxv CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9 JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkg LWMgLW8gJEAgJDwKKysKKytsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG86ICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5UcG8g LWMgLW8gbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVy LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLlBsbworK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWJhY2tlbmQt bG9hZGVyLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAKKysKKytsaWJz b2NpX2NvcmVfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWJs b2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlRwbyAtYyAt byBsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtYmxvYi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlBsbworK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3Bw CisrCisrbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLlRwbyAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLlRw byAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5QbG8KKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvY29ubmVjdGlvbi1wb29sLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlv bi1wb29sLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAKKysKKyts aWJzb2NpX2NvcmVfbGEtZXJyb3IubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNw cAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVf bGEtZXJyb3IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1lcnJvci5U cG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLWVycm9yLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWVy cm9yLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWVy cm9yLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1jIC1vIGxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9lcnJvci5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvOiAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2lu dG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2ludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtaW50 by10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29y ZV9sYS1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAorKworK2xpYnNvY2lfY29y ZV9sYS1vbmNlLXRlbXAtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1w LXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtb25jZS10 ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10 eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25j ZS10ZW1wLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtb25jZS10ZW1wLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCcgb2Jq ZWN0PSdsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLW9u Y2UtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRl bXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L29uY2UtdGVtcC10eXBlLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlw ZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1wcmVw YXJlLXRlbXAtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXBy ZXBhcmUtdGVtcC10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBl LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFy ZS10ZW1wLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBl LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG8nIGxpYnRv b2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29j aV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcAorKworK2xpYnNvY2lfY29y ZV9sYS1wcm9jZWR1cmUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xh LXByb2NlZHVyZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2Nl ZHVyZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5UcG8gJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5j cHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEt cHJvY2VkdXJlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1 cmUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcmVm LWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEt cmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNv dW50ZWQtcHJlcGFyZS1pbmZvLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3Vu dGVkLXByZXBhcmUtaW5mby5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZv LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1v IGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBh cmUtaW5mby5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50Lmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yZWYt Y291bnRlZC1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1yZWYtY291bnRlZC1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291 bnRlZC1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1j b3VudGVkLXN0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQu VHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlBsbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29y ZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVk LXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50 ZWQtc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1yb3cu bG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJvdy5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJv dy5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgfHwgZWNobyAn JChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5UcG8gJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAnIG9iamVjdD0n bGlic29jaV9jb3JlX2xhLXJvdy5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERF UE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxT RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93LmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXJvd2lkLmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9s YS1yb3dpZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dp ZC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5QbG8KKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93 aWQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yb3dpZC5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEt cm93aWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCisrCisr bGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Np b24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf Y29yZV9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt c2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAnIG9iamVj dD0nbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAorKworK2xpYnNv Y2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1z aW1wbGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLXNvY2ktc2ltcGxlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt c29jaS1zaW1wbGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUuUGxv CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtc29j aS1zaW1wbGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAorKworK2xpYnNvY2lfY29y ZV9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xh LXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXN0YXRl bWVudC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5UcG8gJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5j cHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEt c3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1l bnQuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvOiAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uVHBvIC1jIC1vIGxpYnNvY2lfY29y ZV9sYS10cmFuc2FjdGlvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJh bnNhY3Rpb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS90cmFuc2FjdGlvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS10cmFuc2FjdGlvbi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwJyBvYmplY3Q9J2xp YnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24u bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3Bw CisrCisrbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS91c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQg bGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5U cG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNl LXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10 eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNl LXR5cGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdmFsdWVzLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtdmFsdWVzLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwCisrQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlRwbyAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcg b2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKKysKKyttb3N0 bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1y bSAtcmYgLmxpYnMgX2xpYnMKKytpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOiAkKHBrZ2luY2x1 ZGVfSEVBREVSUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQocGtnaW5jbHVk ZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgorKwlAbGlz dD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYg dGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBm PSQoYW1fX3N0cmlwX2RpcikgXAorKwkgIGVjaG8gIiAkKHBrZ2luY2x1ZGVIRUFERVJTX0lOU1RB TEwpICckJGQkJHAnICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkgICQo cGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpLyQkZiI7IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoK KysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7 IGZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCisrCSAgZWNo byAiIHJtIC1mICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAorKwkgIHJtIC1m ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKysjIFRoaXMg ZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNh biBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0 aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxl czogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUg aXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAo d2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91 IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMg b24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBm YWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBj YXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNv bT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsg XAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAk JHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0 LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJ ICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxv Y2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYg dGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgor KworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAor Kwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAg Kj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJ ICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwK KysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJ UlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJl dj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkg IGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAg fCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJ ICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBc CisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBc CisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFy Z2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZh aWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNp dmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkg IHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAk KExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXRweSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczog VEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChU QUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBc CisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNp b24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1p bmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRp b249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwg XAorKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIv VEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlpZiB0ZXN0IC16ICIkKEVU QUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQk dW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICAkKEVUQUdTKSAkKEVUQUdTRkxB R1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAkJHRhZ3MgJCR1bmlx dWU7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVB REVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVT KSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAor KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0 YWdzJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NG TEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR0YWdzICQkdW5pcXVlCisrCisrR1RBR1M6 CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgY2Qg JCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKKysK KytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQ QVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hv ICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNk aXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmls ZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRz cmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRv cF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikg JChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtz fF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAor Kwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3Qg LWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsg Zmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hv ICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQg JChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAg ICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisr CSAgICBmaTsgXAorKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4 aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisr CSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGV4 aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVu IDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAg fHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBc CisrCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCisrCSAgICB0 b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKKysJICAgIChj ZCAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAg ICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQk ZGlzdGRpci8kJHN1YmRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJYW1fX3Nr aXBfbGVuZ3RoX2NoZWNrPTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAgfHwgZXhp dCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hl Y2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMp CisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJzLWFtOgor Kwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsg XAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGlu c3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNp dmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwt YW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRh dGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxs LXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5T VEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICck KFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9 JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdl bmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVB Tl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKworK21haW50YWluZXIt Y2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFp bnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1 aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJD TEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xl YW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJS QVJJRVMgY2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBk aXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2Vm aWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4t Z2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisr ZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5mby1yZWN1cnNp dmUKKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRl SEVBREVSUworKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0 YWxsLWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKKysKKytpbnN0YWxsLWh0bWw6IGlu c3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1 cnNpdmUKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVj dXJzaXZlCisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxs Y2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNp dmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVy LWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9z dGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0 bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0 b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1 cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJB UklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFLRTogJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCisrCWluc3Rh bGwtc3RyaXAKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJT SVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBj bGVhbiBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9v bCBjdGFncyBjdGFncy1yZWN1cnNpdmUgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWNvbXBpbGUg ZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBk aXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwg aW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkg aW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwt aHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGlu c3RhbGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlpbnN0YWxs LXBkZi1hbSBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIGluc3RhbGwtcHMgXAorKwlpbnN0YWxs LXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBcCisrCWlu c3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVy LWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisrCW1vc3Rs eWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwK KysJdGFncyB0YWdzLXJlY3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtIFwKKysJdW5pbnN0 YWxsLWxpYkxUTElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworK0BTRVRf TUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4 cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lz ViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9jb3JlL3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc291cmNl cy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2NvcmUvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAw MCArMDIwMAorQEAgLTAsMCArMSw1OCBAQAorK2NvcmVfaF9zb3VyY2VzID0gXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvYmxvYi1leGNoYW5nZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Jvb3N0LWdyZWdvcmlhbi1kYXRlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvYm9vc3QtZnVzaW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9v c3Qtb3B0aW9uYWwuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC10 dXBsZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9v bC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmggXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXhjaGFuZ2UtdHJhaXRzLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2ludG8tdHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L29uY2UtdGVtcC10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJl cGFyZS10ZW1wLXR5cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9j ZWR1cmUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1w cmVwYXJlLWluZm8uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291 bnRlZC1zdGF0ZW1lbnQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cu aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3ctZXhjaGFuZ2UuaCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcm93c2V0LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc2Vzc2lvbi5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktYmFj a2VuZC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktY29uZmlnLmgg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3N0YXRlbWVudC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3RyYW5zYWN0aW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1j b252ZXJzaW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252 ZXJzaW9uLXRyYWl0cy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUt aG9sZGVyLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1wdHIuaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UuaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3ZhbHVlcy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Zh bHVlcy1leGNoYW5nZS5oCisrY29yZV9jY19zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2Jsb2IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Nvbm5lY3Rpb24tcG9vbC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv ZXJyb3IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVt ZW50LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvc3RhdGVtZW50LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90 cmFuc2FjdGlvbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5 cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKK2Rp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaCBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKKy0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAkyMDA5LTA1LTAzIDAw OjI0OjE1LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUv dGVzdC9jb21tb24tdGVzdHMuaAkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAor QEAgLTgsMTQgKzgsMjQgQEAKKyAjaWZuZGVmIFNPQ0lfQ09NTU9OX1RFU1RTX0hfSU5DTFVERUQK KyAjZGVmaW5lIFNPQ0lfQ09NTU9OX1RFU1RTX0hfSU5DTFVERUQKKyAKKy0jaW5jbHVkZSAic29j aS5oIgorLSNpbmNsdWRlICJzb2NpLWNvbmZpZy5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9I RUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+CisrIyAg ICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1jb25maWcuaD4KKysjICAgICAgIGluY2x1ZGUg PHNvY2kvY29yZS9ib29zdC1vcHRpb25hbC5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3Jl L2Jvb3N0LXR1cGxlLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYm9vc3QtZ3JlZ29y aWFuLWRhdGUuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS5oPgorKyMgICAgICAgaW5jbHVk ZSA8c29jaS1jb25maWcuaD4KKysjICAgICAgIGluY2x1ZGUgPGJvb3N0LW9wdGlvbmFsLmg+Cisr IyAgICAgICBpbmNsdWRlIDxib29zdC10dXBsZS5oPgorKyMgICAgICAgaW5jbHVkZSA8Ym9vc3Qt Z3JlZ29yaWFuLWRhdGUuaD4KKysjZW5kaWYKKysvLworIAorIC8vIGV4cGxpY2l0bHkgcHVsbCBj b252ZXJzaW9ucyBmb3IgQm9vc3QncyBvcHRpb25hbCwgdHVwbGUgYW5kIGZ1c2lvbjoKKyAjaW5j bHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+CistI2luY2x1ZGUgPGJvb3N0LW9wdGlvbmFsLmg+Cist I2luY2x1ZGUgPGJvb3N0LXR1cGxlLmg+CistI2luY2x1ZGUgPGJvb3N0LWdyZWdvcmlhbi1kYXRl Lmg+CisgI2lmIGRlZmluZWQoQk9PU1RfVkVSU0lPTikgJiYgQk9PU1RfVkVSU0lPTiA+PSAxMDM1 MDAKKyAjaW5jbHVkZSA8Ym9vc3QtZnVzaW9uLmg+CisgI2VuZGlmIC8vIEJPT1NUX1ZFUlNJT04K K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbSBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9N YWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCAr MSwxNSBAQAorKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisrTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK25vaW5zdF9MVExJQlJBUklFUz0gbGli c29jaV9jb3JlX3Rlc3QubGEKKysKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTPSAkKGNv cmVfdGVzdF9oX3NvdXJjZXMpCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfQ1hYRkxBR1MgPQorK2xp YnNvY2lfY29yZV90ZXN0X2xhX0xJQkFERCA9CisrbGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFH UyA9IC12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKysKKysjbm9kaXN0 X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291cmNlcykKKysjcGtnaW5jbHVk ZWRpciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3JlCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29y ZS90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3Qv TWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4JMjAwOS0wNS0wMyAwMDoy MDo0NC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNDcwIEBACisrIyBNYWtlZmlsZS5pbiBn ZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmln dXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAx OTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwg MjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1ha2Vm aWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs CisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQ QVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorKworK1ZQQVRIID0gQHNyY2RpckAK Kytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRp cikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisr YW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBj ZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9z aF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0 YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3Jt ID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9J TlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BS RV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBi dWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9N YWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHNyY2Rpcikvc291cmNlcy5t ayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IHNvY2kvY29yZS90ZXN0 CisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200 X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xl X29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFj CisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VS RV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGlu c3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZp Zy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytMVExJQlJBUklFUyA9ICQobm9pbnN0X0xUTElC UkFSSUVTKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVOQ0lFUyA9CisrYW1fX29iamVj dHNfMSA9CisrYW1fbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNf MSkKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX2NvcmVfdGVz dF9sYV9PQkpFQ1RTKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xJTksgPSAkKExJQlRPT0wpIC0t dGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGlu ayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAorKwkkKGxpYnNvY2lfY29yZV90ZXN0 X2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFt X19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrQ09NUElMRSA9ICQoQ0MpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisrCSQoQ1BQ RkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0t dGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29t cGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrQ0NMRCA9 ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZM QUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKGxp YnNvY2lfY29yZV90ZXN0X2xhX1NPVVJDRVMpCisrRElTVF9TT1VSQ0VTID0gJChsaWJzb2NpX2Nv cmVfdGVzdF9sYV9TT1VSQ0VTKQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElT VEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhU UkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBA QVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAor K0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJP T1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJA CisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1Rf SU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9P U1RfTElCU0AKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BU SU9OU19MSUJACisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9T RVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdO QUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NU X1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAor K0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisr Q0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAor K0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBA Q1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQ VU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9W RVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0g QENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BB VEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBE U1lNVVRJTEAKKytFQ0hPID0gQEVDSE9ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBA RUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0g QEVYRUVYVEAKKytGNzcgPSBARjc3QAorK0ZGTEFHUyA9IEBGRkxBR1NACisrR0VORVJJQ19MSUJS QVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAor K0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lO U1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5T VEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJP R1JBTUAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMg PSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JK UyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJ Ul9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1Z U1FMX0NPTkZJR0AKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9 IEBNWVNRTF9MREZMQUdTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTUVE SVQgPSBATk1FRElUQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xF X0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xF X09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04g PSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JV R1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9O QU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFN RSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lP TkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisr UEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FM X0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVT UUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0g QFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0g QFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hF TEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVE QAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklF REAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9B RF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1 aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0g QGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisr YWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9G NzcgPSBAYWNfY3RfRjc3QAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFk aW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKyth bV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBA YmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAor K2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRf dmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGly ID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBk aWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAor K2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXgg PSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3Rf YWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0g QGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1s ZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisr aW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRp ciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBs b2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBt YW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVk ZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGly QAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRl ZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9 IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxk X3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRk aXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9i dWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrY29yZV90ZXN0X2hfc291cmNlcyA9ICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKKytjb3JlX3Rlc3RfY2Nfc291cmNl cyA9IAorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytub2luc3RfTFRMSUJS QVJJRVMgPSBsaWJzb2NpX2NvcmVfdGVzdC5sYQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX1NPVVJD RVMgPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMpCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfQ1hYRkxB R1MgPSAKKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQgPSAKKytsaWJzb2NpX2NvcmVfdGVz dF9sYV9MREZMQUdTID0gLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQor K2FsbDogYWxsLWFtCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQo c3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rp cikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRv IFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCop IFwKKysJICAgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoIFwKKysJCSYmIGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAg ZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01B S0UpIC0tZ251ICBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGly KSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvY29yZS90ZXN0L01ha2VmaWxlCisr LlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0 b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZp Zy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1f X2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxM KSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwK KysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGly KS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bf c3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FM X000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrY2xlYW4tbm9pbnN0TFRMSUJS QVJJRVM6CisrCS10ZXN0IC16ICIkKG5vaW5zdF9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobm9p bnN0X0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChub2luc3RfTFRMSUJSQVJJRVMpJzsgZm9yIHAg aW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8 fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorKwkgIGVjaG8g InJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKysJICBybSAtZiAiJCR7ZGlyfS9z b19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2NpX2NvcmVfdGVzdC5sYTogJChsaWJzb2Np X2NvcmVfdGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVOQ0lF UykgCisrCSQobGlic29jaV9jb3JlX3Rlc3RfbGFfTElOSykgICQobGlic29jaV9jb3JlX3Rlc3Rf bGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQpICQoTElCUykKKysKKytt b3N0bHljbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi4kKE9CSkVYVCkKKysKKytkaXN0Y2xlYW4t Y29tcGlsZToKKysJLXJtIC1mICoudGFiLmMKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwkt cm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysK KytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtdHB5ID0gMTsgfSBcCisrCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAor Kwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQoSEVBREVSUykg JChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJ U1ApCisrCXRhZ3M9OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhF QURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCWlmIHRlc3QgLXogIiQo RVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAi JCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgICQoRVRBR1MpICQoRVRBR1NG TEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICQkdGFncyAkJHVu aXF1ZTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJD RVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJ dGFncz07IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19G SUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0 IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwK KysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAx OyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJp bnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIg XAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdT X0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChh bV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIp IFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10 YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKwor K2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIg fCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hv ICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlz dD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsg ZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8 O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98 O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBl Y2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIp L3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJ Zm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwg dGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlm IHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwg c2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRm aWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNy Y2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisr CSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAg ZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1w ICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAg Zmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwt YW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpCisraW5zdGFsbGRpcnM6CisraW5zdGFsbDogaW5z dGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBp bnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06 IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3Rh bGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1z dHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChT VFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSck KFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5l cmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5f RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNs ZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50 YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWly ZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFu LWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2lu c3RMVExJQlJBUklFUyBcCisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xl YW4tYW0KKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xl YW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZp OiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2luZm86IGluZm8t YW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTog aW5zdGFsbC1kdmktYW0KKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBp bnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKworK2lu c3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorKworK2luc3RhbGwt cHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1j bGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVy LWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9z dGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFu LWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wKKysK KytwZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToKKysK Kyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKwor Ky5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVh bi1nZW5lcmljIFwKKysJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RMVExJQlJBUklFUyBjdGFn cyBkaXN0Y2xlYW4gXAorKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0 Y2xlYW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1s IGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKKysJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0 YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxs LWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisrCWluc3RhbGwtaHRtbC1hbSBp bnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKysJaW5zdGFsbC1wZGYg aW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJaW5zdGFsbC1zdHJp cCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKysJbWFpbnRhaW5l ci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0bHlj bGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCisr CXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNF VF9NQUtFQAorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChjb3JlX3Rlc3RfaF9z b3VyY2VzKQorKyNwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUKKysjIFRl bGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFy aWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkg bWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUv dGVzdC9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3Qvc291 cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDUu MDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytjb3JlX3Rlc3RfaF9zb3VyY2VzID0g JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAorK2NvcmVfdGVzdF9j Y19zb3VyY2VzID0KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmFt IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6 MDcuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDkgQEAKKytpbmNsdWRlICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uCisrCisrIyMgU291cmNlIGRpcmVjdG9yeQorKworK01BSU5UQUlO RVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytTVUJESVJTID0gY29yZSBiYWNrZW5kcwor KworK0VYVFJBX0RJU1QgPQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvTWFrZWZp bGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4JMjAwOS0wNS0wMyAw MDoyMDo0MC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTU0IEBACisrIyBNYWtlZmlsZS5p biBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29u ZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAw NiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIE1h a2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K KysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisr IyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAK Kytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRp cikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisr YW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBj ZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9z aF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0 YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3Jt ID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9J TlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BS RV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBi dWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9N YWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHNyY2RpcikvY29uZmlnLmgu aW4gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2NpCisrQUNMT0NB TF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9jcHB1bml0Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2Nv bmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRF TkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gp IC1kCisrQ09ORklHX0hFQURFUiA9IGNvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytT T1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vy c2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGlu Zm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1 cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUg aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxs LXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNp dmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUg dW5pbnN0YWxsLXJlY3Vyc2l2ZQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xl YW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1h aW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MK KytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikg JChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFD TE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NP TkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAor K0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRF X1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIg PSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9J T1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9QUk9HUkFN X09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUkVHRVhf TElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09T VF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxT X0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisr Qk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0g QENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1Mg PSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5J VF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElC U0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisr Q1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1Mg PSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisr REVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytFQ0hPID0gQEVDSE9A CisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hP X1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGNzcgPSBARjc3QAor K0ZGTEFHUyA9IEBGRkxBR1NACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19M SUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJ TlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxM X1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9T VFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMREZMQUdTID0gQExERkxB R1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJ QlRPT0xACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlO Rk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBN WVNRTF9DRkxBR1NACisrTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKKytNWVNRTF9ESVJT ID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAorK01ZU1FM X1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkVYVCA9 IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxB R1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9P Q0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAor K1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JF UE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0g QFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisr UEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQ QVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AK KytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJ UlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FM X0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytS QU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBT RURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0g QFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBA VkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBA YWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJz X3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisr YWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9GNzcgPSBAYWNfY3RfRjc3QAorK2FtX19p bmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19k b3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1f X3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxk QAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVA CisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAK KytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3Rk aXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2Nk aXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZp cHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sg PSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKyto b3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3Ig PSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5j bHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3No QAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2Rp ciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRp ciA9IEBsb2NhbHN0YXRlZGlyQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rp cl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGly QAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFt X3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAK KytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAor K3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9h bGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJl Zml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bf c3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIp CisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK1NVQkRJUlMgPSBjb3JlIGJh Y2tlbmRzCisrRVhUUkFfRElTVCA9IAorK2FsbDogY29uZmlnLmgKKysJJChNQUtFKSAkKEFNX01B S0VGTEFHUykgYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZp bGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24gJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2Fz ZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aCBcCisrCQkmJiBleGl0IDA7IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJ ZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAg c29jaS9NYWtlZmlsZSc7IFwKKysJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFL RSkgLS1nbnUgIHNvY2kvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6 ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlA Y2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAq KSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAg JChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9j b25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQ RU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZp Z3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQor KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKKysKKytjb25maWcuaDogc3RhbXAtaDEKKysJQGlmIHRlc3QgISAtZiAkQDsgdGhlbiBcCisr CSAgcm0gLWYgc3RhbXAtaDE7IFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBzdGFtcC1o MTsgXAorKwllbHNlIDo7IGZpCisrCisrc3RhbXAtaDE6ICQoc3JjZGlyKS9jb25maWcuaC5pbiAk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAcm0gLWYgc3RhbXAtaDEKKysJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyBzb2NpL2NvbmZpZy5oCisr JChzcmNkaXIpL2NvbmZpZy5oLmluOiAgJChhbV9fY29uZmlndXJlX2RlcHMpIAorKwljZCAkKHRv cF9zcmNkaXIpICYmICQoQVVUT0hFQURFUikKKysJcm0gLWYgc3RhbXAtaDEKKysJdG91Y2ggJEAK KysKKytkaXN0Y2xlYW4taGRyOgorKwktcm0gLWYgY29uZmlnLmggc3RhbXAtaDEKKysKKyttb3N0 bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1y bSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMg YXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4g YG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdl IHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2Vm aWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywg ZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZp bGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVy d2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUu CisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBm IGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAt LVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7 IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQg cy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBc CisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgIChjZCAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwg JCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0 aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQg MTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFMpOgorKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBk byBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAq ayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90 X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWlu ZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChT VUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAg ICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIk JHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisr CWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4g JCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKGNkICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxj b207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRh Z3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisr CisrSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlz dD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisr CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXRweSA9IDE7IH0gXAorKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK KysJbWtpZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJz aXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSBjb25maWcuaC5pbiAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJdGFncz07IFwKKysJaGVyZT1gcHdkYDsg XAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBl bXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwK KysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHRhZ3M9 IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZp OyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpIGNvbmZpZy5oLmlu ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19B UkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1 ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAk KEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgJCR0YWdzICQkdW5pcXVlOyBc CisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMp ICQoU09VUkNFUykgY29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCisrCXRhZ3M9OyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkg aW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBl bHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAn eyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5v bmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXog IiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NG TEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHRhZ3MgJCR1 bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBw d2RgIFwKKysJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdT X0FSR1MpICQkaGVyZQorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFH UyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlA c3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9b XS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRp c3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisr CSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9w c3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxl cyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJ CSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkg ICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBk byBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBl bHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBc CisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAor KwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGly KTsgdGhlbiBcCisrCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRp ciB8fCBleGl0IDE7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRp c3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICQoZGlz dGRpcikvJCRmaWxlIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZp bGUgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlsaXN0PSckKERJ U1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQk c3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisr CSAgICB8fCBleGl0IDE7IFwKKysJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYm IHB3ZGA7IFwKKysJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYg cHdkYDsgXAorKwkgICAgKGNkICQkc3ViZGlyICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCisrCSAg ICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3Rk aXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCSAgICAgICAgZGlzdGRpcikg XAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFs bC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1ha2VmaWxlIGNvbmZpZy5o CisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2luc3RhbGxkaXJzLWFtOgor K2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMt cmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCisrdW5pbnN0 YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisr aW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisraW5zdGFsbC1zdHJpcDoKKysJ JChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBf UFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9H UkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8 IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSci YCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKwor K2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8 fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVy aWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRv IHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFs IHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUyki IHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2 ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4t YW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxl CisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4taGRy IGRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKwor K2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZv LWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmkt cmVjdXJzaXZlCisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFs bC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2 ZQorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNp dmUKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGxjaGVj ay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQor Kwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFp bnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vy c2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFu LWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBz LXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBc CisrCWluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMp ICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBj aGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAorKwljdGFncyBjdGFn cy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWhk ciBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBcCisrCWR2aS1h bSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCisrCWluc3Rh bGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAorKwlp bnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0g XAorKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRm IFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3Ry aXAgXAorKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxk aXJzLWFtIFwKKysJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4gXAorKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRm IHBkZi1hbSBwcyBwcy1hbSBcCisrCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5z dGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2Yg R05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lz dGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9S VDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLWNvbmZpZy5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS1jb25maWcuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLWNvbmZp Zy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpLWNvbmZpZy5pbgkyMDA5LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAwMCArMDIw MAorQEAgLTAsMCArMSw3NiBAQAorKyMhL2Jpbi9zaAorKworK3ByZWZpeD1AcHJlZml4QAorK2V4 ZWNfcHJlZml4PSR7cHJlZml4fQorK2xpYmRpcj1AbGliZGlyQAorK2luY2x1ZGVkaXI9QGluY2x1 ZGVkaXJACisrCisrdXNhZ2UoKQorK3sKKysgIGNhdCA8PEVPRgorK1VzYWdlOiBAUEFDS0FHRUAt Y29uZmlnIFtPUFRJT05dCisrCisrS25vd24gdmFsdWVzIGZvciBPUFRJT04gYXJlOgorKworKyAg LS1wcmVmaXggICAgICAgIHByaW50IEBQQUNLQUdFX05BTUVAIGluc3RhbGxhdGlvbiBwcmVmaXgK KysgIC0tbGlicyAgICAgICAgICBwcmludCBsaWJyYXJ5IGxpbmtpbmcgaW5mb3JtYXRpb24KKysg IC0tY2ZsYWdzICAgICAgICBwcmludCBwcmUtcHJvY2Vzc29yIGFuZCBjb21waWxlciBmbGFncwor KyAgLS1oZWxwICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0CisrICAtLXZlcnNp b24gICAgICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24KKytFT0YKKysgIGV4aXQgJDEKKyt9 CisrCisraWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorKyAgdXNhZ2UgMQorK2ZpCisrCisrY2ZsYWdz PWZhbHNlCisrbGlicz1mYWxzZQorKworK3doaWxlIHRlc3QgJCMgLWd0IDA7IGRvCisrICBjYXNl ICIkMSIgaW4KKysgIC0qPSopIG9wdGFyZz1gZWNobyAiJDEiIHwgc2VkICdzL1stX2EtekEtWjAt OV0qPS8vJ2AgOzsKKysgICopIG9wdGFyZz0gOzsKKysgIGVzYWMKKysKKysgIGNhc2UgJDEgaW4K KysgICAgLS1wcmVmaXg9KikKKysgICAgICBwcmVmaXg9JG9wdGFyZworKyAgICAgIDs7CisrCisr ICAgIC0tcHJlZml4KQorKyAgICAgIGVjaG8gJHByZWZpeAorKyAgICAgIDs7CisrCisrICAgIC0t dmVyc2lvbikKKysgICAgICBlY2hvIEBWRVJTSU9OQAorKyAgICAgIDs7CisrCisrICAgIC0taGVs cCkKKysgICAgICB1c2FnZSAwCisrICAgICAgOzsKKysKKysgICAgLS1jZmxhZ3MpCisrICAgICAg aWYgWyAiJHtwcmVmaXh9IiAhPSAiL3VzciIgXTsgdGhlbgorKyAgICAgICAgZWNobyAtSSR7aW5j bHVkZWRpcn0KKysgICAgICBlbHNlCisrICAgICAgICBlY2hvCisrICAgICAgZmkKKysgICAgICA7 OworKworKyAgICAtLWxpYnMpCisrICAgICAgaWYgWyAiJHtwcmVmaXh9IiAhPSAiL3VzciIgXTsg dGhlbgorKyAgICAgICAgZWNobyAtTCR7bGliZGlyfSAtbEBQQUNLQUdFQAorKyAgICAgIGVsc2UK KysgICAgICAgIGVjaG8gLWxAUEFDS0FHRUAKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAg ICopCisrICAgICAgdXNhZ2UKKysgICAgICBleGl0IDEKKysgICAgICA7OworKyAgZXNhYworKyAg c2hpZnQKKytkb25lCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS5tNCBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kubTQJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS5tNAkyMDA5LTA1LTAyIDIzOjU5OjEzLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxMTgg QEAKKytkbmwgQHN5bm9wc2lzIEFYX1NPQ0kKKytkbmwgCisrZG5sIFRoaXMgbWFjcm8gdHJpZXMg dG8gZmluZCBTb2NpIEMgQVBJIGhlYWRlciBhbmQgbGlicmFyeSBsb2NhdGlvbnMuCisrZG5sCisr ZG5sIFdlIGRlZmluZSB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyZSBzY3JpcHQgZmxhZ3M6CisrZG5s CisrZG5sCS0td2l0aC1zb2NpOiBHaXZlIHByZWZpeCBmb3IgYm90aCBsaWJyYXJ5IGFuZCBoZWFk ZXJzLCBhbmQgdHJ5CisrZG5sCQkgICAgIHRvIGd1ZXNzIHN1YmRpcmVjdG9yeSBuYW1lcyBmb3Ig ZWFjaC4gIChlLmcuIGFkZCAvbGliIGFuZAorK2RubAkJICAgICAvaW5jbHVkZSBvbnRvIGdpdmVu IGRpciBuYW1lcywgYW5kIG90aGVyIGNvbW1vbiBzY2hlbWVzLikKKytkbmwKKytkbmwgQHZlcnNp b24gMS4zLCAyMDA5LzA1LzAyCisrZG5sIEBhdXRob3IgRGVuaXMgQXJuYXVkIDxkZW5pc19hcm5h dWRAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorK2RubAorK2RubCBAdmVyc2lvbiAxLjIsIDIwMDcv MDIvMjAKKytkbmwgQGF1dGhvciBXYXJyZW4gWW91bmcgPHNvY2lwcEBldHItdXNhLmNvbT4KKysK KytBQ19ERUZVTihbQVhfU09DSV0sCisrWworKyMKKysjIFNldCB1cCBjb25maWd1cmUgc2NyaXB0 IG1hY3JvcworKyMKKytBQ19BUkdfV0lUSChzb2NpLAorKwlbLS13aXRoLXNvY2k9PHBhdGg+ICAg ICByb290IGRpcmVjdG9yeSBwYXRoIG9mIFNvY2kgaW5zdGFsbGF0aW9uXSwKKysJW1NPQ0lfbGli X2NoZWNrPSIkd2l0aF9zb2NpL2xpYjY0L3NvY2kgJHdpdGhfc29jaS9saWIvc29jaSAkd2l0aF9z b2NpL2xpYjY0ICR3aXRoX3NvY2kvbGliIgorKwlTT0NJX2luY19jaGVjaz0iJHdpdGhfc29jaS9p bmNsdWRlICR3aXRoX3NvY2kvaW5jbHVkZS9zb2NpIl0sCisrCVtTT0NJX2xpYl9jaGVjaz0iL3Vz ci9saWI2NCAvdXNyL2xpYiAvdXNyL2xpYjY0L3NvY2kgL3Vzci9saWIvc29jaSAvdXNyL2xvY2Fs L2xpYjY0IC91c3IvbG9jYWwvbGliIC9vcHQvc29jaS9saWI2NCAvb3B0L3NvY2kvbGliIC91c3Iv bG9jYWwvbGliNjQvc29jaSAvdXNyL2xvY2FsL2xpYi9zb2NpIC91c3IvbG9jYWwvc29jaS9saWI2 NCAvdXNyL2xvY2FsL3NvY2kvbGliIC9vcHQvc29jaS9saWI2NC9zb2NpIC9vcHQvc29jaS9saWIv c29jaSIKKysJU09DSV9pbmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2luY2x1ZGUvc29jaSAv dXNyL2xvY2FsL2luY2x1ZGUgL29wdC9zb2NpL2luY2x1ZGUgL3Vzci9sb2NhbC9pbmNsdWRlL3Nv Y2kgL3Vzci9sb2NhbC9zb2NpL2luY2x1ZGUgL3Vzci9sb2NhbC9zb2NpL2luY2x1ZGUvc29jaSAv b3B0L3NvY2kvaW5jbHVkZS9zb2NpIl0pCisrCisrIyBTT0NJIGxpYnJhcnkKKytTT0NJX0NPUkVf TElCPXNvY2lfY29yZQorK1NPQ0lfTVlTUUxfTElCPXNvY2lfbXlzcWwKKysKKysjCisrIyBMb29r IGZvciBTb2NpIENvcmUgQVBJIGxpYnJhcnkKKysjCisrQUNfTVNHX0NIRUNLSU5HKFtmb3IgU29j aSBsaWJyYXJ5IGRpcmVjdG9yeV0pCisrU09DSV9saWJkaXI9CisrZm9yIG0gaW4gJFNPQ0lfbGli X2NoZWNrCisrZG8KKysJaWYgdGVzdCAtZCAiJG0iICYmIFwKKysJCSh0ZXN0IC1mICIkbS9saWIk U09DSV9DT1JFX0xJQi5zbyIgfHwgdGVzdCAtZiAiJG0vbGliJFNPQ0lfQ09SRV9MSUIuYSIpCisr CXRoZW4KKysJCVNPQ0lfbGliZGlyPSRtCisrCQlicmVhaworKwlmaQorK2RvbmUKKysKKytpZiB0 ZXN0IC16ICIkU09DSV9saWJkaXIiCisrdGhlbgorKwlBQ19NU0dfRVJST1IoW0RpZG4ndCBmaW5k ICRTT0NJX0NPUkVfTElCIGxpYnJhcnkgaW4gJyRTT0NJX2xpYl9jaGVjayddKQorK2ZpCisrCisr Y2FzZSAiJFNPQ0lfbGliZGlyIiBpbgorKwkvKiApIDs7CisrCSogKSAgQUNfTVNHX0VSUk9SKFtU aGUgU29jaSBsaWJyYXJ5IGRpcmVjdG9yeSAoJFNPQ0lfbGliZGlyKSBtdXN0IGJlIGFuIGFic29s dXRlIHBhdGguXSkgOzsKKytlc2FjCisrCisrQUNfTVNHX1JFU1VMVChbJFNPQ0lfbGliZGlyXSkK KysKKytjYXNlICIkU09DSV9saWJkaXIiIGluCisrICAvdXNyL2xpYjY0KSA7OworKyAgL3Vzci9s aWIpIDs7CisrICAqKSBTT0NJX0xJQlM9Ii1MJHtTT0NJX2xpYmRpcn0iIDs7CisrZXNhYworK0xE RkxBR1M9IiRMREZMQUdTICR7U09DSV9MSUJTfSIKKysKKysKKysjCisrIyBMb29rIGZvciBTb2Np IENvcmUgQVBJIGhlYWRlcnMKKysjCisrQUNfTVNHX0NIRUNLSU5HKFtmb3IgU29jaSBpbmNsdWRl IGRpcmVjdG9yeV0pCisrU09DSV9pbmNkaXI9CisrZm9yIG0gaW4gJFNPQ0lfaW5jX2NoZWNrCisr ZG8KKysJaWYgdGVzdCAtZCAiJG0iICYmIHRlc3QgLWYgIiRtL3NvY2kvY29yZS9zb2NpLmgiCisr CXRoZW4KKysJCVNPQ0lfaW5jZGlyPSRtCisrCQlicmVhaworKwlmaQorK2RvbmUKKysKKytpZiB0 ZXN0IC16ICIkU09DSV9pbmNkaXIiCisrdGhlbgorKwlBQ19NU0dfRVJST1IoW0RpZG4ndCBmaW5k IHRoZSBTb2NpIGluY2x1ZGUgZGlyIGluICckU09DSV9pbmNfY2hlY2snXSkKKytmaQorKworK2Nh c2UgIiRTT0NJX2luY2RpciIgaW4KKysJLyogKSA7OworKwkqICkgIEFDX01TR19FUlJPUihbVGhl IFNvY2kgaW5jbHVkZSBkaXJlY3RvcnkgKCRTT0NJX2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0 ZSBwYXRoLl0pIDs7CisrZXNhYworKworK0FDX01TR19SRVNVTFQoWyRTT0NJX2luY2Rpcl0pCisr CisrY2FzZSAiJFNPQ0lfaW5jZGlyIiBpbgorKyAgL3Vzci9pbmNsdWRlKSA7OworKyAgKikgU09D SV9DRkxBR1M9Ii1JJHtTT0NJX2luY2Rpcn0iIDs7CisrZXNhYworKworK1NPQ0lfTElCUz0iJHtT T0NJX0xJQlN9IC1sJHtTT0NJX0NPUkVfTElCfSAtbCR7U09DSV9NWVNRTF9MSUJ9IC1sZGwiCisr CisrQUNfU1VCU1QoU09DSV9DRkxBR1MpCisrQUNfU1VCU1QoU09DSV9MSUJTKQorKworKyMgVGVz dCBsaW5raW5nIHdpdGggc29jaSAobm90ZSB0aGF0IGl0IG5lZWRzIE15U1FMIGNsaWVudCB0byBo YXZlIGJlZW4gZGVmaW5lZAorKyMgYmVmb3JlKQorK3NhdmVfTElCUz0iJExJQlMiCisraWYgdGVz dCAteiAiJE1ZU1FMX0xJQlMiCisrdGhlbgorKwlNWVNRTF9MSUJTPSItTC91c3IvbGliNjQvbXlz cWwgLUwvdXNyL2xpYi9teXNxbCAtbG15c3FsY2xpZW50IgorK2ZpCisrTElCUz0iJExJQlMgJE1Z U1FMX0xJQlMgJFNPQ0lfTElCUyIKKytBQ19DSEVDS19MSUIoJFNPQ0lfQ09SRV9MSUIsIHNvY2lf YmVnaW4sCisrCSAgICAgW10sIAorKyAgICAgICAgICAgICBbQUNfTVNHX0VSUk9SKFtDb3VsZCBu b3QgZmluZCB3b3JraW5nIFNvY2kgY2xpZW50IGxpYnJhcnkhXSldCisrCSAgICAgKQorK0xJQlM9 IiRzYXZlX0xJQlMiCisrQUNfU1VCU1QoU09DSV9DT1JFX0xJQikKKytdKSBkbmwgQVhfU09DSQor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kucGMuaW4gc29jaS0zLjAuMF90cmVwMzAw L3NvY2kucGMuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnBjLmluCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kucGMu aW4JMjAwOS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTEgQEAK KytwcmVmaXg9QHByZWZpeEAKKytleGVjX3ByZWZpeD1AZXhlY19wcmVmaXhACisrbGliZGlyPUBs aWJkaXJACisraW5jbHVkZWRpcj1AaW5jbHVkZWRpckAKKysKKytOYW1lOiBAUEFDS0FHRV9OQU1F QAorK0Rlc2NyaXB0aW9uOiBUaGUgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgZm9yIEMrKyBwcm9n cmFtbWVycworK1ZlcnNpb246IEBQQUNLQUdFX1ZFUlNJT05ACisrVVJMOiBodHRwOi8vQFBBQ0tB R0VALnNvdXJjZWZvcmdlLm5ldAorK0xpYnM6IC1MJHtsaWJkaXJ9IC1sQFBBQ0tBR0VAX2NvcmUg QExERkxBR1NAIEBMSUJTQAorK0NmbGFnczogLUkke2luY2x1ZGVkaXJ9CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS5zcGVjLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnNwZWMu aW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnNwZWMuaW4JMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5zcGVjLmluCTIw MDktMDUtMDIgMTc6MjM6MzkuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDI5NCBAQAorKyMK KysjIworKyMgRGVmYXVsdCB2YWx1ZXMgYXJlIC0td2l0aCBteXNxbCAtLXdpdGggcG9zdGdyZXNx bCAtLXdpdGhvdXQgb3JhY2xlIAorKyMgTm90ZSB0aGF0LCBmb3IgT3JhY2xlLCB3aGVuIGVuYWJs ZWQsIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBzaG91bGQKKysjIGFsc28gYmUgZ2l2ZW46CisrIyAt LXdpdGgtb3JhY2xlLWluY2x1ZGU9L29wdC9vcmFjbGUvYXBwL29yYWNsZS9wcm9kdWN0LzExLjEu MC9kYl8xL3JkYm1zL3B1YmxpYworKyMgLS13aXRoLW9yYWNsZS1saWI9L29wdC9vcmFjbGUvYXBw L29yYWNsZS9wcm9kdWN0LzExLjEuMC9kYl8xL2xpYgorKyMgSWYgdGhlIG1hY3JvcyBhcmUgZGVm aW5lZCwgcmVkZWZpbmUgdGhlbSB3aXRoIHRoZSBjb3JyZWN0IGNvbXBpbGF0aW9uIGZsYWdzLgor KyViY29uZF93aXRob3V0IG15c3FsCisrJWJjb25kX3dpdGhvdXQgcG9zdGdyZXNxbAorKyViY29u ZF93aXRoIG9yYWNsZQorKworKyVkZWZpbmUgX2RlZmF1bHRfb3JhY2xlX2RpciAvb3B0L29yYWNs ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTEuMS4wL2RiXzEKKysleyE/X3dpdGhfb3JhY2xlX2luY2Rp cjogJWRlZmluZSBfd2l0aF9vcmFjbGVfaW5jZGlyIC0td2l0aC1vcmFjbGUtaW5jbHVkZT0le19k ZWZhdWx0X29yYWNsZV9kaXJ9L3JkYm1zL3B1YmxpY30KKysleyE/X3dpdGhfb3JhY2xlX2xpYmRp cjogJWRlZmluZSBfd2l0aF9vcmFjbGVfbGliZGlyIC0td2l0aC1vcmFjbGUtbGliPSV7X2RlZmF1 bHRfb3JhY2xlX2Rpcn0vbGlifQorKyMKKysjIworKyMKKytOYW1lOiAgICAgICAgICAgQFBBQ0tB R0VACisrVmVyc2lvbjogICAgICAgIEBWRVJTSU9OQAorK1JlbGVhc2U6ICAgICAgICBAUlBNX1JF TEVBU0VAJXs/ZGlzdH0KKysKKytTdW1tYXJ5OiAgICAgICAgVGhlIGRhdGFiYXNlIGFjY2VzcyBs aWJyYXJ5IGZvciBDKysgcHJvZ3JhbW1lcnMKKysKKytHcm91cDogICAgICAgICAgU3lzdGVtIEVu dmlyb25tZW50L0xpYnJhcmllcworK0xpY2Vuc2U6ICAgICAgICBCb29zdAorK1VSTDogICAgICAg ICAgICBodHRwOi8vJXtuYW1lfS5zb3VyY2Vmb3JnZS5uZXQKKytTb3VyY2UwOiAgICAgICAgaHR0 cDovL2Rvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvc29jaS8le25hbWV9LSV7dmVyc2lvbn0udGFy Lmd6CisrIyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVkIHVwc3RyZWFtCisrUGF0Y2gwOiAg ICAgICAgICV7bmFtZX0tJXt2ZXJzaW9ufS1maXgtZ2NjNDMtY29tcGF0aWJpbGl0eS5wYXRjaAor KyMgVGhhdCBwYXRjaCB3aWxsIGJlIHN1Ym1pdHRlZCB1cHN0cmVhbQorK1BhdGNoMTogICAgICAg ICAle25hbWV9LSV7dmVyc2lvbn0tZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRj aAorK0J1aWxkUm9vdDogICAgICAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tJXtyZWxl YXNlfS1yb290LSUoJXtfX2lkX3V9IC1uKQorKworK0J1aWxkUmVxdWlyZXM6ICBib29zdC1kZXZl bCA+PSAxLjM0CisrQnVpbGRSZXF1aXJlczogIGNwcHVuaXQtZGV2ZWwgPj0gMS4xMAorK0J1aWxk UmVxdWlyZXM6ICBsaWJ0b29sCisrI1JlcXVpcmVzOiAgICAgICAKKysKKyslZGVzY3JpcHRpb24K KytAUEFDS0FHRV9OQU1FQCBpcyBhIEMrKyBkYXRhYmFzZSBhY2Nlc3MgbGlicmFyeSB0aGF0IHBy b3ZpZGVzIHRoZQorK2lsbHVzaW9uIG9mIGVtYmVkZGluZyBTUUwgaW4gcmVndWxhciBDKysgY29k ZSwgc3RheWluZyBlbnRpcmVseSB3aXRoaW4KKyt0aGUgQysrIHN0YW5kYXJkLgorKworKworKyV7 P3dpdGhfbXlzcWw6JXBhY2thZ2UgICAgICAgIG15c3FsCisrU3VtbWFyeTogICAgICAgIE15U1FM IGJhY2tlbmQgZm9yICV7bmFtZX0KKytHcm91cDogICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50 L0xpYnJhcmllcworK1JlcXVpcmVzOiAgICAgICAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVh c2V9CisrQnVpbGRSZXF1aXJlczogIG15c3FsLWRldmVsID49IDUuMAorKworKyVkZXNjcmlwdGlv biAgICBteXNxbAorK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgTXlTUUwgYmFja2VuZCBmb3Ig QFBBQ0tBR0VfTkFNRUAsIGkuZS4sCisrZHluYW1pYyBsaWJyYXJ5IHNwZWNpZmljIHRvIHRoZSBN eVNRTCBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2UgdG8KKyt1c2UgQFBBQ0tBR0VfTkFNRUAg aW4geW91ciBwcm9ncmFtcyB3aXRoIE15U1FMLCB5b3Ugd2lsbCBuZWVkIHRvCisraW5zdGFsbCAl e25hbWV9LW15c3FsLn0KKysKKyslez93aXRoX3Bvc3RncmVzcWw6JXBhY2thZ2UgICAgICAgIHBv c3RncmVzcWwKKytTdW1tYXJ5OiAgICAgICAgUG9zdEdyZVNRTCBiYWNrZW5kIGZvciAle25hbWV9 CisrR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKKytSZXF1aXJl czogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorK0J1aWxkUmVxdWlyZXM6 ICBwb3N0Z3Jlc3FsLWRldmVsID49IDcuMQorKworKyVkZXNjcmlwdGlvbiAgICBwb3N0Z3Jlc3Fs CisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBQb3N0R3JlU1FMIGJhY2tlbmQgZm9yIEBQQUNL QUdFX05BTUVALCBpLmUuLAorK2R5bmFtaWMgbGlicmFyeSBzcGVjaWZpYyB0byB0aGUgUG9zdEdy ZVNRTCBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2UKKyt0byB1c2UgQFBBQ0tBR0VfTkFNRUAg aW4geW91ciBwcm9ncmFtcyB3aXRoIFBvc3RHcmVTUUwsIHlvdSB3aWxsIG5lZWQgdG8KKytpbnN0 YWxsICV7bmFtZX0tcG9zdGdyZXNxbC59CisrCisrJXs/d2l0aF9vcmFjbGU6JXBhY2thZ2UgICAg ICAgIG9yYWNsZQorK1N1bW1hcnk6ICAgICAgICBPcmFjbGUgYmFja2VuZCBmb3IgJXtuYW1lfQor K0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCisrUmVxdWlyZXM6 ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKysKKyslZGVzY3JpcHRpb24g ICAgb3JhY2xlCisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBPcmFjbGUgYmFja2VuZCBmb3Ig QFBBQ0tBR0VfTkFNRUAsIGkuZS4sCisrZHluYW1pYyBsaWJyYXJ5IHNwZWNpZmljIHRvIHRoZSBP cmFjbGUgZGF0YWJhc2UuIElmIHlvdSB3b3VsZCBsaWtlIHRvCisrdXNlIEBQQUNLQUdFX05BTUVA IGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBPcmFjbGUsIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbAor KyV7bmFtZX0tb3JhY2xlLn0KKysKKysKKyslcGFja2FnZSAgICAgICAgZGV2ZWwKKytTdW1tYXJ5 OiAgICAgICAgSGVhZGVyIGZpbGVzLCBsaWJyYXJpZXMgYW5kIGRldmVsb3BtZW50IGRvY3VtZW50 YXRpb24gZm9yICV7bmFtZX0KKytHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVz CisrUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytSZXF1 aXJlczogICAgICAgcGtnY29uZmlnCisrCisrJWRlc2NyaXB0aW9uICAgIGRldmVsCisrVGhpcyBw YWNrYWdlIGNvbnRhaW5zIHRoZSBoZWFkZXIgZmlsZXMsIGR5bmFtaWMgbGlicmFyaWVzIGFuZAor K2RldmVsb3BtZW50IGRvY3VtZW50YXRpb24gZm9yICV7bmFtZX0uIElmIHlvdSB3b3VsZCBsaWtl IHRvIGRldmVsb3AKKytwcm9ncmFtcyB1c2luZyAle25hbWV9LCB5b3Ugd2lsbCBuZWVkIHRvIGlu c3RhbGwgJXtuYW1lfS1kZXZlbC4KKysKKyslez93aXRoX215c3FsOiVwYWNrYWdlICAgICAgICBt eXNxbC1kZXZlbAorK1N1bW1hcnk6ICAgICAgICBNeVNRTCBiYWNrZW5kIGZvciAle25hbWV9Cisr R3JvdXA6ICAgICAgICAgIERldmVsb3BtZW50L0xpYnJhcmllcworK1JlcXVpcmVzOiAgICAgICAl e25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrUmVxdWlyZXM6ICAgICAgICV7 bmFtZX0tbXlzcWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytSZXF1aXJlczogICAgICAgbXlz cWwtZGV2ZWwgPj0gNS4wCisrCisrJWRlc2NyaXB0aW9uICAgIG15c3FsLWRldmVsCisrVGhpcyBw YWNrYWdlIGNvbnRhaW5zIHRoZSBNeVNRTCBiYWNrZW5kIGZvciAle25hbWV9LCBpLmUuLCBoZWFk ZXIKKytmaWxlcyBhbmQgZHluYW1pYyBsaWJyYXJpZXMgc3BlY2lmaWMgdG8gdGhlIE15U1FMIGRh dGFiYXNlLiBJZiB5b3UKKyt3b3VsZCBsaWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtu YW1lfSBhbmQgTXlTUUwsIHlvdSB3aWxsIG5lZWQKKyt0byBpbnN0YWxsICV7bmFtZX0tbXlzcWwu fQorKworKyV7P3dpdGhfcG9zdGdyZXNxbDolcGFja2FnZSAgICAgICAgcG9zdGdyZXNxbC1kZXZl bAorK1N1bW1hcnk6ICAgICAgICBQb3N0R3JlU1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KKytHcm91 cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCisrUmVxdWlyZXM6ICAgICAgICV7bmFt ZX0tZGV2ZWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytSZXF1aXJlczogICAgICAgJXtuYW1l fS1wb3N0Z3Jlc3FsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrUmVxdWlyZXM6ICAgICAgIHBv c3RncmVzcWwtZGV2ZWwgPj0gNy4xCisrCisrJWRlc2NyaXB0aW9uICAgIHBvc3RncmVzcWwtZGV2 ZWwKKytUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIFBvc3RHcmVTUUwgYmFja2VuZCBmb3IgJXtu YW1lfSwgaS5lLiwgaGVhZGVyCisrZmlsZXMgYW5kIGR5bmFtaWMgbGlicmFyaWVzIHNwZWNpZmlj IHRvIHRoZSBQb3N0R3JlU1FMIGRhdGFiYXNlLiBJZgorK3lvdSB3b3VsZCBsaWtlIHRvIGRldmVs b3AgcHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgUG9zdEdyZVNRTCwgeW91Cisrd2lsbCBuZWVk IHRvIGluc3RhbGwgJXtuYW1lfS1wb3N0Z3Jlc3FsLn0KKysKKyslez93aXRoX29yYWNsZTolcGFj a2FnZSAgICAgICAgb3JhY2xlLWRldmVsCisrU3VtbWFyeTogICAgICAgIE9yYWNsZSBiYWNrZW5k IGZvciAle25hbWV9CisrR3JvdXA6ICAgICAgICAgIERldmVsb3BtZW50L0xpYnJhcmllcworK1Jl cXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrUmVx dWlyZXM6ICAgICAgICV7bmFtZX0tb3JhY2xlID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrCisr JWRlc2NyaXB0aW9uICAgIG9yYWNsZS1kZXZlbAorK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUg T3JhY2xlIGJhY2tlbmQgZm9yICV7bmFtZX0sIGkuZS4sIGhlYWRlcgorK2ZpbGVzIGFuZCBkeW5h bWljIGxpYnJhcmllcyBzcGVjaWZpYyB0byB0aGUgT3JhY2xlIGRhdGFiYXNlLiBJZiB5b3UKKyt3 b3VsZCBsaWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgT3JhY2xlLCB5 b3Ugd2lsbCBuZWVkCisrdG8gaW5zdGFsbCAle25hbWV9LW9yYWNsZS59CisrCisrCisrJXBhY2th Z2UgZG9jCisrU3VtbWFyeTogICAgICAgIEhUTUwgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIEBQQUNL QUdFX05BTUVAIGxpYnJhcnkKKytHcm91cDogICAgICAgICAgRG9jdW1lbnRhdGlvbgorK0J1aWxk QXJjaDogICAgICBub2FyY2gKKytCdWlsZFJlcXVpcmVzOiAgZG94eWdlbiwgdGV4bGl2ZS1sYXRl eCwgdGV4bGl2ZS1kdmlwcywgZ2hvc3RzY3JpcHQKKysKKyslZGVzY3JpcHRpb24gZG9jCisrVGhp cyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBkb2N1bWVudGF0aW9uIGluIHRoZSBIVE1MIGZvcm1hdCBv ZiB0aGUgQFBBQ0tBR0VfTkFNRUAKKytsaWJyYXJ5LiBUaGUgZG9jdW1lbnRhdGlvbiBpcyB0aGUg c2FtZSBhcyBhdCB0aGUgQFBBQ0tBR0VfTkFNRUAgd2ViIHBhZ2UuCisrCisrCisrJXByZXAKKysl c2V0dXAgLXEKKysjIFJlbmFtZSBjaGFuZ2UtbG9nIGFuZCBsaWNlbnNlIGZpbGUsIHNvIHRoYXQg dGhleSBjb21wbHkgd2l0aAorKyMgcGFja2FnaW5nIHN0YW5kYXJkCisrbXYgQ0hBTkdFUyBDaGFu Z2VMb2cKKyttdiBMSUNFTlNFXzFfMC50eHQgQ09QWUlORworK3JtIC1mIElOU1RBTEwKKysjIEFw cGx5IHRoZSBnKysgNC4zIGNvbXBhdGliaWxpdHkgcGF0Y2gKKyslcGF0Y2gwIC1wMQorKyMgUmVt b3ZlIE1hY09TWCBjb21wYXRpYmlsaXR5IGJ1aWxkaW5nIGZpbGVzCisrcm0gLWYgYnVpbGQvdW5p eC8uXyoudGNsCisrcm0gLWYgLl9NYWtlZmlsZSAuX2NvbmZpZ3VyZQorK3JtIC1mIHNvY2kvY29y ZS8uXyouaCBzb2NpL2NvcmUvLl8qLmNwcAorK3JtIC1mIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC8uXyouaAorK3JtIC1mIGRvYy8uXyouaHRtbAorKyMgUmVuYW1lIHRoZSBzb3VyY2UgY29kZSBk aXJlY3RvcnksIHNvIHRoYXQgdGhlIGZpbGVzIChlLmcsIGhlYWRlcgorKyMgZmlsZXMpIGNhbiBi ZSBleHBvcnRlZCBjb3JyZWN0bHkgaW50byB7X3N0YW5kYXJkX2Rpcn0vJXtuYW1lfQorK212IHNy YyAle25hbWV9CisrIyBBcHBseSB0aGUgR05VIEF1dG90b29scyBjb21wYXRpYmlsaXR5IHBhdGNo CisrJXBhdGNoMSAtcDEKKysjIEZpeCBzb21lIHBlcm1pc3Npb25zIGFuZCBmb3JtYXRzCisrZmlu ZCAuL2RvYyAtdHlwZSBmIC1wZXJtIDc1NSAtZXhlYyBjaG1vZCA2NDQge30gXDsKKytjaG1vZCAt eCBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCisrIyBmaW5kIC4gLXR5cGUg ZiAtbmFtZSAnKi5baGNdcHAnIC1leGVjIGNobW9kIDY0NCB7fSBcOworKworKworKyVidWlsZAor KyVjb25maWd1cmUgLS1kaXNhYmxlLXN0YXRpYyBcCisrJXs/d2l0aF9teXNxbDotLWVuYWJsZS1i YWNrZW5kLW15c3FsfSBcCisrJXs/d2l0aF9wb3N0Z3Jlc3FsOi0tZW5hYmxlLWJhY2tlbmQtcG9z dGdyZXNxbH0gXAorKyV7P3dpdGhfb3JhY2xlOi0tZW5hYmxlLWJhY2tlbmQtb3JhY2xlICV7P193 aXRoX29yYWNsZV9pbmNkaXJ9ICV7P193aXRoX29yYWNsZV9saWJkaXJ9fQorK21ha2UgJXs/X3Nt cF9tZmxhZ3N9CisrCisrJWluc3RhbGwKKytybSAtcmYgJFJQTV9CVUlMRF9ST09UCisrbWFrZSBp bnN0YWxsIERFU1RESVI9JFJQTV9CVUlMRF9ST09UCisrIyMKKysjICBSZW1vdmUgdW5wYWNrYWdl ZCBmaWxlcyBmcm9tIHRoZSBidWlsZHJvb3QKKytybSAtZiAkUlBNX0JVSUxEX1JPT1Qle19pbmNs dWRlZGlyfS8le25hbWV9L2NvbmZpZy5oCisrcm0gLWYgJFJQTV9CVUlMRF9ST09UJXtfbGliZGly fS9saWIle25hbWV9XyoubGEKKysjIworKyMjCisrIyAgRHVwbGljYXRlIHRoZSBoZWFkZXIgZmls ZXMsIHNvIGFzIHRvIGtlZXAgdGhlIGNvbXBhdGliaWxpdHksIGZvcgorKyMgIGRldmVsb3BlcnMg dXNpbmcgdGhlIFNPQ0kgbGlicmFyeSwgd2l0aCB0aGUgbm9uLXBhY2thZ2VkIHZlcnNpb24gb2YK KysjICB0aGF0IGxpYnJhcnkuCisrZm9yIGhlYWRlcl9maWxlIGluICRSUE1fQlVJTERfUk9PVCV7 X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29yZS8qLmg7IGRvCisrICBjcCAke2hlYWRlcl9maWxlfSAk UlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9CisrZG9uZQorKyV7P3dpdGhfbXlz cWw6Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9teXNx bC9zb2NpLW15c3FsLmggJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfX0KKysl ez93aXRoX3Bvc3RncmVzcWw6Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1l fS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oICRSUE1fQlVJTERfUk9PVCV7 X2luY2x1ZGVkaXJ9LyV7bmFtZX19CisrJXs/d2l0aF9vcmFjbGU6Y3AgJFJQTV9CVUlMRF9ST09U JXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCAkUlBN X0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9fQorKworKworKyVjbGVhbgorK3JtIC1y ZiAkUlBNX0JVSUxEX1JPT1QKKysKKyslcG9zdCAtcCAvc2Jpbi9sZGNvbmZpZworKworKyVwb3N0 dW4gLXAgL3NiaW4vbGRjb25maWcKKysKKyslez93aXRoX215c3FsOiVwb3N0IG15c3FsIC1wIC9z YmluL2xkY29uZmlnCisrCisrJXBvc3R1biBteXNxbCAtcCAvc2Jpbi9sZGNvbmZpZ30KKysKKysl ez93aXRoX3Bvc3RncmVzcWw6JXBvc3QgcG9zdGdyZXNxbCAtcCAvc2Jpbi9sZGNvbmZpZworKwor KyVwb3N0dW4gcG9zdGdyZXNxbCAtcCAvc2Jpbi9sZGNvbmZpZ30KKysKKyslez93aXRoX29yYWNs ZTolcG9zdCBvcmFjbGUgLXAgL3NiaW4vbGRjb25maWcKKysKKyslcG9zdHVuIG9yYWNsZSAtcCAv c2Jpbi9sZGNvbmZpZ30KKysKKysKKysKKyslZmlsZXMKKyslZGVmYXR0cigtLHJvb3Qscm9vdCwt KQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorKyV7X2xpYmRp cn0vbGliJXtuYW1lfV9jb3JlLnNvLioKKysKKyslez93aXRoX215c3FsOiVmaWxlcyBteXNxbAor KyVkZWZhdHRyKC0scm9vdCxyb290LC0pCisrJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5H IE5FV1MgUkVBRE1FCisrJXtfbGliZGlyfS9saWIle25hbWV9X215c3FsLnNvLip9CisrCisrJXs/ d2l0aF9wb3N0Z3Jlc3FsOiVmaWxlcyBwb3N0Z3Jlc3FsCisrJWRlZmF0dHIoLSxyb290LHJvb3Qs LSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKKysle19saWJk aXJ9L2xpYiV7bmFtZX1fcG9zdGdyZXNxbC5zby4qfQorKworKyV7P3dpdGhfb3JhY2xlOiVmaWxl cyBvcmFjbGUKKyslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VM b2cgQ09QWUlORyBORVdTIFJFQURNRQorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9vcmFjbGUuc28u Kn0KKysKKysKKyslZmlsZXMgZGV2ZWwKKyslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2Mg QVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorKyVkaXIgJXtfaW5jbHVkZWRp cn0vJXtuYW1lfQorKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vKi5oCisrJXtfaW5jbHVkZWRpcn0v JXtuYW1lfS9jb3JlCisrJXtfYmluZGlyfS8le25hbWV9LWNvbmZpZworKyV7X2xpYmRpcn0vbGli JXtuYW1lfV9jb3JlLnNvCisrJXtfbGliZGlyfS9wa2djb25maWcvJXtuYW1lfS5wYworKyV7X2Rh dGFkaXJ9L2FjbG9jYWwvJXtuYW1lfS5tNAorKyV7X21hbmRpcn0vbWFuMS8le25hbWV9LWNvbmZp Zy4xLioKKysKKyslez93aXRoX215c3FsOiVmaWxlcyBteXNxbC1kZXZlbAorKyVkZWZhdHRyKC0s cm9vdCxyb290LC0pCisrJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1F CisrJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9CisrJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9i YWNrZW5kcy9teXNxbAorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9teXNxbC5zb30KKysKKyslez93 aXRoX3Bvc3RncmVzcWw6JWZpbGVzIHBvc3RncmVzcWwtZGV2ZWwKKyslZGVmYXR0cigtLHJvb3Qs cm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorKyVk aXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2Vu ZHMvcG9zdGdyZXNxbAorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9wb3N0Z3Jlc3FsLnNvfQorKwor KyV7P3dpdGhfb3JhY2xlOiVmaWxlcyBvcmFjbGUtZGV2ZWwKKyslZGVmYXR0cigtLHJvb3Qscm9v dCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorKyVkaXIg JXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMv b3JhY2xlCisrJXtfbGliZGlyfS9saWIle25hbWV9X29yYWNsZS5zb30KKysKKysKKyslZmlsZXMg ZG9jCisrJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENP UFlJTkcgTkVXUyBSRUFETUUgZG9jCisrCisrCisrJWNoYW5nZWxvZworKyogU2F0IE1heSAwMiAy MDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC02Cisr LSBSZW1vdmVkIHRoZSB1bnVzZWQgYnVpbGQgY29uZGl0aW9uYWxzCisrCisrKiBUdWUgQXByIDI4 IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTUK KystIFNpbXBsaWZpZWQgdGhlIGNvbmRpdGlvbmFsIGJ1aWxkIHJ1bGVzIHdpdGhpbiB0aGUgUlBN IHNwZWNpZmljYXRpb24gZmlsZQorKworKyogU2F0IEFwciAxOCAyMDA5IERlbmlzIEFybmF1ZCA8 ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC00CisrLSBGaXhlZCBhbiBpc3N1ZSBh Ym91dCBPUFRGTEFHUyBjb21waWxhdGlvbgorKworKyogVHVlIEFwciAxNCAyMDA5IERlbmlzIEFy bmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0zCisrLSBSZXN0YXJ0ZWQg ZnJvbSBwcmlzdGluZSB2ZXJzaW9uIDMuMC4wIG9mIHVwc3RyZWFtIChTT0NJKSBwcm9qZWN0Cisr CisrKiBTYXQgQXByICA0IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00 eC5vcmc+IDMuMC4wLTIKKystIFNwZWNpZmljIFJQTSBmb3IgZWFjaCBiYWNrZW5kCisrCisrKiBG cmkgTWFyIDI3IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+ IDMuMC4wLTEKKystIEZpcnN0IFJQTSByZWxlYXNlCgpkaWZmIC0tZ2l0IGEvc29jaS5zcGVjIGIv c29jaS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjODFjNzcKLS0t IC9kZXYvbnVsbAorKysgYi9zb2NpLnNwZWMKQEAgLTAsMCArMSwyOTQgQEAKKyMKKyMjCisjIERl ZmF1bHQgdmFsdWVzIGFyZSAtLXdpdGggbXlzcWwgLS13aXRoIHBvc3RncmVzcWwgLS13aXRob3V0 IG9yYWNsZSAKKyMgTm90ZSB0aGF0LCBmb3IgT3JhY2xlLCB3aGVuIGVuYWJsZWQsIHRoZSBmb2xs b3dpbmcgb3B0aW9ucyBzaG91bGQKKyMgYWxzbyBiZSBnaXZlbjoKKyMgLS13aXRoLW9yYWNsZS1p bmNsdWRlPS9vcHQvb3JhY2xlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMS4xLjAvZGJfMS9yZGJtcy9w dWJsaWMKKyMgLS13aXRoLW9yYWNsZS1saWI9L29wdC9vcmFjbGUvYXBwL29yYWNsZS9wcm9kdWN0 LzExLjEuMC9kYl8xL2xpYgorIyBJZiB0aGUgbWFjcm9zIGFyZSBkZWZpbmVkLCByZWRlZmluZSB0 aGVtIHdpdGggdGhlIGNvcnJlY3QgY29tcGlsYXRpb24gZmxhZ3MuCislYmNvbmRfd2l0aG91dCBt eXNxbAorJWJjb25kX3dpdGhvdXQgcG9zdGdyZXNxbAorJWJjb25kX3dpdGggb3JhY2xlCisKKyVk ZWZpbmUgX2RlZmF1bHRfb3JhY2xlX2RpciAvb3B0L29yYWNsZS9hcHAvb3JhY2xlL3Byb2R1Y3Qv MTEuMS4wL2RiXzEKKyV7IT9fd2l0aF9vcmFjbGVfaW5jZGlyOiAlZGVmaW5lIF93aXRoX29yYWNs ZV9pbmNkaXIgLS13aXRoLW9yYWNsZS1pbmNsdWRlPSV7X2RlZmF1bHRfb3JhY2xlX2Rpcn0vcmRi bXMvcHVibGljfQorJXshP193aXRoX29yYWNsZV9saWJkaXI6ICVkZWZpbmUgX3dpdGhfb3JhY2xl X2xpYmRpciAtLXdpdGgtb3JhY2xlLWxpYj0le19kZWZhdWx0X29yYWNsZV9kaXJ9L2xpYn0KKyMK KyMjCisjCitOYW1lOiAgICAgICAgICAgc29jaQorVmVyc2lvbjogICAgICAgIDMuMC4wCitSZWxl YXNlOiAgICAgICAgNiV7P2Rpc3R9CisKK1N1bW1hcnk6ICAgICAgICBUaGUgZGF0YWJhc2UgYWNj ZXNzIGxpYnJhcnkgZm9yIEMrKyBwcm9ncmFtbWVycworCitHcm91cDogICAgICAgICAgU3lzdGVt IEVudmlyb25tZW50L0xpYnJhcmllcworTGljZW5zZTogICAgICAgIEJvb3N0CitVUkw6ICAgICAg ICAgICAgaHR0cDovLyV7bmFtZX0uc291cmNlZm9yZ2UubmV0CitTb3VyY2UwOiAgICAgICAgaHR0 cDovL2Rvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvc29jaS8le25hbWV9LSV7dmVyc2lvbn0udGFy Lmd6CisjIFRoYXQgcGF0Y2ggd2lsbCBiZSBzdWJtaXR0ZWQgdXBzdHJlYW0KK1BhdGNoMDogICAg ICAgICAle25hbWV9LSV7dmVyc2lvbn0tZml4LWdjYzQzLWNvbXBhdGliaWxpdHkucGF0Y2gKKyMg VGhhdCBwYXRjaCB3aWxsIGJlIHN1Ym1pdHRlZCB1cHN0cmVhbQorUGF0Y2gxOiAgICAgICAgICV7 bmFtZX0tJXt2ZXJzaW9ufS1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoCitC dWlsZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0t cm9vdC0lKCV7X19pZF91fSAtbikKKworQnVpbGRSZXF1aXJlczogIGJvb3N0LWRldmVsID49IDEu MzQKK0J1aWxkUmVxdWlyZXM6ICBjcHB1bml0LWRldmVsID49IDEuMTAKK0J1aWxkUmVxdWlyZXM6 ICBsaWJ0b29sCisjUmVxdWlyZXM6ICAgICAgIAorCislZGVzY3JpcHRpb24KK1NPQ0kgaXMgYSBD KysgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgdGhhdCBwcm92aWRlcyB0aGUKK2lsbHVzaW9uIG9m IGVtYmVkZGluZyBTUUwgaW4gcmVndWxhciBDKysgY29kZSwgc3RheWluZyBlbnRpcmVseSB3aXRo aW4KK3RoZSBDKysgc3RhbmRhcmQuCisKKworJXs/d2l0aF9teXNxbDolcGFja2FnZSAgICAgICAg bXlzcWwKK1N1bW1hcnk6ICAgICAgICBNeVNRTCBiYWNrZW5kIGZvciAle25hbWV9CitHcm91cDog ICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcworUmVxdWlyZXM6ICAgICAgICV7 bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KK0J1aWxkUmVxdWlyZXM6ICBteXNxbC1kZXZl bCA+PSA1LjAKKworJWRlc2NyaXB0aW9uICAgIG15c3FsCitUaGlzIHBhY2thZ2UgY29udGFpbnMg dGhlIE15U1FMIGJhY2tlbmQgZm9yIFNPQ0ksIGkuZS4sCitkeW5hbWljIGxpYnJhcnkgc3BlY2lm aWMgdG8gdGhlIE15U1FMIGRhdGFiYXNlLiBJZiB5b3Ugd291bGQgbGlrZSB0bwordXNlIFNPQ0kg aW4geW91ciBwcm9ncmFtcyB3aXRoIE15U1FMLCB5b3Ugd2lsbCBuZWVkIHRvCitpbnN0YWxsICV7 bmFtZX0tbXlzcWwufQorCislez93aXRoX3Bvc3RncmVzcWw6JXBhY2thZ2UgICAgICAgIHBvc3Rn cmVzcWwKK1N1bW1hcnk6ICAgICAgICBQb3N0R3JlU1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KK0dy b3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCitSZXF1aXJlczogICAg ICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorQnVpbGRSZXF1aXJlczogIHBvc3Rn cmVzcWwtZGV2ZWwgPj0gNy4xCisKKyVkZXNjcmlwdGlvbiAgICBwb3N0Z3Jlc3FsCitUaGlzIHBh Y2thZ2UgY29udGFpbnMgdGhlIFBvc3RHcmVTUUwgYmFja2VuZCBmb3IgU09DSSwgaS5lLiwKK2R5 bmFtaWMgbGlicmFyeSBzcGVjaWZpYyB0byB0aGUgUG9zdEdyZVNRTCBkYXRhYmFzZS4gSWYgeW91 IHdvdWxkIGxpa2UKK3RvIHVzZSBTT0NJIGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBQb3N0R3JlU1FM LCB5b3Ugd2lsbCBuZWVkIHRvCitpbnN0YWxsICV7bmFtZX0tcG9zdGdyZXNxbC59CisKKyV7P3dp dGhfb3JhY2xlOiVwYWNrYWdlICAgICAgICBvcmFjbGUKK1N1bW1hcnk6ICAgICAgICBPcmFjbGUg YmFja2VuZCBmb3IgJXtuYW1lfQorR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9M aWJyYXJpZXMKK1JlcXVpcmVzOiAgICAgICAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9 CisKKyVkZXNjcmlwdGlvbiAgICBvcmFjbGUKK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgT3Jh Y2xlIGJhY2tlbmQgZm9yIFNPQ0ksIGkuZS4sCitkeW5hbWljIGxpYnJhcnkgc3BlY2lmaWMgdG8g dGhlIE9yYWNsZSBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2UgdG8KK3VzZSBTT0NJIGluIHlv dXIgcHJvZ3JhbXMgd2l0aCBPcmFjbGUsIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbAorJXtuYW1l fS1vcmFjbGUufQorCisKKyVwYWNrYWdlICAgICAgICBkZXZlbAorU3VtbWFyeTogICAgICAgIEhl YWRlciBmaWxlcywgbGlicmFyaWVzIGFuZCBkZXZlbG9wbWVudCBkb2N1bWVudGF0aW9uIGZvciAl e25hbWV9CitHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCitSZXF1aXJlczog ICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorUmVxdWlyZXM6ICAgICAgIHBr Z2NvbmZpZworCislZGVzY3JpcHRpb24gICAgZGV2ZWwKK1RoaXMgcGFja2FnZSBjb250YWlucyB0 aGUgaGVhZGVyIGZpbGVzLCBkeW5hbWljIGxpYnJhcmllcyBhbmQKK2RldmVsb3BtZW50IGRvY3Vt ZW50YXRpb24gZm9yICV7bmFtZX0uIElmIHlvdSB3b3VsZCBsaWtlIHRvIGRldmVsb3AKK3Byb2dy YW1zIHVzaW5nICV7bmFtZX0sIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCAle25hbWV9LWRldmVs LgorCislez93aXRoX215c3FsOiVwYWNrYWdlICAgICAgICBteXNxbC1kZXZlbAorU3VtbWFyeTog ICAgICAgIE15U1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KK0dyb3VwOiAgICAgICAgICBEZXZlbG9w bWVudC9MaWJyYXJpZXMKK1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9CitSZXF1aXJlczogICAgICAgJXtuYW1lfS1teXNxbCA9ICV7dmVyc2lvbn0t JXtyZWxlYXNlfQorUmVxdWlyZXM6ICAgICAgIG15c3FsLWRldmVsID49IDUuMAorCislZGVzY3Jp cHRpb24gICAgbXlzcWwtZGV2ZWwKK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUgTXlTUUwgYmFj a2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCitmaWxlcyBhbmQgZHluYW1pYyBsaWJyYXJp ZXMgc3BlY2lmaWMgdG8gdGhlIE15U1FMIGRhdGFiYXNlLiBJZiB5b3UKK3dvdWxkIGxpa2UgdG8g ZGV2ZWxvcCBwcm9ncmFtcyB1c2luZyAle25hbWV9IGFuZCBNeVNRTCwgeW91IHdpbGwgbmVlZAor dG8gaW5zdGFsbCAle25hbWV9LW15c3FsLn0KKworJXs/d2l0aF9wb3N0Z3Jlc3FsOiVwYWNrYWdl ICAgICAgICBwb3N0Z3Jlc3FsLWRldmVsCitTdW1tYXJ5OiAgICAgICAgUG9zdEdyZVNRTCBiYWNr ZW5kIGZvciAle25hbWV9CitHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCitS ZXF1aXJlczogICAgICAgJXtuYW1lfS1kZXZlbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorUmVx dWlyZXM6ICAgICAgICV7bmFtZX0tcG9zdGdyZXNxbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQor UmVxdWlyZXM6ICAgICAgIHBvc3RncmVzcWwtZGV2ZWwgPj0gNy4xCisKKyVkZXNjcmlwdGlvbiAg ICBwb3N0Z3Jlc3FsLWRldmVsCitUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIFBvc3RHcmVTUUwg YmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCitmaWxlcyBhbmQgZHluYW1pYyBsaWJy YXJpZXMgc3BlY2lmaWMgdG8gdGhlIFBvc3RHcmVTUUwgZGF0YWJhc2UuIElmCit5b3Ugd291bGQg bGlrZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7bmFtZX0gYW5kIFBvc3RHcmVTUUwsIHlv dQord2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1wb3N0Z3Jlc3FsLn0KKworJXs/d2l0aF9v cmFjbGU6JXBhY2thZ2UgICAgICAgIG9yYWNsZS1kZXZlbAorU3VtbWFyeTogICAgICAgIE9yYWNs ZSBiYWNrZW5kIGZvciAle25hbWV9CitHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFy aWVzCitSZXF1aXJlczogICAgICAgJXtuYW1lfS1kZXZlbCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNl fQorUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tb3JhY2xlID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9 CisKKyVkZXNjcmlwdGlvbiAgICBvcmFjbGUtZGV2ZWwKK1RoaXMgcGFja2FnZSBjb250YWlucyB0 aGUgT3JhY2xlIGJhY2tlbmQgZm9yICV7bmFtZX0sIGkuZS4sIGhlYWRlcgorZmlsZXMgYW5kIGR5 bmFtaWMgbGlicmFyaWVzIHNwZWNpZmljIHRvIHRoZSBPcmFjbGUgZGF0YWJhc2UuIElmIHlvdQor d291bGQgbGlrZSB0byBkZXZlbG9wIHByb2dyYW1zIHVzaW5nICV7bmFtZX0gYW5kIE9yYWNsZSwg eW91IHdpbGwgbmVlZAordG8gaW5zdGFsbCAle25hbWV9LW9yYWNsZS59CisKKworJXBhY2thZ2Ug ZG9jCitTdW1tYXJ5OiAgICAgICAgSFRNTCBkb2N1bWVudGF0aW9uIGZvciB0aGUgU09DSSBsaWJy YXJ5CitHcm91cDogICAgICAgICAgRG9jdW1lbnRhdGlvbgorQnVpbGRBcmNoOiAgICAgIG5vYXJj aAorQnVpbGRSZXF1aXJlczogIGRveHlnZW4sIHRleGxpdmUtbGF0ZXgsIHRleGxpdmUtZHZpcHMs IGdob3N0c2NyaXB0CisKKyVkZXNjcmlwdGlvbiBkb2MKK1RoaXMgcGFja2FnZSBjb250YWlucyB0 aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUgSFRNTCBmb3JtYXQgb2YgdGhlIFNPQ0kKK2xpYnJhcnku IFRoZSBkb2N1bWVudGF0aW9uIGlzIHRoZSBzYW1lIGFzIGF0IHRoZSBTT0NJIHdlYiBwYWdlLgor CisKKyVwcmVwCislc2V0dXAgLXEKKyMgUmVuYW1lIGNoYW5nZS1sb2cgYW5kIGxpY2Vuc2UgZmls ZSwgc28gdGhhdCB0aGV5IGNvbXBseSB3aXRoCisjIHBhY2thZ2luZyBzdGFuZGFyZAorbXYgQ0hB TkdFUyBDaGFuZ2VMb2cKK212IExJQ0VOU0VfMV8wLnR4dCBDT1BZSU5HCitybSAtZiBJTlNUQUxM CisjIEFwcGx5IHRoZSBnKysgNC4zIGNvbXBhdGliaWxpdHkgcGF0Y2gKKyVwYXRjaDAgLXAxCisj IFJlbW92ZSBNYWNPU1ggY29tcGF0aWJpbGl0eSBidWlsZGluZyBmaWxlcworcm0gLWYgYnVpbGQv dW5peC8uXyoudGNsCitybSAtZiAuX01ha2VmaWxlIC5fY29uZmlndXJlCitybSAtZiBzb2NpL2Nv cmUvLl8qLmggc29jaS9jb3JlLy5fKi5jcHAKK3JtIC1mIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC8uXyouaAorcm0gLWYgZG9jLy5fKi5odG1sCisjIFJlbmFtZSB0aGUgc291cmNlIGNvZGUgZGly ZWN0b3J5LCBzbyB0aGF0IHRoZSBmaWxlcyAoZS5nLCBoZWFkZXIKKyMgZmlsZXMpIGNhbiBiZSBl eHBvcnRlZCBjb3JyZWN0bHkgaW50byB7X3N0YW5kYXJkX2Rpcn0vJXtuYW1lfQorbXYgc3JjICV7 bmFtZX0KKyMgQXBwbHkgdGhlIEdOVSBBdXRvdG9vbHMgY29tcGF0aWJpbGl0eSBwYXRjaAorJXBh dGNoMSAtcDEKKyMgRml4IHNvbWUgcGVybWlzc2lvbnMgYW5kIGZvcm1hdHMKK2ZpbmQgLi9kb2Mg LXR5cGUgZiAtcGVybSA3NTUgLWV4ZWMgY2htb2QgNjQ0IHt9IFw7CitjaG1vZCAteCBBVVRIT1JT IENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCisjIGZpbmQgLiAtdHlwZSBmIC1uYW1lICcq LltoY11wcCcgLWV4ZWMgY2htb2QgNjQ0IHt9IFw7CisKKworJWJ1aWxkCislY29uZmlndXJlIC0t ZGlzYWJsZS1zdGF0aWMgXAorJXs/d2l0aF9teXNxbDotLWVuYWJsZS1iYWNrZW5kLW15c3FsfSBc Cislez93aXRoX3Bvc3RncmVzcWw6LS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3FsfSBcCislez93 aXRoX29yYWNsZTotLWVuYWJsZS1iYWNrZW5kLW9yYWNsZSAlez9fd2l0aF9vcmFjbGVfaW5jZGly fSAlez9fd2l0aF9vcmFjbGVfbGliZGlyfX0KK21ha2UgJXs/X3NtcF9tZmxhZ3N9CisKKyVpbnN0 YWxsCitybSAtcmYgJFJQTV9CVUlMRF9ST09UCittYWtlIGluc3RhbGwgREVTVERJUj0kUlBNX0JV SUxEX1JPT1QKKyMjCisjICBSZW1vdmUgdW5wYWNrYWdlZCBmaWxlcyBmcm9tIHRoZSBidWlsZHJv b3QKK3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29uZmlnLmgK K3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X2xpYmRpcn0vbGliJXtuYW1lfV8qLmxhCisjIworIyMK KyMgIER1cGxpY2F0ZSB0aGUgaGVhZGVyIGZpbGVzLCBzbyBhcyB0byBrZWVwIHRoZSBjb21wYXRp YmlsaXR5LCBmb3IKKyMgIGRldmVsb3BlcnMgdXNpbmcgdGhlIFNPQ0kgbGlicmFyeSwgd2l0aCB0 aGUgbm9uLXBhY2thZ2VkIHZlcnNpb24gb2YKKyMgIHRoYXQgbGlicmFyeS4KK2ZvciBoZWFkZXJf ZmlsZSBpbiAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2NvcmUvKi5oOyBk bworICBjcCAke2hlYWRlcl9maWxlfSAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25h bWV9Citkb25lCislez93aXRoX215c3FsOmNwICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9 LyV7bmFtZX0vYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oICRSUE1fQlVJTERfUk9PVCV7X2lu Y2x1ZGVkaXJ9LyV7bmFtZX19Cislez93aXRoX3Bvc3RncmVzcWw6Y3AgJFJQTV9CVUlMRF9ST09U JXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNx bC5oICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX19Cislez93aXRoX29yYWNs ZTpjcCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL29yYWNs ZS9zb2NpLW9yYWNsZS5oICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX19CisK KworJWNsZWFuCitybSAtcmYgJFJQTV9CVUlMRF9ST09UCisKKyVwb3N0IC1wIC9zYmluL2xkY29u ZmlnCisKKyVwb3N0dW4gLXAgL3NiaW4vbGRjb25maWcKKworJXs/d2l0aF9teXNxbDolcG9zdCBt eXNxbCAtcCAvc2Jpbi9sZGNvbmZpZworCislcG9zdHVuIG15c3FsIC1wIC9zYmluL2xkY29uZmln fQorCislez93aXRoX3Bvc3RncmVzcWw6JXBvc3QgcG9zdGdyZXNxbCAtcCAvc2Jpbi9sZGNvbmZp ZworCislcG9zdHVuIHBvc3RncmVzcWwgLXAgL3NiaW4vbGRjb25maWd9CisKKyV7P3dpdGhfb3Jh Y2xlOiVwb3N0IG9yYWNsZSAtcCAvc2Jpbi9sZGNvbmZpZworCislcG9zdHVuIG9yYWNsZSAtcCAv c2Jpbi9sZGNvbmZpZ30KKworCisKKyVmaWxlcworJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyVk b2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorJXtfbGliZGlyfS9saWIl e25hbWV9X2NvcmUuc28uKgorCislez93aXRoX215c3FsOiVmaWxlcyBteXNxbAorJWRlZmF0dHIo LSxyb290LHJvb3QsLSkKKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURN RQorJXtfbGliZGlyfS9saWIle25hbWV9X215c3FsLnNvLip9CisKKyV7P3dpdGhfcG9zdGdyZXNx bDolZmlsZXMgcG9zdGdyZXNxbAorJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyVkb2MgQVVUSE9S UyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorJXtfbGliZGlyfS9saWIle25hbWV9X3Bv c3RncmVzcWwuc28uKn0KKworJXs/d2l0aF9vcmFjbGU6JWZpbGVzIG9yYWNsZQorJWRlZmF0dHIo LSxyb290LHJvb3QsLSkKKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURN RQorJXtfbGliZGlyfS9saWIle25hbWV9X29yYWNsZS5zby4qfQorCisKKyVmaWxlcyBkZXZlbAor JWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBO RVdTIFJFQURNRQorJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9Cisle19pbmNsdWRlZGlyfS8l e25hbWV9LyouaAorJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb3JlCisle19iaW5kaXJ9LyV7bmFt ZX0tY29uZmlnCisle19saWJkaXJ9L2xpYiV7bmFtZX1fY29yZS5zbworJXtfbGliZGlyfS9wa2dj b25maWcvJXtuYW1lfS5wYworJXtfZGF0YWRpcn0vYWNsb2NhbC8le25hbWV9Lm00Cisle19tYW5k aXJ9L21hbjEvJXtuYW1lfS1jb25maWcuMS4qCisKKyV7P3dpdGhfbXlzcWw6JWZpbGVzIG15c3Fs LWRldmVsCislZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBD T1BZSU5HIE5FV1MgUkVBRE1FCislZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KKyV7X2luY2x1 ZGVkaXJ9LyV7bmFtZX0vYmFja2VuZHMvbXlzcWwKKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9teXNx bC5zb30KKworJXs/d2l0aF9wb3N0Z3Jlc3FsOiVmaWxlcyBwb3N0Z3Jlc3FsLWRldmVsCislZGVm YXR0cigtLHJvb3Qscm9vdCwtKQorJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1Mg UkVBRE1FCislZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KKyV7X2luY2x1ZGVkaXJ9LyV7bmFt ZX0vYmFja2VuZHMvcG9zdGdyZXNxbAorJXtfbGliZGlyfS9saWIle25hbWV9X3Bvc3RncmVzcWwu c299CisKKyV7P3dpdGhfb3JhY2xlOiVmaWxlcyBvcmFjbGUtZGV2ZWwKKyVkZWZhdHRyKC0scm9v dCxyb290LC0pCislZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKKyVk aXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5k cy9vcmFjbGUKKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9vcmFjbGUuc299CisKKworJWZpbGVzIGRv YworJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlO RyBORVdTIFJFQURNRSBkb2MKKworCislY2hhbmdlbG9nCisqIFNhdCBNYXkgMDIgMjAwOSBEZW5p cyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtNgorLSBSZW1vdmVk IHRoZSB1bnVzZWQgYnVpbGQgY29uZGl0aW9uYWxzCisKKyogVHVlIEFwciAyOCAyMDA5IERlbmlz IEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC01CistIFNpbXBsaWZp ZWQgdGhlIGNvbmRpdGlvbmFsIGJ1aWxkIHJ1bGVzIHdpdGhpbiB0aGUgUlBNIHNwZWNpZmljYXRp b24gZmlsZQorCisqIFNhdCBBcHIgMTggMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9m ZWRvcmFAbTR4Lm9yZz4gMy4wLjAtNAorLSBGaXhlZCBhbiBpc3N1ZSBhYm91dCBPUFRGTEFHUyBj b21waWxhdGlvbgorCisqIFR1ZSBBcHIgMTQgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1 ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMworLSBSZXN0YXJ0ZWQgZnJvbSBwcmlzdGluZSB2ZXJz aW9uIDMuMC4wIG9mIHVwc3RyZWFtIChTT0NJKSBwcm9qZWN0CisKKyogU2F0IEFwciAgNCAyMDA5 IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0yCistIFNw ZWNpZmljIFJQTSBmb3IgZWFjaCBiYWNrZW5kCisKKyogRnJpIE1hciAyNyAyMDA5IERlbmlzIEFy bmF1ZCA8ZGVuaXMuYXJuYXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC0xCistIEZpcnN0IFJQTSBy ZWxlYXNlCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggZTY5ZGUyOS4uMjkx YzU4NiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0wLDAgKzEgQEAKKzFi ZjdkZDI0NDc2NGU1MzU1N2MxZWNjMDFmZGZhYzk2ICBzb2NpLTMuMC4wLnRhci5nego=